dawood commited on
Commit
93acd41
·
verified ·
1 Parent(s): 22808b8

Upload folder using huggingface_hub

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .coveragerc +5 -0
  2. .gitattributes +4 -0
  3. .gitignore +62 -0
  4. .travis.yml +29 -0
  5. .vscode/settings.json +3 -0
  6. 2010-LEGO-color-palette.pdf +0 -0
  7. LICENSE +22 -0
  8. MANIFEST.in +3 -0
  9. README.md +79 -7
  10. a.jpg +0 -0
  11. a_lego.png +0 -0
  12. build/lib/legofy/__init__.py +180 -0
  13. build/lib/legofy/assets/bricks/1x1.png +0 -0
  14. build/lib/legofy/cli.py +23 -0
  15. build/lib/legofy/images2gif_py2.py +1092 -0
  16. build/lib/legofy/images2gif_py3.py +1095 -0
  17. build/lib/legofy/legofy_gui.py +91 -0
  18. build/lib/legofy/palettes.py +120 -0
  19. d.html +59 -0
  20. d.py +141 -0
  21. dist/legofy-1.0.0-py3.11.egg +0 -0
  22. legofy.egg-info/PKG-INFO +13 -0
  23. legofy.egg-info/SOURCES.txt +18 -0
  24. legofy.egg-info/dependency_links.txt +1 -0
  25. legofy.egg-info/entry_points.txt +2 -0
  26. legofy.egg-info/requires.txt +2 -0
  27. legofy.egg-info/top_level.txt +1 -0
  28. legofy/0553337762_lego.png +3 -0
  29. legofy/10-million-password-list-top-10000.txt +10000 -0
  30. legofy/2er.png +0 -0
  31. legofy/2er_lego.png +0 -0
  32. legofy/8f2ad880-1762-4e20-9831-a1cf1282e7be.jpg +0 -0
  33. legofy/8f2ad880-1762-4e20-9831-a1cf1282e7be_lego.png +0 -0
  34. legofy/All Safe.html +0 -0
  35. legofy/All Safe_files/23764359.svg +1 -0
  36. legofy/All Safe_files/36656228.svg +1 -0
  37. legofy/All Safe_files/43781505.png +0 -0
  38. legofy/All Safe_files/46447804.svg +1 -0
  39. legofy/All Safe_files/49749330.svg +1 -0
  40. legofy/All Safe_files/60965012.png +0 -0
  41. legofy/All Safe_files/61392992.png +0 -0
  42. legofy/All Safe_files/68377.png +0 -0
  43. legofy/All Safe_files/82032642.svg +1 -0
  44. legofy/All Safe_files/88451385.png +0 -0
  45. legofy/All Safe_files/91903393.svg +1 -0
  46. legofy/All Safe_files/96313755.png +3 -0
  47. legofy/All Safe_files/bundle.js.download +0 -0
  48. legofy/All Safe_files/style.css +4417 -0
  49. legofy/Brick Me Creator - Brick Your Pics!.html +125 -0
  50. legofy/Brick Me Creator - Brick Your Pics!_files/0 +0 -0
.coveragerc ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ [report]
2
+ omit =
3
+ legofy/images2gif_py*
4
+ legofy/cli.py
5
+ legofy/legofy_gui.py
.gitattributes CHANGED
@@ -33,3 +33,7 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ legofy/0553337762_lego.png filter=lfs diff=lfs merge=lfs -text
37
+ legofy/All[[:space:]]Safe_files/96313755.png filter=lfs diff=lfs merge=lfs -text
38
+ legofy/annotated_image_with_color_ids.png filter=lfs diff=lfs merge=lfs -text
39
+ legofy/saveweb2zip-com-www-allsafeeg-com/WkmiuhvtzLbw.com/uploads/postcards/source/96313755.png filter=lfs diff=lfs merge=lfs -text
.gitignore ADDED
@@ -0,0 +1,62 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ env/
12
+ build/
13
+ develop-eggs/
14
+ dist/
15
+ downloads/
16
+ eggs/
17
+ .eggs/
18
+ lib/
19
+ lib64/
20
+ parts/
21
+ sdist/
22
+ var/
23
+ *.egg-info/
24
+ .installed.cfg
25
+ *.egg
26
+
27
+ # PyInstaller
28
+ # Usually these files are written by a python script from a template
29
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
30
+ *.manifest
31
+ *.spec
32
+
33
+ # Installer logs
34
+ pip-log.txt
35
+ pip-delete-this-directory.txt
36
+
37
+ # Unit test / coverage reports
38
+ htmlcov/
39
+ .tox/
40
+ .coverage
41
+ .coverage.*
42
+ .cache
43
+ nosetests.xml
44
+ coverage.xml
45
+ *,cover
46
+ .hypothesis/
47
+
48
+ # Translations
49
+ *.mo
50
+ *.pot
51
+
52
+ # Django stuff:
53
+ *.log
54
+
55
+ # Pycharm stuff:
56
+ .idea/
57
+
58
+ # Sphinx documentation
59
+ docs/_build/
60
+
61
+ # PyBuilder
62
+ target/
.travis.yml ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Use container based infrastructure
2
+ sudo: false
3
+
4
+ language: python
5
+
6
+ addons:
7
+ apt:
8
+ packages:
9
+ - imagemagick
10
+
11
+ python:
12
+ - "3.6"
13
+ - "3.7"
14
+ - "3.8"
15
+ - "3.9"
16
+
17
+ install:
18
+ - pip install --quiet -r requirements.txt
19
+ # Separate the coveralls package because it is only a test requirement
20
+ - pip install --quiet coveralls
21
+
22
+ script:
23
+ - nosetests --with-coverage --cover-package=legofy
24
+ - python setup.py install
25
+ - legofy legofy/assets/flower.jpg flower_lego.png
26
+ - legofy --palette all legofy/assets/flower.jpg flower_lego_all.png
27
+
28
+ after_success:
29
+ - coveralls
.vscode/settings.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ {
2
+ "liveServer.settings.port": 5688
3
+ }
2010-LEGO-color-palette.pdf ADDED
Binary file (25.5 kB). View file
 
LICENSE ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2015 Juan Potato
4
+ All rights reserved
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ of this software and associated documentation files (the "Software"), to deal
8
+ in the Software without restriction, including without limitation the rights
9
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ copies of the Software, and to permit persons to whom the Software is
11
+ furnished to do so, subject to the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be included in all
14
+ copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ SOFTWARE.
MANIFEST.in ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ recursive-include legofy/assets/bricks *.png
2
+ include legofy/images2gif_py2.py
3
+ include legofy/images2gif_py3.py
README.md CHANGED
@@ -1,12 +1,84 @@
1
  ---
2
  title: Test
3
- emoji: 🐠
4
- colorFrom: purple
5
- colorTo: green
6
  sdk: gradio
7
- sdk_version: 4.21.0
8
- app_file: app.py
9
- pinned: false
10
  ---
 
11
 
12
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  ---
2
  title: Test
3
+ app_file: d.py
 
 
4
  sdk: gradio
5
+ sdk_version: 3.43.2
 
 
6
  ---
7
+ # Legofy [![Build Status](https://travis-ci.org/JuanPotato/Legofy.svg?branch=master)](https://travis-ci.org/JuanPotato/Legofy) [![PyPI Downloads](https://img.shields.io/pypi/dm/legofy.svg)](https://pypi.python.org/pypi/legofy) [![PyPI version](https://img.shields.io/pypi/v/legofy.svg)](https://pypi.python.org/pypi/legofy) [![License](https://img.shields.io/pypi/l/legofy.svg)](https://pypi.python.org/pypi/legofy) [![Coverage Status](https://coveralls.io/repos/JuanPotato/Legofy/badge.svg?branch=master&service=github)](https://coveralls.io/github/JuanPotato/Legofy?branch=master) [![Code Health](https://landscape.io/github/JuanPotato/Legofy/master/landscape.svg?style=flat)](https://landscape.io/github/JuanPotato/Legofy/master) [![Join the chat at https://gitter.im/JuanPotato/Legofy](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/JuanPotato/Legofy?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
8
 
9
+
10
+ ### What is it?
11
+ Legofy is a python program that takes a static image or gif and makes it so that it looks as if it was built out of LEGO.
12
+
13
+ <a href="https://commons.wikimedia.org/wiki/File:Zoysia_grass_flower.jpg">
14
+ <img alt="Before" title="Before (The inflorescence of Zoysia grass, a variety of lawn grass. Picture by Hari Krishnan)" height="500" src="legofy/assets/flower.jpg?raw=true">
15
+ </a>
16
+ <img alt="After" title="After" height="500" src="legofy/assets/flower_lego.png?raw=true">
17
+
18
+
19
+ ### Requirements
20
+ * Python
21
+ * Python modules: Pillow, click # pip will install these automatically if using `pip install legofy`
22
+ * imagemagick # not needed but recommended
23
+
24
+ ### Bugs
25
+ If you find a bug:
26
+ 1. Check in the [open issues](https://github.com/JuanPotato/Legofy/issues) if the bug already exists.
27
+ 2. If the bug is not there, create a [new issue](https://github.com/JuanPotato/Legofy/issues/new) with clear steps on how to reproduce it.
28
+
29
+ ### Quickstart
30
+ ```shell
31
+ $ pip install legofy
32
+ ```
33
+ or install from source
34
+ ```shell
35
+ $ git clone https://github.com/JuanPotato/Legofy.git
36
+ $ cd Legofy
37
+ $ python setup.py install
38
+ ```
39
+ Wait! I don't know what any of this means? Use pip then, or if you really want to install from source [have some help.](#installation)
40
+
41
+ ### Usage
42
+ ```
43
+ Usage: legofy [OPTIONS] IMAGE [OUTPUT]
44
+
45
+ Legofy an image!
46
+
47
+ Options:
48
+ --size INTEGER Number of bricks the longest side of the legofied image should have.
49
+ --dither / --no-dither Use dither algorithm to spread the color approximation error.
50
+ --palette [all|effects|mono|solid|transparent]
51
+ Palette to use based on real Lego colors.
52
+ --help Show this message and exit.
53
+ ```
54
+
55
+ #### Palette
56
+ There are 3 palettes: solid (33 colors), transparent (14 colors) and effects (4 colors).
57
+ You can use one of them or all the 3.
58
+ ```shell
59
+ $ legofy --palette solid image.jpg
60
+ $ legofy --palette transparent image.jpg
61
+ $ legofy --palette effects image.jpg
62
+ $ legofy --palette all image.jpg
63
+ ```
64
+ There is another one palette, mono, with only 2 colors (black and white...). It's just for test and fun...
65
+
66
+
67
+ ### Troubleshooting
68
+ * [Mac](http://pillow.readthedocs.org/en/3.0.x/installation.html#os-x-installation)
69
+ * [Linux](http://pillow.readthedocs.org/en/3.0.x/installation.html#linux-installation)
70
+ * [Windows](http://pillow.readthedocs.org/en/3.0.x/installation.html#windows-installation)
71
+
72
+ ### Installation
73
+ 1. Download and install all requirements
74
+ * python from the [official python website](https://www.python.org/)
75
+ * imagemagick from the [official imagemagick website](https://imagemagick.org/)
76
+ 2. Download this project by using the download zip button on this page, or running `git clone https://github.com/JuanPotato/Legofy`
77
+ * If you downloaded a zip file, please unzip it
78
+ 3. Open a command line and navigate to the project folder
79
+ 4. Run `python setup.py install` while in the project folder
80
+ 5. You can now use Legofy anywhere, see [usage](#usage) for more help
81
+
82
+ ### Forks
83
+
84
+ * JavaScript: [Legofy](https://github.com/Wildhoney/Legofy)
a.jpg ADDED
a_lego.png ADDED
build/lib/legofy/__init__.py ADDED
@@ -0,0 +1,180 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from __future__ import unicode_literals
2
+
3
+ from PIL import Image, ImageSequence
4
+ import sys
5
+ import os
6
+
7
+ # Python 2 and 3 support
8
+ # TODO: Proper images2gif version that supports both Py 2 and Py 3 (mostly handling binary data)
9
+ if sys.version_info < (3,):
10
+ import legofy.images2gif_py2 as images2gif
11
+ else:
12
+ import legofy.images2gif_py3 as images2gif
13
+ from legofy import palettes
14
+
15
+
16
+ def apply_color_overlay(image, color):
17
+ '''Small function to apply an effect over an entire image'''
18
+ overlay_red, overlay_green, overlay_blue = color
19
+ channels = image.split()
20
+
21
+ r = channels[0].point(lambda color: overlay_effect(color, overlay_red))
22
+ g = channels[1].point(lambda color: overlay_effect(color, overlay_green))
23
+ b = channels[2].point(lambda color: overlay_effect(color, overlay_blue))
24
+
25
+
26
+ channels[0].paste(r)
27
+ channels[1].paste(g)
28
+ channels[2].paste(b)
29
+
30
+ return Image.merge(image.mode, channels)
31
+
32
+ def overlay_effect(color, overlay):
33
+ '''Actual overlay effect function'''
34
+ if color < 33:
35
+ return overlay - 100
36
+ elif color > 233:
37
+ return overlay + 100
38
+ else:
39
+ return overlay - 133 + color
40
+
41
+ def make_lego_image(thumbnail_image, brick_image):
42
+ '''Create a lego version of an image from an image'''
43
+ base_width, base_height = thumbnail_image.size
44
+ brick_width, brick_height = brick_image.size
45
+
46
+ rgb_image = thumbnail_image.convert('RGB')
47
+
48
+ lego_image = Image.new("RGB", (base_width * brick_width,
49
+ base_height * brick_height), "white")
50
+
51
+ for brick_x in range(base_width):
52
+ for brick_y in range(base_height):
53
+ color = rgb_image.getpixel((brick_x, brick_y))
54
+ lego_image.paste(apply_color_overlay(brick_image, color),
55
+ (brick_x * brick_width, brick_y * brick_height))
56
+ return lego_image
57
+
58
+
59
+ def get_new_filename(file_path, ext_override=None):
60
+ '''Returns the save destination file path'''
61
+ folder, basename = os.path.split(file_path)
62
+ base, extention = os.path.splitext(basename)
63
+ if ext_override:
64
+ extention = ext_override
65
+ new_filename = os.path.join(folder, "{0}_lego{1}".format(base, extention))
66
+ return new_filename
67
+
68
+
69
+ def get_new_size(base_image, brick_image, size=None):
70
+ '''Returns a new size the first image should be so that the second one fits neatly in the longest axis'''
71
+ new_size = base_image.size
72
+ if size:
73
+ scale_x, scale_y = size, size
74
+ else:
75
+ scale_x, scale_y = brick_image.size
76
+
77
+ if new_size[0] > scale_x or new_size[1] > scale_y:
78
+ if new_size[0] < new_size[1]:
79
+ scale = new_size[1] / scale_y
80
+ else:
81
+ scale = new_size[0] / scale_x
82
+
83
+ new_size = (int(round(new_size[0] / scale)) or 1,
84
+ int(round(new_size[1] / scale)) or 1)
85
+
86
+ return new_size
87
+
88
+ def get_lego_palette(palette_mode):
89
+ '''Gets the palette for the specified lego palette mode'''
90
+ legos = palettes.legos()
91
+ palette = legos[palette_mode]
92
+ return palettes.extend_palette(palette)
93
+
94
+
95
+ def apply_thumbnail_effects(image, palette, dither):
96
+ '''Apply effects on the reduced image before Legofying'''
97
+ palette_image = Image.new("P", (1, 1))
98
+ palette_image.putpalette(palette)
99
+ return image.im.convert("P",
100
+ Image.FLOYDSTEINBERG if dither else Image.NONE,
101
+ palette_image.im)
102
+
103
+ def legofy_gif(base_image, brick_image, output_path, size, palette_mode, dither):
104
+ '''Alternative function that legofies animated gifs, makes use of images2gif - uses numpy!'''
105
+ im = base_image
106
+
107
+ # Read original image duration
108
+ original_duration = im.info['duration']
109
+
110
+ # Split image into single frames
111
+ frames = [frame.copy() for frame in ImageSequence.Iterator(im)]
112
+
113
+ # Create container for converted images
114
+ frames_converted = []
115
+
116
+ print("Number of frames to convert: " + str(len(frames)))
117
+
118
+ # Iterate through single frames
119
+ for i, frame in enumerate(frames, 1):
120
+ print("Converting frame number " + str(i))
121
+
122
+ new_size = get_new_size(frame, brick_image, size)
123
+ frame = frame.resize(new_size, Image.ANTIALIAS)
124
+ if palette_mode:
125
+ palette = get_lego_palette(palette_mode)
126
+ frame = apply_thumbnail_effects(frame, palette, dither)
127
+ new_frame = make_lego_image(frame, brick_image)
128
+ frames_converted.append(new_frame)
129
+
130
+ # Make use of images to gif function
131
+ images2gif.writeGif(output_path, frames_converted, duration=original_duration/1000.0, dither=0, subRectangles=False)
132
+
133
+ def legofy_image(base_image, brick_image, output_path, size, palette_mode, dither):
134
+ '''Legofy an image'''
135
+ new_size = get_new_size(base_image, brick_image, size)
136
+ base_image = base_image.resize(new_size, Image.ANTIALIAS)
137
+
138
+ if palette_mode:
139
+ palette = get_lego_palette(palette_mode)
140
+ base_image = apply_thumbnail_effects(base_image, palette, dither)
141
+ make_lego_image(base_image, brick_image).save(output_path)
142
+
143
+
144
+ def main(image_path, output_path=None, size=None,
145
+ palette_mode=None, dither=False):
146
+ '''Legofy image or gif with brick_path mask'''
147
+ image_path = os.path.realpath(image_path)
148
+ if not os.path.isfile(image_path):
149
+ print('Image file "{0}" was not found.'.format(image_path))
150
+ sys.exit(1)
151
+
152
+ brick_path = os.path.join(os.path.dirname(__file__), "assets",
153
+ "bricks", "1x1.png")
154
+
155
+ if not os.path.isfile(brick_path):
156
+ print('Brick asset "{0}" was not found.'.format(brick_path))
157
+ sys.exit(1)
158
+
159
+ base_image = Image.open(image_path)
160
+ brick_image = Image.open(brick_path)
161
+
162
+ if palette_mode:
163
+ print ("LEGO Palette {0} selected...".format(palette_mode.title()))
164
+ elif dither:
165
+ palette_mode = 'all'
166
+
167
+ if image_path.lower().endswith(".gif") and base_image.is_animated:
168
+ if output_path is None:
169
+ output_path = get_new_filename(image_path)
170
+ print("Animated gif detected, will now legofy to {0}".format(output_path))
171
+ legofy_gif(base_image, brick_image, output_path, size, palette_mode, dither)
172
+ else:
173
+ if output_path is None:
174
+ output_path = get_new_filename(image_path, '.png')
175
+ print("Static image detected, will now legofy to {0}".format(output_path))
176
+ legofy_image(base_image, brick_image, output_path, size, palette_mode, dither)
177
+
178
+ base_image.close()
179
+ brick_image.close()
180
+ print("Finished!")
build/lib/legofy/assets/bricks/1x1.png ADDED
build/lib/legofy/cli.py ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ '''Command line interface to Legofy'''
2
+ import click
3
+ import legofy
4
+ from legofy import palettes
5
+
6
+
7
+ @click.command()
8
+ @click.argument('image', required=True, type=click.Path(dir_okay=False,
9
+ exists=True,
10
+ resolve_path=True))
11
+ @click.argument('output', default=None, required=False,
12
+ type=click.Path(resolve_path=True))
13
+ @click.option('--size', default=None, type=int,
14
+ help='Number of bricks the longest side of the legofied image should have.')
15
+ @click.option('--dither/--no-dither', default=False,
16
+ help='Use dither algorithm to spread the color approximation error.')
17
+ @click.option('--palette', default=None,
18
+ type=click.Choice(palettes.legos().keys()),
19
+ help='Palette to use based on real Lego colors.')
20
+ def main(image, output, size, palette, dither):
21
+ '''Legofy an image!'''
22
+ legofy.main(image, output_path=output, size=size,
23
+ palette_mode=palette, dither=dither)
build/lib/legofy/images2gif_py2.py ADDED
@@ -0,0 +1,1092 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # -*- coding: utf-8 -*-
2
+ # Copyright (C) 2012, Almar Klein, Ant1, Marius van Voorden
3
+ #
4
+ # This code is subject to the (new) BSD license:
5
+ #
6
+ # Redistribution and use in source and binary forms, with or without
7
+ # modification, are permitted provided that the following conditions are met:
8
+ # * Redistributions of source code must retain the above copyright
9
+ # notice, this list of conditions and the following disclaimer.
10
+ # * Redistributions in binary form must reproduce the above copyright
11
+ # notice, this list of conditions and the following disclaimer in the
12
+ # documentation and/or other materials provided with the distribution.
13
+ # * Neither the name of the <organization> nor the
14
+ # names of its contributors may be used to endorse or promote products
15
+ # derived from this software without specific prior written permission.
16
+ #
17
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18
+ # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
+ # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20
+ # ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
21
+ # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22
+ # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23
+ # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
24
+ # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25
+ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
26
+ # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
+
28
+ """ Module images2gif
29
+
30
+ Provides functionality for reading and writing animated GIF images.
31
+ Use writeGif to write a series of numpy arrays or PIL images as an
32
+ animated GIF. Use readGif to read an animated gif as a series of numpy
33
+ arrays.
34
+
35
+ Note that since July 2004, all patents on the LZW compression patent have
36
+ expired. Therefore the GIF format may now be used freely.
37
+
38
+ Acknowledgements
39
+ ----------------
40
+
41
+ Many thanks to Ant1 for:
42
+ * noting the use of "palette=PIL.Image.ADAPTIVE", which significantly
43
+ improves the results.
44
+ * the modifications to save each image with its own palette, or optionally
45
+ the global palette (if its the same).
46
+
47
+ Many thanks to Marius van Voorden for porting the NeuQuant quantization
48
+ algorithm of Anthony Dekker to Python (See the NeuQuant class for its
49
+ license).
50
+
51
+ Many thanks to Alex Robinson for implementing the concept of subrectangles,
52
+ which (depening on image content) can give a very significant reduction in
53
+ file size.
54
+
55
+ This code is based on gifmaker (in the scripts folder of the source
56
+ distribution of PIL)
57
+
58
+
59
+ Usefull links
60
+ -------------
61
+ * http://tronche.com/computer-graphics/gif/
62
+ * http://en.wikipedia.org/wiki/Graphics_Interchange_Format
63
+ * http://www.w3.org/Graphics/GIF/spec-gif89a.txt
64
+
65
+ """
66
+ # todo: This module should be part of imageio (or at least based on)
67
+
68
+ import os, time
69
+
70
+ try:
71
+ import PIL
72
+ from PIL import Image
73
+ from PIL.GifImagePlugin import getheader, getdata
74
+ except ImportError:
75
+ PIL = None
76
+
77
+ try:
78
+ import numpy as np
79
+ except ImportError:
80
+ np = None
81
+
82
+ def get_cKDTree():
83
+ try:
84
+ from scipy.spatial import cKDTree
85
+ except ImportError:
86
+ cKDTree = None
87
+ return cKDTree
88
+
89
+
90
+ # getheader gives a 87a header and a color palette (two elements in a list).
91
+ # getdata()[0] gives the Image Descriptor up to (including) "LZW min code size".
92
+ # getdatas()[1:] is the image data itself in chuncks of 256 bytes (well
93
+ # technically the first byte says how many bytes follow, after which that
94
+ # amount (max 255) follows).
95
+
96
+ def checkImages(images):
97
+ """ checkImages(images)
98
+ Check numpy images and correct intensity range etc.
99
+ The same for all movie formats.
100
+ """
101
+ # Init results
102
+ images2 = []
103
+
104
+ for im in images:
105
+ if PIL and isinstance(im, PIL.Image.Image):
106
+ # We assume PIL images are allright
107
+ images2.append(im)
108
+
109
+ elif np and isinstance(im, np.ndarray):
110
+ # Check and convert dtype
111
+ if im.dtype == np.uint8:
112
+ images2.append(im) # Ok
113
+ elif im.dtype in [np.float32, np.float64]:
114
+ im = im.copy()
115
+ im[im<0] = 0
116
+ im[im>1] = 1
117
+ im *= 255
118
+ images2.append( im.astype(np.uint8) )
119
+ else:
120
+ im = im.astype(np.uint8)
121
+ images2.append(im)
122
+ # Check size
123
+ if im.ndim == 2:
124
+ pass # ok
125
+ elif im.ndim == 3:
126
+ if im.shape[2] not in [3,4]:
127
+ raise ValueError('This array can not represent an image.')
128
+ else:
129
+ raise ValueError('This array can not represent an image.')
130
+ else:
131
+ raise ValueError('Invalid image type: ' + str(type(im)))
132
+
133
+ # Done
134
+ return images2
135
+
136
+
137
+ def intToBin(i):
138
+ """ Integer to two bytes """
139
+ # devide in two parts (bytes)
140
+ i1 = i % 256
141
+ i2 = int( i/256)
142
+ # make string (little endian)
143
+ return chr(i1) + chr(i2)
144
+
145
+
146
+ class GifWriter:
147
+ """ GifWriter()
148
+
149
+ Class that contains methods for helping write the animated GIF file.
150
+
151
+ """
152
+
153
+ def getheaderAnim(self, im):
154
+ """ getheaderAnim(im)
155
+
156
+ Get animation header. To replace PILs getheader()[0]
157
+
158
+ """
159
+ bb = "GIF89a"
160
+ bb += intToBin(im.size[0])
161
+ bb += intToBin(im.size[1])
162
+ bb += "\x87\x00\x00"
163
+ return bb
164
+
165
+
166
+ def getImageDescriptor(self, im, xy=None):
167
+ """ getImageDescriptor(im, xy=None)
168
+
169
+ Used for the local color table properties per image.
170
+ Otherwise global color table applies to all frames irrespective of
171
+ whether additional colors comes in play that require a redefined
172
+ palette. Still a maximum of 256 color per frame, obviously.
173
+
174
+ Written by Ant1 on 2010-08-22
175
+ Modified by Alex Robinson in Janurari 2011 to implement subrectangles.
176
+
177
+ """
178
+
179
+ # Defaule use full image and place at upper left
180
+ if xy is None:
181
+ xy = (0,0)
182
+
183
+ # Image separator,
184
+ bb = '\x2C'
185
+
186
+ # Image position and size
187
+ bb += intToBin( xy[0] ) # Left position
188
+ bb += intToBin( xy[1] ) # Top position
189
+ bb += intToBin( im.size[0] ) # image width
190
+ bb += intToBin( im.size[1] ) # image height
191
+
192
+ # packed field: local color table flag1, interlace0, sorted table0,
193
+ # reserved00, lct size111=7=2^(7+1)=256.
194
+ bb += '\x87'
195
+
196
+ # LZW minimum size code now comes later, begining of [image data] blocks
197
+ return bb
198
+
199
+
200
+ def getAppExt(self, loops=float('inf')):
201
+ """ getAppExt(loops=float('inf'))
202
+
203
+ Application extention. This part specifies the amount of loops.
204
+ If loops is 0 or inf, it goes on infinitely.
205
+
206
+ """
207
+
208
+ if loops==0 or loops==float('inf'):
209
+ loops = 2**16-1
210
+ #bb = "" # application extension should not be used
211
+ # (the extension interprets zero loops
212
+ # to mean an infinite number of loops)
213
+ # Mmm, does not seem to work
214
+ if True:
215
+ bb = "\x21\xFF\x0B" # application extension
216
+ bb += "NETSCAPE2.0"
217
+ bb += "\x03\x01"
218
+ bb += intToBin(loops)
219
+ bb += '\x00' # end
220
+ return bb
221
+
222
+
223
+ def getGraphicsControlExt(self, duration=0.1, dispose=2,transparent_flag=0,transparency_index=0):
224
+ """ getGraphicsControlExt(duration=0.1, dispose=2)
225
+
226
+ Graphics Control Extension. A sort of header at the start of
227
+ each image. Specifies duration and transparancy.
228
+
229
+ Dispose
230
+ -------
231
+ * 0 - No disposal specified.
232
+ * 1 - Do not dispose. The graphic is to be left in place.
233
+ * 2 - Restore to background color. The area used by the graphic
234
+ must be restored to the background color.
235
+ * 3 - Restore to previous. The decoder is required to restore the
236
+ area overwritten by the graphic with what was there prior to
237
+ rendering the graphic.
238
+ * 4-7 -To be defined.
239
+
240
+ """
241
+
242
+ bb = '\x21\xF9\x04'
243
+ bb += chr(((dispose & 3) << 2)|(transparent_flag & 1)) # low bit 1 == transparency,
244
+ # 2nd bit 1 == user input , next 3 bits, the low two of which are used,
245
+ # are dispose.
246
+ bb += intToBin( int(duration*100) ) # in 100th of seconds
247
+ bb += chr(transparency_index) # transparency index
248
+ bb += '\x00' # end
249
+ return bb
250
+
251
+
252
+ def handleSubRectangles(self, images, subRectangles):
253
+ """ handleSubRectangles(images)
254
+
255
+ Handle the sub-rectangle stuff. If the rectangles are given by the
256
+ user, the values are checked. Otherwise the subrectangles are
257
+ calculated automatically.
258
+
259
+ """
260
+ image_info = []
261
+
262
+ for im in images:
263
+ if hasattr(im, 'flags'):
264
+ image_info.append(im.flags)
265
+
266
+ if isinstance(subRectangles, (tuple, list)):
267
+ # xy given directly
268
+
269
+ # Check xy
270
+ xy = subRectangles
271
+ if xy is None:
272
+ xy = (0,0)
273
+ if hasattr(xy, '__len__'):
274
+ if len(xy) == len(images):
275
+ xy = [xxyy for xxyy in xy]
276
+ else:
277
+ raise ValueError("len(xy) doesn't match amount of images.")
278
+ else:
279
+ xy = [xy for im in images]
280
+ xy[0] = (0,0)
281
+
282
+ else:
283
+ # Calculate xy using some basic image processing
284
+
285
+ # Check Numpy
286
+ if np is None:
287
+ raise RuntimeError("Need Numpy to use auto-subRectangles.")
288
+
289
+ # First make numpy arrays if required
290
+ for i in range(len(images)):
291
+ im = images[i]
292
+ if isinstance(im, Image.Image):
293
+ tmp = im.convert() # Make without palette
294
+ a = np.asarray(tmp)
295
+ if len(a.shape)==0:
296
+ raise MemoryError("Too little memory to convert PIL image to array")
297
+ images[i] = a
298
+
299
+ # Determine the sub rectangles
300
+ images, xy = self.getSubRectangles(images)
301
+
302
+ # Done
303
+ return images, xy, image_info
304
+
305
+
306
+ def getSubRectangles(self, ims):
307
+ """ getSubRectangles(ims)
308
+
309
+ Calculate the minimal rectangles that need updating each frame.
310
+ Returns a two-element tuple containing the cropped images and a
311
+ list of x-y positions.
312
+
313
+ Calculating the subrectangles takes extra time, obviously. However,
314
+ if the image sizes were reduced, the actual writing of the GIF
315
+ goes faster. In some cases applying this method produces a GIF faster.
316
+
317
+ """
318
+
319
+ # Check image count
320
+ if len(ims) < 2:
321
+ return ims, [(0,0) for i in ims]
322
+
323
+ # We need numpy
324
+ if np is None:
325
+ raise RuntimeError("Need Numpy to calculate sub-rectangles. ")
326
+
327
+ # Prepare
328
+ ims2 = [ims[0]]
329
+ xy = [(0,0)]
330
+ t0 = time.time()
331
+
332
+ # Iterate over images
333
+ prev = ims[0]
334
+ for im in ims[1:]:
335
+
336
+ # Get difference, sum over colors
337
+ diff = np.abs(im-prev)
338
+ if diff.ndim==3:
339
+ diff = diff.sum(2)
340
+ # Get begin and end for both dimensions
341
+ X = np.argwhere(diff.sum(0))
342
+ Y = np.argwhere(diff.sum(1))
343
+ # Get rect coordinates
344
+ if X.size and Y.size:
345
+ x0, x1 = X[0], X[-1]+1
346
+ y0, y1 = Y[0], Y[-1]+1
347
+ else: # No change ... make it minimal
348
+ x0, x1 = 0, 2
349
+ y0, y1 = 0, 2
350
+
351
+ # Cut out and store
352
+ im2 = im[y0:y1,x0:x1]
353
+ prev = im
354
+ ims2.append(im2)
355
+ xy.append((x0,y0))
356
+
357
+ # Done
358
+ #print('%1.2f seconds to determine subrectangles of %i images' %
359
+ # (time.time()-t0, len(ims2)) )
360
+ return ims2, xy
361
+
362
+
363
+ def convertImagesToPIL(self, images, dither, nq=0,images_info=None):
364
+ """ convertImagesToPIL(images, nq=0)
365
+
366
+ Convert images to Paletted PIL images, which can then be
367
+ written to a single animaged GIF.
368
+
369
+ """
370
+
371
+ # Convert to PIL images
372
+ images2 = []
373
+ for im in images:
374
+ if isinstance(im, Image.Image):
375
+ images2.append(im)
376
+ elif np and isinstance(im, np.ndarray):
377
+ if im.ndim==3 and im.shape[2]==3:
378
+ im = Image.fromarray(im,'RGB')
379
+ elif im.ndim==3 and im.shape[2]==4:
380
+ # im = Image.fromarray(im[:,:,:3],'RGB')
381
+ self.transparency = True
382
+ im = Image.fromarray(im[:,:,:4],'RGBA')
383
+ elif im.ndim==2:
384
+ im = Image.fromarray(im,'L')
385
+ images2.append(im)
386
+
387
+ # Convert to paletted PIL images
388
+ images, images2 = images2, []
389
+ if nq >= 1:
390
+ # NeuQuant algorithm
391
+ for im in images:
392
+ im = im.convert("RGBA") # NQ assumes RGBA
393
+ nqInstance = NeuQuant(im, int(nq)) # Learn colors from image
394
+ if dither:
395
+ im = im.convert("RGB").quantize(palette=nqInstance.paletteImage(),colors=255)
396
+ else:
397
+ im = nqInstance.quantize(im,colors=255) # Use to quantize the image itself
398
+
399
+ self.transparency = True # since NQ assumes transparency
400
+ if self.transparency:
401
+ alpha = im.split()[3]
402
+ mask = Image.eval(alpha, lambda a: 255 if a <=128 else 0)
403
+ im.paste(255,mask=mask)
404
+ images2.append(im)
405
+ else:
406
+ # Adaptive PIL algorithm
407
+ AD = Image.ADAPTIVE
408
+ # for index,im in enumerate(images):
409
+ for i in range(len(images)):
410
+ im = images[i].convert('RGB').convert('P', palette=AD, dither=dither,colors=255)
411
+ if self.transparency:
412
+ alpha = images[i].split()[3]
413
+ mask = Image.eval(alpha, lambda a: 255 if a <=128 else 0)
414
+ im.paste(255,mask=mask)
415
+ images2.append(im)
416
+
417
+ # Done
418
+ return images2
419
+
420
+
421
+ def writeGifToFile(self, fp, images, durations, loops, xys, disposes):
422
+ """ writeGifToFile(fp, images, durations, loops, xys, disposes)
423
+
424
+ Given a set of images writes the bytes to the specified stream.
425
+
426
+ """
427
+
428
+ # Obtain palette for all images and count each occurance
429
+ palettes, occur = [], []
430
+
431
+ for im in images:
432
+ palettes.append(getheader(im)[0][3])
433
+ for palette in palettes:
434
+ occur.append(palettes.count(palette))
435
+
436
+ # Select most-used palette as the global one (or first in case no max)
437
+ globalPalette = palettes[ occur.index(max(occur)) ]
438
+
439
+ # Init
440
+ frames = 0
441
+ firstFrame = True
442
+
443
+ for im, palette in zip(images, palettes):
444
+
445
+ if firstFrame:
446
+ # Write header
447
+
448
+ # Gather info
449
+ header = self.getheaderAnim(im)
450
+ appext = self.getAppExt(loops)
451
+
452
+ # Write
453
+ fp.write(header)
454
+ fp.write(globalPalette)
455
+ fp.write(appext)
456
+
457
+ # Next frame is not the first
458
+ firstFrame = False
459
+
460
+ if True:
461
+ # Write palette and image data
462
+
463
+ # Gather info
464
+ data = getdata(im)
465
+ imdes, data = data[0], data[1:]
466
+
467
+ transparent_flag = 0
468
+ if self.transparency: transparent_flag = 1
469
+
470
+ graphext = self.getGraphicsControlExt(durations[frames],
471
+ disposes[frames],transparent_flag=transparent_flag,transparency_index=255)
472
+
473
+ # Make image descriptor suitable for using 256 local color palette
474
+ lid = self.getImageDescriptor(im, xys[frames])
475
+
476
+ # Write local header
477
+ if (palette != globalPalette) or (disposes[frames] != 2):
478
+ # Use local color palette
479
+ fp.write(graphext)
480
+ fp.write(lid) # write suitable image descriptor
481
+ fp.write(palette) # write local color table
482
+ fp.write('\x08') # LZW minimum size code
483
+ else:
484
+ # Use global color palette
485
+ fp.write(graphext)
486
+ fp.write(imdes) # write suitable image descriptor
487
+
488
+ # Write image data
489
+ for d in data:
490
+ fp.write(d)
491
+
492
+ # Prepare for next round
493
+ frames = frames + 1
494
+
495
+ fp.write(";") # end gif
496
+ return frames
497
+
498
+
499
+
500
+
501
+ ## Exposed functions
502
+
503
+ def writeGif(filename, images, duration=0.1, repeat=True, dither=False,
504
+ nq=0, subRectangles=True, dispose=None):
505
+ """ writeGif(filename, images, duration=0.1, repeat=True, dither=False,
506
+ nq=0, subRectangles=True, dispose=None)
507
+
508
+ Write an animated gif from the specified images.
509
+
510
+ Parameters
511
+ ----------
512
+ filename : string
513
+ The name of the file to write the image to.
514
+ images : list
515
+ Should be a list consisting of PIL images or numpy arrays.
516
+ The latter should be between 0 and 255 for integer types, and
517
+ between 0 and 1 for float types.
518
+ duration : scalar or list of scalars
519
+ The duration for all frames, or (if a list) for each frame.
520
+ repeat : bool or integer
521
+ The amount of loops. If True, loops infinitetely.
522
+ dither : bool
523
+ Whether to apply dithering
524
+ nq : integer
525
+ If nonzero, applies the NeuQuant quantization algorithm to create
526
+ the color palette. This algorithm is superior, but slower than
527
+ the standard PIL algorithm. The value of nq is the quality
528
+ parameter. 1 represents the best quality. 10 is in general a
529
+ good tradeoff between quality and speed. When using this option,
530
+ better results are usually obtained when subRectangles is False.
531
+ subRectangles : False, True, or a list of 2-element tuples
532
+ Whether to use sub-rectangles. If True, the minimal rectangle that
533
+ is required to update each frame is automatically detected. This
534
+ can give significant reductions in file size, particularly if only
535
+ a part of the image changes. One can also give a list of x-y
536
+ coordinates if you want to do the cropping yourself. The default
537
+ is True.
538
+ dispose : int
539
+ How to dispose each frame. 1 means that each frame is to be left
540
+ in place. 2 means the background color should be restored after
541
+ each frame. 3 means the decoder should restore the previous frame.
542
+ If subRectangles==False, the default is 2, otherwise it is 1.
543
+
544
+ """
545
+
546
+ # Check PIL
547
+ if PIL is None:
548
+ raise RuntimeError("Need PIL to write animated gif files.")
549
+
550
+ # Check images
551
+ images = checkImages(images)
552
+
553
+ # Instantiate writer object
554
+ gifWriter = GifWriter()
555
+ gifWriter.transparency = False # init transparency flag used in GifWriter functions
556
+
557
+ # Check loops
558
+ if repeat is False:
559
+ loops = 1
560
+ elif repeat is True:
561
+ loops = 0 # zero means infinite
562
+ else:
563
+ loops = int(repeat)
564
+
565
+ # Check duration
566
+ if hasattr(duration, '__len__'):
567
+ if len(duration) == len(images):
568
+ duration = [d for d in duration]
569
+ else:
570
+ raise ValueError("len(duration) doesn't match amount of images.")
571
+ else:
572
+ duration = [duration for im in images]
573
+
574
+ # Check subrectangles
575
+ if subRectangles:
576
+ images, xy, images_info = gifWriter.handleSubRectangles(images, subRectangles)
577
+ defaultDispose = 1 # Leave image in place
578
+ else:
579
+ # Normal mode
580
+ xy = [(0,0) for im in images]
581
+ defaultDispose = 2 # Restore to background color.
582
+
583
+ # Check dispose
584
+ if dispose is None:
585
+ dispose = defaultDispose
586
+ if hasattr(dispose, '__len__'):
587
+ if len(dispose) != len(images):
588
+ raise ValueError("len(xy) doesn't match amount of images.")
589
+ else:
590
+ dispose = [dispose for im in images]
591
+
592
+ # Make images in a format that we can write easy
593
+ images = gifWriter.convertImagesToPIL(images, dither, nq)
594
+
595
+ # Write
596
+ fp = open(filename, 'wb')
597
+ try:
598
+ gifWriter.writeGifToFile(fp, images, duration, loops, xy, dispose)
599
+ finally:
600
+ fp.close()
601
+
602
+
603
+
604
+ def readGif(filename, asNumpy=True):
605
+ """ readGif(filename, asNumpy=True)
606
+
607
+ Read images from an animated GIF file. Returns a list of numpy
608
+ arrays, or, if asNumpy is false, a list if PIL images.
609
+
610
+ """
611
+
612
+ # Check PIL
613
+ if PIL is None:
614
+ raise RuntimeError("Need PIL to read animated gif files.")
615
+
616
+ # Check Numpy
617
+ if np is None:
618
+ raise RuntimeError("Need Numpy to read animated gif files.")
619
+
620
+ # Check whether it exists
621
+ if not os.path.isfile(filename):
622
+ raise IOError('File not found: '+str(filename))
623
+
624
+ # Load file using PIL
625
+ pilIm = PIL.Image.open(filename)
626
+ pilIm.seek(0)
627
+
628
+ # Read all images inside
629
+ images = []
630
+ try:
631
+ while True:
632
+ # Get image as numpy array
633
+ tmp = pilIm.convert() # Make without palette
634
+ a = np.asarray(tmp)
635
+ if len(a.shape)==0:
636
+ raise MemoryError("Too little memory to convert PIL image to array")
637
+ # Store, and next
638
+ images.append(a)
639
+ pilIm.seek(pilIm.tell()+1)
640
+ except EOFError:
641
+ pass
642
+
643
+ # Convert to normal PIL images if needed
644
+ if not asNumpy:
645
+ images2 = images
646
+ images = []
647
+ for index,im in enumerate(images2):
648
+ tmp = PIL.Image.fromarray(im)
649
+ images.append(tmp)
650
+
651
+ # Done
652
+ return images
653
+
654
+
655
+ class NeuQuant:
656
+ """ NeuQuant(image, samplefac=10, colors=256)
657
+
658
+ samplefac should be an integer number of 1 or higher, 1
659
+ being the highest quality, but the slowest performance.
660
+ With avalue of 10, one tenth of all pixels are used during
661
+ training. This value seems a nice tradeof between speed
662
+ and quality.
663
+
664
+ colors is the amount of colors to reduce the image to. This
665
+ should best be a power of two.
666
+
667
+ See also:
668
+ http://members.ozemail.com.au/~dekker/NEUQUANT.HTML
669
+
670
+ License of the NeuQuant Neural-Net Quantization Algorithm
671
+ ---------------------------------------------------------
672
+
673
+ Copyright (c) 1994 Anthony Dekker
674
+ Ported to python by Marius van Voorden in 2010
675
+
676
+ NEUQUANT Neural-Net quantization algorithm by Anthony Dekker, 1994.
677
+ See "Kohonen neural networks for optimal colour quantization"
678
+ in "network: Computation in Neural Systems" Vol. 5 (1994) pp 351-367.
679
+ for a discussion of the algorithm.
680
+ See also http://members.ozemail.com.au/~dekker/NEUQUANT.HTML
681
+
682
+ Any party obtaining a copy of these files from the author, directly or
683
+ indirectly, is granted, free of charge, a full and unrestricted irrevocable,
684
+ world-wide, paid up, royalty-free, nonexclusive right and license to deal
685
+ in this software and documentation files (the "Software"), including without
686
+ limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
687
+ and/or sell copies of the Software, and to permit persons who receive
688
+ copies from any such party to do so, with the only requirement being
689
+ that this copyright notice remain intact.
690
+
691
+ """
692
+
693
+ NCYCLES = None # Number of learning cycles
694
+ NETSIZE = None # Number of colours used
695
+ SPECIALS = None # Number of reserved colours used
696
+ BGCOLOR = None # Reserved background colour
697
+ CUTNETSIZE = None
698
+ MAXNETPOS = None
699
+
700
+ INITRAD = None # For 256 colours, radius starts at 32
701
+ RADIUSBIASSHIFT = None
702
+ RADIUSBIAS = None
703
+ INITBIASRADIUS = None
704
+ RADIUSDEC = None # Factor of 1/30 each cycle
705
+
706
+ ALPHABIASSHIFT = None
707
+ INITALPHA = None # biased by 10 bits
708
+
709
+ GAMMA = None
710
+ BETA = None
711
+ BETAGAMMA = None
712
+
713
+ network = None # The network itself
714
+ colormap = None # The network itself
715
+
716
+ netindex = None # For network lookup - really 256
717
+
718
+ bias = None # Bias and freq arrays for learning
719
+ freq = None
720
+
721
+ pimage = None
722
+
723
+ # Four primes near 500 - assume no image has a length so large
724
+ # that it is divisible by all four primes
725
+ PRIME1 = 499
726
+ PRIME2 = 491
727
+ PRIME3 = 487
728
+ PRIME4 = 503
729
+ MAXPRIME = PRIME4
730
+
731
+ pixels = None
732
+ samplefac = None
733
+
734
+ a_s = None
735
+
736
+
737
+ def setconstants(self, samplefac, colors):
738
+ self.NCYCLES = 100 # Number of learning cycles
739
+ self.NETSIZE = colors # Number of colours used
740
+ self.SPECIALS = 3 # Number of reserved colours used
741
+ self.BGCOLOR = self.SPECIALS-1 # Reserved background colour
742
+ self.CUTNETSIZE = self.NETSIZE - self.SPECIALS
743
+ self.MAXNETPOS = self.NETSIZE - 1
744
+
745
+ self.INITRAD = self.NETSIZE/8 # For 256 colours, radius starts at 32
746
+ self.RADIUSBIASSHIFT = 6
747
+ self.RADIUSBIAS = 1 << self.RADIUSBIASSHIFT
748
+ self.INITBIASRADIUS = self.INITRAD * self.RADIUSBIAS
749
+ self.RADIUSDEC = 30 # Factor of 1/30 each cycle
750
+
751
+ self.ALPHABIASSHIFT = 10 # Alpha starts at 1
752
+ self.INITALPHA = 1 << self.ALPHABIASSHIFT # biased by 10 bits
753
+
754
+ self.GAMMA = 1024.0
755
+ self.BETA = 1.0/1024.0
756
+ self.BETAGAMMA = self.BETA * self.GAMMA
757
+
758
+ self.network = np.empty((self.NETSIZE, 3), dtype='float64') # The network itself
759
+ self.colormap = np.empty((self.NETSIZE, 4), dtype='int32') # The network itself
760
+
761
+ self.netindex = np.empty(256, dtype='int32') # For network lookup - really 256
762
+
763
+ self.bias = np.empty(self.NETSIZE, dtype='float64') # Bias and freq arrays for learning
764
+ self.freq = np.empty(self.NETSIZE, dtype='float64')
765
+
766
+ self.pixels = None
767
+ self.samplefac = samplefac
768
+
769
+ self.a_s = {}
770
+
771
+ def __init__(self, image, samplefac=10, colors=256):
772
+
773
+ # Check Numpy
774
+ if np is None:
775
+ raise RuntimeError("Need Numpy for the NeuQuant algorithm.")
776
+
777
+ # Check image
778
+ if image.size[0] * image.size[1] < NeuQuant.MAXPRIME:
779
+ raise IOError("Image is too small")
780
+ if image.mode != "RGBA":
781
+ raise IOError("Image mode should be RGBA.")
782
+
783
+ # Initialize
784
+ self.setconstants(samplefac, colors)
785
+ self.pixels = np.fromstring(image.tostring(), np.uint32)
786
+ self.setUpArrays()
787
+
788
+ self.learn()
789
+ self.fix()
790
+ self.inxbuild()
791
+
792
+ def writeColourMap(self, rgb, outstream):
793
+ for i in range(self.NETSIZE):
794
+ bb = self.colormap[i,0];
795
+ gg = self.colormap[i,1];
796
+ rr = self.colormap[i,2];
797
+ outstream.write(rr if rgb else bb)
798
+ outstream.write(gg)
799
+ outstream.write(bb if rgb else rr)
800
+ return self.NETSIZE
801
+
802
+ def setUpArrays(self):
803
+ self.network[0,0] = 0.0 # Black
804
+ self.network[0,1] = 0.0
805
+ self.network[0,2] = 0.0
806
+
807
+ self.network[1,0] = 255.0 # White
808
+ self.network[1,1] = 255.0
809
+ self.network[1,2] = 255.0
810
+
811
+ # RESERVED self.BGCOLOR # Background
812
+
813
+ for i in range(self.SPECIALS):
814
+ self.freq[i] = 1.0 / self.NETSIZE
815
+ self.bias[i] = 0.0
816
+
817
+ for i in range(self.SPECIALS, self.NETSIZE):
818
+ p = self.network[i]
819
+ p[:] = (255.0 * (i-self.SPECIALS)) / self.CUTNETSIZE
820
+
821
+ self.freq[i] = 1.0 / self.NETSIZE
822
+ self.bias[i] = 0.0
823
+
824
+ # Omitted: setPixels
825
+
826
+ def altersingle(self, alpha, i, b, g, r):
827
+ """Move neuron i towards biased (b,g,r) by factor alpha"""
828
+ n = self.network[i] # Alter hit neuron
829
+ n[0] -= (alpha*(n[0] - b))
830
+ n[1] -= (alpha*(n[1] - g))
831
+ n[2] -= (alpha*(n[2] - r))
832
+
833
+ def geta(self, alpha, rad):
834
+ try:
835
+ return self.a_s[(alpha, rad)]
836
+ except KeyError:
837
+ length = rad*2-1
838
+ mid = length/2
839
+ q = np.array(list(range(mid-1,-1,-1))+list(range(-1,mid)))
840
+ a = alpha*(rad*rad - q*q)/(rad*rad)
841
+ a[mid] = 0
842
+ self.a_s[(alpha, rad)] = a
843
+ return a
844
+
845
+ def alterneigh(self, alpha, rad, i, b, g, r):
846
+ if i-rad >= self.SPECIALS-1:
847
+ lo = i-rad
848
+ start = 0
849
+ else:
850
+ lo = self.SPECIALS-1
851
+ start = (self.SPECIALS-1 - (i-rad))
852
+
853
+ if i+rad <= self.NETSIZE:
854
+ hi = i+rad
855
+ end = rad*2-1
856
+ else:
857
+ hi = self.NETSIZE
858
+ end = (self.NETSIZE - (i+rad))
859
+
860
+ a = self.geta(alpha, rad)[start:end]
861
+
862
+ p = self.network[lo+1:hi]
863
+ p -= np.transpose(np.transpose(p - np.array([b, g, r])) * a)
864
+
865
+ #def contest(self, b, g, r):
866
+ # """ Search for biased BGR values
867
+ # Finds closest neuron (min dist) and updates self.freq
868
+ # finds best neuron (min dist-self.bias) and returns position
869
+ # for frequently chosen neurons, self.freq[i] is high and self.bias[i] is negative
870
+ # self.bias[i] = self.GAMMA*((1/self.NETSIZE)-self.freq[i])"""
871
+ #
872
+ # i, j = self.SPECIALS, self.NETSIZE
873
+ # dists = abs(self.network[i:j] - np.array([b,g,r])).sum(1)
874
+ # bestpos = i + np.argmin(dists)
875
+ # biasdists = dists - self.bias[i:j]
876
+ # bestbiaspos = i + np.argmin(biasdists)
877
+ # self.freq[i:j] -= self.BETA * self.freq[i:j]
878
+ # self.bias[i:j] += self.BETAGAMMA * self.freq[i:j]
879
+ # self.freq[bestpos] += self.BETA
880
+ # self.bias[bestpos] -= self.BETAGAMMA
881
+ # return bestbiaspos
882
+ def contest(self, b, g, r):
883
+ """ Search for biased BGR values
884
+ Finds closest neuron (min dist) and updates self.freq
885
+ finds best neuron (min dist-self.bias) and returns position
886
+ for frequently chosen neurons, self.freq[i] is high and self.bias[i] is negative
887
+ self.bias[i] = self.GAMMA*((1/self.NETSIZE)-self.freq[i])"""
888
+ i, j = self.SPECIALS, self.NETSIZE
889
+ dists = abs(self.network[i:j] - np.array([b,g,r])).sum(1)
890
+ bestpos = i + np.argmin(dists)
891
+ biasdists = dists - self.bias[i:j]
892
+ bestbiaspos = i + np.argmin(biasdists)
893
+ self.freq[i:j] *= (1-self.BETA)
894
+ self.bias[i:j] += self.BETAGAMMA * self.freq[i:j]
895
+ self.freq[bestpos] += self.BETA
896
+ self.bias[bestpos] -= self.BETAGAMMA
897
+ return bestbiaspos
898
+
899
+
900
+
901
+
902
+ def specialFind(self, b, g, r):
903
+ for i in range(self.SPECIALS):
904
+ n = self.network[i]
905
+ if n[0] == b and n[1] == g and n[2] == r:
906
+ return i
907
+ return -1
908
+
909
+ def learn(self):
910
+ biasRadius = self.INITBIASRADIUS
911
+ alphadec = 30 + ((self.samplefac-1)/3)
912
+ lengthcount = self.pixels.size
913
+ samplepixels = lengthcount / self.samplefac
914
+ delta = samplepixels / self.NCYCLES
915
+ alpha = self.INITALPHA
916
+
917
+ i = 0;
918
+ rad = biasRadius >> self.RADIUSBIASSHIFT
919
+ if rad <= 1:
920
+ rad = 0
921
+
922
+ print("Beginning 1D learning: samplepixels = %1.2f rad = %i" %
923
+ (samplepixels, rad) )
924
+ step = 0
925
+ pos = 0
926
+ if lengthcount%NeuQuant.PRIME1 != 0:
927
+ step = NeuQuant.PRIME1
928
+ elif lengthcount%NeuQuant.PRIME2 != 0:
929
+ step = NeuQuant.PRIME2
930
+ elif lengthcount%NeuQuant.PRIME3 != 0:
931
+ step = NeuQuant.PRIME3
932
+ else:
933
+ step = NeuQuant.PRIME4
934
+
935
+ i = 0
936
+ printed_string = ''
937
+ while i < samplepixels:
938
+ if i%100 == 99:
939
+ tmp = '\b'*len(printed_string)
940
+ printed_string = str((i+1)*100/samplepixels)+"%\n"
941
+ print(tmp + printed_string)
942
+ p = self.pixels[pos]
943
+ r = (p >> 16) & 0xff
944
+ g = (p >> 8) & 0xff
945
+ b = (p ) & 0xff
946
+
947
+ if i == 0: # Remember background colour
948
+ self.network[self.BGCOLOR] = [b, g, r]
949
+
950
+ j = self.specialFind(b, g, r)
951
+ if j < 0:
952
+ j = self.contest(b, g, r)
953
+
954
+ if j >= self.SPECIALS: # Don't learn for specials
955
+ a = (1.0 * alpha) / self.INITALPHA
956
+ self.altersingle(a, j, b, g, r)
957
+ if rad > 0:
958
+ self.alterneigh(a, rad, j, b, g, r)
959
+
960
+ pos = (pos+step)%lengthcount
961
+
962
+ i += 1
963
+ if i%delta == 0:
964
+ alpha -= alpha / alphadec
965
+ biasRadius -= biasRadius / self.RADIUSDEC
966
+ rad = biasRadius >> self.RADIUSBIASSHIFT
967
+ if rad <= 1:
968
+ rad = 0
969
+
970
+ finalAlpha = (1.0*alpha)/self.INITALPHA
971
+ print("Finished 1D learning: final alpha = %1.2f!" % finalAlpha)
972
+
973
+ def fix(self):
974
+ for i in range(self.NETSIZE):
975
+ for j in range(3):
976
+ x = int(0.5 + self.network[i,j])
977
+ x = max(0, x)
978
+ x = min(255, x)
979
+ self.colormap[i,j] = x
980
+ self.colormap[i,3] = i
981
+
982
+ def inxbuild(self):
983
+ previouscol = 0
984
+ startpos = 0
985
+ for i in range(self.NETSIZE):
986
+ p = self.colormap[i]
987
+ q = None
988
+ smallpos = i
989
+ smallval = p[1] # Index on g
990
+ # Find smallest in i..self.NETSIZE-1
991
+ for j in range(i+1, self.NETSIZE):
992
+ q = self.colormap[j]
993
+ if q[1] < smallval: # Index on g
994
+ smallpos = j
995
+ smallval = q[1] # Index on g
996
+
997
+ q = self.colormap[smallpos]
998
+ # Swap p (i) and q (smallpos) entries
999
+ if i != smallpos:
1000
+ p[:],q[:] = q, p.copy()
1001
+
1002
+ # smallval entry is now in position i
1003
+ if smallval != previouscol:
1004
+ self.netindex[previouscol] = (startpos+i) >> 1
1005
+ for j in range(previouscol+1, smallval):
1006
+ self.netindex[j] = i
1007
+ previouscol = smallval
1008
+ startpos = i
1009
+ self.netindex[previouscol] = (startpos+self.MAXNETPOS) >> 1
1010
+ for j in range(previouscol+1, 256): # Really 256
1011
+ self.netindex[j] = self.MAXNETPOS
1012
+
1013
+
1014
+ def paletteImage(self):
1015
+ """ PIL weird interface for making a paletted image: create an image which
1016
+ already has the palette, and use that in Image.quantize. This function
1017
+ returns this palette image. """
1018
+ if self.pimage is None:
1019
+ palette = []
1020
+ for i in range(self.NETSIZE):
1021
+ palette.extend(self.colormap[i][:3])
1022
+
1023
+ palette.extend([0]*(256-self.NETSIZE)*3)
1024
+
1025
+ # a palette image to use for quant
1026
+ self.pimage = Image.new("P", (1, 1), 0)
1027
+ self.pimage.putpalette(palette)
1028
+ return self.pimage
1029
+
1030
+
1031
+ def quantize(self, image):
1032
+ """ Use a kdtree to quickly find the closest palette colors for the pixels """
1033
+ if get_cKDTree():
1034
+ return self.quantize_with_scipy(image)
1035
+ else:
1036
+ print('Scipy not available, falling back to slower version.')
1037
+ return self.quantize_without_scipy(image)
1038
+
1039
+
1040
+ def quantize_with_scipy(self, image):
1041
+ w,h = image.size
1042
+ px = np.asarray(image).copy()
1043
+ px2 = px[:,:,:3].reshape((w*h,3))
1044
+
1045
+ cKDTree = get_cKDTree()
1046
+ kdtree = cKDTree(self.colormap[:,:3],leafsize=10)
1047
+ result = kdtree.query(px2)
1048
+ colorindex = result[1]
1049
+ print("Distance: %1.2f" % (result[0].sum()/(w*h)) )
1050
+ px2[:] = self.colormap[colorindex,:3]
1051
+
1052
+ return Image.fromarray(px).convert("RGB").quantize(palette=self.paletteImage())
1053
+
1054
+
1055
+ def quantize_without_scipy(self, image):
1056
+ """" This function can be used if no scipy is availabe.
1057
+ It's 7 times slower though.
1058
+ """
1059
+ w,h = image.size
1060
+ px = np.asarray(image).copy()
1061
+ memo = {}
1062
+ for j in range(w):
1063
+ for i in range(h):
1064
+ key = (px[i,j,0],px[i,j,1],px[i,j,2])
1065
+ try:
1066
+ val = memo[key]
1067
+ except KeyError:
1068
+ val = self.convert(*key)
1069
+ memo[key] = val
1070
+ px[i,j,0],px[i,j,1],px[i,j,2] = val
1071
+ return Image.fromarray(px).convert("RGB").quantize(palette=self.paletteImage())
1072
+
1073
+ def convert(self, *color):
1074
+ i = self.inxsearch(*color)
1075
+ return self.colormap[i,:3]
1076
+
1077
+ def inxsearch(self, r, g, b):
1078
+ """Search for BGR values 0..255 and return colour index"""
1079
+ dists = (self.colormap[:,:3] - np.array([r,g,b]))
1080
+ a= np.argmin((dists*dists).sum(1))
1081
+ return a
1082
+
1083
+
1084
+
1085
+ if __name__ == '__main__':
1086
+ im = np.zeros((200,200), dtype=np.uint8)
1087
+ im[10:30,:] = 100
1088
+ im[:,80:120] = 255
1089
+ im[-50:-40,:] = 50
1090
+
1091
+ images = [im*1.0, im*0.8, im*0.6, im*0.4, im*0]
1092
+ writeGif('lala3.gif',images, duration=0.5, dither=0)
build/lib/legofy/images2gif_py3.py ADDED
@@ -0,0 +1,1095 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # -*- coding: utf-8 -*-
2
+ # Copyright (C) 2012, Almar Klein, Ant1, Marius van Voorden
3
+ #
4
+ # This code is subject to the (new) BSD license:
5
+ #
6
+ # Redistribution and use in source and binary forms, with or without
7
+ # modification, are permitted provided that the following conditions are met:
8
+ # * Redistributions of source code must retain the above copyright
9
+ # notice, this list of conditions and the following disclaimer.
10
+ # * Redistributions in binary form must reproduce the above copyright
11
+ # notice, this list of conditions and the following disclaimer in the
12
+ # documentation and/or other materials provided with the distribution.
13
+ # * Neither the name of the <organization> nor the
14
+ # names of its contributors may be used to endorse or promote products
15
+ # derived from this software without specific prior written permission.
16
+ #
17
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18
+ # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
+ # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20
+ # ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
21
+ # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22
+ # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23
+ # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
24
+ # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25
+ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
26
+ # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
+
28
+ """ Module images2gif
29
+
30
+ Provides functionality for reading and writing animated GIF images.
31
+ Use writeGif to write a series of numpy arrays or PIL images as an
32
+ animated GIF. Use readGif to read an animated gif as a series of numpy
33
+ arrays.
34
+
35
+ Note that since July 2004, all patents on the LZW compression patent have
36
+ expired. Therefore the GIF format may now be used freely.
37
+
38
+ Acknowledgements
39
+ ----------------
40
+
41
+ Many thanks to Ant1 for:
42
+ * noting the use of "palette=PIL.Image.ADAPTIVE", which significantly
43
+ improves the results.
44
+ * the modifications to save each image with its own palette, or optionally
45
+ the global palette (if its the same).
46
+
47
+ Many thanks to Marius van Voorden for porting the NeuQuant quantization
48
+ algorithm of Anthony Dekker to Python (See the NeuQuant class for its
49
+ license).
50
+
51
+ Many thanks to Alex Robinson for implementing the concept of subrectangles,
52
+ which (depening on image content) can give a very significant reduction in
53
+ file size.
54
+
55
+ This code is based on gifmaker (in the scripts folder of the source
56
+ distribution of PIL)
57
+
58
+
59
+ Usefull links
60
+ -------------
61
+ * http://tronche.com/computer-graphics/gif/
62
+ * http://en.wikipedia.org/wiki/Graphics_Interchange_Format
63
+ * http://www.w3.org/Graphics/GIF/spec-gif89a.txt
64
+
65
+ """
66
+ # todo: This module should be part of imageio (or at least based on)
67
+
68
+ import os, time
69
+
70
+ try:
71
+ import PIL
72
+ from PIL import Image
73
+ from PIL.GifImagePlugin import getheader, getdata
74
+ except ImportError:
75
+ PIL = None
76
+
77
+ try:
78
+ import numpy as np
79
+ except ImportError:
80
+ np = None
81
+
82
+ def get_cKDTree():
83
+ try:
84
+ from scipy.spatial import cKDTree
85
+ except ImportError:
86
+ cKDTree = None
87
+ return cKDTree
88
+
89
+
90
+ # getheader gives a 87a header and a color palette (two elements in a list).
91
+ # getdata()[0] gives the Image Descriptor up to (including) "LZW min code size".
92
+ # getdatas()[1:] is the image data itself in chuncks of 256 bytes (well
93
+ # technically the first byte says how many bytes follow, after which that
94
+ # amount (max 255) follows).
95
+
96
+ def checkImages(images):
97
+ """ checkImages(images)
98
+ Check numpy images and correct intensity range etc.
99
+ The same for all movie formats.
100
+ """
101
+ # Init results
102
+ images2 = []
103
+
104
+ for im in images:
105
+ if PIL and isinstance(im, PIL.Image.Image):
106
+ # We assume PIL images are allright
107
+ images2.append(im)
108
+
109
+ elif np and isinstance(im, np.ndarray):
110
+ # Check and convert dtype
111
+ if im.dtype == np.uint8:
112
+ images2.append(im) # Ok
113
+ elif im.dtype in [np.float32, np.float64]:
114
+ im = im.copy()
115
+ im[im<0] = 0
116
+ im[im>1] = 1
117
+ im *= 255
118
+ images2.append( im.astype(np.uint8) )
119
+ else:
120
+ im = im.astype(np.uint8)
121
+ images2.append(im)
122
+ # Check size
123
+ if im.ndim == 2:
124
+ pass # ok
125
+ elif im.ndim == 3:
126
+ if im.shape[2] not in [3,4]:
127
+ raise ValueError('This array can not represent an image.')
128
+ else:
129
+ raise ValueError('This array can not represent an image.')
130
+ else:
131
+ raise ValueError('Invalid image type: ' + str(type(im)))
132
+
133
+ # Done
134
+ return images2
135
+
136
+
137
+ def intToBin(i):
138
+ """ Integer to two bytes """
139
+ # devide in two parts (bytes)
140
+ i1 = i % 256
141
+ i2 = int( i/256)
142
+ # make string (little endian)
143
+ return i.to_bytes(2,byteorder='little')
144
+
145
+
146
+ class GifWriter:
147
+ """ GifWriter()
148
+
149
+ Class that contains methods for helping write the animated GIF file.
150
+
151
+ """
152
+
153
+ def getheaderAnim(self, im):
154
+ """ getheaderAnim(im)
155
+
156
+ Get animation header. To replace PILs getheader()[0]
157
+
158
+ """
159
+ bb = b'GIF89a'
160
+ bb += intToBin(im.size[0])
161
+ bb += intToBin(im.size[1])
162
+ bb += b'\x87\x00\x00'
163
+ return bb
164
+
165
+
166
+ def getImageDescriptor(self, im, xy=None):
167
+ """ getImageDescriptor(im, xy=None)
168
+
169
+ Used for the local color table properties per image.
170
+ Otherwise global color table applies to all frames irrespective of
171
+ whether additional colors comes in play that require a redefined
172
+ palette. Still a maximum of 256 color per frame, obviously.
173
+
174
+ Written by Ant1 on 2010-08-22
175
+ Modified by Alex Robinson in Janurari 2011 to implement subrectangles.
176
+
177
+ """
178
+
179
+ # Defaule use full image and place at upper left
180
+ if xy is None:
181
+ xy = (0,0)
182
+
183
+ # Image separator,
184
+ bb = b'\x2C'
185
+
186
+ # Image position and size
187
+ bb += intToBin( xy[0] ) # Left position
188
+ bb += intToBin( xy[1] ) # Top position
189
+ bb += intToBin( im.size[0] ) # image width
190
+ bb += intToBin( im.size[1] ) # image height
191
+
192
+ # packed field: local color table flag1, interlace0, sorted table0,
193
+ # reserved00, lct size111=7=2^(7+1)=256.
194
+ bb += b'\x87'
195
+
196
+ # LZW minimum size code now comes later, begining of [image data] blocks
197
+ return bb
198
+
199
+
200
+ def getAppExt(self, loops=float('inf')):
201
+ """ getAppExt(loops=float('inf'))
202
+
203
+ Application extention. This part specifies the amount of loops.
204
+ If loops is 0 or inf, it goes on infinitely.
205
+
206
+ """
207
+
208
+ if loops==0 or loops==float('inf'):
209
+ loops = 2**16-1
210
+ #bb = "" # application extension should not be used
211
+ # (the extension interprets zero loops
212
+ # to mean an infinite number of loops)
213
+ # Mmm, does not seem to work
214
+ if True:
215
+ bb = b"\x21\xFF\x0B" # application extension
216
+ bb += b"NETSCAPE2.0"
217
+ bb += b"\x03\x01"
218
+ bb += intToBin(loops)
219
+ bb += b'\x00' # end
220
+ return bb
221
+
222
+
223
+ def getGraphicsControlExt(self, duration=0.1, dispose=2,transparent_flag=0,transparency_index=0):
224
+ """ getGraphicsControlExt(duration=0.1, dispose=2)
225
+
226
+ Graphics Control Extension. A sort of header at the start of
227
+ each image. Specifies duration and transparancy.
228
+
229
+ Dispose
230
+ -------
231
+ * 0 - No disposal specified.
232
+ * 1 - Do not dispose. The graphic is to be left in place.
233
+ * 2 - Restore to background color. The area used by the graphic
234
+ must be restored to the background color.
235
+ * 3 - Restore to previous. The decoder is required to restore the
236
+ area overwritten by the graphic with what was there prior to
237
+ rendering the graphic.
238
+ * 4-7 -To be defined.
239
+
240
+ """
241
+
242
+ bb = b'\x21\xF9\x04'
243
+ bb += bytes([((dispose & 3) << 2)|(transparent_flag & 1)]) # low bit 1 == transparency,
244
+ # 2nd bit 1 == user input , next 3 bits, the low two of which are used,
245
+ # are dispose.
246
+ bb += intToBin( int(duration*100) ) # in 100th of seconds
247
+ bb += bytes([transparency_index])
248
+ bb += b'\x00' # end
249
+ return bb
250
+
251
+
252
+ def handleSubRectangles(self, images, subRectangles):
253
+ """ handleSubRectangles(images)
254
+
255
+ Handle the sub-rectangle stuff. If the rectangles are given by the
256
+ user, the values are checked. Otherwise the subrectangles are
257
+ calculated automatically.
258
+
259
+ """
260
+
261
+ image_info = []
262
+
263
+ for im in images:
264
+ if hasattr(im, 'flags'):
265
+ image_info.append(im.flags)
266
+
267
+ if isinstance(subRectangles, (tuple, list)):
268
+ # xy given directly
269
+
270
+ # Check xy
271
+ xy = subRectangles
272
+ if xy is None:
273
+ xy = (0, 0)
274
+ if hasattr(xy, '__len__'):
275
+ if len(xy) == len(images):
276
+ xy = [xxyy for xxyy in xy]
277
+ else:
278
+ raise ValueError("len(xy) doesn't match amount of images.")
279
+ else:
280
+ xy = [xy for im in images]
281
+ xy[0] = (0, 0)
282
+
283
+ else:
284
+ # Calculate xy using some basic image processing
285
+
286
+ # Check Numpy
287
+ if np is None:
288
+ raise RuntimeError("Need Numpy to use auto-subRectangles.")
289
+
290
+ # First make numpy arrays if required
291
+ for i in range(len(images)):
292
+ im = images[i]
293
+ if isinstance(im, Image.Image):
294
+ tmp = im.convert() # Make without palette
295
+ a = np.asarray(tmp)
296
+ if len(a.shape)==0:
297
+ raise MemoryError("Too little memory to convert PIL image to array")
298
+ images[i] = a
299
+
300
+ # Determine the sub rectangles
301
+ images, xy = self.getSubRectangles(images)
302
+
303
+ # Done
304
+ return images, xy, image_info
305
+
306
+
307
+ def getSubRectangles(self, ims):
308
+ """ getSubRectangles(ims)
309
+
310
+ Calculate the minimal rectangles that need updating each frame.
311
+ Returns a two-element tuple containing the cropped images and a
312
+ list of x-y positions.
313
+
314
+ Calculating the subrectangles takes extra time, obviously. However,
315
+ if the image sizes were reduced, the actual writing of the GIF
316
+ goes faster. In some cases applying this method produces a GIF faster.
317
+
318
+ """
319
+
320
+ # Check image count
321
+ if len(ims) < 2:
322
+ return ims, [(0,0) for i in ims]
323
+
324
+ # We need numpy
325
+ if np is None:
326
+ raise RuntimeError("Need Numpy to calculate sub-rectangles. ")
327
+
328
+ # Prepare
329
+ ims2 = [ims[0]]
330
+ xy = [(0,0)]
331
+ t0 = time.time()
332
+
333
+ # Iterate over images
334
+ prev = ims[0]
335
+ for im in ims[1:]:
336
+
337
+ # Get difference, sum over colors
338
+ diff = np.abs(im-prev)
339
+ if diff.ndim==3:
340
+ diff = diff.sum(2)
341
+ # Get begin and end for both dimensions
342
+ X = np.argwhere(diff.sum(0))
343
+ Y = np.argwhere(diff.sum(1))
344
+ # Get rect coordinates
345
+ if X.size and Y.size:
346
+ x0, x1 = int(X[0][0]), int(X[-1][0]+1)
347
+ y0, y1 = int(Y[0][0]), int(Y[-1][0]+1)
348
+ else: # No change ... make it minimal
349
+ x0, x1 = 0, 2
350
+ y0, y1 = 0, 2
351
+
352
+ # Cut out and store
353
+ im2 = im[y0:y1,x0:x1]
354
+ prev = im
355
+ ims2.append(im2)
356
+ xy.append((x0,y0))
357
+
358
+ # Done
359
+ #print('%1.2f seconds to determine subrectangles of %i images' %
360
+ # (time.time()-t0, len(ims2)) )
361
+ return ims2, xy
362
+
363
+
364
+ def convertImagesToPIL(self, images, dither, nq=0,images_info=None):
365
+ """ convertImagesToPIL(images, nq=0)
366
+
367
+ Convert images to Paletted PIL images, which can then be
368
+ written to a single animaged GIF.
369
+
370
+ """
371
+
372
+ # Convert to PIL images
373
+ images2 = []
374
+ for im in images:
375
+ if isinstance(im, Image.Image):
376
+ images2.append(im)
377
+ elif np and isinstance(im, np.ndarray):
378
+ if im.ndim==3 and im.shape[2]==3:
379
+ im = Image.fromarray(im,'RGB')
380
+ elif im.ndim==3 and im.shape[2]==4:
381
+ # im = Image.fromarray(im[:,:,:3],'RGB')
382
+ self.transparency = True
383
+ im = Image.fromarray(im[:,:,:4],'RGBA')
384
+ elif im.ndim==2:
385
+ im = Image.fromarray(im,'L')
386
+ images2.append(im)
387
+
388
+ # Convert to paletted PIL images
389
+ images, images2 = images2, []
390
+ if nq >= 1:
391
+ # NeuQuant algorithm
392
+ for im in images:
393
+ im = im.convert("RGBA") # NQ assumes RGBA
394
+ nqInstance = NeuQuant(im, int(nq)) # Learn colors from image
395
+ if dither:
396
+ im = im.convert("RGB").quantize(palette=nqInstance.paletteImage(),colors=255)
397
+ else:
398
+ im = nqInstance.quantize(im,colors=255) # Use to quantize the image itself
399
+
400
+ self.transparency = True # since NQ assumes transparency
401
+ if self.transparency:
402
+ alpha = im.split()[3]
403
+ mask = Image.eval(alpha, lambda a: 255 if a <=128 else 0)
404
+ im.paste(255,mask=mask)
405
+ images2.append(im)
406
+ else:
407
+ # Adaptive PIL algorithm
408
+ AD = Image.ADAPTIVE
409
+ # for index,im in enumerate(images):
410
+ for i in range(len(images)):
411
+ im = images[i].convert('RGB').convert('P', palette=AD, dither=dither,colors=255)
412
+ if self.transparency:
413
+ alpha = images[i].split()[3]
414
+ mask = Image.eval(alpha, lambda a: 255 if a <=128 else 0)
415
+ im.paste(255,mask=mask)
416
+ images2.append(im)
417
+
418
+ # Done
419
+ return images2
420
+
421
+
422
+ def writeGifToFile(self, fp, images, durations, loops, xys, disposes):
423
+ """ writeGifToFile(fp, images, durations, loops, xys, disposes)
424
+
425
+ Given a set of images writes the bytes to the specified stream.
426
+
427
+ """
428
+
429
+ # Obtain palette for all images and count each occurance
430
+ palettes, occur = [], []
431
+ for im in images:
432
+ palettes.append( getheader(im)[0][3] )
433
+ for palette in palettes:
434
+ occur.append( palettes.count( palette ) )
435
+
436
+ # Select most-used palette as the global one (or first in case no max)
437
+ globalPalette = palettes[ occur.index(max(occur)) ]
438
+
439
+ # Init
440
+ frames = 0
441
+ firstFrame = True
442
+
443
+
444
+ for im, palette in zip(images, palettes):
445
+
446
+ if firstFrame:
447
+ # Write header
448
+
449
+ # Gather info
450
+ header = self.getheaderAnim(im)
451
+ appext = self.getAppExt(loops)
452
+
453
+ # Write
454
+ fp.write(header)
455
+ fp.write(globalPalette)
456
+ fp.write(appext)
457
+
458
+ # Next frame is not the first
459
+ firstFrame = False
460
+
461
+ if True:
462
+ # Write palette and image data
463
+
464
+ # Gather info
465
+ data = getdata(im)
466
+ imdes, data = data[0], data[1:]
467
+
468
+ transparent_flag = 0
469
+ if self.transparency: transparent_flag = 1
470
+
471
+ graphext = self.getGraphicsControlExt(durations[frames],
472
+ disposes[frames],transparent_flag=transparent_flag,transparency_index=255)
473
+
474
+ # Make image descriptor suitable for using 256 local color palette
475
+ lid = self.getImageDescriptor(im, xys[frames])
476
+
477
+ # Write local header
478
+ if (palette != globalPalette) or (disposes[frames] != 2):
479
+ # Use local color palette
480
+ fp.write(graphext)
481
+ fp.write(lid) # write suitable image descriptor
482
+ fp.write(palette) # write local color table
483
+ fp.write(b'\x08') # LZW minimum size code
484
+ else:
485
+ # Use global color palette
486
+ fp.write(graphext)
487
+ fp.write(imdes) # write suitable image descriptor
488
+
489
+ # Write image data
490
+ for d in data:
491
+ fp.write(d)
492
+
493
+ # Prepare for next round
494
+ frames = frames + 1
495
+
496
+ fp.write(b';') # end gif
497
+ return frames
498
+
499
+
500
+
501
+
502
+ ## Exposed functions
503
+
504
+ def writeGif(filename, images, duration=0.1, repeat=True, dither=False,
505
+ nq=0, subRectangles=True, dispose=None):
506
+ """ writeGif(filename, images, duration=0.1, repeat=True, dither=False,
507
+ nq=0, subRectangles=True, dispose=None)
508
+
509
+ Write an animated gif from the specified images.
510
+
511
+ Parameters
512
+ ----------
513
+ filename : string
514
+ The name of the file to write the image to.
515
+ images : list
516
+ Should be a list consisting of PIL images or numpy arrays.
517
+ The latter should be between 0 and 255 for integer types, and
518
+ between 0 and 1 for float types.
519
+ duration : scalar or list of scalars
520
+ The duration for all frames, or (if a list) for each frame.
521
+ repeat : bool or integer
522
+ The amount of loops. If True, loops infinitetely.
523
+ dither : bool
524
+ Whether to apply dithering
525
+ nq : integer
526
+ If nonzero, applies the NeuQuant quantization algorithm to create
527
+ the color palette. This algorithm is superior, but slower than
528
+ the standard PIL algorithm. The value of nq is the quality
529
+ parameter. 1 represents the best quality. 10 is in general a
530
+ good tradeoff between quality and speed. When using this option,
531
+ better results are usually obtained when subRectangles is False.
532
+ subRectangles : False, True, or a list of 2-element tuples
533
+ Whether to use sub-rectangles. If True, the minimal rectangle that
534
+ is required to update each frame is automatically detected. This
535
+ can give significant reductions in file size, particularly if only
536
+ a part of the image changes. One can also give a list of x-y
537
+ coordinates if you want to do the cropping yourself. The default
538
+ is True.
539
+ dispose : int
540
+ How to dispose each frame. 1 means that each frame is to be left
541
+ in place. 2 means the background color should be restored after
542
+ each frame. 3 means the decoder should restore the previous frame.
543
+ If subRectangles==False, the default is 2, otherwise it is 1.
544
+
545
+ """
546
+
547
+ # Check PIL
548
+ if PIL is None:
549
+ raise RuntimeError("Need PIL to write animated gif files.")
550
+
551
+ # Check images
552
+ images = checkImages(images)
553
+
554
+ # Instantiate writer object
555
+ gifWriter = GifWriter()
556
+ gifWriter.transparency = False # init transparency flag used in GifWriter functions
557
+
558
+ # Check loops
559
+ if repeat is False:
560
+ loops = 1
561
+ elif repeat is True:
562
+ loops = 0 # zero means infinite
563
+ else:
564
+ loops = int(repeat)
565
+
566
+ # Check duration
567
+ if hasattr(duration, '__len__'):
568
+ if len(duration) == len(images):
569
+ duration = [d for d in duration]
570
+ else:
571
+ raise ValueError("len(duration) doesn't match amount of images.")
572
+ else:
573
+ duration = [duration for im in images]
574
+
575
+ # Check subrectangles
576
+ if subRectangles:
577
+ images, xy, images_info = gifWriter.handleSubRectangles(images, subRectangles)
578
+ defaultDispose = 1 # Leave image in place
579
+ else:
580
+ # Normal mode
581
+ xy = [(0,0) for im in images]
582
+ defaultDispose = 2 # Restore to background color.
583
+
584
+ # Check dispose
585
+ if dispose is None:
586
+ dispose = defaultDispose
587
+ if hasattr(dispose, '__len__'):
588
+ if len(dispose) != len(images):
589
+ raise ValueError("len(xy) doesn't match amount of images.")
590
+ else:
591
+ dispose = [dispose for im in images]
592
+
593
+ # Make images in a format that we can write easy
594
+ images = gifWriter.convertImagesToPIL(images, dither, nq)
595
+
596
+ # Write
597
+ fp = open(filename, 'wb')
598
+ try:
599
+ gifWriter.writeGifToFile(fp, images, duration, loops, xy, dispose)
600
+ finally:
601
+ fp.close()
602
+
603
+
604
+
605
+ def readGif(filename, asNumpy=True):
606
+ """ readGif(filename, asNumpy=True)
607
+
608
+ Read images from an animated GIF file. Returns a list of numpy
609
+ arrays, or, if asNumpy is false, a list if PIL images.
610
+
611
+ """
612
+
613
+ # Check PIL
614
+ if PIL is None:
615
+ raise RuntimeError("Need PIL to read animated gif files.")
616
+
617
+ # Check Numpy
618
+ if np is None:
619
+ raise RuntimeError("Need Numpy to read animated gif files.")
620
+
621
+ # Check whether it exists
622
+ if not os.path.isfile(filename):
623
+ raise IOError('File not found: '+str(filename))
624
+
625
+ # Load file using PIL
626
+ pilIm = PIL.Image.open(filename)
627
+ pilIm.seek(0)
628
+
629
+ # Read all images inside
630
+ images = []
631
+ try:
632
+ while True:
633
+ # Get image as numpy array
634
+ tmp = pilIm.convert() # Make without palette
635
+ a = np.asarray(tmp)
636
+ if len(a.shape)==0:
637
+ raise MemoryError("Too little memory to convert PIL image to array")
638
+ # Store, and next
639
+ images.append(a)
640
+ pilIm.seek(pilIm.tell()+1)
641
+ except EOFError:
642
+ pass
643
+
644
+ # Convert to normal PIL images if needed
645
+ if not asNumpy:
646
+ images2 = images
647
+ images = []
648
+ for index,im in enumerate(images2):
649
+ tmp = PIL.Image.fromarray(im)
650
+ images.append(tmp)
651
+
652
+ # Done
653
+ return images
654
+
655
+
656
+ class NeuQuant:
657
+ """ NeuQuant(image, samplefac=10, colors=256)
658
+
659
+ samplefac should be an integer number of 1 or higher, 1
660
+ being the highest quality, but the slowest performance.
661
+ With avalue of 10, one tenth of all pixels are used during
662
+ training. This value seems a nice tradeof between speed
663
+ and quality.
664
+
665
+ colors is the amount of colors to reduce the image to. This
666
+ should best be a power of two.
667
+
668
+ See also:
669
+ http://members.ozemail.com.au/~dekker/NEUQUANT.HTML
670
+
671
+ License of the NeuQuant Neural-Net Quantization Algorithm
672
+ ---------------------------------------------------------
673
+
674
+ Copyright (c) 1994 Anthony Dekker
675
+ Ported to python by Marius van Voorden in 2010
676
+
677
+ NEUQUANT Neural-Net quantization algorithm by Anthony Dekker, 1994.
678
+ See "Kohonen neural networks for optimal colour quantization"
679
+ in "network: Computation in Neural Systems" Vol. 5 (1994) pp 351-367.
680
+ for a discussion of the algorithm.
681
+ See also http://members.ozemail.com.au/~dekker/NEUQUANT.HTML
682
+
683
+ Any party obtaining a copy of these files from the author, directly or
684
+ indirectly, is granted, free of charge, a full and unrestricted irrevocable,
685
+ world-wide, paid up, royalty-free, nonexclusive right and license to deal
686
+ in this software and documentation files (the "Software"), including without
687
+ limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
688
+ and/or sell copies of the Software, and to permit persons who receive
689
+ copies from any such party to do so, with the only requirement being
690
+ that this copyright notice remain intact.
691
+
692
+ """
693
+
694
+ NCYCLES = None # Number of learning cycles
695
+ NETSIZE = None # Number of colours used
696
+ SPECIALS = None # Number of reserved colours used
697
+ BGCOLOR = None # Reserved background colour
698
+ CUTNETSIZE = None
699
+ MAXNETPOS = None
700
+
701
+ INITRAD = None # For 256 colours, radius starts at 32
702
+ RADIUSBIASSHIFT = None
703
+ RADIUSBIAS = None
704
+ INITBIASRADIUS = None
705
+ RADIUSDEC = None # Factor of 1/30 each cycle
706
+
707
+ ALPHABIASSHIFT = None
708
+ INITALPHA = None # biased by 10 bits
709
+
710
+ GAMMA = None
711
+ BETA = None
712
+ BETAGAMMA = None
713
+
714
+ network = None # The network itself
715
+ colormap = None # The network itself
716
+
717
+ netindex = None # For network lookup - really 256
718
+
719
+ bias = None # Bias and freq arrays for learning
720
+ freq = None
721
+
722
+ pimage = None
723
+
724
+ # Four primes near 500 - assume no image has a length so large
725
+ # that it is divisible by all four primes
726
+ PRIME1 = 499
727
+ PRIME2 = 491
728
+ PRIME3 = 487
729
+ PRIME4 = 503
730
+ MAXPRIME = PRIME4
731
+
732
+ pixels = None
733
+ samplefac = None
734
+
735
+ a_s = None
736
+
737
+
738
+ def setconstants(self, samplefac, colors):
739
+ self.NCYCLES = 100 # Number of learning cycles
740
+ self.NETSIZE = colors # Number of colours used
741
+ self.SPECIALS = 3 # Number of reserved colours used
742
+ self.BGCOLOR = self.SPECIALS-1 # Reserved background colour
743
+ self.CUTNETSIZE = self.NETSIZE - self.SPECIALS
744
+ self.MAXNETPOS = self.NETSIZE - 1
745
+
746
+ self.INITRAD = self.NETSIZE/8 # For 256 colours, radius starts at 32
747
+ self.RADIUSBIASSHIFT = 6
748
+ self.RADIUSBIAS = 1 << self.RADIUSBIASSHIFT
749
+ self.INITBIASRADIUS = self.INITRAD * self.RADIUSBIAS
750
+ self.RADIUSDEC = 30 # Factor of 1/30 each cycle
751
+
752
+ self.ALPHABIASSHIFT = 10 # Alpha starts at 1
753
+ self.INITALPHA = 1 << self.ALPHABIASSHIFT # biased by 10 bits
754
+
755
+ self.GAMMA = 1024.0
756
+ self.BETA = 1.0/1024.0
757
+ self.BETAGAMMA = self.BETA * self.GAMMA
758
+
759
+ self.network = np.empty((self.NETSIZE, 3), dtype='float64') # The network itself
760
+ self.colormap = np.empty((self.NETSIZE, 4), dtype='int32') # The network itself
761
+
762
+ self.netindex = np.empty(256, dtype='int32') # For network lookup - really 256
763
+
764
+ self.bias = np.empty(self.NETSIZE, dtype='float64') # Bias and freq arrays for learning
765
+ self.freq = np.empty(self.NETSIZE, dtype='float64')
766
+
767
+ self.pixels = None
768
+ self.samplefac = samplefac
769
+
770
+ self.a_s = {}
771
+
772
+ def __init__(self, image, samplefac=10, colors=256):
773
+
774
+ # Check Numpy
775
+ if np is None:
776
+ raise RuntimeError("Need Numpy for the NeuQuant algorithm.")
777
+
778
+ # Check image
779
+ if image.size[0] * image.size[1] < NeuQuant.MAXPRIME:
780
+ raise IOError("Image is too small")
781
+ if image.mode != "RGBA":
782
+ raise IOError("Image mode should be RGBA.")
783
+
784
+ # Initialize
785
+ self.setconstants(samplefac, colors)
786
+ self.pixels = np.fromstring(image.tostring(), np.uint32)
787
+ self.setUpArrays()
788
+
789
+ self.learn()
790
+ self.fix()
791
+ self.inxbuild()
792
+
793
+ def writeColourMap(self, rgb, outstream):
794
+ for i in range(self.NETSIZE):
795
+ bb = self.colormap[i,0];
796
+ gg = self.colormap[i,1];
797
+ rr = self.colormap[i,2];
798
+ outstream.write(rr if rgb else bb)
799
+ outstream.write(gg)
800
+ outstream.write(bb if rgb else rr)
801
+ return self.NETSIZE
802
+
803
+ def setUpArrays(self):
804
+ self.network[0,0] = 0.0 # Black
805
+ self.network[0,1] = 0.0
806
+ self.network[0,2] = 0.0
807
+
808
+ self.network[1,0] = 255.0 # White
809
+ self.network[1,1] = 255.0
810
+ self.network[1,2] = 255.0
811
+
812
+ # RESERVED self.BGCOLOR # Background
813
+
814
+ for i in range(self.SPECIALS):
815
+ self.freq[i] = 1.0 / self.NETSIZE
816
+ self.bias[i] = 0.0
817
+
818
+ for i in range(self.SPECIALS, self.NETSIZE):
819
+ p = self.network[i]
820
+ p[:] = (255.0 * (i-self.SPECIALS)) / self.CUTNETSIZE
821
+
822
+ self.freq[i] = 1.0 / self.NETSIZE
823
+ self.bias[i] = 0.0
824
+
825
+ # Omitted: setPixels
826
+
827
+ def altersingle(self, alpha, i, b, g, r):
828
+ """Move neuron i towards biased (b,g,r) by factor alpha"""
829
+ n = self.network[i] # Alter hit neuron
830
+ n[0] -= (alpha*(n[0] - b))
831
+ n[1] -= (alpha*(n[1] - g))
832
+ n[2] -= (alpha*(n[2] - r))
833
+
834
+ def geta(self, alpha, rad):
835
+ try:
836
+ return self.a_s[(alpha, rad)]
837
+ except KeyError:
838
+ length = rad*2-1
839
+ mid = length/2
840
+ q = np.array(list(range(mid-1,-1,-1))+list(range(-1,mid)))
841
+ a = alpha*(rad*rad - q*q)/(rad*rad)
842
+ a[mid] = 0
843
+ self.a_s[(alpha, rad)] = a
844
+ return a
845
+
846
+ def alterneigh(self, alpha, rad, i, b, g, r):
847
+ if i-rad >= self.SPECIALS-1:
848
+ lo = i-rad
849
+ start = 0
850
+ else:
851
+ lo = self.SPECIALS-1
852
+ start = (self.SPECIALS-1 - (i-rad))
853
+
854
+ if i+rad <= self.NETSIZE:
855
+ hi = i+rad
856
+ end = rad*2-1
857
+ else:
858
+ hi = self.NETSIZE
859
+ end = (self.NETSIZE - (i+rad))
860
+
861
+ a = self.geta(alpha, rad)[start:end]
862
+
863
+ p = self.network[lo+1:hi]
864
+ p -= np.transpose(np.transpose(p - np.array([b, g, r])) * a)
865
+
866
+ #def contest(self, b, g, r):
867
+ # """ Search for biased BGR values
868
+ # Finds closest neuron (min dist) and updates self.freq
869
+ # finds best neuron (min dist-self.bias) and returns position
870
+ # for frequently chosen neurons, self.freq[i] is high and self.bias[i] is negative
871
+ # self.bias[i] = self.GAMMA*((1/self.NETSIZE)-self.freq[i])"""
872
+ #
873
+ # i, j = self.SPECIALS, self.NETSIZE
874
+ # dists = abs(self.network[i:j] - np.array([b,g,r])).sum(1)
875
+ # bestpos = i + np.argmin(dists)
876
+ # biasdists = dists - self.bias[i:j]
877
+ # bestbiaspos = i + np.argmin(biasdists)
878
+ # self.freq[i:j] -= self.BETA * self.freq[i:j]
879
+ # self.bias[i:j] += self.BETAGAMMA * self.freq[i:j]
880
+ # self.freq[bestpos] += self.BETA
881
+ # self.bias[bestpos] -= self.BETAGAMMA
882
+ # return bestbiaspos
883
+ def contest(self, b, g, r):
884
+ """ Search for biased BGR values
885
+ Finds closest neuron (min dist) and updates self.freq
886
+ finds best neuron (min dist-self.bias) and returns position
887
+ for frequently chosen neurons, self.freq[i] is high and self.bias[i] is negative
888
+ self.bias[i] = self.GAMMA*((1/self.NETSIZE)-self.freq[i])"""
889
+ i, j = self.SPECIALS, self.NETSIZE
890
+ dists = abs(self.network[i:j] - np.array([b,g,r])).sum(1)
891
+ bestpos = i + np.argmin(dists)
892
+ biasdists = dists - self.bias[i:j]
893
+ bestbiaspos = i + np.argmin(biasdists)
894
+ self.freq[i:j] *= (1-self.BETA)
895
+ self.bias[i:j] += self.BETAGAMMA * self.freq[i:j]
896
+ self.freq[bestpos] += self.BETA
897
+ self.bias[bestpos] -= self.BETAGAMMA
898
+ return bestbiaspos
899
+
900
+
901
+
902
+
903
+ def specialFind(self, b, g, r):
904
+ for i in range(self.SPECIALS):
905
+ n = self.network[i]
906
+ if n[0] == b and n[1] == g and n[2] == r:
907
+ return i
908
+ return -1
909
+
910
+ def learn(self):
911
+ biasRadius = self.INITBIASRADIUS
912
+ alphadec = 30 + ((self.samplefac-1)/3)
913
+ lengthcount = self.pixels.size
914
+ samplepixels = lengthcount / self.samplefac
915
+ delta = samplepixels / self.NCYCLES
916
+ alpha = self.INITALPHA
917
+
918
+ i = 0;
919
+ rad = biasRadius >> self.RADIUSBIASSHIFT
920
+ if rad <= 1:
921
+ rad = 0
922
+
923
+ print("Beginning 1D learning: samplepixels = %1.2f rad = %i" %
924
+ (samplepixels, rad) )
925
+ step = 0
926
+ pos = 0
927
+ if lengthcount%NeuQuant.PRIME1 != 0:
928
+ step = NeuQuant.PRIME1
929
+ elif lengthcount%NeuQuant.PRIME2 != 0:
930
+ step = NeuQuant.PRIME2
931
+ elif lengthcount%NeuQuant.PRIME3 != 0:
932
+ step = NeuQuant.PRIME3
933
+ else:
934
+ step = NeuQuant.PRIME4
935
+
936
+ i = 0
937
+ printed_string = ''
938
+ while i < samplepixels:
939
+ if i%100 == 99:
940
+ tmp = '\b'*len(printed_string)
941
+ printed_string = str((i+1)*100/samplepixels)+"%\n"
942
+ print(tmp + printed_string)
943
+ p = self.pixels[pos]
944
+ r = (p >> 16) & 0xff
945
+ g = (p >> 8) & 0xff
946
+ b = (p ) & 0xff
947
+
948
+ if i == 0: # Remember background colour
949
+ self.network[self.BGCOLOR] = [b, g, r]
950
+
951
+ j = self.specialFind(b, g, r)
952
+ if j < 0:
953
+ j = self.contest(b, g, r)
954
+
955
+ if j >= self.SPECIALS: # Don't learn for specials
956
+ a = (1.0 * alpha) / self.INITALPHA
957
+ self.altersingle(a, j, b, g, r)
958
+ if rad > 0:
959
+ self.alterneigh(a, rad, j, b, g, r)
960
+
961
+ pos = (pos+step)%lengthcount
962
+
963
+ i += 1
964
+ if i%delta == 0:
965
+ alpha -= alpha / alphadec
966
+ biasRadius -= biasRadius / self.RADIUSDEC
967
+ rad = biasRadius >> self.RADIUSBIASSHIFT
968
+ if rad <= 1:
969
+ rad = 0
970
+
971
+ finalAlpha = (1.0*alpha)/self.INITALPHA
972
+ print("Finished 1D learning: final alpha = %1.2f!" % finalAlpha)
973
+
974
+ def fix(self):
975
+ for i in range(self.NETSIZE):
976
+ for j in range(3):
977
+ x = int(0.5 + self.network[i,j])
978
+ x = max(0, x)
979
+ x = min(255, x)
980
+ self.colormap[i,j] = x
981
+ self.colormap[i,3] = i
982
+
983
+ def inxbuild(self):
984
+ previouscol = 0
985
+ startpos = 0
986
+ for i in range(self.NETSIZE):
987
+ p = self.colormap[i]
988
+ q = None
989
+ smallpos = i
990
+ smallval = p[1] # Index on g
991
+ # Find smallest in i..self.NETSIZE-1
992
+ for j in range(i+1, self.NETSIZE):
993
+ q = self.colormap[j]
994
+ if q[1] < smallval: # Index on g
995
+ smallpos = j
996
+ smallval = q[1] # Index on g
997
+
998
+ q = self.colormap[smallpos]
999
+ # Swap p (i) and q (smallpos) entries
1000
+ if i != smallpos:
1001
+ p[:],q[:] = q, p.copy()
1002
+
1003
+ # smallval entry is now in position i
1004
+ if smallval != previouscol:
1005
+ self.netindex[previouscol] = (startpos+i) >> 1
1006
+ for j in range(previouscol+1, smallval):
1007
+ self.netindex[j] = i
1008
+ previouscol = smallval
1009
+ startpos = i
1010
+ self.netindex[previouscol] = (startpos+self.MAXNETPOS) >> 1
1011
+ for j in range(previouscol+1, 256): # Really 256
1012
+ self.netindex[j] = self.MAXNETPOS
1013
+
1014
+
1015
+ def paletteImage(self):
1016
+ """ PIL weird interface for making a paletted image: create an image which
1017
+ already has the palette, and use that in Image.quantize. This function
1018
+ returns this palette image. """
1019
+ if self.pimage is None:
1020
+ palette = []
1021
+ for i in range(self.NETSIZE):
1022
+ palette.extend(self.colormap[i][:3])
1023
+
1024
+ palette.extend([0]*(256-self.NETSIZE)*3)
1025
+
1026
+ # a palette image to use for quant
1027
+ self.pimage = Image.new("P", (1, 1), 0)
1028
+ self.pimage.putpalette(palette)
1029
+ return self.pimage
1030
+
1031
+
1032
+ def quantize(self, image):
1033
+ """ Use a kdtree to quickly find the closest palette colors for the pixels """
1034
+ if get_cKDTree():
1035
+ return self.quantize_with_scipy(image)
1036
+ else:
1037
+ print('Scipy not available, falling back to slower version.')
1038
+ return self.quantize_without_scipy(image)
1039
+
1040
+
1041
+ def quantize_with_scipy(self, image):
1042
+ w,h = image.size
1043
+ px = np.asarray(image).copy()
1044
+ px2 = px[:,:,:3].reshape((w*h,3))
1045
+
1046
+ cKDTree = get_cKDTree()
1047
+ kdtree = cKDTree(self.colormap[:,:3],leafsize=10)
1048
+ result = kdtree.query(px2)
1049
+ colorindex = result[1]
1050
+ print("Distance: %1.2f" % (result[0].sum()/(w*h)) )
1051
+ px2[:] = self.colormap[colorindex,:3]
1052
+
1053
+ return Image.fromarray(px).convert("RGB").quantize(palette=self.paletteImage())
1054
+
1055
+
1056
+ def quantize_without_scipy(self, image):
1057
+ """" This function can be used if no scipy is availabe.
1058
+ It's 7 times slower though.
1059
+ """
1060
+ w,h = image.size
1061
+ px = np.asarray(image).copy()
1062
+ memo = {}
1063
+ for j in range(w):
1064
+ for i in range(h):
1065
+ key = (px[i,j,0],px[i,j,1],px[i,j,2])
1066
+ try:
1067
+ val = memo[key]
1068
+ except KeyError:
1069
+ val = self.convert(*key)
1070
+ memo[key] = val
1071
+ px[i,j,0],px[i,j,1],px[i,j,2] = val
1072
+ return Image.fromarray(px).convert("RGB").quantize(palette=self.paletteImage())
1073
+
1074
+ def convert(self, *color):
1075
+ i = self.inxsearch(*color)
1076
+ return self.colormap[i,:3]
1077
+
1078
+ def inxsearch(self, r, g, b):
1079
+ """Search for BGR values 0..255 and return colour index"""
1080
+ dists = (self.colormap[:,:3] - np.array([r,g,b]))
1081
+ a= np.argmin((dists*dists).sum(1))
1082
+ return a
1083
+
1084
+
1085
+
1086
+ if __name__ == '__main__':
1087
+ im = np.zeros((200,200), dtype=np.uint8)
1088
+ im[10:30,:] = 100
1089
+ im[:,80:120] = 255
1090
+ im[-50:-40,:] = 50
1091
+
1092
+ images = [np.uint8(im*1.0), np.uint8(im*0.8), np.uint8(im*0.6), np.uint8(im*0.4), np.uint8(im*0)]
1093
+ writeGif('test.gif',images, duration=0.5, dither=0)
1094
+
1095
+ print('done')
build/lib/legofy/legofy_gui.py ADDED
@@ -0,0 +1,91 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import legofy
3
+ import tkinter as tk
4
+ import tkinter.ttk as ttk
5
+ from tkinter import filedialog
6
+ import tkinter.messagebox as tkmsg
7
+
8
+ LEGO_PALETTE = ('none', 'solid', 'transparent', 'effects', 'mono', 'all', )
9
+
10
+ class LegofyGui(tk.Tk):
11
+ def __init__(self, *args, **kwargs):
12
+ super().__init__(*args, **kwargs)
13
+ self.wm_title("Legofy!")
14
+ self.iconbitmap(os.path.dirname(os.path.realpath(__file__)) + '/assets/brick.ico')
15
+ self.resizable(False, False)
16
+ self.body = LegofyGuiMainFrame(self)
17
+ self.body.grid(row=0, column=0, padx=10, pady=10)
18
+
19
+
20
+ class LegofyGuiMainFrame(tk.Frame):
21
+
22
+ def __init__(self, *args, **kwargs):
23
+ super().__init__(*args, **kwargs)
24
+
25
+ self.chosenFile = None
26
+ self.chosenFilePath = tk.StringVar()
27
+
28
+ self.pathField = tk.Entry(self, width=40, textvariable=self.chosenFilePath, state=tk.DISABLED)
29
+ self.pathField.grid(row=0, column=0, padx=10)
30
+
31
+ self.selectFile = tk.Button(self, text="Choose file...", command=self.choose_a_file)
32
+ self.selectFile.grid(row=0, column=1)
33
+
34
+ self.groupFrame = tk.LabelFrame(self, text="Params", padx=5, pady=5)
35
+ self.groupFrame.grid(row=1, column=0, columnspan=2, )
36
+
37
+ self.colorPaletteLabel = tk.Label(self.groupFrame, text = 'Color Palette')
38
+ self.colorPaletteLabel.grid(row=0, column=0 )
39
+
40
+ self.colorPalette = ttk.Combobox(self.groupFrame)
41
+ self.colorPalette['values'] = LEGO_PALETTE
42
+ self.colorPalette.current(0)
43
+ self.colorPalette.grid(row=0, column=1)
44
+
45
+ self.brickNumberScale = tk.Scale(self.groupFrame, from_=1, to=200, orient=tk.HORIZONTAL, label="Number of bricks (longer edge)", length=250)
46
+ self.brickNumberScale.set(30)
47
+ self.brickNumberScale.grid(row=1, column=0, columnspan=2, )
48
+
49
+ self.convertFile = tk.Button(text="Legofy this image!", command=self.convert_file)
50
+ self.convertFile.grid(row=2, column=0, columnspan=2)
51
+
52
+
53
+ def choose_a_file(self):
54
+
55
+ options = {}
56
+ options['defaultextension'] = '.jpg'
57
+ options['filetypes'] = [('JPEG', '.jpg'),
58
+ ('GIF', '.gif'),
59
+ ('PNG', '.png'),]
60
+ options['initialdir'] = os.path.realpath("\\")
61
+ options['initialfile'] = ''
62
+ options['parent'] = self
63
+ options['title'] = 'Choose a file'
64
+
65
+ self.chosenFile = filedialog.askopenfile(mode='r', **options)
66
+ if self.chosenFile:
67
+ self.chosenFilePath.set(self.chosenFile.name)
68
+
69
+
70
+ def convert_file(self):
71
+ try:
72
+ if self.chosenFile is not None:
73
+
74
+ palette = self.colorPalette.get()
75
+
76
+ if palette in LEGO_PALETTE and palette != 'none':
77
+ legofy.main(self.chosenFile.name, size=self.brickNumberScale.get(), palette_mode=palette)
78
+ else:
79
+ legofy.main(self.chosenFile.name, size=self.brickNumberScale.get())
80
+
81
+ tkmsg.showinfo("Success!", "Your image has been legofied!")
82
+ else:
83
+ tkmsg.showerror("File not found", "Please select a file before legofying")
84
+ except Exception as e:
85
+ tkmsg.showerror("Error", str(e))
86
+
87
+
88
+
89
+ if __name__ == '__main__':
90
+ app = LegofyGui()
91
+ app.mainloop()
build/lib/legofy/palettes.py ADDED
@@ -0,0 +1,120 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # -*- coding: utf-8 -*-
2
+
3
+ """
4
+ legofy.palettes
5
+ ---------------
6
+
7
+ This module contains the `lego` palette mappings.
8
+
9
+ Color mapping source;
10
+ - http://www.brickjournal.com/files/PDFs/2010LEGOcolorpalette.pdf
11
+
12
+
13
+ USAGE:
14
+ $ legofy.palettes.legos
15
+
16
+ See README for project details.
17
+ """
18
+ from __future__ import division
19
+
20
+
21
+ LEGOS = {
22
+ 'solid': {
23
+ '024': [0xfe, 0xc4, 0x01],
24
+ '106': [0xe7, 0x64, 0x19],
25
+ '021': [0xde, 0x01, 0x0e],
26
+ '221': [0xde, 0x38, 0x8b],
27
+ '023': [0x01, 0x58, 0xa8],
28
+ '028': [0x01, 0x7c, 0x29],
29
+ '119': [0x95, 0xb9, 0x0c],
30
+ '192': [0x5c, 0x1d, 0x0d],
31
+ '018': [0xd6, 0x73, 0x41],
32
+ '001': [0xf4, 0xf4, 0xf4],
33
+ '026': [0x02, 0x02, 0x02],
34
+ '226': [0xff, 0xff, 0x99],
35
+ '222': [0xee, 0x9d, 0xc3],
36
+ '212': [0x87, 0xc0, 0xea],
37
+ '037': [0x01, 0x96, 0x25],
38
+ '005': [0xd9, 0xbb, 0x7c],
39
+ '283': [0xf5, 0xc1, 0x89],
40
+ '208': [0xe4, 0xe4, 0xda],
41
+ '191': [0xf4, 0x9b, 0x01],
42
+ '124': [0x9c, 0x01, 0xc6],
43
+ '102': [0x48, 0x8c, 0xc6],
44
+ '135': [0x5f, 0x75, 0x8c],
45
+ '151': [0x60, 0x82, 0x66],
46
+ '138': [0x8d, 0x75, 0x53],
47
+ '038': [0xa8, 0x3e, 0x16],
48
+ '194': [0x9c, 0x92, 0x91],
49
+ '154': [0x80, 0x09, 0x1c],
50
+ '268': [0x2d, 0x16, 0x78],
51
+ '140': [0x01, 0x26, 0x42],
52
+ '141': [0x01, 0x35, 0x17],
53
+ '312': [0xaa, 0x7e, 0x56],
54
+ '199': [0x4d, 0x5e, 0x57],
55
+ '308': [0x31, 0x10, 0x07]
56
+ },
57
+
58
+ 'transparent': {
59
+ '044': [0xf9, 0xef, 0x69],
60
+ '182': [0xec, 0x76, 0x0e],
61
+ '047': [0xe7, 0x66, 0x48],
62
+ '041': [0xe0, 0x2a, 0x29],
63
+ '113': [0xee, 0x9d, 0xc3],
64
+ '126': [0x9c, 0x95, 0xc7],
65
+ '042': [0xb6, 0xe0, 0xea],
66
+ '043': [0x50, 0xb1, 0xe8],
67
+ '143': [0xce, 0xe3, 0xf6],
68
+ '048': [0x63, 0xb2, 0x6e],
69
+ '311': [0x99, 0xff, 0x66],
70
+ '049': [0xf1, 0xed, 0x5b],
71
+ '111': [0xa6, 0x91, 0x82],
72
+ '040': [0xee, 0xee, 0xee]
73
+ },
74
+
75
+ 'effects': {
76
+ '131': [0x8d, 0x94, 0x96],
77
+ '297': [0xaa, 0x7f, 0x2e],
78
+ '148': [0x49, 0x3f, 0x3b],
79
+ '294': [0xfe, 0xfc, 0xd5]
80
+ },
81
+
82
+ 'mono': {
83
+ '001': [0xf4, 0xf4, 0xf4],
84
+ '026': [0x02, 0x02, 0x02]
85
+ },
86
+ }
87
+
88
+
89
+ def extend_palette(palette, colors=256, rgb=3):
90
+ """Extend palette colors to 256 rgb sets."""
91
+ missing_colors = colors - len(palette)//rgb
92
+ if missing_colors > 0:
93
+ first_color = palette[:rgb]
94
+ palette += first_color * missing_colors
95
+ return palette[:colors*rgb]
96
+
97
+
98
+ def legos():
99
+ """Build flattened lego palettes."""
100
+ return _flatten_palettes(LEGOS.copy())
101
+
102
+
103
+ def _flatten_palettes(palettes):
104
+ """Convert palette mappings into color list."""
105
+ flattened = {}
106
+ palettes = _merge_palettes(palettes)
107
+ for palette in palettes:
108
+ flat = [i for sub in palettes[palette].values() for i in sub]
109
+ flattened.update({palette: flat})
110
+ return flattened
111
+
112
+
113
+ def _merge_palettes(palettes):
114
+ """Build unified palette using all colors."""
115
+ unified = {}
116
+ for palette in palettes:
117
+ for item in palettes[palette]:
118
+ unified.update({item: palettes[palette][item]})
119
+ palettes.update({'all': unified})
120
+ return palettes
d.html ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Brick Analysis</title>
7
+ <script>
8
+ function handleFileSelect(event) {
9
+ const file = event.target.files[0];
10
+ const reader = new FileReader();
11
+
12
+ reader.onload = function (event) {
13
+ const contents = event.target.result;
14
+ processFile(contents);
15
+ };
16
+
17
+ reader.readAsText(file);
18
+ }
19
+
20
+ function processFile(contents) {
21
+ // Parse the file content and extract necessary information
22
+ const lines = contents.split('\n');
23
+ const brickCount = lines.length;
24
+
25
+ let horizontalBricks = 0;
26
+ let verticalBricks = 0;
27
+ let colors = new Set();
28
+
29
+ lines.forEach(line => {
30
+ const brickInfo = line.trim().split(' '); // Assuming format is "color dimension"
31
+ const color = brickInfo[0];
32
+ const dimension = brickInfo[1];
33
+
34
+ if (dimension.startsWith('30x')) {
35
+ horizontalBricks++;
36
+ } else if (dimension.endsWith('x30')) {
37
+ verticalBricks++;
38
+ }
39
+
40
+ colors.add(color);
41
+ });
42
+
43
+ // Log information using HTML
44
+ const brickInfoDiv = document.getElementById('brickInfo');
45
+ brickInfoDiv.innerHTML = `
46
+ <p>Total Bricks: ${brickCount}</p>
47
+ <p>Horizontal Bricks: ${horizontalBricks}</p>
48
+ <p>Vertical Bricks: ${verticalBricks}</p>
49
+ <p>Unique Colors: ${Array.from(colors).join(', ')}</p>
50
+ `;
51
+ }
52
+ </script>
53
+ </head>
54
+ <body>
55
+ <h1>Brick Analysis</h1>
56
+ <input type="file" id="fileInput" accept=".txt" onchange="handleFileSelect(event)">
57
+ <div id="brickInfo"></div>
58
+ </body>
59
+ </html>
d.py ADDED
@@ -0,0 +1,141 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import cv2
2
+ import numpy as np
3
+ from collections import defaultdict
4
+ import gradio as gr
5
+ from PIL import Image
6
+ from scipy.spatial import cKDTree
7
+
8
+ # Define the Lego color palette
9
+ lego_colors = [(190, 148, 116), (86, 142, 186), (207, 220, 146), (160, 57, 140), (214, 135, 64), (130, 151, 150), (120, 72, 65), (121, 190, 211), (25, 31, 56), (195, 77, 151),
10
+ (72, 132, 51), (134, 75, 44), (64, 37, 81), (169, 181, 178), (219, 159, 68), (162, 46, 49), (51, 27, 39), (229, 194, 114), (121, 50, 123), (27, 51, 45), (187, 120, 47), (230, 214, 180), (167, 221, 219), (22, 29, 40), (171, 119, 88), (167, 204, 90), (235, 237, 233), (76, 43, 50), (40, 57, 94), (9, 10, 20), (213, 182, 149),
11
+ (17, 20, 31), (115, 34, 56), (58, 74, 80), (64, 93, 139), (32, 18, 61), (94, 44, 44), (64, 28, 49), (31, 28, 57), (36, 20, 39), (89, 114, 119), (33, 46, 55), (118, 169, 69), (203, 86, 62), (39, 87, 46), (222, 213, 254)]
12
+
13
+
14
+ def closest_color(color, palette):
15
+ """
16
+ Find the closest color in the palette to the given color.
17
+ """
18
+ tree = cKDTree(palette)
19
+ _, index = tree.query(color)
20
+ return palette[index]
21
+
22
+ def legofy_image(image, palette, num_bricks_horizontal, num_bricks_vertical, brick_size):
23
+ """
24
+ Legofy the image using the provided palette and brick size.
25
+ """
26
+ # Convert image to PIL format
27
+ image_pil = Image.fromarray(image.astype('uint8'), 'RGB')
28
+
29
+ # Get original image size
30
+ original_width, original_height = image_pil.size
31
+
32
+ # Calculate the width and height of the legofied image
33
+ legofied_width = num_bricks_horizontal * brick_size
34
+ legofied_height = num_bricks_vertical * brick_size
35
+
36
+ # Resize the image to fit the legofied dimensions
37
+ image_pil = image_pil.resize((legofied_width, legofied_height))
38
+
39
+ # Create a blank legofied image
40
+ legofied_image = Image.new('RGB', (legofied_width, legofied_height), (255, 255, 255))
41
+
42
+ # Iterate through each brick and replace with the closest lego color
43
+ for y in range(0, legofied_height, brick_size):
44
+ for x in range(0, legofied_width, brick_size):
45
+ # Get the most frequent color of the brick
46
+ brick_colors = [image_pil.getpixel((x + i, y + j)) for i in range(brick_size) for j in range(brick_size)]
47
+ most_frequent_color = max(set(brick_colors), key=brick_colors.count)
48
+
49
+ # Find the closest lego color
50
+ closest_lego_color = closest_color(most_frequent_color, palette)
51
+
52
+ # Fill the legofied image with the closest lego color
53
+ for i in range(brick_size):
54
+ for j in range(brick_size):
55
+ legofied_image.putpixel((x + i, y + j), closest_lego_color)
56
+
57
+ return legofied_image
58
+
59
+ def process_image(image, num_bricks_horizontal, num_bricks_vertical, brick_size):
60
+ # Get the dimensions of the image
61
+ height, width, _ = image.shape
62
+
63
+ # Ensure that the image dimensions are divisible by the brick size
64
+ num_rows = height // brick_size
65
+ num_cols = width // brick_size
66
+ image = image[:num_rows * brick_size, :num_cols * brick_size] # Trim to ensure complete brick regions
67
+
68
+ # Initialize dictionaries to store color IDs and corresponding colors
69
+ color_ids = {}
70
+ color_counts = defaultdict(int)
71
+
72
+ # Iterate through each brick region
73
+ for row in range(num_rows):
74
+ for col in range(num_cols):
75
+ # Define the region for the current brick
76
+ start_row = row * brick_size
77
+ end_row = (row + 1) * brick_size
78
+ start_col = col * brick_size
79
+ end_col = (col + 1) * brick_size
80
+
81
+ # Extract the region from the image
82
+ brick_region = image[start_row:end_row, start_col:end_col]
83
+
84
+ # Calculate the mean color of the brick region
85
+ mean_color = tuple(np.mean(brick_region, axis=(0, 1)).astype(int))
86
+
87
+ # Increment the count for the current color
88
+ color_counts[mean_color] += 1
89
+
90
+ # If the color is not already assigned a color ID, assign one
91
+ if mean_color not in color_ids:
92
+ color_ids[mean_color] = len(color_ids) + 1
93
+
94
+ # Overlay the color IDs on the bricks
95
+ annotated_image = image.copy()
96
+
97
+ for row in range(num_rows):
98
+ for col in range(num_cols):
99
+ # Define the position to place the color ID
100
+ text_position = (col * brick_size + 5, (row + 1) * brick_size - 5)
101
+
102
+ # Get the color of the current brick
103
+ brick_region = image[row * brick_size:(row + 1) * brick_size, col * brick_size:(col + 1) * brick_size]
104
+ mean_color = tuple(np.mean(brick_region, axis=(0, 1)).astype(int))
105
+
106
+ # Get the color ID for the current brick
107
+ color_id = color_ids[mean_color]
108
+
109
+ # Convert the color ID to a string
110
+ color_id_str = str(color_id)
111
+
112
+ # Draw the color ID on the annotated image
113
+ #cv2.putText(annotated_image, color_id_str, text_position, cv2.FONT_HERSHEY_SIMPLEX, 0.5, (255, 255, 255), 2, cv2.LINE_AA)
114
+
115
+ # Convert the annotated image back to Gradio format
116
+ annotated_image = annotated_image.astype(np.uint8)
117
+
118
+ # Assign unique IDs to each unique color and display the usage count
119
+ color_info = []
120
+ total_bricks = 0
121
+ for color, usage in color_counts.items():
122
+ color_id = color_ids[color]
123
+ color_info.append({"Color": color, "ID": color_id, "Usage": usage})
124
+ total_bricks += usage
125
+
126
+ return annotated_image, color_info, total_bricks
127
+
128
+ # Define the Gradio interface
129
+ image_input = gr.inputs.Image(type='numpy', label="Upload your LEGO image")
130
+ num_bricks_horizontal = gr.inputs.Number(default=100, label="Number of Bricks Horizontal")
131
+ num_bricks_vertical = gr.inputs.Number(default=100, label="Number of Bricks Vertical")
132
+ brick_size = gr.inputs.Number(default=30, label="Brick Size")
133
+ output_image = gr.outputs.Image(type='numpy', label="Annotated Image with Color IDs")
134
+ output_text = gr.outputs.Textbox(label="Color Information")
135
+ output_total_bricks = gr.outputs.Textbox(label="Total Bricks Count")
136
+
137
+ def lego_interface(input_image, num_bricks_horizontal, num_bricks_vertical, brick_size):
138
+ legofied_image = legofy_image(input_image, lego_colors, int(num_bricks_horizontal), int(num_bricks_vertical), int(brick_size))
139
+ return process_image(np.array(legofied_image), int(num_bricks_horizontal), int(num_bricks_vertical), int(brick_size))
140
+
141
+ gr.Interface(fn=lego_interface, inputs=[image_input, num_bricks_horizontal, num_bricks_vertical, brick_size], outputs=[output_image, output_text, output_total_bricks], title="LEGO Color Identifier").launch(share=True, server_port=8999)
dist/legofy-1.0.0-py3.11.egg ADDED
Binary file (91.1 kB). View file
 
legofy.egg-info/PKG-INFO ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Metadata-Version: 2.1
2
+ Name: legofy
3
+ Version: 1.0.0
4
+ Summary: Make images look as if they are made out of 1x1 LEGO blocks
5
+ Home-page: https://github.com/JuanPotato/Legofy
6
+ Author: Juan Potato
7
+ Author-email: juanpotatodev@gmail.com
8
+ License: MIT
9
+ Classifier: Development Status :: 4 - Beta
10
+ Classifier: Programming Language :: Python
11
+ License-File: LICENSE
12
+
13
+ Legofy is a python program that takes a static image or gif and makes it so that it looks as if it was built out of LEGO.
legofy.egg-info/SOURCES.txt ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ LICENSE
2
+ MANIFEST.in
3
+ README.md
4
+ setup.py
5
+ legofy/__init__.py
6
+ legofy/cli.py
7
+ legofy/images2gif_py2.py
8
+ legofy/images2gif_py3.py
9
+ legofy/legofy_gui.py
10
+ legofy/palettes.py
11
+ legofy.egg-info/PKG-INFO
12
+ legofy.egg-info/SOURCES.txt
13
+ legofy.egg-info/dependency_links.txt
14
+ legofy.egg-info/entry_points.txt
15
+ legofy.egg-info/requires.txt
16
+ legofy.egg-info/top_level.txt
17
+ legofy/assets/bricks/1x1.png
18
+ tests/test_legofy.py
legofy.egg-info/dependency_links.txt ADDED
@@ -0,0 +1 @@
 
 
1
+
legofy.egg-info/entry_points.txt ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ [console_scripts]
2
+ legofy = legofy.cli:main
legofy.egg-info/requires.txt ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ pillow
2
+ click
legofy.egg-info/top_level.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ legofy
legofy/0553337762_lego.png ADDED

Git LFS Details

  • SHA256: 9c4772ae401fa6590a85526241543ddd905ca86914012aa553d58ee3e571d9bb
  • Pointer size: 132 Bytes
  • Size of remote file: 1.87 MB
legofy/10-million-password-list-top-10000.txt ADDED
@@ -0,0 +1,10000 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 123456
2
+ password
3
+ 12345678
4
+ qwerty
5
+ 123456789
6
+ 12345
7
+ 1234
8
+ 111111
9
+ 1234567
10
+ dragon
11
+ 123123
12
+ baseball
13
+ abc123
14
+ football
15
+ monkey
16
+ letmein
17
+ 696969
18
+ shadow
19
+ master
20
+ 666666
21
+ qwertyuiop
22
+ 123321
23
+ mustang
24
+ 1234567890
25
+ michael
26
+ 654321
27
+ pussy
28
+ superman
29
+ 1qaz2wsx
30
+ 7777777
31
+ fuckyou
32
+ 121212
33
+ 000000
34
+ qazwsx
35
+ 123qwe
36
+ killer
37
+ trustno1
38
+ jordan
39
+ jennifer
40
+ zxcvbnm
41
+ asdfgh
42
+ hunter
43
+ buster
44
+ soccer
45
+ harley
46
+ batman
47
+ andrew
48
+ tigger
49
+ sunshine
50
+ iloveyou
51
+ fuckme
52
+ 2000
53
+ charlie
54
+ robert
55
+ thomas
56
+ hockey
57
+ ranger
58
+ daniel
59
+ starwars
60
+ klaster
61
+ 112233
62
+ george
63
+ asshole
64
+ computer
65
+ michelle
66
+ jessica
67
+ pepper
68
+ 1111
69
+ zxcvbn
70
+ 555555
71
+ 11111111
72
+ 131313
73
+ freedom
74
+ 777777
75
+ pass
76
+ fuck
77
+ maggie
78
+ 159753
79
+ aaaaaa
80
+ ginger
81
+ princess
82
+ joshua
83
+ cheese
84
+ amanda
85
+ summer
86
+ love
87
+ ashley
88
+ 6969
89
+ nicole
90
+ chelsea
91
+ biteme
92
+ matthew
93
+ access
94
+ yankees
95
+ 987654321
96
+ dallas
97
+ austin
98
+ thunder
99
+ taylor
100
+ matrix
101
+ william
102
+ corvette
103
+ hello
104
+ martin
105
+ heather
106
+ secret
107
+ fucker
108
+ merlin
109
+ diamond
110
+ 1234qwer
111
+ gfhjkm
112
+ hammer
113
+ silver
114
+ 222222
115
+ 88888888
116
+ anthony
117
+ justin
118
+ test
119
+ bailey
120
+ q1w2e3r4t5
121
+ patrick
122
+ internet
123
+ scooter
124
+ orange
125
+ 11111
126
+ golfer
127
+ cookie
128
+ richard
129
+ samantha
130
+ bigdog
131
+ guitar
132
+ jackson
133
+ whatever
134
+ mickey
135
+ chicken
136
+ sparky
137
+ snoopy
138
+ maverick
139
+ phoenix
140
+ camaro
141
+ sexy
142
+ peanut
143
+ morgan
144
+ welcome
145
+ falcon
146
+ cowboy
147
+ ferrari
148
+ samsung
149
+ andrea
150
+ smokey
151
+ steelers
152
+ joseph
153
+ mercedes
154
+ dakota
155
+ arsenal
156
+ eagles
157
+ melissa
158
+ boomer
159
+ booboo
160
+ spider
161
+ nascar
162
+ monster
163
+ tigers
164
+ yellow
165
+ xxxxxx
166
+ 123123123
167
+ gateway
168
+ marina
169
+ diablo
170
+ bulldog
171
+ qwer1234
172
+ compaq
173
+ purple
174
+ hardcore
175
+ banana
176
+ junior
177
+ hannah
178
+ 123654
179
+ porsche
180
+ lakers
181
+ iceman
182
+ money
183
+ cowboys
184
+ 987654
185
+ london
186
+ tennis
187
+ 999999
188
+ ncc1701
189
+ coffee
190
+ scooby
191
+ 0000
192
+ miller
193
+ boston
194
+ q1w2e3r4
195
+ fuckoff
196
+ brandon
197
+ yamaha
198
+ chester
199
+ mother
200
+ forever
201
+ johnny
202
+ edward
203
+ 333333
204
+ oliver
205
+ redsox
206
+ player
207
+ nikita
208
+ knight
209
+ fender
210
+ barney
211
+ midnight
212
+ please
213
+ brandy
214
+ chicago
215
+ badboy
216
+ iwantu
217
+ slayer
218
+ rangers
219
+ charles
220
+ angel
221
+ flower
222
+ bigdaddy
223
+ rabbit
224
+ wizard
225
+ bigdick
226
+ jasper
227
+ enter
228
+ rachel
229
+ chris
230
+ steven
231
+ winner
232
+ adidas
233
+ victoria
234
+ natasha
235
+ 1q2w3e4r
236
+ jasmine
237
+ winter
238
+ prince
239
+ panties
240
+ marine
241
+ ghbdtn
242
+ fishing
243
+ cocacola
244
+ casper
245
+ james
246
+ 232323
247
+ raiders
248
+ 888888
249
+ marlboro
250
+ gandalf
251
+ asdfasdf
252
+ crystal
253
+ 87654321
254
+ 12344321
255
+ sexsex
256
+ golden
257
+ blowme
258
+ bigtits
259
+ 8675309
260
+ panther
261
+ lauren
262
+ angela
263
+ bitch
264
+ spanky
265
+ thx1138
266
+ angels
267
+ madison
268
+ winston
269
+ shannon
270
+ mike
271
+ toyota
272
+ blowjob
273
+ jordan23
274
+ canada
275
+ sophie
276
+ Password
277
+ apples
278
+ dick
279
+ tiger
280
+ razz
281
+ 123abc
282
+ pokemon
283
+ qazxsw
284
+ 55555
285
+ qwaszx
286
+ muffin
287
+ johnson
288
+ murphy
289
+ cooper
290
+ jonathan
291
+ liverpoo
292
+ david
293
+ danielle
294
+ 159357
295
+ jackie
296
+ 1990
297
+ 123456a
298
+ 789456
299
+ turtle
300
+ horny
301
+ abcd1234
302
+ scorpion
303
+ qazwsxedc
304
+ 101010
305
+ butter
306
+ carlos
307
+ password1
308
+ dennis
309
+ slipknot
310
+ qwerty123
311
+ booger
312
+ asdf
313
+ 1991
314
+ black
315
+ startrek
316
+ 12341234
317
+ cameron
318
+ newyork
319
+ rainbow
320
+ nathan
321
+ john
322
+ 1992
323
+ rocket
324
+ viking
325
+ redskins
326
+ butthead
327
+ asdfghjkl
328
+ 1212
329
+ sierra
330
+ peaches
331
+ gemini
332
+ doctor
333
+ wilson
334
+ sandra
335
+ helpme
336
+ qwertyui
337
+ victor
338
+ florida
339
+ dolphin
340
+ pookie
341
+ captain
342
+ tucker
343
+ blue
344
+ liverpool
345
+ theman
346
+ bandit
347
+ dolphins
348
+ maddog
349
+ packers
350
+ jaguar
351
+ lovers
352
+ nicholas
353
+ united
354
+ tiffany
355
+ maxwell
356
+ zzzzzz
357
+ nirvana
358
+ jeremy
359
+ suckit
360
+ stupid
361
+ porn
362
+ monica
363
+ elephant
364
+ giants
365
+ jackass
366
+ hotdog
367
+ rosebud
368
+ success
369
+ debbie
370
+ mountain
371
+ 444444
372
+ xxxxxxxx
373
+ warrior
374
+ 1q2w3e4r5t
375
+ q1w2e3
376
+ 123456q
377
+ albert
378
+ metallic
379
+ lucky
380
+ azerty
381
+ 7777
382
+ shithead
383
+ alex
384
+ bond007
385
+ alexis
386
+ 1111111
387
+ samson
388
+ 5150
389
+ willie
390
+ scorpio
391
+ bonnie
392
+ gators
393
+ benjamin
394
+ voodoo
395
+ driver
396
+ dexter
397
+ 2112
398
+ jason
399
+ calvin
400
+ freddy
401
+ 212121
402
+ creative
403
+ 12345a
404
+ sydney
405
+ rush2112
406
+ 1989
407
+ asdfghjk
408
+ red123
409
+ bubba
410
+ 4815162342
411
+ passw0rd
412
+ trouble
413
+ gunner
414
+ happy
415
+ fucking
416
+ gordon
417
+ legend
418
+ jessie
419
+ stella
420
+ qwert
421
+ eminem
422
+ arthur
423
+ apple
424
+ nissan
425
+ bullshit
426
+ bear
427
+ america
428
+ 1qazxsw2
429
+ nothing
430
+ parker
431
+ 4444
432
+ rebecca
433
+ qweqwe
434
+ garfield
435
+ 01012011
436
+ beavis
437
+ 69696969
438
+ jack
439
+ asdasd
440
+ december
441
+ 2222
442
+ 102030
443
+ 252525
444
+ 11223344
445
+ magic
446
+ apollo
447
+ skippy
448
+ 315475
449
+ girls
450
+ kitten
451
+ golf
452
+ copper
453
+ braves
454
+ shelby
455
+ godzilla
456
+ beaver
457
+ fred
458
+ tomcat
459
+ august
460
+ buddy
461
+ airborne
462
+ 1993
463
+ 1988
464
+ lifehack
465
+ qqqqqq
466
+ brooklyn
467
+ animal
468
+ platinum
469
+ phantom
470
+ online
471
+ xavier
472
+ darkness
473
+ blink182
474
+ power
475
+ fish
476
+ green
477
+ 789456123
478
+ voyager
479
+ police
480
+ travis
481
+ 12qwaszx
482
+ heaven
483
+ snowball
484
+ lover
485
+ abcdef
486
+ 00000
487
+ pakistan
488
+ 007007
489
+ walter
490
+ playboy
491
+ blazer
492
+ cricket
493
+ sniper
494
+ hooters
495
+ donkey
496
+ willow
497
+ loveme
498
+ saturn
499
+ therock
500
+ redwings
501
+ bigboy
502
+ pumpkin
503
+ trinity
504
+ williams
505
+ tits
506
+ nintendo
507
+ digital
508
+ destiny
509
+ topgun
510
+ runner
511
+ marvin
512
+ guinness
513
+ chance
514
+ bubbles
515
+ testing
516
+ fire
517
+ november
518
+ minecraft
519
+ asdf1234
520
+ lasvegas
521
+ sergey
522
+ broncos
523
+ cartman
524
+ private
525
+ celtic
526
+ birdie
527
+ little
528
+ cassie
529
+ babygirl
530
+ donald
531
+ beatles
532
+ 1313
533
+ dickhead
534
+ family
535
+ 12121212
536
+ school
537
+ louise
538
+ gabriel
539
+ eclipse
540
+ fluffy
541
+ 147258369
542
+ lol123
543
+ explorer
544
+ beer
545
+ nelson
546
+ flyers
547
+ spencer
548
+ scott
549
+ lovely
550
+ gibson
551
+ doggie
552
+ cherry
553
+ andrey
554
+ snickers
555
+ buffalo
556
+ pantera
557
+ metallica
558
+ member
559
+ carter
560
+ qwertyu
561
+ peter
562
+ alexande
563
+ steve
564
+ bronco
565
+ paradise
566
+ goober
567
+ 5555
568
+ samuel
569
+ montana
570
+ mexico
571
+ dreams
572
+ michigan
573
+ cock
574
+ carolina
575
+ yankee
576
+ friends
577
+ magnum
578
+ surfer
579
+ poopoo
580
+ maximus
581
+ genius
582
+ cool
583
+ vampire
584
+ lacrosse
585
+ asd123
586
+ aaaa
587
+ christin
588
+ kimberly
589
+ speedy
590
+ sharon
591
+ carmen
592
+ 111222
593
+ kristina
594
+ sammy
595
+ racing
596
+ ou812
597
+ sabrina
598
+ horses
599
+ 0987654321
600
+ qwerty1
601
+ pimpin
602
+ baby
603
+ stalker
604
+ enigma
605
+ 147147
606
+ star
607
+ poohbear
608
+ boobies
609
+ 147258
610
+ simple
611
+ bollocks
612
+ 12345q
613
+ marcus
614
+ brian
615
+ 1987
616
+ qweasdzxc
617
+ drowssap
618
+ hahaha
619
+ caroline
620
+ barbara
621
+ dave
622
+ viper
623
+ drummer
624
+ action
625
+ einstein
626
+ bitches
627
+ genesis
628
+ hello1
629
+ scotty
630
+ friend
631
+ forest
632
+ 010203
633
+ hotrod
634
+ google
635
+ vanessa
636
+ spitfire
637
+ badger
638
+ maryjane
639
+ friday
640
+ alaska
641
+ 1232323q
642
+ tester
643
+ jester
644
+ jake
645
+ champion
646
+ billy
647
+ 147852
648
+ rock
649
+ hawaii
650
+ badass
651
+ chevy
652
+ 420420
653
+ walker
654
+ stephen
655
+ eagle1
656
+ bill
657
+ 1986
658
+ october
659
+ gregory
660
+ svetlana
661
+ pamela
662
+ 1984
663
+ music
664
+ shorty
665
+ westside
666
+ stanley
667
+ diesel
668
+ courtney
669
+ 242424
670
+ kevin
671
+ porno
672
+ hitman
673
+ boobs
674
+ mark
675
+ 12345qwert
676
+ reddog
677
+ frank
678
+ qwe123
679
+ popcorn
680
+ patricia
681
+ aaaaaaaa
682
+ 1969
683
+ teresa
684
+ mozart
685
+ buddha
686
+ anderson
687
+ paul
688
+ melanie
689
+ abcdefg
690
+ security
691
+ lucky1
692
+ lizard
693
+ denise
694
+ 3333
695
+ a12345
696
+ 123789
697
+ ruslan
698
+ stargate
699
+ simpsons
700
+ scarface
701
+ eagle
702
+ 123456789a
703
+ thumper
704
+ olivia
705
+ naruto
706
+ 1234554321
707
+ general
708
+ cherokee
709
+ a123456
710
+ vincent
711
+ Usuckballz1
712
+ spooky
713
+ qweasd
714
+ cumshot
715
+ free
716
+ frankie
717
+ douglas
718
+ death
719
+ 1980
720
+ loveyou
721
+ kitty
722
+ kelly
723
+ veronica
724
+ suzuki
725
+ semperfi
726
+ penguin
727
+ mercury
728
+ liberty
729
+ spirit
730
+ scotland
731
+ natalie
732
+ marley
733
+ vikings
734
+ system
735
+ sucker
736
+ king
737
+ allison
738
+ marshall
739
+ 1979
740
+ 098765
741
+ qwerty12
742
+ hummer
743
+ adrian
744
+ 1985
745
+ vfhbyf
746
+ sandman
747
+ rocky
748
+ leslie
749
+ antonio
750
+ 98765432
751
+ 4321
752
+ softball
753
+ passion
754
+ mnbvcxz
755
+ bastard
756
+ passport
757
+ horney
758
+ rascal
759
+ howard
760
+ franklin
761
+ bigred
762
+ assman
763
+ alexander
764
+ homer
765
+ redrum
766
+ jupiter
767
+ claudia
768
+ 55555555
769
+ 141414
770
+ zaq12wsx
771
+ shit
772
+ patches
773
+ nigger
774
+ cunt
775
+ raider
776
+ infinity
777
+ andre
778
+ 54321
779
+ galore
780
+ college
781
+ russia
782
+ kawasaki
783
+ bishop
784
+ 77777777
785
+ vladimir
786
+ money1
787
+ freeuser
788
+ wildcats
789
+ francis
790
+ disney
791
+ budlight
792
+ brittany
793
+ 1994
794
+ 00000000
795
+ sweet
796
+ oksana
797
+ honda
798
+ domino
799
+ bulldogs
800
+ brutus
801
+ swordfis
802
+ norman
803
+ monday
804
+ jimmy
805
+ ironman
806
+ ford
807
+ fantasy
808
+ 9999
809
+ 7654321
810
+ PASSWORD
811
+ hentai
812
+ duncan
813
+ cougar
814
+ 1977
815
+ jeffrey
816
+ house
817
+ dancer
818
+ brooke
819
+ timothy
820
+ super
821
+ marines
822
+ justice
823
+ digger
824
+ connor
825
+ patriots
826
+ karina
827
+ 202020
828
+ molly
829
+ everton
830
+ tinker
831
+ alicia
832
+ rasdzv3
833
+ poop
834
+ pearljam
835
+ stinky
836
+ naughty
837
+ colorado
838
+ 123123a
839
+ water
840
+ test123
841
+ ncc1701d
842
+ motorola
843
+ ireland
844
+ asdfg
845
+ slut
846
+ matt
847
+ houston
848
+ boogie
849
+ zombie
850
+ accord
851
+ vision
852
+ bradley
853
+ reggie
854
+ kermit
855
+ froggy
856
+ ducati
857
+ avalon
858
+ 6666
859
+ 9379992
860
+ sarah
861
+ saints
862
+ logitech
863
+ chopper
864
+ 852456
865
+ simpson
866
+ madonna
867
+ juventus
868
+ claire
869
+ 159951
870
+ zachary
871
+ yfnfif
872
+ wolverin
873
+ warcraft
874
+ hello123
875
+ extreme
876
+ penis
877
+ peekaboo
878
+ fireman
879
+ eugene
880
+ brenda
881
+ 123654789
882
+ russell
883
+ panthers
884
+ georgia
885
+ smith
886
+ skyline
887
+ jesus
888
+ elizabet
889
+ spiderma
890
+ smooth
891
+ pirate
892
+ empire
893
+ bullet
894
+ 8888
895
+ virginia
896
+ valentin
897
+ psycho
898
+ predator
899
+ arizona
900
+ 134679
901
+ mitchell
902
+ alyssa
903
+ vegeta
904
+ titanic
905
+ christ
906
+ goblue
907
+ fylhtq
908
+ wolf
909
+ mmmmmm
910
+ kirill
911
+ indian
912
+ hiphop
913
+ baxter
914
+ awesome
915
+ people
916
+ danger
917
+ roland
918
+ mookie
919
+ 741852963
920
+ 1111111111
921
+ dreamer
922
+ bambam
923
+ arnold
924
+ 1981
925
+ skipper
926
+ serega
927
+ rolltide
928
+ elvis
929
+ changeme
930
+ simon
931
+ 1q2w3e
932
+ lovelove
933
+ fktrcfylh
934
+ denver
935
+ tommy
936
+ mine
937
+ loverboy
938
+ hobbes
939
+ happy1
940
+ alison
941
+ nemesis
942
+ chevelle
943
+ cardinal
944
+ burton
945
+ wanker
946
+ picard
947
+ 151515
948
+ tweety
949
+ michael1
950
+ 147852369
951
+ 12312
952
+ xxxx
953
+ windows
954
+ turkey
955
+ 456789
956
+ 1974
957
+ vfrcbv
958
+ sublime
959
+ 1975
960
+ galina
961
+ bobby
962
+ newport
963
+ manutd
964
+ daddy
965
+ american
966
+ alexandr
967
+ 1966
968
+ victory
969
+ rooster
970
+ qqq111
971
+ madmax
972
+ electric
973
+ bigcock
974
+ a1b2c3
975
+ wolfpack
976
+ spring
977
+ phpbb
978
+ lalala
979
+ suckme
980
+ spiderman
981
+ eric
982
+ darkside
983
+ classic
984
+ raptor
985
+ 123456789q
986
+ hendrix
987
+ 1982
988
+ wombat
989
+ avatar
990
+ alpha
991
+ zxc123
992
+ crazy
993
+ hard
994
+ england
995
+ brazil
996
+ 1978
997
+ 01011980
998
+ wildcat
999
+ polina
1000
+ freepass
1001
+ carrie
1002
+ 99999999
1003
+ qaz123
1004
+ holiday
1005
+ fyfcnfcbz
1006
+ brother
1007
+ taurus
1008
+ shaggy
1009
+ raymond
1010
+ maksim
1011
+ gundam
1012
+ admin
1013
+ vagina
1014
+ pretty
1015
+ pickle
1016
+ good
1017
+ chronic
1018
+ alabama
1019
+ airplane
1020
+ 22222222
1021
+ 1976
1022
+ 1029384756
1023
+ 01011
1024
+ time
1025
+ sports
1026
+ ronaldo
1027
+ pandora
1028
+ cheyenne
1029
+ caesar
1030
+ billybob
1031
+ bigman
1032
+ 1968
1033
+ 124578
1034
+ snowman
1035
+ lawrence
1036
+ kenneth
1037
+ horse
1038
+ france
1039
+ bondage
1040
+ perfect
1041
+ kristen
1042
+ devils
1043
+ alpha1
1044
+ pussycat
1045
+ kodiak
1046
+ flowers
1047
+ 1973
1048
+ 01012000
1049
+ leather
1050
+ amber
1051
+ gracie
1052
+ chocolat
1053
+ bubba1
1054
+ catch22
1055
+ business
1056
+ 2323
1057
+ 1983
1058
+ cjkysirj
1059
+ 1972
1060
+ 123qweasd
1061
+ ytrewq
1062
+ wolves
1063
+ stingray
1064
+ ssssss
1065
+ serenity
1066
+ ronald
1067
+ greenday
1068
+ 135790
1069
+ 010101
1070
+ tiger1
1071
+ sunset
1072
+ charlie1
1073
+ berlin
1074
+ bbbbbb
1075
+ 171717
1076
+ panzer
1077
+ lincoln
1078
+ katana
1079
+ firebird
1080
+ blizzard
1081
+ a1b2c3d4
1082
+ white
1083
+ sterling
1084
+ redhead
1085
+ password123
1086
+ candy
1087
+ anna
1088
+ 142536
1089
+ sasha
1090
+ pyramid
1091
+ outlaw
1092
+ hercules
1093
+ garcia
1094
+ 454545
1095
+ trevor
1096
+ teens
1097
+ maria
1098
+ kramer
1099
+ girl
1100
+ popeye
1101
+ pontiac
1102
+ hardon
1103
+ dude
1104
+ aaaaa
1105
+ 323232
1106
+ tarheels
1107
+ honey
1108
+ cobra
1109
+ buddy1
1110
+ remember
1111
+ lickme
1112
+ detroit
1113
+ clinton
1114
+ basketball
1115
+ zeppelin
1116
+ whynot
1117
+ swimming
1118
+ strike
1119
+ service
1120
+ pavilion
1121
+ michele
1122
+ engineer
1123
+ dodgers
1124
+ britney
1125
+ bobafett
1126
+ adam
1127
+ 741852
1128
+ 21122112
1129
+ xxxxx
1130
+ robbie
1131
+ miranda
1132
+ 456123
1133
+ future
1134
+ darkstar
1135
+ icecream
1136
+ connie
1137
+ 1970
1138
+ jones
1139
+ hellfire
1140
+ fisher
1141
+ fireball
1142
+ apache
1143
+ fuckit
1144
+ blonde
1145
+ bigmac
1146
+ abcd
1147
+ morris
1148
+ angel1
1149
+ 666999
1150
+ 321321
1151
+ simone
1152
+ rockstar
1153
+ flash
1154
+ defender
1155
+ 1967
1156
+ wallace
1157
+ trooper
1158
+ oscar
1159
+ norton
1160
+ casino
1161
+ cancer
1162
+ beauty
1163
+ weasel
1164
+ savage
1165
+ raven
1166
+ harvey
1167
+ bowling
1168
+ 246810
1169
+ wutang
1170
+ theone
1171
+ swordfish
1172
+ stewart
1173
+ airforce
1174
+ abcdefgh
1175
+ nipples
1176
+ nastya
1177
+ jenny
1178
+ hacker
1179
+ 753951
1180
+ amateur
1181
+ viktor
1182
+ srinivas
1183
+ maxima
1184
+ lennon
1185
+ freddie
1186
+ bluebird
1187
+ qazqaz
1188
+ presario
1189
+ pimp
1190
+ packard
1191
+ mouse
1192
+ looking
1193
+ lesbian
1194
+ jeff
1195
+ cheryl
1196
+ 2001
1197
+ wrangler
1198
+ sandy
1199
+ machine
1200
+ lights
1201
+ eatme
1202
+ control
1203
+ tattoo
1204
+ precious
1205
+ harrison
1206
+ duke
1207
+ beach
1208
+ tornado
1209
+ tanner
1210
+ goldfish
1211
+ catfish
1212
+ openup
1213
+ manager
1214
+ 1971
1215
+ street
1216
+ Soso123aljg
1217
+ roscoe
1218
+ paris
1219
+ natali
1220
+ light
1221
+ julian
1222
+ jerry
1223
+ dilbert
1224
+ dbrnjhbz
1225
+ chris1
1226
+ atlanta
1227
+ xfiles
1228
+ thailand
1229
+ sailor
1230
+ pussies
1231
+ pervert
1232
+ lucifer
1233
+ longhorn
1234
+ enjoy
1235
+ dragons
1236
+ young
1237
+ target
1238
+ elaine
1239
+ dustin
1240
+ 123qweasdzxc
1241
+ student
1242
+ madman
1243
+ lisa
1244
+ integra
1245
+ wordpass
1246
+ prelude
1247
+ newton
1248
+ lolita
1249
+ ladies
1250
+ hawkeye
1251
+ corona
1252
+ bubble
1253
+ 31415926
1254
+ trigger
1255
+ spike
1256
+ katie
1257
+ iloveu
1258
+ herman
1259
+ design
1260
+ cannon
1261
+ 999999999
1262
+ video
1263
+ stealth
1264
+ shooter
1265
+ nfnmzyf
1266
+ hottie
1267
+ browns
1268
+ 314159
1269
+ trucks
1270
+ malibu
1271
+ bruins
1272
+ bobcat
1273
+ barbie
1274
+ 1964
1275
+ orlando
1276
+ letmein1
1277
+ freaky
1278
+ foobar
1279
+ cthutq
1280
+ baller
1281
+ unicorn
1282
+ scully
1283
+ pussy1
1284
+ potter
1285
+ cookies
1286
+ pppppp
1287
+ philip
1288
+ gogogo
1289
+ elena
1290
+ country
1291
+ assassin
1292
+ 1010
1293
+ zaqwsx
1294
+ testtest
1295
+ peewee
1296
+ moose
1297
+ microsoft
1298
+ teacher
1299
+ sweety
1300
+ stefan
1301
+ stacey
1302
+ shotgun
1303
+ random
1304
+ laura
1305
+ hooker
1306
+ dfvgbh
1307
+ devildog
1308
+ chipper
1309
+ athena
1310
+ winnie
1311
+ valentina
1312
+ pegasus
1313
+ kristin
1314
+ fetish
1315
+ butterfly
1316
+ woody
1317
+ swinger
1318
+ seattle
1319
+ lonewolf
1320
+ joker
1321
+ booty
1322
+ babydoll
1323
+ atlantis
1324
+ tony
1325
+ powers
1326
+ polaris
1327
+ montreal
1328
+ angelina
1329
+ 77777
1330
+ tickle
1331
+ regina
1332
+ pepsi
1333
+ gizmo
1334
+ express
1335
+ dollar
1336
+ squirt
1337
+ shamrock
1338
+ knicks
1339
+ hotstuff
1340
+ balls
1341
+ transam
1342
+ stinger
1343
+ smiley
1344
+ ryan
1345
+ redneck
1346
+ mistress
1347
+ hjvfirf
1348
+ cessna
1349
+ bunny
1350
+ toshiba
1351
+ single
1352
+ piglet
1353
+ fucked
1354
+ father
1355
+ deftones
1356
+ coyote
1357
+ castle
1358
+ cadillac
1359
+ blaster
1360
+ valerie
1361
+ samurai
1362
+ oicu812
1363
+ lindsay
1364
+ jasmin
1365
+ james1
1366
+ ficken
1367
+ blahblah
1368
+ birthday
1369
+ 1234abcd
1370
+ 01011990
1371
+ sunday
1372
+ manson
1373
+ flipper
1374
+ asdfghj
1375
+ 181818
1376
+ wicked
1377
+ great
1378
+ daisy
1379
+ babes
1380
+ skeeter
1381
+ reaper
1382
+ maddie
1383
+ cavalier
1384
+ veronika
1385
+ trucker
1386
+ qazwsx123
1387
+ mustang1
1388
+ goldberg
1389
+ escort
1390
+ 12345678910
1391
+ wolfgang
1392
+ rocks
1393
+ mylove
1394
+ mememe
1395
+ lancer
1396
+ ibanez
1397
+ travel
1398
+ sugar
1399
+ snake
1400
+ sister
1401
+ siemens
1402
+ savannah
1403
+ minnie
1404
+ leonardo
1405
+ basketba
1406
+ 1963
1407
+ trumpet
1408
+ texas
1409
+ rocky1
1410
+ galaxy
1411
+ cristina
1412
+ aardvark
1413
+ shelly
1414
+ hotsex
1415
+ goldie
1416
+ fatboy
1417
+ benson
1418
+ 321654
1419
+ 141627
1420
+ sweetpea
1421
+ ronnie
1422
+ indigo
1423
+ 13131313
1424
+ spartan
1425
+ roberto
1426
+ hesoyam
1427
+ freeman
1428
+ freedom1
1429
+ fredfred
1430
+ pizza
1431
+ manchester
1432
+ lestat
1433
+ kathleen
1434
+ hamilton
1435
+ erotic
1436
+ blabla
1437
+ 22222
1438
+ 1995
1439
+ skater
1440
+ pencil
1441
+ passwor
1442
+ larisa
1443
+ hornet
1444
+ hamlet
1445
+ gambit
1446
+ fuckyou2
1447
+ alfred
1448
+ 456456
1449
+ sweetie
1450
+ marino
1451
+ lollol
1452
+ 565656
1453
+ techno
1454
+ special
1455
+ renegade
1456
+ insane
1457
+ indiana
1458
+ farmer
1459
+ drpepper
1460
+ blondie
1461
+ bigboobs
1462
+ 272727
1463
+ 1a2b3c
1464
+ valera
1465
+ storm
1466
+ seven
1467
+ rose
1468
+ nick
1469
+ mister
1470
+ karate
1471
+ casey
1472
+ 1qaz2wsx3edc
1473
+ 1478963
1474
+ maiden
1475
+ julie
1476
+ curtis
1477
+ colors
1478
+ christia
1479
+ buckeyes
1480
+ 13579
1481
+ 0123456789
1482
+ toronto
1483
+ stephani
1484
+ pioneer
1485
+ kissme
1486
+ jungle
1487
+ jerome
1488
+ holland
1489
+ harry
1490
+ garden
1491
+ enterpri
1492
+ dragon1
1493
+ diamonds
1494
+ chrissy
1495
+ bigone
1496
+ 343434
1497
+ wonder
1498
+ wetpussy
1499
+ subaru
1500
+ smitty
1501
+ racecar
1502
+ pascal
1503
+ morpheus
1504
+ joanne
1505
+ irina
1506
+ indians
1507
+ impala
1508
+ hamster
1509
+ charger
1510
+ change
1511
+ bigfoot
1512
+ babylon
1513
+ 66666666
1514
+ timber
1515
+ redman
1516
+ pornstar
1517
+ bernie
1518
+ tomtom
1519
+ thuglife
1520
+ millie
1521
+ buckeye
1522
+ aaron
1523
+ virgin
1524
+ tristan
1525
+ stormy
1526
+ rusty
1527
+ pierre
1528
+ napoleon
1529
+ monkey1
1530
+ highland
1531
+ chiefs
1532
+ chandler
1533
+ catdog
1534
+ aurora
1535
+ 1965
1536
+ trfnthbyf
1537
+ sampson
1538
+ nipple
1539
+ dudley
1540
+ cream
1541
+ consumer
1542
+ burger
1543
+ brandi
1544
+ welcome1
1545
+ triumph
1546
+ joejoe
1547
+ hunting
1548
+ dirty
1549
+ caserta
1550
+ brown
1551
+ aragorn
1552
+ 363636
1553
+ mariah
1554
+ element
1555
+ chichi
1556
+ 2121
1557
+ 123qwe123
1558
+ wrinkle1
1559
+ smoke
1560
+ omega
1561
+ monika
1562
+ leonard
1563
+ justme
1564
+ hobbit
1565
+ gloria
1566
+ doggy
1567
+ chicks
1568
+ bass
1569
+ audrey
1570
+ 951753
1571
+ 51505150
1572
+ 11235813
1573
+ sakura
1574
+ philips
1575
+ griffin
1576
+ butterfl
1577
+ artist
1578
+ 66666
1579
+ island
1580
+ goforit
1581
+ emerald
1582
+ elizabeth
1583
+ anakin
1584
+ watson
1585
+ poison
1586
+ none
1587
+ italia
1588
+ callie
1589
+ bobbob
1590
+ autumn
1591
+ andreas
1592
+ 123
1593
+ sherlock
1594
+ q12345
1595
+ pitbull
1596
+ marathon
1597
+ kelsey
1598
+ inside
1599
+ german
1600
+ blackie
1601
+ access14
1602
+ 123asd
1603
+ zipper
1604
+ overlord
1605
+ nadine
1606
+ marie
1607
+ basket
1608
+ trombone
1609
+ stones
1610
+ sammie
1611
+ nugget
1612
+ naked
1613
+ kaiser
1614
+ isabelle
1615
+ huskers
1616
+ bomber
1617
+ barcelona
1618
+ babylon5
1619
+ babe
1620
+ alpine
1621
+ weed
1622
+ ultimate
1623
+ pebbles
1624
+ nicolas
1625
+ marion
1626
+ loser
1627
+ linda
1628
+ eddie
1629
+ wesley
1630
+ warlock
1631
+ tyler
1632
+ goddess
1633
+ fatcat
1634
+ energy
1635
+ david1
1636
+ bassman
1637
+ yankees1
1638
+ whore
1639
+ trojan
1640
+ trixie
1641
+ superfly
1642
+ kkkkkk
1643
+ ybrbnf
1644
+ warren
1645
+ sophia
1646
+ sidney
1647
+ pussys
1648
+ nicola
1649
+ campbell
1650
+ vfvjxrf
1651
+ singer
1652
+ shirley
1653
+ qawsed
1654
+ paladin
1655
+ martha
1656
+ karen
1657
+ help
1658
+ harold
1659
+ geronimo
1660
+ forget
1661
+ concrete
1662
+ 191919
1663
+ westham
1664
+ soldier
1665
+ q1w2e3r4t5y6
1666
+ poiuyt
1667
+ nikki
1668
+ mario
1669
+ juice
1670
+ jessica1
1671
+ global
1672
+ dodger
1673
+ 123454321
1674
+ webster
1675
+ titans
1676
+ tintin
1677
+ tarzan
1678
+ sexual
1679
+ sammy1
1680
+ portugal
1681
+ onelove
1682
+ marcel
1683
+ manuel
1684
+ madness
1685
+ jjjjjj
1686
+ holly
1687
+ christy
1688
+ 424242
1689
+ yvonne
1690
+ sundance
1691
+ sex4me
1692
+ pleasure
1693
+ logan
1694
+ danny
1695
+ wwwwww
1696
+ truck
1697
+ spartak
1698
+ smile
1699
+ michel
1700
+ history
1701
+ Exigen
1702
+ 65432
1703
+ 1234321
1704
+ sherry
1705
+ sherman
1706
+ seminole
1707
+ rommel
1708
+ network
1709
+ ladybug
1710
+ isabella
1711
+ holden
1712
+ harris
1713
+ germany
1714
+ fktrctq
1715
+ cotton
1716
+ angelo
1717
+ 14789632
1718
+ sergio
1719
+ qazxswedc
1720
+ moon
1721
+ jesus1
1722
+ trunks
1723
+ snakes
1724
+ sluts
1725
+ kingkong
1726
+ bluesky
1727
+ archie
1728
+ adgjmptw
1729
+ 911911
1730
+ 112358
1731
+ sunny
1732
+ suck
1733
+ snatch
1734
+ planet
1735
+ panama
1736
+ ncc1701e
1737
+ mongoose
1738
+ head
1739
+ hansolo
1740
+ desire
1741
+ alejandr
1742
+ 1123581321
1743
+ whiskey
1744
+ waters
1745
+ teen
1746
+ party
1747
+ martina
1748
+ margaret
1749
+ january
1750
+ connect
1751
+ bluemoon
1752
+ bianca
1753
+ andrei
1754
+ 5555555
1755
+ smiles
1756
+ nolimit
1757
+ long
1758
+ assass
1759
+ abigail
1760
+ 555666
1761
+ yomama
1762
+ rocker
1763
+ plastic
1764
+ katrina
1765
+ ghbdtnbr
1766
+ ferret
1767
+ emily
1768
+ bonehead
1769
+ blessed
1770
+ beagle
1771
+ asasas
1772
+ abgrtyu
1773
+ sticky
1774
+ olga
1775
+ japan
1776
+ jamaica
1777
+ home
1778
+ hector
1779
+ dddddd
1780
+ 1961
1781
+ turbo
1782
+ stallion
1783
+ personal
1784
+ peace
1785
+ movie
1786
+ morrison
1787
+ joanna
1788
+ geheim
1789
+ finger
1790
+ cactus
1791
+ 7895123
1792
+ susan
1793
+ super123
1794
+ spyder
1795
+ mission
1796
+ anything
1797
+ aleksandr
1798
+ zxcvb
1799
+ shalom
1800
+ rhbcnbyf
1801
+ pickles
1802
+ passat
1803
+ natalia
1804
+ moomoo
1805
+ jumper
1806
+ inferno
1807
+ dietcoke
1808
+ cumming
1809
+ cooldude
1810
+ chuck
1811
+ christop
1812
+ million
1813
+ lollipop
1814
+ fernando
1815
+ christian
1816
+ blue22
1817
+ bernard
1818
+ apple1
1819
+ unreal
1820
+ spunky
1821
+ ripper
1822
+ open
1823
+ niners
1824
+ letmein2
1825
+ flatron
1826
+ faster
1827
+ deedee
1828
+ bertha
1829
+ april
1830
+ 4128
1831
+ 01012010
1832
+ werewolf
1833
+ rubber
1834
+ punkrock
1835
+ orion
1836
+ mulder
1837
+ missy
1838
+ larry
1839
+ giovanni
1840
+ gggggg
1841
+ cdtnkfyf
1842
+ yoyoyo
1843
+ tottenha
1844
+ shaved
1845
+ newman
1846
+ lindsey
1847
+ joey
1848
+ hongkong
1849
+ freak
1850
+ daniela
1851
+ camera
1852
+ brianna
1853
+ blackcat
1854
+ a1234567
1855
+ 1q1q1q
1856
+ zzzzzzzz
1857
+ stars
1858
+ pentium
1859
+ patton
1860
+ jamie
1861
+ hollywoo
1862
+ florence
1863
+ biscuit
1864
+ beetle
1865
+ andy
1866
+ always
1867
+ speed
1868
+ sailing
1869
+ phillip
1870
+ legion
1871
+ gn56gn56
1872
+ 909090
1873
+ martini
1874
+ dream
1875
+ darren
1876
+ clifford
1877
+ 2002
1878
+ stocking
1879
+ solomon
1880
+ silvia
1881
+ pirates
1882
+ office
1883
+ monitor
1884
+ monique
1885
+ milton
1886
+ matthew1
1887
+ maniac
1888
+ loulou
1889
+ jackoff
1890
+ immortal
1891
+ fossil
1892
+ dodge
1893
+ delta
1894
+ 44444444
1895
+ 121314
1896
+ sylvia
1897
+ sprite
1898
+ shadow1
1899
+ salmon
1900
+ diana
1901
+ shasta
1902
+ patriot
1903
+ palmer
1904
+ oxford
1905
+ nylons
1906
+ molly1
1907
+ irish
1908
+ holmes
1909
+ curious
1910
+ asdzxc
1911
+ 1999
1912
+ makaveli
1913
+ kiki
1914
+ kennedy
1915
+ groovy
1916
+ foster
1917
+ drizzt
1918
+ twister
1919
+ snapper
1920
+ sebastia
1921
+ philly
1922
+ pacific
1923
+ jersey
1924
+ ilovesex
1925
+ dominic
1926
+ charlott
1927
+ carrot
1928
+ anthony1
1929
+ africa
1930
+ 111222333
1931
+ sharks
1932
+ serena
1933
+ satan666
1934
+ maxmax
1935
+ maurice
1936
+ jacob
1937
+ gerald
1938
+ cosmos
1939
+ columbia
1940
+ colleen
1941
+ cjkywt
1942
+ cantona
1943
+ brooks
1944
+ 99999
1945
+ 787878
1946
+ rodney
1947
+ nasty
1948
+ keeper
1949
+ infantry
1950
+ frog
1951
+ french
1952
+ eternity
1953
+ dillon
1954
+ coolio
1955
+ condor
1956
+ anton
1957
+ waterloo
1958
+ velvet
1959
+ vanhalen
1960
+ teddy
1961
+ skywalke
1962
+ sheila
1963
+ sesame
1964
+ seinfeld
1965
+ funtime
1966
+ 012345
1967
+ standard
1968
+ squirrel
1969
+ qazwsxed
1970
+ ninja
1971
+ kingdom
1972
+ grendel
1973
+ ghost
1974
+ fuckfuck
1975
+ damien
1976
+ crimson
1977
+ boeing
1978
+ bird
1979
+ biggie
1980
+ 090909
1981
+ zaq123
1982
+ wolverine
1983
+ wolfman
1984
+ trains
1985
+ sweets
1986
+ sunrise
1987
+ maxine
1988
+ legolas
1989
+ jericho
1990
+ isabel
1991
+ foxtrot
1992
+ anal
1993
+ shogun
1994
+ search
1995
+ robinson
1996
+ rfrfirf
1997
+ ravens
1998
+ privet
1999
+ penny
2000
+ musicman
2001
+ memphis
2002
+ megadeth
2003
+ dogs
2004
+ butt
2005
+ brownie
2006
+ oldman
2007
+ graham
2008
+ grace
2009
+ 505050
2010
+ verbatim
2011
+ support
2012
+ safety
2013
+ review
2014
+ newlife
2015
+ muscle
2016
+ herbert
2017
+ colt45
2018
+ bottom
2019
+ 2525
2020
+ 1q2w3e4r5t6y
2021
+ 1960
2022
+ 159159
2023
+ western
2024
+ twilight
2025
+ thanks
2026
+ suzanne
2027
+ potato
2028
+ pikachu
2029
+ murray
2030
+ master1
2031
+ marlin
2032
+ gilbert
2033
+ getsome
2034
+ fuckyou1
2035
+ dima
2036
+ denis
2037
+ 789789
2038
+ 456852
2039
+ stone
2040
+ stardust
2041
+ seven7
2042
+ peanuts
2043
+ obiwan
2044
+ mollie
2045
+ licker
2046
+ kansas
2047
+ frosty
2048
+ ball
2049
+ 262626
2050
+ tarheel
2051
+ showtime
2052
+ roman
2053
+ markus
2054
+ maestro
2055
+ lobster
2056
+ darwin
2057
+ cindy
2058
+ chubby
2059
+ 2468
2060
+ 147896325
2061
+ tanker
2062
+ surfing
2063
+ skittles
2064
+ showme
2065
+ shaney14
2066
+ qwerty12345
2067
+ magic1
2068
+ goblin
2069
+ fusion
2070
+ blades
2071
+ banshee
2072
+ alberto
2073
+ 123321123
2074
+ 123098
2075
+ powder
2076
+ malcolm
2077
+ intrepid
2078
+ garrett
2079
+ delete
2080
+ chaos
2081
+ bruno
2082
+ 1701
2083
+ tequila
2084
+ short
2085
+ sandiego
2086
+ python
2087
+ punisher
2088
+ newpass
2089
+ iverson
2090
+ clayton
2091
+ amadeus
2092
+ 1234567a
2093
+ stimpy
2094
+ sooners
2095
+ preston
2096
+ poopie
2097
+ photos
2098
+ neptune
2099
+ mirage
2100
+ harmony
2101
+ gold
2102
+ fighter
2103
+ dingdong
2104
+ cats
2105
+ whitney
2106
+ sucks
2107
+ slick
2108
+ rick
2109
+ ricardo
2110
+ princes
2111
+ liquid
2112
+ helena
2113
+ daytona
2114
+ clover
2115
+ blues
2116
+ anubis
2117
+ 1996
2118
+ 192837465
2119
+ starcraft
2120
+ roxanne
2121
+ pepsi1
2122
+ mushroom
2123
+ eatshit
2124
+ dagger
2125
+ cracker
2126
+ capital
2127
+ brendan
2128
+ blackdog
2129
+ 25802580
2130
+ strider
2131
+ slapshot
2132
+ porter
2133
+ pink
2134
+ jason1
2135
+ hershey
2136
+ gothic
2137
+ flight
2138
+ ekaterina
2139
+ cody
2140
+ buffy
2141
+ boss
2142
+ bananas
2143
+ aaaaaaa
2144
+ 123698745
2145
+ 1234512345
2146
+ tracey
2147
+ miami
2148
+ kolobok
2149
+ danni
2150
+ chargers
2151
+ cccccc
2152
+ blue123
2153
+ bigguy
2154
+ 33333333
2155
+ 0.0.000
2156
+ warriors
2157
+ walnut
2158
+ raistlin
2159
+ ping
2160
+ miguel
2161
+ latino
2162
+ griffey
2163
+ green1
2164
+ gangster
2165
+ felix
2166
+ engine
2167
+ doodle
2168
+ coltrane
2169
+ byteme
2170
+ buck
2171
+ asdf123
2172
+ 123456z
2173
+ 0007
2174
+ vertigo
2175
+ tacobell
2176
+ shark
2177
+ portland
2178
+ penelope
2179
+ osiris
2180
+ nymets
2181
+ nookie
2182
+ mary
2183
+ lucky7
2184
+ lucas
2185
+ lester
2186
+ ledzep
2187
+ gorilla
2188
+ coco
2189
+ bugger
2190
+ bruce
2191
+ blood
2192
+ bentley
2193
+ battle
2194
+ 1a2b3c4d
2195
+ 19841984
2196
+ 12369874
2197
+ weezer
2198
+ turner
2199
+ thegame
2200
+ stranger
2201
+ sally
2202
+ Mailcreated5240
2203
+ knights
2204
+ halflife
2205
+ ffffff
2206
+ dorothy
2207
+ dookie
2208
+ damian
2209
+ 258456
2210
+ women
2211
+ trance
2212
+ qwerasdf
2213
+ playtime
2214
+ paradox
2215
+ monroe
2216
+ kangaroo
2217
+ henry
2218
+ dumbass
2219
+ dublin
2220
+ charly
2221
+ butler
2222
+ brasil
2223
+ blade
2224
+ blackman
2225
+ bender
2226
+ baggins
2227
+ wisdom
2228
+ tazman
2229
+ swallow
2230
+ stuart
2231
+ scruffy
2232
+ phoebe
2233
+ panasonic
2234
+ Michael
2235
+ masters
2236
+ ghjcnj
2237
+ firefly
2238
+ derrick
2239
+ christine
2240
+ beautiful
2241
+ auburn
2242
+ archer
2243
+ aliens
2244
+ 161616
2245
+ 1122
2246
+ woody1
2247
+ wheels
2248
+ test1
2249
+ spanking
2250
+ robin
2251
+ redred
2252
+ racerx
2253
+ postal
2254
+ parrot
2255
+ nimrod
2256
+ meridian
2257
+ madrid
2258
+ lonestar
2259
+ kittycat
2260
+ hell
2261
+ goodluck
2262
+ gangsta
2263
+ formula
2264
+ devil
2265
+ cassidy
2266
+ camille
2267
+ buttons
2268
+ bonjour
2269
+ bingo
2270
+ barcelon
2271
+ allen
2272
+ 98765
2273
+ 898989
2274
+ 303030
2275
+ 2020
2276
+ 0000000
2277
+ tttttt
2278
+ tamara
2279
+ scoobydo
2280
+ samsam
2281
+ rjntyjr
2282
+ richie
2283
+ qwertz
2284
+ megaman
2285
+ luther
2286
+ jazz
2287
+ crusader
2288
+ bollox
2289
+ 123qaz
2290
+ 12312312
2291
+ 102938
2292
+ window
2293
+ sprint
2294
+ sinner
2295
+ sadie
2296
+ rulez
2297
+ quality
2298
+ pooper
2299
+ pass123
2300
+ oakland
2301
+ misty
2302
+ lvbnhbq
2303
+ lady
2304
+ hannibal
2305
+ guardian
2306
+ grizzly
2307
+ fuckface
2308
+ finish
2309
+ discover
2310
+ collins
2311
+ catalina
2312
+ carson
2313
+ black1
2314
+ bang
2315
+ annie
2316
+ 123987
2317
+ 1122334455
2318
+ wookie
2319
+ volume
2320
+ tina
2321
+ rockon
2322
+ qwer
2323
+ molson
2324
+ marco
2325
+ californ
2326
+ angelica
2327
+ 2424
2328
+ world
2329
+ william1
2330
+ stonecol
2331
+ shemale
2332
+ shazam
2333
+ picasso
2334
+ oracle
2335
+ moscow
2336
+ luke
2337
+ lorenzo
2338
+ kitkat
2339
+ johnjohn
2340
+ janice
2341
+ gerard
2342
+ flames
2343
+ duck
2344
+ dark
2345
+ celica
2346
+ 445566
2347
+ 234567
2348
+ yourmom
2349
+ topper
2350
+ stevie
2351
+ septembe
2352
+ scarlett
2353
+ santiago
2354
+ milano
2355
+ lowrider
2356
+ loving
2357
+ incubus
2358
+ dogdog
2359
+ anastasia
2360
+ 1962
2361
+ 123zxc
2362
+ vacation
2363
+ tempest
2364
+ sithlord
2365
+ scarlet
2366
+ rebels
2367
+ ragnarok
2368
+ prodigy
2369
+ mobile
2370
+ keyboard
2371
+ golfing
2372
+ english
2373
+ carlo
2374
+ anime
2375
+ 545454
2376
+ 19921992
2377
+ 11112222
2378
+ vfhecz
2379
+ sobaka
2380
+ shiloh
2381
+ penguins
2382
+ nuttertools
2383
+ mystery
2384
+ lorraine
2385
+ llllll
2386
+ lawyer
2387
+ kiss
2388
+ jeep
2389
+ gizmodo
2390
+ elwood
2391
+ dkflbvbh
2392
+ 987456
2393
+ 6751520
2394
+ 12121
2395
+ titleist
2396
+ tardis
2397
+ tacoma
2398
+ smoker
2399
+ shaman
2400
+ rootbeer
2401
+ magnolia
2402
+ julia
2403
+ juan
2404
+ hoover
2405
+ gotcha
2406
+ dodgeram
2407
+ creampie
2408
+ buffett
2409
+ bridge
2410
+ aspirine
2411
+ 456654
2412
+ socrates
2413
+ photo
2414
+ parola
2415
+ nopass
2416
+ megan
2417
+ lucy
2418
+ kenwood
2419
+ kenny
2420
+ imagine
2421
+ forgot
2422
+ cynthia
2423
+ blondes
2424
+ ashton
2425
+ aezakmi
2426
+ 1234567q
2427
+ viper1
2428
+ terry
2429
+ sabine
2430
+ redalert
2431
+ qqqqqqqq
2432
+ munchkin
2433
+ monkeys
2434
+ mersedes
2435
+ melvin
2436
+ mallard
2437
+ lizzie
2438
+ imperial
2439
+ honda1
2440
+ gremlin
2441
+ gillian
2442
+ elliott
2443
+ defiant
2444
+ dadada
2445
+ cooler
2446
+ bond
2447
+ blueeyes
2448
+ birdman
2449
+ bigballs
2450
+ analsex
2451
+ 753159
2452
+ zaq1xsw2
2453
+ xanadu
2454
+ weather
2455
+ violet
2456
+ sergei
2457
+ sebastian
2458
+ romeo
2459
+ research
2460
+ putter
2461
+ oooooo
2462
+ national
2463
+ lexmark
2464
+ hotboy
2465
+ greg
2466
+ garbage
2467
+ colombia
2468
+ chucky
2469
+ carpet
2470
+ bobo
2471
+ bobbie
2472
+ assfuck
2473
+ 88888
2474
+ 01012001
2475
+ smokin
2476
+ shaolin
2477
+ roger
2478
+ rammstein
2479
+ pussy69
2480
+ katerina
2481
+ hearts
2482
+ frogger
2483
+ freckles
2484
+ dogg
2485
+ dixie
2486
+ claude
2487
+ caliente
2488
+ amazon
2489
+ abcde
2490
+ 1221
2491
+ wright
2492
+ willis
2493
+ spidey
2494
+ sleepy
2495
+ sirius
2496
+ santos
2497
+ rrrrrr
2498
+ randy
2499
+ picture
2500
+ payton
2501
+ mason
2502
+ dusty
2503
+ director
2504
+ celeste
2505
+ broken
2506
+ trebor
2507
+ sheena
2508
+ qazwsxedcrfv
2509
+ polo
2510
+ oblivion
2511
+ mustangs
2512
+ margarita
2513
+ letsgo
2514
+ josh
2515
+ jimbob
2516
+ jimbo
2517
+ janine
2518
+ jackal
2519
+ iforgot
2520
+ hallo
2521
+ fatass
2522
+ deadhead
2523
+ abc12
2524
+ zxcv1234
2525
+ willy
2526
+ stud
2527
+ slappy
2528
+ roberts
2529
+ rescue
2530
+ porkchop
2531
+ noodles
2532
+ nellie
2533
+ mypass
2534
+ mikey
2535
+ marvel
2536
+ laurie
2537
+ grateful
2538
+ fuck_inside
2539
+ formula1
2540
+ Dragon
2541
+ cxfcnmt
2542
+ bridget
2543
+ aussie
2544
+ asterix
2545
+ a1s2d3f4
2546
+ 23232323
2547
+ 123321q
2548
+ veritas
2549
+ spankme
2550
+ shopping
2551
+ roller
2552
+ rogers
2553
+ queen
2554
+ peterpan
2555
+ palace
2556
+ melinda
2557
+ martinez
2558
+ lonely
2559
+ kristi
2560
+ justdoit
2561
+ goodtime
2562
+ frances
2563
+ camel
2564
+ beckham
2565
+ atomic
2566
+ alexandra
2567
+ active
2568
+ 223344
2569
+ vanilla
2570
+ thankyou
2571
+ springer
2572
+ sommer
2573
+ Software
2574
+ sapphire
2575
+ richmond
2576
+ printer
2577
+ ohyeah
2578
+ massive
2579
+ lemons
2580
+ kingston
2581
+ granny
2582
+ funfun
2583
+ evelyn
2584
+ donnie
2585
+ deanna
2586
+ brucelee
2587
+ bosco
2588
+ aggies
2589
+ 313131
2590
+ wayne
2591
+ thunder1
2592
+ throat
2593
+ temple
2594
+ smudge
2595
+ qqqq
2596
+ qawsedrf
2597
+ plymouth
2598
+ pacman
2599
+ myself
2600
+ mariners
2601
+ israel
2602
+ hitler
2603
+ heather1
2604
+ faith
2605
+ Exigent
2606
+ clancy
2607
+ chelsea1
2608
+ 353535
2609
+ 282828
2610
+ 123456qwerty
2611
+ tobias
2612
+ tatyana
2613
+ stuff
2614
+ spectrum
2615
+ sooner
2616
+ shitty
2617
+ sasha1
2618
+ pooh
2619
+ pineappl
2620
+ mandy
2621
+ labrador
2622
+ kisses
2623
+ katrin
2624
+ kasper
2625
+ kaktus
2626
+ harder
2627
+ eduard
2628
+ dylan
2629
+ dead
2630
+ chloe
2631
+ astros
2632
+ 1234567890q
2633
+ 10101010
2634
+ stephanie
2635
+ satan
2636
+ hudson
2637
+ commando
2638
+ bones
2639
+ bangkok
2640
+ amsterdam
2641
+ 1959
2642
+ webmaster
2643
+ valley
2644
+ space
2645
+ southern
2646
+ rusty1
2647
+ punkin
2648
+ napass
2649
+ marian
2650
+ magnus
2651
+ lesbians
2652
+ krishna
2653
+ hungry
2654
+ hhhhhh
2655
+ fuckers
2656
+ fletcher
2657
+ content
2658
+ account
2659
+ 906090
2660
+ thompson
2661
+ simba
2662
+ scream
2663
+ q1q1q1
2664
+ primus
2665
+ Passw0rd
2666
+ mature
2667
+ ivanov
2668
+ husker
2669
+ homerun
2670
+ esther
2671
+ ernest
2672
+ champs
2673
+ celtics
2674
+ candyman
2675
+ bush
2676
+ boner
2677
+ asian
2678
+ aquarius
2679
+ 33333
2680
+ zxcv
2681
+ starfish
2682
+ pics
2683
+ peugeot
2684
+ painter
2685
+ monopoly
2686
+ lick
2687
+ infiniti
2688
+ goodbye
2689
+ gangbang
2690
+ fatman
2691
+ darling
2692
+ celine
2693
+ camelot
2694
+ boat
2695
+ blackjac
2696
+ barkley
2697
+ area51
2698
+ 8J4yE3Uz
2699
+ 789654
2700
+ 19871987
2701
+ 0000000000
2702
+ vader
2703
+ shelley
2704
+ scrappy
2705
+ sarah1
2706
+ sailboat
2707
+ richard1
2708
+ moloko
2709
+ method
2710
+ mama
2711
+ kyle
2712
+ kicker
2713
+ keith
2714
+ judith
2715
+ john316
2716
+ horndog
2717
+ godsmack
2718
+ flyboy
2719
+ emmanuel
2720
+ drago
2721
+ cosworth
2722
+ blake
2723
+ 19891989
2724
+ writer
2725
+ usa123
2726
+ topdog
2727
+ timmy
2728
+ speaker
2729
+ rosemary
2730
+ pancho
2731
+ night
2732
+ melody
2733
+ lightnin
2734
+ life
2735
+ hidden
2736
+ gator
2737
+ farside
2738
+ falcons
2739
+ desert
2740
+ chevrole
2741
+ catherin
2742
+ carolyn
2743
+ bowler
2744
+ anders
2745
+ 666777
2746
+ 369369
2747
+ yesyes
2748
+ sabbath
2749
+ qwerty123456
2750
+ power1
2751
+ pete
2752
+ oscar1
2753
+ ludwig
2754
+ jammer
2755
+ frontier
2756
+ fallen
2757
+ dance
2758
+ bryan
2759
+ asshole1
2760
+ amber1
2761
+ aaa111
2762
+ 123457
2763
+ 01011991
2764
+ terror
2765
+ telefon
2766
+ strong
2767
+ spartans
2768
+ sara
2769
+ odessa
2770
+ luckydog
2771
+ frank1
2772
+ elijah
2773
+ chang
2774
+ center
2775
+ bull
2776
+ blacks
2777
+ 15426378
2778
+ 132435
2779
+ vivian
2780
+ tanya
2781
+ swingers
2782
+ stick
2783
+ snuggles
2784
+ sanchez
2785
+ redbull
2786
+ reality
2787
+ qwertyuio
2788
+ qwert123
2789
+ mandingo
2790
+ ihateyou
2791
+ hayden
2792
+ goose
2793
+ franco
2794
+ forrest
2795
+ double
2796
+ carol
2797
+ bohica
2798
+ bell
2799
+ beefcake
2800
+ beatrice
2801
+ avenger
2802
+ andrew1
2803
+ anarchy
2804
+ 963852
2805
+ 1366613
2806
+ 111111111
2807
+ whocares
2808
+ scooter1
2809
+ rbhbkk
2810
+ matilda
2811
+ labtec
2812
+ kevin1
2813
+ jojo
2814
+ jesse
2815
+ hermes
2816
+ fitness
2817
+ doberman
2818
+ dawg
2819
+ clitoris
2820
+ camels
2821
+ 5555555555
2822
+ 1957
2823
+ vulcan
2824
+ vectra
2825
+ topcat
2826
+ theking
2827
+ skiing
2828
+ nokia
2829
+ muppet
2830
+ moocow
2831
+ leopard
2832
+ kelley
2833
+ ivan
2834
+ grover
2835
+ gjkbyf
2836
+ filter
2837
+ elvis1
2838
+ delta1
2839
+ dannyboy
2840
+ conrad
2841
+ children
2842
+ catcat
2843
+ bossman
2844
+ bacon
2845
+ amelia
2846
+ alice
2847
+ 2222222
2848
+ viktoria
2849
+ valhalla
2850
+ tricky
2851
+ terminator
2852
+ soccer1
2853
+ ramona
2854
+ puppy
2855
+ popopo
2856
+ oklahoma
2857
+ ncc1701a
2858
+ mystic
2859
+ loveit
2860
+ looker
2861
+ latin
2862
+ laptop
2863
+ laguna
2864
+ keystone
2865
+ iguana
2866
+ herbie
2867
+ cupcake
2868
+ clarence
2869
+ bunghole
2870
+ blacky
2871
+ bennett
2872
+ bart
2873
+ 19751975
2874
+ 12332
2875
+ 000007
2876
+ vette
2877
+ trojans
2878
+ today
2879
+ romashka
2880
+ puppies
2881
+ possum
2882
+ pa55word
2883
+ oakley
2884
+ moneys
2885
+ kingpin
2886
+ golfball
2887
+ funny
2888
+ doughboy
2889
+ dalton
2890
+ crash
2891
+ charlotte
2892
+ carlton
2893
+ breeze
2894
+ billie
2895
+ beast
2896
+ achilles
2897
+ tatiana
2898
+ studio
2899
+ sterlin
2900
+ plumber
2901
+ patrick1
2902
+ miles
2903
+ kotenok
2904
+ homers
2905
+ gbpltw
2906
+ gateway1
2907
+ franky
2908
+ durango
2909
+ drake
2910
+ deeznuts
2911
+ cowboys1
2912
+ ccbill
2913
+ brando
2914
+ 9876543210
2915
+ zzzz
2916
+ zxczxc
2917
+ vkontakte
2918
+ tyrone
2919
+ skinny
2920
+ rookie
2921
+ qwqwqw
2922
+ phillies
2923
+ lespaul
2924
+ juliet
2925
+ jeremiah
2926
+ igor
2927
+ homer1
2928
+ dilligaf
2929
+ caitlin
2930
+ budman
2931
+ atlantic
2932
+ 989898
2933
+ 362436
2934
+ 19851985
2935
+ vfrcbvrf
2936
+ verona
2937
+ technics
2938
+ svetik
2939
+ stripper
2940
+ soleil
2941
+ september
2942
+ pinkfloy
2943
+ noodle
2944
+ metal
2945
+ maynard
2946
+ maryland
2947
+ kentucky
2948
+ hastings
2949
+ gang
2950
+ frederic
2951
+ engage
2952
+ eileen
2953
+ butthole
2954
+ bone
2955
+ azsxdc
2956
+ agent007
2957
+ 474747
2958
+ 19911991
2959
+ 01011985
2960
+ triton
2961
+ tractor
2962
+ somethin
2963
+ snow
2964
+ shane
2965
+ sassy
2966
+ sabina
2967
+ russian
2968
+ porsche9
2969
+ pistol
2970
+ justine
2971
+ hurrican
2972
+ gopher
2973
+ deadman
2974
+ cutter
2975
+ coolman
2976
+ command
2977
+ chase
2978
+ california
2979
+ boris
2980
+ bicycle
2981
+ bethany
2982
+ bearbear
2983
+ babyboy
2984
+ 73501505
2985
+ 123456k
2986
+ zvezda
2987
+ vortex
2988
+ vipers
2989
+ tuesday
2990
+ traffic
2991
+ toto
2992
+ star69
2993
+ server
2994
+ ready
2995
+ rafael
2996
+ omega1
2997
+ nathalie
2998
+ microlab
2999
+ killme
3000
+ jrcfyf
3001
+ gizmo1
3002
+ function
3003
+ freaks
3004
+ flamingo
3005
+ enterprise
3006
+ eleven
3007
+ doobie
3008
+ deskjet
3009
+ cuddles
3010
+ church
3011
+ breast
3012
+ 19941994
3013
+ 19781978
3014
+ 1225
3015
+ 01011970
3016
+ vladik
3017
+ unknown
3018
+ truelove
3019
+ sweden
3020
+ striker
3021
+ stoner
3022
+ sony
3023
+ SaUn
3024
+ ranger1
3025
+ qqqqq
3026
+ pauline
3027
+ nebraska
3028
+ meatball
3029
+ marilyn
3030
+ jethro
3031
+ hammers
3032
+ gustav
3033
+ escape
3034
+ elliot
3035
+ dogman
3036
+ chair
3037
+ brothers
3038
+ boots
3039
+ blow
3040
+ bella
3041
+ belinda
3042
+ babies
3043
+ 1414
3044
+ titties
3045
+ syracuse
3046
+ river
3047
+ polska
3048
+ pilot
3049
+ oilers
3050
+ nofear
3051
+ military
3052
+ macdaddy
3053
+ hawk
3054
+ diamond1
3055
+ dddd
3056
+ danila
3057
+ central
3058
+ annette
3059
+ 128500
3060
+ zxcasd
3061
+ warhammer
3062
+ universe
3063
+ splash
3064
+ smut
3065
+ sentinel
3066
+ rayray
3067
+ randall
3068
+ Password1
3069
+ panda
3070
+ nevada
3071
+ mighty
3072
+ meghan
3073
+ mayday
3074
+ manchest
3075
+ madden
3076
+ kamikaze
3077
+ jennie
3078
+ iloveyo
3079
+ hustler
3080
+ hunter1
3081
+ horny1
3082
+ handsome
3083
+ dthjybrf
3084
+ designer
3085
+ demon
3086
+ cheers
3087
+ cash
3088
+ cancel
3089
+ blueblue
3090
+ bigger
3091
+ australia
3092
+ asdfjkl
3093
+ 321654987
3094
+ 1qaz1qaz
3095
+ 1955
3096
+ 1234qwe
3097
+ 01011981
3098
+ zaphod
3099
+ ultima
3100
+ tolkien
3101
+ Thomas
3102
+ thekid
3103
+ tdutybq
3104
+ summit
3105
+ select
3106
+ saint
3107
+ rockets
3108
+ rhonda
3109
+ retard
3110
+ rebel
3111
+ ralph
3112
+ poncho
3113
+ pokemon1
3114
+ play
3115
+ pantyhos
3116
+ nina
3117
+ momoney
3118
+ market
3119
+ lickit
3120
+ leader
3121
+ kong
3122
+ jenna
3123
+ jayjay
3124
+ javier
3125
+ eatpussy
3126
+ dracula
3127
+ dawson
3128
+ daniil
3129
+ cartoon
3130
+ capone
3131
+ bubbas
3132
+ 789123
3133
+ 19861986
3134
+ 01011986
3135
+ zxzxzx
3136
+ wendy
3137
+ tree
3138
+ superstar
3139
+ super1
3140
+ ssssssss
3141
+ sonic
3142
+ sinatra
3143
+ scottie
3144
+ sasasa
3145
+ rush
3146
+ robert1
3147
+ rjirfrgbde
3148
+ reagan
3149
+ meatloaf
3150
+ lifetime
3151
+ jimmy1
3152
+ jamesbon
3153
+ houses
3154
+ hilton
3155
+ gofish
3156
+ charmed
3157
+ bowser
3158
+ betty
3159
+ 525252
3160
+ 123456789z
3161
+ 1066
3162
+ woofwoof
3163
+ Turkey50
3164
+ santana
3165
+ rugby
3166
+ rfnthbyf
3167
+ miracle
3168
+ mailman
3169
+ lansing
3170
+ kathryn
3171
+ Jennifer
3172
+ giant
3173
+ front242
3174
+ firefox
3175
+ check
3176
+ boxing
3177
+ bogdan
3178
+ bizkit
3179
+ azamat
3180
+ apollo13
3181
+ alan
3182
+ zidane
3183
+ tracy
3184
+ tinman
3185
+ terminal
3186
+ starbuck
3187
+ redhot
3188
+ oregon
3189
+ memory
3190
+ lewis
3191
+ lancelot
3192
+ illini
3193
+ grandma
3194
+ govols
3195
+ gordon24
3196
+ giorgi
3197
+ feet
3198
+ fatima
3199
+ crunch
3200
+ creamy
3201
+ coke
3202
+ cabbage
3203
+ bryant
3204
+ brandon1
3205
+ bigmoney
3206
+ azsxdcfv
3207
+ 3333333
3208
+ 321123
3209
+ warlord
3210
+ station
3211
+ sayang
3212
+ rotten
3213
+ rightnow
3214
+ mojo
3215
+ models
3216
+ maradona
3217
+ lololo
3218
+ lionking
3219
+ jarhead
3220
+ hehehe
3221
+ gary
3222
+ fast
3223
+ exodus
3224
+ crazybab
3225
+ conner
3226
+ charlton
3227
+ catman
3228
+ casey1
3229
+ bonita
3230
+ arjay
3231
+ 19931993
3232
+ 19901990
3233
+ 1001
3234
+ 100000
3235
+ sticks
3236
+ poiuytrewq
3237
+ peters
3238
+ passwort
3239
+ orioles
3240
+ oranges
3241
+ marissa
3242
+ japanese
3243
+ holyshit
3244
+ hohoho
3245
+ gogo
3246
+ fabian
3247
+ donna
3248
+ cutlass
3249
+ cthulhu
3250
+ chewie
3251
+ chacha
3252
+ bradford
3253
+ bigtime
3254
+ aikido
3255
+ 4runner
3256
+ 21212121
3257
+ 150781
3258
+ wildfire
3259
+ utopia
3260
+ sport
3261
+ sexygirl
3262
+ rereirf
3263
+ reebok
3264
+ raven1
3265
+ poontang
3266
+ poodle
3267
+ movies
3268
+ microsof
3269
+ grumpy
3270
+ eeyore
3271
+ down
3272
+ dong
3273
+ chocolate
3274
+ chickens
3275
+ butch
3276
+ arsenal1
3277
+ adult
3278
+ adriana
3279
+ 19831983
3280
+ zzzzz
3281
+ volley
3282
+ tootsie
3283
+ sparkle
3284
+ software
3285
+ sexx
3286
+ scotch
3287
+ science
3288
+ rovers
3289
+ nnnnnn
3290
+ mellon
3291
+ legacy
3292
+ julius
3293
+ helen
3294
+ happyday
3295
+ fubar
3296
+ danie
3297
+ cancun
3298
+ br0d3r
3299
+ beverly
3300
+ beaner
3301
+ aberdeen
3302
+ 44444
3303
+ 19951995
3304
+ 13243546
3305
+ 123456aa
3306
+ wilbur
3307
+ treasure
3308
+ tomato
3309
+ theodore
3310
+ shania
3311
+ raiders1
3312
+ natural
3313
+ kume
3314
+ kathy
3315
+ hamburg
3316
+ gretchen
3317
+ frisco
3318
+ ericsson
3319
+ daddy1
3320
+ cosmo
3321
+ condom
3322
+ comics
3323
+ coconut
3324
+ cocks
3325
+ Check
3326
+ camilla
3327
+ bikini
3328
+ albatros
3329
+ 1Passwor
3330
+ 1958
3331
+ 1919
3332
+ 143143
3333
+ 0.0.0.000
3334
+ zxcasdqwe
3335
+ zaqxsw
3336
+ whisper
3337
+ vfvekz
3338
+ tyler1
3339
+ Sojdlg123aljg
3340
+ sixers
3341
+ sexsexsex
3342
+ rfhbyf
3343
+ profit
3344
+ okokok
3345
+ nancy
3346
+ mikemike
3347
+ michaela
3348
+ memorex
3349
+ marlene
3350
+ kristy
3351
+ jose
3352
+ jackson1
3353
+ hope
3354
+ hailey
3355
+ fugazi
3356
+ fright
3357
+ figaro
3358
+ excalibu
3359
+ elvira
3360
+ dildo
3361
+ denali
3362
+ cruise
3363
+ cooter
3364
+ cheng
3365
+ candle
3366
+ bitch1
3367
+ attack
3368
+ armani
3369
+ anhyeuem
3370
+ 78945612
3371
+ 222333
3372
+ zenith
3373
+ walleye
3374
+ tsunami
3375
+ trinidad
3376
+ thomas1
3377
+ temp
3378
+ tammy
3379
+ sultan
3380
+ steve1
3381
+ slacker
3382
+ selena
3383
+ samiam
3384
+ revenge
3385
+ pooppoop
3386
+ pillow
3387
+ nobody
3388
+ kitty1
3389
+ killer1
3390
+ jojojo
3391
+ huskies
3392
+ greens
3393
+ greenbay
3394
+ greatone
3395
+ fuckin
3396
+ fortuna
3397
+ fordf150
3398
+ first
3399
+ fashion
3400
+ fart
3401
+ emerson
3402
+ davis
3403
+ cloud9
3404
+ china
3405
+ boob
3406
+ applepie
3407
+ alien
3408
+ 963852741
3409
+ 321456
3410
+ 292929
3411
+ 1998
3412
+ 1956
3413
+ 18436572
3414
+ tasha
3415
+ stocks
3416
+ rustam
3417
+ rfrnec
3418
+ piccolo
3419
+ orgasm
3420
+ milana
3421
+ marisa
3422
+ marcos
3423
+ malaka
3424
+ lisalisa
3425
+ kelly1
3426
+ hithere
3427
+ harley1
3428
+ hardrock
3429
+ flying
3430
+ fernand
3431
+ dinosaur
3432
+ corrado
3433
+ coleman
3434
+ clapton
3435
+ chief
3436
+ bloody
3437
+ anfield
3438
+ 636363
3439
+ 420247
3440
+ 332211
3441
+ voyeur
3442
+ toby
3443
+ texas1
3444
+ surf
3445
+ steele
3446
+ running
3447
+ rastaman
3448
+ pa55w0rd
3449
+ oleg
3450
+ number1
3451
+ maxell
3452
+ madeline
3453
+ keywest
3454
+ junebug
3455
+ ingrid
3456
+ hollywood
3457
+ hellyeah
3458
+ hayley
3459
+ goku
3460
+ felicia
3461
+ eeeeee
3462
+ dicks
3463
+ dfkthbz
3464
+ dana
3465
+ daisy1
3466
+ columbus
3467
+ charli
3468
+ bonsai
3469
+ billy1
3470
+ aspire
3471
+ 9999999
3472
+ 987987
3473
+ 50cent
3474
+ 000001
3475
+ xxxxxxx
3476
+ wolfie
3477
+ viagra
3478
+ vfksirf
3479
+ vernon
3480
+ tang
3481
+ swimmer
3482
+ subway
3483
+ stolen
3484
+ sparta
3485
+ slutty
3486
+ skywalker
3487
+ sean
3488
+ sausage
3489
+ rockhard
3490
+ ricky
3491
+ positive
3492
+ nyjets
3493
+ miriam
3494
+ melissa1
3495
+ krista
3496
+ kipper
3497
+ kcj9wx5n
3498
+ jedi
3499
+ jazzman
3500
+ hyperion
3501
+ happy123
3502
+ gotohell
3503
+ garage
3504
+ football1
3505
+ fingers
3506
+ february
3507
+ faggot
3508
+ easy
3509
+ dragoon
3510
+ crazy1
3511
+ clemson
3512
+ chanel
3513
+ canon
3514
+ bootie
3515
+ balloon
3516
+ abc12345
3517
+ 609609609
3518
+ 456321
3519
+ 404040
3520
+ 162534
3521
+ yosemite
3522
+ slider
3523
+ shado
3524
+ sandro
3525
+ roadkill
3526
+ quincy
3527
+ pedro
3528
+ mayhem
3529
+ lion
3530
+ knopka
3531
+ kingfish
3532
+ jerkoff
3533
+ hopper
3534
+ everest
3535
+ ddddddd
3536
+ damnit
3537
+ cunts
3538
+ chevy1
3539
+ cheetah
3540
+ chaser
3541
+ billyboy
3542
+ bigbird
3543
+ bbbb
3544
+ 789987
3545
+ 1qa2ws3ed
3546
+ 1954
3547
+ 135246
3548
+ 123789456
3549
+ 122333
3550
+ 1000
3551
+ 050505
3552
+ wibble
3553
+ valeria
3554
+ tunafish
3555
+ trident
3556
+ thor
3557
+ tekken
3558
+ tara
3559
+ starship
3560
+ slave
3561
+ saratoga
3562
+ romance
3563
+ robotech
3564
+ rich
3565
+ rasputin
3566
+ rangers1
3567
+ powell
3568
+ poppop
3569
+ passwords
3570
+ p0015123
3571
+ nwo4life
3572
+ murder
3573
+ milena
3574
+ midget
3575
+ megapass
3576
+ lucky13
3577
+ lolipop
3578
+ koshka
3579
+ kenworth
3580
+ jonjon
3581
+ jenny1
3582
+ irish1
3583
+ hedgehog
3584
+ guiness
3585
+ gmoney
3586
+ ghetto
3587
+ fortune
3588
+ emily1
3589
+ duster
3590
+ ding
3591
+ davidson
3592
+ davids
3593
+ dammit
3594
+ dale
3595
+ crysis
3596
+ bogart
3597
+ anaconda
3598
+ alibaba
3599
+ airbus
3600
+ 7753191
3601
+ 515151
3602
+ 20102010
3603
+ 200000
3604
+ 123123q
3605
+ 12131415
3606
+ 10203
3607
+ work
3608
+ wood
3609
+ vladislav
3610
+ vfczyz
3611
+ tundra
3612
+ Translator
3613
+ torres
3614
+ splinter
3615
+ spears
3616
+ richards
3617
+ rachael
3618
+ pussie
3619
+ phoenix1
3620
+ pearl
3621
+ monty
3622
+ lolo
3623
+ lkjhgf
3624
+ leelee
3625
+ karolina
3626
+ johanna
3627
+ jensen
3628
+ helloo
3629
+ harper
3630
+ hal9000
3631
+ fletch
3632
+ feather
3633
+ fang
3634
+ dfkthf
3635
+ depeche
3636
+ barsik
3637
+ 789789789
3638
+ 757575
3639
+ 727272
3640
+ zorro
3641
+ xtreme
3642
+ woman
3643
+ vitalik
3644
+ vermont
3645
+ train
3646
+ theboss
3647
+ sword
3648
+ shearer
3649
+ sanders
3650
+ railroad
3651
+ qwer123
3652
+ pupsik
3653
+ pornos
3654
+ pippen
3655
+ pingpong
3656
+ nikola
3657
+ nguyen
3658
+ music1
3659
+ magicman
3660
+ killbill
3661
+ kickass
3662
+ kenshin
3663
+ katie1
3664
+ juggalo
3665
+ jayhawk
3666
+ java
3667
+ grapes
3668
+ fritz
3669
+ drew
3670
+ divine
3671
+ cyclops
3672
+ critter
3673
+ coucou
3674
+ cecilia
3675
+ bristol
3676
+ bigsexy
3677
+ allsop
3678
+ 9876
3679
+ 1230
3680
+ 01011989
3681
+ wrestlin
3682
+ twisted
3683
+ trout
3684
+ tommyboy
3685
+ stefano
3686
+ song
3687
+ skydive
3688
+ sherwood
3689
+ passpass
3690
+ pass1234
3691
+ onlyme
3692
+ malina
3693
+ majestic
3694
+ macross
3695
+ lillian
3696
+ heart
3697
+ guest
3698
+ gabrie
3699
+ fuckthis
3700
+ freeporn
3701
+ dinamo
3702
+ deborah
3703
+ crawford
3704
+ clipper
3705
+ city
3706
+ better
3707
+ bears
3708
+ bangbang
3709
+ asdasdasd
3710
+ artemis
3711
+ angie
3712
+ admiral
3713
+ 2003
3714
+ 020202
3715
+ yousuck
3716
+ xbox360
3717
+ werner
3718
+ vector
3719
+ usmc
3720
+ umbrella
3721
+ tool
3722
+ strange
3723
+ sparks
3724
+ spank
3725
+ smelly
3726
+ small
3727
+ salvador
3728
+ sabres
3729
+ rupert
3730
+ ramses
3731
+ presto
3732
+ pompey
3733
+ operator
3734
+ nudist
3735
+ ne1469
3736
+ minime
3737
+ matador
3738
+ love69
3739
+ kendall
3740
+ jordan1
3741
+ jeanette
3742
+ hooter
3743
+ hansen
3744
+ gunners
3745
+ gonzo
3746
+ gggggggg
3747
+ fktrcfylhf
3748
+ facial
3749
+ deepthroat
3750
+ daniel1
3751
+ dang
3752
+ cruiser
3753
+ cinnamon
3754
+ cigars
3755
+ chico
3756
+ chester1
3757
+ carl
3758
+ caramel
3759
+ calico
3760
+ broadway
3761
+ batman1
3762
+ baddog
3763
+ 778899
3764
+ 2128506
3765
+ 123456r
3766
+ 0420
3767
+ 01011988
3768
+ z1x2c3
3769
+ wassup
3770
+ wally
3771
+ vh5150
3772
+ underdog
3773
+ thesims
3774
+ thecat
3775
+ sunnyday
3776
+ snoopdog
3777
+ sandy1
3778
+ pooter
3779
+ multiplelo
3780
+ magick
3781
+ library
3782
+ kungfu
3783
+ kirsten
3784
+ kimber
3785
+ jean
3786
+ jasmine1
3787
+ hotshot
3788
+ gringo
3789
+ fowler
3790
+ emma
3791
+ duchess
3792
+ damage
3793
+ cyclone
3794
+ Computer
3795
+ chong
3796
+ chemical
3797
+ chainsaw
3798
+ caveman
3799
+ catherine
3800
+ carrera
3801
+ canadian
3802
+ buster1
3803
+ brighton
3804
+ back
3805
+ australi
3806
+ animals
3807
+ alliance
3808
+ albion
3809
+ 969696
3810
+ 555777
3811
+ 19721972
3812
+ 19691969
3813
+ 1024
3814
+ trisha
3815
+ theresa
3816
+ supersta
3817
+ steph
3818
+ static
3819
+ snowboar
3820
+ sex123
3821
+ scratch
3822
+ retired
3823
+ rambler
3824
+ r2d2c3po
3825
+ quantum
3826
+ passme
3827
+ over
3828
+ newbie
3829
+ mybaby
3830
+ musica
3831
+ misfit
3832
+ mechanic
3833
+ mattie
3834
+ mathew
3835
+ mamapapa
3836
+ looser
3837
+ jabroni
3838
+ isaiah
3839
+ heyhey
3840
+ hank
3841
+ hang
3842
+ golfgolf
3843
+ ghjcnjnfr
3844
+ frozen
3845
+ forfun
3846
+ fffff
3847
+ downtown
3848
+ coolguy
3849
+ cohiba
3850
+ christopher
3851
+ chivas
3852
+ chicken1
3853
+ bullseye
3854
+ boys
3855
+ bottle
3856
+ bob123
3857
+ blueboy
3858
+ believe
3859
+ becky
3860
+ beanie
3861
+ 20002000
3862
+ yzerman
3863
+ west
3864
+ village
3865
+ vietnam
3866
+ trader
3867
+ summer1
3868
+ stereo
3869
+ spurs
3870
+ solnce
3871
+ smegma
3872
+ skorpion
3873
+ saturday
3874
+ samara
3875
+ safari
3876
+ renault
3877
+ rctybz
3878
+ peterson
3879
+ paper
3880
+ meredith
3881
+ marc
3882
+ louis
3883
+ lkjhgfdsa
3884
+ ktyjxrf
3885
+ kill
3886
+ kids
3887
+ jjjj
3888
+ ivanova
3889
+ hotred
3890
+ goalie
3891
+ fishes
3892
+ eastside
3893
+ cypress
3894
+ cyber
3895
+ credit
3896
+ brad
3897
+ blackhaw
3898
+ beastie
3899
+ banker
3900
+ backdoor
3901
+ again
3902
+ 192837
3903
+ 112211
3904
+ westwood
3905
+ venus
3906
+ steeler
3907
+ spawn
3908
+ sneakers
3909
+ snapple
3910
+ snake1
3911
+ sims
3912
+ sharky
3913
+ sexxxx
3914
+ seeker
3915
+ scania
3916
+ sapper
3917
+ route66
3918
+ Robert
3919
+ q123456
3920
+ Passwor1
3921
+ mnbvcx
3922
+ mirror
3923
+ maureen
3924
+ marino13
3925
+ jamesbond
3926
+ jade
3927
+ horizon
3928
+ haha
3929
+ getmoney
3930
+ flounder
3931
+ fiesta
3932
+ europa
3933
+ direct
3934
+ dean
3935
+ compute
3936
+ chrono
3937
+ chad
3938
+ boomboom
3939
+ bobby1
3940
+ bing
3941
+ beerbeer
3942
+ apple123
3943
+ andres
3944
+ 8888888
3945
+ 777888
3946
+ 333666
3947
+ 1357
3948
+ 12345z
3949
+ 030303
3950
+ 01011987
3951
+ 01011984
3952
+ wolf359
3953
+ whitey
3954
+ undertaker
3955
+ topher
3956
+ tommy1
3957
+ tabitha
3958
+ stroke
3959
+ staples
3960
+ sinclair
3961
+ silence
3962
+ scout
3963
+ scanner
3964
+ samsung1
3965
+ rain
3966
+ poetry
3967
+ pisces
3968
+ phil
3969
+ peter1
3970
+ packer
3971
+ outkast
3972
+ nike
3973
+ moneyman
3974
+ mmmmmmmm
3975
+ ming
3976
+ marianne
3977
+ magpie
3978
+ love123
3979
+ kahuna
3980
+ jokers
3981
+ jjjjjjjj
3982
+ groucho
3983
+ goodman
3984
+ gargoyle
3985
+ fuckher
3986
+ florian
3987
+ federico
3988
+ droopy
3989
+ dorian
3990
+ donuts
3991
+ ddddd
3992
+ cinder
3993
+ buttman
3994
+ benny
3995
+ barry
3996
+ amsterda
3997
+ alfa
3998
+ 656565
3999
+ 1x2zkg8w
4000
+ 19881988
4001
+ 19741974
4002
+ zerocool
4003
+ walrus
4004
+ walmart
4005
+ vfvfgfgf
4006
+ user
4007
+ typhoon
4008
+ test1234
4009
+ studly
4010
+ Shadow
4011
+ sexy69
4012
+ sadie1
4013
+ rtyuehe
4014
+ rosie
4015
+ qwert1
4016
+ nipper
4017
+ maximum
4018
+ klingon
4019
+ jess
4020
+ idontknow
4021
+ heidi
4022
+ hahahaha
4023
+ gggg
4024
+ fucku2
4025
+ floppy
4026
+ flash1
4027
+ fghtkm
4028
+ erotica
4029
+ erik
4030
+ doodoo
4031
+ dharma
4032
+ deniska
4033
+ deacon
4034
+ daphne
4035
+ daewoo
4036
+ dada
4037
+ charley
4038
+ cambiami
4039
+ bimmer
4040
+ bike
4041
+ bigbear
4042
+ alucard
4043
+ absolut
4044
+ a123456789
4045
+ 4121
4046
+ 19731973
4047
+ 070707
4048
+ 03082006
4049
+ 02071986
4050
+ vfhufhbnf
4051
+ sinbad
4052
+ secret1
4053
+ second
4054
+ seamus
4055
+ renee
4056
+ redfish
4057
+ rabota
4058
+ pudding
4059
+ pppppppp
4060
+ patty
4061
+ paint
4062
+ ocean
4063
+ number
4064
+ nature
4065
+ motherlode
4066
+ micron
4067
+ maxx
4068
+ massimo
4069
+ losers
4070
+ lokomotiv
4071
+ ling
4072
+ kristine
4073
+ kostya
4074
+ korn
4075
+ goldstar
4076
+ gegcbr
4077
+ floyd
4078
+ fallout
4079
+ dawn
4080
+ custom
4081
+ christina
4082
+ chrisbln
4083
+ button
4084
+ bonkers
4085
+ bogey
4086
+ belle
4087
+ bbbbb
4088
+ barber
4089
+ audia4
4090
+ america1
4091
+ abraham
4092
+ 585858
4093
+ 414141
4094
+ 336699
4095
+ 20012001
4096
+ 12345678q
4097
+ 0123
4098
+ whitesox
4099
+ whatsup
4100
+ usnavy
4101
+ tuan
4102
+ titty
4103
+ titanium
4104
+ thursday
4105
+ thirteen
4106
+ tazmania
4107
+ steel
4108
+ starfire
4109
+ sparrow
4110
+ skidoo
4111
+ senior
4112
+ reading
4113
+ qwerqwer
4114
+ qazwsx12
4115
+ peyton
4116
+ panasoni
4117
+ paintbal
4118
+ newcastl
4119
+ marius
4120
+ italian
4121
+ hotpussy
4122
+ holly1
4123
+ goliath
4124
+ giuseppe
4125
+ frodo
4126
+ fresh
4127
+ buckshot
4128
+ bounce
4129
+ babyblue
4130
+ attitude
4131
+ answer
4132
+ 90210
4133
+ 575757
4134
+ 10203040
4135
+ 1012
4136
+ 01011910
4137
+ ybrjkfq
4138
+ wasser
4139
+ tyson
4140
+ Superman
4141
+ sunflowe
4142
+ steam
4143
+ ssss
4144
+ sound
4145
+ solution
4146
+ snoop
4147
+ shou
4148
+ shawn
4149
+ sasuke
4150
+ rules
4151
+ royals
4152
+ rivers
4153
+ respect
4154
+ poppy
4155
+ phillips
4156
+ olivier
4157
+ moose1
4158
+ mondeo
4159
+ mmmm
4160
+ knickers
4161
+ hoosier
4162
+ greece
4163
+ grant
4164
+ godfather
4165
+ freeze
4166
+ europe
4167
+ erica
4168
+ doogie
4169
+ danzig
4170
+ dalejr
4171
+ contact
4172
+ clarinet
4173
+ champ
4174
+ briana
4175
+ bluedog
4176
+ backup
4177
+ assholes
4178
+ allmine
4179
+ aaliyah
4180
+ 12345679
4181
+ 100100
4182
+ zigzag
4183
+ whisky
4184
+ weaver
4185
+ truman
4186
+ tomorrow
4187
+ tight
4188
+ theend
4189
+ start
4190
+ southpark
4191
+ sersolution
4192
+ roberta
4193
+ rhfcjnrf
4194
+ qwerty1234
4195
+ quartz
4196
+ premier
4197
+ paintball
4198
+ montgom240
4199
+ mommy
4200
+ mittens
4201
+ micheal
4202
+ maggot
4203
+ loco
4204
+ laurel
4205
+ lamont
4206
+ karma
4207
+ journey
4208
+ johannes
4209
+ intruder
4210
+ insert
4211
+ hairy
4212
+ hacked
4213
+ groove
4214
+ gesperrt
4215
+ francois
4216
+ focus
4217
+ felipe
4218
+ eternal
4219
+ edwards
4220
+ doug
4221
+ dollars
4222
+ dkflbckfd
4223
+ dfktynbyf
4224
+ demons
4225
+ deejay
4226
+ cubbies
4227
+ christie
4228
+ celeron
4229
+ cat123
4230
+ carbon
4231
+ callaway
4232
+ bucket
4233
+ albina
4234
+ 2004
4235
+ 19821982
4236
+ 19811981
4237
+ 1515
4238
+ 12qw34er
4239
+ 123qwerty
4240
+ 123aaa
4241
+ 10101
4242
+ 1007
4243
+ 080808
4244
+ zeus
4245
+ warthog
4246
+ tights
4247
+ simona
4248
+ shun
4249
+ salamander
4250
+ resident
4251
+ reefer
4252
+ racer
4253
+ quattro
4254
+ public
4255
+ poseidon
4256
+ pianoman
4257
+ nonono
4258
+ michell
4259
+ mellow
4260
+ luis
4261
+ jillian
4262
+ havefun
4263
+ gunnar
4264
+ goofy
4265
+ futbol
4266
+ fucku
4267
+ eduardo
4268
+ diehard
4269
+ dian
4270
+ chuckles
4271
+ carla
4272
+ carina
4273
+ avalanch
4274
+ artur
4275
+ allstar
4276
+ abc1234
4277
+ abby
4278
+ 4545
4279
+ 1q2w3e4r5
4280
+ 125125
4281
+ 123451
4282
+ ziggy
4283
+ yumyum
4284
+ working
4285
+ what
4286
+ wang
4287
+ wagner
4288
+ volvo
4289
+ ufkbyf
4290
+ twinkle
4291
+ susanne
4292
+ superman1
4293
+ sunshin
4294
+ strip
4295
+ searay
4296
+ rockford
4297
+ radio
4298
+ qwertyqwerty
4299
+ proxy
4300
+ prophet
4301
+ ou8122
4302
+ oasis
4303
+ mylife
4304
+ monke
4305
+ monaco
4306
+ meowmeow
4307
+ meathead
4308
+ Master
4309
+ leanne
4310
+ kang
4311
+ joyjoy
4312
+ joker1
4313
+ filthy
4314
+ emmitt
4315
+ craig
4316
+ cornell
4317
+ changed
4318
+ cbr600
4319
+ builder
4320
+ budweise
4321
+ boobie
4322
+ bobobo
4323
+ biggles
4324
+ bigass
4325
+ bertie
4326
+ amanda1
4327
+ a1s2d3
4328
+ 784512
4329
+ 767676
4330
+ 235689
4331
+ 1953
4332
+ 19411945
4333
+ 14725836
4334
+ 11223
4335
+ 01091989
4336
+ 01011992
4337
+ zero
4338
+ vegas
4339
+ twins
4340
+ turbo1
4341
+ triangle
4342
+ thongs
4343
+ thanatos
4344
+ sting
4345
+ starman
4346
+ spike1
4347
+ smokes
4348
+ shai
4349
+ sexyman
4350
+ sex
4351
+ scuba
4352
+ runescape
4353
+ phish
4354
+ pepper1
4355
+ padres
4356
+ nitram
4357
+ nickel
4358
+ napster
4359
+ lord
4360
+ jewels
4361
+ jeanne
4362
+ gretzky
4363
+ great1
4364
+ gladiator
4365
+ crjhgbjy
4366
+ chuang
4367
+ chou
4368
+ blossom
4369
+ bean
4370
+ barefoot
4371
+ alina
4372
+ 787898
4373
+ 567890
4374
+ 5551212
4375
+ 25252525
4376
+ 02071982
4377
+ zxcvbnm1
4378
+ zhong
4379
+ woohoo
4380
+ welder
4381
+ viewsonic
4382
+ venice
4383
+ usarmy
4384
+ trial
4385
+ traveler
4386
+ together
4387
+ team
4388
+ tango
4389
+ swords
4390
+ starter
4391
+ sputnik
4392
+ spongebob
4393
+ slinky
4394
+ rover
4395
+ ripken
4396
+ rasta
4397
+ prissy
4398
+ pinhead
4399
+ papa
4400
+ pants
4401
+ original
4402
+ mustard
4403
+ more
4404
+ mohammed
4405
+ mian
4406
+ medicine
4407
+ mazafaka
4408
+ lance
4409
+ juliette
4410
+ james007
4411
+ hawkeyes
4412
+ goodboy
4413
+ gong
4414
+ footbal
4415
+ feng
4416
+ derek
4417
+ deeznutz
4418
+ dante
4419
+ combat
4420
+ cicero
4421
+ chun
4422
+ cerberus
4423
+ beretta
4424
+ bengals
4425
+ beaches
4426
+ 3232
4427
+ 135792468
4428
+ 12345qwe
4429
+ 01234567
4430
+ 01011975
4431
+ zxasqw12
4432
+ xxx123
4433
+ xander
4434
+ will
4435
+ watcher
4436
+ thedog
4437
+ terrapin
4438
+ stoney
4439
+ stacy
4440
+ something
4441
+ shang
4442
+ secure
4443
+ rooney
4444
+ rodman
4445
+ redwing
4446
+ quan
4447
+ pony
4448
+ pobeda
4449
+ pissing
4450
+ philippe
4451
+ overkill
4452
+ monalisa
4453
+ mishka
4454
+ lions
4455
+ lionel
4456
+ leonid
4457
+ krystal
4458
+ kosmos
4459
+ jessic
4460
+ jane
4461
+ illusion
4462
+ hoosiers
4463
+ hayabusa
4464
+ greene
4465
+ gfhjkm123
4466
+ games
4467
+ francesc
4468
+ enter1
4469
+ confused
4470
+ cobra1
4471
+ clevelan
4472
+ cedric
4473
+ carole
4474
+ busted
4475
+ bonbon
4476
+ barrett
4477
+ banane
4478
+ badgirl
4479
+ antoine
4480
+ 7779311
4481
+ 311311
4482
+ 2345
4483
+ 187187
4484
+ 123456s
4485
+ 123456654321
4486
+ 1005
4487
+ 0987
4488
+ 01011993
4489
+ zippy
4490
+ zhei
4491
+ vinnie
4492
+ tttttttt
4493
+ stunner
4494
+ stoned
4495
+ smoking
4496
+ smeghead
4497
+ sacred
4498
+ redwood
4499
+ Pussy1
4500
+ moonlight
4501
+ momomo
4502
+ mimi
4503
+ megatron
4504
+ massage
4505
+ looney
4506
+ johnboy
4507
+ janet
4508
+ jagger
4509
+ jacob1
4510
+ hurley
4511
+ hong
4512
+ hihihi
4513
+ helmet
4514
+ heckfy
4515
+ hambone
4516
+ gollum
4517
+ gaston
4518
+ f**k
4519
+ death1
4520
+ Charlie
4521
+ chao
4522
+ cfitymrf
4523
+ casanova
4524
+ brent
4525
+ boricua
4526
+ blackjack
4527
+ blablabla
4528
+ bigmike
4529
+ bermuda
4530
+ bbbbbbbb
4531
+ bayern
4532
+ amazing
4533
+ aleksey
4534
+ 717171
4535
+ 12301230
4536
+ zheng
4537
+ yoyo
4538
+ wildman
4539
+ tracker
4540
+ syncmaster
4541
+ sascha
4542
+ rhiannon
4543
+ reader
4544
+ queens
4545
+ qing
4546
+ purdue
4547
+ pool
4548
+ poochie
4549
+ poker
4550
+ petra
4551
+ person
4552
+ orchid
4553
+ nuts
4554
+ nice
4555
+ lola
4556
+ lightning
4557
+ leng
4558
+ lang
4559
+ lambert
4560
+ kashmir
4561
+ jill
4562
+ idiot
4563
+ honey1
4564
+ fisting
4565
+ fester
4566
+ eraser
4567
+ diao
4568
+ delphi
4569
+ dddddddd
4570
+ cubswin
4571
+ cong
4572
+ claudio
4573
+ clark
4574
+ chip
4575
+ buzzard
4576
+ buzz
4577
+ butts
4578
+ brewster
4579
+ bravo
4580
+ bookworm
4581
+ blessing
4582
+ benfica
4583
+ because
4584
+ babybaby
4585
+ aleksandra
4586
+ 6666666
4587
+ 1997
4588
+ 19961996
4589
+ 19791979
4590
+ 1717
4591
+ 1213
4592
+ 02091987
4593
+ 02021987
4594
+ xiao
4595
+ wild
4596
+ valencia
4597
+ trapper
4598
+ tongue
4599
+ thegreat
4600
+ sancho
4601
+ really
4602
+ rainman
4603
+ piper
4604
+ peng
4605
+ peach
4606
+ passwd
4607
+ packers1
4608
+ newpass6
4609
+ neng
4610
+ mouse1
4611
+ motley
4612
+ morning
4613
+ midway
4614
+ Michelle
4615
+ miao
4616
+ maste
4617
+ marin
4618
+ kaylee
4619
+ justin1
4620
+ hokies
4621
+ health
4622
+ glory
4623
+ five
4624
+ dutchess
4625
+ dogfood
4626
+ comet
4627
+ clouds
4628
+ cloud
4629
+ charles1
4630
+ buddah
4631
+ bacardi
4632
+ astrid
4633
+ alphabet
4634
+ adams
4635
+ 19801980
4636
+ 147369
4637
+ 12qwas
4638
+ 02081988
4639
+ 02051986
4640
+ 02041986
4641
+ 02011985
4642
+ 01011977
4643
+ xuan
4644
+ vedder
4645
+ valeri
4646
+ teng
4647
+ stumpy
4648
+ squash
4649
+ snapon
4650
+ site
4651
+ ruan
4652
+ roadrunn
4653
+ rjycnfynby
4654
+ rhtdtlrj
4655
+ rambo
4656
+ pizzas
4657
+ paula
4658
+ novell
4659
+ mortgage
4660
+ misha
4661
+ menace
4662
+ maxim
4663
+ lori
4664
+ kool
4665
+ hanna
4666
+ gsxr750
4667
+ goldwing
4668
+ frisky
4669
+ famous
4670
+ dodge1
4671
+ dbrnjh
4672
+ christmas
4673
+ cheese1
4674
+ century
4675
+ candice
4676
+ booker
4677
+ beamer
4678
+ assword
4679
+ army
4680
+ angus
4681
+ andromeda
4682
+ adrienne
4683
+ 676767
4684
+ 543210
4685
+ 2010
4686
+ 1369
4687
+ 12345678a
4688
+ 12011987
4689
+ 02101985
4690
+ 02031986
4691
+ 02021988
4692
+ zhuang
4693
+ zhou
4694
+ wrestling
4695
+ tinkerbell
4696
+ thumbs
4697
+ thedude
4698
+ teddybea
4699
+ sssss
4700
+ sonics
4701
+ sinister
4702
+ shannon1
4703
+ satana
4704
+ sang
4705
+ salomon
4706
+ remote
4707
+ qazzaq
4708
+ playing
4709
+ piao
4710
+ pacers
4711
+ onetime
4712
+ nong
4713
+ nikolay
4714
+ motherfucker
4715
+ mortimer
4716
+ misery
4717
+ madison1
4718
+ luan
4719
+ lovesex
4720
+ look
4721
+ Jessica
4722
+ handyman
4723
+ hampton
4724
+ gromit
4725
+ ghostrider
4726
+ doghouse
4727
+ deluxe
4728
+ clown
4729
+ chunky
4730
+ chuai
4731
+ cgfhnfr
4732
+ brewer
4733
+ boxster
4734
+ balloons
4735
+ adults
4736
+ a1a1a1
4737
+ 794613
4738
+ 654123
4739
+ 24682468
4740
+ 2005
4741
+ 1492
4742
+ 1020
4743
+ 1017
4744
+ 02061985
4745
+ 02011987
4746
+ *****
4747
+ zhun
4748
+ ying
4749
+ yang
4750
+ windsor
4751
+ wedding
4752
+ wareagle
4753
+ svoboda
4754
+ supreme
4755
+ stalin
4756
+ sponge
4757
+ simon1
4758
+ roadking
4759
+ ripple
4760
+ realmadrid
4761
+ qiao
4762
+ PolniyPizdec0211
4763
+ pissoff
4764
+ peacock
4765
+ norway
4766
+ nokia6300
4767
+ ninjas
4768
+ misty1
4769
+ medusa
4770
+ medical
4771
+ maryann
4772
+ marika
4773
+ madina
4774
+ logan1
4775
+ lilly
4776
+ laser
4777
+ killers
4778
+ jiang
4779
+ jaybird
4780
+ jammin
4781
+ intel
4782
+ idontkno
4783
+ huai
4784
+ harry1
4785
+ goaway
4786
+ gameover
4787
+ dino
4788
+ destroy
4789
+ deng
4790
+ collin
4791
+ claymore
4792
+ chicago1
4793
+ cheater
4794
+ chai
4795
+ bunny1
4796
+ blackbir
4797
+ bigbutt
4798
+ bcfields
4799
+ athens
4800
+ antoni
4801
+ abcd123
4802
+ 686868
4803
+ 369963
4804
+ 1357924680
4805
+ 12qw12
4806
+ 1236987
4807
+ 111333
4808
+ 02091986
4809
+ 02021986
4810
+ 01011983
4811
+ 000111
4812
+ zhuai
4813
+ yoda
4814
+ xiang
4815
+ wrestle
4816
+ whiskers
4817
+ valkyrie
4818
+ toon
4819
+ tong
4820
+ ting
4821
+ talisman
4822
+ starcraf
4823
+ sporting
4824
+ spaceman
4825
+ southpar
4826
+ smiths
4827
+ skate
4828
+ shell
4829
+ seng
4830
+ saleen
4831
+ ruby
4832
+ reng
4833
+ redline
4834
+ rancid
4835
+ pepe
4836
+ optimus
4837
+ nova
4838
+ mohamed
4839
+ meister
4840
+ marcia
4841
+ lipstick
4842
+ kittykat
4843
+ jktymrf
4844
+ jenn
4845
+ jayden
4846
+ inuyasha
4847
+ higgins
4848
+ guai
4849
+ gonavy
4850
+ face
4851
+ eureka
4852
+ dutch
4853
+ darkman
4854
+ courage
4855
+ cocaine
4856
+ circus
4857
+ cheeks
4858
+ camper
4859
+ br549
4860
+ bagira
4861
+ babyface
4862
+ 7uGd5HIp2J
4863
+ 5050
4864
+ 1qaz2ws
4865
+ 123321a
4866
+ 02081987
4867
+ 02081984
4868
+ 02061986
4869
+ 02021984
4870
+ 01011982
4871
+ zhai
4872
+ xiong
4873
+ willia
4874
+ vvvvvv
4875
+ venera
4876
+ unique
4877
+ tian
4878
+ sveta
4879
+ strength
4880
+ stories
4881
+ squall
4882
+ secrets
4883
+ seahawks
4884
+ sauron
4885
+ ripley
4886
+ riley
4887
+ recovery
4888
+ qweqweqwe
4889
+ qiong
4890
+ puddin
4891
+ playstation
4892
+ pinky
4893
+ phone
4894
+ penny1
4895
+ nude
4896
+ mitch
4897
+ milkman
4898
+ mermaid
4899
+ max123
4900
+ maria1
4901
+ lust
4902
+ loaded
4903
+ lighter
4904
+ lexus
4905
+ leavemealone
4906
+ just4me
4907
+ jiong
4908
+ jing
4909
+ jamie1
4910
+ india
4911
+ hardcock
4912
+ gobucks
4913
+ gawker
4914
+ fytxrf
4915
+ fuzzy
4916
+ florida1
4917
+ flexible
4918
+ eleanor
4919
+ dragonball
4920
+ doudou
4921
+ cinema
4922
+ checkers
4923
+ charlene
4924
+ ceng
4925
+ buffy1
4926
+ brian1
4927
+ beautifu
4928
+ baseball1
4929
+ ashlee
4930
+ adonis
4931
+ adam12
4932
+ 434343
4933
+ 02031984
4934
+ 02021985
4935
+ xxxpass
4936
+ toledo
4937
+ thedoors
4938
+ templar
4939
+ sullivan
4940
+ stanford
4941
+ shei
4942
+ sander
4943
+ rolling
4944
+ qqqqqqq
4945
+ pussey
4946
+ pothead
4947
+ pippin
4948
+ nimbus
4949
+ niao
4950
+ mustafa
4951
+ monte
4952
+ mollydog
4953
+ modena
4954
+ mmmmm
4955
+ michae
4956
+ meng
4957
+ mango
4958
+ mamama
4959
+ lynn
4960
+ love12
4961
+ kissing
4962
+ keegan
4963
+ jockey
4964
+ illinois
4965
+ ib6ub9
4966
+ hotbox
4967
+ hippie
4968
+ hill
4969
+ ghblehjr
4970
+ gamecube
4971
+ ferris
4972
+ diggler
4973
+ crow
4974
+ circle
4975
+ chuo
4976
+ chinook
4977
+ charity
4978
+ carmel
4979
+ caravan
4980
+ cannabis
4981
+ cameltoe
4982
+ buddie
4983
+ bright
4984
+ bitchass
4985
+ bert
4986
+ beowulf
4987
+ bartman
4988
+ asia
4989
+ armagedon
4990
+ ariana
4991
+ alexalex
4992
+ alenka
4993
+ ABC123
4994
+ 987456321
4995
+ 373737
4996
+ 2580
4997
+ 21031988
4998
+ 123qq123
4999
+ 12345t
5000
+ 1234567890a
5001
+ 123455
5002
+ 02081989
5003
+ 02011986
5004
+ 01020304
5005
+ 01011999
5006
+ xyz123
5007
+ xerxes
5008
+ wraith
5009
+ wishbone
5010
+ warning
5011
+ todd
5012
+ ticket
5013
+ three
5014
+ subzero
5015
+ shuang
5016
+ rong
5017
+ rider
5018
+ quest
5019
+ qiang
5020
+ pppp
5021
+ pian
5022
+ petrov
5023
+ otto
5024
+ nuan
5025
+ ning
5026
+ myname
5027
+ matthews
5028
+ martine
5029
+ mandarin
5030
+ magical
5031
+ latinas
5032
+ lalalala
5033
+ kotaku
5034
+ jjjjj
5035
+ jeffery
5036
+ jameson
5037
+ iamgod
5038
+ hellos
5039
+ hassan
5040
+ Harley
5041
+ godfathe
5042
+ geng
5043
+ gabriela
5044
+ foryou
5045
+ ffffffff
5046
+ divorce
5047
+ darius
5048
+ chui
5049
+ breasts
5050
+ bluefish
5051
+ binladen
5052
+ bigtit
5053
+ anne
5054
+ alexia
5055
+ 2727
5056
+ 19771977
5057
+ 19761976
5058
+ 02061989
5059
+ 02041984
5060
+ zhui
5061
+ zappa
5062
+ yfnfkmz
5063
+ weng
5064
+ tricia
5065
+ tottenham
5066
+ tiberius
5067
+ teddybear
5068
+ spinner
5069
+ spice
5070
+ spectre
5071
+ solo
5072
+ silverad
5073
+ silly
5074
+ shuo
5075
+ sherri
5076
+ samtron
5077
+ poland
5078
+ poiuy
5079
+ pickup
5080
+ pdtplf
5081
+ paloma
5082
+ ntktajy
5083
+ northern
5084
+ nasty1
5085
+ musashi
5086
+ missy1
5087
+ microphone
5088
+ meat
5089
+ manman
5090
+ lucille
5091
+ lotus
5092
+ letter
5093
+ kendra
5094
+ iomega
5095
+ hootie
5096
+ forward
5097
+ elite
5098
+ electron
5099
+ electra
5100
+ duan
5101
+ DRAGON
5102
+ dotcom
5103
+ dirtbike
5104
+ dianne
5105
+ desiree
5106
+ deadpool
5107
+ darrell
5108
+ cosmic
5109
+ common
5110
+ chrome
5111
+ cathy
5112
+ carpedie
5113
+ bilbo
5114
+ bella1
5115
+ beemer
5116
+ bearcat
5117
+ bank
5118
+ ashley1
5119
+ asdfzxcv
5120
+ amateurs
5121
+ allan
5122
+ absolute
5123
+ 50spanks
5124
+ 147963
5125
+ 120676
5126
+ 1123
5127
+ 02021983
5128
+ zang
5129
+ virtual
5130
+ vampires
5131
+ vadim
5132
+ tulips
5133
+ sweet1
5134
+ suan
5135
+ spread
5136
+ spanish
5137
+ some
5138
+ slapper
5139
+ skylar
5140
+ shiner
5141
+ sheng
5142
+ shanghai
5143
+ sanfran
5144
+ ramones
5145
+ property
5146
+ pheonix
5147
+ password2
5148
+ pablo
5149
+ othello
5150
+ orange1
5151
+ nuggets
5152
+ netscape
5153
+ ludmila
5154
+ lost
5155
+ liang
5156
+ kakashka
5157
+ kaitlyn
5158
+ iscool
5159
+ huang
5160
+ hillary
5161
+ high
5162
+ hhhh
5163
+ heater
5164
+ hawaiian
5165
+ guang
5166
+ grease
5167
+ gfhjkmgfhjkm
5168
+ gfhjkm1
5169
+ fyutkbyf
5170
+ finance
5171
+ farley
5172
+ dogshit
5173
+ digital1
5174
+ crack
5175
+ counter
5176
+ corsair
5177
+ company
5178
+ colonel
5179
+ claudi
5180
+ carolin
5181
+ caprice
5182
+ caligula
5183
+ bulls
5184
+ blackout
5185
+ beatle
5186
+ beans
5187
+ banzai
5188
+ banner
5189
+ artem
5190
+ 9562876
5191
+ 5656
5192
+ 1945
5193
+ 159632
5194
+ 15151515
5195
+ 123456qw
5196
+ 1234567891
5197
+ 02051983
5198
+ 02041983
5199
+ 02031987
5200
+ 02021989
5201
+ z1x2c3v4
5202
+ xing
5203
+ vSjasnel12
5204
+ twenty
5205
+ toolman
5206
+ thing
5207
+ testpass
5208
+ stretch
5209
+ stonecold
5210
+ soulmate
5211
+ sonny
5212
+ snuffy
5213
+ shutup
5214
+ shuai
5215
+ shao
5216
+ rhino
5217
+ q2w3e4r5
5218
+ polly
5219
+ poipoi
5220
+ pierce
5221
+ piano
5222
+ pavlov
5223
+ pang
5224
+ nicole1
5225
+ millions
5226
+ marsha
5227
+ lineage2
5228
+ liao
5229
+ lemon
5230
+ kuai
5231
+ keller
5232
+ jimmie
5233
+ jiao
5234
+ gregor
5235
+ ggggg
5236
+ game
5237
+ fuckyo
5238
+ fuckoff1
5239
+ friendly
5240
+ fgtkmcby
5241
+ evan
5242
+ edgar
5243
+ dolores
5244
+ doitnow
5245
+ dfcbkbq
5246
+ criminal
5247
+ coldbeer
5248
+ chuckie
5249
+ chimera
5250
+ chan
5251
+ ccccc
5252
+ cccc
5253
+ cards
5254
+ capslock
5255
+ cang
5256
+ bullfrog
5257
+ bonjovi
5258
+ bobdylan
5259
+ beth
5260
+ berger
5261
+ barker
5262
+ balance
5263
+ badman
5264
+ bacchus
5265
+ babylove
5266
+ argentina
5267
+ annabell
5268
+ akira
5269
+ 646464
5270
+ 15975
5271
+ 1223
5272
+ 11221122
5273
+ 1022
5274
+ 02081986
5275
+ 02041988
5276
+ 02041987
5277
+ 02041982
5278
+ 02011988
5279
+ zong
5280
+ zhang
5281
+ yummy
5282
+ yeahbaby
5283
+ vasilisa
5284
+ temp123
5285
+ tank
5286
+ slim
5287
+ skyler
5288
+ silent
5289
+ sergeant
5290
+ reynolds
5291
+ qazwsx1
5292
+ PUSSY
5293
+ pasword
5294
+ nomore
5295
+ noelle
5296
+ nicol
5297
+ newyork1
5298
+ mullet
5299
+ monarch
5300
+ merlot
5301
+ mantis
5302
+ mancity
5303
+ magazine
5304
+ llllllll
5305
+ kinder
5306
+ kilroy
5307
+ katherine
5308
+ jayhawks
5309
+ jackpot
5310
+ ipswich
5311
+ hack
5312
+ fishing1
5313
+ fight
5314
+ ebony
5315
+ dragon12
5316
+ dog123
5317
+ dipshit
5318
+ crusher
5319
+ chippy
5320
+ canyon
5321
+ bigbig
5322
+ bamboo
5323
+ athlon
5324
+ alisha
5325
+ abnormal
5326
+ a11111
5327
+ 2469
5328
+ 12365
5329
+ 1011
5330
+ 09876543
5331
+ 02101984
5332
+ 02081985
5333
+ 02071984
5334
+ 02011980
5335
+ 010180
5336
+ 01011979
5337
+ zhuo
5338
+ zaraza
5339
+ wg8e3wjf
5340
+ triple
5341
+ tototo
5342
+ theater
5343
+ teddy1
5344
+ syzygy
5345
+ susana
5346
+ sonoma
5347
+ slavik
5348
+ shitface
5349
+ sheba
5350
+ sexyboy
5351
+ screen
5352
+ salasana
5353
+ rufus
5354
+ Richard
5355
+ reds
5356
+ rebecca1
5357
+ pussyman
5358
+ pringles
5359
+ preacher
5360
+ park
5361
+ oceans
5362
+ niang
5363
+ momo
5364
+ misfits
5365
+ mikey1
5366
+ media
5367
+ manowar
5368
+ mack
5369
+ kayla
5370
+ jump
5371
+ jorda
5372
+ hondas
5373
+ hollow
5374
+ here
5375
+ heineken
5376
+ halifax
5377
+ gatorade
5378
+ gabriell
5379
+ ferrari1
5380
+ fergie
5381
+ female
5382
+ eldorado
5383
+ eagles1
5384
+ cygnus
5385
+ coolness
5386
+ colton
5387
+ ciccio
5388
+ cheech
5389
+ card
5390
+ boom
5391
+ blaze
5392
+ bhbirf
5393
+ BASEBALL
5394
+ barton
5395
+ 655321
5396
+ 1818
5397
+ 14141414
5398
+ 123465
5399
+ 1224
5400
+ 1211
5401
+ 111111a
5402
+ 02021982
5403
+ zhao
5404
+ wings
5405
+ warner
5406
+ vsegda
5407
+ tripod
5408
+ tiao
5409
+ thunderb
5410
+ telephon
5411
+ tdutybz
5412
+ talon
5413
+ speedo
5414
+ specialk
5415
+ shepherd
5416
+ shadows
5417
+ samsun
5418
+ redbird
5419
+ race
5420
+ promise
5421
+ persik
5422
+ patience
5423
+ paranoid
5424
+ orient
5425
+ monster1
5426
+ missouri
5427
+ mets
5428
+ mazda
5429
+ masamune
5430
+ martin1
5431
+ marker
5432
+ march
5433
+ manning
5434
+ mamamama
5435
+ licking
5436
+ lesley
5437
+ laurence
5438
+ jezebel
5439
+ jetski
5440
+ hopeless
5441
+ hooper
5442
+ homeboy
5443
+ hole
5444
+ heynow
5445
+ forum
5446
+ foot
5447
+ ffff
5448
+ farscape
5449
+ estrella
5450
+ entropy
5451
+ eastwood
5452
+ dwight
5453
+ dragonba
5454
+ door
5455
+ dododo
5456
+ deutsch
5457
+ crystal1
5458
+ corleone
5459
+ cobalt
5460
+ chopin
5461
+ chevrolet
5462
+ cattle
5463
+ carlitos
5464
+ buttercu
5465
+ butcher
5466
+ bushido
5467
+ buddyboy
5468
+ blond
5469
+ bingo1
5470
+ becker
5471
+ baron
5472
+ augusta
5473
+ alex123
5474
+ 998877
5475
+ 24242424
5476
+ 12365478
5477
+ 02061988
5478
+ 02031985
5479
+ ??????
5480
+ zuan
5481
+ yfcntymrf
5482
+ wowwow
5483
+ winston1
5484
+ vfibyf
5485
+ ventura
5486
+ titten
5487
+ tiburon
5488
+ thoma
5489
+ thelma
5490
+ stroker
5491
+ snooker
5492
+ smokie
5493
+ slippery
5494
+ shui
5495
+ shock
5496
+ seadoo
5497
+ sandwich
5498
+ records
5499
+ rang
5500
+ puffy
5501
+ piramida
5502
+ orion1
5503
+ napoli
5504
+ nang
5505
+ mouth
5506
+ monkey12
5507
+ millwall
5508
+ mexican
5509
+ meme
5510
+ maxxxx
5511
+ magician
5512
+ leon
5513
+ lala
5514
+ lakota
5515
+ jenkins
5516
+ jackson5
5517
+ insomnia
5518
+ harvard
5519
+ HARLEY
5520
+ hardware
5521
+ giorgio
5522
+ ginger1
5523
+ george1
5524
+ gator1
5525
+ fountain
5526
+ fastball
5527
+ exotic
5528
+ elizaveta
5529
+ dialog
5530
+ davide
5531
+ channel
5532
+ castro
5533
+ bunnies
5534
+ borussia
5535
+ asddsa
5536
+ andromed
5537
+ alfredo
5538
+ alejandro
5539
+ 7007
5540
+ 69696
5541
+ 4417
5542
+ 3131
5543
+ 258852
5544
+ 1952
5545
+ 147741
5546
+ 1234asdf
5547
+ 02081982
5548
+ 02051982
5549
+ zzzzzzz
5550
+ zeng
5551
+ zalupa
5552
+ yong
5553
+ windsurf
5554
+ wildcard
5555
+ weird
5556
+ violin
5557
+ universal
5558
+ sunflower
5559
+ suicide
5560
+ strawberry
5561
+ stepan
5562
+ sphinx
5563
+ someone
5564
+ sassy1
5565
+ romano
5566
+ reddevil
5567
+ raquel
5568
+ rachel1
5569
+ pornporn
5570
+ polopolo
5571
+ pluto
5572
+ plasma
5573
+ pinkfloyd
5574
+ panther1
5575
+ north
5576
+ milo
5577
+ maxime
5578
+ matteo
5579
+ malone
5580
+ major
5581
+ mail
5582
+ lulu
5583
+ ltybcrf
5584
+ lena
5585
+ lassie
5586
+ july
5587
+ jiggaman
5588
+ jelly
5589
+ islander
5590
+ inspiron
5591
+ hopeful
5592
+ heng
5593
+ hans
5594
+ green123
5595
+ gore
5596
+ gooner
5597
+ goirish
5598
+ gadget
5599
+ freeway
5600
+ fergus
5601
+ eeeee
5602
+ diego
5603
+ dickie
5604
+ deep
5605
+ danny1
5606
+ cuan
5607
+ cristian
5608
+ conover
5609
+ civic
5610
+ Buster
5611
+ bombers
5612
+ bird33
5613
+ bigfish
5614
+ bigblue
5615
+ bian
5616
+ beng
5617
+ beacon
5618
+ barnes
5619
+ astro
5620
+ artemka
5621
+ annika
5622
+ anita
5623
+ Andrew
5624
+ 747474
5625
+ 484848
5626
+ 464646
5627
+ 369258
5628
+ 225588
5629
+ 1z2x3c
5630
+ 1a2s3d4f
5631
+ 123456qwe
5632
+ 02061980
5633
+ 02031982
5634
+ 02011984
5635
+ zaqxswcde
5636
+ wrench
5637
+ washington
5638
+ violetta
5639
+ tuning
5640
+ trainer
5641
+ tootie
5642
+ store
5643
+ spurs1
5644
+ sporty
5645
+ sowhat
5646
+ sophi
5647
+ smashing
5648
+ sleeper
5649
+ slave1
5650
+ sexysexy
5651
+ seeking
5652
+ sam123
5653
+ robotics
5654
+ rjhjktdf
5655
+ reckless
5656
+ pulsar
5657
+ project
5658
+ placebo
5659
+ paddle
5660
+ oooo
5661
+ nightmare
5662
+ nanook
5663
+ married
5664
+ linda1
5665
+ lilian
5666
+ lazarus
5667
+ kuang
5668
+ knockers
5669
+ killkill
5670
+ keng
5671
+ katherin
5672
+ Jordan
5673
+ jellybea
5674
+ jayson
5675
+ iloveme
5676
+ hunt
5677
+ hothot
5678
+ homerj
5679
+ hhhhhhhh
5680
+ helene
5681
+ haggis
5682
+ goat
5683
+ ganesh
5684
+ gandalf1
5685
+ fulham
5686
+ force
5687
+ dynasty
5688
+ drakon
5689
+ download
5690
+ doomsday
5691
+ dieter
5692
+ devil666
5693
+ desmond
5694
+ darklord
5695
+ daemon
5696
+ dabears
5697
+ cramps
5698
+ cougars
5699
+ clowns
5700
+ classics
5701
+ citizen
5702
+ cigar
5703
+ chrysler
5704
+ carlito
5705
+ candace
5706
+ bruno1
5707
+ browning
5708
+ brodie
5709
+ bolton
5710
+ biao
5711
+ barbados
5712
+ aubrey
5713
+ arlene
5714
+ arcadia
5715
+ amigo
5716
+ abstr
5717
+ 9293709b13
5718
+ 737373
5719
+ 4444444
5720
+ 4242
5721
+ 369852
5722
+ 20202020
5723
+ 1qa2ws
5724
+ 1Pussy
5725
+ 1947
5726
+ 1234560
5727
+ 1112
5728
+ 1000000
5729
+ 02091983
5730
+ 02061987
5731
+ 01081989
5732
+ zephyr
5733
+ yugioh
5734
+ yjdsqgfhjkm
5735
+ woofer
5736
+ wanted
5737
+ volcom
5738
+ verizon
5739
+ tripper
5740
+ toaster
5741
+ tipper
5742
+ tigger1
5743
+ tartar
5744
+ superb
5745
+ stiffy
5746
+ spock
5747
+ soprano
5748
+ snowboard
5749
+ sexxxy
5750
+ senator
5751
+ scrabble
5752
+ santafe
5753
+ sally1
5754
+ sahara
5755
+ romero
5756
+ rhjrjlbk
5757
+ reload
5758
+ ramsey
5759
+ rainbow6
5760
+ qazwsxedc123
5761
+ poopy
5762
+ pharmacy
5763
+ obelix
5764
+ normal
5765
+ nevermind
5766
+ mordor
5767
+ mclaren
5768
+ mariposa
5769
+ mari
5770
+ manuela
5771
+ mallory
5772
+ magelan
5773
+ lovebug
5774
+ lips
5775
+ kokoko
5776
+ jakejake
5777
+ insanity
5778
+ iceberg
5779
+ hughes
5780
+ hookup
5781
+ hockey1
5782
+ hamish
5783
+ graphics
5784
+ geoffrey
5785
+ firewall
5786
+ fandango
5787
+ ernie
5788
+ dottie
5789
+ doofus
5790
+ donovan
5791
+ domain
5792
+ digimon
5793
+ darryl
5794
+ darlene
5795
+ dancing
5796
+ county
5797
+ chloe1
5798
+ chantal
5799
+ burrito
5800
+ bummer
5801
+ bubba69
5802
+ brett
5803
+ bounty
5804
+ bigcat
5805
+ bessie
5806
+ basset
5807
+ augustus
5808
+ ashleigh
5809
+ 878787
5810
+ 3434
5811
+ 321321321
5812
+ 12051988
5813
+ 111qqq
5814
+ 1023
5815
+ 1013
5816
+ 05051987
5817
+ 02101989
5818
+ 02101987
5819
+ 02071987
5820
+ 02071980
5821
+ 02041985
5822
+ titan
5823
+ thong
5824
+ sweetnes
5825
+ stanislav
5826
+ sssssss
5827
+ snappy
5828
+ shanti
5829
+ shanna
5830
+ shan
5831
+ script
5832
+ scorpio1
5833
+ RuleZ
5834
+ rochelle
5835
+ rebel1
5836
+ radiohea
5837
+ q1q2q3
5838
+ puss
5839
+ pumpkins
5840
+ puffin
5841
+ onetwo
5842
+ oatmeal
5843
+ nutmeg
5844
+ ninja1
5845
+ nichole
5846
+ mobydick
5847
+ marine1
5848
+ mang
5849
+ lover1
5850
+ longjohn
5851
+ lindros
5852
+ killjoy
5853
+ kfhbcf
5854
+ karen1
5855
+ jingle
5856
+ jacques
5857
+ iverson3
5858
+ istanbul
5859
+ iiiiii
5860
+ howdy
5861
+ hover
5862
+ hjccbz
5863
+ highheel
5864
+ happiness
5865
+ guitar1
5866
+ ghosts
5867
+ georg
5868
+ geneva
5869
+ gamecock
5870
+ fraser
5871
+ faithful
5872
+ dundee
5873
+ dell
5874
+ creature
5875
+ creation
5876
+ corey
5877
+ concorde
5878
+ cleo
5879
+ cdtnbr
5880
+ carmex2
5881
+ budapest
5882
+ bronze
5883
+ brains
5884
+ blue12
5885
+ battery
5886
+ attila
5887
+ arrow
5888
+ anthrax
5889
+ aloha
5890
+ 383838
5891
+ 19711971
5892
+ 1948
5893
+ 134679852
5894
+ 123qw
5895
+ 123000
5896
+ 02091984
5897
+ 02091981
5898
+ 02091980
5899
+ 02061983
5900
+ 02041981
5901
+ 01011900
5902
+ zhjckfd
5903
+ zazaza
5904
+ wingman
5905
+ windmill
5906
+ wifey
5907
+ webhompas
5908
+ watch
5909
+ thisisit
5910
+ tech
5911
+ submit
5912
+ stress
5913
+ spongebo
5914
+ silver1
5915
+ senators
5916
+ scott1
5917
+ sausages
5918
+ radical
5919
+ qwer12
5920
+ ppppp
5921
+ pixies
5922
+ pineapple
5923
+ piazza
5924
+ patrice
5925
+ officer
5926
+ nygiants
5927
+ nikitos
5928
+ nigga
5929
+ nextel
5930
+ moses
5931
+ moonbeam
5932
+ mihail
5933
+ MICHAEL
5934
+ meagan
5935
+ marcello
5936
+ maksimka
5937
+ loveless
5938
+ lottie
5939
+ lollypop
5940
+ laurent
5941
+ latina
5942
+ kris
5943
+ kleopatra
5944
+ kkkk
5945
+ kirsty
5946
+ katarina
5947
+ kamila
5948
+ jets
5949
+ iiii
5950
+ icehouse
5951
+ hooligan
5952
+ gertrude
5953
+ fullmoon
5954
+ fuckinside
5955
+ fishin
5956
+ everett
5957
+ erin
5958
+ dynamite
5959
+ dupont
5960
+ dogcat
5961
+ dogboy
5962
+ diane
5963
+ corolla
5964
+ citadel
5965
+ buttfuck
5966
+ bulldog1
5967
+ broker
5968
+ brittney
5969
+ boozer
5970
+ banger
5971
+ aviation
5972
+ almond
5973
+ aaron1
5974
+ 78945
5975
+ 616161
5976
+ 426hemi
5977
+ 333777
5978
+ 22041987
5979
+ 2008
5980
+ 20022002
5981
+ 153624
5982
+ 1121
5983
+ 111111q
5984
+ 05051985
5985
+ 02081977
5986
+ 02071988
5987
+ 02051988
5988
+ 02051987
5989
+ 02041979
5990
+ zander
5991
+ wwww
5992
+ webmaste
5993
+ webber
5994
+ taylor1
5995
+ taxman
5996
+ sucking
5997
+ stylus
5998
+ spoon
5999
+ spiker
6000
+ simmons
6001
+ sergi
6002
+ sairam
6003
+ royal
6004
+ ramrod
6005
+ radiohead
6006
+ popper
6007
+ platypus
6008
+ pippo
6009
+ pepito
6010
+ pavel
6011
+ monkeybo
6012
+ Michael1
6013
+ master12
6014
+ marty
6015
+ kjkszpj
6016
+ kidrock
6017
+ judy
6018
+ juanita
6019
+ joshua1
6020
+ jacobs
6021
+ idunno
6022
+ icu812
6023
+ hubert
6024
+ heritage
6025
+ guyver
6026
+ gunther
6027
+ Good123654
6028
+ ghost1
6029
+ getout
6030
+ gameboy
6031
+ format
6032
+ festival
6033
+ evolution
6034
+ epsilon
6035
+ enrico
6036
+ electro
6037
+ dynamo
6038
+ duckie
6039
+ drive
6040
+ dolphin1
6041
+ ctrhtn
6042
+ cthtuf
6043
+ cobain
6044
+ club
6045
+ chilly
6046
+ charter
6047
+ celeb
6048
+ cccccccc
6049
+ caught
6050
+ cascade
6051
+ carnage
6052
+ bunker
6053
+ boxers
6054
+ boxer
6055
+ bombay
6056
+ bigboss
6057
+ bigben
6058
+ beerman
6059
+ baggio
6060
+ asdf12
6061
+ arrows
6062
+ aptiva
6063
+ a1a2a3
6064
+ a12345678
6065
+ 626262
6066
+ 26061987
6067
+ 1616
6068
+ 15051981
6069
+ 08031986
6070
+ 060606
6071
+ 02061984
6072
+ 02061982
6073
+ 02051989
6074
+ 02051984
6075
+ 02031981
6076
+ woodland
6077
+ whiteout
6078
+ visa
6079
+ vanguard
6080
+ towers
6081
+ tiny
6082
+ tigger2
6083
+ temppass
6084
+ super12
6085
+ stop
6086
+ stevens
6087
+ softail
6088
+ sheriff
6089
+ robot
6090
+ reddwarf
6091
+ pussy123
6092
+ praise
6093
+ pistons
6094
+ patric
6095
+ partner
6096
+ niceguy
6097
+ morgan1
6098
+ model
6099
+ mars
6100
+ mariana
6101
+ manolo
6102
+ mankind
6103
+ lumber
6104
+ krusty
6105
+ kittens
6106
+ kirby
6107
+ june
6108
+ johann
6109
+ jared
6110
+ imation
6111
+ henry1
6112
+ heat
6113
+ gobears
6114
+ forsaken
6115
+ Football
6116
+ fiction
6117
+ ferguson
6118
+ edison
6119
+ earnhard
6120
+ dwayne
6121
+ dogger
6122
+ diver
6123
+ delight
6124
+ dandan
6125
+ dalshe
6126
+ cross
6127
+ cottage
6128
+ coolcool
6129
+ coach
6130
+ camila
6131
+ callum
6132
+ busty
6133
+ british
6134
+ biology
6135
+ beta
6136
+ beardog
6137
+ baldwin
6138
+ alone
6139
+ albany
6140
+ airwolf
6141
+ 9876543
6142
+ 987123
6143
+ 7894561230
6144
+ 786786
6145
+ 535353
6146
+ 21031987
6147
+ 1949
6148
+ 13041988
6149
+ 1234qw
6150
+ 123456l
6151
+ 1215
6152
+ 111000
6153
+ 11051987
6154
+ 10011986
6155
+ 06061986
6156
+ 02091985
6157
+ 02021981
6158
+ 02021979
6159
+ 01031988
6160
+ vjcrdf
6161
+ uranus
6162
+ tiger123
6163
+ summer99
6164
+ state
6165
+ starstar
6166
+ squeeze
6167
+ spikes
6168
+ snowflak
6169
+ slamdunk
6170
+ sinned
6171
+ shocker
6172
+ season
6173
+ santa
6174
+ sanity
6175
+ salome
6176
+ saiyan
6177
+ renata
6178
+ redrose
6179
+ queenie
6180
+ puppet
6181
+ popo
6182
+ playboy1
6183
+ pecker
6184
+ paulie
6185
+ oliver1
6186
+ ohshit
6187
+ norwich
6188
+ news
6189
+ namaste
6190
+ muscles
6191
+ mortal
6192
+ michael2
6193
+ mephisto
6194
+ mandy1
6195
+ magnet
6196
+ longbow
6197
+ llll
6198
+ living
6199
+ lithium
6200
+ komodo
6201
+ kkkkkkkk
6202
+ kjrjvjnbd
6203
+ killer12
6204
+ kellie
6205
+ julie1
6206
+ jarvis
6207
+ iloveyou2
6208
+ holidays
6209
+ highway
6210
+ havana
6211
+ harvest
6212
+ harrypotter
6213
+ gorgeous
6214
+ giraffe
6215
+ garion
6216
+ frost
6217
+ fishman
6218
+ erika
6219
+ earth
6220
+ dusty1
6221
+ dudedude
6222
+ demo
6223
+ deer
6224
+ concord
6225
+ colnago
6226
+ clit
6227
+ choice
6228
+ chillin
6229
+ bumper
6230
+ blam
6231
+ bitter
6232
+ bdsm
6233
+ basebal
6234
+ barron
6235
+ baker
6236
+ arturo
6237
+ annie1
6238
+ andersen
6239
+ amerika
6240
+ aladin
6241
+ abbott
6242
+ 81fukkc
6243
+ 5678
6244
+ 135791
6245
+ 1002
6246
+ 02101986
6247
+ 02081983
6248
+ 02041989
6249
+ 02011989
6250
+ 01011978
6251
+ zzzxxx
6252
+ zxcvbnm123
6253
+ yyyyyy
6254
+ yuan
6255
+ yolanda
6256
+ winners
6257
+ welcom
6258
+ volkswag
6259
+ vera
6260
+ ursula
6261
+ ultra
6262
+ toffee
6263
+ toejam
6264
+ theatre
6265
+ switch
6266
+ superma
6267
+ Stone55
6268
+ solitude
6269
+ sissy
6270
+ sharp
6271
+ scoobydoo
6272
+ romans
6273
+ roadster
6274
+ punk
6275
+ presiden
6276
+ pool6123
6277
+ playstat
6278
+ pipeline
6279
+ pinball
6280
+ peepee
6281
+ paulina
6282
+ ozzy
6283
+ nutter
6284
+ nights
6285
+ niceass
6286
+ mypassword
6287
+ mydick
6288
+ milan
6289
+ medic
6290
+ mazdarx7
6291
+ mason1
6292
+ marlon
6293
+ mama123
6294
+ lemonade
6295
+ krasotka
6296
+ koroleva
6297
+ karin
6298
+ jennife
6299
+ itsme
6300
+ isaac
6301
+ irishman
6302
+ hookem
6303
+ hewlett
6304
+ hawaii50
6305
+ habibi
6306
+ guitars
6307
+ grande
6308
+ glacier
6309
+ gagging
6310
+ gabriel1
6311
+ freefree
6312
+ francesco
6313
+ food
6314
+ flyfish
6315
+ fabric
6316
+ edward1
6317
+ dolly
6318
+ destin
6319
+ delilah
6320
+ defense
6321
+ codered
6322
+ cobras
6323
+ climber
6324
+ cindy1
6325
+ christma
6326
+ chipmunk
6327
+ chef
6328
+ brigitte
6329
+ bowwow
6330
+ bigblock
6331
+ bergkamp
6332
+ bearcats
6333
+ baba
6334
+ altima
6335
+ 74108520
6336
+ 45M2DO5BS
6337
+ 30051985
6338
+ 258258
6339
+ 24061986
6340
+ 22021989
6341
+ 21011989
6342
+ 20061988
6343
+ 1z2x3c4v
6344
+ 14061991
6345
+ 13041987
6346
+ 123456m
6347
+ 12021988
6348
+ 11081989
6349
+ 03041991
6350
+ 02071981
6351
+ 02031979
6352
+ 02021976
6353
+ 01061990
6354
+ 01011960
6355
+ yvette
6356
+ yankees2
6357
+ wireless
6358
+ werder
6359
+ wasted
6360
+ visual
6361
+ trust
6362
+ tiffany1
6363
+ stratus
6364
+ steffi
6365
+ stasik
6366
+ starligh
6367
+ sigma
6368
+ rubble
6369
+ ROBERT
6370
+ register
6371
+ reflex
6372
+ redfox
6373
+ record
6374
+ qwerty7
6375
+ premium
6376
+ prayer
6377
+ players
6378
+ pallmall
6379
+ nurses
6380
+ nikki1
6381
+ nascar24
6382
+ mudvayne
6383
+ moritz
6384
+ moreno
6385
+ moondog
6386
+ monsters
6387
+ micro
6388
+ mickey1
6389
+ mckenzie
6390
+ mazda626
6391
+ manila
6392
+ madcat
6393
+ louie
6394
+ loud
6395
+ krypton
6396
+ kitchen
6397
+ kisskiss
6398
+ kate
6399
+ jubilee
6400
+ impact
6401
+ Horny
6402
+ hellboy
6403
+ groups
6404
+ goten
6405
+ gonzalez
6406
+ gilles
6407
+ gidget
6408
+ gene
6409
+ gbhfvblf
6410
+ freebird
6411
+ federal
6412
+ fantasia
6413
+ dogbert
6414
+ deeper
6415
+ dayton
6416
+ comanche
6417
+ cocker
6418
+ choochoo
6419
+ chambers
6420
+ borabora
6421
+ bmw325
6422
+ blast
6423
+ ballin
6424
+ asdfgh01
6425
+ alissa
6426
+ alessandro
6427
+ airport
6428
+ abrakadabra
6429
+ 7777777777
6430
+ 635241
6431
+ 494949
6432
+ 420000
6433
+ 23456789
6434
+ 23041987
6435
+ 19701970
6436
+ 1951
6437
+ 18011987
6438
+ 172839
6439
+ 1235
6440
+ 123456789s
6441
+ 1125
6442
+ 1102
6443
+ 1031
6444
+ 07071987
6445
+ 02091989
6446
+ 02071989
6447
+ 02071983
6448
+ 02021973
6449
+ 02011981
6450
+ 01121986
6451
+ 01071986
6452
+ 0101
6453
+ zodiac
6454
+ yogibear
6455
+ word
6456
+ water1
6457
+ wasabi
6458
+ wapbbs
6459
+ wanderer
6460
+ vintage
6461
+ viktoriya
6462
+ varvara
6463
+ upyours
6464
+ undertak
6465
+ underground
6466
+ undead
6467
+ umpire
6468
+ tropical
6469
+ tiger2
6470
+ threesom
6471
+ there
6472
+ sunfire
6473
+ sparky1
6474
+ snoopy1
6475
+ smart
6476
+ slowhand
6477
+ sheridan
6478
+ sensei
6479
+ savanna
6480
+ rudy
6481
+ redsox1
6482
+ ramirez
6483
+ prowler
6484
+ postman
6485
+ porno1
6486
+ pocket
6487
+ pelican
6488
+ nfytxrf
6489
+ nation
6490
+ mykids
6491
+ mygirl
6492
+ moskva
6493
+ mike123
6494
+ Master1
6495
+ marianna
6496
+ maggie1
6497
+ maggi
6498
+ live
6499
+ landon
6500
+ lamer
6501
+ kissmyass
6502
+ keenan
6503
+ just4fun
6504
+ julien
6505
+ juicy
6506
+ JORDAN
6507
+ jimjim
6508
+ hornets
6509
+ hammond
6510
+ hallie
6511
+ glenn
6512
+ ghjcnjgfhjkm
6513
+ gasman
6514
+ FOOTBALL
6515
+ flanker
6516
+ fishhead
6517
+ firefire
6518
+ fidelio
6519
+ fatty
6520
+ excalibur
6521
+ enterme
6522
+ emilia
6523
+ ellie
6524
+ eeee
6525
+ diving
6526
+ dindom
6527
+ descent
6528
+ daniele
6529
+ dallas1
6530
+ customer
6531
+ contest
6532
+ compass
6533
+ comfort
6534
+ comedy
6535
+ cocksuck
6536
+ close
6537
+ clay
6538
+ chriss
6539
+ chiara
6540
+ cameron1
6541
+ calgary
6542
+ cabron
6543
+ bologna
6544
+ berkeley
6545
+ andyod22
6546
+ alexey
6547
+ achtung
6548
+ 45678
6549
+ 3636
6550
+ 28041987
6551
+ 25081988
6552
+ 24011985
6553
+ 20111986
6554
+ 19651965
6555
+ 1941
6556
+ 19101987
6557
+ 19061987
6558
+ 1812
6559
+ 14111986
6560
+ 13031987
6561
+ 123ewq
6562
+ 123456123
6563
+ 12121990
6564
+ 112112
6565
+ 10071987
6566
+ 10031988
6567
+ 02101988
6568
+ 02081980
6569
+ 02021990
6570
+ 01091987
6571
+ 01041985
6572
+ 01011995
6573
+ zebra
6574
+ zanzibar
6575
+ waffle
6576
+ training
6577
+ teenage
6578
+ sweetness
6579
+ sutton
6580
+ sushi
6581
+ suckers
6582
+ spam
6583
+ south
6584
+ sneaky
6585
+ sisters
6586
+ shinobi
6587
+ shibby
6588
+ sexy1
6589
+ rockies
6590
+ presley
6591
+ president
6592
+ pizza1
6593
+ piggy
6594
+ password12
6595
+ olesya
6596
+ nitro
6597
+ motion
6598
+ milk
6599
+ medion
6600
+ markiz
6601
+ lovelife
6602
+ longdong
6603
+ lenny
6604
+ larry1
6605
+ kirk
6606
+ johndeer
6607
+ jefferso
6608
+ james123
6609
+ jackjack
6610
+ ijrjkfl
6611
+ hotone
6612
+ heroes
6613
+ gypsy
6614
+ foxy
6615
+ fishbone
6616
+ fischer
6617
+ fenway
6618
+ eddie1
6619
+ eastern
6620
+ easter
6621
+ drummer1
6622
+ Dragon1
6623
+ Daniel
6624
+ coventry
6625
+ corndog
6626
+ compton
6627
+ chilli
6628
+ chase1
6629
+ catwoman
6630
+ booster
6631
+ avenue
6632
+ armada
6633
+ 987321
6634
+ 818181
6635
+ 606060
6636
+ 5454
6637
+ 28021992
6638
+ 25800852
6639
+ 22011988
6640
+ 19971997
6641
+ 1776
6642
+ 17051988
6643
+ 14021985
6644
+ 13061986
6645
+ 12121985
6646
+ 11061985
6647
+ 10101986
6648
+ 10051987
6649
+ 10011990
6650
+ 09051945
6651
+ 08121986
6652
+ 04041991
6653
+ 03041986
6654
+ 02101983
6655
+ 02101981
6656
+ 02031989
6657
+ 02031980
6658
+ 01121988
6659
+ wwwwwww
6660
+ virgil
6661
+ troy
6662
+ torpedo
6663
+ toilet
6664
+ tatarin
6665
+ survivor
6666
+ sundevil
6667
+ stubby
6668
+ straight
6669
+ spotty
6670
+ slater
6671
+ skip
6672
+ sheba1
6673
+ runaway
6674
+ revolver
6675
+ qwerty11
6676
+ qweasd123
6677
+ parol
6678
+ paradigm
6679
+ older
6680
+ nudes
6681
+ nonenone
6682
+ moore
6683
+ mildred
6684
+ michaels
6685
+ lowell
6686
+ knock
6687
+ klaste
6688
+ junkie
6689
+ jimbo1
6690
+ hotties
6691
+ hollie
6692
+ gryphon
6693
+ gravity
6694
+ grandpa
6695
+ ghjuhfvvf
6696
+ frogman
6697
+ freesex
6698
+ foreve
6699
+ felix1
6700
+ fairlane
6701
+ everlast
6702
+ ethan
6703
+ eggman
6704
+ easton
6705
+ denmark
6706
+ deadly
6707
+ cyborg
6708
+ create
6709
+ corinne
6710
+ cisco
6711
+ chick
6712
+ chestnut
6713
+ bruiser
6714
+ broncos1
6715
+ bobdole
6716
+ azazaz
6717
+ antelope
6718
+ anastasiya
6719
+ 456456456
6720
+ 415263
6721
+ 30041986
6722
+ 29071983
6723
+ 29051989
6724
+ 29011985
6725
+ 28021990
6726
+ 28011987
6727
+ 27061988
6728
+ 25121987
6729
+ 25031987
6730
+ 24680
6731
+ 22021986
6732
+ 21031990
6733
+ 20091991
6734
+ 20031987
6735
+ 196969
6736
+ 19681968
6737
+ 1946
6738
+ 17061988
6739
+ 16051989
6740
+ 16051987
6741
+ 1210
6742
+ 11051990
6743
+ 100500
6744
+ 08051990
6745
+ 05051989
6746
+ 04041988
6747
+ 02051980
6748
+ 02051976
6749
+ 02041980
6750
+ 02031977
6751
+ 02011983
6752
+ 01061986
6753
+ 01041988
6754
+ 01011994
6755
+ 0000007
6756
+ zxcasdqwe123
6757
+ washburn
6758
+ vfitymrf
6759
+ troll
6760
+ tranny
6761
+ tonight
6762
+ thecure
6763
+ studman
6764
+ spikey
6765
+ soccer12
6766
+ soccer10
6767
+ smirnoff
6768
+ slick1
6769
+ skyhawk
6770
+ skinner
6771
+ shrimp
6772
+ shakira
6773
+ sekret
6774
+ seagull
6775
+ score
6776
+ sasha_007
6777
+ rrrrrrrr
6778
+ ross
6779
+ rollins
6780
+ reptile
6781
+ razor
6782
+ qwert12345
6783
+ pumpkin1
6784
+ porsche1
6785
+ playa
6786
+ notused
6787
+ noname123
6788
+ newcastle
6789
+ never
6790
+ nana
6791
+ MUSTANG
6792
+ minerva
6793
+ megan1
6794
+ marseille
6795
+ marjorie
6796
+ mamamia
6797
+ malachi
6798
+ lilith
6799
+ letmei
6800
+ lane
6801
+ lambda
6802
+ krissy
6803
+ kojak
6804
+ kimball
6805
+ keepout
6806
+ karachi
6807
+ kalina
6808
+ justus
6809
+ joel
6810
+ joe123
6811
+ jerry1
6812
+ irinka
6813
+ hurricane
6814
+ honolulu
6815
+ holycow
6816
+ hitachi
6817
+ highbury
6818
+ hhhhh
6819
+ hannah1
6820
+ hall
6821
+ guess
6822
+ glass
6823
+ gilligan
6824
+ giggles
6825
+ flores
6826
+ fabie
6827
+ eeeeeeee
6828
+ dungeon
6829
+ drifter
6830
+ dogface
6831
+ dimas
6832
+ dentist
6833
+ death666
6834
+ costello
6835
+ castor
6836
+ bronson
6837
+ brain
6838
+ bolitas
6839
+ boating
6840
+ benben
6841
+ baritone
6842
+ bailey1
6843
+ badgers
6844
+ austin1
6845
+ astra
6846
+ asimov
6847
+ asdqwe
6848
+ armand
6849
+ anthon
6850
+ amorcit
6851
+ 797979
6852
+ 4200
6853
+ 31011987
6854
+ 3030
6855
+ 30031988
6856
+ 3000gt
6857
+ 224466
6858
+ 22071986
6859
+ 21101986
6860
+ 21051991
6861
+ 20091988
6862
+ 2009
6863
+ 20051988
6864
+ 19661966
6865
+ 18091985
6866
+ 18061990
6867
+ 15101986
6868
+ 15051990
6869
+ 15011987
6870
+ 13121985
6871
+ 12qw12qw
6872
+ 1234123
6873
+ 1204
6874
+ 12031987
6875
+ 12031985
6876
+ 11121986
6877
+ 1025
6878
+ 1003
6879
+ 08081988
6880
+ 08031985
6881
+ 03031986
6882
+ 02101979
6883
+ 02071979
6884
+ 02071978
6885
+ 02051985
6886
+ 02051978
6887
+ 02051973
6888
+ 02041975
6889
+ 02041974
6890
+ 02031988
6891
+ 02011982
6892
+ 01031989
6893
+ 01011974
6894
+ zoloto
6895
+ zippo
6896
+ wwwwwwww
6897
+ w_pass
6898
+ wildwood
6899
+ wildbill
6900
+ transit
6901
+ superior
6902
+ styles
6903
+ stryker
6904
+ string
6905
+ stream
6906
+ stefanie
6907
+ slugger
6908
+ skillet
6909
+ sidekick
6910
+ show
6911
+ shawna
6912
+ sf49ers
6913
+ Salsero
6914
+ rosario
6915
+ remingto
6916
+ redeye
6917
+ redbaron
6918
+ question
6919
+ quasar
6920
+ ppppppp
6921
+ popova
6922
+ physics
6923
+ papers
6924
+ palermo
6925
+ options
6926
+ mothers
6927
+ moonligh
6928
+ mischief
6929
+ ministry
6930
+ minemine
6931
+ messiah
6932
+ mentor
6933
+ megane
6934
+ mazda6
6935
+ marti
6936
+ marble
6937
+ leroy
6938
+ laura1
6939
+ lantern
6940
+ Kordell1
6941
+ koko
6942
+ knuckles
6943
+ khan
6944
+ kerouac
6945
+ kelvin
6946
+ jorge
6947
+ joebob
6948
+ jewel
6949
+ iforget
6950
+ Hunter
6951
+ house1
6952
+ horace
6953
+ hilary
6954
+ grand
6955
+ gordo
6956
+ glock
6957
+ georgie
6958
+ George
6959
+ fuckhead
6960
+ freefall
6961
+ films
6962
+ fantomas
6963
+ extra
6964
+ ellen
6965
+ elcamino
6966
+ doors
6967
+ diaper
6968
+ datsun
6969
+ coldplay
6970
+ clippers
6971
+ chandra
6972
+ carpente
6973
+ carman
6974
+ capricorn
6975
+ calimero
6976
+ boytoy
6977
+ boiler
6978
+ bluesman
6979
+ bluebell
6980
+ bitchy
6981
+ bigpimp
6982
+ bigbang
6983
+ biatch
6984
+ Baseball
6985
+ audi
6986
+ astral
6987
+ armstron
6988
+ angelika
6989
+ angel123
6990
+ abcabc
6991
+ 999666
6992
+ 868686
6993
+ 3x7PxR
6994
+ 357357
6995
+ 30041987
6996
+ 27081990
6997
+ 26031988
6998
+ 258369
6999
+ 25091987
7000
+ 25041988
7001
+ 24111989
7002
+ 23021986
7003
+ 22041988
7004
+ 22031984
7005
+ 21051988
7006
+ 17011987
7007
+ 16121987
7008
+ 15021985
7009
+ 142857
7010
+ 14021986
7011
+ 13021990
7012
+ 12345qw
7013
+ 123456ru
7014
+ 1124
7015
+ 10101990
7016
+ 10041986
7017
+ 07091990
7018
+ 02051981
7019
+ 01031985
7020
+ 01021990
7021
+ ******
7022
+ zildjian
7023
+ yfnfkb
7024
+ yeah
7025
+ WP2003WP
7026
+ vitamin
7027
+ villa
7028
+ valentine
7029
+ trinitro
7030
+ torino
7031
+ tigge
7032
+ thewho
7033
+ thethe
7034
+ tbone
7035
+ swinging
7036
+ sonia
7037
+ sonata
7038
+ smoke1
7039
+ sluggo
7040
+ sleep
7041
+ simba1
7042
+ shamus
7043
+ sexxy
7044
+ sevens
7045
+ rober
7046
+ rfvfcenhf
7047
+ redhat
7048
+ quentin
7049
+ qazws
7050
+ pufunga7782
7051
+ priest
7052
+ pizdec
7053
+ pigeon
7054
+ pebble
7055
+ palmtree
7056
+ oxygen
7057
+ nostromo
7058
+ nikolai
7059
+ mmmmmmm
7060
+ mahler
7061
+ lorena
7062
+ lopez
7063
+ lineage
7064
+ korova
7065
+ kokomo
7066
+ kinky
7067
+ kimmie
7068
+ kieran
7069
+ jsbach
7070
+ johngalt
7071
+ isabell
7072
+ impreza
7073
+ iloveyou1
7074
+ iiiii
7075
+ huge
7076
+ fuck123
7077
+ franc
7078
+ foxylady
7079
+ fishfish
7080
+ fearless
7081
+ evil
7082
+ entry
7083
+ enforcer
7084
+ emilie
7085
+ duffman
7086
+ ducks
7087
+ dominik
7088
+ david123
7089
+ cutiepie
7090
+ coolcat
7091
+ cookie1
7092
+ conway
7093
+ citroen
7094
+ chinese
7095
+ cheshire
7096
+ cherries
7097
+ chapman
7098
+ changes
7099
+ carver
7100
+ capricor
7101
+ book
7102
+ blueball
7103
+ blowfish
7104
+ benoit
7105
+ Beast1
7106
+ aramis
7107
+ anchor
7108
+ 741963
7109
+ 654654
7110
+ 57chevy
7111
+ 5252
7112
+ 357159
7113
+ 345678
7114
+ 31031988
7115
+ 25091990
7116
+ 25011990
7117
+ 24111987
7118
+ 23031990
7119
+ 22061988
7120
+ 21011991
7121
+ 21011988
7122
+ 1942
7123
+ 19283746
7124
+ 19031985
7125
+ 19011989
7126
+ 18091986
7127
+ 17111985
7128
+ 16051988
7129
+ 15071987
7130
+ 145236
7131
+ 14081985
7132
+ 132456
7133
+ 13071984
7134
+ 1231
7135
+ 12081985
7136
+ 1201
7137
+ 11021985
7138
+ 10071988
7139
+ 09021988
7140
+ 05061990
7141
+ 02051972
7142
+ 02041978
7143
+ 02031983
7144
+ 01091985
7145
+ 01031984
7146
+ 010191
7147
+ 01012009
7148
+ yamahar1
7149
+ wormix
7150
+ whistler
7151
+ wertyu
7152
+ warez
7153
+ vjqgfhjkm
7154
+ versace
7155
+ universa
7156
+ taco
7157
+ sugar1
7158
+ strawber
7159
+ stacie
7160
+ sprinter
7161
+ spencer1
7162
+ sonyfuck
7163
+ smokey1
7164
+ slimshady
7165
+ skibum
7166
+ series
7167
+ screamer
7168
+ sales
7169
+ roswell
7170
+ roses
7171
+ report
7172
+ rampage
7173
+ qwedsa
7174
+ q11111
7175
+ program
7176
+ Princess
7177
+ petrova
7178
+ patrol
7179
+ papito
7180
+ papillon
7181
+ paco
7182
+ oooooooo
7183
+ mother1
7184
+ mick
7185
+ Maverick
7186
+ marcius2
7187
+ magneto
7188
+ macman
7189
+ luck
7190
+ lalakers
7191
+ lakeside
7192
+ krolik
7193
+ kings
7194
+ kille
7195
+ kernel
7196
+ kent
7197
+ junior1
7198
+ jules
7199
+ jermaine
7200
+ jaguars
7201
+ honeybee
7202
+ hola
7203
+ highlander
7204
+ helper
7205
+ hejsan
7206
+ hate
7207
+ hardone
7208
+ gustavo
7209
+ grinch
7210
+ gratis
7211
+ goth
7212
+ glamour
7213
+ ghbywtccf
7214
+ ghbdtn123
7215
+ elefant
7216
+ earthlink
7217
+ draven
7218
+ dmitriy
7219
+ dkflbr
7220
+ dimples
7221
+ cygnusx1
7222
+ cold
7223
+ cococo
7224
+ clyde
7225
+ cleopatr
7226
+ choke
7227
+ chelse
7228
+ cecile
7229
+ casper1
7230
+ carnival
7231
+ cardiff
7232
+ buddy123
7233
+ bruce1
7234
+ bootys
7235
+ bookie
7236
+ birddog
7237
+ bigbob
7238
+ bestbuy
7239
+ assasin
7240
+ arkansas
7241
+ anastasi
7242
+ alberta
7243
+ addict
7244
+ acmilan
7245
+ 7896321
7246
+ 30081984
7247
+ 258963
7248
+ 25101988
7249
+ 23051985
7250
+ 23041986
7251
+ 23021989
7252
+ 22121987
7253
+ 22091988
7254
+ 22071987
7255
+ 22021988
7256
+ 2006
7257
+ 20052005
7258
+ 19051987
7259
+ 15041988
7260
+ 15011985
7261
+ 14021990
7262
+ 14011986
7263
+ 13051987
7264
+ 13011988
7265
+ 13011987
7266
+ 12345s
7267
+ 12061988
7268
+ 12041988
7269
+ 12041986
7270
+ 11111q
7271
+ 11071988
7272
+ 11031988
7273
+ 10081989
7274
+ 08081986
7275
+ 07071990
7276
+ 07071977
7277
+ 05071984
7278
+ 04041983
7279
+ 03021986
7280
+ 02091988
7281
+ 02081976
7282
+ 02051977
7283
+ 02031978
7284
+ 01071987
7285
+ 01041987
7286
+ 01011976
7287
+ zack
7288
+ zachary1
7289
+ yoyoma
7290
+ wrestler
7291
+ weston
7292
+ wealth
7293
+ wallet
7294
+ vjkjrj
7295
+ vendetta
7296
+ twiggy
7297
+ twelve
7298
+ turnip
7299
+ tribal
7300
+ tommie
7301
+ tkbpfdtnf
7302
+ thecrow
7303
+ test12
7304
+ terminat
7305
+ telephone
7306
+ synergy
7307
+ style
7308
+ spud
7309
+ smackdow
7310
+ slammer
7311
+ sexgod
7312
+ seabee
7313
+ schalke
7314
+ sanford
7315
+ sandrine
7316
+ salope
7317
+ rusty2
7318
+ right
7319
+ repair
7320
+ referee
7321
+ ratman
7322
+ radar
7323
+ qwert40
7324
+ qwe123qwe
7325
+ prozac
7326
+ portal
7327
+ polish
7328
+ Patrick
7329
+ passes
7330
+ otis
7331
+ oreo
7332
+ option
7333
+ opendoor
7334
+ nuclear
7335
+ navy
7336
+ nautilus
7337
+ nancy1
7338
+ mustang6
7339
+ murzik
7340
+ mopar
7341
+ monty1
7342
+ Misfit99
7343
+ mental
7344
+ medved
7345
+ marseill
7346
+ magpies
7347
+ magellan
7348
+ limited
7349
+ Letmein1
7350
+ lemmein
7351
+ leedsutd
7352
+ larissa
7353
+ kikiki
7354
+ jumbo
7355
+ jonny
7356
+ jamess
7357
+ jackass1
7358
+ install
7359
+ hounddog
7360
+ holes
7361
+ hetfield
7362
+ heidi1
7363
+ harlem
7364
+ gymnast
7365
+ gtnhjdbx
7366
+ godlike
7367
+ glow
7368
+ gideon
7369
+ ghhh47hj7649
7370
+ flip
7371
+ flame
7372
+ fkbyjxrf
7373
+ fenris
7374
+ excite
7375
+ espresso
7376
+ ernesto
7377
+ dontknow
7378
+ dogpound
7379
+ dinner
7380
+ diablo2
7381
+ dejavu
7382
+ conan
7383
+ complete
7384
+ cole
7385
+ chocha
7386
+ chips
7387
+ chevys
7388
+ cayman
7389
+ breanna
7390
+ borders
7391
+ blue32
7392
+ blanco
7393
+ bismillah
7394
+ biker
7395
+ bennie
7396
+ benito
7397
+ azazel
7398
+ ashle
7399
+ arianna
7400
+ argentin
7401
+ antonia
7402
+ alanis
7403
+ advent
7404
+ acura
7405
+ 858585
7406
+ 4040
7407
+ 333444
7408
+ 30041985
7409
+ 29071985
7410
+ 29061990
7411
+ 27071987
7412
+ 27061985
7413
+ 27041990
7414
+ 26031990
7415
+ 24031988
7416
+ 23051990
7417
+ 2211
7418
+ 22011986
7419
+ 21061986
7420
+ 20121989
7421
+ 20092009
7422
+ 20091986
7423
+ 20081991
7424
+ 20041988
7425
+ 20041986
7426
+ 1qwerty
7427
+ 19671967
7428
+ 1950
7429
+ 19121989
7430
+ 19061990
7431
+ 18101987
7432
+ 18051988
7433
+ 18041986
7434
+ 18021984
7435
+ 17101986
7436
+ 17061989
7437
+ 17041991
7438
+ 16021990
7439
+ 15071988
7440
+ 15071986
7441
+ 14101987
7442
+ 135798642
7443
+ 13061987
7444
+ 1234zxcv
7445
+ 12321
7446
+ 1214
7447
+ 12071989
7448
+ 1129
7449
+ 11121985
7450
+ 11061991
7451
+ 10121987
7452
+ 101101
7453
+ 10101985
7454
+ 10031987
7455
+ 100200
7456
+ 09041987
7457
+ 09031988
7458
+ 06041988
7459
+ 05071988
7460
+ 03081989
7461
+ 02071985
7462
+ 02071975
7463
+ 0123456
7464
+ 01051989
7465
+ 01041992
7466
+ 01041990
7467
+ zarina
7468
+ woodie
7469
+ whiteboy
7470
+ white1
7471
+ waterboy
7472
+ volkov
7473
+ vlad
7474
+ virus
7475
+ vikings1
7476
+ viewsoni
7477
+ vbkfirf
7478
+ trans
7479
+ terefon
7480
+ swedish
7481
+ squeak
7482
+ spanner
7483
+ spanker
7484
+ sixpack
7485
+ seymour
7486
+ sexxx
7487
+ serpent
7488
+ samira
7489
+ roma
7490
+ rogue
7491
+ robocop
7492
+ robins
7493
+ real
7494
+ Qwerty1
7495
+ qazxcv
7496
+ q2w3e4
7497
+ punch
7498
+ pinky1
7499
+ perry
7500
+ peppe
7501
+ penguin1
7502
+ Password123
7503
+ pain
7504
+ optimist
7505
+ onion
7506
+ noway
7507
+ nomad
7508
+ nine
7509
+ morton
7510
+ moonshin
7511
+ money12
7512
+ modern
7513
+ mcdonald
7514
+ mario1
7515
+ maple
7516
+ loveya
7517
+ love1
7518
+ loretta
7519
+ lookout
7520
+ loki
7521
+ lllll
7522
+ llamas
7523
+ limewire
7524
+ konstantin
7525
+ k.lvbkf
7526
+ keisha
7527
+ jones1
7528
+ jonathon
7529
+ johndoe
7530
+ johncena
7531
+ john123
7532
+ janelle
7533
+ intercourse
7534
+ hugo
7535
+ hopkins
7536
+ harddick
7537
+ glasgow
7538
+ gladiato
7539
+ gambler
7540
+ galant
7541
+ gagged
7542
+ fortress
7543
+ factory
7544
+ expert
7545
+ emperor
7546
+ eight
7547
+ django
7548
+ dinara
7549
+ devo
7550
+ daniels
7551
+ crusty
7552
+ cowgirl
7553
+ clutch
7554
+ clarissa
7555
+ cevthrb
7556
+ ccccccc
7557
+ capetown
7558
+ candy1
7559
+ camero
7560
+ camaross
7561
+ callisto
7562
+ butters
7563
+ bigpoppa
7564
+ bigones
7565
+ bigdawg
7566
+ best
7567
+ beater
7568
+ asgard
7569
+ angelus
7570
+ amigos
7571
+ amand
7572
+ alexandre
7573
+ 9999999999
7574
+ 8989
7575
+ 875421
7576
+ 30011985
7577
+ 29051985
7578
+ 2626
7579
+ 26061985
7580
+ 25111987
7581
+ 25071990
7582
+ 22081986
7583
+ 22061989
7584
+ 21061985
7585
+ 20082008
7586
+ 20021988
7587
+ 1a2s3d
7588
+ 19981998
7589
+ 16051985
7590
+ 15111988
7591
+ 15051985
7592
+ 15021990
7593
+ 147896
7594
+ 14041988
7595
+ 123567
7596
+ 12345qwerty
7597
+ 12121988
7598
+ 12051990
7599
+ 12051986
7600
+ 12041990
7601
+ 11091989
7602
+ 11051986
7603
+ 11051984
7604
+ 1008
7605
+ 10061986
7606
+ 0815
7607
+ 06081987
7608
+ 06021987
7609
+ 04041990
7610
+ 02081981
7611
+ 02061977
7612
+ 02041977
7613
+ 02031975
7614
+ 01121987
7615
+ 01061988
7616
+ 01031986
7617
+ 01021989
7618
+ 01021988
7619
+ wolfpac
7620
+ wert
7621
+ vienna
7622
+ venture
7623
+ vehpbr
7624
+ vampir
7625
+ university
7626
+ tuna
7627
+ trucking
7628
+ trip
7629
+ trees
7630
+ transfer
7631
+ tower
7632
+ tophat
7633
+ tomahawk
7634
+ timosha
7635
+ timeout
7636
+ tenchi
7637
+ tabasco
7638
+ sunny1
7639
+ suckmydick
7640
+ suburban
7641
+ stratfor
7642
+ steaua
7643
+ spiral
7644
+ simsim
7645
+ shadow12
7646
+ screw
7647
+ schmidt
7648
+ rough
7649
+ rockie
7650
+ reilly
7651
+ reggae
7652
+ quebec
7653
+ private1
7654
+ printing
7655
+ pentagon
7656
+ pearson
7657
+ peachy
7658
+ notebook
7659
+ noname
7660
+ nokian73
7661
+ myrtle
7662
+ munch
7663
+ moron
7664
+ matthias
7665
+ mariya
7666
+ marijuan
7667
+ mandrake
7668
+ mamacita
7669
+ malice
7670
+ links
7671
+ lekker
7672
+ lback
7673
+ larkin
7674
+ ksusha
7675
+ kkkkk
7676
+ kestrel
7677
+ kayleigh
7678
+ inter
7679
+ insight
7680
+ hotgirls
7681
+ hoops
7682
+ hellokitty
7683
+ hallo123
7684
+ gotmilk
7685
+ googoo
7686
+ funstuff
7687
+ fredrick
7688
+ firefigh
7689
+ finland
7690
+ fanny
7691
+ eggplant
7692
+ eating
7693
+ dogwood
7694
+ doggies
7695
+ dfktynby
7696
+ derparol
7697
+ data
7698
+ damon
7699
+ cvthnm
7700
+ cuervo
7701
+ coming
7702
+ clock
7703
+ cleopatra
7704
+ clarke
7705
+ cheddar
7706
+ cbr900rr
7707
+ carroll
7708
+ canucks
7709
+ buste
7710
+ bukkake
7711
+ boyboy
7712
+ bowman
7713
+ bimbo
7714
+ bighead
7715
+ bball
7716
+ barselona
7717
+ aspen
7718
+ asdqwe123
7719
+ around
7720
+ aries
7721
+ americ
7722
+ almighty
7723
+ adgjmp
7724
+ addison
7725
+ absolutely
7726
+ aaasss
7727
+ 4ever
7728
+ 357951
7729
+ 29061989
7730
+ 28051987
7731
+ 27081986
7732
+ 25061985
7733
+ 25011986
7734
+ 24091986
7735
+ 24061988
7736
+ 24031990
7737
+ 21081987
7738
+ 21041992
7739
+ 20031991
7740
+ 2001112
7741
+ 19061985
7742
+ 18111987
7743
+ 18021988
7744
+ 17071989
7745
+ 17031987
7746
+ 16051990
7747
+ 15021986
7748
+ 14031988
7749
+ 14021987
7750
+ 14011989
7751
+ 1220
7752
+ 1205
7753
+ 120120
7754
+ 111999
7755
+ 111777
7756
+ 1115
7757
+ 1114
7758
+ 11011990
7759
+ 1027
7760
+ 10011983
7761
+ 09021989
7762
+ 07051990
7763
+ 06051986
7764
+ 05091988
7765
+ 05081988
7766
+ 04061986
7767
+ 04041985
7768
+ 03041980
7769
+ 02101976
7770
+ 02071976
7771
+ 02061976
7772
+ 02011975
7773
+ 01031983
7774
+ zasada
7775
+ wyoming
7776
+ wendy1
7777
+ washingt
7778
+ warrior1
7779
+ vickie
7780
+ vader1
7781
+ uuuuuu
7782
+ username
7783
+ tupac
7784
+ Trustno1
7785
+ tinkerbe
7786
+ suckdick
7787
+ streets
7788
+ strap
7789
+ storm1
7790
+ stinker
7791
+ sterva
7792
+ southpaw
7793
+ solaris
7794
+ sloppy
7795
+ sexylady
7796
+ sandie
7797
+ roofer
7798
+ rocknrol
7799
+ rico
7800
+ rfhnjirf
7801
+ QWERTY
7802
+ qqqqq1
7803
+ punker
7804
+ progress
7805
+ platon
7806
+ Phoenix
7807
+ Phoeni
7808
+ peeper
7809
+ pastor
7810
+ paolo
7811
+ page
7812
+ obsidian
7813
+ nirvana1
7814
+ nineinch
7815
+ nbvjatq
7816
+ navigator
7817
+ native
7818
+ money123
7819
+ modelsne
7820
+ minimoni
7821
+ millenium
7822
+ max333
7823
+ maveric
7824
+ matthe
7825
+ marriage
7826
+ marquis
7827
+ markie
7828
+ marines1
7829
+ marijuana
7830
+ margie
7831
+ little1
7832
+ lfybbk
7833
+ klizma
7834
+ kimkim
7835
+ kfgjxrf
7836
+ joshu
7837
+ jktxrf
7838
+ jennaj
7839
+ irishka
7840
+ irene
7841
+ ilove
7842
+ hunte
7843
+ htubcnhfwbz
7844
+ hottest
7845
+ heinrich
7846
+ happy2
7847
+ hanson
7848
+ handball
7849
+ greedy
7850
+ goodie
7851
+ golfer1
7852
+ gocubs
7853
+ gerrard
7854
+ gabber
7855
+ fktyrf
7856
+ facebook
7857
+ eskimo
7858
+ elway7
7859
+ dylan1
7860
+ dominion
7861
+ domingo
7862
+ dogbone
7863
+ default
7864
+ darkangel
7865
+ cumslut
7866
+ cumcum
7867
+ cricket1
7868
+ coral
7869
+ coors
7870
+ chris123
7871
+ charon
7872
+ challeng
7873
+ canuck
7874
+ call
7875
+ calibra
7876
+ buceta
7877
+ bubba123
7878
+ bricks
7879
+ bozo
7880
+ blues1
7881
+ bluejays
7882
+ berry
7883
+ beech
7884
+ awful
7885
+ april1
7886
+ antonina
7887
+ antares
7888
+ another
7889
+ andrea1
7890
+ amore
7891
+ alena
7892
+ aileen
7893
+ a1234
7894
+ 996633
7895
+ 556677
7896
+ 5329
7897
+ 5201314
7898
+ 3006
7899
+ 28051986
7900
+ 28021985
7901
+ 27031989
7902
+ 26021987
7903
+ 25101989
7904
+ 25061986
7905
+ 25041985
7906
+ 25011985
7907
+ 24061987
7908
+ 23021985
7909
+ 23011985
7910
+ 223322
7911
+ 22121986
7912
+ 22121983
7913
+ 22081983
7914
+ 22071989
7915
+ 22061987
7916
+ 22061941
7917
+ 22041986
7918
+ 22021985
7919
+ 21021985
7920
+ 2007
7921
+ 20031988
7922
+ 1qaz
7923
+ 199999
7924
+ 19101990
7925
+ 19071988
7926
+ 19071986
7927
+ 18061985
7928
+ 18051990
7929
+ 17071985
7930
+ 16111990
7931
+ 16061986
7932
+ 16011989
7933
+ 15081991
7934
+ 15051987
7935
+ 14071987
7936
+ 13031986
7937
+ 123qwer
7938
+ 1235789
7939
+ 123459
7940
+ 1227
7941
+ 1226
7942
+ 12101988
7943
+ 12081984
7944
+ 12071987
7945
+ 1200
7946
+ 11121987
7947
+ 11081987
7948
+ 11071985
7949
+ 11011991
7950
+ 1101
7951
+ 1004
7952
+ 08071987
7953
+ 08061987
7954
+ 05061986
7955
+ 04061991
7956
+ 03111987
7957
+ 03071987
7958
+ 02091976
7959
+ 02081979
7960
+ 02041976
7961
+ 02031973
7962
+ 02021991
7963
+ 02021980
7964
+ 02021971
7965
+ zouzou
7966
+ yaya
7967
+ wxcvbn
7968
+ wolfen
7969
+ wives
7970
+ wingnut
7971
+ whatwhat
7972
+ Welcome1
7973
+ wanking
7974
+ VQsaBLPzLa
7975
+ truth
7976
+ tracer
7977
+ trace
7978
+ theforce
7979
+ terrell
7980
+ sylveste
7981
+ susanna
7982
+ stephane
7983
+ stephan
7984
+ spoons
7985
+ spence
7986
+ sixty
7987
+ sheepdog
7988
+ services
7989
+ sawyer
7990
+ sandr
7991
+ saigon
7992
+ rudolf
7993
+ rodeo
7994
+ roadrunner
7995
+ rimmer
7996
+ ricard
7997
+ republic
7998
+ redskin
7999
+ Ranger
8000
+ ranch
8001
+ proton
8002
+ post
8003
+ pigpen
8004
+ peggy
8005
+ paris1
8006
+ paramedi
8007
+ ou8123
8008
+ nevets
8009
+ nazgul
8010
+ mizzou
8011
+ midnite
8012
+ metroid
8013
+ Matthew
8014
+ masterbate
8015
+ margarit
8016
+ loser1
8017
+ lolol
8018
+ lloyd
8019
+ kronos
8020
+ kiteboy
8021
+ junk
8022
+ joyce
8023
+ jomama
8024
+ joemama
8025
+ ilikepie
8026
+ hung
8027
+ homework
8028
+ hattrick
8029
+ hardball
8030
+ guido
8031
+ goodgirl
8032
+ globus
8033
+ funky
8034
+ friendster
8035
+ flipflop
8036
+ flicks
8037
+ fender1
8038
+ falcon1
8039
+ f00tball
8040
+ evolutio
8041
+ dukeduke
8042
+ disco
8043
+ devon
8044
+ derf
8045
+ decker
8046
+ davies
8047
+ cucumber
8048
+ cnfybckfd
8049
+ clifton
8050
+ chiquita
8051
+ castillo
8052
+ cars
8053
+ capecod
8054
+ cafc91
8055
+ brown1
8056
+ brand
8057
+ bomb
8058
+ boater
8059
+ bledsoe
8060
+ bigdicks
8061
+ bbbbbbb
8062
+ barley
8063
+ barfly
8064
+ ballet
8065
+ azzer
8066
+ azert
8067
+ asians
8068
+ angelic
8069
+ ambers
8070
+ alcohol
8071
+ 6996
8072
+ 5424
8073
+ 393939
8074
+ 31121990
8075
+ 30121987
8076
+ 29121987
8077
+ 29111989
8078
+ 29081990
8079
+ 29081985
8080
+ 29051990
8081
+ 27272727
8082
+ 27091985
8083
+ 27031987
8084
+ 26031987
8085
+ 26031984
8086
+ 24051990
8087
+ 23061990
8088
+ 22061990
8089
+ 22041985
8090
+ 22031991
8091
+ 22021990
8092
+ 21111985
8093
+ 21041985
8094
+ 20021986
8095
+ 19071990
8096
+ 19051986
8097
+ 19011987
8098
+ 17171717
8099
+ 17061986
8100
+ 17041987
8101
+ 16101987
8102
+ 16031990
8103
+ 159357a
8104
+ 15091987
8105
+ 15081988
8106
+ 15071985
8107
+ 15011986
8108
+ 14101988
8109
+ 14071988
8110
+ 14051990
8111
+ 14021983
8112
+ 132465
8113
+ 13111990
8114
+ 12121987
8115
+ 12121982
8116
+ 12061986
8117
+ 12011989
8118
+ 11111987
8119
+ 11081990
8120
+ 10111986
8121
+ 10031991
8122
+ 09090909
8123
+ 08051987
8124
+ 08041986
8125
+ 05051990
8126
+ 04081987
8127
+ 04051988
8128
+ 03061987
8129
+ 03031993
8130
+ 03031988
8131
+ 02101980
8132
+ 02101977
8133
+ 02091977
8134
+ 02091975
8135
+ 02061979
8136
+ 02051975
8137
+ 01081990
8138
+ 01061987
8139
+ 01011971
8140
+ wiseguy
8141
+ weed420
8142
+ tosser
8143
+ toriamos
8144
+ toolbox
8145
+ toocool
8146
+ tomas
8147
+ thedon
8148
+ tender
8149
+ taekwondo
8150
+ starwar
8151
+ start1
8152
+ sprout
8153
+ sonyericsson
8154
+ slimshad
8155
+ skateboard
8156
+ shonuf
8157
+ shoes
8158
+ sheep
8159
+ shag
8160
+ ring
8161
+ riccardo
8162
+ rfntymrf
8163
+ redcar
8164
+ qwe321
8165
+ qqqwww
8166
+ proview
8167
+ prospect
8168
+ persona
8169
+ penetration
8170
+ peaches1
8171
+ peace1
8172
+ olympus
8173
+ oberon
8174
+ nokia6233
8175
+ nightwish
8176
+ munich
8177
+ morales
8178
+ mone
8179
+ mohawk
8180
+ merlin1
8181
+ Mercedes
8182
+ mega
8183
+ maxwell1
8184
+ mash4077
8185
+ marcelo
8186
+ mann
8187
+ mad
8188
+ macbeth
8189
+ LOVE
8190
+ loren
8191
+ longer
8192
+ lobo
8193
+ leeds
8194
+ lakewood
8195
+ kurt
8196
+ krokodil
8197
+ kolbasa
8198
+ kerstin
8199
+ jenifer
8200
+ hott
8201
+ hello12
8202
+ hairball
8203
+ gthcbr
8204
+ grin
8205
+ grandam
8206
+ gotribe
8207
+ ghbrjk
8208
+ ggggggg
8209
+ FUCKYOU
8210
+ fuck69
8211
+ footjob
8212
+ flasher
8213
+ females
8214
+ fellow
8215
+ explore
8216
+ evangelion
8217
+ egghead
8218
+ dudeman
8219
+ doubled
8220
+ doris
8221
+ dolemite
8222
+ dirty1
8223
+ devin
8224
+ delmar
8225
+ delfin
8226
+ David
8227
+ daddyo
8228
+ cromwell
8229
+ cowboy1
8230
+ closer
8231
+ cheeky
8232
+ ceasar
8233
+ cassandr
8234
+ camden
8235
+ cabernet
8236
+ burns
8237
+ bugs
8238
+ budweiser
8239
+ boxcar
8240
+ boulder
8241
+ biggun
8242
+ beloved
8243
+ belmont
8244
+ beezer
8245
+ beaker
8246
+ Batman
8247
+ bastards
8248
+ bahamut
8249
+ azertyui
8250
+ awnyce
8251
+ auggie
8252
+ aolsucks
8253
+ allegro
8254
+ 963963
8255
+ 852852
8256
+ 515000
8257
+ 45454545
8258
+ 31011990
8259
+ 29011987
8260
+ 28071986
8261
+ 28021986
8262
+ 27051987
8263
+ 27011988
8264
+ 26051988
8265
+ 26041991
8266
+ 26041986
8267
+ 25011993
8268
+ 24121986
8269
+ 24061992
8270
+ 24021991
8271
+ 24011990
8272
+ 23051986
8273
+ 23021988
8274
+ 23011990
8275
+ 21121986
8276
+ 21111990
8277
+ 21071989
8278
+ 20071986
8279
+ 20051985
8280
+ 20011989
8281
+ 1943
8282
+ 19111987
8283
+ 19091988
8284
+ 18041990
8285
+ 18021986
8286
+ 18011986
8287
+ 17101987
8288
+ 17091987
8289
+ 17021985
8290
+ 17011990
8291
+ 16061985
8292
+ 1598753
8293
+ 15051986
8294
+ 14881488
8295
+ 14121989
8296
+ 14081988
8297
+ 14071986
8298
+ 13111984
8299
+ 122112
8300
+ 12121989
8301
+ 12101985
8302
+ 12051985
8303
+ 111213
8304
+ 11071986
8305
+ 1103
8306
+ 11011987
8307
+ 10293847
8308
+ 101112
8309
+ 10081985
8310
+ 10061987
8311
+ 10041983
8312
+ 0911
8313
+ 07091982
8314
+ 07081986
8315
+ 06061987
8316
+ 06041987
8317
+ 06031983
8318
+ 04091986
8319
+ 03071986
8320
+ 03051987
8321
+ 03051986
8322
+ 03031990
8323
+ 03011987
8324
+ 02101978
8325
+ 02091973
8326
+ 02081974
8327
+ 02071977
8328
+ 02071971
8329
+ 0192837465
8330
+ 01051988
8331
+ 01051986
8332
+ 01011973
8333
+ ?????
8334
+ zxcv123
8335
+ zxasqw
8336
+ yyyy
8337
+ yessir
8338
+ wordup
8339
+ wizards
8340
+ werty
8341
+ watford
8342
+ Victoria
8343
+ vauxhall
8344
+ vancouve
8345
+ tuscl
8346
+ trailer
8347
+ touching
8348
+ tokiohotel
8349
+ suslik
8350
+ supernov
8351
+ steffen
8352
+ spider1
8353
+ speakers
8354
+ spartan1
8355
+ sofia
8356
+ signal
8357
+ sigmachi
8358
+ shen
8359
+ sheeba
8360
+ sexo
8361
+ sambo
8362
+ salami
8363
+ roger1
8364
+ rocknroll
8365
+ rockin
8366
+ road
8367
+ reserve
8368
+ rated
8369
+ rainyday
8370
+ q123456789
8371
+ purpl
8372
+ puppydog
8373
+ power123
8374
+ poiuytre
8375
+ pointer
8376
+ pimping
8377
+ phialpha
8378
+ penthous
8379
+ pavement
8380
+ outside
8381
+ odyssey
8382
+ nthvbyfnjh
8383
+ norbert
8384
+ nnnnnnnn
8385
+ mutant
8386
+ Mustang
8387
+ mulligan
8388
+ mississippi
8389
+ mingus
8390
+ Merlin
8391
+ magic32
8392
+ lonesome
8393
+ liliana
8394
+ lighting
8395
+ lara
8396
+ ksenia
8397
+ koolaid
8398
+ kolokol
8399
+ klondike
8400
+ kkkkkkk
8401
+ kiwi
8402
+ kazantip
8403
+ junio
8404
+ jewish
8405
+ jajaja
8406
+ jaime
8407
+ jaeger
8408
+ irving
8409
+ ironmaiden
8410
+ iriska
8411
+ homemade
8412
+ herewego
8413
+ helmut
8414
+ hatred
8415
+ harald
8416
+ gonzales
8417
+ goldfing
8418
+ gohome
8419
+ gerbil
8420
+ genesis1
8421
+ fyfnjkbq
8422
+ freee
8423
+ forgetit
8424
+ foolish
8425
+ flamengo
8426
+ finally
8427
+ favorite6
8428
+ exchange
8429
+ enternow
8430
+ emilio
8431
+ eeeeeee
8432
+ dougie
8433
+ dodgers1
8434
+ deniro
8435
+ delaware
8436
+ deaths
8437
+ darkange
8438
+ commande
8439
+ comein
8440
+ cement
8441
+ catcher
8442
+ cashmone
8443
+ burn
8444
+ buffet
8445
+ breaker
8446
+ brandy1
8447
+ bordeaux
8448
+ books
8449
+ bongo
8450
+ blue99
8451
+ blaine
8452
+ birgit
8453
+ billabon
8454
+ benessere
8455
+ banan
8456
+ awesome1
8457
+ asdffdsa
8458
+ archange
8459
+ annmarie
8460
+ ambrosia
8461
+ ambrose
8462
+ alleycat
8463
+ all4one
8464
+ alchemy
8465
+ aceace
8466
+ aaaaaaaaaa
8467
+ 777999
8468
+ 43214321
8469
+ 369258147
8470
+ 31121988
8471
+ 31121987
8472
+ 30061987
8473
+ 30011986
8474
+ 2fast4u
8475
+ 29041985
8476
+ 28121984
8477
+ 28061986
8478
+ 28041992
8479
+ 28031982
8480
+ 27111985
8481
+ 27021991
8482
+ 26111985
8483
+ 26101986
8484
+ 26091986
8485
+ 26031986
8486
+ 25021988
8487
+ 24111990
8488
+ 24101986
8489
+ 24071987
8490
+ 24011987
8491
+ 23051991
8492
+ 23051987
8493
+ 23031987
8494
+ 222777
8495
+ 22071983
8496
+ 22051986
8497
+ 21101989
8498
+ 21071987
8499
+ 21051986
8500
+ 20081986
8501
+ 20061986
8502
+ 20031986
8503
+ 20021985
8504
+ 20011988
8505
+ 19641964
8506
+ 19111986
8507
+ 19101986
8508
+ 19021990
8509
+ 18051987
8510
+ 18031991
8511
+ 18021987
8512
+ 16111982
8513
+ 16011987
8514
+ 15111984
8515
+ 15091988
8516
+ 15061988
8517
+ 15031988
8518
+ 15021983
8519
+ 14021989
8520
+ 14011988
8521
+ 14011987
8522
+ 12348765
8523
+ 12345qaz
8524
+ 1234566
8525
+ 12111990
8526
+ 12091988
8527
+ 12051989
8528
+ 12051987
8529
+ 12031988
8530
+ 12021985
8531
+ 12011985
8532
+ 11111986
8533
+ 11091984
8534
+ 1109
8535
+ 11071989
8536
+ 1016
8537
+ 10071985
8538
+ 10061984
8539
+ 10041990
8540
+ 10031989
8541
+ 10011988
8542
+ 06071983
8543
+ 05021988
8544
+ 03041987
8545
+ 02091982
8546
+ 02091971
8547
+ 02061974
8548
+ 02051990
8549
+ 02051979
8550
+ 02011990
8551
+ 01051990
8552
+ 010390
8553
+ 01021985
8554
+ youtube
8555
+ yasmin
8556
+ woodstoc
8557
+ wonderful
8558
+ wildone
8559
+ widget
8560
+ whiplash
8561
+ ukraine
8562
+ tyson1
8563
+ twinkie
8564
+ trouble1
8565
+ treetop
8566
+ tigers1
8567
+ their
8568
+ testing1
8569
+ tarpon
8570
+ tantra
8571
+ summer69
8572
+ stickman
8573
+ stafford
8574
+ spooge
8575
+ spliff
8576
+ speedway
8577
+ somerset
8578
+ smoothie
8579
+ siobhan
8580
+ shuttle
8581
+ shodan
8582
+ SHADOW
8583
+ selina
8584
+ segblue2
8585
+ sebring
8586
+ scheisse
8587
+ Samantha
8588
+ rrrr
8589
+ roll
8590
+ riders
8591
+ revolution
8592
+ redbone
8593
+ reason
8594
+ rasmus
8595
+ randy1
8596
+ rainbows
8597
+ pumper
8598
+ pornking
8599
+ point
8600
+ ploppy
8601
+ pimpdadd
8602
+ payday
8603
+ pasadena
8604
+ p0o9i8u7
8605
+ opennow
8606
+ nittany
8607
+ newark
8608
+ navyseal
8609
+ nautica
8610
+ monic
8611
+ mikael
8612
+ metall
8613
+ Marlboro
8614
+ manfred
8615
+ macleod
8616
+ luna
8617
+ luca
8618
+ longhair
8619
+ lokiloki
8620
+ lkjhgfds
8621
+ lefty
8622
+ lakers1
8623
+ kittys
8624
+ killa
8625
+ kenobi
8626
+ karine
8627
+ kamasutra
8628
+ juliana
8629
+ joseph1
8630
+ jenjen
8631
+ jello
8632
+ interne
8633
+ houdini
8634
+ gsxr1000
8635
+ grass
8636
+ gotham
8637
+ goodday
8638
+ gianni
8639
+ getting
8640
+ gannibal
8641
+ gamma
8642
+ flower2
8643
+ fishon
8644
+ Fabie
8645
+ evgeniy
8646
+ drums
8647
+ dingo
8648
+ daylight
8649
+ dabomb
8650
+ cornwall
8651
+ cocksucker
8652
+ climax
8653
+ catnip
8654
+ carebear
8655
+ camber
8656
+ butkus
8657
+ bootsy
8658
+ blue42
8659
+ auto
8660
+ austin31
8661
+ auditt
8662
+ ariel
8663
+ alice1
8664
+ algebra
8665
+ advance
8666
+ adrenalin
8667
+ 888999
8668
+ 789654123
8669
+ 777333
8670
+ 5Wr2i7H8
8671
+ 4567
8672
+ 3ip76k2
8673
+ 32167
8674
+ 31031987
8675
+ 30111987
8676
+ 30071986
8677
+ 30061983
8678
+ 30051989
8679
+ 30041991
8680
+ 28071987
8681
+ 28051990
8682
+ 28051985
8683
+ 27041985
8684
+ 26071987
8685
+ 26061986
8686
+ 26051986
8687
+ 25121985
8688
+ 25051985
8689
+ 24081988
8690
+ 24041988
8691
+ 24031987
8692
+ 24021988
8693
+ 23skidoo
8694
+ 23121986
8695
+ 23091987
8696
+ 23071985
8697
+ 23061992
8698
+ 22111985
8699
+ 22091986
8700
+ 22081991
8701
+ 22071990
8702
+ 22061985
8703
+ 21081985
8704
+ 21071992
8705
+ 21021987
8706
+ 20101988
8707
+ 20061984
8708
+ 20051989
8709
+ 20041990
8710
+ 1Dragon
8711
+ 19091990
8712
+ 19031987
8713
+ 18121984
8714
+ 18081988
8715
+ 18061991
8716
+ 18041991
8717
+ 18011988
8718
+ 17061991
8719
+ 17021987
8720
+ 16031988
8721
+ 16021987
8722
+ 15091989
8723
+ 15081990
8724
+ 15071983
8725
+ 15041987
8726
+ 14091990
8727
+ 14081990
8728
+ 14041992
8729
+ 14041987
8730
+ 14031989
8731
+ 13081985
8732
+ 13021987
8733
+ 123qwert
8734
+ 12345qwer
8735
+ 12345abc
8736
+ 123456t
8737
+ 123456789m
8738
+ 1212121212
8739
+ 12081983
8740
+ 12021991
8741
+ 111112
8742
+ 11101986
8743
+ 11081988
8744
+ 11061989
8745
+ 11041991
8746
+ 11011989
8747
+ 1018
8748
+ 1015
8749
+ 10121986
8750
+ 10121985
8751
+ 10101989
8752
+ 10041991
8753
+ 09091986
8754
+ 09081988
8755
+ 09051986
8756
+ 08071988
8757
+ 08011986
8758
+ 07101987
8759
+ 07071985
8760
+ 0660
8761
+ 06061985
8762
+ 06011988
8763
+ 05031991
8764
+ 05021987
8765
+ 04061984
8766
+ 04051985
8767
+ 02101973
8768
+ 02061981
8769
+ 02061972
8770
+ 02041973
8771
+ 02011979
8772
+ 01101987
8773
+ 01051985
8774
+ 01021987
8775
+ workout
8776
+ wonderboy
8777
+ winter1
8778
+ wetter
8779
+ werdna
8780
+ vvvv
8781
+ voyager1
8782
+ vagabond
8783
+ trustme
8784
+ toonarmy
8785
+ timtim
8786
+ Tigger
8787
+ thrasher
8788
+ terra
8789
+ swoosh
8790
+ supra
8791
+ stigmata
8792
+ stayout
8793
+ status
8794
+ square
8795
+ sperma
8796
+ smackdown
8797
+ sixty9
8798
+ sexybabe
8799
+ sergbest
8800
+ senna
8801
+ scuba1
8802
+ scrapper
8803
+ samoht
8804
+ sammy123
8805
+ salem
8806
+ rugger
8807
+ royalty
8808
+ rivera
8809
+ ringo
8810
+ restart
8811
+ reginald
8812
+ readers
8813
+ raleigh
8814
+ rainbow1
8815
+ rage
8816
+ prosper
8817
+ pitch
8818
+ pictures
8819
+ petunia
8820
+ peterbil
8821
+ perfect1
8822
+ patrici
8823
+ pantera1
8824
+ pancake
8825
+ p4ssw0rd
8826
+ outback
8827
+ norris
8828
+ normandy
8829
+ nevermore
8830
+ needles
8831
+ nathan1
8832
+ nataly
8833
+ narnia
8834
+ musical
8835
+ mooney
8836
+ michal
8837
+ maxdog
8838
+ MASTER
8839
+ madmad
8840
+ m123456
8841
+ lumina
8842
+ luckyone
8843
+ luciano
8844
+ linkin
8845
+ lillie
8846
+ leigh
8847
+ kirkland
8848
+ kahlua
8849
+ junkmail
8850
+ Joshua
8851
+ josephin
8852
+ Jordan23
8853
+ johnson1
8854
+ jocelyn
8855
+ jeannie
8856
+ javelin
8857
+ inlove
8858
+ honor
8859
+ holein1
8860
+ harbor
8861
+ grisha
8862
+ gina
8863
+ gatit
8864
+ futurama
8865
+ firenze
8866
+ fireblad
8867
+ fellatio
8868
+ esquire
8869
+ errors
8870
+ emmett
8871
+ elvisp
8872
+ drum
8873
+ driller
8874
+ dragonfl
8875
+ dragon69
8876
+ dingle
8877
+ davinci
8878
+ crackers
8879
+ corwin
8880
+ compaq1
8881
+ collie
8882
+ christa
8883
+ checker
8884
+ cartoons
8885
+ buttercup
8886
+ bungle
8887
+ budgie
8888
+ boomer1
8889
+ body
8890
+ blue1234
8891
+ biit
8892
+ bigguns
8893
+ barry1
8894
+ audio
8895
+ atticus
8896
+ atlas
8897
+ Anthony
8898
+ angus1
8899
+ Anai
8900
+ alisa
8901
+ alex12
8902
+ aikman
8903
+ abacab
8904
+ 951357
8905
+ 7894
8906
+ 4711
8907
+ 321678
8908
+ 31101987
8909
+ 31051985
8910
+ 30121986
8911
+ 30091989
8912
+ 30031992
8913
+ 30031986
8914
+ 30011987
8915
+ 29061988
8916
+ 29061985
8917
+ 29031988
8918
+ 28061988
8919
+ 27061983
8920
+ 27031986
8921
+ 27021990
8922
+ 26101987
8923
+ 26071989
8924
+ 26071986
8925
+ 25081986
8926
+ 25061987
8927
+ 25051987
8928
+ 25041991
8929
+ 24101989
8930
+ 24071991
8931
+ 23111987
8932
+ 23091986
8933
+ 23051983
8934
+ 23031986
8935
+ 2222222222
8936
+ 22121989
8937
+ 22071991
8938
+ 22051991
8939
+ 22011985
8940
+ 21121985
8941
+ 21031985
8942
+ 20121988
8943
+ 20121986
8944
+ 20061990
8945
+ 20051987
8946
+ 1q2q3q
8947
+ 1944
8948
+ 19091983
8949
+ 19061992
8950
+ 1905
8951
+ 19021991
8952
+ 18121987
8953
+ 18121983
8954
+ 18111986
8955
+ 16121986
8956
+ 16091987
8957
+ 16071991
8958
+ 16071987
8959
+ 15111989
8960
+ 15031990
8961
+ 14041986
8962
+ 13121983
8963
+ 13101987
8964
+ 13091984
8965
+ 13071990
8966
+ 1245
8967
+ 12345m
8968
+ 1234568
8969
+ 123456789qwe
8970
+ 1234567899
8971
+ 1234561
8972
+ 1228
8973
+ 12211221
8974
+ 12121991
8975
+ 12121986
8976
+ 12101990
8977
+ 12101984
8978
+ 12091991
8979
+ 1209
8980
+ 12081988
8981
+ 12071990
8982
+ 12071988
8983
+ 115599
8984
+ 11111a
8985
+ 11041990
8986
+ 1028
8987
+ 10081990
8988
+ 10081983
8989
+ 10071990
8990
+ 10061989
8991
+ 10011992
8992
+ 09111987
8993
+ 09081985
8994
+ 08121987
8995
+ 08111984
8996
+ 08101986
8997
+ 08051989
8998
+ 07091988
8999
+ 07081987
9000
+ 07071988
9001
+ 07071984
9002
+ 07071982
9003
+ 07051987
9004
+ 06031992
9005
+ 05111986
9006
+ 05051991
9007
+ 05031990
9008
+ 05011987
9009
+ 04111988
9010
+ 04061987
9011
+ 04041987
9012
+ 040404
9013
+ 02081973
9014
+ 02061978
9015
+ 02031991
9016
+ 02031990
9017
+ 02011976
9018
+ 01071984
9019
+ 01041980
9020
+ 01021992
9021
+ zaqwsxcde
9022
+ yyyyyyyy
9023
+ worthy
9024
+ woowoo
9025
+ wind
9026
+ William
9027
+ warhamme
9028
+ walton
9029
+ vodka
9030
+ venom
9031
+ velocity
9032
+ treble
9033
+ tralala
9034
+ tigercat
9035
+ tarakan
9036
+ sunlight
9037
+ streaming
9038
+ starr
9039
+ sonysony
9040
+ smart1
9041
+ skylark
9042
+ sites
9043
+ shower
9044
+ sheldon
9045
+ seneca
9046
+ sedona
9047
+ scamper
9048
+ sand
9049
+ sabrina1
9050
+ romantic
9051
+ rockwell
9052
+ rabbits
9053
+ q1234567
9054
+ puzzle
9055
+ protect
9056
+ poker1
9057
+ plato
9058
+ plastics
9059
+ pinnacle
9060
+ peppers
9061
+ pathetic
9062
+ patch
9063
+ pancakes
9064
+ ottawa
9065
+ ooooo
9066
+ offshore
9067
+ octopus
9068
+ nounours
9069
+ nokia1
9070
+ neville
9071
+ ncc74656
9072
+ natasha1
9073
+ nastia
9074
+ mynameis
9075
+ motor
9076
+ motocros
9077
+ middle
9078
+ met2002
9079
+ meow
9080
+ meliss
9081
+ medina
9082
+ meadow
9083
+ matty
9084
+ masterp
9085
+ manga
9086
+ lucia
9087
+ loose
9088
+ linden
9089
+ lhfrjy
9090
+ letsdoit
9091
+ leopold
9092
+ lawson
9093
+ larson
9094
+ laddie
9095
+ ladder
9096
+ kristian
9097
+ kittie
9098
+ jughead
9099
+ joecool
9100
+ jimmys
9101
+ iklo
9102
+ honeys
9103
+ hoffman
9104
+ hiking
9105
+ hello2
9106
+ heels
9107
+ harrier
9108
+ hansol
9109
+ haley
9110
+ granada
9111
+ gofast
9112
+ fyutkjxtr
9113
+ frogs
9114
+ francisc
9115
+ four
9116
+ fields
9117
+ farm
9118
+ faith1
9119
+ fabio
9120
+ dreamcas
9121
+ dragster
9122
+ doggy1
9123
+ dirt
9124
+ dicky
9125
+ destiny1
9126
+ deputy
9127
+ delpiero
9128
+ dbnfkbr
9129
+ dakota1
9130
+ daisydog
9131
+ cyprus
9132
+ cutie
9133
+ cupoi
9134
+ colonial
9135
+ colin
9136
+ clovis
9137
+ cirrus
9138
+ chewy
9139
+ chessie
9140
+ chelle
9141
+ caster
9142
+ cannibal
9143
+ candyass
9144
+ camping
9145
+ cable
9146
+ bynthytn
9147
+ byebye
9148
+ buzzer
9149
+ burnout
9150
+ burner
9151
+ bumbum
9152
+ bumble
9153
+ briggs
9154
+ brest
9155
+ boyz
9156
+ bowtie
9157
+ bootsie
9158
+ bmwbmw
9159
+ blanche
9160
+ blanca
9161
+ bigbooty
9162
+ baylor
9163
+ base
9164
+ azertyuiop
9165
+ austria
9166
+ asd222
9167
+ armando
9168
+ ariane
9169
+ amstel
9170
+ amethyst
9171
+ airman
9172
+ afrika
9173
+ adelina
9174
+ acidburn
9175
+ 7734
9176
+ 741741
9177
+ 66613666
9178
+ 44332211
9179
+ 31071990
9180
+ 31051993
9181
+ 30051987
9182
+ 30011990
9183
+ 29091987
9184
+ 29061986
9185
+ 29011982
9186
+ 2828
9187
+ 28101986
9188
+ 28081990
9189
+ 28081986
9190
+ 28011988
9191
+ 27111989
9192
+ 27031992
9193
+ 27021992
9194
+ 26081986
9195
+ 25081985
9196
+ 25031991
9197
+ 25031983
9198
+ 24121987
9199
+ 24091991
9200
+ 23111989
9201
+ 23091989
9202
+ 23091985
9203
+ 23061989
9204
+ 22091991
9205
+ 22071985
9206
+ 22071984
9207
+ 22061984
9208
+ 22051989
9209
+ 22051987
9210
+ 22031986
9211
+ 22011992
9212
+ 21061988
9213
+ 21031984
9214
+ 20071988
9215
+ 20061983
9216
+ 20041985
9217
+ 1qazzaq1
9218
+ 1qazxsw23edc
9219
+ 19991999
9220
+ 19061991
9221
+ 18101985
9222
+ 18051989
9223
+ 18031988
9224
+ 18021992
9225
+ 18011985
9226
+ 17051990
9227
+ 17051989
9228
+ 17051987
9229
+ 17021989
9230
+ 16091988
9231
+ 16081986
9232
+ 16061988
9233
+ 16061987
9234
+ 15121987
9235
+ 15091985
9236
+ 15081986
9237
+ 15061985
9238
+ 15011983
9239
+ 14101986
9240
+ 1357911
9241
+ 13071987
9242
+ 13061985
9243
+ 13021985
9244
+ 123456qqq
9245
+ 123456789d
9246
+ 1234509876
9247
+ 12131213
9248
+ 12111991
9249
+ 12111985
9250
+ 12081990
9251
+ 12081987
9252
+ 12071991
9253
+ 1207
9254
+ 120689
9255
+ 1120
9256
+ 11071987
9257
+ 11051988
9258
+ 1104
9259
+ 11031983
9260
+ 10091984
9261
+ 10071989
9262
+ 10071986
9263
+ 10061985
9264
+ 10051990
9265
+ 10041987
9266
+ 10031993
9267
+ 10031990
9268
+ 09091988
9269
+ 09051987
9270
+ 09041986
9271
+ 08081990
9272
+ 08081989
9273
+ 08021990
9274
+ 07101984
9275
+ 07071989
9276
+ 07041987
9277
+ 07031989
9278
+ 07021991
9279
+ 06061981
9280
+ 06021986
9281
+ 05121990
9282
+ 05061988
9283
+ 05031987
9284
+ 04071988
9285
+ 04071986
9286
+ 04041986
9287
+ 03101991
9288
+ 03091983
9289
+ 03051988
9290
+ 03041983
9291
+ 03031992
9292
+ 02081970
9293
+ 02061971
9294
+ 02051970
9295
+ 02041972
9296
+ 02031974
9297
+ 02021978
9298
+ 0202
9299
+ 02011977
9300
+ 01121990
9301
+ 01091992
9302
+ 01081992
9303
+ 01081985
9304
+ 01011972
9305
+ 007bond
9306
+ zapper
9307
+ vipergts
9308
+ vfntvfnbrf
9309
+ vfndtq
9310
+ tujhrf
9311
+ tripleh
9312
+ track
9313
+ THOMAS
9314
+ thierry
9315
+ thebear
9316
+ systems
9317
+ supernova
9318
+ stone1
9319
+ stephen1
9320
+ stang
9321
+ stan
9322
+ spot
9323
+ sparkles
9324
+ soul
9325
+ snowbird
9326
+ snicker
9327
+ slonik
9328
+ slayer1
9329
+ sixsix
9330
+ singapor
9331
+ shauna
9332
+ scissors
9333
+ savior
9334
+ samm
9335
+ rumble
9336
+ rrrrr
9337
+ robin1
9338
+ renato
9339
+ redstar
9340
+ raphael
9341
+ q1w2e3r
9342
+ pressure
9343
+ poptart
9344
+ playball
9345
+ pizzaman
9346
+ pinetree
9347
+ phyllis
9348
+ pathfind
9349
+ papamama
9350
+ panter
9351
+ pandas
9352
+ panda1
9353
+ pajero
9354
+ pacino
9355
+ orchard
9356
+ olive
9357
+ nightmar
9358
+ nico
9359
+ Mustang1
9360
+ mooses
9361
+ montrose
9362
+ montecar
9363
+ montag
9364
+ melrose
9365
+ masterbating
9366
+ maserati
9367
+ marshal
9368
+ makaka
9369
+ macmac
9370
+ mackie
9371
+ lockdown
9372
+ liverpool1
9373
+ link
9374
+ lemans
9375
+ leinad
9376
+ lagnaf
9377
+ kingking
9378
+ killer123
9379
+ kaboom
9380
+ jeter2
9381
+ jeremy1
9382
+ jeepster
9383
+ jabber
9384
+ itisme
9385
+ italy
9386
+ ilovegod
9387
+ idefix
9388
+ howell
9389
+ hores
9390
+ HIZIAD
9391
+ hewitt
9392
+ hellsing
9393
+ Heather
9394
+ gonzo1
9395
+ golden1
9396
+ GEORGE
9397
+ generic
9398
+ gatsby
9399
+ fujitsu
9400
+ frodo1
9401
+ frederik
9402
+ forlife
9403
+ fitter
9404
+ feelgood
9405
+ fallon
9406
+ escalade
9407
+ enters
9408
+ emil
9409
+ eleonora
9410
+ earl
9411
+ dummy
9412
+ donner
9413
+ dominiqu
9414
+ dnsadm
9415
+ dickens
9416
+ deville
9417
+ delldell
9418
+ daughter
9419
+ contract
9420
+ contra
9421
+ conquest
9422
+ compact
9423
+ christi
9424
+ chill
9425
+ chavez
9426
+ chaos1
9427
+ chains
9428
+ casio
9429
+ carrots
9430
+ building
9431
+ buffalo1
9432
+ brennan
9433
+ boubou
9434
+ bonner
9435
+ blubber
9436
+ blacklab
9437
+ behappy
9438
+ barbar
9439
+ bambi
9440
+ babycake
9441
+ aprilia
9442
+ ANDREW
9443
+ allgood
9444
+ alive
9445
+ adriano
9446
+ 808080
9447
+ 7777777a
9448
+ 777666
9449
+ 31121986
9450
+ 31121985
9451
+ 31051991
9452
+ 31051987
9453
+ 30121988
9454
+ 30121985
9455
+ 30101988
9456
+ 30061988
9457
+ 29041988
9458
+ 27091991
9459
+ 26121989
9460
+ 26061989
9461
+ 26031991
9462
+ 25111991
9463
+ 25031984
9464
+ 25021986
9465
+ 24121989
9466
+ 24121988
9467
+ 24101990
9468
+ 24101984
9469
+ 24071992
9470
+ 24051989
9471
+ 24041986
9472
+ 23091991
9473
+ 23061987
9474
+ 23041988
9475
+ 23021992
9476
+ 23021983
9477
+ 22111988
9478
+ 22091990
9479
+ 22091984
9480
+ 22051988
9481
+ 21111986
9482
+ 21101988
9483
+ 21101987
9484
+ 21091989
9485
+ 21051990
9486
+ 21021989
9487
+ 20101987
9488
+ 20071984
9489
+ 20051983
9490
+ 20031990
9491
+ 20031985
9492
+ 20011983
9493
+ 1passwor
9494
+ 19111985
9495
+ 19081987
9496
+ 19051983
9497
+ 19041985
9498
+ 18121990
9499
+ 18121985
9500
+ 18121812
9501
+ 18091987
9502
+ 17121985
9503
+ 17111987
9504
+ 17071987
9505
+ 17071986
9506
+ 17061987
9507
+ 17041986
9508
+ 17041985
9509
+ 16121991
9510
+ 16101986
9511
+ 16041988
9512
+ 16041985
9513
+ 16031986
9514
+ 16021988
9515
+ 16011986
9516
+ 15121983
9517
+ 15101991
9518
+ 15061984
9519
+ 15011988
9520
+ 14091987
9521
+ 14061988
9522
+ 14051983
9523
+ 13101992
9524
+ 13101988
9525
+ 13101982
9526
+ 13071989
9527
+ 13071985
9528
+ 13061991
9529
+ 13051990
9530
+ 13031989
9531
+ 123456n
9532
+ 1234567890-
9533
+ 123450
9534
+ 1216
9535
+ 12101989
9536
+ 1208
9537
+ 12071984
9538
+ 12061987
9539
+ 12041991
9540
+ 12031990
9541
+ 12021984
9542
+ 1117
9543
+ 11091986
9544
+ 11091985
9545
+ 11081986
9546
+ 1026
9547
+ 10101988
9548
+ 10101980
9549
+ 10091986
9550
+ 10091985
9551
+ 10081987
9552
+ 10051988
9553
+ 10021987
9554
+ 10021986
9555
+ 09041985
9556
+ 09031987
9557
+ 08041985
9558
+ 08031987
9559
+ 07061988
9560
+ 07041989
9561
+ 07021980
9562
+ 06011982
9563
+ 05121988
9564
+ 05061989
9565
+ 05051986
9566
+ 04031991
9567
+ 03071985
9568
+ 03061986
9569
+ 03061985
9570
+ 03031987
9571
+ 03031984
9572
+ 03011991
9573
+ 02111987
9574
+ 02061990
9575
+ 02011971
9576
+ 01091988
9577
+ 01071990
9578
+ 01061983
9579
+ 01051980
9580
+ 01022010
9581
+ 000777
9582
+ 000123
9583
+ young1
9584
+ yamato
9585
+ winona
9586
+ winner1
9587
+ whatthe
9588
+ weiner
9589
+ weekend
9590
+ volleyba
9591
+ volcano
9592
+ virginie
9593
+ videos
9594
+ vegitto
9595
+ uptown
9596
+ tycoon
9597
+ treefrog
9598
+ trauma
9599
+ town
9600
+ toast
9601
+ titts
9602
+ these
9603
+ therock1
9604
+ tetsuo
9605
+ tennesse
9606
+ tanya1
9607
+ success1
9608
+ stupid1
9609
+ stockton
9610
+ stock
9611
+ stellar
9612
+ springs
9613
+ spoiled
9614
+ someday
9615
+ skinhead
9616
+ sick
9617
+ shyshy
9618
+ shojou
9619
+ shampoo
9620
+ sexman
9621
+ sex69
9622
+ saskia
9623
+ Sandra
9624
+ s123456
9625
+ russel
9626
+ rudeboy
9627
+ rollin
9628
+ ridge
9629
+ ride
9630
+ rfgecnf
9631
+ qwqwqwqw
9632
+ pushkin
9633
+ puck
9634
+ probes
9635
+ pong
9636
+ playmate
9637
+ planes
9638
+ piercing
9639
+ phat
9640
+ pearls
9641
+ password9
9642
+ painting
9643
+ nineball
9644
+ navajo
9645
+ napalm
9646
+ mohammad
9647
+ miller1
9648
+ matchbox
9649
+ marie1
9650
+ mariam
9651
+ mamas
9652
+ malish
9653
+ maison
9654
+ logger
9655
+ locks
9656
+ lister
9657
+ lfitymrf
9658
+ legos
9659
+ lander
9660
+ laetitia
9661
+ kenken
9662
+ kane
9663
+ johnny5
9664
+ jjjjjjj
9665
+ jesper
9666
+ jerk
9667
+ jellybean
9668
+ jeeper
9669
+ jakarta
9670
+ instant
9671
+ ilikeit
9672
+ icecube
9673
+ hotass
9674
+ hogtied
9675
+ having
9676
+ harman
9677
+ hanuman
9678
+ hair
9679
+ hacking
9680
+ gumby
9681
+ gramma
9682
+ GOLF
9683
+ goldeneye
9684
+ gladys
9685
+ furball
9686
+ fuckme2
9687
+ franks
9688
+ fick
9689
+ fduecn
9690
+ farmboy
9691
+ eunice
9692
+ erection
9693
+ entrance
9694
+ elisabet
9695
+ elements
9696
+ eclipse1
9697
+ eatmenow
9698
+ duane
9699
+ dooley
9700
+ dome
9701
+ doktor
9702
+ dimitri
9703
+ dental
9704
+ delaney
9705
+ Dallas
9706
+ cyrano
9707
+ cubs
9708
+ crappy
9709
+ cloudy
9710
+ clips
9711
+ cliff
9712
+ clemente
9713
+ charlie2
9714
+ cassandra
9715
+ cashmoney
9716
+ camil
9717
+ burning
9718
+ buckley
9719
+ booyah
9720
+ boobear
9721
+ bonanza
9722
+ bobmarley
9723
+ bleach
9724
+ bedford
9725
+ bathing
9726
+ baracuda
9727
+ antony
9728
+ ananas
9729
+ alinka
9730
+ alcatraz
9731
+ aisan
9732
+ 5000
9733
+ 49ers
9734
+ 334455
9735
+ 31051982
9736
+ 30051988
9737
+ 30051986
9738
+ 29111988
9739
+ 29051992
9740
+ 29041989
9741
+ 29031990
9742
+ 28121989
9743
+ 28071985
9744
+ 28021983
9745
+ 27111990
9746
+ 27071988
9747
+ 26071984
9748
+ 26061991
9749
+ 26021992
9750
+ 26011990
9751
+ 26011986
9752
+ 25091991
9753
+ 25091989
9754
+ 25081989
9755
+ 25071987
9756
+ 25071985
9757
+ 25071983
9758
+ 25051988
9759
+ 25051980
9760
+ 25041987
9761
+ 25021985
9762
+ 24101991
9763
+ 24101988
9764
+ 24071990
9765
+ 24061985
9766
+ 24041985
9767
+ 24041984
9768
+ 23456
9769
+ 23111986
9770
+ 23101987
9771
+ 23041991
9772
+ 23031983
9773
+ 22071992
9774
+ 22071988
9775
+ 21121989
9776
+ 21111989
9777
+ 21111983
9778
+ 21101983
9779
+ 21041991
9780
+ 21041987
9781
+ 21031986
9782
+ 21021990
9783
+ 21021988
9784
+ 20081990
9785
+ 20061991
9786
+ 20061987
9787
+ 20032003
9788
+ 20031992
9789
+ 1qw23er4
9790
+ 1q1q1q1q
9791
+ 1Master
9792
+ 19121988
9793
+ 19081986
9794
+ 19071989
9795
+ 19041986
9796
+ 18111983
9797
+ 18071990
9798
+ 18071989
9799
+ 18071986
9800
+ 18031986
9801
+ 17121987
9802
+ 17091985
9803
+ 17071990
9804
+ 17051983
9805
+ 16091990
9806
+ 15081989
9807
+ 15071990
9808
+ 15051992
9809
+ 15051989
9810
+ 15031991
9811
+ 15011990
9812
+ 14031986
9813
+ 13091988
9814
+ 13091987
9815
+ 13091986
9816
+ 13081986
9817
+ 13071982
9818
+ 13051986
9819
+ 13041989
9820
+ 13021991
9821
+ 1269
9822
+ 123890
9823
+ 1234rewq
9824
+ 12345r
9825
+ 1231234
9826
+ 12111984
9827
+ 12091986
9828
+ 12081993
9829
+ 12071992
9830
+ 1206
9831
+ 12021990
9832
+ 111555
9833
+ 11111991
9834
+ 11091990
9835
+ 11061987
9836
+ 11061986
9837
+ 11061984
9838
+ 11041985
9839
+ 11031986
9840
+ 1030
9841
+ 1029
9842
+ 1014
9843
+ 101091m
9844
+ 10041984
9845
+ 10031980
9846
+ 10011980
9847
+ 09051984
9848
+ 08071985
9849
+ 07081984
9850
+ 07041988
9851
+ 06101989
9852
+ 06061988
9853
+ 06041984
9854
+ 05091987
9855
+ 05081992
9856
+ 05081986
9857
+ 05071985
9858
+ 05041985
9859
+ 04111991
9860
+ 04071987
9861
+ 04021990
9862
+ 03091988
9863
+ 03061988
9864
+ 03041989
9865
+ 03041984
9866
+ 03031991
9867
+ 02091978
9868
+ 01071988
9869
+ 01061992
9870
+ 01041993
9871
+ 01041983
9872
+ 01031981
9873
+ 0069
9874
+ zyjxrf
9875
+ xian
9876
+ wizard1
9877
+ winger
9878
+ wilder
9879
+ welkom
9880
+ wearing
9881
+ weare138
9882
+ vanessa1
9883
+ usmarine
9884
+ unlock
9885
+ thumb
9886
+ this
9887
+ tasha1
9888
+ talks
9889
+ talbot
9890
+ summers
9891
+ sucked
9892
+ storage
9893
+ sqdwfe
9894
+ socce
9895
+ sniffing
9896
+ smirnov
9897
+ shovel
9898
+ shopper
9899
+ shady
9900
+ semper
9901
+ screwy
9902
+ schatz
9903
+ samanth
9904
+ salman
9905
+ rugby1
9906
+ rjhjkm
9907
+ rita
9908
+ rfhfylfi
9909
+ retire
9910
+ ratboy
9911
+ rachelle
9912
+ qwerasdfzxcv
9913
+ purple1
9914
+ prince1
9915
+ pookey
9916
+ picks
9917
+ perkins
9918
+ patches1
9919
+ password99
9920
+ oyster
9921
+ olenka
9922
+ nympho
9923
+ nikolas
9924
+ neon
9925
+ muslim
9926
+ muhammad
9927
+ morrowind
9928
+ monk
9929
+ missie
9930
+ mierda
9931
+ mercede
9932
+ melina
9933
+ maximo
9934
+ matrix1
9935
+ Martin
9936
+ mariner
9937
+ mantle
9938
+ mammoth
9939
+ mallrats
9940
+ madcow
9941
+ macintos
9942
+ macaroni
9943
+ lunchbox
9944
+ lucas1
9945
+ london1
9946
+ lilbit
9947
+ leoleo
9948
+ KILLER
9949
+ kerry
9950
+ kcchiefs
9951
+ juniper
9952
+ jonas
9953
+ jazzy
9954
+ istheman
9955
+ implants
9956
+ hyundai
9957
+ hfytnrb
9958
+ herring
9959
+ grunt
9960
+ grimace
9961
+ granite
9962
+ grace1
9963
+ gotenks
9964
+ glasses
9965
+ giggle
9966
+ ghjcnbnenrf
9967
+ garnet
9968
+ gabriele
9969
+ gabby
9970
+ fosters
9971
+ forever1
9972
+ fluff
9973
+ Fktrcfylh
9974
+ finder
9975
+ experienced
9976
+ dunlop
9977
+ duffer
9978
+ driven
9979
+ dragonballz
9980
+ draco
9981
+ downer
9982
+ douche
9983
+ doom
9984
+ discus
9985
+ darina
9986
+ daman
9987
+ daisey
9988
+ clement
9989
+ chouchou
9990
+ cheerleaers
9991
+ Charles
9992
+ charisma
9993
+ celebrity
9994
+ cardinals
9995
+ captain1
9996
+ caca
9997
+ c2h5oh
9998
+ bubbles1
9999
+ brook
10000
+ brady
legofy/2er.png ADDED
legofy/2er_lego.png ADDED
legofy/8f2ad880-1762-4e20-9831-a1cf1282e7be.jpg ADDED
legofy/8f2ad880-1762-4e20-9831-a1cf1282e7be_lego.png ADDED
legofy/All Safe.html ADDED
The diff for this file is too large to render. See raw diff
 
legofy/All Safe_files/23764359.svg ADDED
legofy/All Safe_files/36656228.svg ADDED
legofy/All Safe_files/43781505.png ADDED
legofy/All Safe_files/46447804.svg ADDED
legofy/All Safe_files/49749330.svg ADDED
legofy/All Safe_files/60965012.png ADDED
legofy/All Safe_files/61392992.png ADDED
legofy/All Safe_files/68377.png ADDED
legofy/All Safe_files/82032642.svg ADDED
legofy/All Safe_files/88451385.png ADDED
legofy/All Safe_files/91903393.svg ADDED
legofy/All Safe_files/96313755.png ADDED

Git LFS Details

  • SHA256: 414fcd531c83225573b056b83663d4ed02292eaa06b122576f30707dc78ee9b4
  • Pointer size: 132 Bytes
  • Size of remote file: 1.24 MB
legofy/All Safe_files/bundle.js.download ADDED
The diff for this file is too large to render. See raw diff
 
legofy/All Safe_files/style.css ADDED
@@ -0,0 +1,4417 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ @font-face {
3
+ font-family: Matter;
4
+ src: url(../fonts/matter/matter-light.woff2) format("woff2"), url(../fonts/matter/matter-light.woff) format("woff");
5
+ font-weight: 400;
6
+ font-style: normal;
7
+ font-display: swap
8
+ }
9
+
10
+ @font-face {
11
+ font-family: Matter;
12
+ src: url(../fonts/matter/matter-regular.woff2) format("woff2"), url(../fonts/matter/matter-regular.woff) format("woff");
13
+ font-weight: 500;
14
+ font-style: normal;
15
+ font-display: swap
16
+ }
17
+
18
+ @font-face {
19
+ font-family: "Gallery Modern";
20
+ src: url(../fonts/gallery-modern/gallery-modern-regular.woff2) format("woff2"), url(../fonts/gallery-modern/gallery-modern-regular.woff) format("woff");
21
+ font-weight: 400;
22
+ font-style: normal;
23
+ font-display: swap
24
+ }
25
+
26
+ /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
27
+ html {
28
+ line-height: 1.15;
29
+ -webkit-text-size-adjust: 100%
30
+ }
31
+
32
+ body {
33
+ margin: 0
34
+ }
35
+
36
+ main {
37
+ display: block
38
+ }
39
+
40
+ h1 {
41
+ font-size: 2em;
42
+ margin: .67em 0
43
+ }
44
+
45
+ hr {
46
+ box-sizing: content-box;
47
+ height: 0;
48
+ overflow: visible
49
+ }
50
+
51
+ pre {
52
+ font-family: monospace, monospace;
53
+ font-size: 1em
54
+ }
55
+
56
+ a {
57
+ background-color: transparent
58
+ }
59
+
60
+ abbr[title] {
61
+ border-bottom: none;
62
+ text-decoration: underline;
63
+ -webkit-text-decoration: underline dotted;
64
+ -moz-text-decoration: underline dotted;
65
+ text-decoration: underline dotted
66
+ }
67
+
68
+ b,
69
+ strong {
70
+ font-weight: bolder
71
+ }
72
+
73
+ code,
74
+ kbd,
75
+ samp {
76
+ font-family: monospace, monospace;
77
+ font-size: 1em
78
+ }
79
+
80
+ small {
81
+ font-size: 80%
82
+ }
83
+
84
+ sub,
85
+ sup {
86
+ font-size: 75%;
87
+ line-height: 0;
88
+ position: relative;
89
+ vertical-align: baseline
90
+ }
91
+
92
+ sub {
93
+ bottom: -.25em
94
+ }
95
+
96
+ sup {
97
+ top: -.5em
98
+ }
99
+
100
+ img {
101
+ border-style: none
102
+ }
103
+
104
+ button,
105
+ input,
106
+ optgroup,
107
+ select,
108
+ textarea {
109
+ font-family: inherit;
110
+ font-size: 100%;
111
+ line-height: 1.15;
112
+ margin: 0
113
+ }
114
+
115
+ button,
116
+ input {
117
+ overflow: visible
118
+ }
119
+
120
+ button,
121
+ select {
122
+ text-transform: none
123
+ }
124
+
125
+ [type=button],
126
+ [type=reset],
127
+ [type=submit],
128
+ button {
129
+ -webkit-appearance: button
130
+ }
131
+
132
+ [type=button]::-moz-focus-inner,
133
+ [type=reset]::-moz-focus-inner,
134
+ [type=submit]::-moz-focus-inner,
135
+ button::-moz-focus-inner {
136
+ border-style: none;
137
+ padding: 0
138
+ }
139
+
140
+ [type=button]:-moz-focusring,
141
+ [type=reset]:-moz-focusring,
142
+ [type=submit]:-moz-focusring,
143
+ button:-moz-focusring {
144
+ outline: 1px dotted ButtonText
145
+ }
146
+
147
+ fieldset {
148
+ padding: .35em .75em .625em
149
+ }
150
+
151
+ legend {
152
+ box-sizing: border-box;
153
+ color: inherit;
154
+ display: table;
155
+ max-width: 100%;
156
+ padding: 0;
157
+ white-space: normal
158
+ }
159
+
160
+ progress {
161
+ vertical-align: baseline
162
+ }
163
+
164
+ textarea {
165
+ overflow: auto
166
+ }
167
+
168
+ [type=checkbox],
169
+ [type=radio] {
170
+ box-sizing: border-box;
171
+ padding: 0
172
+ }
173
+
174
+ [type=number]::-webkit-inner-spin-button,
175
+ [type=number]::-webkit-outer-spin-button {
176
+ height: auto
177
+ }
178
+
179
+ [type=search] {
180
+ -webkit-appearance: textfield;
181
+ outline-offset: -2px
182
+ }
183
+
184
+ [type=search]::-webkit-search-decoration {
185
+ -webkit-appearance: none
186
+ }
187
+
188
+ ::-webkit-file-upload-button {
189
+ -webkit-appearance: button;
190
+ font: inherit
191
+ }
192
+
193
+ details {
194
+ display: block
195
+ }
196
+
197
+ summary {
198
+ display: list-item
199
+ }
200
+
201
+ template {
202
+ display: none
203
+ }
204
+
205
+ [hidden] {
206
+ display: none
207
+ }
208
+
209
+ html {
210
+ font-family: Matter, sans-serif;
211
+ font-size: 2.66vw;
212
+ text-align: left;
213
+ -webkit-font-smoothing: antialiased;
214
+ -moz-osx-font-smoothing: grayscale
215
+ }
216
+
217
+ @media (min-width:768px),
218
+ (orientation:landscape) {
219
+ html {
220
+ font-size: .625vw
221
+ }
222
+ }
223
+
224
+ @media (min-width:1920px) {
225
+ html {
226
+ font-size: 12px
227
+ }
228
+ }
229
+
230
+ body {
231
+ background: #fff;
232
+ color: #000
233
+ }
234
+
235
+ .no-scroll body,
236
+ .smooth body {
237
+ overflow: hidden !important
238
+ }
239
+
240
+ * {
241
+ box-sizing: border-box
242
+ }
243
+
244
+ :after,
245
+ :before {
246
+ box-sizing: border-box
247
+ }
248
+
249
+ @media print {
250
+
251
+ :after,
252
+ :before {
253
+ box-shadow: none !important;
254
+ text-shadow: none !important
255
+ }
256
+ }
257
+
258
+ @media print {
259
+ * {
260
+ box-shadow: none !important;
261
+ text-shadow: none !important
262
+ }
263
+ }
264
+
265
+ a {
266
+ color: inherit;
267
+ cursor: pointer;
268
+ text-decoration: underline
269
+ }
270
+
271
+ a:hover {
272
+ color: inherit;
273
+ text-decoration: none
274
+ }
275
+
276
+ a,
277
+ button,
278
+ input,
279
+ label {
280
+ -webkit-tap-highlight-color: transparent
281
+ }
282
+
283
+ @media print {
284
+
285
+ a,
286
+ button,
287
+ input,
288
+ label {
289
+ text-decoration: underline
290
+ }
291
+ }
292
+
293
+ button {
294
+ cursor: pointer
295
+ }
296
+
297
+ button:disabled {
298
+ cursor: auto
299
+ }
300
+
301
+ audio,
302
+ canvas,
303
+ iframe,
304
+ img,
305
+ svg,
306
+ video {
307
+ vertical-align: middle
308
+ }
309
+
310
+ figure {
311
+ margin: 0
312
+ }
313
+
314
+ button,
315
+ input,
316
+ select,
317
+ textarea {
318
+ font-family: inherit;
319
+ font-size: inherit;
320
+ line-height: inherit
321
+ }
322
+
323
+ blockquote,
324
+ h1,
325
+ h2,
326
+ h3,
327
+ h4,
328
+ h5,
329
+ h6,
330
+ p {
331
+ margin: 0;
332
+ padding: 0;
333
+ font-weight: inherit;
334
+ font-style: inherit;
335
+ font-size: inherit;
336
+ line-height: inherit;
337
+ text-align: inherit;
338
+ letter-spacing: inherit
339
+ }
340
+
341
+ @media print {
342
+
343
+ blockquote,
344
+ h1,
345
+ h2,
346
+ h3,
347
+ h4,
348
+ h5,
349
+ h6,
350
+ p {
351
+ page-break-after: avoid;
352
+ orphans: 3;
353
+ widows: 3
354
+ }
355
+ }
356
+
357
+ address,
358
+ em {
359
+ font-style: normal
360
+ }
361
+
362
+ .cb-achievement-container,
363
+ .cb-brandreel-container,
364
+ .cb-container,
365
+ .cb-focused-container,
366
+ .cb-footer-container,
367
+ .cb-greeting-container,
368
+ .cb-intro-container,
369
+ .cb-outro-container,
370
+ .cb-overview-container,
371
+ .cb-postcard-container,
372
+ .cb-showcase-container {
373
+ padding: 0 6.6666666667vw
374
+ }
375
+
376
+ @media (min-width:768px),
377
+ (orientation:landscape) {
378
+
379
+ .cb-achievement-container,
380
+ .cb-brandreel-container,
381
+ .cb-container,
382
+ .cb-focused-container,
383
+ .cb-footer-container,
384
+ .cb-greeting-container,
385
+ .cb-intro-container,
386
+ .cb-outro-container,
387
+ .cb-overview-container,
388
+ .cb-postcard-container,
389
+ .cb-showcase-container {
390
+ padding: 0 3.125vw
391
+ }
392
+ }
393
+
394
+ @media (min-width:1920px) {
395
+
396
+ .cb-achievement-container,
397
+ .cb-brandreel-container,
398
+ .cb-container,
399
+ .cb-focused-container,
400
+ .cb-footer-container,
401
+ .cb-greeting-container,
402
+ .cb-intro-container,
403
+ .cb-outro-container,
404
+ .cb-overview-container,
405
+ .cb-postcard-container,
406
+ .cb-showcase-container {
407
+ max-width: 1920px;
408
+ margin: 0 auto
409
+ }
410
+ }
411
+
412
+ .-xs.cb-achievement-container,
413
+ .-xs.cb-brandreel-container,
414
+ .-xs.cb-focused-container,
415
+ .-xs.cb-footer-container,
416
+ .-xs.cb-greeting-container,
417
+ .-xs.cb-intro-container,
418
+ .-xs.cb-outro-container,
419
+ .-xs.cb-overview-container,
420
+ .-xs.cb-postcard-container,
421
+ .-xs.cb-showcase-container,
422
+ .cb-container.-xs {
423
+ padding: 0
424
+ }
425
+
426
+ @media (min-width:768px),
427
+ (orientation:landscape) {
428
+
429
+ .-xs.cb-achievement-container,
430
+ .-xs.cb-brandreel-container,
431
+ .-xs.cb-focused-container,
432
+ .-xs.cb-footer-container,
433
+ .-xs.cb-greeting-container,
434
+ .-xs.cb-intro-container,
435
+ .-xs.cb-outro-container,
436
+ .-xs.cb-overview-container,
437
+ .-xs.cb-postcard-container,
438
+ .-xs.cb-showcase-container,
439
+ .cb-container.-xs {
440
+ padding: 0 1.25vw
441
+ }
442
+ }
443
+
444
+ .-sm.cb-achievement-container,
445
+ .-sm.cb-brandreel-container,
446
+ .-sm.cb-focused-container,
447
+ .-sm.cb-footer-container,
448
+ .-sm.cb-greeting-container,
449
+ .-sm.cb-intro-container,
450
+ .-sm.cb-outro-container,
451
+ .-sm.cb-overview-container,
452
+ .-sm.cb-postcard-container,
453
+ .-sm.cb-showcase-container,
454
+ .cb-container.-sm {
455
+ padding: 0 4vw
456
+ }
457
+
458
+ @media (min-width:768px),
459
+ (orientation:landscape) {
460
+
461
+ .-sm.cb-achievement-container,
462
+ .-sm.cb-brandreel-container,
463
+ .-sm.cb-focused-container,
464
+ .-sm.cb-footer-container,
465
+ .-sm.cb-greeting-container,
466
+ .-sm.cb-intro-container,
467
+ .-sm.cb-outro-container,
468
+ .-sm.cb-overview-container,
469
+ .-sm.cb-postcard-container,
470
+ .-sm.cb-showcase-container,
471
+ .cb-container.-sm {
472
+ padding: 0 6.25vw
473
+ }
474
+ }
475
+
476
+ @media (min-width:768px),
477
+ (orientation:landscape) {
478
+ .-lsm {
479
+ display: none
480
+ }
481
+ }
482
+
483
+ @media (min-width:1024px) {
484
+ .-lmd {
485
+ display: none
486
+ }
487
+ }
488
+
489
+ @media (min-width:1200px) {
490
+ .-llg {
491
+ display: none
492
+ }
493
+ }
494
+
495
+ @media (min-width:1600px) {
496
+ .-lxl {
497
+ display: none
498
+ }
499
+ }
500
+
501
+ @media (max-width:767px) {
502
+ .-gxs {
503
+ display: none
504
+ }
505
+ }
506
+
507
+ @media (max-width:1023px) {
508
+ .-gsm {
509
+ display: none
510
+ }
511
+ }
512
+
513
+ @media (max-width:1199px) {
514
+ .-gmd {
515
+ display: none
516
+ }
517
+ }
518
+
519
+ @media (max-width:1349px) {
520
+ .-glg {
521
+ display: none
522
+ }
523
+ }
524
+
525
+ @media (max-width:1919px) {
526
+ .-gxl {
527
+ display: none
528
+ }
529
+ }
530
+
531
+ @-webkit-keyframes cb-fx-blink {
532
+
533
+ 0%,
534
+ 100% {
535
+ opacity: 0
536
+ }
537
+
538
+ 50% {
539
+ opacity: 1
540
+ }
541
+ }
542
+
543
+ @keyframes cb-fx-blink {
544
+
545
+ 0%,
546
+ 100% {
547
+ opacity: 0
548
+ }
549
+
550
+ 50% {
551
+ opacity: 1
552
+ }
553
+ }
554
+
555
+ @-webkit-keyframes cb-fx-rotating-360 {
556
+ 0% {
557
+ transform: rotate(0)
558
+ }
559
+
560
+ 100% {
561
+ transform: rotate(360deg)
562
+ }
563
+ }
564
+
565
+ @keyframes cb-fx-rotating-360 {
566
+ 0% {
567
+ transform: rotate(0)
568
+ }
569
+
570
+ 100% {
571
+ transform: rotate(360deg)
572
+ }
573
+ }
574
+
575
+ .cb-svgsprite {
576
+ display: inline-block;
577
+ width: 1em;
578
+ height: 1em;
579
+ vertical-align: middle;
580
+ fill: currentColor
581
+ }
582
+
583
+ .cb-layout .scrollbar-track {
584
+ right: 3px;
585
+ background: 0 0;
586
+ z-index: 200
587
+ }
588
+
589
+ .cb-layout .scrollbar-thumb-y {
590
+ background: #333
591
+ }
592
+
593
+ .cb-layout .scrollbar-thumb-y:before {
594
+ content: "";
595
+ display: block;
596
+ position: absolute;
597
+ top: 0;
598
+ right: -3px;
599
+ left: -3px;
600
+ bottom: 0
601
+ }
602
+
603
+ .cb-layout .scrollbar-thumb-y:hover {
604
+ background: #000
605
+ }
606
+
607
+ .cb-layout .scroll-content {
608
+ height: 100vh;
609
+ will-change: transform
610
+ }
611
+
612
+ .cb-menu-logo {
613
+ position: fixed;
614
+ top: 2.5rem;
615
+ left: 2.5rem;
616
+ z-index: 251;
617
+ opacity: 0;
618
+ pointer-events: none;
619
+ transition: opacity .4s
620
+ }
621
+
622
+ @media (min-width:768px),
623
+ (orientation:landscape) {
624
+ .cb-menu-logo {
625
+ top: 3.9rem;
626
+ left: 5rem;
627
+ color: #fff;
628
+ transition: opacity .8s
629
+ }
630
+ }
631
+
632
+ .cb-menu.-open .cb-menu-logo {
633
+ transition-duration: .8s
634
+ }
635
+
636
+ @media (min-height:450px),
637
+ (min-width:768px) {
638
+ .cb-menu.-open .cb-menu-logo {
639
+ opacity: 1;
640
+ pointer-events: auto
641
+ }
642
+ }
643
+
644
+ .cb-menu-logo svg {
645
+ width: 88px;
646
+ height: 19px
647
+ }
648
+
649
+ @media (min-width:768px),
650
+ (orientation:landscape) {
651
+ .cb-menu-logo svg {
652
+ width: 94px;
653
+ height: 20px
654
+ }
655
+ }
656
+
657
+ .cb-menu-logo.-visible {
658
+ opacity: 1
659
+ }
660
+
661
+ .cb-menu-toggle {
662
+ position: fixed;
663
+ top: 2.25rem;
664
+ right: 2.5rem;
665
+ z-index: 251
666
+ }
667
+
668
+ @media (min-width:768px),
669
+ (orientation:landscape) {
670
+ .cb-menu-toggle {
671
+ top: 3.9rem;
672
+ right: 5rem
673
+ }
674
+ }
675
+
676
+ @media (pointer:fine) {
677
+ .cb-menu-toggle:hover {
678
+ color: #fff
679
+ }
680
+ }
681
+
682
+ .cb-menu.-inverse .cb-menu-toggle {
683
+ color: #fff
684
+ }
685
+
686
+ @media (pointer:fine) {
687
+ .cb-menu.-inverse .cb-menu-toggle:hover {
688
+ color: #000
689
+ }
690
+ }
691
+
692
+ .cb-menu.-open .cb-menu-toggle {
693
+ color: #000
694
+ }
695
+
696
+ @media (pointer:fine) {
697
+ .cb-menu.-open .cb-menu-toggle:hover {
698
+ color: #fff
699
+ }
700
+ }
701
+
702
+ .cb-menu-box {
703
+ display: none
704
+ }
705
+
706
+ .cb-menu-backdrop {
707
+ position: fixed;
708
+ top: 0;
709
+ right: 0;
710
+ left: 0;
711
+ bottom: 0;
712
+ z-index: 197;
713
+ background: rgba(0, 0, 0, .5)
714
+ }
715
+
716
+ .cb-menu-fill {
717
+ position: fixed;
718
+ top: 0;
719
+ left: 0;
720
+ right: 0;
721
+ z-index: 199;
722
+ height: 100vh;
723
+ transform-origin: right center;
724
+ background: #fff
725
+ }
726
+
727
+ @media (min-width:768px),
728
+ (orientation:landscape) {
729
+ .cb-menu-fill {
730
+ width: 689px;
731
+ left: auto
732
+ }
733
+ }
734
+
735
+ @media (min-width:1600px) and (min-height:700px) {
736
+ .cb-menu-fill {
737
+ width: 1200px;
738
+ }
739
+ }
740
+
741
+ .cb-menu-content {
742
+ position: fixed;
743
+ top: 0;
744
+ left: 0;
745
+ right: 0;
746
+ z-index: 200;
747
+ height: 100vh;
748
+ overflow: auto;
749
+ -webkit-overflow-scrolling: touch;
750
+ padding: 100px 0 90px 0
751
+ }
752
+
753
+ @media (min-height:550px) {
754
+ .cb-menu-content {
755
+ display: flex;
756
+ flex-direction: column;
757
+ justify-content: center;
758
+ padding: 0
759
+ }
760
+ }
761
+
762
+ @media (min-width:768px),
763
+ (orientation:landscape) {
764
+ .cb-menu-content {
765
+ width: 689px;
766
+ left: auto
767
+ }
768
+ }
769
+
770
+ @media (min-width:768px) and (min-height:550px) {
771
+ .cb-menu-content {
772
+ display: flex;
773
+ flex-direction: column;
774
+ justify-content: space-between;
775
+ padding: 20px 0 0 0
776
+ }
777
+ }
778
+
779
+ @media (min-width:768px) and (min-height:600px) {
780
+ .cb-menu-content {
781
+ padding: 40px 0 0 0
782
+ }
783
+ }
784
+
785
+ @media (min-width:1600px) and (min-height:700px) {
786
+ .cb-menu-content {
787
+ width: 1200px;
788
+ padding: 50px 0 0 0
789
+ }
790
+ }
791
+
792
+ .cb-menu-container {
793
+ width: 100%;
794
+ padding: 0 30px 0 45px
795
+ }
796
+
797
+ @media (min-width:768px),
798
+ (orientation:landscape) {
799
+ .cb-menu-container {
800
+ padding: 0 98px
801
+ }
802
+ }
803
+
804
+ @media (min-width:768px) and (min-height:550px) {
805
+ .cb-menu-body {
806
+ display: flex;
807
+ align-items: center;
808
+ height: 100%;
809
+ width: 100%
810
+ }
811
+ }
812
+
813
+ .cb-menu-footer {
814
+ padding: 50px 0 0 0
815
+ }
816
+
817
+ @media (min-width:768px) and (min-height:550px) {
818
+ .cb-menu-footer {
819
+ padding: 0 0 50px 0
820
+ }
821
+ }
822
+
823
+ @media (min-width:1600px) and (min-height:700px) {
824
+ .cb-menu-footer {
825
+ padding: 0 0 84px 0
826
+ }
827
+ }
828
+
829
+ @media (min-width:768px) and (min-height:550px) {
830
+ .cb-menu-grid {
831
+ display: flex;
832
+ width: 100%
833
+ }
834
+ }
835
+
836
+ @media (min-width:768px) and (min-height:550px) {
837
+ .cb-menu-grid-col {
838
+ flex: 1.2
839
+ }
840
+ }
841
+
842
+ .cb-menu-grid-col.-left {
843
+ display: none
844
+ }
845
+
846
+ @media (min-width:768px) and (min-height:550px) {
847
+ .cb-menu-grid-col.-left {
848
+ display: block;
849
+ flex: .8
850
+ }
851
+ }
852
+
853
+ .cb-menu-title {
854
+ display: none;
855
+ padding: 0 0 30px 0;
856
+ color: rgba(0, 0, 0, .3);
857
+ font-size: 16px;
858
+ line-height: 100%
859
+ }
860
+
861
+ @media (min-height:550px) {
862
+ .cb-menu-title {
863
+ display: block
864
+ }
865
+ }
866
+
867
+ @media (min-width:1600px) and (min-height:700px) {
868
+ .cb-menu-title {
869
+ padding: 0 0 50px 0
870
+ }
871
+ }
872
+
873
+ .cb-menu-title.-sm {
874
+ padding: 0 0 12px 0
875
+ }
876
+
877
+ @media (min-width:1600px) and (min-height:700px) {
878
+ .cb-menu-title.-sm {
879
+ padding: 0 0 20px 0
880
+ }
881
+ }
882
+
883
+ .cb-menu-navs {
884
+ margin: -4px 0
885
+ }
886
+
887
+ @media (min-width:1600px) and (min-height:700px) {
888
+ .cb-menu-navs {
889
+ margin: -9px 0
890
+ }
891
+ }
892
+
893
+ .cb-menu-nav {
894
+ position: relative;
895
+ display: block;
896
+ padding: 4px 0
897
+ }
898
+
899
+ @media (min-width:1600px) and (min-height:700px) {
900
+ .cb-menu-nav {
901
+ padding: 9px 0
902
+ }
903
+ }
904
+
905
+ .cb-menu-nav a {
906
+ display: inline-block;
907
+ position: relative;
908
+ font-size: 38px;
909
+ font-weight: 400;
910
+ letter-spacing: -.05em;
911
+ line-height: 100%;
912
+ text-decoration: none
913
+ }
914
+
915
+ @media (min-width:360px) {
916
+ .cb-menu-nav a {
917
+ font-size: 42px
918
+ }
919
+ }
920
+
921
+ @media (min-width:768px) and (min-height:550px) {
922
+ .cb-menu-nav a {
923
+ font-size: 56px
924
+ }
925
+ }
926
+
927
+ @media (min-width:1600px) and (min-height:700px) {
928
+ .cb-menu-nav a {
929
+ font-size: 60px
930
+ }
931
+ }
932
+
933
+ .cb-menu-nav a:before {
934
+ content: "";
935
+ position: absolute;
936
+ left: 0;
937
+ right: 0;
938
+ bottom: -2px;
939
+ height: 1px;
940
+ transform: scaleX(0);
941
+ transform-origin: right center;
942
+ background: currentColor;
943
+ transition: transform .5s, transform-origin 0s
944
+ }
945
+
946
+ .cb-menu-nav a em {
947
+ display: block;
948
+ position: relative;
949
+ overflow: hidden;
950
+ padding: 0 .01em .04em 0
951
+ }
952
+
953
+ .cb-menu-nav a span {
954
+ display: inline-block;
955
+ color: transparent;
956
+ transition: transform 1.2s cubic-bezier(.19, 1, .22, 1)
957
+ }
958
+
959
+ .cb-menu-nav a span:after,
960
+ .cb-menu-nav a span:before {
961
+ content: attr(data-text);
962
+ display: block;
963
+ position: absolute;
964
+ color: #000
965
+ }
966
+
967
+ .cb-menu-nav a span:before {
968
+ top: 0;
969
+ transform: skewY(0);
970
+ transform-origin: right bottom;
971
+ transition: transform 2s cubic-bezier(.19, 1, .22, 1)
972
+ }
973
+
974
+ .cb-menu-nav a span:after {
975
+ top: 105%;
976
+ transform: skewY(7deg);
977
+ transform-origin: left top;
978
+ transition: transform 2s cubic-bezier(.19, 1, .22, 1)
979
+ }
980
+
981
+ .cb-menu-nav a:focus span,
982
+ .cb-menu-nav a:hover span {
983
+ transform: translateY(-105%)
984
+ }
985
+
986
+ @media (pointer:coarse) {
987
+
988
+ .cb-menu-nav a:focus span,
989
+ .cb-menu-nav a:hover span {
990
+ transform: none
991
+ }
992
+ }
993
+
994
+ .cb-menu-nav a:focus span:before,
995
+ .cb-menu-nav a:hover span:before {
996
+ transform: skewY(7deg)
997
+ }
998
+
999
+ @media (pointer:coarse) {
1000
+
1001
+ .cb-menu-nav a:focus span:before,
1002
+ .cb-menu-nav a:hover span:before {
1003
+ transform: none
1004
+ }
1005
+ }
1006
+
1007
+ .cb-menu-nav a:focus span:after,
1008
+ .cb-menu-nav a:hover span:after {
1009
+ transform: skewY(0)
1010
+ }
1011
+
1012
+ @media (pointer:coarse) {
1013
+
1014
+ .cb-menu-nav a:focus span:after,
1015
+ .cb-menu-nav a:hover span:after {
1016
+ transform: none
1017
+ }
1018
+ }
1019
+
1020
+ .cb-menu-nav.-active a:before,
1021
+ .cb-menu.-open .cb-menu-toggle button.cb-menu-nav a:before {
1022
+ transform: scaleX(1);
1023
+ transform-origin: left center
1024
+ }
1025
+
1026
+ .cb-menu-socials {
1027
+ display: inline-block;
1028
+ margin: -6px 0
1029
+ }
1030
+
1031
+ @media (min-width:1600px) and (min-height:700px) {
1032
+ .cb-menu-socials {
1033
+ margin: -6.5px 0
1034
+ }
1035
+ }
1036
+
1037
+ .cb-menu-social {
1038
+ position: relative;
1039
+ display: block;
1040
+ padding: 12px 0;
1041
+ font-size: 16px;
1042
+ line-height: 120%;
1043
+ letter-spacing: .00464286em;
1044
+ text-transform: capitalize;
1045
+ text-decoration: none
1046
+ }
1047
+
1048
+ @media (min-width:1600px) and (min-height:700px) {
1049
+ .cb-menu-social {
1050
+ padding: 13px 0
1051
+ }
1052
+ }
1053
+
1054
+ .cb-menu-social em {
1055
+ display: block;
1056
+ position: relative;
1057
+ overflow: hidden
1058
+ }
1059
+
1060
+ .cb-menu-social em span {
1061
+ display: block;
1062
+ transition: transform 1.2s cubic-bezier(.19, 1, .22, 1);
1063
+ transform-origin: left center
1064
+ }
1065
+
1066
+ .cb-menu-social em span:after {
1067
+ content: attr(data-text);
1068
+ display: block;
1069
+ position: absolute;
1070
+ top: 130%;
1071
+ transform: skewY(10deg);
1072
+ transform-origin: left center;
1073
+ transition: transform 1.2s cubic-bezier(.19, 1, .22, 1)
1074
+ }
1075
+
1076
+ .cb-menu-social:focus em span,
1077
+ .cb-menu-social:hover em span {
1078
+ transform: translateY(-130%) skewY(5deg)
1079
+ }
1080
+
1081
+ @media (pointer:coarse) {
1082
+
1083
+ .cb-menu-social:focus em span,
1084
+ .cb-menu-social:hover em span {
1085
+ transform: none
1086
+ }
1087
+ }
1088
+
1089
+ .cb-menu-social:focus em span:after,
1090
+ .cb-menu-social:hover em span:after {
1091
+ transform: skewY(-5deg)
1092
+ }
1093
+
1094
+ @media (pointer:coarse) {
1095
+
1096
+ .cb-menu-social:focus em span:after,
1097
+ .cb-menu-social:hover em span:after {
1098
+ transform: none
1099
+ }
1100
+ }
1101
+
1102
+ .cb-menu-mail {
1103
+ display: block
1104
+ }
1105
+
1106
+ .cb-menu-mail a {
1107
+ position: relative;
1108
+ display: inline-block;
1109
+ padding: 0 0 5px 0;
1110
+ font-size: 16px;
1111
+ line-height: 20px;
1112
+ letter-spacing: .00464286em;
1113
+ text-decoration: none
1114
+ }
1115
+
1116
+ @media (min-width:1600px) and (min-height:700px) {
1117
+ .cb-menu-mail a {
1118
+ padding: 0 0 6px 0;
1119
+ font-size: 20px;
1120
+ line-height: 25px
1121
+ }
1122
+ }
1123
+
1124
+ .cb-menu-mail a:after,
1125
+ .cb-menu-mail a:before {
1126
+ content: "";
1127
+ display: block;
1128
+ position: absolute;
1129
+ left: 0;
1130
+ right: 0;
1131
+ bottom: 0;
1132
+ height: 1px;
1133
+ background: rgba(0, 0, 0, .3)
1134
+ }
1135
+
1136
+ .cb-menu-mail a:after {
1137
+ background: #000;
1138
+ transform: scaleX(0);
1139
+ transition: transform .8s cubic-bezier(.19, 1, .22, 1)
1140
+ }
1141
+
1142
+ .cb-menu-mail a:focus:after,
1143
+ .cb-menu-mail a:hover:after {
1144
+ transform: scaleX(1)
1145
+ }
1146
+
1147
+ .cb-navbar.-inverse {
1148
+ color: #fff
1149
+ }
1150
+
1151
+ .cb-navbar-strip {
1152
+ position: absolute;
1153
+ top: 2.5rem;
1154
+ left: 2.5rem;
1155
+ right: 2.5rem;
1156
+ z-index: 99;
1157
+ pointer-events: none
1158
+ }
1159
+
1160
+ @media (min-width:768px),
1161
+ (orientation:landscape) {
1162
+ .cb-navbar-strip {
1163
+ top: 3.9rem;
1164
+ left: 5rem;
1165
+ right: 5rem
1166
+ }
1167
+ }
1168
+
1169
+ .cb-navbar-grid {
1170
+ display: flex;
1171
+ align-items: center;
1172
+ justify-content: space-between
1173
+ }
1174
+
1175
+ .cb-navbar-grid-col {
1176
+ pointer-events: auto
1177
+ }
1178
+
1179
+ .cb-navbar-logo {
1180
+ position: relative;
1181
+ top: -1px;
1182
+ transition: opacity .8s;
1183
+ height: 50px;
1184
+ }
1185
+
1186
+ .cb-navbar-logo img{
1187
+ height: 100%;
1188
+ }
1189
+
1190
+ .menu-open .cb-navbar-logo {
1191
+ opacity: 0
1192
+ }
1193
+
1194
+ .cb-navbar-logo a {
1195
+ color: currentColor
1196
+ }
1197
+
1198
+ .cb-navbar-logo svg {
1199
+ width: 88px;
1200
+ height: 19px
1201
+ }
1202
+
1203
+ @media (min-width:768px),
1204
+ (orientation:landscape) {
1205
+ .cb-navbar-logo svg {
1206
+ width: 94px;
1207
+ height: 20px
1208
+ }
1209
+ }
1210
+
1211
+ .cb-navbar-links {
1212
+ display: inline-block;
1213
+ margin: 0 50px 0 0
1214
+ }
1215
+
1216
+ @media (min-width:768px),
1217
+ (orientation:landscape) {
1218
+ .cb-navbar-links {
1219
+ margin: 0 60px 0 0
1220
+ }
1221
+ }
1222
+
1223
+ .cb-navbar-link {
1224
+ font-size: 18px;
1225
+ letter-spacing: -.03em;
1226
+ text-transform: lowercase
1227
+ }
1228
+
1229
+ @media (min-width:768px),
1230
+ (orientation:landscape) {
1231
+ .cb-navbar-link {
1232
+ font-size: 20px;
1233
+ letter-spacing: -.03em
1234
+ }
1235
+ }
1236
+
1237
+ .cb-navbar-toggle {
1238
+ display: none
1239
+ }
1240
+
1241
+ @media (min-width:768px),
1242
+ (orientation:landscape) {
1243
+ .cb-navbar-toggle {
1244
+ display: inline-block;
1245
+ margin: 0 50px 0 0;
1246
+ font-size: 20px;
1247
+ letter-spacing: -.03em;
1248
+ text-transform: lowercase
1249
+ }
1250
+ }
1251
+
1252
+ .cb-loader {
1253
+ display: inline
1254
+ }
1255
+
1256
+ .cb-loader_overlay {
1257
+ position: fixed;
1258
+ top: 0;
1259
+ left: 0;
1260
+ right: 0;
1261
+ bottom: 0;
1262
+ z-index: 999;
1263
+ display: flex;
1264
+ flex-direction: column;
1265
+ justify-content: center;
1266
+ overflow: hidden;
1267
+ color: #fff
1268
+ }
1269
+
1270
+ .cb-loader_overlay-fill {
1271
+ position: absolute;
1272
+ top: 0;
1273
+ left: 0;
1274
+ right: 0;
1275
+ bottom: 0;
1276
+ background: #121212
1277
+ }
1278
+
1279
+ .cb-loader_overlay-box {
1280
+ padding: 0 1.5rem;
1281
+ font-size: 4.2rem;
1282
+ line-height: 90%;
1283
+ letter-spacing: -.03em;
1284
+ text-transform: uppercase
1285
+ }
1286
+
1287
+ @media (orientation:landscape) {
1288
+ .cb-loader_overlay-box {
1289
+ padding: 0 10rem;
1290
+ font-size: 14rem
1291
+ }
1292
+ }
1293
+
1294
+ @media (min-width:768px) {
1295
+ .cb-loader_overlay-box {
1296
+ padding: 0 10rem;
1297
+ font-size: 17.2rem
1298
+ }
1299
+ }
1300
+
1301
+ .cb-loader_overlay-word {
1302
+ overflow: hidden;
1303
+ color: #96C1C4
1304
+ }
1305
+
1306
+ .cb-loader_overlay-word.-v1 {
1307
+ transform: translateX(17%)
1308
+ }
1309
+
1310
+ .cb-loader_overlay-word.-v2 {
1311
+ transform: translateX(5%)
1312
+ }
1313
+
1314
+ .cb-loader_overlay-word.-v3 {
1315
+ transform: translateX(56.7%)
1316
+ }
1317
+
1318
+ .cb-loader_overlay-word.-v4 {
1319
+ display: inline-block
1320
+ }
1321
+
1322
+ .cb-loader_overlay-word span {
1323
+ display: inline-block;
1324
+ transform: translateY(100%)
1325
+ }
1326
+
1327
+ .cb-loader_overlay-word span.-blink {
1328
+ -webkit-animation: cb-fx-blink backwards 1s steps(1) infinite;
1329
+ animation: cb-fx-blink backwards 1s steps(1) infinite
1330
+ }
1331
+
1332
+ .cb-loader_overlay-percent {
1333
+ display: inline-block;
1334
+ float: right;
1335
+ overflow: hidden;
1336
+ font-size: 90%
1337
+ }
1338
+
1339
+ .cb-loader_overlay-percent span {
1340
+ display: inline-block;
1341
+ transform: translateY(100%)
1342
+ }
1343
+
1344
+ .cb-btn {
1345
+ display: inline
1346
+ }
1347
+
1348
+ .cb-btn_cta,
1349
+ .cb-btn_dummy,
1350
+ .cb-btn_menu {
1351
+ position: relative;
1352
+ display: inline-block;
1353
+ height: auto;
1354
+ margin: 0;
1355
+ padding: 0;
1356
+ color: inherit;
1357
+ background: 0 0;
1358
+ border: 0;
1359
+ border-radius: 0;
1360
+ font-family: inherit;
1361
+ font-size: inherit;
1362
+ font-weight: inherit;
1363
+ letter-spacing: inherit;
1364
+ line-height: inherit;
1365
+ text-align: inherit;
1366
+ text-transform: inherit;
1367
+ text-indent: inherit;
1368
+ text-decoration: none
1369
+ }
1370
+
1371
+ .cb-btn_cta:focus,
1372
+ .cb-btn_cta:hover,
1373
+ .cb-btn_dummy:focus,
1374
+ .cb-btn_dummy:hover,
1375
+ .cb-btn_menu:focus,
1376
+ .cb-btn_menu:hover {
1377
+ text-decoration: none
1378
+ }
1379
+
1380
+ .cb-btn_cta {
1381
+ overflow: hidden;
1382
+ padding: 1.4rem 2rem;
1383
+ border-radius: 1000px;
1384
+ font-weight: 500;
1385
+ font-size: 1.4rem;
1386
+ line-height: 110%;
1387
+ text-transform: uppercase;
1388
+ transition: transform .3s
1389
+ }
1390
+
1391
+ @media (min-width:768px),
1392
+ (orientation:landscape) {
1393
+ .cb-btn_cta {
1394
+ font-size: 2.4rem
1395
+ }
1396
+ }
1397
+
1398
+ .cb-btn_cta.-intro {
1399
+ padding: 0 1.5rem;
1400
+ font-family: "Gallery Modern", sans-serif;
1401
+ font-weight: 400;
1402
+ font-size: 105%;
1403
+ line-height: .92;
1404
+ height: 6rem
1405
+ }
1406
+
1407
+ @media (min-width:768px),
1408
+ (orientation:landscape) {
1409
+ .cb-btn_cta.-intro {
1410
+ margin: 0 0 0 .2em;
1411
+ padding: 0 4.8rem;
1412
+ height: 17rem
1413
+ }
1414
+ }
1415
+
1416
+ .cb-btn_cta.-sm {
1417
+ padding: .5rem 1.4rem;
1418
+ font-size: 1.7rem
1419
+ }
1420
+
1421
+ @media (min-width:768px),
1422
+ (orientation:landscape) {
1423
+ .cb-btn_cta.-sm {
1424
+ padding: .8rem 1.5rem;
1425
+ font-size: 1.8rem
1426
+ }
1427
+ }
1428
+
1429
+ .cb-btn_cta.-md {
1430
+ font-size: 2.2rem
1431
+ }
1432
+
1433
+ @media (min-width:768px),
1434
+ (orientation:landscape) {
1435
+ .cb-btn_cta.-md {
1436
+ font-size: 2.8rem
1437
+ }
1438
+ }
1439
+
1440
+ .cb-btn_cta.-xl {
1441
+ padding: 0 1.9rem;
1442
+ font-weight: 400;
1443
+ font-size: 6.9rem
1444
+ }
1445
+
1446
+ @media (min-width:768px),
1447
+ (orientation:landscape) {
1448
+ .cb-btn_cta.-xl {
1449
+ padding: 0 3.4rem;
1450
+ font-size: 13rem
1451
+ }
1452
+ }
1453
+
1454
+ .cb-btn_cta.-tertiary {
1455
+ color: #96C1C4
1456
+ }
1457
+
1458
+ @media (pointer:fine) {
1459
+
1460
+ .cb-btn_cta:focus,
1461
+ .cb-btn_cta:hover {
1462
+ transform: scaleX(1.02);
1463
+ transition: transform .6s cubic-bezier(.34, 5.56, .64, 1)
1464
+ }
1465
+ }
1466
+
1467
+ .cb-btn_cta-border {
1468
+ content: "";
1469
+ display: block;
1470
+ position: absolute;
1471
+ top: 0;
1472
+ left: 0;
1473
+ right: 0;
1474
+ bottom: 0;
1475
+ z-index: 3;
1476
+ border: 1px solid;
1477
+ border-radius: 1000px
1478
+ }
1479
+
1480
+ @media (min-width:768px),
1481
+ (orientation:landscape) {
1482
+ .cb-btn_cta.-intro .cb-btn_cta-border {
1483
+ border-width: 2px
1484
+ }
1485
+ }
1486
+
1487
+ .cb-btn_cta-ripple {
1488
+ display: block;
1489
+ position: absolute;
1490
+ top: 0;
1491
+ left: 0;
1492
+ right: 0;
1493
+ bottom: 0;
1494
+ z-index: 1;
1495
+ overflow: hidden;
1496
+ transform: translateZ(0);
1497
+ border-radius: inherit
1498
+ }
1499
+
1500
+ .cb-btn_cta-ripple span {
1501
+ display: block;
1502
+ width: 100%;
1503
+ height: 100%;
1504
+ transform: translateY(101%);
1505
+ background: currentColor;
1506
+ border-radius: 50% 50% 0 0;
1507
+ transition: transform .5s cubic-bezier(.4, 0, 0, 1), border-radius .5s cubic-bezier(.4, 0, 0, 1)
1508
+ }
1509
+
1510
+ @media (pointer:fine) {
1511
+ .cb-btn_cta:hover .cb-btn_cta-ripple span {
1512
+ border-radius: 0;
1513
+ transform: translateY(0);
1514
+ transition-duration: .5s, .9s
1515
+ }
1516
+ }
1517
+
1518
+ .cb-btn_cta-title {
1519
+ position: relative;
1520
+ display: block;
1521
+ padding: 0 .16em 0 0;
1522
+ overflow: hidden;
1523
+ z-index: 2
1524
+ }
1525
+
1526
+ .cb-btn_cta-title span {
1527
+ display: block;
1528
+ transition: transform .8s cubic-bezier(.16, 1, .3, 1)
1529
+ }
1530
+
1531
+ .cb-btn_cta-title span:after {
1532
+ content: attr(data-text);
1533
+ display: block;
1534
+ position: absolute;
1535
+ top: 110%;
1536
+ left: 0;
1537
+ color: #fff
1538
+ }
1539
+
1540
+ .cb-btn_cta.-inverse .cb-btn_cta-title span:after,
1541
+ .cb-btn_cta.-tertiary .cb-btn_cta-title span:after {
1542
+ color: #000
1543
+ }
1544
+
1545
+ @media (pointer:fine) {
1546
+ .cb-btn_cta:hover .cb-btn_cta-title span {
1547
+ transform: translateY(-110%)
1548
+ }
1549
+ }
1550
+
1551
+ .cb-btn_menu {
1552
+ top: 1px;
1553
+ width: 25px;
1554
+ height: 25px;
1555
+ transform: translateZ(0);
1556
+ transition: color .2s
1557
+ }
1558
+
1559
+ .cb-btn_menu:before {
1560
+ content: "";
1561
+ display: block;
1562
+ position: absolute;
1563
+ top: -20px;
1564
+ right: -20px;
1565
+ left: -20px;
1566
+ bottom: -20px
1567
+ }
1568
+
1569
+ @media (pointer:fine) {
1570
+ .cb-btn_menu:before {
1571
+ left: -80px
1572
+ }
1573
+
1574
+ .cb-btn_menu:hover:before {
1575
+ top: -80px;
1576
+ right: -80px;
1577
+ left: -80px;
1578
+ bottom: -80px
1579
+ }
1580
+ }
1581
+
1582
+ .cb-btn_menu span {
1583
+ display: block;
1584
+ position: relative;
1585
+ top: 0;
1586
+ height: 2px;
1587
+ margin: 5px 0;
1588
+ transform: translateZ(0);
1589
+ color: inherit;
1590
+ background: currentColor;
1591
+ transition: top .3s .3s, transform .3s
1592
+ }
1593
+
1594
+ .cb-btn_menu.-active span:first-child,
1595
+ .cb-menu.-open .cb-menu-toggle button.cb-btn_menu span:first-child {
1596
+ -webkit-animation: cb-btn_menu-open-top .75s;
1597
+ animation: cb-btn_menu-open-top .75s;
1598
+ top: 4px;
1599
+ transform: rotate(45deg) scaleX(1);
1600
+ transition-duration: 0s, 0s
1601
+ }
1602
+
1603
+ .cb-btn_menu.-active span:last-child,
1604
+ .cb-menu.-open .cb-menu-toggle button.cb-btn_menu span:last-child {
1605
+ -webkit-animation: cb-btn_menu-open-bottom .75s;
1606
+ animation: cb-btn_menu-open-bottom .75s;
1607
+ top: -3px;
1608
+ transform: rotate(-45deg) scaleX(1);
1609
+ transition-duration: 0s, 0s
1610
+ }
1611
+
1612
+ @-webkit-keyframes cb-btn_menu-open-top {
1613
+ 0% {
1614
+ opacity: 1;
1615
+ top: 0;
1616
+ left: 0;
1617
+ transform: rotate(0) scaleX(1);
1618
+ transform-origin: left center
1619
+ }
1620
+
1621
+ 30% {
1622
+ opacity: 1;
1623
+ top: 0;
1624
+ left: 0;
1625
+ transform: rotate(0) scaleX(0)
1626
+ }
1627
+
1628
+ 30.1% {
1629
+ opacity: 0;
1630
+ top: 0;
1631
+ left: 0;
1632
+ transform: rotate(0) scaleX(0)
1633
+ }
1634
+
1635
+ 31% {
1636
+ opacity: 1;
1637
+ top: -5px;
1638
+ left: 3px;
1639
+ transform: rotate(45deg) scaleX(0)
1640
+ }
1641
+
1642
+ 100%,
1643
+ 80% {
1644
+ opacity: 1;
1645
+ top: -5px;
1646
+ left: 3px;
1647
+ transform: rotate(45deg) scaleX(1);
1648
+ transform-origin: left center
1649
+ }
1650
+ }
1651
+
1652
+ @keyframes cb-btn_menu-open-top {
1653
+ 0% {
1654
+ opacity: 1;
1655
+ top: 0;
1656
+ left: 0;
1657
+ transform: rotate(0) scaleX(1);
1658
+ transform-origin: left center
1659
+ }
1660
+
1661
+ 30% {
1662
+ opacity: 1;
1663
+ top: 0;
1664
+ left: 0;
1665
+ transform: rotate(0) scaleX(0)
1666
+ }
1667
+
1668
+ 30.1% {
1669
+ opacity: 0;
1670
+ top: 0;
1671
+ left: 0;
1672
+ transform: rotate(0) scaleX(0)
1673
+ }
1674
+
1675
+ 31% {
1676
+ opacity: 1;
1677
+ top: -5px;
1678
+ left: 3px;
1679
+ transform: rotate(45deg) scaleX(0)
1680
+ }
1681
+
1682
+ 100%,
1683
+ 80% {
1684
+ opacity: 1;
1685
+ top: -5px;
1686
+ left: 3px;
1687
+ transform: rotate(45deg) scaleX(1);
1688
+ transform-origin: left center
1689
+ }
1690
+ }
1691
+
1692
+ @-webkit-keyframes cb-btn_menu-open-bottom {
1693
+ 0% {
1694
+ opacity: 1;
1695
+ top: 0;
1696
+ left: 0;
1697
+ transform: rotate(0) scaleX(1);
1698
+ transform-origin: right center
1699
+ }
1700
+
1701
+ 50% {
1702
+ opacity: 1;
1703
+ top: 0;
1704
+ left: 0;
1705
+ transform: rotate(0) scaleX(0)
1706
+ }
1707
+
1708
+ 50.1% {
1709
+ opacity: 0;
1710
+ top: 0;
1711
+ left: 0;
1712
+ transform: rotate(0) scaleX(0)
1713
+ }
1714
+
1715
+ 51%,
1716
+ 55% {
1717
+ opacity: 1;
1718
+ top: -12px;
1719
+ left: -4px;
1720
+ transform: rotate(-45deg) scaleX(0)
1721
+ }
1722
+
1723
+ 100% {
1724
+ opacity: 1;
1725
+ top: -12px;
1726
+ left: -4px;
1727
+ transform: rotate(-45deg) scaleX(1);
1728
+ transform-origin: right center
1729
+ }
1730
+ }
1731
+
1732
+ @keyframes cb-btn_menu-open-bottom {
1733
+ 0% {
1734
+ opacity: 1;
1735
+ top: 0;
1736
+ left: 0;
1737
+ transform: rotate(0) scaleX(1);
1738
+ transform-origin: right center
1739
+ }
1740
+
1741
+ 50% {
1742
+ opacity: 1;
1743
+ top: 0;
1744
+ left: 0;
1745
+ transform: rotate(0) scaleX(0)
1746
+ }
1747
+
1748
+ 50.1% {
1749
+ opacity: 0;
1750
+ top: 0;
1751
+ left: 0;
1752
+ transform: rotate(0) scaleX(0)
1753
+ }
1754
+
1755
+ 51%,
1756
+ 55% {
1757
+ opacity: 1;
1758
+ top: -12px;
1759
+ left: -4px;
1760
+ transform: rotate(-45deg) scaleX(0)
1761
+ }
1762
+
1763
+ 100% {
1764
+ opacity: 1;
1765
+ top: -12px;
1766
+ left: -4px;
1767
+ transform: rotate(-45deg) scaleX(1);
1768
+ transform-origin: right center
1769
+ }
1770
+ }
1771
+
1772
+ .cb-cursor {
1773
+ position: fixed;
1774
+ top: 0;
1775
+ left: 0;
1776
+ z-index: 250;
1777
+ contain: layout style size;
1778
+ pointer-events: none;
1779
+ transition: opacity .3s, color .4s
1780
+ }
1781
+
1782
+ .cb-cursor:before {
1783
+ content: "";
1784
+ position: absolute;
1785
+ top: -24px;
1786
+ left: -24px;
1787
+ display: block;
1788
+ width: 48px;
1789
+ height: 48px;
1790
+ transform: scale(.2);
1791
+ background: currentColor;
1792
+ border-radius: 50%;
1793
+ transition: transform .3s, opacity .1s
1794
+ }
1795
+
1796
+ .cb-cursor.-inverse {
1797
+ color: #fff
1798
+ }
1799
+
1800
+ .cb-cursor.-active:before,
1801
+ .cb-menu.-open .cb-menu-toggle button.cb-cursor:before {
1802
+ transform: scale(.25)
1803
+ }
1804
+
1805
+ @supports (mix-blend-mode:exclusion) {
1806
+
1807
+ .cb-cursor.-exclusion,
1808
+ .cb-cursor.-media.-media-blend,
1809
+ .cb-cursor.-opaque {
1810
+ mix-blend-mode: exclusion
1811
+ }
1812
+
1813
+ .cb-cursor.-exclusion:before,
1814
+ .cb-cursor.-media.-media-blend:before,
1815
+ .cb-cursor.-opaque:before {
1816
+ background: #fff
1817
+ }
1818
+ }
1819
+
1820
+ .cb-cursor.-pointer:before {
1821
+ transform: scale(.15)
1822
+ }
1823
+
1824
+ .cb-cursor.-pointer.-active:before,
1825
+ .cb-menu.-open .cb-menu-toggle button.cb-cursor.-pointer:before {
1826
+ transform: scale(.1)
1827
+ }
1828
+
1829
+ .cb-cursor.-opaque:before {
1830
+ transform: scale(1.32)
1831
+ }
1832
+
1833
+ .cb-cursor.-opaque.-active:before,
1834
+ .cb-menu.-open .cb-menu-toggle button.cb-cursor.-opaque:before {
1835
+ transform: scale(1.2)
1836
+ }
1837
+
1838
+ .cb-cursor.-lg:before {
1839
+ transform: scale(1.05)
1840
+ }
1841
+
1842
+ .cb-cursor.-lg.-active:before,
1843
+ .cb-menu.-open .cb-menu-toggle button.cb-cursor.-lg:before {
1844
+ transform: scale(1.15)
1845
+ }
1846
+
1847
+ .cb-cursor.-text:before {
1848
+ opacity: .85;
1849
+ transform: scale(1.7)
1850
+ }
1851
+
1852
+ .cb-cursor.-text.-active:before,
1853
+ .cb-menu.-open .cb-menu-toggle button.cb-cursor.-text:before {
1854
+ transform: scale(1.6);
1855
+ transition-duration: .2s
1856
+ }
1857
+
1858
+ .cb-cursor.-icon:before {
1859
+ transform: scale(1.5)
1860
+ }
1861
+
1862
+ .cb-cursor.-icon.-active:before,
1863
+ .cb-menu.-open .cb-menu-toggle button.cb-cursor.-icon:before {
1864
+ transform: scale(1.4)
1865
+ }
1866
+
1867
+ .cb-cursor.-menu:before {
1868
+ transform: scale(1.32)
1869
+ }
1870
+
1871
+ .cb-cursor.-menu.-active:before,
1872
+ .cb-menu.-open .cb-menu-toggle button.cb-cursor.-menu:before {
1873
+ transform: scale(1.2)
1874
+ }
1875
+
1876
+ .cb-cursor.-hidden:before {
1877
+ transform: scale(0)
1878
+ }
1879
+
1880
+ .cb-cursor-text {
1881
+ position: absolute;
1882
+ top: -18px;
1883
+ left: -18px;
1884
+ width: 36px;
1885
+ height: 36px;
1886
+ display: flex;
1887
+ align-items: center;
1888
+ justify-content: center;
1889
+ transform: scale(0) rotate(10deg);
1890
+ opacity: 0;
1891
+ color: #fff;
1892
+ font-size: 16px;
1893
+ line-height: 20px;
1894
+ text-align: center;
1895
+ transition: opacity .4s, transform .3s
1896
+ }
1897
+
1898
+ .cb-cursor.-icon .cb-cursor-text,
1899
+ .cb-cursor.-text .cb-cursor-text {
1900
+ opacity: 1;
1901
+ transform: scale(1)
1902
+ }
1903
+
1904
+ .cb-cursor-media {
1905
+ position: absolute;
1906
+ width: 400px;
1907
+ height: 400px;
1908
+ margin: -200px 0 0 -200px
1909
+ }
1910
+
1911
+ .cb-cursor-media img,
1912
+ .cb-cursor-media video {
1913
+ position: absolute;
1914
+ top: 50%;
1915
+ left: 50%;
1916
+ transform: translate(-50%, -50%);
1917
+ border-radius: 50%
1918
+ }
1919
+
1920
+ @supports ((-o-object-fit:cover) or (object-fit:cover)) {
1921
+
1922
+ .cb-cursor-media img,
1923
+ .cb-cursor-media video {
1924
+ position: static;
1925
+ width: 100%;
1926
+ height: 100%;
1927
+ -o-object-fit: cover;
1928
+ object-fit: cover;
1929
+ transform: translateZ(0)
1930
+ }
1931
+ }
1932
+
1933
+ .cb-cursor-media-box {
1934
+ position: relative;
1935
+ width: 100%;
1936
+ height: 100%;
1937
+ overflow: hidden;
1938
+ transform: scale(0) translateZ(0);
1939
+ padding: 1px;
1940
+ opacity: 0;
1941
+ border-radius: 50%;
1942
+ transition: transform .35s, opacity .2s .2s
1943
+ }
1944
+
1945
+ .cb-cursor.-media .cb-cursor-media-box {
1946
+ opacity: 1;
1947
+ transform: scale(.696);
1948
+ transition-duration: .4s, .4s;
1949
+ transition-delay: 0s, 0s
1950
+ }
1951
+
1952
+ .cb-cursor.-media {
1953
+ z-index: 0
1954
+ }
1955
+
1956
+ .cb-cursor.-media .cb-cursor-media-box {
1957
+ opacity: 1;
1958
+ transform: scale(.696);
1959
+ transition-duration: .4s, .4s;
1960
+ transition-delay: 0s, 0s
1961
+ }
1962
+
1963
+ .cb-cursor.-media.-media-lg .cb-cursor-media-box {
1964
+ transform: scale(1) !important
1965
+ }
1966
+
1967
+ @supports (mix-blend-mode:exclusion) {
1968
+ .cb-cursor.-media.-media-blend {
1969
+ z-index: 150
1970
+ }
1971
+ }
1972
+
1973
+ @supports (mix-blend-mode:exclusion) {
1974
+ .cb-cursor.-media.-media-blend .cb-cursor-media-box {
1975
+ -webkit-filter: invert(1);
1976
+ filter: invert(1)
1977
+ }
1978
+ }
1979
+
1980
+ .cb-divider {
1981
+ position: relative;
1982
+ height: 1px
1983
+ }
1984
+
1985
+ .cb-divider:before {
1986
+ content: "";
1987
+ display: block;
1988
+ position: absolute;
1989
+ top: -20px;
1990
+ left: 0;
1991
+ right: 0;
1992
+ height: 40px
1993
+ }
1994
+
1995
+ .cb-divider:hover:before {
1996
+ top: -50px;
1997
+ height: 100px
1998
+ }
1999
+
2000
+ .cb-divider svg {
2001
+ position: absolute;
2002
+ top: -100px;
2003
+ left: 0;
2004
+ right: 0;
2005
+ width: 100%;
2006
+ height: 200px;
2007
+ pointer-events: none
2008
+ }
2009
+
2010
+ .cb-divider svg path {
2011
+ fill: none;
2012
+ stroke: currentColor;
2013
+ stroke-width: 1
2014
+ }
2015
+
2016
+ .cb-coin {
2017
+ position: relative;
2018
+ display: inline-block;
2019
+ height: .8em;
2020
+ width: .8em;
2021
+ margin: -.15em 0 0 .04em;
2022
+ vertical-align: middle
2023
+ }
2024
+
2025
+ .cb-coin.-sm {
2026
+ height: .75em;
2027
+ width: .75em
2028
+ }
2029
+
2030
+ .cb-coin-svg {
2031
+ position: absolute;
2032
+ top: 0;
2033
+ left: 0;
2034
+ right: 0;
2035
+ bottom: 0;
2036
+ background-color: #fff;
2037
+ background-image: url(../coin/1.svg);
2038
+ background-position: center center;
2039
+ background-repeat: no-repeat;
2040
+ border-radius: 50%;
2041
+ -webkit-animation: cb-fx-rotating-360 10s infinite linear;
2042
+ animation: cb-fx-rotating-360 10s infinite linear
2043
+ }
2044
+
2045
+ .cb-coin-svg.-v2 {
2046
+ background-image: url(../coin/2.svg)
2047
+ }
2048
+
2049
+ .cb-coin-ico {
2050
+ position: absolute;
2051
+ top: 50%;
2052
+ left: 50%;
2053
+ transform: translate(-50%, -50%);
2054
+ color: #000;
2055
+ font-size: .15em;
2056
+ line-height: 0
2057
+ }
2058
+
2059
+ .cb-coin-ico svg {
2060
+ margin: -.1em 0 0 0
2061
+ }
2062
+
2063
+ .cb-coin-stars {
2064
+ position: absolute;
2065
+ top: 50%;
2066
+ left: 50%;
2067
+ height: .37em;
2068
+ width: .37em;
2069
+ transform: translate(-50%, -50%);
2070
+ background-image: url(../coin/stars.svg);
2071
+ background-repeat: no-repeat;
2072
+ background-position: center center
2073
+ }
2074
+
2075
+ .cb-coin-video {
2076
+ position: absolute;
2077
+ top: 50%;
2078
+ left: 50%;
2079
+ height: .37em;
2080
+ width: .37em;
2081
+ transform: translate(-50%, -50%)
2082
+ }
2083
+
2084
+ .cb-coin-video video {
2085
+ width: 100%;
2086
+ height: 100%;
2087
+ vertical-align: top;
2088
+ -o-object-fit: cover;
2089
+ object-fit: cover
2090
+ }
2091
+
2092
+ .cb-coin-letter {
2093
+ position: absolute;
2094
+ opacity: 0
2095
+ }
2096
+
2097
+ .cb-intouch {
2098
+ display: none
2099
+ }
2100
+
2101
+ @media (min-width:1200px) {
2102
+ .cb-intouch {
2103
+ display: block;
2104
+ position: absolute;
2105
+ width: min(150px, 15rem);
2106
+ height: min(150px, 15rem);
2107
+ right: 5rem;
2108
+ bottom: 4rem;
2109
+ z-index: 99
2110
+ }
2111
+
2112
+ .cb-intouch:hover:before {
2113
+ content: "";
2114
+ display: block;
2115
+ position: absolute;
2116
+ top: -140px;
2117
+ left: -140px;
2118
+ right: -40px;
2119
+ bottom: -140px
2120
+ }
2121
+ }
2122
+
2123
+ .cb-intouch-border {
2124
+ position: absolute;
2125
+ top: 0;
2126
+ left: 0;
2127
+ right: 0;
2128
+ bottom: 0;
2129
+ transition: transform .4s
2130
+ }
2131
+
2132
+ @media (pointer:fine) {
2133
+ .cb-intouch:hover .cb-intouch-border {
2134
+ transform: scale(1.1)
2135
+ }
2136
+ }
2137
+
2138
+ .cb-intouch-text {
2139
+ position: absolute;
2140
+ top: 0;
2141
+ left: 0;
2142
+ right: 0;
2143
+ bottom: 0;
2144
+ -webkit-animation: cb-fx-rotating-360 15s infinite linear;
2145
+ animation: cb-fx-rotating-360 15s infinite linear
2146
+ }
2147
+
2148
+ .cb-intouch-video {
2149
+ position: absolute;
2150
+ top: 15%;
2151
+ left: 15%;
2152
+ right: 15%;
2153
+ bottom: 15%;
2154
+ border-radius: 50%
2155
+ }
2156
+
2157
+ .cb-intouch-video video {
2158
+ width: 100%;
2159
+ height: 100%;
2160
+ -o-object-fit: cover;
2161
+ object-fit: cover;
2162
+ border-radius: 50%;
2163
+ transition: transform .4s
2164
+ }
2165
+
2166
+ .cb-intouch:hover .cb-intouch-video video {
2167
+ transform: scale(1.05)
2168
+ }
2169
+
2170
+ .cb-intro {
2171
+ position: relative;
2172
+ z-index: 2;
2173
+ color: #fff;
2174
+ background: #121212
2175
+ }
2176
+
2177
+ .cb-intro-content {
2178
+ padding: 13rem 0 0 0
2179
+ }
2180
+
2181
+ @media (min-width:768px),
2182
+ (orientation:landscape) {
2183
+ .cb-intro-content {
2184
+ padding: 0
2185
+ }
2186
+ }
2187
+
2188
+ .cb-intro-body {
2189
+ position: relative;
2190
+ z-index: 1
2191
+ }
2192
+
2193
+ @media (min-width:768px),
2194
+ (orientation:landscape) {
2195
+ .cb-intro-body {
2196
+ display: flex;
2197
+ flex-direction: column;
2198
+ justify-content: center;
2199
+ height: 100vh;
2200
+ min-height: 80rem
2201
+ }
2202
+ }
2203
+
2204
+ .cb-intro-bottom {
2205
+ position: relative;
2206
+ contain: layout;
2207
+ transform: translateY(-8%)
2208
+ }
2209
+
2210
+ @media (min-width:768px),
2211
+ (orientation:landscape) {
2212
+ .cb-intro-bottom {
2213
+ max-width: 85%;
2214
+ margin-left: 5rem;
2215
+ transform: translateY(-50%)
2216
+ }
2217
+ }
2218
+
2219
+ .cb-intro-container {
2220
+ width: 100%
2221
+ }
2222
+
2223
+ .cb-intro-header h1 {
2224
+ font-weight: 400;
2225
+ font-size: 6.8rem;
2226
+ line-height: 90%;
2227
+ letter-spacing: -.03em;
2228
+ text-transform: uppercase;
2229
+ transform: translateZ(0)
2230
+ }
2231
+
2232
+ @media (min-width:768px),
2233
+ (orientation:landscape) {
2234
+ .cb-intro-header h1 {
2235
+ font-size: 19rem
2236
+ }
2237
+ }
2238
+
2239
+ .cb-intro-header h1 em {
2240
+ display: inline-block;
2241
+ overflow: hidden;
2242
+ padding: .1em 0;
2243
+ margin: -.1em 0;
2244
+ transform: translateZ(0)
2245
+ }
2246
+
2247
+ .cb-intro-header h1 span.-word {
2248
+ display: inline-block
2249
+ }
2250
+
2251
+ .cb-intro-header h1 span.-blink {
2252
+ -webkit-animation: cb-fx-blink backwards 1s steps(1) infinite;
2253
+ animation: cb-fx-blink backwards 1s steps(1) infinite
2254
+ }
2255
+
2256
+ .cb-intro-figure {
2257
+ margin: 0 auto;
2258
+ width: 345px;
2259
+ height: 487px
2260
+ }
2261
+
2262
+ @media (min-width:768px),
2263
+ (orientation:landscape) {
2264
+ .cb-intro-figure {
2265
+ width: auto;
2266
+ height: 53.2rem;
2267
+ max-width: 48.1rem;
2268
+ margin: 0 0 0 auto
2269
+ }
2270
+ }
2271
+
2272
+ .cb-intro-figure-media {
2273
+ position: relative;
2274
+ width: 100%;
2275
+ height: 100%;
2276
+ overflow: hidden;
2277
+ transform: translateZ(0);
2278
+ border-radius: 1000px
2279
+ }
2280
+
2281
+ .cb-intro-figure-media video {
2282
+ position: absolute;
2283
+ top: 0;
2284
+ left: 0;
2285
+ right: 0;
2286
+ bottom: 0;
2287
+ width: 100%;
2288
+ height: 100%;
2289
+ -o-object-fit: cover;
2290
+ object-fit: cover
2291
+ }
2292
+
2293
+ .cb-intro-details {
2294
+ position: absolute;
2295
+ top: 65vh;
2296
+ left: 1.5rem
2297
+ }
2298
+
2299
+ @media (min-width:768px),
2300
+ (orientation:landscape) {
2301
+ .cb-intro-details {
2302
+ top: auto;
2303
+ left: 5rem;
2304
+ bottom: 4rem
2305
+ }
2306
+ }
2307
+
2308
+ .cb-intro-detail {
2309
+ display: inline-block;
2310
+ font-weight: 500;
2311
+ font-size: 1.4rem;
2312
+ line-height: 110%;
2313
+ text-transform: uppercase
2314
+ }
2315
+
2316
+ @media (min-width:768px),
2317
+ (orientation:landscape) {
2318
+ .cb-intro-detail {
2319
+ font-size: 1.6rem
2320
+ }
2321
+ }
2322
+
2323
+ .cb-intro-detail:last-child {
2324
+ display: none
2325
+ }
2326
+
2327
+ @media (min-width:768px),
2328
+ (orientation:landscape) {
2329
+ .cb-intro-detail:last-child {
2330
+ display: inline-block;
2331
+ margin-left: 41rem
2332
+ }
2333
+ }
2334
+
2335
+ .cb-focused {
2336
+ position: relative;
2337
+ overflow: hidden;
2338
+ color: #fff;
2339
+ background: #121212
2340
+ }
2341
+
2342
+ .cb-focused-content {
2343
+ position: relative;
2344
+ padding: 10rem 0 11.3rem 0
2345
+ }
2346
+
2347
+ @media (min-width:768px),
2348
+ (orientation:landscape) {
2349
+ .cb-focused-content {
2350
+ padding: 5rem 0 20rem 0
2351
+ }
2352
+ }
2353
+
2354
+ .cb-focused-text {
2355
+ position: relative;
2356
+ font-weight: 500;
2357
+ font-size: 3.2rem;
2358
+ line-height: 100%
2359
+ }
2360
+
2361
+ @media (min-width:768px),
2362
+ (orientation:landscape) {
2363
+ .cb-focused-text {
2364
+ max-width: 120rem;
2365
+ font-weight: 400;
2366
+ font-size: 6.8rem
2367
+ }
2368
+ }
2369
+
2370
+ .cb-overview {
2371
+ position: relative;
2372
+ overflow: hidden
2373
+ }
2374
+
2375
+ .cb-overview.-inverse {
2376
+ color: #fff;
2377
+ background: #000
2378
+ }
2379
+
2380
+ .cb-overview.-fill {
2381
+ background: #8f8f8f
2382
+ }
2383
+
2384
+ .cb-overview.-gray {
2385
+ background: #8f8f8f
2386
+ }
2387
+
2388
+ .cb-overview-content {
2389
+ position: relative;
2390
+ padding: 8rem 0;
2391
+ z-index: 1
2392
+ }
2393
+
2394
+ @media (min-width:768px),
2395
+ (orientation:landscape) {
2396
+ .cb-overview-content {
2397
+ padding: 20rem 0
2398
+ }
2399
+ }
2400
+
2401
+ @media (min-width:768px),
2402
+ (orientation:landscape) {
2403
+ .cb-overview-content.-rt {
2404
+ padding-top: 18rem
2405
+ }
2406
+ }
2407
+
2408
+ .cb-overview-bg {
2409
+ position: absolute;
2410
+ top: 0;
2411
+ left: 0;
2412
+ right: 0;
2413
+ bottom: 0;
2414
+ width: 100%;
2415
+ height: 100%
2416
+ }
2417
+
2418
+ .cb-overview-bg-media {
2419
+ width: 100%;
2420
+ height: 100%
2421
+ }
2422
+
2423
+ .cb-overview-bg-media video {
2424
+ width: 100%;
2425
+ height: 100%;
2426
+ -o-object-fit: cover;
2427
+ object-fit: cover;
2428
+ -o-object-position: bottom center;
2429
+ object-position: bottom center
2430
+ }
2431
+
2432
+ .cb-overview-figure {
2433
+ position: relative;
2434
+ margin: 0 auto;
2435
+ max-width: 375px
2436
+ }
2437
+
2438
+ @media (min-width:768px),
2439
+ (orientation:landscape) {
2440
+ .cb-overview-figure {
2441
+ margin: 0 -5rem;
2442
+ max-width: none;
2443
+ padding-bottom: 43.286%
2444
+ }
2445
+ }
2446
+
2447
+ .cb-overview-figure-bg {
2448
+ position: absolute;
2449
+ top: 0;
2450
+ left: 0;
2451
+ right: 0;
2452
+ bottom: 0;
2453
+ margin: 0 auto;
2454
+ border-radius: 50%
2455
+ }
2456
+
2457
+ @media (min-width:768px),
2458
+ (orientation:landscape) {
2459
+ .cb-overview-figure-bg {
2460
+ border-radius: 1000px
2461
+ }
2462
+ }
2463
+
2464
+ .cb-overview-figure-bg.-v1 {
2465
+ background: #1b1b1b
2466
+ }
2467
+
2468
+ .cb-overview-figure-bg.-v2 {
2469
+ background: #f1f1f1
2470
+ }
2471
+
2472
+ .cb-overview-figure.-offsetable .cb-overview-figure-bg {
2473
+ will-change: transform;
2474
+ transition: border-radius 1.5s cubic-bezier(.16, 1, .3, 1), transform 1.5s cubic-bezier(.16, 1, .3, 1)
2475
+ }
2476
+
2477
+ @media (min-width:768px),
2478
+ (orientation:landscape) {
2479
+ .cb-overview-figure.-offsetted .cb-overview-figure-bg {
2480
+ transform: scaleX(.404) scale(.7);
2481
+ border-radius: 50%
2482
+ }
2483
+ }
2484
+
2485
+ .cb-overview-figure-media {
2486
+ position: relative;
2487
+ overflow: hidden;
2488
+ padding-bottom: 100%;
2489
+ transform: translateZ(0);
2490
+ border-radius: 50%
2491
+ }
2492
+
2493
+ @media (min-width:768px),
2494
+ (orientation:landscape) {
2495
+ .cb-overview-figure-media {
2496
+ position: absolute;
2497
+ top: 50%;
2498
+ left: 50%;
2499
+ width: 60.6rem;
2500
+ height: 60.6rem;
2501
+ margin: -30.3rem 0 0 -30.3rem;
2502
+ padding-bottom: 0
2503
+ }
2504
+ }
2505
+
2506
+ .cb-overview-figure-media.-sm {
2507
+ transform: scale(.85)
2508
+ }
2509
+
2510
+ .cb-overview-figure.-offsetable .cb-overview-figure-media {
2511
+ will-change: transform;
2512
+ transition: transform 1s cubic-bezier(.16, 1, .3, 1)
2513
+ }
2514
+
2515
+ .cb-overview-figure.-offsetable-opaque .cb-overview-figure-media {
2516
+ transition: transform 1s cubic-bezier(.16, 1, .3, 1), opacity .4s
2517
+ }
2518
+
2519
+ .cb-overview-figure.-offsetted .cb-overview-figure-media {
2520
+ transform: scale(.7) scale(.7)
2521
+ }
2522
+
2523
+ .cb-overview-figure.-offsetted.-offsetable-opaque .cb-overview-figure-media {
2524
+ opacity: .7
2525
+ }
2526
+
2527
+ .cb-overview-figure-media video {
2528
+ position: absolute;
2529
+ top: 0;
2530
+ left: 0;
2531
+ right: 0;
2532
+ bottom: 0;
2533
+ width: 100%;
2534
+ height: 100%;
2535
+ -o-object-fit: cover;
2536
+ object-fit: cover
2537
+ }
2538
+
2539
+ .cb-overview-reel {
2540
+ margin: 3.7rem 0 0 0;
2541
+ overflow: hidden
2542
+ }
2543
+
2544
+ @media (min-width:768px),
2545
+ (orientation:landscape) {
2546
+ .cb-overview-reel {
2547
+ margin: 0
2548
+ }
2549
+ }
2550
+
2551
+ .cb-overview-reel-wrap {
2552
+ display: flex;
2553
+ align-items: center
2554
+ }
2555
+
2556
+ .cb-overview-reel-item {
2557
+ display: flex;
2558
+ align-items: center;
2559
+ flex-shrink: 0;
2560
+ margin: 0 3rem
2561
+ }
2562
+
2563
+ @media (min-width:768px),
2564
+ (orientation:landscape) {
2565
+ .cb-overview-reel-item {
2566
+ margin: 0 4rem
2567
+ }
2568
+ }
2569
+
2570
+ .cb-overview-reel-item-figure {
2571
+ display: none
2572
+ }
2573
+
2574
+ @media (min-width:768px),
2575
+ (orientation:landscape) {
2576
+ .cb-overview-reel-item-figure {
2577
+ display: block;
2578
+ margin-right: 8rem;
2579
+ width: 50rem;
2580
+ flex-shrink: 0
2581
+ }
2582
+ }
2583
+
2584
+ .cb-overview-reel-item-figure-media {
2585
+ position: relative;
2586
+ padding-bottom: 64%;
2587
+ overflow: hidden;
2588
+ transform: translateZ(0);
2589
+ border-radius: 1000px
2590
+ }
2591
+
2592
+ .cb-overview-reel-item-figure-media video {
2593
+ position: absolute;
2594
+ top: 0;
2595
+ left: 0;
2596
+ right: 0;
2597
+ bottom: 0;
2598
+ width: 100%;
2599
+ height: 100%;
2600
+ transform: scale(1.01);
2601
+ -o-object-fit: cover;
2602
+ object-fit: cover
2603
+ }
2604
+
2605
+ .cb-overview-reel-item-title {
2606
+ font-weight: 400;
2607
+ font-size: 6.8rem;
2608
+ line-height: 85%;
2609
+ letter-spacing: -.03em;
2610
+ text-transform: uppercase
2611
+ }
2612
+
2613
+ @media (min-width:768px),
2614
+ (orientation:landscape) {
2615
+ .cb-overview-reel-item-title {
2616
+ font-size: 17.5rem
2617
+ }
2618
+ }
2619
+
2620
+ .cb-overview-reel-item-title em {
2621
+ font-family: "Gallery Modern", sans-serif;
2622
+ font-size: 110%;
2623
+ letter-spacing: normal
2624
+ }
2625
+
2626
+ .cb-overview-header {
2627
+ margin: 0 0 4rem 0
2628
+ }
2629
+
2630
+ @media (min-width:768px),
2631
+ (orientation:landscape) {
2632
+ .cb-overview-header {
2633
+ margin: 0 0 10rem 0
2634
+ }
2635
+ }
2636
+
2637
+ .cb-overview-header h2 {
2638
+ font-weight: 400;
2639
+ font-size: 5.2rem;
2640
+ line-height: 85%;
2641
+ letter-spacing: -.02em;
2642
+ text-transform: uppercase
2643
+ }
2644
+
2645
+ @media (min-width:768px),
2646
+ (orientation:landscape) {
2647
+ .cb-overview-header h2 {
2648
+ font-size: 17.5rem
2649
+ }
2650
+ }
2651
+
2652
+ .cb-overview-header h2 em {
2653
+ font-family: "Gallery Modern", sans-serif;
2654
+ font-size: 110%;
2655
+ letter-spacing: normal
2656
+ }
2657
+
2658
+ .cb-overview-header h2 span.-blink {
2659
+ -webkit-animation: cb-fx-blink backwards 1s steps(1) infinite;
2660
+ animation: cb-fx-blink backwards 1s steps(1) infinite
2661
+ }
2662
+
2663
+ .cb-overview-divider {
2664
+ margin: 3.8rem 0 2.5rem 0
2665
+ }
2666
+
2667
+ @media (min-width:768px),
2668
+ (orientation:landscape) {
2669
+ .cb-overview-divider {
2670
+ margin: 10rem 0 4.5rem 0
2671
+ }
2672
+ }
2673
+
2674
+ @media (min-width:768px),
2675
+ (orientation:landscape) {
2676
+ .cb-overview-grid {
2677
+ display: flex
2678
+ }
2679
+ }
2680
+
2681
+ .cb-overview-grid.-equal {
2682
+ display: block
2683
+ }
2684
+
2685
+ @media (min-width:1024px),
2686
+ (orientation:landscape) {
2687
+ .cb-overview-grid.-equal {
2688
+ display: flex;
2689
+ justify-content: space-between
2690
+ }
2691
+ }
2692
+
2693
+ @media (min-width:768px),
2694
+ (orientation:landscape) {
2695
+ .cb-overview-grid-col {
2696
+ flex-basis: 50%;
2697
+ min-width: 50%
2698
+ }
2699
+ }
2700
+
2701
+ @media (min-width:1024px) {
2702
+ .cb-overview-grid.-equal .cb-overview-grid-col {
2703
+ flex-basis: 50%;
2704
+ min-width: 50%
2705
+ }
2706
+ }
2707
+
2708
+ .cb-overview-grid-col.-left {
2709
+ margin: 0 0 3.5rem 0
2710
+ }
2711
+
2712
+ @media (min-width:768px),
2713
+ (orientation:landscape) {
2714
+ .cb-overview-grid-col.-left {
2715
+ flex-basis: 40%;
2716
+ min-width: 40%;
2717
+ margin: 0 0 5rem 0
2718
+ }
2719
+ }
2720
+
2721
+ @media (min-width:1024px) {
2722
+ .cb-overview-grid-col.-left {
2723
+ flex-basis: 50%;
2724
+ min-width: 50%;
2725
+ padding: 0 6rem 0 0;
2726
+ margin: 0
2727
+ }
2728
+ }
2729
+
2730
+ .cb-overview-icon {
2731
+ position: relative;
2732
+ display: inline-block;
2733
+ margin: 2.5rem 0 0 0;
2734
+ z-index: -1
2735
+ }
2736
+
2737
+ @media (min-width:768px),
2738
+ (orientation:landscape) {
2739
+ .cb-overview-icon {
2740
+ margin: 5rem 0 0 0
2741
+ }
2742
+ }
2743
+
2744
+ .cb-overview-icon:first-of-type {
2745
+ margin: 0
2746
+ }
2747
+
2748
+ .cb-overview-icon img,
2749
+ .cb-overview-icon svg,
2750
+ .cb-overview-icon video {
2751
+ width: 6rem;
2752
+ height: 6rem;
2753
+ -o-object-fit: cover;
2754
+ object-fit: cover
2755
+ }
2756
+
2757
+ @media (min-width:768px),
2758
+ (orientation:landscape) {
2759
+
2760
+ .cb-overview-icon img,
2761
+ .cb-overview-icon svg,
2762
+ .cb-overview-icon video {
2763
+ width: 6.4rem;
2764
+ height: 6.4rem
2765
+ }
2766
+ }
2767
+
2768
+ .cb-overview-icon.-rotating img,
2769
+ .cb-overview-icon.-rotating svg,
2770
+ .cb-overview-icon.-rotating video {
2771
+ -webkit-animation: cb-fx-rotating-360 5s infinite linear;
2772
+ animation: cb-fx-rotating-360 5s infinite linear
2773
+ }
2774
+
2775
+ .cb-overview-icon.-stroka svg>* {
2776
+ stroke-dasharray: 148 10;
2777
+ -webkit-animation: cb-overview-icon-stroka 5s infinite linear;
2778
+ animation: cb-overview-icon-stroka 5s infinite linear
2779
+ }
2780
+
2781
+ .cb-overview-icon.-stroka svg>:last-child {
2782
+ -webkit-animation-delay: .1s;
2783
+ animation-delay: .1s;
2784
+ animation-direction: reverse
2785
+ }
2786
+
2787
+ @-webkit-keyframes cb-overview-icon-stroka {
2788
+ 0% {
2789
+ stroke-dashoffset: 0;
2790
+ stroke-dasharray: 148 10
2791
+ }
2792
+
2793
+ 50% {
2794
+ stroke-dasharray: 135 30
2795
+ }
2796
+
2797
+ 100% {
2798
+ stroke-dashoffset: 157;
2799
+ stroke-dasharray: 148 10
2800
+ }
2801
+ }
2802
+
2803
+ @keyframes cb-overview-icon-stroka {
2804
+ 0% {
2805
+ stroke-dashoffset: 0;
2806
+ stroke-dasharray: 148 10
2807
+ }
2808
+
2809
+ 50% {
2810
+ stroke-dasharray: 135 30
2811
+ }
2812
+
2813
+ 100% {
2814
+ stroke-dashoffset: 157;
2815
+ stroke-dasharray: 148 10
2816
+ }
2817
+ }
2818
+
2819
+ .cb-overview-info {
2820
+ position: relative;
2821
+ margin: 6rem 0 0 0
2822
+ }
2823
+
2824
+ @media (min-width:768px),
2825
+ (orientation:landscape) {
2826
+ .cb-overview-info {
2827
+ margin: 8rem 0 0 0
2828
+ }
2829
+ }
2830
+
2831
+ .cb-overview-info:first-of-type {
2832
+ margin-top: 0
2833
+ }
2834
+
2835
+ .cb-overview-caption {
2836
+ margin: 0 0 2.4rem 0
2837
+ }
2838
+
2839
+ @media (min-width:768px),
2840
+ (orientation:landscape) {
2841
+ .cb-overview-caption {
2842
+ margin: 0 0 4.5rem 0
2843
+ }
2844
+ }
2845
+
2846
+ .cb-overview-caption h2,
2847
+ .cb-overview-caption h3 {
2848
+ font-weight: 500;
2849
+ font-size: 1.4rem;
2850
+ line-height: 110%;
2851
+ text-transform: uppercase
2852
+ }
2853
+
2854
+ @media (min-width:768px),
2855
+ (orientation:landscape) {
2856
+
2857
+ .cb-overview-caption h2,
2858
+ .cb-overview-caption h3 {
2859
+ font-size: 1.6rem
2860
+ }
2861
+ }
2862
+
2863
+ @media (min-width:768px),
2864
+ (orientation:landscape) {
2865
+ .cb-overview-caption.-offset {
2866
+ display: inline-block;
2867
+ position: absolute;
2868
+ top: .4rem;
2869
+ left: -2.5rem;
2870
+ margin: 0
2871
+ }
2872
+ }
2873
+
2874
+ @media (min-width:768px),
2875
+ (orientation:landscape) {
2876
+ .cb-overview-caption.-offset {
2877
+ top: 1.2rem;
2878
+ left: -4rem
2879
+ }
2880
+ }
2881
+
2882
+ @media (min-width:768px),
2883
+ (orientation:landscape) {
2884
+
2885
+ .cb-overview-caption.-offset h2,
2886
+ .cb-overview-caption.-offset h3 {
2887
+ position: relative;
2888
+ left: -100%
2889
+ }
2890
+ }
2891
+
2892
+ .cb-overview-text {
2893
+ opacity: .95;
2894
+ font-weight: 500;
2895
+ font-size: 2rem;
2896
+ line-height: 120%
2897
+ }
2898
+
2899
+ @media (min-width:768px),
2900
+ (orientation:landscape) {
2901
+ .cb-overview-text {
2902
+ font-size: 3.2rem
2903
+ }
2904
+ }
2905
+
2906
+ .cb-overview-text p {
2907
+ margin-bottom: 1em
2908
+ }
2909
+
2910
+ .cb-overview-text p:last-of-type {
2911
+ margin-bottom: 0
2912
+ }
2913
+
2914
+ .cb-overview-tags {
2915
+ margin: -.4rem
2916
+ }
2917
+
2918
+ @media (min-width:768px),
2919
+ (orientation:landscape) {
2920
+ .cb-overview-tags {
2921
+ max-width: 70%;
2922
+ margin: -.7rem
2923
+ }
2924
+ }
2925
+
2926
+ .cb-overview-grid.-equal .cb-overview-tags {
2927
+ max-width: none
2928
+ }
2929
+
2930
+ .cb-overview-tag {
2931
+ display: inline-block;
2932
+ padding: .4rem 1rem;
2933
+ margin: .4rem;
2934
+ border: 1px solid;
2935
+ border-radius: 49px;
2936
+ font-weight: 500;
2937
+ font-size: 20px;
2938
+ line-height: 110%;
2939
+ text-transform: uppercase
2940
+ }
2941
+
2942
+ @media (min-width:768px),
2943
+ (orientation:landscape) {
2944
+ .cb-overview-tag {
2945
+ padding: .8rem 1.5rem;
2946
+ margin: .7rem;
2947
+ font-size: 2.1rem
2948
+ }
2949
+ }
2950
+
2951
+ .cb-overview-spacer {
2952
+ padding-bottom: 70%
2953
+ }
2954
+
2955
+ @media (min-width:768px),
2956
+ (orientation:landscape) {
2957
+ .cb-overview-spacer {
2958
+ padding-bottom: 20%
2959
+ }
2960
+ }
2961
+
2962
+ .cb-greeting {
2963
+ position: relative;
2964
+ overflow: hidden;
2965
+ background: #96C1C4
2966
+ }
2967
+
2968
+ .cb-greeting-bg {
2969
+ position: absolute;
2970
+ top: 0;
2971
+ left: 0;
2972
+ right: 0;
2973
+ bottom: 0;
2974
+ width: 100%;
2975
+ height: 100%
2976
+ }
2977
+
2978
+ .cb-greeting-bg-media {
2979
+ position: absolute;
2980
+ top: 0;
2981
+ left: 0;
2982
+ right: 0;
2983
+ bottom: 0;
2984
+ width: 100%;
2985
+ height: 100%
2986
+ }
2987
+
2988
+ .cb-greeting-bg-media img {
2989
+ height: 100%
2990
+ }
2991
+
2992
+ .cb-greeting-content {
2993
+ padding: 8rem 0
2994
+ }
2995
+
2996
+ @media (min-width:768px),
2997
+ (orientation:landscape) {
2998
+ .cb-greeting-content {
2999
+ padding: 20rem 0
3000
+ }
3001
+ }
3002
+
3003
+ .cb-greeting-header h2 {
3004
+ font-weight: 400;
3005
+ font-size: 5.8rem;
3006
+ line-height: 89%;
3007
+ letter-spacing: -.03em;
3008
+ text-transform: uppercase
3009
+ }
3010
+
3011
+ @media (min-width:768px),
3012
+ (orientation:landscape) {
3013
+ .cb-greeting-header h2 {
3014
+ font-size: 19rem
3015
+ }
3016
+ }
3017
+
3018
+ .cb-greeting-text {
3019
+ margin: 3.8rem 0 0 0;
3020
+ font-weight: 500;
3021
+ font-size: 2rem;
3022
+ line-height: 120%
3023
+ }
3024
+
3025
+ @media (min-width:768px),
3026
+ (orientation:landscape) {
3027
+ .cb-greeting-text {
3028
+ max-width: 66.2rem;
3029
+ margin-top: 12rem;
3030
+ margin-left: auto;
3031
+ font-size: 3.2rem
3032
+ }
3033
+ }
3034
+
3035
+ .cb-showcase {
3036
+ overflow: hidden;
3037
+ color: #fff;
3038
+ background: #000
3039
+ }
3040
+
3041
+ .cb-showcase-content {
3042
+ padding: 14rem 0
3043
+ }
3044
+
3045
+ @media (min-width:1024px) {
3046
+ .cb-showcase-content {
3047
+ padding: 25rem 0
3048
+ }
3049
+ }
3050
+
3051
+ .cb-showcase-content.-cb {
3052
+ padding-bottom: 0
3053
+ }
3054
+
3055
+ .cb-showcase-header h2 {
3056
+ font-size: 5.4rem;
3057
+ line-height: 110%;
3058
+ letter-spacing: -.03em;
3059
+ text-transform: uppercase;
3060
+ white-space: nowrap
3061
+ }
3062
+
3063
+ @media (min-width:768px),
3064
+ (orientation:landscape) {
3065
+ .cb-showcase-header h2 {
3066
+ font-size: 17.5rem
3067
+ }
3068
+ }
3069
+
3070
+ .cb-showcase-header h2 em {
3071
+ font-family: "Gallery Modern", sans-serif;
3072
+ font-size: 105%;
3073
+ letter-spacing: normal
3074
+ }
3075
+
3076
+ @media (min-width:768px),
3077
+ (orientation:landscape) {
3078
+ .cb-showcase-header h2 em {
3079
+ font-size: 110%
3080
+ }
3081
+ }
3082
+
3083
+ .cb-showcase-header h2 video {
3084
+ position: relative;
3085
+ top: -.5vw;
3086
+ width: 7.56rem;
3087
+ height: 5.58rem;
3088
+ overflow: hidden;
3089
+ transform: translateZ(0);
3090
+ border-radius: 1000px;
3091
+ -o-object-fit: cover;
3092
+ object-fit: cover
3093
+ }
3094
+
3095
+ @media (min-width:768px),
3096
+ (orientation:landscape) {
3097
+ .cb-showcase-header h2 video {
3098
+ width: 28.1rem;
3099
+ height: 20.7rem
3100
+ }
3101
+ }
3102
+
3103
+ .cb-showcase-items {
3104
+ margin: -.3rem 0;
3105
+ padding: 14rem 0 0 0
3106
+ }
3107
+
3108
+ @media (min-width:768px),
3109
+ (orientation:landscape) {
3110
+ .cb-showcase-items {
3111
+ padding: 29.6rem 0 0 0;
3112
+ margin: -1rem 0
3113
+ }
3114
+ }
3115
+
3116
+ .cb-showcase-item {
3117
+ position: relative;
3118
+ display: flex;
3119
+ align-items: center;
3120
+ height: 37.5rem;
3121
+ margin: .3rem 0;
3122
+ overflow: hidden;
3123
+ transform: translateZ(0);
3124
+ border-radius: 3rem;
3125
+ text-decoration: none
3126
+ }
3127
+
3128
+ @media (min-width:768px),
3129
+ (orientation:landscape) {
3130
+ .cb-showcase-item {
3131
+ margin: 1rem 0;
3132
+ height: 72.3rem;
3133
+ border-radius: 6rem
3134
+ }
3135
+ }
3136
+
3137
+ .cb-showcase-item-bg {
3138
+ position: absolute;
3139
+ top: 0;
3140
+ left: 0;
3141
+ right: 0;
3142
+ bottom: 0;
3143
+ height: 100%;
3144
+ width: 100%;
3145
+ transform: translateZ(0);
3146
+ border-radius: inherit
3147
+ }
3148
+
3149
+ .cb-showcase-item-bg-media {
3150
+ height: 100%;
3151
+ width: 100%
3152
+ }
3153
+
3154
+ .cb-showcase-item-bg-media video {
3155
+ height: 100%;
3156
+ width: 100%;
3157
+ -o-object-fit: cover;
3158
+ object-fit: cover
3159
+ }
3160
+
3161
+ .cb-showcase-item-ico,
3162
+ .cb-showcase-item-title {
3163
+ display: inline-block;
3164
+ font-size: 7.2rem;
3165
+ line-height: 110%;
3166
+ letter-spacing: -.03em;
3167
+ text-transform: uppercase
3168
+ }
3169
+
3170
+ @media (min-width:768px),
3171
+ (orientation:landscape) {
3172
+
3173
+ .cb-showcase-item-ico,
3174
+ .cb-showcase-item-title {
3175
+ font-size: 19rem
3176
+ }
3177
+ }
3178
+
3179
+ .cb-showcase-item-ico {
3180
+ padding-left: 1rem
3181
+ }
3182
+
3183
+ @media (min-width:768px),
3184
+ (orientation:landscape) {
3185
+ .cb-showcase-item-ico {
3186
+ padding-left: 5rem
3187
+ }
3188
+ }
3189
+
3190
+ .cb-showcase-item-reel {
3191
+ position: relative
3192
+ }
3193
+
3194
+ .cb-showcase-item-reel-wrap {
3195
+ display: flex
3196
+ }
3197
+
3198
+ .cb-showcase-item-reel-item {
3199
+ margin: 0 1rem;
3200
+ flex-shrink: 0
3201
+ }
3202
+
3203
+ @media (min-width:768px),
3204
+ (orientation:landscape) {
3205
+ .cb-showcase-item-reel-item {
3206
+ margin: 0 3rem
3207
+ }
3208
+ }
3209
+
3210
+ .cb-brandreel {
3211
+ color: #fff;
3212
+ background: #000
3213
+ }
3214
+
3215
+ .cb-brandreel-content {
3216
+ padding: 8rem 0 10rem 0
3217
+ }
3218
+
3219
+ @media (min-width:768px),
3220
+ (orientation:landscape) {
3221
+ .cb-brandreel-content {
3222
+ padding: 20rem 0
3223
+ }
3224
+ }
3225
+
3226
+ @media (min-width:768px),
3227
+ (orientation:landscape) {
3228
+ .cb-brandreel-grid {
3229
+ display: flex
3230
+ }
3231
+ }
3232
+
3233
+ @media (min-width:768px),
3234
+ (orientation:landscape) {
3235
+ .cb-brandreel-grid-col {
3236
+ flex: 1
3237
+ }
3238
+ }
3239
+
3240
+ .cb-brandreel-grid-col.-left {
3241
+ padding: 0 5rem 0 0
3242
+ }
3243
+
3244
+ @media (min-width:768px),
3245
+ (orientation:landscape) {
3246
+ .cb-brandreel-grid-col.-left {
3247
+ padding: 0;
3248
+ text-align: right
3249
+ }
3250
+ }
3251
+
3252
+ .cb-brandreel-figure {
3253
+ display: inline-block;
3254
+ width: 13.5rem;
3255
+ height: 13.5rem
3256
+ }
3257
+
3258
+ @media (min-width:768px),
3259
+ (orientation:landscape) {
3260
+ .cb-brandreel-figure {
3261
+ width: 19.1rem;
3262
+ height: 19.1rem;
3263
+ margin-top: -9rem;
3264
+ margin-right: 4.2rem
3265
+ }
3266
+ }
3267
+
3268
+ .cb-brandreel-figure-media {
3269
+ height: 100%;
3270
+ width: 100%
3271
+ }
3272
+
3273
+ .cb-brandreel-figure-media video {
3274
+ height: 100%;
3275
+ width: 100%;
3276
+ -o-object-fit: cover;
3277
+ object-fit: cover
3278
+ }
3279
+
3280
+ .cb-brandreel-text {
3281
+ font-size: 3rem;
3282
+ line-height: 120%;
3283
+ letter-spacing: -.02em;
3284
+ text-transform: uppercase
3285
+ }
3286
+
3287
+ @media (min-width:768px),
3288
+ (orientation:landscape) {
3289
+ .cb-brandreel-text {
3290
+ font-weight: 500;
3291
+ font-size: 4.6rem
3292
+ }
3293
+ }
3294
+
3295
+ .cb-brandreel-text em {
3296
+ color: #96C1C4
3297
+ }
3298
+
3299
+ .cb-brandreel-divider {
3300
+ margin: 3.8rem 0 2.5rem 0
3301
+ }
3302
+
3303
+ @media (min-width:768px),
3304
+ (orientation:landscape) {
3305
+ .cb-brandreel-divider {
3306
+ margin: 10rem 0 4.5rem 0
3307
+ }
3308
+ }
3309
+
3310
+ .cb-brandreel-reels {
3311
+ margin: -4.5rem 0;
3312
+ padding: 4.5rem 0 0 0
3313
+ }
3314
+
3315
+ @media (min-width:768px),
3316
+ (orientation:landscape) {
3317
+ .cb-brandreel-reels {
3318
+ margin: -6.5rem 0;
3319
+ padding: 8.8rem 0 0 0
3320
+ }
3321
+ }
3322
+
3323
+ .cb-brandreel-reel {
3324
+ margin: 4.5rem 0
3325
+ }
3326
+
3327
+ @media (min-width:768px),
3328
+ (orientation:landscape) {
3329
+ .cb-brandreel-reel {
3330
+ margin: 6.5rem 0
3331
+ }
3332
+ }
3333
+
3334
+ .cb-brandreel-reel-wrap {
3335
+ display: flex;
3336
+ align-items: center
3337
+ }
3338
+
3339
+ .cb-brandreel-reel-item {
3340
+ padding: 0 4rem;
3341
+ flex-shrink: 0
3342
+ }
3343
+
3344
+ @media (min-width:768px),
3345
+ (orientation:landscape) {
3346
+ .cb-brandreel-reel-item {
3347
+ padding: 0 7.7rem
3348
+ }
3349
+ }
3350
+
3351
+ .cb-brandreel-reel-item.-mobile img {
3352
+ width: 6.5rem;
3353
+ height: 2.34rem
3354
+ }
3355
+
3356
+ @media (min-width:768px),
3357
+ (orientation:landscape) {
3358
+ .cb-brandreel-reel-item.-mobile img {
3359
+ width: 10rem;
3360
+ height: 3.6rem
3361
+ }
3362
+ }
3363
+
3364
+ .cb-brandreel-reel-item.-swift img {
3365
+ width: 7.995rem;
3366
+ height: 2.47rem
3367
+ }
3368
+
3369
+ @media (min-width:768px),
3370
+ (orientation:landscape) {
3371
+ .cb-brandreel-reel-item.-swift img {
3372
+ width: 12.3rem;
3373
+ height: 3.8rem
3374
+ }
3375
+ }
3376
+
3377
+ .cb-brandreel-reel-item.-kotlin img {
3378
+ width: 7.475rem;
3379
+ height: 1.625rem
3380
+ }
3381
+
3382
+ @media (min-width:768px),
3383
+ (orientation:landscape) {
3384
+ .cb-brandreel-reel-item.-kotlin img {
3385
+ width: 11.5rem;
3386
+ height: 2.5rem
3387
+ }
3388
+ }
3389
+
3390
+ .cb-brandreel-reel-item.-react img {
3391
+ width: 3.835rem;
3392
+ height: 3.445rem
3393
+ }
3394
+
3395
+ @media (min-width:768px),
3396
+ (orientation:landscape) {
3397
+ .cb-brandreel-reel-item.-react img {
3398
+ width: 5.9rem;
3399
+ height: 5.3rem
3400
+ }
3401
+ }
3402
+
3403
+ .cb-brandreel-reel-item.-java img {
3404
+ width: 7.15rem;
3405
+ height: 3.835rem
3406
+ }
3407
+
3408
+ @media (min-width:768px),
3409
+ (orientation:landscape) {
3410
+ .cb-brandreel-reel-item.-java img {
3411
+ width: 11rem;
3412
+ height: 5.9rem
3413
+ }
3414
+ }
3415
+
3416
+ .cb-brandreel-reel-item.-web img {
3417
+ width: 5.005rem;
3418
+ height: 2.405rem
3419
+ }
3420
+
3421
+ @media (min-width:768px),
3422
+ (orientation:landscape) {
3423
+ .cb-brandreel-reel-item.-web img {
3424
+ width: 7.7rem;
3425
+ height: 3.7rem
3426
+ }
3427
+ }
3428
+
3429
+ .cb-brandreel-reel-item.-js img {
3430
+ width: 3.64rem;
3431
+ height: 3.64rem
3432
+ }
3433
+
3434
+ @media (min-width:768px),
3435
+ (orientation:landscape) {
3436
+ .cb-brandreel-reel-item.-js img {
3437
+ width: 5.6rem;
3438
+ height: 5.6rem
3439
+ }
3440
+ }
3441
+
3442
+ .cb-brandreel-reel-item.-nodejs img {
3443
+ width: 6.305rem;
3444
+ height: 3.835rem
3445
+ }
3446
+
3447
+ @media (min-width:768px),
3448
+ (orientation:landscape) {
3449
+ .cb-brandreel-reel-item.-nodejs img {
3450
+ width: 9.7rem;
3451
+ height: 5.9rem
3452
+ }
3453
+ }
3454
+
3455
+ .cb-brandreel-reel-item.-html img {
3456
+ width: 3.64rem;
3457
+ height: 3.64rem
3458
+ }
3459
+
3460
+ @media (min-width:768px),
3461
+ (orientation:landscape) {
3462
+ .cb-brandreel-reel-item.-html img {
3463
+ width: 5.6rem;
3464
+ height: 5.6rem
3465
+ }
3466
+ }
3467
+
3468
+ .cb-brandreel-reel-item.-redis img {
3469
+ width: 7.93rem;
3470
+ height: 2.535rem
3471
+ }
3472
+
3473
+ @media (min-width:768px),
3474
+ (orientation:landscape) {
3475
+ .cb-brandreel-reel-item.-redis img {
3476
+ width: 12.2rem;
3477
+ height: 3.9rem
3478
+ }
3479
+ }
3480
+
3481
+ .cb-postcard {
3482
+ position: relative;
3483
+ color: #fff
3484
+ }
3485
+
3486
+ .cb-postcard-bg {
3487
+ position: absolute;
3488
+ top: 0;
3489
+ left: 0;
3490
+ right: 0;
3491
+ bottom: 5rem;
3492
+ background: #000
3493
+ }
3494
+
3495
+ @media (min-width:768px),
3496
+ (orientation:landscape) {
3497
+ .cb-postcard-bg {
3498
+ bottom: 0
3499
+ }
3500
+ }
3501
+
3502
+ .cb-postcard-content {
3503
+ position: relative;
3504
+ padding: 8rem 0 0 0
3505
+ }
3506
+
3507
+ @media (min-width:768px),
3508
+ (orientation:landscape) {
3509
+ .cb-postcard-content {
3510
+ padding: 20rem 0
3511
+ }
3512
+ }
3513
+
3514
+ .cb-postcard-content.-ct {
3515
+ padding-top: 0
3516
+ }
3517
+
3518
+ .cb-postcard-container {
3519
+ text-align: center
3520
+ }
3521
+
3522
+ .cb-postcard-items {
3523
+ margin: -.3rem 0
3524
+ }
3525
+
3526
+ @media (min-width:768px),
3527
+ (orientation:landscape) {
3528
+ .cb-postcard-items {
3529
+ display: grid;
3530
+ grid-template-columns: auto auto;
3531
+ grid-gap: 2rem;
3532
+ justify-content: center
3533
+ }
3534
+ }
3535
+
3536
+ .cb-postcard-item {
3537
+ position: relative;
3538
+ height: 52rem;
3539
+ margin: .3rem 0;
3540
+ text-align: left;
3541
+ perspective: 4000px;
3542
+ cursor: pointer;
3543
+ color: #000
3544
+ }
3545
+
3546
+ @media (min-width:768px),
3547
+ (orientation:landscape) {
3548
+ .cb-postcard-item {
3549
+ display: inline-block;
3550
+ width: 56rem;
3551
+ height: 68.5rem
3552
+ }
3553
+ }
3554
+
3555
+ .cb-postcard-item.-open {
3556
+ z-index: 10
3557
+ }
3558
+
3559
+ .cb-postcard-item.-inverse {
3560
+ color: #fff
3561
+ }
3562
+
3563
+ .cb-postcard-item-back,
3564
+ .cb-postcard-item-front {
3565
+ position: absolute;
3566
+ top: 0;
3567
+ left: 0;
3568
+ right: 0;
3569
+ bottom: 0;
3570
+ padding: 4.5rem 2.5rem;
3571
+ overflow: hidden;
3572
+ -webkit-backface-visibility: hidden;
3573
+ backface-visibility: hidden;
3574
+ border-radius: 30px;
3575
+ transition: transform 1.5s cubic-bezier(.34, 1.56, .64, 1)
3576
+ }
3577
+
3578
+ @media (min-width:768px),
3579
+ (orientation:landscape) {
3580
+
3581
+ .cb-postcard-item-back,
3582
+ .cb-postcard-item-front {
3583
+ padding: 5.5rem 4rem
3584
+ }
3585
+ }
3586
+
3587
+ .cb-postcard-item-back {
3588
+ transform: rotateY(180deg);
3589
+ color: #fff;
3590
+ background: #232325
3591
+ }
3592
+
3593
+ .cb-postcard-item.-open .cb-postcard-item-back {
3594
+ transform: rotateY(0)
3595
+ }
3596
+
3597
+ .cb-postcard-item.-open .cb-postcard-item-front {
3598
+ transform: rotateY(-180deg)
3599
+ }
3600
+
3601
+ .cb-postcard-item-bg {
3602
+ position: absolute;
3603
+ top: 0;
3604
+ left: 0;
3605
+ right: 0;
3606
+ bottom: 0;
3607
+ height: 100%;
3608
+ width: 100%
3609
+ }
3610
+
3611
+ .cb-postcard-item-bg img {
3612
+ height: 100%;
3613
+ width: 100%;
3614
+ -o-object-fit: cover;
3615
+ object-fit: cover
3616
+ }
3617
+
3618
+ .cb-postcard-item-title {
3619
+ position: relative;
3620
+ font-weight: 400;
3621
+ font-size: 3.2rem;
3622
+ line-height: 110%;
3623
+ text-transform: uppercase
3624
+ }
3625
+
3626
+ @media (min-width:768px),
3627
+ (orientation:landscape) {
3628
+ .cb-postcard-item-title {
3629
+ font-weight: 500;
3630
+ font-size: 4rem
3631
+ }
3632
+ }
3633
+
3634
+ .cb-postcard-item-tags {
3635
+ position: relative;
3636
+ margin: 0 -.3rem;
3637
+ padding-top: 1.5rem
3638
+ }
3639
+
3640
+ @media (min-width:768px),
3641
+ (orientation:landscape) {
3642
+ .cb-postcard-item-tags {
3643
+ margin: 0 -.5rem;
3644
+ padding-top: 2rem
3645
+ }
3646
+ }
3647
+
3648
+ .cb-postcard-item-tag {
3649
+ display: inline-block;
3650
+ margin: 0 .3rem;
3651
+ padding: .3rem .8rem;
3652
+ border: 1px solid;
3653
+ border-radius: 1000px;
3654
+ font-weight: 500;
3655
+ font-size: 1.7rem;
3656
+ line-height: 110%;
3657
+ text-transform: uppercase
3658
+ }
3659
+
3660
+ @media (min-width:768px),
3661
+ (orientation:landscape) {
3662
+ .cb-postcard-item-tag {
3663
+ margin: 0 0.5rem 0.9rem;
3664
+ font-size: 2rem
3665
+ }
3666
+ .cb-postcard-item-tag + .cb-postcard-item-tag{
3667
+ margin: 0 0.5rem 0.9rem;
3668
+ font-size: 2rem
3669
+ }
3670
+ .cb-postcard-item-tag:last-child{
3671
+ margin: 0 0.5rem;
3672
+ font-size: 2rem
3673
+ }
3674
+ }
3675
+
3676
+ .cb-postcard-item-arr {
3677
+ position: relative;
3678
+ display: flex;
3679
+ align-items: center;
3680
+ justify-content: center;
3681
+ width: 6.7rem;
3682
+ height: 6.7rem;
3683
+ margin: 3.5rem 0 0 0;
3684
+ border-radius: 50%;
3685
+ border: 1px solid
3686
+ }
3687
+
3688
+ @media (min-width:768px),
3689
+ (orientation:landscape) {
3690
+ .cb-postcard-item-arr {
3691
+ height: 10rem;
3692
+ width: 10rem;
3693
+ margin: 4.8rem 0 0 0
3694
+ }
3695
+ }
3696
+
3697
+ @media (pointer:fine) {
3698
+ .cb-postcard-item-arr {
3699
+ display: none
3700
+ }
3701
+ }
3702
+
3703
+ .cb-postcard-item-back .cb-postcard-item-arr {
3704
+ transform: rotate(-90deg)
3705
+ }
3706
+
3707
+ .cb-postcard-item-arr svg {
3708
+ font-size: 1.2rem;
3709
+ line-height: 0
3710
+ }
3711
+
3712
+ @media (min-width:768px),
3713
+ (orientation:landscape) {
3714
+ .cb-postcard-item-arr svg {
3715
+ font-size: 1.8rem
3716
+ }
3717
+ }
3718
+
3719
+ .cb-postcard-item-text {
3720
+ margin: 5rem 0 0 0;
3721
+ font-weight: 500;
3722
+ font-size: 2rem;
3723
+ line-height: 120%
3724
+ }
3725
+
3726
+ @media (min-width:768px),
3727
+ (orientation:landscape) {
3728
+ .cb-postcard-item-text {
3729
+ font-size: 2.8rem
3730
+ }
3731
+ }
3732
+
3733
+ .cb-achievement {
3734
+ overflow: hidden
3735
+ }
3736
+
3737
+ .cb-achievement-content {
3738
+ padding: 8rem 0
3739
+ }
3740
+
3741
+ @media (min-width:768px),
3742
+ (orientation:landscape) {
3743
+ .cb-achievement-content {
3744
+ padding: 20rem 0
3745
+ }
3746
+ }
3747
+
3748
+ @media (max-width:1023px) {
3749
+ .cb-achievement-container.-xs {
3750
+ padding: 0 1.5rem
3751
+ }
3752
+ }
3753
+
3754
+ .cb-achievement-text {
3755
+ font-weight: 500;
3756
+ font-size: 3.2rem;
3757
+ line-height: 120%;
3758
+ letter-spacing: -.02em;
3759
+ text-transform: uppercase
3760
+ }
3761
+
3762
+ @media (min-width:768px),
3763
+ (orientation:landscape) {
3764
+ .cb-achievement-text {
3765
+ max-width: 74.2rem;
3766
+ margin: 0 auto;
3767
+ font-size: 5rem;
3768
+ text-align: center
3769
+ }
3770
+ }
3771
+
3772
+ .cb-achievement-text em {
3773
+ opacity: .3
3774
+ }
3775
+
3776
+ .cb-achievement-items {
3777
+ margin: -8rem 0;
3778
+ padding: 8rem 0 0 0
3779
+ }
3780
+
3781
+ @media (min-width:768px),
3782
+ (orientation:landscape) {
3783
+ .cb-achievement-items {
3784
+ margin: -2rem 0;
3785
+ padding: 12rem 0 0 0
3786
+ }
3787
+ }
3788
+
3789
+ .cb-achievement-item {
3790
+ position: relative;
3791
+ margin: 8rem 0
3792
+ }
3793
+
3794
+ @media (min-width:768px),
3795
+ (orientation:landscape) {
3796
+ .cb-achievement-item {
3797
+ display: flex;
3798
+ align-items: center;
3799
+ margin: 2rem auto;
3800
+ height: 63.4rem;
3801
+ transform: translateZ(0)
3802
+ }
3803
+ }
3804
+
3805
+ @media (min-width:768px),
3806
+ (orientation:landscape) {
3807
+ .cb-achievement-item.-inverse {
3808
+ color: #fff
3809
+ }
3810
+ }
3811
+
3812
+ .cb-achievement-item-bg {
3813
+ position: relative;
3814
+ padding-bottom: 100%;
3815
+ overflow: hidden;
3816
+ transform: translateZ(0);
3817
+ border-radius: 10000px
3818
+ }
3819
+
3820
+ @media (min-width:768px),
3821
+ (orientation:landscape) {
3822
+ .cb-achievement-item-bg {
3823
+ position: absolute;
3824
+ top: 0;
3825
+ left: 0;
3826
+ right: 0;
3827
+ bottom: 0;
3828
+ margin: 0 auto;
3829
+ padding: 0
3830
+ }
3831
+ }
3832
+
3833
+ .cb-achievement-item.-inverse .cb-achievement-item-bg {
3834
+ background: #000
3835
+ }
3836
+
3837
+ .cb-achievement-item.-tertiary .cb-achievement-item-bg {
3838
+ background: #96C1C4
3839
+ }
3840
+
3841
+ .cb-achievement-item.-opaque .cb-achievement-item-bg {
3842
+ background: #f1f1f1
3843
+ }
3844
+
3845
+ @media (min-width:768px),
3846
+ (orientation:landscape) {
3847
+ .cb-achievement-item-info {
3848
+ position: relative;
3849
+ margin-left: 22.7rem
3850
+ }
3851
+ }
3852
+
3853
+ .cb-achievement-item-title {
3854
+ display: none;
3855
+ font-size: 10.2rem;
3856
+ line-height: 110%;
3857
+ letter-spacing: -.03em;
3858
+ text-transform: uppercase
3859
+ }
3860
+
3861
+ @media (min-width:768px),
3862
+ (orientation:landscape) {
3863
+ .cb-achievement-item-title {
3864
+ display: block;
3865
+ font-size: 19rem
3866
+ }
3867
+ }
3868
+
3869
+ .cb-achievement-item-text {
3870
+ margin: 3.2rem 0 0 0;
3871
+ font-weight: 500;
3872
+ font-size: 2rem;
3873
+ line-height: 120%;
3874
+ letter-spacing: -.03em
3875
+ }
3876
+
3877
+ @media (min-width:768px),
3878
+ (orientation:landscape) {
3879
+ .cb-achievement-item-text {
3880
+ max-width: 57.6rem;
3881
+ margin: 3.2rem 0 0 0;
3882
+ font-size: 3.2rem;
3883
+ letter-spacing: normal
3884
+ }
3885
+ }
3886
+
3887
+ .cb-achievement-item-text p {
3888
+ margin-bottom: 1em
3889
+ }
3890
+
3891
+ .cb-achievement-item-text p:last-of-type {
3892
+ margin-bottom: 0
3893
+ }
3894
+
3895
+ .cb-achievement-item-figure {
3896
+ position: absolute;
3897
+ top: 0;
3898
+ left: 0;
3899
+ right: 0;
3900
+ bottom: 0;
3901
+ transform: translateZ(0);
3902
+ border-radius: 50%
3903
+ }
3904
+
3905
+ @media (min-width:768px),
3906
+ (orientation:landscape) {
3907
+ .cb-achievement-item-figure {
3908
+ top: 0;
3909
+ right: 12rem;
3910
+ left: auto;
3911
+ bottom: 0;
3912
+ width: 63.4rem;
3913
+ border-radius: 0
3914
+ }
3915
+ }
3916
+
3917
+ .cb-achievement-item.-inverse .cb-achievement-item-figure {
3918
+ background: #000
3919
+ }
3920
+
3921
+ .cb-achievement-item.-tertiary .cb-achievement-item-figure {
3922
+ /*background: #96C1C4*/
3923
+ }
3924
+
3925
+ .cb-achievement-item.-opaque .cb-achievement-item-figure {
3926
+ background: #f1f1f1
3927
+ }
3928
+
3929
+ .cb-achievement-item-figure-media {
3930
+ position: absolute;
3931
+ top: 0;
3932
+ left: 0;
3933
+ right: 0;
3934
+ bottom: 0;
3935
+ width: 100%;
3936
+ height: 100%
3937
+ }
3938
+
3939
+ .cb-achievement-item-figure-media video {
3940
+ width: 100%;
3941
+ height: 100%;
3942
+ -o-object-fit: cover;
3943
+ object-fit: cover;
3944
+ -o-object-position: center center;
3945
+ object-position: center center
3946
+ }
3947
+
3948
+ .cb-outro {
3949
+ overflow: hidden;
3950
+ color: #fff;
3951
+ background: #000
3952
+ }
3953
+
3954
+ .cb-outro-content {
3955
+ padding: 8rem 0
3956
+ }
3957
+
3958
+ @media (min-width:768px),
3959
+ (orientation:landscape) {
3960
+ .cb-outro-content {
3961
+ padding: 20rem 0
3962
+ }
3963
+ }
3964
+
3965
+ .cb-outro-content.-cb {
3966
+ padding-bottom: 0
3967
+ }
3968
+
3969
+ .cb-outro-header {
3970
+ margin-bottom: 5rem
3971
+ }
3972
+
3973
+ @media (min-width:768px),
3974
+ (orientation:landscape) {
3975
+ .cb-outro-header {
3976
+ margin-bottom: 12rem
3977
+ }
3978
+ }
3979
+
3980
+ .cb-outro-header h2 {
3981
+ font-weight: 400;
3982
+ font-size: 6.8rem;
3983
+ line-height: 77%;
3984
+ letter-spacing: -.05em;
3985
+ text-transform: uppercase
3986
+ }
3987
+
3988
+ @media (min-width:768px),
3989
+ (orientation:landscape) {
3990
+ .cb-outro-header h2 {
3991
+ font-size: 20.8rem
3992
+ }
3993
+ }
3994
+
3995
+ .cb-outro-header h2 em {
3996
+ font-family: "Gallery Modern", sans-serif;
3997
+ font-size: 105%;
3998
+ letter-spacing: normal
3999
+ }
4000
+
4001
+ .cb-outro-caption {
4002
+ margin: 0 0 2.6rem 0
4003
+ }
4004
+
4005
+ @media (min-width:768px),
4006
+ (orientation:landscape) {
4007
+ .cb-outro-caption {
4008
+ margin: 0 0 4.5rem 0
4009
+ }
4010
+ }
4011
+
4012
+ .cb-outro-caption h3 {
4013
+ font-weight: 500;
4014
+ font-size: 1.4rem;
4015
+ line-height: 110%;
4016
+ text-transform: uppercase
4017
+ }
4018
+
4019
+ @media (min-width:768px),
4020
+ (orientation:landscape) {
4021
+ .cb-outro-caption h3 {
4022
+ font-size: 1.6rem
4023
+ }
4024
+ }
4025
+
4026
+ .cb-outro-social {
4027
+ position: relative;
4028
+ display: block;
4029
+ overflow: hidden;
4030
+ text-decoration: none
4031
+ }
4032
+
4033
+ .cb-outro-social-divider {
4034
+ opacity: .2;
4035
+ border-bottom: 1px #ededed solid
4036
+ }
4037
+
4038
+ .cb-outro-social-info {
4039
+ display: flex;
4040
+ align-items: center;
4041
+ justify-content: space-between;
4042
+ padding: 3rem 0
4043
+ }
4044
+
4045
+ @media (min-width:768px),
4046
+ (orientation:landscape) {
4047
+ .cb-outro-social-info {
4048
+ padding: 4.5rem 0
4049
+ }
4050
+ }
4051
+
4052
+ .cb-outro-social-title {
4053
+ font-weight: 500;
4054
+ font-size: 1.8rem;
4055
+ line-height: 110%;
4056
+ text-transform: uppercase
4057
+ }
4058
+
4059
+ @media (min-width:768px),
4060
+ (orientation:landscape) {
4061
+ .cb-outro-social-title {
4062
+ font-size: 3.2rem;
4063
+ letter-spacing: -.03em
4064
+ }
4065
+ }
4066
+
4067
+ .cb-outro-social-arr {
4068
+ font-size: 2rem
4069
+ }
4070
+
4071
+ @media (min-width:768px),
4072
+ (orientation:landscape) {
4073
+ .cb-outro-social-arr {
4074
+ font-size: 2.7rem
4075
+ }
4076
+ }
4077
+
4078
+ .cb-outro-social-reel {
4079
+ position: absolute;
4080
+ top: 0;
4081
+ left: 0;
4082
+ right: 0;
4083
+ bottom: 0;
4084
+ color: #000;
4085
+ pointer-events: none;
4086
+ touch-action: none
4087
+ }
4088
+
4089
+ @media (pointer:coarse) {
4090
+ .cb-outro-social-reel {
4091
+ display: none
4092
+ }
4093
+ }
4094
+
4095
+ .cb-outro-social-reel:before {
4096
+ content: "";
4097
+ display: block;
4098
+ position: absolute;
4099
+ top: 0;
4100
+ left: 0;
4101
+ right: 0;
4102
+ bottom: 0;
4103
+ transform: scaleY(0);
4104
+ background: #96C1C4;
4105
+ transition: transform .5s
4106
+ }
4107
+
4108
+ .cb-outro-social:hover .cb-outro-social-reel:before {
4109
+ transform: scaleY(1);
4110
+ transition-duration: .4s
4111
+ }
4112
+
4113
+ .cb-outro-social-reel-wrap {
4114
+ display: flex;
4115
+ align-items: center;
4116
+ height: 100%;
4117
+ opacity: 0;
4118
+ transition: opacity .3s
4119
+ }
4120
+
4121
+ .cb-outro-social:hover .cb-outro-social-reel-wrap {
4122
+ opacity: 1
4123
+ }
4124
+
4125
+ .cb-outro-social-reel-item {
4126
+ margin: 0 2rem;
4127
+ flex-shrink: 0
4128
+ }
4129
+
4130
+ @media (min-width:768px),
4131
+ (orientation:landscape) {
4132
+ .cb-outro-social-reel-item {
4133
+ margin: 0 3.4rem
4134
+ }
4135
+ }
4136
+
4137
+ .cb-outro-locations {
4138
+ padding: 7.4rem 0 0 0;
4139
+ margin: -5.5rem 0
4140
+ }
4141
+
4142
+ @media (min-width:768px),
4143
+ (orientation:landscape) {
4144
+ .cb-outro-locations {
4145
+ display: flex;
4146
+ padding: 10.6rem 0 0 0
4147
+ }
4148
+ }
4149
+
4150
+ .cb-outro-location {
4151
+ padding: 5.5rem 0
4152
+ }
4153
+
4154
+ @media (min-width:768px),
4155
+ (orientation:landscape) {
4156
+ .cb-outro-location {
4157
+ flex: 1
4158
+ }
4159
+ }
4160
+
4161
+ .cb-outro-location-caption {
4162
+ display: inline;
4163
+ position: relative;
4164
+ top: -.3rem;
4165
+ margin: 0 2.8rem 0 0;
4166
+ font-size: 1.4rem;
4167
+ line-height: 110%;
4168
+ text-transform: uppercase
4169
+ }
4170
+
4171
+ @media (min-width:768px),
4172
+ (orientation:landscape) {
4173
+ .cb-outro-location-caption {
4174
+ top: -.5rem;
4175
+ margin-right: max(2rem, 20px);
4176
+ font-size: max(1.4rem, 12px)
4177
+ }
4178
+ }
4179
+
4180
+ .cb-outro-location-address {
4181
+ display: inline;
4182
+ font-size: 2.2rem;
4183
+ line-height: 110%
4184
+ }
4185
+
4186
+ @media (min-width:768px),
4187
+ (orientation:landscape) {
4188
+ .cb-outro-location-address {
4189
+ font-size: max(2.8rem, 17px)
4190
+ }
4191
+ }
4192
+
4193
+ .cb-outro-location-action {
4194
+ margin: 2.4rem 0 0 0
4195
+ }
4196
+
4197
+ @media (min-width:768px),
4198
+ (orientation:landscape) {
4199
+ .cb-outro-location-action {
4200
+ margin-top: 4rem
4201
+ }
4202
+ }
4203
+
4204
+ .cb-footer {
4205
+ position: relative;
4206
+ color: #fff;
4207
+ background: #000
4208
+ }
4209
+
4210
+ .cb-footer-bg {
4211
+ position: absolute;
4212
+ top: 0;
4213
+ left: 0;
4214
+ right: 0;
4215
+ bottom: 0;
4216
+ width: 100%;
4217
+ height: 100%
4218
+ }
4219
+
4220
+ .cb-footer-bg-media {
4221
+ width: 100%;
4222
+ height: 100%
4223
+ }
4224
+
4225
+ .cb-footer-bg-media video {
4226
+ width: 100%;
4227
+ height: 100%;
4228
+ -o-object-fit: cover;
4229
+ object-fit: cover;
4230
+ -o-object-position: center center;
4231
+ object-position: center center
4232
+ }
4233
+
4234
+ .cb-footer-bg-media canvas {
4235
+ width: 100%;
4236
+ height: 100%
4237
+ }
4238
+
4239
+ .cb-footer-content {
4240
+ position: relative;
4241
+ display: flex;
4242
+ flex-direction: column;
4243
+ justify-content: space-between;
4244
+ height: 100vh;
4245
+ min-height: 60rem;
4246
+ z-index: 2
4247
+ }
4248
+
4249
+ @media (min-width:768px),
4250
+ (orientation:landscape) {
4251
+ .cb-footer-content {
4252
+ min-height: 80rem
4253
+ }
4254
+ }
4255
+
4256
+ .cb-footer-top {
4257
+ display: flex;
4258
+ flex-direction: column;
4259
+ justify-content: center;
4260
+ height: 100%;
4261
+ text-align: center
4262
+ }
4263
+
4264
+ .cb-footer-bottom {
4265
+ width: 100%
4266
+ }
4267
+
4268
+ .cb-footer-content {
4269
+ padding: 4.5rem 0
4270
+ }
4271
+
4272
+ @media (min-width:768px),
4273
+ (orientation:landscape) {
4274
+ .cb-footer-content {
4275
+ padding: 5rem 0
4276
+ }
4277
+ }
4278
+
4279
+ @media (min-width:768px),
4280
+ (orientation:landscape) {
4281
+ .cb-footer-grid {
4282
+ display: flex;
4283
+ align-items: center;
4284
+ justify-content: space-between
4285
+ }
4286
+ }
4287
+
4288
+ @media (min-width:768px),
4289
+ (orientation:landscape) {
4290
+ .cb-footer-grid-col {
4291
+ flex: 1
4292
+ }
4293
+ }
4294
+
4295
+ .cb-footer-grid-col.-center {
4296
+ margin: 2rem 0 0 0
4297
+ }
4298
+
4299
+ @media (min-width:768px),
4300
+ (orientation:landscape) {
4301
+ .cb-footer-grid-col.-center {
4302
+ margin: 0;
4303
+ text-align: center
4304
+ }
4305
+ }
4306
+
4307
+ @media (min-width:768px),
4308
+ (orientation:landscape) {
4309
+ .cb-footer-grid-col.-right {
4310
+ text-align: right
4311
+ }
4312
+ }
4313
+
4314
+ .cb-footer-header h2 {
4315
+ font-weight: 400;
4316
+ font-size: 8.1rem;
4317
+ line-height: 77%;
4318
+ text-transform: uppercase
4319
+ }
4320
+
4321
+ @media (min-width:768px),
4322
+ (orientation:landscape) {
4323
+ .cb-footer-header h2 {
4324
+ font-size: 16.4rem
4325
+ }
4326
+ }
4327
+
4328
+ .cb-footer-header h2 em {
4329
+ font-family: "Gallery Modern", sans-serif;
4330
+ font-size: 110%;
4331
+ letter-spacing: normal
4332
+ }
4333
+
4334
+ .cb-footer-action {
4335
+ margin: 2.6rem 0 0 0
4336
+ }
4337
+
4338
+ @media (min-width:768px),
4339
+ (orientation:landscape) {
4340
+ .cb-footer-action {
4341
+ margin-top: 3rem
4342
+ }
4343
+ }
4344
+
4345
+ .cb-footer-tags {
4346
+ margin: -.4rem
4347
+ }
4348
+
4349
+ @media (min-width:768px),
4350
+ (orientation:landscape) {
4351
+ .cb-footer-tags {
4352
+ margin: -.7rem
4353
+ }
4354
+ }
4355
+
4356
+ .cb-footer-tag {
4357
+ display: block;
4358
+ margin: .4rem
4359
+ }
4360
+
4361
+ @media (min-width:768px),
4362
+ (orientation:landscape) {
4363
+ .cb-footer-tag {
4364
+ display: inline-block;
4365
+ margin: .7rem
4366
+ }
4367
+ }
4368
+
4369
+ .cb-footer-link {
4370
+ position: relative;
4371
+ opacity: .3;
4372
+ font-weight: 500;
4373
+ font-size: 1.2rem;
4374
+ line-height: 110%;
4375
+ text-transform: uppercase;
4376
+ text-decoration: none
4377
+ }
4378
+
4379
+ @media (pointer:coarse) {
4380
+ .cb-footer-link:after {
4381
+ content: "";
4382
+ position: absolute;
4383
+ top: -10px;
4384
+ left: 0;
4385
+ right: 0;
4386
+ bottom: -20px
4387
+ }
4388
+ }
4389
+
4390
+ .cb-footer-link:before {
4391
+ content: "";
4392
+ display: block;
4393
+ position: absolute;
4394
+ left: 0;
4395
+ right: 0;
4396
+ bottom: -4px;
4397
+ height: 4px;
4398
+ transform: scaleX(0);
4399
+ border-bottom: 1px solid;
4400
+ transition: transform .7s cubic-bezier(.16, 1, .3, 1)
4401
+ }
4402
+
4403
+ @media (min-width:768px),
4404
+ (orientation:landscape) {
4405
+ .cb-footer-link {
4406
+ opacity: 1;
4407
+ font-size: 1.6rem
4408
+ }
4409
+ }
4410
+
4411
+ @media (pointer:fine) {
4412
+
4413
+ .cb-footer-link:focus:before,
4414
+ .cb-footer-link:hover:before {
4415
+ transform: scaleX(1)
4416
+ }
4417
+ }
legofy/Brick Me Creator - Brick Your Pics!.html ADDED
@@ -0,0 +1,125 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <!-- saved from url=(0081)https://app.brick.me/?_ga=2.232870686.1811216358.1707827867-1869471713.1704923844 -->
3
+ <html lang="en" style="--vh: 7.73px;"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><script src="./Brick Me Creator - Brick Your Pics!_files/token_create.js.download"></script><script type="text/javascript" async="" src="./Brick Me Creator - Brick Your Pics!_files/main.MTU3YmJkODI0MQ.js.download" data-id="BV03SO2D4EIVEV2IK0R0"></script><script type="text/javascript" async="" src="./Brick Me Creator - Brick Your Pics!_files/main.MTU3YmJkODI0Mw.js.download" data-id="CBGAU8RC77UDCJOUQ1J0"></script><script type="text/javascript" id="www-widgetapi-script" src="./Brick Me Creator - Brick Your Pics!_files/www-widgetapi.js.download" async=""></script><script async="" src="./Brick Me Creator - Brick Your Pics!_files/main.23bc7c79.js.download"></script><script type="text/javascript" async="" src="./Brick Me Creator - Brick Your Pics!_files/events.js.download"></script><script type="text/javascript" async="" src="./Brick Me Creator - Brick Your Pics!_files/events(1).js.download"></script><script src="./Brick Me Creator - Brick Your Pics!_files/647021956006730" async=""></script><script async="" src="./Brick Me Creator - Brick Your Pics!_files/fbevents.js.download"></script><script type="text/javascript" async="" src="./Brick Me Creator - Brick Your Pics!_files/core.js.download"></script><script type="text/javascript" async="" src="./Brick Me Creator - Brick Your Pics!_files/bat.js.download"></script><script type="text/javascript" async="" src="./Brick Me Creator - Brick Your Pics!_files/analytics.js.download"></script><script type="text/javascript" async="" src="./Brick Me Creator - Brick Your Pics!_files/js"></script><script async="" src="./Brick Me Creator - Brick Your Pics!_files/gtm.js.download"></script><script id="gtm-script-GTM-NBRQ9C4">
4
+ (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
5
+ new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
6
+ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
7
+ 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
8
+ })(window,document,'script','dataLayer','GTM-NBRQ9C4');
9
+ </script>
10
+ <link rel="shortcut icon" href="https://app.brick.me/assets/favicon.ico">
11
+ <link rel="icon" type="image/png" sizes="16x16" href="https://app.brick.me/assets/favicon-16x16.png">
12
+ <link rel="icon" type="image/png" sizes="32x32" href="https://app.brick.me/assets/favicon-32x32.png">
13
+ <link rel="icon" type="image/png" sizes="48x48" href="https://app.brick.me/assets/favicon-48x48.png">
14
+ <link rel="manifest" href="https://app.brick.me/assets/manifest.json">
15
+ <meta name="mobile-web-app-capable" content="yes">
16
+ <meta name="theme-color" content="#3987e0">
17
+ <meta name="application-name" content="brickme">
18
+ <link rel="apple-touch-icon" sizes="57x57" href="https://app.brick.me/assets/apple-touch-icon-57x57.png">
19
+ <link rel="apple-touch-icon" sizes="60x60" href="https://app.brick.me/assets/apple-touch-icon-60x60.png">
20
+ <link rel="apple-touch-icon" sizes="72x72" href="https://app.brick.me/assets/apple-touch-icon-72x72.png">
21
+ <link rel="apple-touch-icon" sizes="76x76" href="https://app.brick.me/assets/apple-touch-icon-76x76.png">
22
+ <link rel="apple-touch-icon" sizes="114x114" href="https://app.brick.me/assets/apple-touch-icon-114x114.png">
23
+ <link rel="apple-touch-icon" sizes="120x120" href="https://app.brick.me/assets/apple-touch-icon-120x120.png">
24
+ <link rel="apple-touch-icon" sizes="144x144" href="https://app.brick.me/assets/apple-touch-icon-144x144.png">
25
+ <link rel="apple-touch-icon" sizes="152x152" href="https://app.brick.me/assets/apple-touch-icon-152x152.png">
26
+ <link rel="apple-touch-icon" sizes="167x167" href="https://app.brick.me/assets/apple-touch-icon-167x167.png">
27
+ <link rel="apple-touch-icon" sizes="180x180" href="https://app.brick.me/assets/apple-touch-icon-180x180.png">
28
+ <link rel="apple-touch-icon" sizes="1024x1024" href="https://app.brick.me/assets/apple-touch-icon-1024x1024.png">
29
+ <meta name="apple-mobile-web-app-capable" content="yes">
30
+ <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
31
+ <meta name="apple-mobile-web-app-title" content="brickme">
32
+ <link rel="apple-touch-startup-image" media="(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="https://app.brick.me/assets/apple-touch-startup-image-640x1136.png">
33
+ <link rel="apple-touch-startup-image" media="(device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="https://app.brick.me/assets/apple-touch-startup-image-750x1334.png">
34
+ <link rel="apple-touch-startup-image" media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="https://app.brick.me/assets/apple-touch-startup-image-828x1792.png">
35
+ <link rel="apple-touch-startup-image" media="(device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)" href="https://app.brick.me/assets/apple-touch-startup-image-1125x2436.png">
36
+ <link rel="apple-touch-startup-image" media="(device-width: 414px) and (device-height: 736px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)" href="https://app.brick.me/assets/apple-touch-startup-image-1242x2208.png">
37
+ <link rel="apple-touch-startup-image" media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)" href="https://app.brick.me/assets/apple-touch-startup-image-1242x2688.png">
38
+ <link rel="apple-touch-startup-image" media="(device-width: 768px) and (device-height: 1024px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="https://app.brick.me/assets/apple-touch-startup-image-1536x2048.png">
39
+ <link rel="apple-touch-startup-image" media="(device-width: 834px) and (device-height: 1112px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="https://app.brick.me/assets/apple-touch-startup-image-1668x2224.png">
40
+ <link rel="apple-touch-startup-image" media="(device-width: 834px) and (device-height: 1194px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="https://app.brick.me/assets/apple-touch-startup-image-1668x2388.png">
41
+ <link rel="apple-touch-startup-image" media="(device-width: 1024px) and (device-height: 1366px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="https://app.brick.me/assets/apple-touch-startup-image-2048x2732.png">
42
+ <link rel="apple-touch-startup-image" media="(device-width: 810px) and (device-height: 1080px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="https://app.brick.me/assets/apple-touch-startup-image-1620x2160.png">
43
+ <link rel="apple-touch-startup-image" media="(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)" href="https://app.brick.me/assets/apple-touch-startup-image-1136x640.png">
44
+ <link rel="apple-touch-startup-image" media="(device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)" href="https://app.brick.me/assets/apple-touch-startup-image-1334x750.png">
45
+ <link rel="apple-touch-startup-image" media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)" href="https://app.brick.me/assets/apple-touch-startup-image-1792x828.png">
46
+ <link rel="apple-touch-startup-image" media="(device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)" href="https://app.brick.me/assets/apple-touch-startup-image-2436x1125.png">
47
+ <link rel="apple-touch-startup-image" media="(device-width: 414px) and (device-height: 736px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)" href="https://app.brick.me/assets/apple-touch-startup-image-2208x1242.png">
48
+ <link rel="apple-touch-startup-image" media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)" href="https://app.brick.me/assets/apple-touch-startup-image-2688x1242.png">
49
+ <link rel="apple-touch-startup-image" media="(device-width: 768px) and (device-height: 1024px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)" href="https://app.brick.me/assets/apple-touch-startup-image-2048x1536.png">
50
+ <link rel="apple-touch-startup-image" media="(device-width: 834px) and (device-height: 1112px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)" href="https://app.brick.me/assets/apple-touch-startup-image-2224x1668.png">
51
+ <link rel="apple-touch-startup-image" media="(device-width: 834px) and (device-height: 1194px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)" href="https://app.brick.me/assets/apple-touch-startup-image-2388x1668.png">
52
+ <link rel="apple-touch-startup-image" media="(device-width: 1024px) and (device-height: 1366px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)" href="https://app.brick.me/assets/apple-touch-startup-image-2732x2048.png">
53
+ <link rel="apple-touch-startup-image" media="(device-width: 810px) and (device-height: 1080px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)" href="https://app.brick.me/assets/apple-touch-startup-image-2160x1620.png">
54
+ <meta name="msapplication-TileColor" content="#1751D4">
55
+ <meta name="msapplication-TileImage" content="/assets/mstile-144x144.png">
56
+ <meta name="msapplication-config" content="/assets/browserconfig.xml">
57
+
58
+
59
+
60
+ <title>Brick Me Creator - Brick Your Pics!</title>
61
+ <!-- <link rel="icon" href="%PUBLIC_URL%/favicon.ico" /> -->
62
+ <!-- <meta name="robots" content="all"> -->
63
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
64
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
65
+ <meta name="description" content="Upload a photo or choose an image to convert it into a brick pic. Then use our easy online editor to customise it!">
66
+ <meta name="format-detection" content="telephone=no">
67
+ <meta property="og:type" content="website">
68
+ <meta property="og:title" content="Brick Me Creator - Brick Your Pics!">
69
+ <meta property="og:description" content="Upload a photo or choose an image to convert it into a brick pic. Then use our easy online editor to customise it!">
70
+ <!-- <meta property="og:url" content="%PUBLIC_URL%" /> -->
71
+ <meta property="og:site_name" content="Brick Me Creator">
72
+ <!-- <meta property="og:image" content="%PUBLIC_URL%/brickmecreator-og-image.jpg" /> -->
73
+ <meta property="fb:app_id" content="350650092817769">
74
+ <meta name="twitter:card" content="summary">
75
+ <meta name="twitter:description" content="Upload a photo or choose an image to convert it into a brick pic. Then use our easy online editor to customise it!">
76
+ <meta name="twitter:title" content="Brick Me Creator - Brick Your Pics!">
77
+ <!-- <meta name="twitter:image" content="%PUBLIC_URL%/brickmecreator-og-image.jpg" /> -->
78
+
79
+ <!--
80
+ manifest.json provides metadata used when your web app is installed on a
81
+ user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
82
+ -->
83
+ <!-- <link rel="manifest" href="%PUBLIC_URL%/manifest.json" /> -->
84
+
85
+ <!-- Basic Images Start -->
86
+ <!-- <link rel="apple-touch-icon" sizes="180x180" href="%PUBLIC_URL%/apple-touch-icon.png"> -->
87
+ <!-- <link rel="icon" type="image/png" sizes="32x32" href="%PUBLIC_URL%/favicon-32x32.png"> -->
88
+ <!-- <link rel="icon" type="image/png" sizes="16x16" href="%PUBLIC_URL%/favicon-16x16.png"> -->
89
+ <!-- <link rel="mask-icon" href="%PUBLIC_URL%/safari-pinned-tab.svg" color="#3987e0"> -->
90
+ <!-- <link rel="shortcut icon" href="%PUBLIC_URL%/favicon.ico"> -->
91
+ <!-- Basic Images End -->
92
+
93
+ <!-- Custom Browsers Color Start -->
94
+ <meta name="theme-color" content="#3987e0">
95
+ <!-- Custom Browsers Color End -->
96
+ <script type="module" crossorigin="" src="./Brick Me Creator - Brick Your Pics!_files/index-46a8a896.js.download"></script>
97
+ <link rel="stylesheet" href="./Brick Me Creator - Brick Your Pics!_files/index-ab6eed2a.css">
98
+ <script src="./Brick Me Creator - Brick Your Pics!_files/149011908.js.download" type="text/javascript" async="" data-ueto="ueto_46aabbf804"></script><script charset="utf-8" src="./Brick Me Creator - Brick Your Pics!_files/identify_0a875.js.download"></script><meta http-equiv="origin-trial" content="A3dA86xx3SygInSznfsu98uiaY4VmGo/CaJTGvdsIU5xobyXgN1lb1smNdWPEoeyz54s3L60Kdxmc4VJmUrrIgoAAACVeyJvcmlnaW4iOiJodHRwczovL2N0LnBpbnRlcmVzdC5jb206NDQzIiwiZmVhdHVyZSI6IkRpc2FibGVUaGlyZFBhcnR5U3RvcmFnZVBhcnRpdGlvbmluZyIsImV4cGlyeSI6MTcyNTQwNzk5OSwiaXNTdWJkb21haW4iOnRydWUsImlzVGhpcmRQYXJ0eSI6dHJ1ZX0="><link rel="modulepreload" as="script" crossorigin="" href="https://app.brick.me/assets/editor-section-53f12fe8.js"><link rel="modulepreload" as="script" crossorigin="" href="https://app.brick.me/assets/on-prevent-context-menu-41822d3e.js"><link rel="modulepreload" as="script" crossorigin="" href="https://app.brick.me/assets/money-with-loading-5adba584.js"><link rel="modulepreload" as="script" crossorigin="" href="https://app.brick.me/assets/react-select.esm-4adab7b9.js"><link rel="modulepreload" as="script" crossorigin="" href="https://app.brick.me/assets/use-gesture-prevent-default-b1fedbff.js"><style data-emotion="css" data-s=""></style></head>
99
+ <body class="no-scroll"><noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-NBRQ9C4" height="0" width="0" style="display:none;visibility:hidden" id="tag-manager"></iframe></noscript>
100
+ <noscript>You need to enable JavaScript to run this app.</noscript>
101
+ <div id="root"><div class="main-header-outer"><header class="main-header"><div class="main-header__container container-fluid"><div class="main-header__content row"><div class="main-header__aside-col col-md-3 col-sm-4 col-5"><nav class="main-header__menu main-menu js-main-menu"><button type="button" class="main-menu__btn js-main-menu__btn"><span class="main-menu__btn-inner"><span class="main-menu__btn-lines"></span></span></button><ul class="main-menu__list js-main-menu__list"><li class="main-menu__list-item"><button type="button" class="main-menu__list-link">Reset</button></li><li class="main-menu__list-item"><button type="button" class="main-menu__list-link">Start new project</button></li><li class="main-menu__list-item"><button type="button" class="main-menu__list-link">Switch to simple creator</button></li><li class="main-menu__list-item"><button type="button" class="main-menu__list-link">Watch tutorial video</button></li><li class="main-menu__list-item"><a href="https://brick.me/contact/" class="main-menu__list-link" target="_blank" rel="noopener noreferrer">Contact us</a></li><li class="main-menu__list-item"><button type="button" class="main-menu__list-link">Back to homepage</button></li><li class="main-menu__list-item"><button type="button" class="main-menu__list-link">Sign in</button></li><li class="main-menu__list-item"><div class="main-menu__list-info">Version: 1.2.174</div></li></ul></nav><div class="main-header__logo"><a href="https://app.brick.me/" class="main-header__logo-link"><img src="./Brick Me Creator - Brick Your Pics!_files/logo-16fa4bf0.svg" alt="Brick Me Creator" class="main-header__logo-img"><span class="main-header__logo-descr d-none d-sm-block">Creator</span></a></div></div><div class="main-header__col col-md-9 col-sm-8 col-7"><h1 class="main-header__info main-header__info_type_size plaintext">Adjust the size of your brick pic</h1><div class="main-header__actions"><button class="button button_size_small button_color_yellow main-header__actions-btn main-header__actions-btn_preview" type="button"><span class="button__icon hidden_mobile"><svg class="sprite-icon button__icon-img"><use xlink:href="/assets/sprite-99cebef6.svg#eye"></use></svg></span><span class="button__text">Preview</span><span class="button__right"><svg class="sprite-icon button__right-arrow"><use xlink:href="/assets/sprite-99cebef6.svg#chevron-right"></use></svg></span></button><button class="button button_size_small button_color_darkblue main-header__actions-btn main-header__actions-btn_undo" type="button" disabled=""><span class="button__undo"><svg class="sprite-icon button__undo-icon"><use xlink:href="/assets/sprite-99cebef6.svg#undo"></use></svg></span><span class="button__text hidden_mobile">Undo</span></button></div></div></div></div></header></div><main class="app-main"><div class="editor"><aside class="editor__sidebar editor-sidebar js-editor-sidebar active"><button type="button" class="editor-sidebar__toggle js-editor-sidebar__toggle"><span class="editor-sidebar__toggle-inner"><span class="editor-sidebar__toggle-text">Tools</span><svg class="sprite-icon editor-sidebar__toggle-icon"><use xlink:href="/assets/sprite-99cebef6.svg#chevron-top"></use></svg></span></button><div class="editor-sidebar__backdrop js-editor-sidebar__toggle"></div><div class="editor-sidebar__tabs"><button type="button" class="editor-sidebar__tabs-item panel-tab-btn panel-tab-btn_type_size active" aria-label="Size, Shape &amp; Crop"><span class="panel-tab-btn__icon"><img src="./Brick Me Creator - Brick Your Pics!_files/size-icon-4c1ef236.svg" alt="Size, Shape &amp; Crop" class="panel-tab-btn__icon-img"></span> Size</button><button type="button" class="editor-sidebar__tabs-item panel-tab-btn panel-tab-btn_type_adjustments" aria-label="Image adjustments"><span class="panel-tab-btn__icon"><img src="./Brick Me Creator - Brick Your Pics!_files/adjust-icon-254f4674.svg" alt="Image adjustments" class="panel-tab-btn__icon-img"></span> Colour</button><button type="button" class="editor-sidebar__tabs-item panel-tab-btn panel-tab-btn_type_size" aria-label="AI Filters"><span class="panel-tab-btn__icon"><img src="./Brick Me Creator - Brick Your Pics!_files/magic-hat-63de4f5e.svg" alt="AI Filters" class="panel-tab-btn__icon-img"></span> AI Filters</button><button type="button" class="editor-sidebar__tabs-item panel-tab-btn panel-tab-btn_type_pen" aria-label="Pen tool"><span class="panel-tab-btn__icon"><img src="./Brick Me Creator - Brick Your Pics!_files/pen-tool-icon-75a12163.svg" alt="Pen tool" class="panel-tab-btn__icon-img"></span> Paint</button></div><div class="editor-sidebar__inner"><div class="editor-sidebar__body"><div class="editor-sidebar__body-inner"><div class="editor-sidebar__panels-set"><section class="editor-sidebar__panel editor-sidebar__panel_type_size expanded"><header role="button" tabindex="0" class="editor-sidebar__panel-header panel-header"><div class="panel-header__container editor-sidebar__container"><div class="panel-header__icon"><img src="./Brick Me Creator - Brick Your Pics!_files/size-icon-4c1ef236.svg" alt="Size, Shape &amp; Crop" class="panel-header__icon-img"></div><div class="panel-header__descr"><h2 class="panel-header__title">Size, Shape &amp; Crop</h2><div class="panel-header__text">Arrangement</div></div></div></header><div class="editor-sidebar__panel-body"><div class="editor-sidebar__container"><div class="editor-sidebar__panel-groups-set"><div class="editor-sidebar__panel-group"><div class="editor-sidebar__subtitle-row subtitle-row"><div class="subtitle-row__primary"><h3 class="subtitle-row__subtitle subtitle color-accent">Number of Baseplates</h3></div><div class="subtitle-row__aside"><div class="info-item subtitle-row__info"><span class="info-item__icon"><svg class="sprite-icon info-item__icon-img"><use xlink:href="/assets/sprite-99cebef6.svg#info-icon"></use></svg></span><span class="info-item__text plaintext">The number of horizontal and vertical baseplates will determine the size of the Brick Pic.</span></div></div></div><div class="baseplates-number"><div class="baseplates-number__item baseplates-number__item_type_vertical"><span class="baseplates-number__descr"><span class="baseplates-number__text">Vertical</span><svg class="sprite-icon baseplates-number__icon"><use xlink:href="/assets/sprite-99cebef6.svg#vertical-arrows"></use></svg></span><span class="baseplates-number__qty-input-group qty-input-group js-qty-input-group"><input type="number" name="quantity" min="1" max="50" step="1" readonly="" class="qty-input-group__input input js-qty-input" value="3"><span class="qty-input-group__btns-set"><button type="button" class="qty-input-group__btn js-qty-input-btn" data-type="plus"><svg class="sprite-icon qty-input-group__btn-icon"><use xlink:href="/assets/sprite-99cebef6.svg#plus"></use></svg></button><button type="button" class="qty-input-group__btn js-qty-input-btn" data-type="minus"><svg class="sprite-icon qty-input-group__btn-icon"><use xlink:href="/assets/sprite-99cebef6.svg#minus"></use></svg></button></span></span></div><div class="baseplates-number__divider"><svg class="sprite-icon baseplates-number__divider-icon"><use xlink:href="/assets/sprite-99cebef6.svg#close"></use></svg></div><div class="baseplates-number__item baseplates-number__item_type_horizontal"><span class="baseplates-number__descr"><span class="baseplates-number__text">Horizontal</span><svg class="sprite-icon baseplates-number__icon"><use xlink:href="/assets/sprite-99cebef6.svg#horizontal-arrows"></use></svg></span><span class="baseplates-number__qty-input-group qty-input-group js-qty-input-group"><input type="number" name="quantity" min="1" max="50" step="1" readonly="" class="qty-input-group__input input js-qty-input" value="3"><span class="qty-input-group__btns-set"><button type="button" class="qty-input-group__btn js-qty-input-btn" data-type="plus"><svg class="sprite-icon qty-input-group__btn-icon"><use xlink:href="/assets/sprite-99cebef6.svg#plus"></use></svg></button><button type="button" class="qty-input-group__btn js-qty-input-btn" data-type="minus"><svg class="sprite-icon qty-input-group__btn-icon"><use xlink:href="/assets/sprite-99cebef6.svg#minus"></use></svg></button></span></span></div></div></div><div class="editor-sidebar__panel-group"><div class="editor-sidebar__subtitle-row subtitle-row"><div class="subtitle-row__primary"><h3 class="subtitle-row__subtitle subtitle color-accent">Image Zoom (Crop)</h3><span class="subtitle-row__slider-num subtitle">100%</span></div><div class="subtitle-row__aside"><div class="info-item subtitle-row__info"><span class="info-item__icon"><svg class="sprite-icon info-item__icon-img"><use xlink:href="/assets/sprite-99cebef6.svg#info-icon"></use></svg></span><span class="info-item__text plaintext">Zooming in will crop the image. Click and drag the image to move it around.</span></div></div></div><div class="editor-sidebar__range"><div class="buttons-slider-container"><button type="button" class="scale-control__btn js-scale-control__btn_minus" disabled=""><span class="scale-control__btn-inner"><svg class="sprite-icon scale-control__btn-icon"><use xlink:href="/assets/sprite-99cebef6.svg#minus"></use></svg></span></button><div class="buttons-slider noUi-target noUi-ltr noUi-horizontal noUi-txt-dir-ltr"><div class="noUi-base"><div class="noUi-connects"><div class="noUi-connect" style="transform: translate(0%, 0px) scale(0, 1);"></div></div><div class="noUi-origin" style="transform: translate(-1000%, 0px); z-index: 4;"><div class="noUi-handle noUi-handle-lower" data-handle="0" tabindex="0" role="slider" aria-orientation="horizontal" aria-valuemin="100.0" aria-valuemax="500.0" aria-valuenow="100.0" aria-valuetext="100.00"><div class="noUi-touch-area"></div></div></div></div></div><button type="button" class="scale-control__btn js-scale-control__btn_plus"><span class="scale-control__btn-inner"><svg class="sprite-icon scale-control__btn-icon"><use xlink:href="/assets/sprite-99cebef6.svg#plus"></use></svg></span></button></div></div></div></div></div></div></section><section class="editor-sidebar__panel editor-sidebar__panel_type_adjustments"><header role="button" tabindex="0" class="editor-sidebar__panel-header panel-header"><div class="panel-header__container editor-sidebar__container"><div class="panel-header__icon"><img src="./Brick Me Creator - Brick Your Pics!_files/adjust-icon-254f4674.svg" alt="Image adjustments" class="panel-header__icon-img"></div><div class="panel-header__descr"><h2 class="panel-header__title">Image adjustments</h2><div class="panel-header__text">Edit colours &amp; style</div></div></div></header><div class="editor-sidebar__panel-body"><div class="editor-sidebar__container"><div class="editor-sidebar__panel-groups-set"><div class="editor-sidebar__panel-group"><div class="radio-btns-row"><div class="radio-btns-group radio-btns-row__group"><label class="radio-btns-group__item radio-btn radio-btn__checked"><input type="radio" name="colorMethod" class="radio-btn__input visually-hidden" value="0" checked=""><span class="radio-btn__box radio-btn__box_color-red"><span class="radio-btn__text">Auto</span></span></label><label class="radio-btns-group__item radio-btn"><input type="radio" name="colorMethod" class="radio-btn__input visually-hidden" value="1"><span class="radio-btn__box radio-btn__box_color-red"><span class="radio-btn__text">Custom</span></span></label></div><div class="radio-btns-row__aside"><div class="info-item radio-btns-row__info"><span class="info-item__icon"><svg class="sprite-icon info-item__icon-img"><use xlink:href="/assets/sprite-99cebef6.svg#info-icon"></use></svg></span><span class="info-item__text plaintext info-item__text__top">Auto: Automatically select the best colours using the slider. Custom: Manually select or deselect colours from the palette.</span></div></div></div></div><div class="editor-sidebar__panel-group"><div class="editor-sidebar__subtitle-row subtitle-row"><div class="subtitle-row__primary"><h3 class="subtitle-row__subtitle subtitle color-accent"><span class="js-colours-num">20</span> colours ( <span class="subtitle__secondary">slide to change</span> )</h3></div><div class="subtitle-row__aside"><div class="info-item subtitle-row__info"><span class="info-item__icon"><svg class="sprite-icon info-item__icon-img"><use xlink:href="/assets/sprite-99cebef6.svg#info-icon"></use></svg></span><span class="info-item__text plaintext">Adjust the colours used in the picture. Remember that more colours will be harder to assemble.</span></div></div></div><div class="buttons-slider-container editor-sidebar__colours-range" data-testid="numColoursSlider"><button type="button" class="scale-control__btn js-scale-control__btn_minus"><span class="scale-control__btn-inner"><svg class="sprite-icon scale-control__btn-icon"><use xlink:href="/assets/sprite-99cebef6.svg#minus"></use></svg></span></button><div class="buttons-slider noUi-target noUi-ltr noUi-horizontal noUi-txt-dir-ltr"><div class="noUi-base"><div class="noUi-connects"><div class="noUi-connect" style="transform: translate(0%, 0px) scale(0.375, 1);"></div></div><div class="noUi-origin" style="transform: translate(-625%, 0px); z-index: 4;"><div class="noUi-handle noUi-handle-lower" data-handle="0" tabindex="0" role="slider" aria-orientation="horizontal" aria-valuemin="2.0" aria-valuemax="50.0" aria-valuenow="20.0" aria-valuetext="20.00"><div class="noUi-touch-area"></div></div></div></div></div><button type="button" class="scale-control__btn js-scale-control__btn_plus"><span class="scale-control__btn-inner"><svg class="sprite-icon scale-control__btn-icon"><use xlink:href="/assets/sprite-99cebef6.svg#plus"></use></svg></span></button></div><div class="editor-sidebar__palette palette"><div class="palette__colors-set"><button type="button" class="palette__color-outer tooltip"><span class="palette__color selected"><span class="palette__color-inner" style="background-color: rgb(244, 244, 244);"></span></span><span class="tooltip__text">730 bricks</span></button><button type="button" class="palette__color-outer tooltip"><span class="palette__color selected"><span class="palette__color-inner" style="background-color: rgb(208, 206, 201);"></span></span><span class="tooltip__text">799 bricks</span></button><button type="button" class="palette__color-outer tooltip"><span class="palette__color selected"><span class="palette__color-inner" style="background-color: rgb(178, 180, 178);"></span></span><span class="tooltip__text">190 bricks</span></button><button type="button" class="palette__color-outer tooltip"><span class="palette__color selected"><span class="palette__color-inner" style="background-color: rgb(140, 138, 136);"></span></span><span class="tooltip__text">101 bricks</span></button><button type="button" class="palette__color-outer tooltip"><span class="palette__color selected"><span class="palette__color-inner" style="background-color: rgb(100, 100, 100);"></span></span><span class="tooltip__text">132 bricks</span></button><button type="button" class="palette__color-outer tooltip"><span class="palette__color selected"><span class="palette__color-inner" style="background-color: rgb(22, 22, 22);"></span></span><span class="tooltip__text">357 bricks</span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(0, 187, 220);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(175, 205, 215);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(139, 190, 232);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(126, 147, 167);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(62, 135, 203);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(0, 94, 184);"></span></span></button><button type="button" class="palette__color-outer tooltip"><span class="palette__color selected"><span class="palette__color-inner" style="background-color: rgb(51, 63, 72);"></span></span><span class="tooltip__text">84 bricks</span></button><button type="button" class="palette__color-outer tooltip"><span class="palette__color selected"><span class="palette__color-inner" style="background-color: rgb(0, 53, 80);"></span></span><span class="tooltip__text">44 bricks</span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(190, 202, 234);"></span></span></button><button type="button" class="palette__color-outer tooltip"><span class="palette__color selected warn"><span class="palette__color-inner" style="background-color: rgb(221, 121, 117);"></span></span><span class="tooltip__text">20 bricks - There are less than 30 bricks with this colour, which may suggest it is not necessary. Consider removing it to make your Brick Pic easier to build</span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(197, 70, 68);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(218, 41, 28);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(177, 162, 202);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(142, 127, 174);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(236, 208, 181);"></span></span></button><button type="button" class="palette__color-outer tooltip"><span class="palette__color selected"><span class="palette__color-inner" style="background-color: rgb(240, 196, 160);"></span></span><span class="tooltip__text">37 bricks</span></button><button type="button" class="palette__color-outer tooltip"><span class="palette__color selected"><span class="palette__color-inner" style="background-color: rgb(250, 170, 141);"></span></span><span class="tooltip__text">34 bricks</span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(248, 173, 109);"></span></span></button><button type="button" class="palette__color-outer tooltip"><span class="palette__color selected warn"><span class="palette__color-inner" style="background-color: rgb(229, 158, 109);"></span></span><span class="tooltip__text">19 bricks - There are less than 30 bricks with this colour, which may suggest it is not necessary. Consider removing it to make your Brick Pic easier to build</span></button><button type="button" class="palette__color-outer tooltip"><span class="palette__color selected"><span class="palette__color-inner" style="background-color: rgb(189, 154, 122);"></span></span><span class="tooltip__text">528 bricks</span></button><button type="button" class="palette__color-outer tooltip"><span class="palette__color selected"><span class="palette__color-inner" style="background-color: rgb(181, 129, 80);"></span></span><span class="tooltip__text">452 bricks</span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(255, 105, 0);"></span></span></button><button type="button" class="palette__color-outer tooltip"><span class="palette__color selected"><span class="palette__color-inner" style="background-color: rgb(166, 85, 35);"></span></span><span class="tooltip__text">100 bricks</span></button><button type="button" class="palette__color-outer tooltip"><span class="palette__color selected"><span class="palette__color-inner" style="background-color: rgb(107, 53, 41);"></span></span><span class="tooltip__text">58 bricks</span></button><button type="button" class="palette__color-outer tooltip"><span class="palette__color selected"><span class="palette__color-inner" style="background-color: rgb(105, 63, 35);"></span></span><span class="tooltip__text">209 bricks</span></button><button type="button" class="palette__color-outer tooltip"><span class="palette__color selected"><span class="palette__color-inner" style="background-color: rgb(78, 53, 36);"></span></span><span class="tooltip__text">179 bricks</span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(120, 78, 144);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(248, 229, 154);"></span></span></button><button type="button" class="palette__color-outer tooltip"><span class="palette__color selected"><span class="palette__color-inner" style="background-color: rgb(213, 200, 151);"></span></span><span class="tooltip__text">58 bricks</span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(239, 182, 97);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(255, 209, 0);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(255, 163, 0);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(229, 155, 220);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(177, 78, 181);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(174, 164, 111);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(174, 184, 98);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(181, 189, 0);"></span></span></button><button type="button" class="palette__color-outer tooltip"><span class="palette__color selected"><span class="palette__color-inner" style="background-color: rgb(239, 215, 229);"></span></span><span class="tooltip__text">1,053 bricks</span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(94, 126, 41);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(231, 147, 183);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(207, 87, 138);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(51, 85, 37);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(45, 200, 77);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(0, 154, 68);"></span></span></button></div></div><div class="editor-sidebar__correction color-correction js-color-correction active"><div class="color-correction__body"><div class="color-correction__body-container"><div class="color-correction__item"><div class="color-correction__item-descr"><div class="color-correction__item-main"><span class="color-correction__item-name">Enhance detail:</span></div></div><div class="radio-btns-group radio-btns-row__group"><label class="radio-btns-group__item radio-btn"><input type="radio" name="enhanceDetail" class="radio-btn__input visually-hidden" value="0"><span class="radio-btn__box radio-btn__box_color-red"><span class="radio-btn__text">None</span></span></label><label class="radio-btns-group__item radio-btn radio-btn__checked"><input type="radio" name="enhanceDetail" class="radio-btn__input visually-hidden" value="1" checked=""><span class="radio-btn__box radio-btn__box_color-red"><span class="radio-btn__text">Low</span></span></label><label class="radio-btns-group__item radio-btn"><input type="radio" name="enhanceDetail" class="radio-btn__input visually-hidden" value="2"><span class="radio-btn__box radio-btn__box_color-red"><span class="radio-btn__text">Medium</span></span></label><label class="radio-btns-group__item radio-btn"><input type="radio" name="enhanceDetail" class="radio-btn__input visually-hidden" value="3"><span class="radio-btn__box radio-btn__box_color-red"><span class="radio-btn__text">High</span></span></label></div></div><div class="color-correction__item"><div class="color-correction__item-descr"><div class="color-correction__item-main"><span class="color-correction__item-name">Brightness: </span><span class="color-correction__item-num js-brightness-num">0</span></div></div><div class="buttons-slider-container"><button type="button" class="scale-control__btn js-scale-control__btn_minus"><span class="scale-control__btn-inner"><svg class="sprite-icon scale-control__btn-icon"><use xlink:href="/assets/sprite-99cebef6.svg#minus"></use></svg></span></button><div class="buttons-slider color-correction__item-range range-field range-field_color_yellow js-brightness-slider noUi-target noUi-ltr noUi-horizontal noUi-txt-dir-ltr"><div class="noUi-base"><div class="noUi-connects"><div class="noUi-connect" style="transform: translate(0%, 0px) scale(0.5, 1);"></div></div><div class="noUi-origin" style="transform: translate(-500%, 0px); z-index: 4;"><div class="noUi-handle noUi-handle-lower" data-handle="0" tabindex="0" role="slider" aria-orientation="horizontal" aria-valuemin="-100.0" aria-valuemax="100.0" aria-valuenow="0.0" aria-valuetext="0.00"><div class="noUi-touch-area"></div></div></div></div></div><button type="button" class="scale-control__btn js-scale-control__btn_plus"><span class="scale-control__btn-inner"><svg class="sprite-icon scale-control__btn-icon"><use xlink:href="/assets/sprite-99cebef6.svg#plus"></use></svg></span></button></div></div><div class="color-correction__item"><div class="color-correction__item-descr"><div class="color-correction__item-main"><span class="color-correction__item-name">Contrast: </span><span class="color-correction__item-num js-contrast-num">15</span></div></div><div class="buttons-slider-container"><button type="button" class="scale-control__btn js-scale-control__btn_minus"><span class="scale-control__btn-inner"><svg class="sprite-icon scale-control__btn-icon"><use xlink:href="/assets/sprite-99cebef6.svg#minus"></use></svg></span></button><div class="buttons-slider color-correction__item-range range-field range-field_color_red js-contrast-slider noUi-target noUi-ltr noUi-horizontal noUi-txt-dir-ltr"><div class="noUi-base"><div class="noUi-connects"><div class="noUi-connect" style="transform: translate(0%, 0px) scale(0.575, 1);"></div></div><div class="noUi-origin" style="transform: translate(-425%, 0px); z-index: 4;"><div class="noUi-handle noUi-handle-lower" data-handle="0" tabindex="0" role="slider" aria-orientation="horizontal" aria-valuemin="-100.0" aria-valuemax="100.0" aria-valuenow="15.0" aria-valuetext="15.00"><div class="noUi-touch-area"></div></div></div></div></div><button type="button" class="scale-control__btn js-scale-control__btn_plus"><span class="scale-control__btn-inner"><svg class="sprite-icon scale-control__btn-icon"><use xlink:href="/assets/sprite-99cebef6.svg#plus"></use></svg></span></button></div></div><div class="color-correction__item"><div class="color-correction__item-descr"><div class="color-correction__item-main"><span class="color-correction__item-name">Saturation: </span><span class="color-correction__item-num js-saturation-num">5</span></div></div><div class="buttons-slider-container"><button type="button" class="scale-control__btn js-scale-control__btn_minus"><span class="scale-control__btn-inner"><svg class="sprite-icon scale-control__btn-icon"><use xlink:href="/assets/sprite-99cebef6.svg#minus"></use></svg></span></button><div class="buttons-slider color-correction__item-range range-field range-field_color_blue js-saturation-slider noUi-target noUi-ltr noUi-horizontal noUi-txt-dir-ltr"><div class="noUi-base"><div class="noUi-connects"><div class="noUi-connect" style="transform: translate(0%, 0px) scale(0.525, 1);"></div></div><div class="noUi-origin" style="transform: translate(-475%, 0px); z-index: 4;"><div class="noUi-handle noUi-handle-lower" data-handle="0" tabindex="0" role="slider" aria-orientation="horizontal" aria-valuemin="-100.0" aria-valuemax="100.0" aria-valuenow="5.0" aria-valuetext="5.00"><div class="noUi-touch-area"></div></div></div></div></div><button type="button" class="scale-control__btn js-scale-control__btn_plus"><span class="scale-control__btn-inner"><svg class="sprite-icon scale-control__btn-icon"><use xlink:href="/assets/sprite-99cebef6.svg#plus"></use></svg></span></button></div></div></div></div></div></div></div></div></div></section><section class="editor-sidebar__panel editor-sidebar__panel_type_ai_filters"><header role="button" tabindex="0" class="editor-sidebar__panel-header panel-header"><div class="panel-header__container editor-sidebar__container"><div class="panel-header__icon"><img src="./Brick Me Creator - Brick Your Pics!_files/magic-hat-63de4f5e.svg" alt="AI Filters" class="panel-header__icon-img"></div><div class="panel-header__descr"><h2 class="panel-header__title">AI Filters</h2><div class="panel-header__text">Advanced filters for your image</div></div></div><img src="./Brick Me Creator - Brick Your Pics!_files/new-ribbon-9eaacbe9.png" alt="New" class="panel-header__is_new" width="70" height="70"></header><div class="editor-sidebar__panel-body"><div class="editor-sidebar__container"><div class="editor-sidebar__panel-groups-set"><div class="editor-sidebar__panel-group"><div class="editor-sidebar__subtitle-row subtitle-row"><div class="subtitle-row__primary"><h3 class="subtitle-row__subtitle subtitle color-accent">Fix face colours</h3></div><div class="subtitle-row__aside"><div class="info-item subtitle-row__info"><span class="info-item__icon"><svg class="sprite-icon info-item__icon-img"><use xlink:href="/assets/sprite-99cebef6.svg#info-icon"></use></svg></span><span class="info-item__text plaintext info-item__text__top">Enhances the colors in facial areas, correcting any lighting or camera lens-related issues to make your mosaic look better.</span></div></div></div><div class="radio-btns-group"><label class="radio-btns-group__item radio-btn"><input type="radio" name="fixFaceColours" class="radio-btn__input visually-hidden" value="0"><span class="radio-btn__box radio-btn__box_color-yellow"><span class="radio-btn__text">On</span></span></label><label class="radio-btns-group__item radio-btn radio-btn__checked"><input type="radio" name="fixFaceColours" class="radio-btn__input visually-hidden" value="1" checked=""><span class="radio-btn__box radio-btn__box_color-yellow"><span class="radio-btn__text">Off</span></span></label></div></div><div class="editor-sidebar__panel-group"><div class="editor-sidebar__subtitle-row subtitle-row"><div class="subtitle-row__primary"><h3 class="subtitle-row__subtitle subtitle color-accent">Enhance faces</h3></div><div class="subtitle-row__aside"><div class="info-item subtitle-row__info"><span class="info-item__icon"><svg class="sprite-icon info-item__icon-img"><use xlink:href="/assets/sprite-99cebef6.svg#info-icon"></use></svg></span><span class="info-item__text plaintext info-item__text__top">Improve the photo quality of facial features to give a better mosaic.</span></div></div></div><div class="radio-btns-group"><label class="radio-btns-group__item radio-btn"><input type="radio" name="enhanceFaces" class="radio-btn__input visually-hidden" value="0"><span class="radio-btn__box radio-btn__box_color-yellow"><span class="radio-btn__text">On</span></span></label><label class="radio-btns-group__item radio-btn radio-btn__checked"><input type="radio" name="enhanceFaces" class="radio-btn__input visually-hidden" value="1" checked=""><span class="radio-btn__box radio-btn__box_color-yellow"><span class="radio-btn__text">Off</span></span></label></div></div><div class="editor-sidebar__panel-group"><div class="editor-sidebar__subtitle-row subtitle-row"><div class="subtitle-row__primary"><h3 class="subtitle-row__subtitle subtitle color-accent">Remove background</h3></div><div class="subtitle-row__aside"><div class="info-item subtitle-row__info"><span class="info-item__icon"><svg class="sprite-icon info-item__icon-img"><use xlink:href="/assets/sprite-99cebef6.svg#info-icon"></use></svg></span><span class="info-item__text plaintext info-item__text__top">Replace the background of your design with a solid colour</span></div></div></div><div class="radio-btns-group"><label class="radio-btns-group__item radio-btn"><input type="radio" name="removeBackground" class="radio-btn__input visually-hidden" value="0"><span class="radio-btn__box radio-btn__box_color-yellow"><span class="radio-btn__text">On</span></span></label><label class="radio-btns-group__item radio-btn radio-btn__checked"><input type="radio" name="removeBackground" class="radio-btn__input visually-hidden" value="1" checked=""><span class="radio-btn__box radio-btn__box_color-yellow"><span class="radio-btn__text">Off</span></span></label></div></div></div></div></div></section><section class="editor-sidebar__panel editor-sidebar__panel_type_pen"><header role="button" tabindex="0" class="editor-sidebar__panel-header panel-header"><div class="panel-header__container editor-sidebar__container"><div class="panel-header__icon"><img src="./Brick Me Creator - Brick Your Pics!_files/draw-and-paint-icon-04c4829c.svg" alt="Draw &amp; Paint" class="panel-header__icon-img"></div><div class="panel-header__descr"><h2 class="panel-header__title">Draw &amp; Paint</h2><div class="panel-header__text">Change individual bricks</div></div></div></header><div class="editor-sidebar__panel-body"><div class="editor-sidebar__container"><div class="editor-sidebar__panel-groups-set"><div class="editor-sidebar__panel-group"><div class="editor-sidebar__paint-tools-btns btns-group js-btns-group"><button type="button" class="btns-group__item js-btns-group__item button button_type_ghost button_color_ghost-yellow active"><svg class="sprite-icon btns-group__item-icon"><use xlink:href="/assets/sprite-99cebef6.svg#pen"></use></svg><span class="btns-group__item-text">Pen tool</span></button><button type="button" class="btns-group__item js-btns-group__item button button_type_ghost button_color_ghost-yellow"><svg class="sprite-icon btns-group__item-icon"><use xlink:href="/assets/sprite-99cebef6.svg#paint"></use></svg><span class="btns-group__item-text">Paint fill</span></button></div></div><div class="editor-sidebar__panel-group"><div class="editor-sidebar__subtitle-row subtitle-row"><div class="subtitle-row__primary"><h3 class="subtitle-row__subtitle subtitle color-accent">Choose a colour</h3></div><div class="subtitle-row__aside"><div class="info-item subtitle-row__info"><span class="info-item__icon"><svg class="sprite-icon info-item__icon-img"><use xlink:href="/assets/sprite-99cebef6.svg#info-icon"></use></svg></span><span class="info-item__text plaintext info-item__text__top">Choose a colour from the palette or use the colour picker, then click on a brick to change its colour. Click and drag to draw.</span></div></div></div><div class="editor-sidebar__palette palette"><div class="palette__colors-set"><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(244, 244, 244);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(208, 206, 201);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(178, 180, 178);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(140, 138, 136);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(100, 100, 100);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(22, 22, 22);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(0, 187, 220);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(175, 205, 215);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(139, 190, 232);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(126, 147, 167);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(62, 135, 203);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(0, 94, 184);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(51, 63, 72);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(0, 53, 80);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(190, 202, 234);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(221, 121, 117);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(197, 70, 68);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(218, 41, 28);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(177, 162, 202);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(142, 127, 174);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(236, 208, 181);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(240, 196, 160);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(250, 170, 141);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(248, 173, 109);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(229, 158, 109);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(189, 154, 122);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(181, 129, 80);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(255, 105, 0);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(166, 85, 35);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(107, 53, 41);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(105, 63, 35);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(78, 53, 36);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(120, 78, 144);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(248, 229, 154);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(213, 200, 151);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(239, 182, 97);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(255, 209, 0);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(255, 163, 0);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(229, 155, 220);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(177, 78, 181);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(174, 164, 111);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(174, 184, 98);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(181, 189, 0);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(239, 215, 229);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(94, 126, 41);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(231, 147, 183);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(207, 87, 138);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(51, 85, 37);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(45, 200, 77);"></span></span></button><button type="button" class="palette__color-outer"><span class="palette__color"><span class="palette__color-inner" style="background-color: rgb(0, 154, 68);"></span></span></button></div></div><div class="editor-sidebar__dropper"><button class="button button_size_medium editor-sidebar__dropper-btn button_type_ghost" type="button"><span class="button__icon"><svg class="sprite-icon button__icon-img"><use xlink:href="/assets/sprite-99cebef6.svg#dropper"></use></svg></span><span class="button__text">Choose colour from image</span></button></div></div></div></div></div></section></div></div></div><footer class="editor-sidebar__footer"><div class="editor-sidebar__container"><div class="editor-sidebar__footer-item computed-info"><div class="computed-info__icon"><img src="./Brick Me Creator - Brick Your Pics!_files/total-size-icon-17b9bc93.svg" alt="Icon" class="computed-info__icon-img" aria-hidden="true"></div><div class="computed-info__descr"><div class="computed-info__heading">Total size</div><div class="computed-info__primary">57.6cm x 57.6cm</div></div><div class="computed-info__descr"><div class="computed-info__heading">Price</div><div class="computed-info__primary">E£3,514.00 EGP</div></div></div></div><div class="editor-sidebar__container"><div class="country-selector css-b62m3t-container"><span id="react-select-2-live-region" class="css-7pg0cj-a11yText"></span><span aria-live="polite" aria-atomic="false" aria-relevant="additions text" class="css-7pg0cj-a11yText"></span><div class=" css-1s2u09g-control"><div class=" css-1d8n9bt"><div class=" css-qc6sy-singleValue">Egypt (EGP ج.م)</div><input id="react-select-2-input" tabindex="0" inputmode="none" aria-autocomplete="list" aria-expanded="false" aria-haspopup="true" role="combobox" aria-readonly="true" class="css-1hac4vs-dummyInput" value=""></div><div class=" css-1wy0on6"><span class=" css-1okebmr-indicatorSeparator"></span><div class=" css-tlfecz-indicatorContainer" aria-hidden="true"><svg height="20" width="20" viewBox="0 0 20 20" aria-hidden="true" focusable="false" class="css-8mmkcg"><path d="M4.516 7.548c0.436-0.446 1.043-0.481 1.576 0l3.908 3.747 3.908-3.747c0.533-0.481 1.141-0.446 1.574 0 0.436 0.445 0.408 1.197 0 1.615-0.406 0.418-4.695 4.502-4.695 4.502-0.217 0.223-0.502 0.335-0.787 0.335s-0.57-0.112-0.789-0.335c0 0-4.287-4.084-4.695-4.502s-0.436-1.17 0-1.615z"></path></svg></div></div></div></div></div></footer></div></aside><div class="editor__area js-editor__area tools-are-open"><canvas class="editor__canvas editor__canvas__image_zoom" width="549" height="549" style="touch-action: none; user-select: none;"></canvas><div class="editor__scale canvas-scale"><div class="canvas-scale__box"><div class="canvas-scale__group"><div class="canvas-scale__scale scale-control"><div class="buttons-slider-container"><button type="button" class="scale-control__btn js-scale-control__btn_minus"><span class="scale-control__btn-inner"><svg class="sprite-icon scale-control__btn-icon"><use xlink:href="/assets/sprite-99cebef6.svg#minus"></use></svg></span></button><div class="buttons-slider scale-control__range range-field range-field_color_black js-scale-slider noUi-target noUi-ltr noUi-horizontal noUi-txt-dir-ltr"><div class="noUi-base"><div class="noUi-connects"><div class="noUi-connect" style="transform: translate(0%, 0px) scale(0.166667, 1);"></div></div><div class="noUi-origin" style="transform: translate(-833.333%, 0px); z-index: 4;"><div class="noUi-handle noUi-handle-lower" data-handle="0" tabindex="0" role="slider" aria-orientation="horizontal" aria-valuemin="20.0" aria-valuemax="500.0" aria-valuenow="100.0" aria-valuetext="100.00"><div class="noUi-touch-area"></div></div></div></div></div><button type="button" class="scale-control__btn js-scale-control__btn_plus"><span class="scale-control__btn-inner"><svg class="sprite-icon scale-control__btn-icon"><use xlink:href="/assets/sprite-99cebef6.svg#plus"></use></svg></span></button></div></div></div><div class="canvas-scale__group"><span class="canvas-scale__num">100%</span></div><div class="canvas-scale__group"><button type="button" class="canvas-scale__fullscreen-btn js-canvas-scale__fullscreen-btn" title="Fullscreen"><svg class="sprite-icon canvas-scale__fullscreen-btn-icon"><use xlink:href="/assets/sprite-99cebef6.svg#fullscreen-inactive"></use></svg></button></div></div></div></div></div></main></div>
102
+
103
+ <script>window.global = window;</script>
104
+
105
+
106
+
107
+
108
+ <div class="ReactModalPortal"></div><div class="ReactModalPortal"></div><div class="ReactModalPortal"></div><div class="ReactModalPortal"></div><div class="ReactModalPortal"></div><div class="ReactModalPortal"></div><div class="ReactModalPortal"></div><div class="ReactModalPortal"></div><script src="./Brick Me Creator - Brick Your Pics!_files/ywmqchtwfv6ptxpiuovl1vxflcyiehed.js.download" async=""></script>
109
+ <script type="text/javascript" id="">!function(b,e,f,g,a,c,d){b.fbq||(a=b.fbq=function(){a.callMethod?a.callMethod.apply(a,arguments):a.queue.push(arguments)},b._fbq||(b._fbq=a),a.push=a,a.loaded=!0,a.version="2.0",a.queue=[],c=e.createElement(f),c.async=!0,c.src=g,d=e.getElementsByTagName(f)[0],d.parentNode.insertBefore(c,d))}(window,document,"script","https://connect.facebook.net/en_US/fbevents.js");fbq("init","647021956006730");fbq("track","PageView");</script>
110
+ <noscript><img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=647021956006730&amp;ev=PageView&amp;noscript=1"></noscript>
111
+ <script type="text/javascript" id="">!function(d,g,e){d.TiktokAnalyticsObject=e;var a=d[e]=d[e]||[];a.methods="page track identify instances debug on off once ready alias group enableCookie disableCookie".split(" ");a.setAndDefer=function(b,c){b[c]=function(){b.push([c].concat(Array.prototype.slice.call(arguments,0)))}};for(d=0;d<a.methods.length;d++)a.setAndDefer(a,a.methods[d]);a.instance=function(b){b=a._i[b]||[];for(var c=0;c<a.methods.length;c++)a.setAndDefer(b,a.methods[c]);return b};a.load=function(b,c){var f="https://analytics.tiktok.com/i18n/pixel/events.js";
112
+ a._i=a._i||{};a._i[b]=[];a._i[b]._u=f;a._t=a._t||{};a._t[b]=+new Date;a._o=a._o||{};a._o[b]=c||{};c=document.createElement("script");c.type="text/javascript";c.async=!0;c.src=f+"?sdkid\x3d"+b+"\x26lib\x3d"+e;b=document.getElementsByTagName("script")[0];b.parentNode.insertBefore(c,b)};a.load("BV03SO2D4EIVEV2IK0R0");a.page()}(window,document,"ttq");</script><script type="text/javascript" id="" src="./Brick Me Creator - Brick Your Pics!_files/iframe_api"></div></script><script type="text/javascript" id="">!function(d,g,e){d.TiktokAnalyticsObject=e;var a=d[e]=d[e]||[];a.methods="page track identify instances debug on off once ready alias group enableCookie disableCookie".split(" ");a.setAndDefer=function(b,c){b[c]=function(){b.push([c].concat(Array.prototype.slice.call(arguments,0)))}};for(d=0;d<a.methods.length;d++)a.setAndDefer(a,a.methods[d]);a.instance=function(b){b=a._i[b]||[];for(var c=0;c<a.methods.length;c++)a.setAndDefer(b,a.methods[c]);return b};a.load=function(b,c){var f="https://analytics.tiktok.com/i18n/pixel/events.js";
113
+ a._i=a._i||{};a._i[b]=[];a._i[b]._u=f;a._t=a._t||{};a._t[b]=+new Date;a._o=a._o||{};a._o[b]=c||{};a._partner=a._partner||"Shopify";c=document.createElement("script");c.type="text/javascript";c.async=!0;c.src=f+"?sdkid\x3d"+b+"\x26lib\x3d"+e;b=document.getElementsByTagName("script")[0];b.parentNode.insertBefore(c,b)};a.load("CBGAU8RC77UDCJOUQ1J0");a.page()}(window,document,"ttq");</script><div id="batBeacon491896212587" style="width: 0px; height: 0px; display: none; visibility: hidden;"><img id="batBeacon525704979599" width="0" height="0" alt="" src="./Brick Me Creator - Brick Your Pics!_files/0" style="width: 0px; height: 0px; display: none; visibility: hidden;"><img id="batBeacon367077679255" width="0" height="0" alt="" src="./Brick Me Creator - Brick Your Pics!_files/0(1)" style="width: 0px; height: 0px; display: none; visibility: hidden;"><img id="batBeacon923925899401" width="0" height="0" alt="" src="./Brick Me Creator - Brick Your Pics!_files/0(2)" style="width: 0px; height: 0px; display: none; visibility: hidden;"><img id="batBeacon356678094007" width="0" height="0" alt="" src="./Brick Me Creator - Brick Your Pics!_files/0(3)" style="width: 0px; height: 0px; display: none; visibility: hidden;"></div><iframe id="tidio-chat-code" title="Tidio Chat code" data-gtm-yt-inspected-33180540_9="true" data-gtm-yt-inspected-33180540_119="true" data-gtm-yt-inspected-33180540_120="true" data-gtm-yt-inspected-8="true" style="display: none;" src="./Brick Me Creator - Brick Your Pics!_files/saved_resource.html"></iframe><div id="tidio-chat"><iframe title="Tidio Chat" id="tidio-chat-iframe" data-gtm-yt-inspected-33180540_9="true" data-gtm-yt-inspected-33180540_119="true" data-gtm-yt-inspected-33180540_120="true" data-gtm-yt-inspected-8="true" style="display: block; border: none; position: fixed; inset: auto 9px 35px auto; width: 94px; height: 94px; opacity: 1; color-scheme: none; background: none transparent !important; margin: 0px; max-height: 100vh; max-width: 100vw; transform: translateY(0px); transition: none 0s ease 0s !important; visibility: visible; z-index: 999999999 !important; border-radius: 47px 30px 47px 47px;" src="./Brick Me Creator - Brick Your Pics!_files/saved_resource(1).html"></iframe></div>
114
+ <script>
115
+ window[window.TiktokAnalyticsObject].instance("BV03SO2D4EIVEV2IK0R0").track("ClickButton",{"pixelMethod":"standard","is_standard_mode":"1"});
116
+ </script>
117
+
118
+ <script>
119
+ window[window.TiktokAnalyticsObject].instance("CBGAU8RC77UDCJOUQ1J0").track("ClickButton",{"pixelMethod":"standard","is_standard_mode":"1"});
120
+ </script>
121
+
122
+ <script>
123
+ window[window.TiktokAnalyticsObject].instance("BV03SO2D4EIVEV2IK0R0").track("AddToWishlist",{"pixelMethod":"standard","is_standard_mode":"1","is_button":"true"});
124
+ </script>
125
+ <div class="ReactModalPortal"></div><div class="ReactModalPortal"></div><div class="ReactModalPortal"></div><div class="ReactModalPortal"></div><script type="text/javascript" id="">window.fbq("trackCustom","ImageSelected",{source:google_tag_manager["rm"]["33180540"](30)});</script><div class="ReactModalPortal"></div><div class="ReactModalPortal"></div></body><iframe id="__JSBridgeIframe_1.0__" title="jsbridge___JSBridgeIframe_1.0__" data-gtm-yt-inspected-33180540_9="true" data-gtm-yt-inspected-33180540_119="true" data-gtm-yt-inspected-33180540_120="true" data-gtm-yt-inspected-8="true" style="display: none;" src="./Brick Me Creator - Brick Your Pics!_files/saved_resource(2).html"></iframe><iframe id="__JSBridgeIframe_SetResult_1.0__" title="jsbridge___JSBridgeIframe_SetResult_1.0__" data-gtm-yt-inspected-33180540_9="true" data-gtm-yt-inspected-33180540_119="true" data-gtm-yt-inspected-33180540_120="true" data-gtm-yt-inspected-8="true" style="display: none;" src="./Brick Me Creator - Brick Your Pics!_files/saved_resource(3).html"></iframe><iframe id="__JSBridgeIframe__" title="jsbridge___JSBridgeIframe__" data-gtm-yt-inspected-33180540_9="true" data-gtm-yt-inspected-33180540_119="true" data-gtm-yt-inspected-33180540_120="true" data-gtm-yt-inspected-8="true" style="display: none;" src="./Brick Me Creator - Brick Your Pics!_files/saved_resource(4).html"></iframe><iframe id="__JSBridgeIframe_SetResult__" title="jsbridge___JSBridgeIframe_SetResult__" data-gtm-yt-inspected-33180540_9="true" data-gtm-yt-inspected-33180540_119="true" data-gtm-yt-inspected-33180540_120="true" data-gtm-yt-inspected-8="true" style="display: none;" src="./Brick Me Creator - Brick Your Pics!_files/saved_resource(5).html"></iframe></html>
legofy/Brick Me Creator - Brick Your Pics!_files/0 ADDED
File without changes