add halo-rasterizer option for text symbolizer

- closes #1298
  - allows for much faster halo drawing and simliar quality for
    radius values in the 1-2 px range
  - also moves grid_renderer away from using freetype stroker completely
    since halo quality is not critical for this renderer
This commit is contained in:
Dane Springmeyer 2013-03-08 20:32:39 -08:00
parent e5fd3675fa
commit e66d007627
67 changed files with 783 additions and 643 deletions

View file

@ -8,6 +8,9 @@ For a complete change history, see the git log.
## Future
- Added `text-halo-rasterizer` property. Set to `fast` for lower quality but faster
halo rendering (#1298)
- Added ability to access style list from map by (name,obj) in python (#1725)
- Added `is_solid` method to python mapnik.Image and mapnik.ImageView classes (#1728)

View file

@ -340,6 +340,11 @@ void export_text_placement()
.value("CAPITALIZE",CAPITALIZE)
;
enumeration_<halo_rasterizer_e>("halo_rasterizer")
.value("FULL",HALO_RASTERIZER_FULL)
.value("FAST",HALO_RASTERIZER_FAST)
;
class_<text_symbolizer>("TextSymbolizer",
init<>())
.def(init<expression_ptr, std::string const&, unsigned, color const&>())
@ -363,6 +368,10 @@ void export_text_placement()
&text_symbolizer::clip,
&text_symbolizer::set_clip,
"Set/get the text geometry's clipping status")
.add_property("halo_rasterizer",
&text_symbolizer::get_halo_rasterizer,
&text_symbolizer::set_halo_rasterizer,
"Set/get the halo rasterizer method")
;

View file

@ -33,7 +33,9 @@
#include <mapnik/char_info.hpp>
#include <mapnik/pixel_position.hpp>
#include <mapnik/image_compositing.hpp>
#include <mapnik/text_symbolizer.hpp>
#include <mapnik/noncopyable.hpp>
#include <mapnik/value_types.hpp>
// freetype2
extern "C"
@ -343,7 +345,7 @@ public:
}
}
stroker_ptr get_stroker()
inline stroker_ptr get_stroker()
{
return stroker_;
}
@ -362,8 +364,12 @@ struct text_renderer : private mapnik::noncopyable
FT_Glyph image;
char_properties *properties;
glyph_t(FT_Glyph image_, char_properties *properties_)
: image(image_), properties(properties_) {}
~glyph_t () { FT_Done_Glyph(image);}
: image(image_),
properties(properties_) {}
~glyph_t()
{
FT_Done_Glyph(image);
}
};
typedef boost::ptr_vector<glyph_t> glyphs_t;
@ -371,57 +377,17 @@ struct text_renderer : private mapnik::noncopyable
text_renderer (pixmap_type & pixmap,
face_manager<freetype_engine> & font_manager,
stroker & s,
halo_rasterizer_e rasterizer,
composite_mode_e comp_op = src_over,
double scale_factor=1.0);
box2d<double> prepare_glyphs(text_path const& path);
void render(pixel_position const& pos);
void render_id(int feature_id, pixel_position const& pos, double min_radius=1.0);
void render_id(mapnik::value_integer feature_id,
pixel_position const& pos);
private:
void render_bitmap(FT_Bitmap *bitmap, unsigned rgba, int x, int y, double opacity)
{
int x_max=x+bitmap->width;
int y_max=y+bitmap->rows;
int i,p,j,q;
for (i=x,p=0;i<x_max;++i,++p)
{
for (j=y,q=0;j<y_max;++j,++q)
{
int gray=bitmap->buffer[q*bitmap->width+p];
if (gray)
{
pixmap_.blendPixel2(i, j, rgba, gray, opacity);
}
}
}
}
void render_bitmap_id(FT_Bitmap *bitmap,int feature_id,int x,int y)
{
int x_max=x+bitmap->width;
int y_max=y+bitmap->rows;
int i,p,j,q;
for (i=x,p=0;i<x_max;++i,++p)
{
for (j=y,q=0;j<y_max;++j,++q)
{
int gray=bitmap->buffer[q*bitmap->width+p];
if (gray)
{
pixmap_.setPixel(i,j,feature_id);
//pixmap_.blendPixel2(i,j,rgba,gray,opacity_);
}
}
}
}
pixmap_type & pixmap_;
face_manager<freetype_engine> & font_manager_;
stroker & stroker_;
halo_rasterizer_e rasterizer_;
glyphs_t glyphs_;
composite_mode_e comp_op_;
double scale_factor_;

View file

@ -46,6 +46,15 @@
namespace mapnik
{
enum halo_rasterizer_enum
{
HALO_RASTERIZER_FULL,
HALO_RASTERIZER_FAST,
halo_rasterizer_enum_MAX
};
DEFINE_ENUM(halo_rasterizer_e, halo_rasterizer_enum);
struct MAPNIK_DECL text_symbolizer : public symbolizer_base
{
// Note - we do not use boost::make_shared below as VC2008 and VC2010 are
@ -100,6 +109,8 @@ struct MAPNIK_DECL text_symbolizer : public symbolizer_base
color const& get_halo_fill() const func_deprecated;
void set_halo_radius(double radius);
double get_halo_radius() const func_deprecated;
void set_halo_rasterizer(halo_rasterizer_e rasterizer_p);
halo_rasterizer_e get_halo_rasterizer() const;
void set_label_placement(label_placement_e label_p);
label_placement_e get_label_placement() const func_deprecated;
void set_vertical_alignment(vertical_alignment_e valign);
@ -131,6 +142,7 @@ struct MAPNIK_DECL text_symbolizer : public symbolizer_base
bool largest_bbox_only() const;
private:
text_placements_ptr placement_options_;
halo_rasterizer_e halo_rasterizer_;
};
}

View file

@ -47,7 +47,7 @@ void agg_renderer<T>::process(shield_symbolizer const& sym,
text_renderer<T> ren(*current_buffer_,
font_manager_,
*(font_manager_.get_stroker()),
sym.get_halo_rasterizer(),
sym.comp_op(),
scale_factor_);

View file

@ -44,7 +44,7 @@ void agg_renderer<T>::process(text_symbolizer const& sym,
text_renderer<T> ren(*current_buffer_,
font_manager_,
*(font_manager_.get_stroker()),
sym.get_halo_rasterizer(),
sym.comp_op(),
scale_factor_);

View file

@ -45,6 +45,7 @@
namespace mapnik
{
freetype_engine::freetype_engine()
{
FT_Error error = FT_Init_FreeType( &library_ );
@ -326,15 +327,124 @@ void font_face_set::get_string_info(string_info & info, UnicodeString const& ust
ubidi_close(bidi);
}
template <typename T>
text_renderer<T>::text_renderer (pixmap_type & pixmap,
face_manager<freetype_engine> & font_manager,
stroker & s,
composite_mode_e comp_op,
double scale_factor)
void composite_bitmap(T & pixmap,
FT_Bitmap *bitmap,
unsigned rgba,
int x,
int y,
double opacity,
composite_mode_e comp_op)
{
int x_max=x+bitmap->width;
int y_max=y+bitmap->rows;
int i,p,j,q;
for (i=x,p=0;i<x_max;++i,++p)
{
for (j=y,q=0;j<y_max;++j,++q)
{
unsigned gray=bitmap->buffer[q*bitmap->width+p];
if (gray)
{
pixmap.composite_pixel(comp_op, i, j, rgba, gray, opacity);
}
}
}
}
/*
template <typename T>
void render_bitmap(T & pixmap,
FT_Bitmap *bitmap,
unsigned rgba,
int x,
int y,
double opacity)
{
int x_max=x+bitmap->width;
int y_max=y+bitmap->rows;
int i,p,j,q;
for (i=x,p=0;i<x_max;++i,++p)
{
for (j=y,q=0;j<y_max;++j,++q)
{
int gray=bitmap->buffer[q*bitmap->width+p];
if (gray)
{
pixmap_.blendPixel2(i, j, rgba, gray, opacity);
}
}
}
}
*/
template <typename T>
void render_halo(T & pixmap,
FT_Bitmap *bitmap,
unsigned rgba,
int x,
int y,
int halo_radius,
double opacity)
{
int x_max=x+bitmap->width;
int y_max=y+bitmap->rows;
int i,p,j,q;
for (i=x,p=0;i<x_max;++i,++p)
{
for (j=y,q=0;j<y_max;++j,++q)
{
int gray = bitmap->buffer[q*bitmap->width+p];
if (gray)
{
for (int n=-halo_radius; n <=halo_radius; ++n)
for (int m=-halo_radius;m <= halo_radius; ++m)
pixmap.blendPixel2(i+m,j+n,rgba,gray,opacity);
}
}
}
}
template <typename T>
void render_halo_id(T & pixmap,
FT_Bitmap *bitmap,
mapnik::value_integer feature_id,
int x,
int y,
int halo_radius)
{
int x_max=x+bitmap->width;
int y_max=y+bitmap->rows;
int i,p,j,q;
for (i=x,p=0;i<x_max;++i,++p)
{
for (j=y,q=0;j<y_max;++j,++q)
{
int gray = bitmap->buffer[q*bitmap->width+p];
if (gray)
{
for (int n=-halo_radius; n <=halo_radius; ++n)
for (int m=-halo_radius;m <= halo_radius; ++m)
pixmap.setPixel(i+m,j+n,feature_id);
}
}
}
}
template <typename T>
text_renderer<T>::text_renderer(pixmap_type & pixmap,
face_manager<freetype_engine> & font_manager,
halo_rasterizer_e rasterizer,
composite_mode_e comp_op,
double scale_factor)
: pixmap_(pixmap),
font_manager_(font_manager),
stroker_(s),
rasterizer_(rasterizer),
comp_op_(comp_op),
scale_factor_(scale_factor) {}
@ -416,26 +526,6 @@ box2d<double> text_renderer<T>::prepare_glyphs(text_path const& path)
return box2d<double>(bbox.xMin, bbox.yMin, bbox.xMax, bbox.yMax);
}
template <typename T>
void composite_bitmap(T & pixmap, FT_Bitmap *bitmap, unsigned rgba, int x, int y, double opacity, composite_mode_e comp_op)
{
int x_max=x+bitmap->width;
int y_max=y+bitmap->rows;
int i,p,j,q;
for (i=x,p=0;i<x_max;++i,++p)
{
for (j=y,q=0;j<y_max;++j,++q)
{
unsigned gray=bitmap->buffer[q*bitmap->width+p];
if (gray)
{
pixmap.composite_pixel(comp_op, i, j, rgba, gray, opacity);
}
}
}
}
template <typename T>
void text_renderer<T>::render(pixel_position const& pos)
{
@ -453,24 +543,43 @@ void text_renderer<T>::render(pixel_position const& pos)
double halo_radius = itr->properties->halo_radius * scale_factor_;
//make sure we've got reasonable values.
if (halo_radius <= 0.0 || halo_radius > 1024.0) continue;
stroker_.init(halo_radius);
FT_Glyph g;
error = FT_Glyph_Copy(itr->image, &g);
if (!error)
{
FT_Glyph_Transform(g,0,&start);
FT_Glyph_Stroke(&g,stroker_.get(),1);
error = FT_Glyph_To_Bitmap( &g,FT_RENDER_MODE_NORMAL,0,1);
if ( ! error )
if (rasterizer_ == HALO_RASTERIZER_FULL)
{
FT_BitmapGlyph bit = (FT_BitmapGlyph)g;
composite_bitmap(pixmap_, &bit->bitmap, itr->properties->halo_fill.rgba(),
bit->left,
height - bit->top,
itr->properties->text_opacity,
comp_op_
);
stroker_ptr stk = font_manager_.get_stroker();
stk->init(halo_radius);
FT_Glyph_Stroke(&g,stk->get(),1);
error = FT_Glyph_To_Bitmap( &g,FT_RENDER_MODE_NORMAL,0,1);
if (!error)
{
FT_BitmapGlyph bit = (FT_BitmapGlyph)g;
composite_bitmap(pixmap_,
&bit->bitmap,
itr->properties->halo_fill.rgba(),
bit->left,
height - bit->top,
itr->properties->text_opacity,
comp_op_);
}
}
else
{
error = FT_Glyph_To_Bitmap( &g,FT_RENDER_MODE_NORMAL,0,1);
if (!error)
{
FT_BitmapGlyph bit = (FT_BitmapGlyph)g;
render_halo(pixmap_,
&bit->bitmap,
itr->properties->halo_fill.rgba(),
bit->left,
height - bit->top,
halo_radius,
itr->properties->text_opacity);
}
}
}
FT_Done_Glyph(g);
@ -490,7 +599,9 @@ void text_renderer<T>::render(pixel_position const& pos)
// bit->left,
// height - bit->top, itr->properties->text_opacity);
composite_bitmap(pixmap_, &bit->bitmap, itr->properties->fill.rgba(),
composite_bitmap(pixmap_,
&bit->bitmap,
itr->properties->fill.rgba(),
bit->left,
height - bit->top,
itr->properties->text_opacity,
@ -500,9 +611,9 @@ void text_renderer<T>::render(pixel_position const& pos)
}
}
template <typename T>
void text_renderer<T>::render_id(int feature_id, pixel_position const& pos, double min_radius)
void text_renderer<T>::render_id(mapnik::value_integer feature_id,
pixel_position const& pos)
{
FT_Error error;
FT_Vector start;
@ -515,22 +626,21 @@ void text_renderer<T>::render_id(int feature_id, pixel_position const& pos, doub
typename glyphs_t::iterator itr;
for (itr = glyphs_.begin(); itr != glyphs_.end(); ++itr)
{
stroker_.init(std::max(itr->properties->halo_radius, min_radius));
FT_Glyph g;
error = FT_Glyph_Copy(itr->image, &g);
if (!error)
{
FT_Glyph_Transform(g,0,&start);
FT_Glyph_Stroke(&g,stroker_.get(),1);
error = FT_Glyph_To_Bitmap( &g,FT_RENDER_MODE_NORMAL,0,1);
//error = FT_Glyph_To_Bitmap( &g,FT_RENDER_MODE_MONO,0,1);
if ( ! error )
{
FT_BitmapGlyph bit = (FT_BitmapGlyph)g;
render_bitmap_id(&bit->bitmap, feature_id,
bit->left,
height - bit->top);
render_halo_id(pixmap_,
&bit->bitmap,
feature_id,
bit->left,
height - bit->top,
itr->properties->halo_radius);
}
}
FT_Done_Glyph(g);
@ -541,11 +651,18 @@ void text_renderer<T>::render_id(int feature_id, pixel_position const& pos, doub
boost::mutex freetype_engine::mutex_;
#endif
std::map<std::string,std::pair<int,std::string> > freetype_engine::name2file_;
template void text_renderer<image_32>::render(pixel_position const&);
template text_renderer<image_32>::text_renderer(image_32&, face_manager<freetype_engine>&, stroker&, composite_mode_e, double);
template text_renderer<image_32>::text_renderer(image_32&,
face_manager<freetype_engine>&,
halo_rasterizer_e,
composite_mode_e,
double);
template box2d<double>text_renderer<image_32>::prepare_glyphs(text_path const&);
template void text_renderer<grid>::render_id(int, pixel_position const& , double );
template text_renderer<grid>::text_renderer(grid&, face_manager<freetype_engine>&, stroker&, composite_mode_e, double);
template void text_renderer<image_32>::render(pixel_position const&);
template void text_renderer<grid>::render_id(mapnik::value_integer,
pixel_position const&);
template text_renderer<grid>::text_renderer(grid&,
face_manager<freetype_engine>&,
halo_rasterizer_e,
composite_mode_e, double);
template box2d<double>text_renderer<grid>::prepare_glyphs(text_path const& );
}

View file

@ -50,7 +50,7 @@ void grid_renderer<T>::process(shield_symbolizer const& sym,
text_renderer<T> ren(pixmap_,
font_manager_,
*(font_manager_.get_stroker()),
sym.get_halo_rasterizer(),
sym.comp_op(),
scale_factor_);
@ -78,7 +78,7 @@ void grid_renderer<T>::process(shield_symbolizer const& sym,
sym.comp_op());
ren.prepare_glyphs(placements[ii]);
ren.render_id(feature.id(), placements[ii].center, 2);
ren.render_id(feature.id(), placements[ii].center);
}
}
if (placement_found)

View file

@ -43,7 +43,7 @@ void grid_renderer<T>::process(text_symbolizer const& sym,
text_renderer<T> ren(pixmap_,
font_manager_,
*(font_manager_.get_stroker()),
sym.get_halo_rasterizer(),
sym.comp_op(),
scale_factor_);
@ -53,7 +53,7 @@ void grid_renderer<T>::process(text_symbolizer const& sym,
for (unsigned int ii = 0; ii < placements.size(); ++ii)
{
ren.prepare_glyphs(placements[ii]);
ren.render_id(feature.id(), placements[ii].center, 2);
ren.render_id(feature.id(), placements[ii].center);
}
}
if (placement_found) pixmap_.add_feature(feature);

View file

@ -1159,6 +1159,9 @@ void map_parser::parse_text_symbolizer(rule & rule, xml_node const& sym)
text_symbolizer text_symbol = text_symbolizer(placement_finder);
parse_symbolizer_base(text_symbol, sym);
optional<halo_rasterizer_e> halo_rasterizer = sym.get_opt_attr<halo_rasterizer_e>("halo-rasterizer");
if (halo_rasterizer) text_symbol.set_halo_rasterizer(*halo_rasterizer);
rule.append(text_symbol);
}
catch (const config_error & ex)

View file

@ -254,6 +254,11 @@ public:
add_font_attributes( sym_node, sym);
serialize_symbolizer_base(sym_node, sym);
text_symbolizer dfl;
if (sym.get_halo_rasterizer() != dfl.get_halo_rasterizer() || explicit_defaults_)
{
set_attr(sym_node, "halo-rasterizer", sym.get_halo_rasterizer());
}
}
void operator () ( building_symbolizer const& sym )

View file

@ -34,6 +34,15 @@
namespace mapnik
{
static const char * halo_rasterizer_strings[] = {
"full",
"fast",
""
};
IMPLEMENT_ENUM( halo_rasterizer_e, halo_rasterizer_strings )
static const char * label_placement_strings[] = {
"point",
"line",
@ -92,7 +101,8 @@ IMPLEMENT_ENUM( text_transform_e, text_transform_strings )
text_symbolizer::text_symbolizer(text_placements_ptr placements)
: symbolizer_base(),
placement_options_(placements)
placement_options_(placements),
halo_rasterizer_(HALO_RASTERIZER_FULL)
{
}
@ -101,7 +111,8 @@ text_symbolizer::text_symbolizer(expression_ptr name, std::string const& face_na
float size, color const& fill,
text_placements_ptr placements)
: symbolizer_base(),
placement_options_(placements)
placement_options_(placements),
halo_rasterizer_(HALO_RASTERIZER_FULL)
{
set_name(name);
set_face_name(face_name);
@ -112,7 +123,8 @@ text_symbolizer::text_symbolizer(expression_ptr name, std::string const& face_na
text_symbolizer::text_symbolizer(expression_ptr name, float size, color const& fill,
text_placements_ptr placements)
: symbolizer_base(),
placement_options_(placements)
placement_options_(placements),
halo_rasterizer_(HALO_RASTERIZER_FULL)
{
set_name(name);
set_text_size(size);
@ -121,7 +133,9 @@ text_symbolizer::text_symbolizer(expression_ptr name, float size, color const& f
text_symbolizer::text_symbolizer(text_symbolizer const& rhs)
: symbolizer_base(rhs),
placement_options_(rhs.placement_options_) /*TODO: Copy options! */
placement_options_(rhs.placement_options_),
halo_rasterizer_(rhs.halo_rasterizer_)
/*TODO: Copy options! */
{
}
@ -130,9 +144,7 @@ text_symbolizer& text_symbolizer::operator=(text_symbolizer const& other)
if (this == &other)
return *this;
placement_options_ = other.placement_options_; /*TODO: Copy options? */
MAPNIK_LOG_DEBUG(text_symbolizer) << "text_symbolizer: TODO - Metawriter (text_symbolizer::operator=)";
halo_rasterizer_ = other.halo_rasterizer_;
return *this;
}
@ -338,6 +350,16 @@ double text_symbolizer::get_halo_radius() const
return placement_options_->defaults.format.halo_radius;
}
void text_symbolizer::set_halo_rasterizer(halo_rasterizer_e rasterizer_p)
{
halo_rasterizer_ = rasterizer_p;
}
halo_rasterizer_e text_symbolizer::get_halo_rasterizer() const
{
return halo_rasterizer_;
}
void text_symbolizer::set_label_placement(label_placement_e label_p)
{
placement_options_->defaults.label_placement = label_p;

View file

@ -400,6 +400,7 @@ compile_get_opt_attr(label_placement_e);
compile_get_opt_attr(vertical_alignment_e);
compile_get_opt_attr(horizontal_alignment_e);
compile_get_opt_attr(justify_alignment_e);
compile_get_opt_attr(halo_rasterizer_e);
compile_get_opt_attr(expression_ptr);
compile_get_attr(std::string);
compile_get_attr(filter_mode_e);

View file

@ -87,6 +87,7 @@ def test_text_symbolizer():
s = mapnik.TextSymbolizer()
eq_(s.comp_op,mapnik.CompositeOp.src_over)
eq_(s.clip,True)
eq_(s.halo_rasterizer,mapnik.halo_rasterizer.FULL)
# https://github.com/mapnik/mapnik/issues/1420
eq_(s.text_transform, mapnik.text_transform.NONE)

View file

@ -21,13 +21,13 @@
" !!!!! ",
" !!!!! ",
" !!!! ",
" ! ! ",
" !!! ",
" !!! ",
" !!! ",
" !!!! ",
" !!!!! ",
" !!!!!!! ",
" !!!!!! ",
" !!!!! ",
" !! ! ",
" !!!! ",
" ! !!! ",
" !!!! ",
" !!!!! ",
@ -42,7 +42,7 @@
" !!!! ",
" !! ",
" ",
" !!! ",
" !!!! ",
" !!!! ",
" !!!! ",
" !!!! ",
@ -59,51 +59,51 @@
" !!! ",
" !!!! ",
" !!!! ",
" ",
" ! ",
" !! ",
" !!!! ",
" !!!! ",
" !!! ",
" !!!! ",
" !!!! ",
" !!!! ",
" !!!! ",
" ! ! ",
" !!! ",
" ! ",
" !!! ",
" !!!! ",
" !!!! ",
" !!! ",
" !!! ",
" !!!! ",
" !!!! ",
" !!!! ",
" !!! ",
" ",
" !! ",
" !!! ",
" !!! ",
" !!!! ",
" !!!! ",
" !!! ",
" !!!! ",
" !!! ",
" ! ! ",
" ! ! ! ",
" !! ",
" !!!! ",
" !!!!! ",
" !!!!! ",
" !!!!!! ",
" !!!! ",
" !! ! !! ",
" !!!! ",
" !!!!! ",
" !!!!!! ",
" !!!! ",
" !!! !!! ",
" !!!!!!!! ",
" !!!!!! ",
" !! !!! ",
" !!!!!! ",
" !!!!!!! ",
" !!!!!! ! ",
" !! !!!! ",
" !!!!! ! ",
" !!!!!!!! ",
" !!!!!! !! ",
" !!! !!!! ",
" !!!!! !! ",
" !!!!!!!! ",
" !!!!!! ",
" !! "
" !!! "
]
}

View file

@ -27,10 +27,10 @@
" ",
" ",
" ! # $ % & ' ( ) * + ",
" ! ",
" ! ## $$$$ %%%%% &&&&& '''''' ((((((((( )))))))))) *********** ++++++++++ ",
" $ % % &&&&& ''''' ((((((((( ))))))))) ********** ++++++++++ ",
" )) ** * ++++++++++ ",
" ",
" # $$$ %%% &&&& ''''' (( ( )) ) ))) ** *** ++ + ",
" ' ((((((( )) ))))) * * * + + ++++ ",
" ",
" ",
" ",
" ",

View file

@ -27,14 +27,14 @@
" ",
" ",
" ! # $ % & ' ( ) * + ",
" $ & * ",
"!!!!!!! !!!! !! $$$$$ $$$ $$$$$$$$$$ &&&&&&&&&&&&& &&& ((((((((( ((((((((((( ********* ******** ",
"!!!!!!!!!!!!!!! $$$$$$$$$$$$$$$$$$$$ &&&&&&&&&&&&&&&& (((((((((((((((((((( ******** ********* ",
"!!!!!!!!!!!!!!! $$$$$$$$$$$$$$$$$$$$ &&&&&&&& &&&&&&& (((((((((((((((((((( ******** ********* ",
" !!!!!! !!!!!!! $$$$$$$$$$$$$$$$$$$$ &&&&&&&&&&& & && ( (((((((((((((((((( ****** *********** ",
" !!!!!!!!!!! $$$$$$$$$$$$ &&&&&&&&&&& ((((((((((((( *********** ",
" !!!!!!!!!!! $$$$$$$$$$$$$ &&&&&&&&&&& ((((((((((((( *********** ",
" ! $ $ & * ",
" ",
"! ! $$$ $ $ &&& & && ((( ( ** ",
" !!! ! !!! ! $$ $ $ $$$ $$$ &&& & &&& & ( ((( ( ((((( ( * * * *** ",
" ! !! !!! $$ $ $ $$$ $ $ & && && & ( ( (( (( ((( ( * * ** ",
" ",
" !!!! !!! $$$$$$$$$ $ &&&&&&&& (((((((((( ******** ",
" !!!!!!! $$$$$$$$$ &&&& & (((((( ( ( ***** **** ",
" ",
" ",
" ",
" ",

View file

@ -27,14 +27,14 @@
" ",
" ",
" ! # $ % & ' ( ) * + ",
" $ & * ",
"!!!!!!! !!!! !! $$$$$ $$$ $$$$$$$$$$ &&&&&&&&&&&&& &&& ((((((((( ((((((((((( ********* ******** ",
"!!!!!!!!!!!!!!! $$$$$$$$$$$$$$$$$$$$ &&&&&&&&&&&&&&&& (((((((((((((((((((( ******** ********* ",
"!!!!!!!!!!!!!!! $$$$$$$$$$$$$$$$$$$$ &&&&&&&& &&&&&&& (((((((((((((((((((( ******** ********* ",
" !!!!!! !!!!!!! $$$$$$$$$$$$$$$$$$$$ &&&&&&&&&&& & && ( (((((((((((((((((( ****** *********** ",
" !!!!!!!!!!! $$$$$$$$$$$$ &&&&&&&&&&& ((((((((((((( *********** ",
" !!!!!!!!!!! $$$$$$$$$$$$$ &&&&&&&&&&& ((((((((((((( *********** ",
" ! $ $ & * ",
" ",
"! ! $$$ $ $ &&& & && ((( ( ** ",
" !!! ! !!! ! $$ $ $ $$$ $$$ &&& & &&& & ( ((( ( ((((( ( * * * *** ",
" ! !! !!! $$ $ $ $$$ $ $ & && && & ( ( (( (( ((( ( * * ** ",
" ",
" !!!! !!! $$$$$$$$$ $ &&&&&&&& (((((((((( ******** ",
" !!!!!!! $$$$$$$$$ &&&& & (((((( ( ( ***** **** ",
" ",
" ",
" ",
" ",

View file

@ -27,11 +27,11 @@
" ",
" ",
" ! # $ % & ' ( ) * + ",
" $ & * ",
"!!!!!!! !!!! !! $$$$$ $$$ $$$$$$$$$$ &&&&&&&&&&&&& &&& ((((((((( ((((((((((( ********* ******** ",
"!!!!!!!!!!!!!!! $$$$$$$$$$$$$$$$$$$$ &&&&&&&&&&&&&&&& (((((((((((((((((((( ******** ********* ",
"!!!!!!!!!!!!!!! $$$$$$$$$$$$$$$$$$$$ &&&&&&&& &&&&&&& (((((((((((((((((((( ******** ********* ",
" !!!!!! !!!!!!! $$$$$$$$$$$$$$$$$$$$ &&&&&&&& && & && ( (((((((((((((((((( ****** * ********* ",
" ",
"! ! $$$ $ $ &&& & && ((( ( ** ",
" !!! ! !!! ! $$ $ $ $$$ $$$ &&& & &&& & ( ((( ( ((((( ( * * * *** ",
" ! !! !!! $$ $ $ $$$ $ $ & && && & ( ( (( (( ((( ( * * ** ",
" ",
" ",
" ",
" ",

View file

@ -17,33 +17,33 @@
" ",
" ",
" ",
" !! !! ! !! !!! ! !! !! ! ",
" !!!!!!!!!!!! !!!!!!!!!!!!! !!!!!!!!!!!! ",
" !!!!!!!!!!!!! !!!!!!!!!!!! !!!!!!!!!!!!! ",
" ! !! ! ! !! ! !!! ! ! ",
" !!!!!!! !!!!!!! !!!!!!! ",
" !!!!!!! !!!!!!! !!!!!!! ",
" ! ! ",
" ",
" !!!!!! ! ! ! ! ! !!! !!!!!! ! ! ",
" ! ! !!! ! !! !! ! !! ! ! !!! ! ",
" ",
" !! ! !! ! ! !!!! ! ",
" !!! ! ! !! !!!! ! ",
" ",
" ",
" ",
" !! !! ! !! !! ! ",
" !!!!!!!!!!!! !!!!!!!!!!!! ",
" !!!!!!!!!!!!! !!!!!!!!!!!!! ",
" ! !! ! ! ! !!! ! ! ",
" !!!!!!! !!!!!!! ",
" !!!!!!! !!!!!!! ",
" ! ! ",
" ",
" ",
" !!!!!! ! ! !!!!!! ! ! ",
" ! ! !!! ! ! ! !!! ! ",
" ! ",
" !! ! !!!! ! ",
" !!! ! !!!! ! ",
" ",
" ",
" ",
" !! !! ! !! !!! ! !! !! ! ",
" !!!!!!!!!!!! !!!!!!!!!!!!! !!!!!!!!!!!! ",
" !!!!!!!!!!!!! !!!!!!!!!!!! !!!!!!!!!!!!! ",
" ! !! ! ! !! ! !!! ! ! ",
" !!!!!!! !!!!!!! !!!!!!! ",
" !!!!!!! !!!!!!! !!!!!!! ",
" ! ! ",
" ",
" ",
" !!!!!! ! ! ! ! ! !!! !!!!!! ! ! ",
" ! ! !!! ! !! !! ! !! ! ! !!! ! ",
" ",
" !! ! !! ! ! !!!! ! ",
" !!! ! ! !! !!!! ! ",
" ",
" ",
" ",
" ",

View file

@ -5,9 +5,9 @@
"-400",
"-461",
"-302",
"-112",
"-115",
"-117",
"-112",
"-118"
],
"data": {},
@ -30,38 +30,38 @@
" ",
" ",
" ",
" !! ## ",
" !! !!!!!!!!!! ! ## ####### # ",
" !!!!!!!! !!!!!!!!!!!!! ####### ############# ",
" !!!!!!!! !!!!!!!!!!!!!! ######### ############## ",
" !! !!!!!!!!!!!!!!!!!!! !!!!!!! ## ####### ######## ## ####### $$$$$$ ",
" %% %% %%% !!!!!! !! ! !!!!!! ###### ## ## ##### $$ $$$ $$$ ",
" %% %%%%%%%% %% !!!!!!!! !!!!!! ##### # ####### $$ $$$$$$$$$$$ $ $$ ",
" % %%%%%%%%%%%%%%%%%%%% %% !!!! ! !!! ###### #### $ $$$$$$$$$$ $$$$$$$$$$$$ ",
" % %%%%%%%%%%%%%%%%%% %%% % !!!!! ! ! ###### # # $ $$$$$$$$$$ $$$$$$$$$$$$ $ ",
" % %%%%%%%% %%%%%%%%%% % !!!!!! ! !! ##### # # $$$$$$ $$$$$$$$ $ ",
" % %%%% % %%%%%%%% !!!!! !!!!! ##### ##### $$ $$$$$ $ ",
" %%%%% %%%%% % !!! !!!!! #### ##### $ $$$$ $ ",
" % %%%% %%% % ! ! !!! # #### $ $$$$ $ ",
" %%%%% %%%%% !!!! ##### $$$ $$$ $ ",
" %%%%% %%% ! &&&& & & !!!!! ' ##### $$$$ $$$$$ ",
" %%%% (((( ((( ((( %%%% &&&&& &&&& &&&&&&&&& !!!!! # '''''' '''''''' #### $$$$ )))))) ))))) )) $$$$$ ",
" % %% (((((((((((((((((((((((((((((( !!!! &&&&&&&&&&&&&& !!! # ## '''''''''''''''' # $$$$ )))))))))))))))))))))))))) ",
" % (((((((( (((( %%%%% !!!! && && & ! !!! #### ''''''''' ' ' # ### $$$$ ))))))))))) )) $$$$$ ",
" % %%%%% !!!! !!! #### # ### $$$$ $$$ $ ",
" %%% % !!! ! ! !!! ### # #### $$$$$ $$$ ",
" % %% %%% !!!! !!!! #### ##### $$$$$ $$$$$ ",
" % %%% %%% % !!! ! !!!!! ### # # #### $ $$$$$ $$$ $$ ",
" % %%%% %%%%%%% !!!! ! !!!!!! #### # ###### $$$ $$$ $$$$$$$ $ ",
" %%%%%%%%% % %%%%%%%%%% !!!! ! !!!!!! #### # ###### $ $$$$$$$$$$ $$$$$$$$$$ ",
" %%%%%%%%%%%%%%%%%%%%%%%%% % !!!!! ! ! !!!! ##### # ## #### $ $$$$$$$$$$$$$$$$ $$$$$ $ ",
" % %%%%%% %%%%%%%%%%%%%% !!!!!! ! ! !! ### ### # ## ## $$$$$$ $$$$$$$$$$ $$$ $ ",
" %%%%%% %%%%%%%%%%%% !!!!! ! !! !!! !!! ##### ## ## ## $$$$$$$$$$$$$$ $$ ",
" %%% %%% !!!!!!!! !!!!!!! !! !!!! ######## ######### #### $$$$$ $$$$$ ",
" !!!!! !!! !!!!!!!!! ###### ### ######### ",
" !!! !!!!!!!!!! !!!!!! ### ########## ####### ",
" !!!!!!!!!! !!!! ########## ##### ",
" !!!!!!!!! ######### ",
" !! ",
" ! !!!!!!! # ####### ",
" !!!!!!! !!!!!!!!! !!! ####### ############# ",
" !!!!!!!! !!!!!!!!! !!!! ## ##### ########## ### ",
" !! !!!!! !!!!!!!!!!! !!!!! # ###### ######## # ##### $$$$$$ ",
" %% %%% !!!! ! !! ! !!!!! ### # ## ## ##### $$ $$$ ",
" %% %%%%%%% %% !!!!!!! !! !! ##### # ## ### $$ $ $$$$$$$ $ $ ",
" % %%%%%%%%%% %%%%%%%% %% !!!! ! !!! #### # ### $ $$$$$$$$$ $$$$$$$ $$ $ ",
" % %%%%%%%%%%%%%%%%%% %% % !!! ! ! #### # # $ $$$$$$$$$$ $ $$$$$$$$$ $ ",
" % %%% %%% %%% %%% % !!!!! ! ! ##### # # $$$$$ $$$$$$$ $ ",
" % %%%% %%%%% % !!!!! !!!!! ### # ### $ $$$$ $ ",
" %%%%% %%%%% % !! !!!!! #### ##### $ $$$$ $ ",
" % %%%% %%% % ! ! !!! # ### $ $$$ $ ",
" %%%% % % % !!!! # ## $$$ $$$ $ ",
" %%%%% %%% ! !! # ## $$$ $ $$ ",
" %%%% &&&& & && %%% ''''' '''' '''''''' !!!!! # (((((( (((( ((( ### $$$$ )))))) )) ) )) $$$$$ ",
" % % &&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ! !! '''''''' '''' ! ! # (((((((((( (((( # $$ $ )))))))))) ))))))))))))))) ",
" % &&&&&&&& &&& %%%% !!!! ' ' ! !!! #### ( ( # ### $$$ ))))))))) ) $$ $ ",
" % %%%%% !!! !!! #### # ### $$$ $$$ $ ",
" %%% % !!! ! ! !!! ## # ### $$$$ $$$ ",
" % % % !!! !!!! ### # ### $$$$ $$$$$ ",
" % %% %% % !!! ! ! !!! ### # # ### $ $$$$$ $$ $$ ",
" % %%% %%%%%% !!! ! !!!!!! ### # ###### $$$ $$$ $$$$ $ ",
" %%%%%%%% % %%%%% % !!!! ! !!!!!! ### # ###### $ $$$$$ $ $$$$$$$$$ ",
" % %%%%%%%%%%%%% %%%%%%%%% % !!!!! ! ! !!! ### # # ## ### $ $$$$$$$$$$$$$$$$ $$$$$ $ ",
" % %%%%%% %%%%%%%%%%%% % ! !! ! ! ! ## ## # ## ## $$ $$$ $$$$$$$$$$ $ $ ",
" %% %% %%%%%%% %%%% !!!!! !! !!! ! #### ## ## # $$$$$$$$$$$$$$ $$ ",
" %%% %%% !!!!!! !!!!!!! !! # ##### ######### ### $$$$$ $$$$$ ",
" !!!!! !!! !!!!!!!! ###### ### ######## ",
" !! !!!!!!!!!! !!!!!! ## ########## ###### ",
" !!!!!! !!! ! ! ##### #### # ## ",
" !!! !! ## #### ",
" ",
" ",
" ",

View file

@ -27,7 +27,7 @@
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
" !!!!!!!!!!! !!!!!!!!!!! ",
" ! ! ! ! ",
" ############################################# ",
" ############################################# ",
" ############################################# ",

View file

@ -6,9 +6,9 @@
"210",
"208",
"240",
"206",
"202",
"200",
"206",
"204"
],
"data": {},
@ -36,11 +36,11 @@
" ",
" ",
" ",
" !!! ! ",
" ",
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
" ! ",
" ",
" ",
" ",
" ",
@ -48,7 +48,7 @@
" ########################################################################################## ",
" ########################################################################################## ",
" ########################################################################################## ",
" ### ### ## # ",
" # # # ",
" ",
" ",
" ",
@ -58,7 +58,7 @@
" $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ",
" $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ",
" $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ",
" $$$ $$$ ",
" $ $ ",
" ",
" ",
" ",
@ -73,22 +73,22 @@
" ",
" ",
" ",
" ' '' (((((( ",
" ))))) ''''''''''''''''''' ((((((((((( ",
" ))))))))))) ''''''''''''''''''' (((((((((((( ",
" )))))))))))) ''''''''''''''''''' ((((( ((((( ",
" ))))) ))))) ''''''''''' ''''''' (((( (((( ",
" ))) ))) ((( (((( ",
" )))) )))) (((( ((( ",
" ))) ))) (((( (((( ",
" ))) ))) ((( ((( ",
" )))) )))) ((( (((( ",
" ))) )))) (((( (((( ",
" )))) )))) (((((((((((( ",
" ))))))))))))) ((((((((((( ",
" ))))))))))) ******************* (((((((( ",
" )))))))) ******************* ((( ",
" ))) ******************* ",
" '''''' ",
" ((((( ))))))))))))))))))) ''''''''''' ",
" ((((((((((( ))))))))))))))))))) '''''''''''' ",
" (((((((((((( ))))))))))))))))))) ''''' ''''' ",
" ((((( ((((( '''' '''' ",
" ((( ((( ''' '''' ",
" (((( (((( '''' ''' ",
" ((( ((( '''' '''' ",
" ((( ((( ''' ''' ",
" (((( (((( ''' '''' ",
" ((( (((( '''' '''' ",
" (((( (((( '''''''''''' ",
" ((((((((((((( ''''''''''' ",
" ((((((((((( ******************* '''''''' ",
" (((((((( ******************* ''' ",
" ((( ******************* ",
" ",
" ",
" ",

View file

@ -52,7 +52,6 @@
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
" !!!!!!!!!!! !!!!!!!!!!! ",
" ",
" ",
" ",
@ -60,11 +59,13 @@
" ",
" ",
" ",
" # ### # # # # # ",
" ",
" ",
" ######################################################################################################################################## ",
" ######################################################################################################################################## ",
" ######################################################################################################################################## ",
" ##### ### ####### ## ### # #### ### ###### #### #### ## ########## ## ##### ### ",
" ## ## # # ",
" ",
" ",
" ",
" ",
@ -75,22 +76,21 @@
" ",
" ",
" ",
" $ $$ $$ $ $$ ",
" $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ",
" $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ",
" $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ",
" $$$ $$$$$ $$$ $$ $ $$$ $$ $$$$$ $ $$$$ $$$ ",
" $ $ ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" %% % %% % % % %%%%%%%%% %%%%%%%%%%%%%%%% % %%%%%% %% %%%% %%%%%%%% %%%%%%%% %%% ",
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
" %% % % %% %%% %%%%%% %%% % % % %% %% % %% %% % ",
" %% %% % % ",
" ",
" ",
" ",
@ -98,7 +98,7 @@
" &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ",
" &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ",
" &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ",
" &&& &&& & && & ",
" ",
" ",
" ",
" ",
@ -108,7 +108,7 @@
" ((((((( )))))))))))))))))))))))))))) '''''''''''''' ",
" ((((((((((( )))))))))))))))))))))))))))) ''''''' '''''''' ",
" ((((((((((((((( )))))))))))))))))))))))))))) ''''' ''''' ",
" (((((( (((((( ))))))))))))))))))) ''' ''' ",
" (((((( (((((( ''' ''' ",
" (((( (((( '''' '''' ",
" ((( (((( ''' ''' ",
" (((( ((( '''' '''' ",

View file

@ -61,7 +61,7 @@
" ",
" ",
" ",
" !!!! !! ",
" ",
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
@ -80,8 +80,8 @@
" #################################################################################################################################################################################### ",
" #################################################################################################################################################################################### ",
" #################################################################################################################################################################################### ",
" ################## ######## ############################# ########### ############ ",
" ## ## ## # ",
" # # # # # # # # # ## # # ",
" ",
" ",
" ",
" ",
@ -100,8 +100,9 @@
" $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ",
" $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ",
" $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ",
" $$$$$$$$$ $$$$$$$ $$$$$$$$$$$$$$$$$$ $$$$$$$$$$$ ",
" $$ $$ ",
" $ $ ",
" ",
" ",
" ",
" ",
" ",
@ -111,22 +112,21 @@
" ",
" ",
" ",
" %% % %% % % % %%%%%%%%% %%%%%%%%%%%%%%%% % %%%%%% %% %%%% %%%%%%%% %%%%%%%% %%% ",
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
" %% % % %% %%% %%%%%% %%% % % % %% %% % %% %% % ",
" %% %% % % ",
" ",
" ",
" ",
" ",
" ",
" ",
" & & & & & & ",
" &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ",
" &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ",
" &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ",
" & &&&&&&&&&&& &&&& &&& && &&&& && &&&&&&&&&& &&&& & &&& &&&& &&&& &&&&&&&&&&&&& &&&& &&& &&&&&&& & && &&&&&&&&&&&&&& ",
" & & & ",
" &&& && & & & ",
" ",
" ",
" ",
" ",
@ -139,7 +139,7 @@
" ((((((( )))))))))))))))))))))))))))))))))))))) ''''''''''''''''' ",
" (((((((((((( )))))))))))))))))))))))))))))))))))))) '''''''' '''''''' ",
" ((((((((((((((((( )))))))))))))))))))))))))))))))))))))) '''''' '''''' ",
" (((((((( (((((((( ))))))))))) ))))))) '''' '''' ",
" (((((((( (((((((( '''' '''' ",
" (((((( (((((( '''' '''' ",
" (((( ((((( ''' ''' ",
" (((( ((( '''' ''' ",

View file

@ -27,7 +27,7 @@
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
" !!!!!!!!!!!!!!!!!!!!!!! ",
" ! ! ! ",
" ############################################# ",
" ############################################# ",
" ############################################# ",

View file

@ -36,11 +36,11 @@
" ",
" ",
" ",
" !!! ! ",
" ",
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
" ! ! ! ",
" ",
" ",
" ",
" ",
@ -58,7 +58,7 @@
" $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ",
" $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ",
" $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ",
" $$ $$ ",
" ",
" ",
" ",
" ",

View file

@ -52,7 +52,6 @@
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
" !!!!!!!!!!! !!!!!!!!!!! ",
" ",
" ",
" ",
@ -60,11 +59,13 @@
" ",
" ",
" ",
" # ## ## # # ## ## ",
" ",
" ",
" ######################################################################################################################################## ",
" ######################################################################################################################################## ",
" ######################################################################################################################################## ",
" ######### ### ### ######## ######## # ######### ######## ## ####### ### ######## ",
" ## ## ## # ",
" ",
" ",
" ",
" ",
@ -75,11 +76,10 @@
" ",
" ",
" ",
" $ $$ $$$$ $ ",
" $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ",
" $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ",
" $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ",
" $$$$ $$$$ $$$$ $ $ $ $ $ $ $ $$$$ $$ $ $$ $ ",
" $$ $$ ",
" ",
" ",
" ",
@ -108,7 +108,7 @@
" ((((((( )))))))))))))))))))))))))))) '''''''''''''' ",
" ((((((((((( )))))))))))))))))))))))))))) ''''''' '''''''' ",
" ((((((((((((((( )))))))))))))))))))))))))))) ''''' ''''' ",
" (((((( (((((( ))))))))))) ))))))) ''' ''' ",
" (((((( (((((( ''' ''' ",
" (((( (((( '''' '''' ",
" ((( (((( ''' ''' ",
" (((( ((( '''' '''' ",

View file

@ -61,7 +61,7 @@
" ",
" ",
" ",
" !!! !! ",
" ",
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
@ -80,8 +80,8 @@
" #################################################################################################################################################################################### ",
" #################################################################################################################################################################################### ",
" #################################################################################################################################################################################### ",
" ######### ######## ######## ######## #################### ########## ############ # # ## ",
" ## ## ## # ",
" # # # # # # # # # # # ## # # ",
" ",
" ",
" ",
" ",
@ -100,8 +100,9 @@
" $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ",
" $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ",
" $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ",
" $$$$$$$$$$ $$$$$$$ $$$$$$$$ $$$$$$$$$ $$$$$$$$$$$ $ $ ",
" $$ $$ ",
" $ $ ",
" ",
" ",
" ",
" ",
" ",
@ -111,22 +112,21 @@
" ",
" ",
" ",
" %%% %% % % %% % %%%% %%%%%%%%%% %%% %%%% %%%% %%%%%%%%%%% %% %%%%% %% % %%% %%%%%% ",
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
" % % % % % %%% % %% % %% % %% % % %% % %% % % ",
" %% %% % % % ",
" ",
" ",
" ",
" ",
" ",
" ",
" & & & & & ",
" &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ",
" &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ",
" &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ",
" &&&&&&&&&&&&&&&&&&& &&&& &&&&&&&& &&&&&&&&&&&&& &&&& &&&&&&&&&&&&&&& &&& &&&& &&&& &&&&&& & &&&& &&& & && & & && &&&&&& ",
" & & ",
" && && & & ",
" ",
" ",
" ",
" ",
@ -139,7 +139,7 @@
" ((((((( )))))))))))))))))))))))))))))))))))))) ''''''''''''''''' ",
" (((((((((((( )))))))))))))))))))))))))))))))))))))) '''''''' '''''''' ",
" ((((((((((((((((( )))))))))))))))))))))))))))))))))))))) '''''' '''''' ",
" (((((((( (((((((( ))))))))))))))))))) '''' '''' ",
" (((((((( (((((((( '''' '''' ",
" (((((( (((((( '''' '''' ",
" (((( ((((( ''' ''' ",
" (((( ((( '''' ''' ",

View file

@ -27,7 +27,7 @@
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
" !!!!!!!!!!! !!!!!!!!!!! ",
" ! ! ! ! ",
" ############################################# ",
" ############################################# ",
" ############################################# ",

View file

@ -6,9 +6,9 @@
"210",
"208",
"240",
"206",
"202",
"200",
"206",
"204"
],
"data": {},
@ -36,11 +36,11 @@
" ",
" ",
" ",
" !!! ! !!! ! !!! ! ",
" ",
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
" ! ! ! ",
" ",
" ",
" ",
" ",
@ -48,7 +48,7 @@
" ########################################################################################## ",
" ########################################################################################## ",
" ########################################################################################## ",
" ### ### ## # ",
" # # # ",
" ",
" ",
" ",
@ -58,7 +58,7 @@
" $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ",
" $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ",
" $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ",
" $$$ $$$ ",
" $ $ ",
" ",
" ",
" ",
@ -73,22 +73,22 @@
" ",
" ",
" ",
" ' '' (((((( ",
" ))))) ''''''''''''''''''' ((((((((((( ",
" ))))))))))) ''''''''''''''''''' (((((((((((( ",
" )))))))))))) ''''''''''''''''''' ((((( ((((( ",
" ))))) ))))) ''''''''''' ''''''' (((( (((( ",
" ))) ))) ((( (((( ",
" )))) )))) (((( ((( ",
" ))) ))) (((( (((( ",
" ))) ))) ((( ((( ",
" )))) )))) ((( (((( ",
" ))) )))) (((( (((( ",
" )))) )))) (((((((((((( ",
" ))))))))))))) ((((((((((( ",
" ))))))))))) ******************* (((((((( ",
" )))))))) ******************* ((( ",
" ))) ******************* ",
" '''''' ",
" ((((( ))))))))))))))))))) ''''''''''' ",
" ((((((((((( ))))))))))))))))))) '''''''''''' ",
" (((((((((((( ))))))))))))))))))) ''''' ''''' ",
" ((((( ((((( '''' '''' ",
" ((( ((( ''' '''' ",
" (((( (((( '''' ''' ",
" ((( ((( '''' '''' ",
" ((( ((( ''' ''' ",
" (((( (((( ''' '''' ",
" ((( (((( '''' '''' ",
" (((( (((( '''''''''''' ",
" ((((((((((((( ''''''''''' ",
" ((((((((((( ******************* '''''''' ",
" (((((((( ******************* ''' ",
" ((( ******************* ",
" ",
" ",
" ",

View file

@ -52,7 +52,6 @@
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
" !!!!!!!!!!!!!!!!!!!!!!! !!!!!!!! !!!!!!!!!!!!!! !!!!!!!!!!! !!!!!!!!!!! !!!!!!!!!!! !!!!!!!!!!! ",
" ",
" ",
" ",
@ -60,11 +59,13 @@
" ",
" ",
" ",
" # ### # # # # # ",
" ",
" ",
" ######################################################################################################################################## ",
" ######################################################################################################################################## ",
" ######################################################################################################################################## ",
" ##### ### ####### ## ### # #### ### ###### #### #### ## ########## ## ##### ### ",
" ## ## # # ",
" ",
" ",
" ",
" ",
@ -75,22 +76,21 @@
" ",
" ",
" ",
" $ $$$ $$$$ $ $$ $$ $$$$ $$ ",
" $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ",
" $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ",
" $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ",
" $$$$$ $$$ $ $ $$ $$$ $$$$ $$$ $$$$ $ $ $$$ $$$$$ $$$$ $ $ $$ $$$ $ $$$$$ $$ $$$$ $ ",
" $$ $$ $$ $$ ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" %% % %% % % % %%%%%%%%% %%%%%%%%%%%%%%%% % %%%%%% %% %%%% %%%%%%%% %%%%%%%% %%% ",
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
" %% % % %% %%% %%%%%% %%% % % % %% %% % %% %% % ",
" %% %% % % ",
" ",
" ",
" ",
@ -98,7 +98,7 @@
" &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ",
" &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ",
" &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ",
" &&& &&& & && & ",
" ",
" ",
" ",
" ",
@ -108,7 +108,7 @@
" ((((((( )))))))))))))))))))))))))))) '''''''''''''' ",
" ((((((((((( )))))))))))))))))))))))))))) ''''''' '''''''' ",
" ((((((((((((((( )))))))))))))))))))))))))))) ''''' ''''' ",
" (((((( (((((( ))))))))))))))))))) ''' ''' ",
" (((((( (((((( ''' ''' ",
" (((( (((( '''' '''' ",
" ((( (((( ''' ''' ",
" (((( ((( '''' '''' ",

View file

@ -61,7 +61,7 @@
" ",
" ",
" ",
" !!!! !! !!!! !! !!!! !! !!!! !! !!!! !! !!!! !! ",
" ",
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
@ -80,8 +80,8 @@
" #################################################################################################################################################################################### ",
" #################################################################################################################################################################################### ",
" #################################################################################################################################################################################### ",
" ################## ######## ############################# ########### ############ ################## ######## ############################# ########### ############ ",
" ## ## ## # ## ## ## # ",
" # # # # # # # # ## # # # # # # # # # # # ## # # ",
" ",
" ",
" ",
" ",
@ -100,8 +100,9 @@
" $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ",
" $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ",
" $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ",
" $$$$$$$$$ $$$$$$$ $$$$$$$$$$$$$$$$$$ $$$$$$$$$$$ $$$$$$$$$ $$$$$$$ $$$$$$$$$$$$$$$$$$ $$$$$$$$$$$ $$$$$$$$$ $$$$$$$ $$$$$$$$$$$$$$$$$$ $$$$$$$$$$$ ",
" $$ $$ $$ $$ $$ $$ ",
" $ $ $ $ $ $ ",
" ",
" ",
" ",
" ",
" ",
@ -111,22 +112,21 @@
" ",
" ",
" ",
" %% % %% % % % %%%%%%%%% %%%%%%%%%%%%%%%% % %%%%%% %% %%%% %%%%%%%% %%%%%%%% %%% ",
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
" %% % % %% %%% %%%%%% %%% % % % %% %% % %% %% % ",
" %% %% % % ",
" ",
" ",
" ",
" ",
" ",
" ",
" & & & & & & ",
" &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ",
" &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ",
" &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ",
" & &&&&&&&&&&& &&&& &&& && &&&& && &&&&&&&&&& &&&& & &&& &&&& &&&& &&&&&&&&&&&&& &&&& &&& &&&&&&& & && &&&&&&&&&&&&&& ",
" & & & ",
" &&& && & & & ",
" ",
" ",
" ",
" ",
@ -139,7 +139,7 @@
" ((((((( )))))))))))))))))))))))))))))))))))))) ''''''''''''''''' ",
" (((((((((((( )))))))))))))))))))))))))))))))))))))) '''''''' '''''''' ",
" ((((((((((((((((( )))))))))))))))))))))))))))))))))))))) '''''' '''''' ",
" (((((((( (((((((( ))))))))))) ))))))) '''' '''' ",
" (((((((( (((((((( '''' '''' ",
" (((((( (((((( '''' '''' ",
" (((( ((((( ''' ''' ",
" (((( ((( '''' ''' ",
@ -150,19 +150,19 @@
" (((( (((( ''' ''' ",
" ((( ((( '''' '''' ",
" (((( (((( '''' ''' ",
" (((( (((( ''' '''' ",
" ((( ((((( '''' '''' ",
" (((( (((( '''' '''' ",
" (((( ((( ''' '''' ",
" ((( (((( '''' '''' ",
" (((( ((( '''' '''' ",
" ((( (((( ''' '''' ",
" ((( (((( '''' '''' ",
" ((((( (((( '''''' '''''' ",
" ((((( ((((( '''''''' ''''''' ",
" (((((( (((((( ''''''''''''''''' ",
" ((((((((( (((((((( ''''''''''''' ",
" (((( (((( '''''' '''''' ",
" (((( (((( '''''''' ''''''' ",
" (((((( ((((( ''''''''''''''''' ",
" (((((((( (((((((( ''''''''''''' ",
" (((((((((((((((((( '''''''' ",
" ( (((((((((((( ************************************** ''' ",
" (((((((((( ************************************** ",
" (((( ************************************** ",
" (((((((((((( ************************************** ''' ",
" (((((((( ************************************** ",
" ((( ************************************** ",
" ",
" ",
" ",

View file

@ -22,16 +22,16 @@
" ",
" ",
" ",
"!!! ### $$$ %%% &&& ",
"!!! #### $$$ %%%% &&&& ",
"!!!! #### $$$$ %%% &&&& ",
"! # # $ $ % & & ",
" ",
"! ! # $ % % & ",
"!!! ## $$$ %%% &&& ",
" ",
" ! ' # ( $ ) % * & +",
" ",
" '' ( ) * ++",
" '' (( )) ** +++",
" '' (( )) ** +++",
" ) ",
" ",
" '' ( ) ** ++",
" ' (( )) ** ++",
" ",
" ",
" ",
" ",

View file

@ -1,13 +1,13 @@
{
"keys": [
"",
"-1",
"-2",
"-4",
"-6",
"-7",
"-8",
"-9",
"-2",
"-1",
"-3",
"-5",
"-10"
@ -22,17 +22,17 @@
" ",
" ",
" ",
" !!! ## $$ $ %%%&&& ''' ((( ",
"!!!!####$$$$$$$$$$$%%%%&&&&'''(((( ",
"!!!!####$$$$$$$$$$$%%%%&&& '''(((( ",
" ! # $$ $ %% ' ' ( ",
" ! # ) $ * % & ' ( + ",
" ",
"))) ) ) ) ++ ",
")))))))))))))))))))) ++++",
" ))))))) ))))))))))) ++++",
" ))))))))))))))))))) + ",
" ) ) ) ) ",
" !!!!!!!!! # $ % % && ",
" '' !! ! !! ###$$$ %% & ",
" ",
" ( ' ) ! * # $ % & + ",
" ",
" ",
" ) ) +++",
" ))))) ) )))) ++ ",
" ) ))))) )) )))) ",
" ",
" ",
" ",
" ",

View file

@ -22,17 +22,17 @@
" ",
" ",
" ",
" !!! ## # # $$$ $$ %%% && & ",
" !!! ############# $$$$$$$$$$$%%%%%%%%%%%%%%&&&&&&&&&&& ",
" !!! ############ $$$$$$$$$$ %%%%%%%%%%%%%&&&&&&&&&&& ",
" ! ## # # $ $ % % % && & ",
" ",
" ! ! ### #### # $$ $$$$ $ %% %% %%%%%% &&& &&& & ",
" !! # ## $$$$ $$$ %%%% %% %% & & & ",
" ",
" ! ' # ( $ ) % * & + ",
" ",
" '''' ' ' ( ))) ) ) * +++ ",
" ''''''''''''''''' (( ))))))))) )))))) ** ++++ ",
" '''''''' ''''''' ((( )))))))))))))) *** ++++ ",
" '''''''' ''''''' ))))))))))))))) * + ",
" ' ' ' ))) ) ",
" ",
" ' ' ( ) ) * ",
" ''' ' ' '' ' (( ) ))) ) ) ))) * ",
" '''''' ' '' '' ) )))))) ))))) ",
" ",
" ",
" ",
" ",

View file

@ -22,17 +22,17 @@
" ",
" ",
" ",
"! ! ## ## $$ $$ %%% % &&& & & ",
"!!!!!!!!!! ############# $$$$$$$$$$ %%%%%%%%%%%%%% &&&&&&&&&&&& ",
"!!!!!!!!!! ############# $$$$$$$$$$ %%%%%%%%%%%%% &&&&&&&&&&& ",
" !! ! ! ## # $$ $ % % % & & ",
" ",
" !!! !!!! ### #### # $$$$$$$$ % %%% %%%%%% & &&& &&&& ",
" ! !! # ### $$ $ %%% % % % &&& & & & ",
" ",
" ! ' # ( $ ) % * & + ",
" ",
" ''' ' ' ( ))) ) )) * + + ",
" ''''''''''''''''' (( ))))))))))))))) *** ++++ ",
" '''''''''''''''' ((( )))))))))))))) *** ++++ ",
" '''''''' ''''''' )))))))))))))) * + ",
" ''' ' ))) ) ",
" ",
" ' ' ' ( ) ) ",
" ' ''' ' ''' ' ( ) ))) ) ) ) * ",
" ' '''''' ' '' '' ) ))))) )) )) ",
" ",
" ",
" ",
" ",

View file

@ -22,17 +22,17 @@
" ",
" ",
" ",
"!! ## ## $$ $$ %% % && & & '''' ",
"!!!!!!!!!!! ############# $$$$$$$$$$$ %%%%%%%%%%%%%% &&&&&&&&&&&& ''''' ",
"!!!!!!!!!!! ############# $$$$$$$$$$ %%%%%%%%%%%%% &&&&&&&&&&& ''''' ",
" !! ! ! # ## $ $ %% %% % && ' ",
" ",
" !!!!! !! # ######## $$ $$$$ $ %%% %%% %%% &&& &&& & ' ''' ",
" !! ! ! ### # ## # $$ $ $$$ % % % %% & & && ''''' ",
" ",
" ! ( # ) $ * % + & ' ",
" ",
" ((( ( ( ))) ) )) *** * ** ++++ + ++ + + ",
" ((((((((((((((((( ))))))))))))))))))) *************** +++++++++ ++++++++++ ",
" (((((((((((((((( )))))))) )))))))) ******* ****** ++++++++ ++++++++++ ",
" (((((((((((((((( ))))))))))))))))) ************** ++++++++ ++++++++++ ",
" ( ( ( ) ) ) ) * * * + + + +++ ",
" ",
" ( ( ) * + ",
" ( ((( ( (((( ( ))))) )))) ***** * * ++ + ++ + ++ ",
" ( ((((( (( ((( ))))) ) ))))) * ***** ** * ++++ + ++ +++ + ",
" + ",
" ",
" ",
" ",

View file

@ -22,17 +22,17 @@
" ",
" ",
" ",
" !! ! ### ## $$ $ %% % % && ",
" !!!!!!!!!!! ############ $$$$$$$$$$ %%%%%%%%%%%% &&&&&&&&&& ",
" !!!!!!!!!! ########## $$$$$$$$$ %%%%%%%%%%%% &&&&&&&&&& ",
" !! ! # # $ $ %% % %% && & ",
" ",
" ! !!! !! ! ## #### # $$ $$$ $ %%% %%%%%% &&& &&& ",
" !! ! !!! #### ## # $$ $ $$$ % %%%%% & && ",
" % ",
" ' ! ( # ) $ * % + & ",
" ",
"''' ' ((( ( (( )))) ) ))) **** * +++ + + ",
"'''''''' ''''''' (((((((((((((((((((( ))))))))) ))) ))) ********* *********** ++++++++++++++++++ ",
"'''''''' '''''''' ((((((((((((((((((( )))))))) ))))))) ******************** +++++++ +++++++++ ",
"'''''''' '''''''' ((((((((((((((((((( )))))))) ))))))) ******************** +++++++++++++++++ ",
" ' ' ' ' ( ( ( ( ) ) )) * * * * * + + + ",
" ",
" ' ( ( ( ) * + ",
" ''''' ' ' ''' ( ((( ( ( ((((( )) ) ) )) *** * * *** ***** +++++ +++ +++ ",
" '''' ' ''' ''' ( ((((( (( ((((( )))) ) ) ) )) ****** **** * ** * + +++++ +++ ++ ",
" ",
" ",
" ",
" ",

View file

@ -28,11 +28,11 @@
" ",
" ! # $ % & ' ( ) * + ",
" ",
" !!! ! ### # # $$$$ $ $$$ %%% % %% &&& & && ''' ' '' ((( ( )))) ) )) ) ) **** * ** ++++ + + ",
" !!!!!!!!!!!!!!!!! ################# $$$$$$$$$ $$$$$$$$$$ %%%%%%%%%%%%%%%%%%% &&&&&&&&&&&&&&&&& ''''''''''''''' (((((((((((((((((((())))))))) )))))))))) ********* ******** ++++++++++++++++ ",
" !!!!!!!!!!!!!!!! ################ $$$$$$$$ $$$$$$$$$$$ %%%%%%%% %%%%%%%% &&&&&&&&&&&&&&&& ''''''' '''''' ((((((( (((((((((((()))))))) )))))))))) ******** ********* ++++++++ ++++++ ",
" !!!!!!!!!!!!!!!! ################ $$$$$$$$ $$$$$$$$$$$ %%%%%%%%%%%%%%%%% &&&&&&&&&&&&&&&& '''''''''''''' (((((((((((((((((((()))))))) )))))))))) ******** ********* ++++++++ ++++++ ",
" ! ! ! ! # # # $ $ $ $ % % % % &&& & ' ' ' ( ( ( ( ( ) ) ) ))) * * * + + + ",
" ",
" ! ! # # $ $ % & & & ' ( ) * + + ",
" ! !!! ! !!!!!! # ### # #### # $$$$$ $ $$ $$$$ %%%%% %%%% & &&& & &&&&&& ''''' ' ' ((((( ((((((((( )) ) )) ) )) *** * * *** +++ + ++++++ ",
" ! !!!!! !!!!!!! # ##### ## ### $$$$ $ $$ $$ $$$$ %%%%% % %%%%% & &&&&& && &&& ' ''''' '' ' ( ((((( (( ((( ((( )))) ) )) ))) ) ****** * *** ++++++ + ++ + ",
" ) ",
" ",
" ",
" ",

View file

@ -30,21 +30,21 @@
" ",
" ",
" ",
" !! ",
" !!! ",
" ! !! ",
" !!!!!!!!! ",
" !!!!!!!!!! ",
" !! ",
" ! ",
" ! ",
" ",
" !! ! ! ! ",
" ! ! ! ",
" ",
" ",
" ! ",
" ",
" ! ! ",
" ",
" ! ",
" !!! ",
" !!!! ",
" !!!!! ",
" !!!!! ",
" !!! !!! ",
" ! !!! ",
" !!!!!!!! ",
" !!!!!!!! ",
" !!!!!! ",
" !! ",
" ",
" ",
" ",

View file

@ -20,20 +20,20 @@
" ",
" ",
" ",
" !!! ",
" !!! ",
" !!! ",
" ### !!! ",
" ### ",
" $$$ %%%% ##### &&& ''' !!! ((((((((( )))) ",
" $$$ %%% **** +++ ### &&& ''' !!! ((((((( )) ",
" $$$ %%% *** +++ &&& ''' !!! (((((((( ))) ",
" $$$ %%%% ** ++++ &&& ''' !!! ((((((((( )))) ",
" **** +++ ",
" !!! ",
" !! ",
" !!! ",
" ",
" ! ",
" ! ",
" # ! ! ",
" ## ",
" $$$ % ##### &&& ' ' ! ! ( (((( ) ",
" $ % % * + ### && '' ! ( ( ( )) ",
" $ %% ** + & ' ! (( ( (( )) ",
" $ ** ++++ & ( ",
" * + + ",
" ! ! ",
" ! ",
" ! ",
" ",
" ",
" ",
" ",

View file

@ -20,20 +20,20 @@
" ",
" ",
" ",
" !!! ",
" !!! ",
" !!! ",
" ### !!!! ",
" ### ",
" $$$ %%% & #### ''' (((( !!! ))))))))) **** ",
" $$$ %%%% &&& +++ #### ''' ((( !!! ))))))) ** ",
" $$$ %%% &&& +++ ''' ((( !!! )))))))) *** ",
" $$$$ %%%% &&& ++++ '''' (((( !!!! ))))))))) **** ",
" &&& ++++ ",
" !!! ",
" !! ",
" !!! ",
" ",
" ! ",
" ! ",
" ! ! ",
" ## ",
" $$$ % % & #### ' ' ( ! ! ) )))) * ",
" $ % % & + ## '' ( ( ! ) ) ) ** ",
" $$ %% & ++ '' (( !! )) )))) ** ",
" $ & ++++ ) ",
" & & ++ ",
" ! ",
" ! ",
" ! ",
" ",
" ",
" ",
" ",

View file

@ -20,20 +20,20 @@
" ",
" ",
" ",
" !!! ",
" !!! ",
" !!! ",
" ### !!!! ",
" ### ",
" $$$$ %%% & #### ''' ((( !!! )))))))) *** ",
" $$$ %%% &&& ++++ ### ''' ((( !!! )))))))) *** ",
" $$$ %%% &&& ++++ ''' ((( !!! )))))))) *** ",
" $$$$ %%% &&& ++++ ''' ((( !!!! ) )))) ) *** ",
" &&& ++++ ",
" !!! ",
" ",
" !! ",
" !!! ",
" ! ! ",
" ! ",
" # ! ! ",
" ## ",
" $$$ % % & #### ''' ((( !!! ) )) ) ) *** ",
" $ %% & + ### '' (( ! ) )) ) * ",
" $$ % & ++ ' ( !! ) )) ) * ",
" $ & ++++ ' ( ! * ",
" & & ++ ",
" ! ",
" ! ",
" ! ",
" ",
" ",
" ",
" ",

View file

@ -20,20 +20,20 @@
" ",
" ",
" ",
" !!!! ",
" !!! ",
" ",
" !! ",
" ### !!!! ",
" ### ",
" $$$$ %%% & ##### '''' ((( !!!! ))))))))) **** ",
" $$ %%% &&& ++++ ### '' ((( !! ))))))) ** ",
" $$$ %%% &&& +++ ''' ((( !!! )))))))) *** ",
" $$$$ % % &&& ++++ '''' (((( !!!! ))))))))) **** ",
" &&& ++++ ",
" !!!! ",
" !! ",
" !!! ",
" !!!! ",
" # ! ",
" ## ",
" $$$ % % & ##### ''' ((( ! )) ) ) ** ",
" $ %% & + ### '' (( !! ) ) ) * ",
" $$ % & ++ '' (( !! )))) )) ** ",
" $ & ++++ ' ( * ",
" & & ++ ",
" !! ",
" ! ",
" !! ",
" ",
" ",
" ",
" ",

View file

@ -20,20 +20,20 @@
" ",
" ",
" ",
" !!!! ",
" !!! ",
" ",
" !! ",
" ### !!!! ",
" ### ",
" $$$$ %%% & ##### '''' (((( !!!! ))))))))) **** ",
" $$ %%% &&& +++ ### '' ((( !! ))))))) ** ",
" $$$ %%% &&& +++ ''' ((( !!! ))))))) ** ",
" $$$$ % % &&& ++++ '''' (((( !!!! ))))))))) **** ",
" &&&& ++++ ",
" !!!! ",
" !! ",
" !!!! ",
" !!!! ",
" # ! ",
" ## ",
" $$ % % & ##### '' (( ! ) )))) * ",
" $ %% & + ### '' ((( !! )) ) )) ** ",
" $$ && ++ '' (( !! )) ) )) ** ",
" $ & ++++ ' ( ) ",
" & & + ",
" !! ",
" ! ",
" !! ",
" ",
" ",
" ",
" ",

View file

@ -20,20 +20,20 @@
" ",
" ",
" ",
" !!! ",
" !!! ",
" !!! ",
" ### !!!! ",
" ### ",
" $$$$ %%% & #### '''' (((( !!! )))))))) *** ",
" $$ %%% &&&& +++ #### ''' ((( !!! )))))))) *** ",
" $$$ %%% &&& +++ '' (( !!! )))))))) *** ",
" $$$$ % % &&& ++++ '''' (((( !!!! ))))))))) **** ",
" &&&& ++++ ",
" !!! ",
" ",
" !! ",
" !!! ",
" !! ! ",
" ! ",
" # ! ! ",
" ## ",
" $$ % % & #### ' ( ! ! ) )))) ) * * ",
" $ %% & + ## ''' ((( ! ) ) ) * ",
" $$ && ++ '' (( !! )) )))) ** ",
" $ & ++++ ) ",
" & & + ",
" ! ",
" ! ",
" !! ",
" ",
" ",
" ",
" ",

View file

@ -20,20 +20,20 @@
" ",
" ",
" ",
" ",
" ! ",
" ! ",
" # ! ! ",
" ## ",
" $$ % % & #### ' ( !!! ) ) )) ) *** ",
" $ %% & + ## '' ( ( ! ) )) ) * ",
" $$ && + '' (( ! )) * ",
" $ && ++++ ! * ",
" & & + + ",
" ! ! ",
" !!! ",
" !!! ",
" #### !!! ",
" ### ",
" $$$$ %%% & #### '''' (((( !!! )))))))) *** ",
" $$ %%% &&&& +++ #### ''' ((( !!! )))))))) *** ",
" $$$ %%% &&& +++ ''' ((( !!! )))))))) *** ",
" $$$$ % % && ++++ '''' (((( !!! ) )))) ) *** ",
" &&&& +++ ",
" !!! ",
" !!! ",
" !!! ",
" ! ! ",
" ! ",
" ! ",
" ",
" ",
" ",
" ",

View file

@ -20,20 +20,20 @@
" ",
" ",
" ",
" !!! ",
" !!! ",
" !!! ",
" #### !!! ",
" #### ",
" $$$$ %%% #### &&& ''' !!! (((((((( )))) ",
" $$ %%% **** +++ #### &&& '''' !!! (((((((( )) ",
" $$$ %%% *** +++ &&& ''' !!! (((((((( ))) ",
" $$$$ % % ** ++++ &&&& '''' !!! ((((((((( )))) ",
" **** +++ ",
" !!! ",
" !! ",
" !!! ",
" ",
" ! ",
" ! ",
" ! ! ",
" ## ",
" $$ % % #### & & ' ' !!! ( (( ( ( ))) ",
" $ %% * + ## && ' ' ! ( ( ( ) ",
" $$ % ** ++ && '' ! (((( (( )) ",
" $ ** ++++ ! ) ",
" * +++ ",
" ! ",
" ! ",
" ! ",
" ",
" ",
" ",
" ",

View file

@ -20,20 +20,20 @@
" ",
" ",
" ",
" !!!! ",
" !!! ",
" ",
" !! ",
" # # !!!! ",
" ### ",
" $$$$ %%% #### &&& '''' !!!! (((((((( ))) ",
" $$ %%% **** +++ ### &&& ''' !! (((((((( ))) ",
" $$$ %%% *** +++ &&& ''' !!! (((((((( ))) ",
" $$$$ %%%% ** +++++ &&&& '''' !!!! ((((((((( ))) ",
" **** +++ ",
" !!!! ",
" !! ",
" !!! ",
" !!!! ",
" ! ! ",
" # ",
" $$ % % #### &&& '' ! ( (((( ( ))) ",
" $ %% * + ## && '' ! ( ( ( ) ",
" $$ %%% ** ++ && '' !! (( (((( ) ",
" $ % ** +++++ & ' ( ) ",
" * +++ ",
" ! ",
" ! ",
" !! ",
" ",
" ",
" ",
" ",

View file

@ -20,20 +20,20 @@
" ",
" ",
" ",
" !!!! ",
" !!! ",
" ",
" !! ",
" #### !!!! ",
" ### ",
" $$$$ %%%% #### &&& ''' !!!! (((((((( ))) ",
" $$ %%% *** +++ #### &&& ''' !! (((((((( ))) ",
" $$$ %%% *** +++ &&& ''' !!! (((((((( ))) ",
" $$$$ %%%% *** ++++ &&& ''' !!!! (((((((( ))) ",
" *** ++++ ",
" !!!! ",
" !! ",
" !!!! ",
" !!!! ",
" ! ",
" ## ",
" $ % % #### & & ''' ! ( ( (( ( ))) ",
" $$ %%% * + ## && '' ! ( (( ( ) ",
" $$ %%% * ++ & ' !! ( (( ( ) ",
" % * ++++ ' ) ",
" * * + ",
" !! ",
" ! ",
" !! ",
" ",
" ",
" ",
" ",

View file

@ -18,20 +18,20 @@
" ",
" ",
" ",
"! ",
"!!!!!!!!!#### $$$$$$ ",
"!!!!!!!!!##### $$$$$$$ ",
" !! ! ## # $$$$ ",
" ",
" %%%% %% ",
" % %%%%%%%% %%%%%%%% & '",
" %%%%%%%% %%%%%%%% ",
" %%%%%%%% %%%%%%%% ",
" !!! !!!! ",
" ! ! #### $$$$$ ",
" ",
" ",
" %% ",
" % %% %%% %% %%%% & '",
" % % % %% ",
" % % % % ",
" ",
" ",
" (( (((( ((( )))))) ",
" (((( ((( (( ",
" ",
"((( ( ))) ",
"((((((((((((())))))) ",
" (((((((((((( )) ) ",
" ( ( ",
" ",
" ",
" ",

View file

@ -18,21 +18,21 @@
" ",
" ",
" ",
" !! ! ## ",
"!!!!!!!!!!!$ $$ ############## %% % ",
" !!!!!!!!!!$$$$$ ############## %%%%%",
" !! ! $ # # # % ",
" ",
" &&&& & ''' '' '' ",
" & &&&&&&&&&&&&&&&& ' '''''''''''''' ",
" &&&&&&&&&&&&&&&& '''''''''''''' ",
" &&&&&&&& &&&&&&& '''''''''''''' ",
" !!! !!!! # ### # # # ",
" ! !$$ $$ ### # ### %%%",
" ",
" ",
" &&& & ''' ' ",
" & & &&&&&& &&&& && ' ' ''''' ' '' ",
" & & && &&& ' ''' ' ' ",
" && & ' ' ' ",
" ",
" ",
" ( ( ) ))) )))))) ",
" ((((( ( (((( ))) ) ))) ",
" ( ((((( (( (((( ",
" ",
"((( ( ( ( ))) ) ) ) ",
"(((((((((((((((((((( ))))))))))))) ",
" ((((((( ((((((((((( )))))))))))) ",
" ((((((((((((((((((( ) ))) ",
" ( ( ( ( ",
" ",
" ",
" ",

View file

@ -19,22 +19,22 @@
" ",
" ",
" ",
" !!!! ! ! ### # ## $$$$ $ $$ $ $ ",
" !!!!!!!!!!!!!!!!! #################$$$$$$$$$ $$$$$$$$$$ ",
" !!!!!!!! !!!!!!! ################ $$$$$$$$ $$$$$$$$$$%%%% ",
" !!!!!!!! !!!!!!! ######## ####### $$$$$$$$ $$$$$$$$$$%%%%% ",
" ! ! ! ### # $ $ $ $$$ % ",
" ",
" &&&& && '''' ' '' ((( (( ",
" & &&&&&&&& &&&&&&&&' '''''''''''''''''( ((((((((((((((((((((",
" &&&&&&&& &&&&&&&& '''''''' ''''''' ((((((((((((((((((((",
" &&&&&&&& &&&&&&& '''''''' ''''''' ((((((((((((((((((((",
" ! ! # # # $ $ $ ",
" !!! ! ! !! ! # ### # ####### $$$$$ $$ $ $$$$ ",
" !!!!!! ! !! !! # ###### ## #### $$$$ $ $$ $$$$ $ %%%% ",
" $ ",
" ",
" && ''' ' ' ((( ( ",
" & &&&&&& &&&& && ' ' '''''' '''' '''( ( ((((( ( (((((((( ",
" & && & & && ' ' '' '' ' '' ( ((( ( ((( ( (",
" & & & & '' ' ' ( ( ( ( ( ",
" ",
" ",
" ) ) ) * * + ",
" ) ))) ) ) )))))) * *** * * *** +++++ + +++ ",
" ) ))))) )) )) )) * ****** ***** ++++ + + +++ ",
" ",
" ))) ) )) *** * * ++++ + ++ ",
" )))))))))))))))))))) ********* ****** +++++++++ +++++++++",
" ))))))))))))))))))) ************** ++++++++ +++++++++",
" ))))))))))))))))))) *************** ++++++++ +++++++++",
" ))) ) ) *** * + + + ",
" ",
" ",
" ",

View file

@ -19,22 +19,22 @@
" ",
" ",
" ",
" !!! ! ! ### # ## $$$ $ $$ $ $ ",
" !!!!!!!!!!!!!!!!! ################ $$$$$$$$$$$$$$$$$$$$%% % ",
" !!!!!!!!!!!!!!!! ####### ######## $$$$$$$ $$$$$$$$$$%%%%%%%%%",
" !!!!!!!! !!!!!!! ################ $$$$$$$$$$$$$$$$$$$%%%%%%%%",
" !!! ! # # # $ $ $ $$$ %% %",
" ",
" &&& & '''' '' '' ((( ( ",
" & &&&&&&&&&&&&&&&& ' '''''''' '''''''' ( ((((((((((((((((((((% ",
" &&&&&&&&&&&&&&&& '''''''' ''''''' (((((((((((((((((((( ",
" & &&&&&& &&&&&&& '''''''' ''''''' ( (((((((((((((((((( ",
" ! ! ! # $ $ ",
" ! !!! ! !!! ! ##### #### $$$$$ $$$ $$ % %%% %%",
" ! !!!!!! ! !! !! # ##### # ## $ $$$$$ $$ $$$ $ %% % % ",
" $$ ",
" ",
" &&& & '' ' ((( ( ",
" & & &&&&& &&&& && ' '' ''' '''' ''' ( ( ((((( (((((((( ((% ",
" & && && & ' ' '' ' '' ( (( (( ((( ( ",
" &&& & & ' ' ' ' ((( ( (( ( ",
" ",
" ",
" ) ) )) * * + + ",
" ) ))) ) )) ))))))) * *** * * * + +++ + ++++ ++ ",
" ) )))))) )) ))))))) * ***** ** ** + +++++ +++ ++ ",
" ",
" ))) ) ))) *** * ** +++ + + ",
" )))))))))))))))))))) *************** ++++++++++++++++++ ",
" ))))))))))))))))))) ************** +++++++++++++++++ ",
" )))))))) )))))))))) ************** +++++++++++++++++ ",
" ))) ) ) *** * +++ ++ ",
" ",
" ",
" ",

View file

@ -19,22 +19,22 @@
" ",
" ",
" ",
" !!! ! ! ### # ## $$$ $ $$ %%%% % %% % % ",
" !!!!!!!!!!!!!!!!! ################### $$$$$$$$$$$$$$$ %%%%%%%%% %%%%%%%%%% &&& ",
" !!!!!!!!!!!!!!!! ######## ######## $$$$$$$ $$$$$$ %%%%%%%% %%%%%%%%%% &&&&&&&&&&",
" !!!!!!!!!!!!!!!! ################# $$$$$$$$$$$$$$ %%%%%%%% %%%%%%%%%% &&&&&&&&&",
" ! ! ! # # # # $ $ $ % % % %%% & ",
" ",
" '''' ' ",
" ' '''''''' ''''''' ( # ) $ * % + & ",
" '''''''''''''''' ",
" '''''''' ''''''' ",
" ! ! # $ % ",
" ! !!! ! !!!! ! ##### #### $$$$$ $ $ %% % %% % %% && &&&& &",
" ! !!!!! !! !!! ##### # ##### $ $$$$$ $$ $ %%%% % %% %%% % &&&& &&& ",
" % ",
" ",
" ''' ' ",
" ' '''''' '''' '' ( # ) $ * % + & ",
" ' '' ' ' ",
" ' ' ' '' ",
" ",
" ",
" ( ( ) ) ) * + ",
" ((((( ( (( (((( ) ))) ) )))))) ***** ********* +++ + + +++ ",
" (((( ( (( (( (((( ) ))))) )) ))) * ***** ** *** *** ++++++ + +++ ",
" ",
" (((( ( ((( ))) ) )) *** * ++++ + ++ ",
" ((((((((( (((((((((( ))))))))))))))))) *********************+++++++++ ++++++++ ",
" (((((((( ((((((((((( )))))))))))))))) ******* ************ ++++++++ +++++++++ ",
" (((((((( ((((((((((( )))))))))))))))) ******************** ++++++++ +++++++++ ",
" ( ( ( ( ))) ) * * * * * + + + ",
" ",
" ",
" ",

View file

@ -19,22 +19,22 @@
" ",
" ",
" ",
"!!! ! ### # ## $$$$ $ $$$ %%%% % &&& & & ",
"!!!!!!!! !!!!!!! #################### $$$$$$$$$ $$$ $$$ %%%%%%%%% %%%%%%%%%%% &&&&&&&&&&&&&&&&&& ",
"!!!!!!!! !!!!!!!! ################### $$$$$$$$ $$$$$$$ %%%%%%%%%%%%%%%%%%%% &&&&&&& &&&&&&&&& ",
"!!!!!!!! !!!!!!!! ################### $$$$$$$$ $$$$$$$ %%%%%%%%%%%%%%%%%%%% &&&&&&&&&&&&&&&&& ",
" ! ! ! ! # # # # $ $ $$ % % % % % & & & ",
" ",
" ! # # # $ % & ",
" !!!!! ! ! !!! # ### # # ##### $$ $ $ $$ %%% % % %%% %%%%% &&&&& &&& &&& ",
" !!!! ! !!! !!! # ##### ## ##### $$$$ $ $ $ $$ %%%%%% %%%% % %% % & &&&&& &&& && ",
" ",
" ",
" ",
" ! ' # ( $ ) % * & + ",
" ",
" ",
" ",
" '''' ' ' ((( ( (( )))) ) ) *** * * ** * +++ + + ",
" ''''''''' ''''''' (((((((((((((((((( ))))))))) )))))) ********* ********** +++++++++++++++",
" '''''''' '''''''' ((((((((((((((((( )))))))))))))) ******************* +++++++ ++++++",
" '''''''' '''''''' (((((((( ((((((( ))))))))))))))) ******************* ++++++++++++++",
" ' ' ' ((( ( ( ) ) ) *** ** *** + + + ",
" ",
" ' ' ( ( ( ) * * * + ",
" ''''' ' '''' ( ((( ( (( ( (( ))) ) ) ))) * *** * **** ** +++++ +++ ",
" '''' ' '''' '' ( (((((( ((( ((( )))))) ))))) * ***** ***** ** + +++++ ++++ ",
" ** ",
" ",
" ",
" ",

View file

@ -19,11 +19,11 @@
" ",
" ",
" ",
" !!! ! ### # # $$$$ $ $$$ %%% % %% &&& & && ''' ' '' ((( ( )))) ) )) ) ) **** * ** ++++ + + ",
" !!!!!!!!!!!!!!!!! ################# $$$$$$$$$ $$$$$$$$$$ %%%%%%%%%%%%%%%%%%% &&&&&&&&&&&&&&&&& ''''''''''''''' (((((((((((((((((((())))))))) )))))))))) ********* ******** ++++++++++++++++ ",
" !!!!!!!!!!!!!!!! ################ $$$$$$$$ $$$$$$$$$$$ %%%%%%%% %%%%%%%% &&&&&&&&&&&&&&&& ''''''' '''''' ((((((( (((((((((((()))))))) )))))))))) ******** ********* ++++++++ ++++++ ",
" !!!!!!!!!!!!!!!! ################ $$$$$$$$ $$$$$$$$$$$ %%%%%%%%%%%%%%%%% &&&&&&&&&&&&&&&& '''''''''''''' (((((((((((((((((((()))))))) )))))))))) ******** ********* ++++++++ ++++++ ",
" ! ! ! ! # # # $ $ $ $ % % % % &&& & ' ' ' ( ( ( ( ( ) ) ) ))) * * * + + + ",
" ",
" ! ! # # $ $ % & & & ' ( ) * + + ",
" ! !!! ! !!!!!! # ### # #### # $$$$$ $ $$ $$$$ %%%%% %%%% & &&& & &&&&&& ''''' ' ' ((((( ((((((((( )) ) )) ) )) *** * * *** +++ + ++++++ ",
" ! !!!!! !!!!!!! # ##### ## ### $$$$ $ $$ $$ $$$$ %%%%% % %%%%% & &&&&& && &&& ' ''''' '' ' ( ((((( (( ((( ((( )))) ) )) ))) ) ****** * *** ++++++ + ++ + ",
" ) ",
" ",
" ",
" ! # $ % & ' ( ) * + ",

View file

@ -16,10 +16,10 @@
" ",
" ",
" ",
" !!!! !! !!! ",
" ! !!!!!!!!!!!!!!!! ",
" !!!!!!! !!!!!!!! ",
" !!!!!!!!!!!!!!!! ",
" !!! ! ",
" ! ! !!!!! !! !!! ",
" !! !! !!! ",
" ! ! ! ",
" ",
" ",
" ",

View file

@ -12,10 +12,10 @@
" ",
" ",
" ",
" !!!! ! !! ",
" !!!!!!!!!!!!!!!! ",
" !!!!!!!! !!!!!!! ",
" !!!!!!!! !!!!!!! ",
" !!! ! !! ",
" !!!!!! !!! !! ",
" ! !! !! !! ",
" ! ! ! ",
" ",
" ! ",
" ",

View file

@ -12,10 +12,10 @@
" ",
" ",
" ",
" !!!! !! !!! ",
" !!!!!!!!!!!!!!!! ",
" !!!!!!! !!!!!!!! ",
" !!!!!!!!!!!!!!!! ",
" !!! ! ",
" ! !!!!! !! !!! ",
" !! !! !!! ",
" ! ! ! ",
" ",
" ! ",
" ",

View file

@ -12,10 +12,10 @@
" ",
" ",
" ",
" !!!! !! !!! ",
" !!!!!!!!!!!!!!!! ",
" !!!!!!! !!!!!!!! ",
" !!!!!!!!!!!!!!!! ",
" !!! ! ",
" ! !!!!! !! !!! ",
" !! !! !!! ",
" ! ! ! ",
" ",
" ! ",
" ",

View file

@ -20,10 +20,10 @@
" ! ",
" ",
" ",
" !!!! ! !! ",
" !!!!!!!!!!!!!!!! ",
" !!!!!!!! !!!!!!! ",
" !!!!!!!! !!!!!!! ",
" !!! ! !! ",
" !!!!!! !!! !! ",
" ! !! !! !! ",
" ! ! ! ",
" ",
" ",
" ",

View file

@ -20,10 +20,10 @@
" ! ",
" ",
" ",
" !!!! !! !!! ",
" !!!!!!!!!!!!!!!! ",
" !!!!!!! !!!!!!!! ",
" !!!!!!!!!!!!!!!! ",
" !!! ! ",
" ! !!!!! !! !!! ",
" !! !! !!! ",
" ! ! ! ",
" ",
" ",
" ",

View file

@ -20,10 +20,10 @@
" ! ",
" ",
" ",
" !!!! !! !!! ",
" !!!!!!!!!!!!!!!! ",
" !!!!!!! !!!!!!!! ",
" !!!!!!!!!!!!!!!! ",
" !!! ! ",
" ! !!!!! !! !!! ",
" !! !! !!! ",
" ! ! ! ",
" ",
" ",
" ",

View file

@ -16,10 +16,10 @@
" ",
" ",
" ",
" !!!! !! !!! ",
" !!!!!!!!!!!!!!!! ! ",
" !!!!!!! !!!!!!!! ",
" !!!!!!!!!!!!!!!! ",
" !!! ! ",
" ! !!!!! !! !!! ! ",
" !! !! !!! ",
" ! ! ! ",
" ",
" ",
" ",

View file

@ -52,6 +52,7 @@ files = [
{'name': "marker-on-hex-grid", 'sizes':[(600,400),(400,600),(257,256)]},
{'name': "whole-centroid", 'sizes':[(600,400)],
'bbox': mapnik.Box2d(736908, 4390316, 2060771, 5942346)},
{'name': "text-halo-rasterizer", 'sizes':[(600,400)]},
{'name': "simple-E", 'bbox':mapnik.Box2d(-0.05, -0.01, 0.95, 0.01)},
{'name': "simple-NE",'bbox':default_text_box},
{'name': "simple-NW",'bbox':default_text_box},
@ -132,8 +133,8 @@ def render(config, width, height, bbox, quiet=False, overwrite_failures=False):
# generate it on the fly
fail(actual_agg,expected,None)
else:
diff = compare(actual_agg, expected, threshold=1, alpha=True)
threshold = 0
diff = compare(actual_agg, expected, threshold=0, alpha=True)
if overwrite_failures and diff > threshold:
fail(actual_agg,expected,None)
else:
@ -182,7 +183,7 @@ def render(config, width, height, bbox, quiet=False, overwrite_failures=False):
# generate it on the fly
fail(actual_grid,expected_grid,None)
else:
threshold = 1
threshold = 0
diff = compare_grids(actual_grid, expected_grid, threshold=threshold, alpha=False)
if overwrite_failures and diff > threshold:
fail(actual_grid,expected_grid,None)