Merge branch '2.3.x' of github.com:mapnik/mapnik

Conflicts:
	.travis.yml
	CHANGELOG.md
	bindings/python/build.py
	include/mapnik/feature_style_processor_context.hpp
	include/mapnik/feature_style_processor_impl.hpp
	include/mapnik/json/feature_collection_grammar.hpp
	include/mapnik/json/feature_collection_parser.hpp
	include/mapnik/json/feature_generator_grammar.hpp
	include/mapnik/json/feature_parser.hpp
	include/mapnik/json/geojson_generator.hpp
	include/mapnik/json/geometry_generator_grammar.hpp
	include/mapnik/json/geometry_parser.hpp
	plugins/input/gdal/gdal_featureset.cpp
	plugins/input/geojson/geojson_datasource.cpp
	plugins/input/occi/occi_featureset.cpp
	plugins/input/osm/osm_featureset.cpp
	plugins/input/postgis/build.py
	plugins/input/postgis/connection.hpp
	src/agg/agg_renderer.cpp
	src/build.py
	src/cairo_context.cpp
	src/datasource_cache.cpp
	src/grid/process_line_symbolizer.cpp
	src/grid/process_polygon_pattern_symbolizer.cpp
	src/grid/process_polygon_symbolizer.cpp
	src/grid/process_text_symbolizer.cpp
	src/json/feature_grammar.cpp
	tests/cpp_tests/fontset_runtime_test.cpp
	tests/visual_tests/images/collision-600-400-1.0-agg-reference.png
	tests/visual_tests/images/image-filters-multi-blur-512-512-1.0-agg-reference.png
	tests/visual_tests/images/image-filters-multi-blur-512-512-2.0-agg-reference.png
	tests/visual_tests/images/image-filters-multi-blur-inflate-512-512-1.0-agg-reference.png
	tests/visual_tests/images/image-filters-multi-blur-inflate-512-512-2.0-agg-reference.png
	tests/visual_tests/images/lines-1-400-400-2.0-agg-reference.png
	tests/visual_tests/images/lines-1-600-600-1.0-agg-reference.png
	tests/visual_tests/images/lines-1-600-600-2.0-agg-reference.png
	tests/visual_tests/images/lines-2-200-200-1.0-agg-reference.png
	tests/visual_tests/images/lines-2-400-400-1.0-cairo-reference.png
	tests/visual_tests/images/lines-2-400-400-2.0-agg-reference.png
	tests/visual_tests/images/lines-2-600-600-2.0-agg-reference.png
	tests/visual_tests/images/lines-2-800-800-2.0-agg-reference.png
	tests/visual_tests/images/lines-3-400-400-2.0-agg-reference.png
	tests/visual_tests/images/lines-3-600-600-1.0-agg-reference.png
	tests/visual_tests/images/lines-3-600-600-2.0-agg-reference.png
	tests/visual_tests/images/lines-5-200-200-1.0-agg-reference.png
	tests/visual_tests/images/lines-5-200-200-2.0-agg-reference.png
	tests/visual_tests/images/lines-5-400-400-1.0-agg-reference.png
	tests/visual_tests/images/lines-5-400-400-2.0-agg-reference.png
	tests/visual_tests/images/lines-5-600-600-1.0-agg-reference.png
	tests/visual_tests/images/lines-5-600-600-2.0-agg-reference.png
	tests/visual_tests/images/lines-5-800-800-1.0-agg-reference.png
	tests/visual_tests/images/lines-5-800-800-2.0-agg-reference.png
	tests/visual_tests/images/lines-6-200-200-1.0-agg-reference.png
	tests/visual_tests/images/lines-6-200-200-2.0-agg-reference.png
	tests/visual_tests/images/lines-6-400-400-1.0-agg-reference.png
	tests/visual_tests/images/lines-6-600-600-1.0-agg-reference.png
	tests/visual_tests/images/lines-6-600-600-2.0-agg-reference.png
	tests/visual_tests/images/lines-6-800-800-1.0-agg-reference.png
	tests/visual_tests/images/lines-6-800-800-2.0-agg-reference.png
	tests/visual_tests/images/lines-shield-600-600-2.0-agg-reference.png
	tests/visual_tests/images/lines-shield-600-600-2.0-cairo-reference.png
	tests/visual_tests/images/shield-on-polygon-600-400-1.0-agg-reference.png
	tests/visual_tests/images/shield-on-polygon-600-400-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-1-490-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-1-495-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-1-495-100-2.0-cairo-reference.png
	tests/visual_tests/images/shieldsymbolizer-1-497-100-1.0-cairo-reference.png
	tests/visual_tests/images/shieldsymbolizer-1-497-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-1-497-100-2.0-cairo-reference.png
	tests/visual_tests/images/shieldsymbolizer-1-498-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-1-499-100-1.0-cairo-reference.png
	tests/visual_tests/images/shieldsymbolizer-1-499-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-1-499-100-2.0-cairo-reference.png
	tests/visual_tests/images/shieldsymbolizer-1-500-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-1-501-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-1-502-100-1.0-cairo-reference.png
	tests/visual_tests/images/shieldsymbolizer-1-502-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-1-505-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-1-505-100-2.0-cairo-reference.png
	tests/visual_tests/images/shieldsymbolizer-1-510-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-3-490-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-3-495-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-3-497-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-3-498-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-3-499-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-3-500-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-3-501-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-3-502-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-3-505-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-3-510-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-4-490-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-4-495-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-4-497-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-4-498-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-4-499-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-4-500-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-4-501-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-4-502-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-4-505-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-4-510-100-2.0-agg-reference.png
	tests/visual_tests/test.py
This commit is contained in:
Dane Springmeyer 2014-04-24 14:50:55 -07:00
commit 39737c5f1d
549 changed files with 2275 additions and 1538 deletions

View file

@ -52,4 +52,3 @@ notifications:
email:
on_success: [never]
on_failure: [change]

View file

@ -14,6 +14,12 @@ Released ...
Summary: TODO
- PostGIS: Added support for rendering 3D and 4D geometries (previously silently skipped) (#44)
- AGG renderer: fixed geometry offsetting to work after smoothing to produce more consistent results (#2202)
- AGG renderer: increased `vertex_dist_epsilon` to ensure nearly coincident points are discarded more readily (#2196)
- GDAL plugin: Added back support for user driven `nodata` on rgb(a) images (#2023)
- GDAL plugin: Allowed nodata to override alpha band if set on rgba images (#2023)

View file

@ -27,7 +27,7 @@ namespace agg
//------------------------------------------------------vertex_dist_epsilon
// Coinciding points maximal distance (Epsilon)
const double vertex_dist_epsilon = 1e-14;
const double vertex_dist_epsilon = 1e-5;
//-----------------------------------------------------intersection_epsilon
// See calc_intersection

View file

@ -46,7 +46,6 @@ template <typename Geometry>
struct MAPNIK_DECL offset_converter
{
typedef std::size_t size_type;
//typedef typename Geometry::value_type value_type;
offset_converter(Geometry & geom)
: geom_(geom)
@ -62,10 +61,7 @@ struct MAPNIK_DECL offset_converter
enum status
{
initial,
process,
last_vertex,
angle_joint,
end
process
};
double get_offset() const
@ -98,19 +94,27 @@ struct MAPNIK_DECL offset_converter
unsigned vertex(double * x, double * y)
{
if (offset_ == 0.0)
{
return geom_.vertex(x, y);
}
if (status_ == initial)
{
init_vertices();
}
if (pos_ >= vertices_.size())
{
return SEG_END;
}
pre_ = (pos_ ? cur_ : pre_first_);
cur_ = vertices_[pos_++];
cur_ = vertices_.at(pos_++);
if (pos_ == vertices_.size())
{
return output_vertex(x, y);
}
double const check_dist = offset_ * threshold_;
double const check_dist2 = check_dist * check_dist;
@ -127,13 +131,19 @@ struct MAPNIK_DECL offset_converter
double const dy = u0.y - cur_.y;
if (dx*dx + dy*dy > check_dist2)
{
break;
}
if (!intersection(pre_, cur_, &vt, u0, u1, &ut))
{
continue;
}
if (vt < 0.0 || vt > t || ut < 0.0 || ut > 1.0)
{
continue;
}
t = vt;
pos_ = i+1;
@ -162,11 +172,17 @@ private:
static double explement_reflex_angle(double angle)
{
if (angle > pi)
{
return angle - 2 * pi;
}
else if (angle < -pi)
{
return angle + 2 * pi;
}
else
{
return angle;
}
}
static bool intersection(vertex2d const& u1, vertex2d const& u2, double* ut,
@ -186,7 +202,9 @@ private:
double const dn = vx * uy - ux * vy;
if (dn > -1e-6 && dn < 1e-6)
{
return false; // they are parallel
}
*vt = up / dn;
*ut = (*vt * vx + dx) / ux;
@ -200,7 +218,9 @@ private:
double const dn = vy * ux - uy * vx;
if (dn > -1e-6 && dn < 1e-6)
{
return false; // they are parallel
}
*vt = up / dn;
*ut = (*vt * vy + dy) / uy;
@ -251,7 +271,9 @@ private:
status init_vertices()
{
if (status_ != initial) // already initialized
{
return status_;
}
vertex2d v1(vertex2d::no_init);
vertex2d v2(vertex2d::no_init);
@ -261,7 +283,9 @@ private:
v2.cmd = geom_.vertex(&v2.x, &v2.y);
if (v2.cmd == SEG_END) // not enough vertices in source
{
return status_ = process;
}
double angle_a = 0;
double angle_b = std::atan2((v2.y - v1.y), (v2.x - v1.x));
@ -290,16 +314,24 @@ private:
if (offset_ < 0.0)
{
if (joint_angle > 0.0)
{
joint_angle = joint_angle - 2 * pi;
}
else
bulge_steps = 1 + int(std::floor(half_turns / pi));
{
bulge_steps = 1 + static_cast<int>(std::floor(half_turns / pi));
}
}
else
{
if (joint_angle < 0.0)
{
joint_angle = joint_angle + 2 * pi;
}
else
bulge_steps = 1 + int(floor(half_turns / pi));
{
bulge_steps = 1 + static_cast<int>(std::floor(half_turns / pi));
}
}
#ifdef MAPNIK_LOG
@ -322,7 +354,7 @@ private:
displace(w, v1, angle_a);
push_vertex(w);
for (int s = 0; ++s < bulge_steps; )
for (int s = 0; ++s < bulge_steps;)
{
displace(w, v1, angle_a + (joint_angle * s) / bulge_steps);
push_vertex(w);

View file

@ -36,9 +36,6 @@
// boost
// stl
#include <cassert>
extern "C"
{
#include <png.h>
@ -542,11 +539,9 @@ void save_as_png8_oct(T1 & file,
std::vector<rgb> pal;
trees[j].setOffset( static_cast<unsigned>(palette.size()));
trees[j].create_palette(pal);
assert(pal.size() <= opts.colors);
leftovers = cols[j] - static_cast<unsigned>(pal.size());
cols[j] = static_cast<unsigned>(pal.size());
palette.insert(palette.begin(), pal.begin(), pal.end());
assert(palette.size() <= 256);
}
}
@ -684,7 +679,6 @@ void save_as_png8_hex(T1 & file,
//transparency values per palette index
std::vector<mapnik::rgba> pal;
tree.create_palette(pal);
assert(int(pal.size()) <= opts.colors);
std::vector<mapnik::rgb> palette;
std::vector<unsigned> alphaTable;
for(unsigned i=0; i<pal.size(); i++)

View file

@ -43,4 +43,4 @@ MAPNIK_DECL std::string dirname(std::string const& value);
#endif
#endif

View file

@ -71,4 +71,4 @@ inline void hsl2rgb(double h, double s, double l,
}
#endif // end MAPNIK_HSL_HPP
#endif // end MAPNIK_HSL_HPP

View file

@ -21,6 +21,7 @@
*****************************************************************************/
// mapnik
#include <mapnik/std.hpp>
#include <mapnik/global.hpp>
#include <mapnik/debug.hpp>
#include <mapnik/image_data.hpp>
@ -449,9 +450,9 @@ feature_ptr gdal_featureset::get_feature_at_point(mapnik::coord2d const& pt)
{
// construct feature
feature_ptr feature = feature_factory::create(ctx_,1);
geometry_type * point = new geometry_type(mapnik::geometry_type::types::Point);
std::unique_ptr<geometry_type> point = std::make_unique<geometry_type>(mapnik::geometry_type::types::Point);
point->move_to(pt.x, pt.y);
feature->add_geometry(point);
feature->add_geometry(point.release());
feature->put_new("value",value);
if (raster_has_nodata)
{

View file

@ -259,9 +259,9 @@ void occi_featureset::convert_geometry(SDOGeometry* geom, feature_ptr feature)
SDOPointType* sdopoint = geom->getSdo_point();
if (sdopoint && ! sdopoint->isNull())
{
geometry_type* point = new geometry_type(mapnik::geometry_type::types::Point);
std::unique_ptr<geometry_type> point = std::make_unique<geometry_type>(mapnik::geometry_type::types::Point);
point->move_to(sdopoint->getX(), sdopoint->getY());
feature->add_geometry(point);
feature->add_geometry(point.release());
}
}
break;

View file

@ -165,8 +165,8 @@ void ogr_datasource::init(mapnik::parameters const& params)
int num_layers = dataset_->GetLayerCount();
if (*layer_by_index >= num_layers)
{
std::ostringstream s("OGR Plugin: only ");
s << num_layers << " layer(s) exist, cannot find layer by index '" << *layer_by_index << "'";
std::ostringstream s;
s << "OGR Plugin: only " << num_layers << " layer(s) exist, cannot find layer by index '" << *layer_by_index << "'";
throw datasource_exception(s.str());
}
@ -214,7 +214,8 @@ void ogr_datasource::init(mapnik::parameters const& params)
if (! layer_.is_valid())
{
std::ostringstream s("OGR Plugin: ");
std::ostringstream s;
s << "OGR Plugin: ";
if (layer_by_name)
{
@ -452,8 +453,8 @@ void validate_attribute_names(query const& q, std::vector<attribute_descriptor>
if (! found_name)
{
std::ostringstream s("OGR Plugin: no attribute '");
s << *pos << "'. Valid attributes are: ";
std::ostringstream s;
s << "OGR Plugin: no attribute named '" << *pos << "'. Valid attributes are: ";
std::vector<attribute_descriptor>::const_iterator e_itr = names.begin();
std::vector<attribute_descriptor>::const_iterator e_end = names.end();
for ( ;e_itr!=e_end;++e_itr)

View file

@ -21,6 +21,7 @@
Import ('plugin_base')
Import ('env')
from copy import copy
PLUGIN_NAME = 'osm'
@ -37,9 +38,24 @@ plugin_sources = Split(
""" % locals()
)
plugin_env['LIBS'] = []
if env['RUNTIME_LINK'] == 'static':
# pkg-config is more reliable than pg_config across platforms
cmd = 'pkg-config libcurl --libs --static'
try:
plugin_env.ParseConfig(cmd)
except OSError, e:
# if this fails likely only system curl is available
# on OS X at least the system curl lacks a pkg-config file
# so static linking is not viable anyway
plugin_env.Append(LIBS='curl')
else:
plugin_env.Append(LIBS='curl')
plugin_env.Append(LIBS='xml2')
# Link Library to Dependencies
libraries = [ 'xml2' ]
libraries.append('curl')
libraries = copy(plugin_env['LIBS'])
libraries.append(env['ICU_LIB_NAME'])
libraries.append('boost_system%s' % env['BOOST_APPEND'])

View file

@ -22,6 +22,7 @@
*****************************************************************************/
// mapnik
#include <mapnik/std.hpp>
#include <mapnik/geometry.hpp>
#include <mapnik/feature.hpp>
#include <mapnik/feature_factory.hpp>
@ -64,9 +65,9 @@ feature_ptr osm_featureset<filterT>::next()
feature = feature_factory::create(ctx_, cur_item->id);
double lat = static_cast<osm_node*>(cur_item)->lat;
double lon = static_cast<osm_node*>(cur_item)->lon;
geometry_type* point = new geometry_type(mapnik::geometry_type::types::Point);
std::unique_ptr<geometry_type> point = std::make_unique<geometry_type>(mapnik::geometry_type::types::Point);
point->move_to(lon, lat);
feature->add_geometry(point);
feature->add_geometry(point.release());
}
else if (dataset_->current_item_is_way())
{
@ -82,15 +83,12 @@ feature_ptr osm_featureset<filterT>::next()
if (!cur_item) return feature_ptr();
feature = feature_factory::create(ctx_, cur_item->id);
geometry_type* geom;
mapnik::geometry_type::types geom_type = mapnik::geometry_type::types::LineString;
if (static_cast<osm_way*>(cur_item)->is_polygon())
{
geom = new geometry_type(mapnik::geometry_type::types::Polygon);
}
else
{
geom = new geometry_type(mapnik::geometry_type::types::LineString);
geom_type = mapnik::geometry_type::types::Polygon;
}
std::unique_ptr<geometry_type> geom = std::make_unique<geometry_type>(geom_type);
geom->move_to(static_cast<osm_way*>(cur_item)->nodes[0]->lon,
static_cast<osm_way*>(cur_item)->nodes[0]->lat);
@ -102,7 +100,7 @@ feature_ptr osm_featureset<filterT>::next()
geom->line_to(static_cast<osm_way*>(cur_item)->nodes[count]->lon,
static_cast<osm_way*>(cur_item)->nodes[count]->lat);
}
feature->add_geometry(geom);
feature->add_geometry(geom.release());
}
else
{

View file

@ -34,23 +34,21 @@ plugin_sources = Split(
""" % locals()
)
# Link Library to Dependencies
cxxflags = []
plugin_env['LIBS'] = []
libraries = ['pq']
#if env['THREADING'] == 'multi':
# libraries.append('boost_thread%s' % env['BOOST_APPEND'])
if env['RUNTIME_LINK'] == 'static':
# pg_config does not seem to report correct deps of libpq
# on os x so resort to hardcoding for now
if env['PLATFORM'] == 'Darwin':
libraries.extend(['ldap', 'pam', 'ssl', 'crypto', 'krb5'])
else:
# TODO - parse back into libraries variable
plugin_env.ParseConfig('pg_config --libs')
if plugin_env['LIBS']:
libraries.extend(copy(plugin_env['LIBS']))
# pkg-config is more reliable than pg_config across platforms
cmd = 'pkg-config libpq --libs --static'
try:
plugin_env.ParseConfig(cmd)
except OSError, e:
plugin_env.Append(LIBS='pq')
else:
plugin_env.Append(LIBS='pq')
# Link Library to Dependencies
libraries = copy(plugin_env['LIBS'])
if env['PLUGIN_LINKING'] == 'shared':
libraries.insert(0,'mapnik')

View file

@ -77,32 +77,38 @@ public:
}
}
bool execute(std::string const& sql) const
bool execute(std::string const& sql)
{
#ifdef MAPNIK_STATS
mapnik::progress_timer __stats__(std::clog, std::string("postgis_connection::execute ") + sql);
#endif
PGresult *result = PQexec(conn_, sql.c_str());
if ( ! executeAsyncQuery(sql) ) return false;
PGresult *result = 0;
// fetch multiple times until NULL is returned,
// to handle multi-statement queries
while ( PGresult *tmp = getResult() ) {
if ( result ) PQclear(result);
result = tmp;
}
bool ok = (result && (PQresultStatus(result) == PGRES_COMMAND_OK));
if ( result ) PQclear(result);
return ok;
}
std::shared_ptr<ResultSet> executeQuery(std::string const& sql, int type = 0) const
std::shared_ptr<ResultSet> executeQuery(std::string const& sql, int type = 0)
{
#ifdef MAPNIK_STATS
mapnik::progress_timer __stats__(std::clog, std::string("postgis_connection::execute_query ") + sql);
#endif
PGresult* result = 0;
if (type == 1)
{
result = PQexecParams(conn_,sql.c_str(), 0, 0, 0, 0, 0, 1);
}
else
{
result = PQexec(conn_, sql.c_str());
if ( executeAsyncQuery(sql, type) ) {
// fetch multiple times until NULL is returned,
// to handle multi-statement queries
while ( PGresult *tmp = getResult() ) {
if ( result ) PQclear(result);
result = tmp;
}
}
if (! result || (PQresultStatus(result) != PGRES_TUPLES_OK))
@ -112,10 +118,7 @@ public:
err_msg += "\nin executeQuery Full sql was: '";
err_msg += sql;
err_msg += "'\n";
if (result)
{
PQclear(result);
}
if ( result ) PQclear(result);
throw mapnik::datasource_exception(err_msg);
}
@ -163,10 +166,15 @@ public:
return result;
}
PGresult* getResult()
{
PGresult *result = PQgetResult(conn_);
return result;
}
std::shared_ptr<ResultSet> getNextAsyncResult()
{
PGresult *result = PQgetResult(conn_);
PGresult *result = getResult();
if( result && (PQresultStatus(result) != PGRES_TUPLES_OK))
{
std::string err_msg = "Postgis Plugin: ";
@ -183,7 +191,7 @@ public:
std::shared_ptr<ResultSet> getAsyncResult()
{
PGresult *result = PQgetResult(conn_);
PGresult *result = getResult();
if ( !result || (PQresultStatus(result) != PGRES_TUPLES_OK))
{
std::string err_msg = "Postgis Plugin: ";

View file

@ -1026,8 +1026,7 @@ boost::optional<mapnik::datasource::geometry_t> postgis_datasource::get_geometry
}
else // geometry
{
result.reset(mapnik::datasource::Collection);
return result;
g_type = "";
}
}
}

View file

@ -241,7 +241,7 @@ void agg_renderer<T>::start_style_processing(feature_type_style const& st)
{
int radius = 0;
mapnik::filter::filter_radius_visitor visitor(radius);
for(mapnik::filter::filter_type const& filter_tag : st.image_filters())
for (mapnik::filter::filter_type const& filter_tag : st.image_filters())
{
boost::apply_visitor(visitor, filter_tag);
}

View file

@ -82,8 +82,10 @@ void agg_renderer<T>::process(line_symbolizer const& sym,
typedef agg::pixfmt_custom_blend_rgba<blender_type, agg::rendering_buffer> pixfmt_comp_type;
typedef agg::renderer_base<pixfmt_comp_type> renderer_base;
typedef boost::mpl::vector<clip_line_tag, transform_tag,
offset_transform_tag, affine_transform_tag,
simplify_tag, smooth_tag, dash_tag, stroke_tag> conv_types;
affine_transform_tag,
simplify_tag, smooth_tag,
offset_transform_tag,
dash_tag, stroke_tag> conv_types;
pixfmt_comp_type pixf(buf);
pixf.comp_op(static_cast<agg::comp_op_e>(sym.comp_op()));

View file

@ -59,7 +59,8 @@ system = 'boost_system%s' % env['BOOST_APPEND']
# clear out and re-set libs for this env
# note: order matters on linux: see lorder | tsort
lib_env['LIBS'] = [filesystem,regex]
lib_env['LIBS'] = [filesystem,
regex]
if env['HAS_CAIRO']:
lib_env.Append(LIBS=env['CAIRO_ALL_LIBS'])

View file

@ -20,6 +20,8 @@
*
*****************************************************************************/
#if defined(HAVE_CAIRO)
#include <mapnik/cairo_context.hpp>
#include <mapnik/text/face.hpp>
#include <mapnik/text/text_properties.hpp>
@ -480,3 +482,4 @@ void cairo_context::add_text(glyph_positions_ptr pos,
}
} //ns mapnik
#endif

View file

@ -450,8 +450,10 @@ void cairo_renderer_base::process(line_symbolizer const& sym,
proj_transform const& prj_trans)
{
typedef boost::mpl::vector<clip_line_tag, transform_tag,
offset_transform_tag, affine_transform_tag,
simplify_tag, smooth_tag, dash_tag, stroke_tag> conv_types;
affine_transform_tag,
simplify_tag, smooth_tag,
offset_transform_tag,
dash_tag, stroke_tag> conv_types;
cairo_save_restore guard(context_);
mapnik::stroke const& stroke_ = sym.get_stroke();
context_.set_operator(sym.comp_op());

View file

@ -20,6 +20,8 @@
*
*****************************************************************************/
#if defined(GRID_RENDERER)
// mapnik
#include <mapnik/grid/grid.hpp>
#include <mapnik/debug.hpp>
@ -146,3 +148,5 @@ void hit_grid<T>::add_feature(mapnik::feature_impl & feature)
template class hit_grid<mapnik::value_integer>;
}
#endif

View file

@ -20,6 +20,8 @@
*
*****************************************************************************/
#if defined(GRID_RENDERER)
// mapnik
#include <mapnik/grid/grid_rasterizer.hpp>
#include <mapnik/grid/grid_renderer.hpp>
@ -212,3 +214,5 @@ void grid_renderer<T>::render_marker(mapnik::feature_impl & feature, unsigned in
template class grid_renderer<grid>;
}
#endif

View file

@ -20,6 +20,8 @@
*
*****************************************************************************/
#if defined(GRID_RENDERER)
// mapnik
#include <mapnik/std.hpp>
#include <mapnik/feature.hpp>
@ -165,3 +167,5 @@ template void grid_renderer<grid>::process(building_symbolizer const&,
proj_transform const&);
}
#endif

View file

@ -20,6 +20,8 @@
*
*****************************************************************************/
#if defined(GRID_RENDERER)
// mapnik
#include <mapnik/feature.hpp>
#include <mapnik/grid/grid_rasterizer.hpp>
@ -136,3 +138,6 @@ template void grid_renderer<grid>::process(line_pattern_symbolizer const&,
proj_transform const&);
}
#endif

View file

@ -20,6 +20,8 @@
*
*****************************************************************************/
#if defined(GRID_RENDERER)
// mapnik
#include <mapnik/feature.hpp>
#include <mapnik/grid/grid_rasterizer.hpp>
@ -120,3 +122,5 @@ template void grid_renderer<grid>::process(line_symbolizer const&,
proj_transform const&);
}
#endif

View file

@ -20,6 +20,8 @@
*
*****************************************************************************/
#if defined(GRID_RENDERER)
/*
porting notes -->
@ -257,3 +259,5 @@ template void grid_renderer<grid>::process(markers_symbolizer const&,
mapnik::feature_impl &,
proj_transform const&);
}
#endif

View file

@ -20,6 +20,8 @@
*
*****************************************************************************/
#if defined(GRID_RENDERER)
// mapnik
#include <mapnik/feature.hpp>
#include <mapnik/grid/grid_rasterizer.hpp>
@ -119,3 +121,5 @@ template void grid_renderer<grid>::process(point_symbolizer const&,
proj_transform const&);
}
#endif

View file

@ -20,6 +20,8 @@
*
*****************************************************************************/
#if defined(GRID_RENDERER)
// boost
@ -114,3 +116,6 @@ template void grid_renderer<grid>::process(polygon_pattern_symbolizer const&,
proj_transform const&);
}
#endif

View file

@ -20,6 +20,8 @@
*
*****************************************************************************/
#if defined(GRID_RENDERER)
// boost
@ -99,3 +101,5 @@ template void grid_renderer<grid>::process(polygon_symbolizer const&,
proj_transform const&);
}
#endif

View file

@ -20,6 +20,8 @@
*
*****************************************************************************/
#if defined(GRID_RENDERER)
// mapnik
#include <mapnik/feature.hpp>
#include <mapnik/debug.hpp>
@ -41,3 +43,5 @@ template void grid_renderer<grid>::process(raster_symbolizer const&,
proj_transform const&);
}
#endif

View file

@ -21,6 +21,8 @@
*
*****************************************************************************/
#if defined(GRID_RENDERER)
// mapnik
#include <mapnik/grid/grid_renderer.hpp>
#include <mapnik/text/symbolizer_helpers.hpp>
@ -65,3 +67,5 @@ template void grid_renderer<grid>::process(shield_symbolizer const&,
proj_transform const&);
}
#endif

View file

@ -20,6 +20,8 @@
*
*****************************************************************************/
#if defined(GRID_RENDERER)
// mapnik
#include <mapnik/grid/grid_renderer.hpp>
#include <mapnik/text/symbolizer_helpers.hpp>
@ -55,3 +57,6 @@ template void grid_renderer<grid>::process(text_symbolizer const&,
proj_transform const&);
}
#endif

View file

@ -20,6 +20,8 @@
*
*****************************************************************************/
#if defined(SVG_RENDERER)
// mapnik
#include <mapnik/svg/output/svg_renderer.hpp>
@ -37,3 +39,5 @@ template void svg_renderer<std::ostream_iterator<char> >::process(building_symbo
mapnik::feature_impl & feature,
proj_transform const& prj_trans);
}
#endif

View file

@ -20,6 +20,8 @@
*
*****************************************************************************/
#if defined(SVG_RENDERER)
// mapnik
#include <mapnik/svg/output/svg_renderer.hpp>
@ -37,3 +39,5 @@ template void svg_renderer<std::ostream_iterator<char> >::process(line_pattern_s
mapnik::feature_impl & feature,
proj_transform const& prj_trans);
}
#endif

View file

@ -20,6 +20,8 @@
*
*****************************************************************************/
#if defined(SVG_RENDERER)
// mapnik
#include <mapnik/svg/output/svg_renderer.hpp>
@ -46,3 +48,6 @@ template void svg_renderer<std::ostream_iterator<char> >::process(line_symbolize
mapnik::feature_impl & feature,
proj_transform const& prj_trans);
}
#endif

View file

@ -20,6 +20,8 @@
*
*****************************************************************************/
#if defined(SVG_RENDERER)
// mapnik
#include <mapnik/svg/output/svg_renderer.hpp>
@ -37,3 +39,5 @@ template void svg_renderer<std::ostream_iterator<char> >::process(markers_symbol
mapnik::feature_impl & feature,
proj_transform const& prj_trans);
}
#endif

View file

@ -20,6 +20,8 @@
*
*****************************************************************************/
#if defined(SVG_RENDERER)
// mapnik
#include <mapnik/svg/output/svg_renderer.hpp>
@ -37,3 +39,5 @@ template void svg_renderer<std::ostream_iterator<char> >::process(point_symboliz
mapnik::feature_impl & feature,
proj_transform const& prj_trans);
}
#endif

View file

@ -20,6 +20,8 @@
*
*****************************************************************************/
#if defined(SVG_RENDERER)
// mapnik
#include <mapnik/svg/output/svg_renderer.hpp>
@ -37,3 +39,5 @@ template void svg_renderer<std::ostream_iterator<char> >::process(polygon_patter
mapnik::feature_impl & feature,
proj_transform const& prj_trans);
}
#endif

View file

@ -20,6 +20,8 @@
*
*****************************************************************************/
#if defined(SVG_RENDERER)
// mapnik
#include <mapnik/svg/output/svg_renderer.hpp>
@ -41,3 +43,5 @@ template void svg_renderer<std::ostream_iterator<char> >::process(polygon_symbol
mapnik::feature_impl & feature,
proj_transform const& prj_trans);
}
#endif

View file

@ -20,6 +20,8 @@
*
*****************************************************************************/
#if defined(SVG_RENDERER)
// mapnik
#include <mapnik/svg/output/svg_renderer.hpp>
@ -37,3 +39,5 @@ template void svg_renderer<std::ostream_iterator<char> >::process(raster_symboli
mapnik::feature_impl & feature,
proj_transform const& prj_trans);
}
#endif

View file

@ -20,6 +20,8 @@
*
*****************************************************************************/
#if defined(SVG_RENDERER)
// mapnik
#include <mapnik/svg/output/svg_renderer.hpp>
@ -37,3 +39,5 @@ template void svg_renderer<std::ostream_iterator<char> >::process(shield_symboli
mapnik::feature_impl & feature,
proj_transform const& prj_trans);
}
#endif

View file

@ -20,6 +20,8 @@
*
*****************************************************************************/
#if defined(SVG_RENDERER)
// mapnik
#include <mapnik/svg/output/svg_renderer.hpp>
@ -92,3 +94,6 @@ template bool svg_renderer<std::ostream_iterator<char> >::process(rule::symboliz
proj_transform const& prj_trans);
}
#endif

View file

@ -20,6 +20,8 @@
*
*****************************************************************************/
#if defined(SVG_RENDERER)
// mapnik
#include <mapnik/svg/output/svg_renderer.hpp>
@ -37,3 +39,5 @@ template void svg_renderer<std::ostream_iterator<char> >::process(text_symbolize
mapnik::feature_impl & feature,
proj_transform const& prj_trans);
}
#endif

View file

@ -20,6 +20,8 @@
*
*****************************************************************************/
#if defined(SVG_RENDERER)
// mapnik
#include <mapnik/svg/output/svg_generator.hpp>
#include <mapnik/geometry.hpp>
@ -109,3 +111,6 @@ namespace mapnik { namespace svg {
template class svg_generator<std::ostream_iterator<char> >;
}}
#endif

View file

@ -21,6 +21,8 @@
*
*****************************************************************************/
#if defined(SVG_RENDERER)
// mapnik
#include <mapnik/svg/output/svg_output_attributes.hpp>
@ -288,3 +290,6 @@ namespace mapnik { namespace svg {
svg_namespace_url_ = SVG_NAMESPACE_URL;
}
}}
#endif

View file

@ -20,6 +20,8 @@
*
*****************************************************************************/
#if defined(SVG_RENDERER)
// mapnik
#include <mapnik/debug.hpp>
#include <mapnik/svg/output/svg_renderer.hpp>
@ -117,3 +119,5 @@ void svg_renderer<T>::end_layer_processing(layer const& lay)
template class svg_renderer<std::ostream_iterator<char> >;
}
#endif

View file

@ -63,14 +63,31 @@ public:
wkbMultiLineString=5,
wkbMultiPolygon=6,
wkbGeometryCollection=7,
// Z
wkbPointZ=1001,
wkbLineStringZ=1002,
wkbPolygonZ=1003,
wkbMultiPointZ=1004,
wkbMultiLineStringZ=1005,
wkbMultiPolygonZ=1006,
wkbGeometryCollectionZ=1007
};
wkbGeometryCollectionZ=1007,
// M
wkbPointM=2001,
wkbLineStringM=2002,
wkbPolygonM=2003,
wkbMultiPointM=2004,
wkbMultiLineStringM=2005,
wkbMultiPolygonM=2006,
wkbGeometryCollectionM=2007,
// ZM
wkbPointZM=3001,
wkbLineStringZM=3002,
wkbPolygonZM=3003,
wkbMultiPointZM=3004,
wkbMultiLineStringZM=3005,
wkbMultiPolygonZM=3006,
wkbGeometryCollectionZM=3007
};
wkb_reader(const char* wkb, std::size_t size, wkbFormat format)
: wkb_(wkb),
@ -143,24 +160,50 @@ public:
read_collection(paths);
break;
case wkbPointZ:
case wkbPointM:
read_point_xyz(paths);
break;
case wkbPointZM:
read_point_xyzm(paths);
break;
case wkbLineStringZ:
case wkbLineStringM:
read_linestring_xyz(paths);
break;
case wkbLineStringZM:
read_linestring_xyzm(paths);
break;
case wkbPolygonZ:
case wkbPolygonM:
read_polygon_xyz(paths);
break;
case wkbPolygonZM:
read_polygon_xyzm(paths);
break;
case wkbMultiPointZ:
case wkbMultiPointM:
read_multipoint_xyz(paths);
break;
case wkbMultiPointZM:
read_multipoint_xyzm(paths);
break;
case wkbMultiLineStringZ:
case wkbMultiLineStringM:
read_multilinestring_xyz(paths);
break;
case wkbMultiLineStringZM:
read_multilinestring_xyzm(paths);
break;
case wkbMultiPolygonZ:
case wkbMultiPolygonM:
read_multipolygon_xyz(paths);
break;
case wkbMultiPolygonZM:
read_multipolygon_xyzm(paths);
break;
case wkbGeometryCollectionZ:
case wkbGeometryCollectionM:
case wkbGeometryCollectionZM:
read_collection(paths);
break;
default:
@ -246,6 +289,27 @@ private:
}
}
void read_coords_xyzm(CoordinateArray& ar)
{
if (! needSwap_)
{
for (unsigned i = 0; i < ar.size(); ++i)
{
read_double_ndr(wkb_ + pos_, ar[i].x);
read_double_ndr(wkb_ + pos_ + 8, ar[i].y);
pos_ += 32; // skip XYZM
}
}
else
{
for (unsigned i = 0; i < ar.size(); ++i)
{
read_double_xdr(wkb_ + pos_, ar[i].x);
read_double_xdr(wkb_ + pos_ + 8, ar[i].y);
pos_ += 32; // skip XYZM
}
}
}
void read_point(boost::ptr_vector<geometry_type> & paths)
{
@ -276,6 +340,16 @@ private:
paths.push_back(pt.release());
}
void read_point_xyzm(boost::ptr_vector<geometry_type> & paths)
{
double x = read_double();
double y = read_double();
std::auto_ptr<geometry_type> pt(new geometry_type(geometry_type::types::Point));
pos_ += 16;
pt->move_to(x, y);
paths.push_back(pt);
}
void read_multipoint_xyz(boost::ptr_vector<geometry_type> & paths)
{
int num_points = read_integer();
@ -286,6 +360,16 @@ private:
}
}
void read_multipoint_xyzm(boost::ptr_vector<geometry_type> & paths)
{
int num_points = read_integer();
for (int i = 0; i < num_points; ++i)
{
pos_ += 5;
read_point_xyzm(paths);
}
}
void read_linestring(boost::ptr_vector<geometry_type> & paths)
{
int num_points = read_integer();
@ -330,6 +414,23 @@ private:
}
}
void read_linestring_xyzm(boost::ptr_vector<geometry_type> & paths)
{
int num_points = read_integer();
if (num_points > 0)
{
CoordinateArray ar(num_points);
read_coords_xyzm(ar);
std::auto_ptr<geometry_type> line(new geometry_type(geometry_type::types::LineString));
line->move_to(ar[0].x, ar[0].y);
for (int i = 1; i < num_points; ++i)
{
line->line_to(ar[i].x, ar[i].y);
}
paths.push_back(line);
}
}
void read_multilinestring_xyz(boost::ptr_vector<geometry_type> & paths)
{
int num_lines = read_integer();
@ -340,6 +441,15 @@ private:
}
}
void read_multilinestring_xyzm(boost::ptr_vector<geometry_type> & paths)
{
int num_lines = read_integer();
for (int i = 0; i < num_lines; ++i)
{
pos_ += 5;
read_linestring_xyzm(paths);
}
}
void read_polygon(boost::ptr_vector<geometry_type> & paths)
{
@ -403,6 +513,32 @@ private:
}
}
void read_polygon_xyzm(boost::ptr_vector<geometry_type> & paths)
{
int num_rings = read_integer();
if (num_rings > 0)
{
std::auto_ptr<geometry_type> poly(new geometry_type(geometry_type::types::Polygon));
for (int i = 0; i < num_rings; ++i)
{
int num_points = read_integer();
if (num_points > 0)
{
CoordinateArray ar(num_points);
read_coords_xyzm(ar);
poly->move_to(ar[0].x, ar[0].y);
for (int j = 1; j < num_points; ++j)
{
poly->line_to(ar[j].x, ar[j].y);
}
poly->close_path();
}
}
if (poly->size() > 2) // ignore if polygon has less than 3 vertices
paths.push_back(poly);
}
}
void read_multipolygon_xyz(boost::ptr_vector<geometry_type> & paths)
{
int num_polys = read_integer();
@ -413,6 +549,16 @@ private:
}
}
void read_multipolygon_xyzm(boost::ptr_vector<geometry_type> & paths)
{
int num_polys = read_integer();
for (int i = 0; i < num_polys; ++i)
{
pos_ += 5;
read_polygon_xyzm(paths);
}
}
void read_collection(boost::ptr_vector<geometry_type> & paths)
{
int num_geometries = read_integer();

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 47 KiB

View file

@ -164,6 +164,34 @@ INSERT INTO test11(label,geom) values ('label_7',GeomFromEWKT('SRID=4326;MULTIPO
INSERT INTO test11(label,geom) values ('label_8',GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(POLYGON((1 1, 2 1, 2 2, 1 2,1 1)),POINT(2 3),LINESTRING(2 3,3 4))'));
"""
insert_table_12 = """
CREATE TABLE test12(gid serial PRIMARY KEY, name varchar(40), geom geometry);
INSERT INTO test12(name,geom) values ('Point',GeomFromEWKT('SRID=4326;POINT(0 0)'));
INSERT INTO test12(name,geom) values ('PointZ',GeomFromEWKT('SRID=4326;POINTZ(0 0 0)'));
INSERT INTO test12(name,geom) values ('PointM',GeomFromEWKT('SRID=4326;POINTM(0 0 0)'));
INSERT INTO test12(name,geom) values ('PointZM',GeomFromEWKT('SRID=4326;POINTZM(0 0 0 0)'));
INSERT INTO test12(name,geom) values ('MultiPoint',GeomFromEWKT('SRID=4326;MULTIPOINT(0 0, 1 1)'));
INSERT INTO test12(name,geom) values ('MultiPointZ',GeomFromEWKT('SRID=4326;MULTIPOINTZ(0 0 0, 1 1 1)'));
INSERT INTO test12(name,geom) values ('MultiPointM',GeomFromEWKT('SRID=4326;MULTIPOINTM(0 0 0, 1 1 1)'));
INSERT INTO test12(name,geom) values ('MultiPointZM',GeomFromEWKT('SRID=4326;MULTIPOINTZM(0 0 0 0, 1 1 1 1)'));
INSERT INTO test12(name,geom) values ('LineString',GeomFromEWKT('SRID=4326;LINESTRING(0 0, 1 1)'));
INSERT INTO test12(name,geom) values ('LineStringZ',GeomFromEWKT('SRID=4326;LINESTRINGZ(0 0 0, 1 1 1)'));
INSERT INTO test12(name,geom) values ('LineStringM',GeomFromEWKT('SRID=4326;LINESTRINGM(0 0 0, 1 1 1)'));
INSERT INTO test12(name,geom) values ('LineStringZM',GeomFromEWKT('SRID=4326;LINESTRINGZM(0 0 0 0, 1 1 1 1)'));
INSERT INTO test12(name,geom) values ('Polygon',GeomFromEWKT('SRID=4326;POLYGON((0 0, 1 1, 2 2, 0 0))'));
INSERT INTO test12(name,geom) values ('PolygonZ',GeomFromEWKT('SRID=4326;POLYGONZ((0 0 0, 1 1 1, 2 2 2, 0 0 0))'));
INSERT INTO test12(name,geom) values ('PolygonM',GeomFromEWKT('SRID=4326;POLYGONZ((0 0 0, 1 1 1, 2 2 2, 0 0 0))'));
INSERT INTO test12(name,geom) values ('PolygonZM',GeomFromEWKT('SRID=4326;POLYGONZM((0 0 0 0, 1 1 1 1, 2 2 2 2, 0 0 0 0))'));
INSERT INTO test12(name,geom) values ('MultiLineString',GeomFromEWKT('SRID=4326;MULTILINESTRING((0 0, 1 1),(2 2, 3 3))'));
INSERT INTO test12(name,geom) values ('MultiLineStringZ',GeomFromEWKT('SRID=4326;MULTILINESTRINGZ((0 0 0, 1 1 1),(2 2 2, 3 3 3))'));
INSERT INTO test12(name,geom) values ('MultiLineStringM',GeomFromEWKT('SRID=4326;MULTILINESTRINGM((0 0 0, 1 1 1),(2 2 2, 3 3 3))'));
INSERT INTO test12(name,geom) values ('MultiLineStringZM',GeomFromEWKT('SRID=4326;MULTILINESTRINGZM((0 0 0 0, 1 1 1 1),(2 2 2 2, 3 3 3 3))'));
INSERT INTO test12(name,geom) values ('MultiPolygon',GeomFromEWKT('SRID=4326;MULTIPOLYGON(((0 0, 1 1, 2 2, 0 0)),((0 0, 1 1, 2 2, 0 0)))'));
INSERT INTO test12(name,geom) values ('MultiPolygonZ',GeomFromEWKT('SRID=4326;MULTIPOLYGONZ(((0 0 0, 1 1 1, 2 2 2, 0 0 0)),((0 0 0, 1 1 1, 2 2 2, 0 0 0)))'));
INSERT INTO test12(name,geom) values ('MultiPolygonM',GeomFromEWKT('SRID=4326;MULTIPOLYGONM(((0 0 0, 1 1 1, 2 2 2, 0 0 0)),((0 0 0, 1 1 1, 2 2 2, 0 0 0)))'));
INSERT INTO test12(name,geom) values ('MultiPolygonZM',GeomFromEWKT('SRID=4326;MULTIPOLYGONZM(((0 0 0 0, 1 1 1 1, 2 2 2 2, 0 0 0 0)),((0 0 0 0, 1 1 1 1, 2 2 2 2, 0 0 0 0)))'));
"""
def postgis_setup():
call('dropdb %s' % MAPNIK_TEST_DBNAME,silent=True)
@ -182,6 +210,7 @@ def postgis_setup():
call('''psql -q %s -c "%s"''' % (MAPNIK_TEST_DBNAME,insert_table_9),silent=False)
call('''psql -q %s -c "%s"''' % (MAPNIK_TEST_DBNAME,insert_table_10),silent=False)
call('''psql -q %s -c "%s"''' % (MAPNIK_TEST_DBNAME,insert_table_11),silent=False)
call('''psql -q %s -c "%s"''' % (MAPNIK_TEST_DBNAME,insert_table_12),silent=False)
def postgis_takedown():
pass
@ -757,6 +786,231 @@ if 'postgis' in mapnik.DatasourceCache.plugin_names() \
# This used to raise an exception before correction of issue 2042
mapnik.render_to_file(map2,'world2.png', 'png')
def test_handling_of_zm_dimensions():
ds = mapnik.PostGIS(dbname=MAPNIK_TEST_DBNAME,
table='(select gid,ST_CoordDim(geom) as dim,name,geom from test12) as tmp',
geometry_field='geom')
eq_(len(ds.fields()),3)
eq_(ds.fields(),['gid', 'dim', 'name'])
eq_(ds.field_types(),['int', 'int', 'str'])
fs = ds.featureset()
# Point (2d)
feat = fs.next()
eq_(feat.id(),1)
eq_(feat['gid'],1)
eq_(feat['dim'],2)
eq_(feat['name'],'Point')
geoms = feat.geometries()
eq_(len(geoms),1)
eq_(geoms[0].to_wkt(),'Point(0 0)')
# PointZ
feat = fs.next()
eq_(feat.id(),2)
eq_(feat['gid'],2)
eq_(feat['dim'],3)
eq_(feat['name'],'PointZ')
geoms = feat.geometries()
eq_(len(geoms),1)
eq_(geoms[0].to_wkt(),'Point(0 0)')
# PointM
feat = fs.next()
eq_(feat.id(),3)
eq_(feat['gid'],3)
eq_(feat['dim'],3)
eq_(feat['name'],'PointM')
geoms = feat.geometries()
eq_(len(geoms),1)
eq_(geoms[0].to_wkt(),'Point(0 0)')
# PointZM
feat = fs.next()
eq_(feat.id(),4)
eq_(feat['gid'],4)
eq_(feat['dim'],4)
eq_(feat['name'],'PointZM')
geoms = feat.geometries()
eq_(len(geoms),1)
eq_(geoms[0].to_wkt(),'Point(0 0)')
# MultiPoint
feat = fs.next()
eq_(feat.id(),5)
eq_(feat['gid'],5)
eq_(feat['dim'],2)
eq_(feat['name'],'MultiPoint')
geoms = feat.geometries()
eq_(len(geoms),2)
eq_(geoms[0].to_wkt(),'Point(0 0)')
eq_(geoms[1].to_wkt(),'Point(1 1)')
# MultiPointZ
feat = fs.next()
eq_(feat.id(),6)
eq_(feat['gid'],6)
eq_(feat['dim'],3)
eq_(feat['name'],'MultiPointZ')
geoms = feat.geometries()
eq_(len(geoms),2)
eq_(geoms[0].to_wkt(),'Point(0 0)')
eq_(geoms[1].to_wkt(),'Point(1 1)')
# MultiPointM
feat = fs.next()
eq_(feat.id(),7)
eq_(feat['gid'],7)
eq_(feat['dim'],3)
eq_(feat['name'],'MultiPointM')
geoms = feat.geometries()
eq_(len(geoms),2)
eq_(geoms[0].to_wkt(),'Point(0 0)')
eq_(geoms[1].to_wkt(),'Point(1 1)')
# MultiPointZM
feat = fs.next()
eq_(feat.id(),8)
eq_(feat['gid'],8)
eq_(feat['dim'],4)
eq_(feat['name'],'MultiPointZM')
geoms = feat.geometries()
eq_(len(geoms),2)
eq_(geoms[0].to_wkt(),'Point(0 0)')
eq_(geoms[1].to_wkt(),'Point(1 1)')
# LineString
feat = fs.next()
eq_(feat.id(),9)
eq_(feat['gid'],9)
eq_(feat['dim'],2)
eq_(feat['name'],'LineString')
geoms = feat.geometries()
eq_(len(geoms),1)
eq_(geoms[0].to_wkt(),'LineString(0 0,1 1)')
# LineStringZ
feat = fs.next()
eq_(feat.id(),10)
eq_(feat['gid'],10)
eq_(feat['dim'],3)
eq_(feat['name'],'LineStringZ')
geoms = feat.geometries()
eq_(len(geoms),1)
eq_(geoms[0].to_wkt(),'LineString(0 0,1 1)')
# LineStringM
feat = fs.next()
eq_(feat.id(),11)
eq_(feat['gid'],11)
eq_(feat['dim'],3)
eq_(feat['name'],'LineStringM')
geoms = feat.geometries()
eq_(len(geoms),1)
eq_(geoms[0].to_wkt(),'LineString(0 0,1 1)')
# LineStringZM
feat = fs.next()
eq_(feat.id(),12)
eq_(feat['gid'],12)
eq_(feat['dim'],4)
eq_(feat['name'],'LineStringZM')
geoms = feat.geometries()
eq_(len(geoms),1)
eq_(geoms[0].to_wkt(),'LineString(0 0,1 1)')
# Polygon
feat = fs.next()
eq_(feat.id(),13)
eq_(feat['gid'],13)
eq_(feat['name'],'Polygon')
geoms = feat.geometries()
eq_(len(geoms),1)
eq_(geoms[0].to_wkt(),'Polygon((0 0,1 1,2 2,0 0))')
# PolygonZ
feat = fs.next()
eq_(feat.id(),14)
eq_(feat['gid'],14)
eq_(feat['name'],'PolygonZ')
geoms = feat.geometries()
eq_(len(geoms),1)
eq_(geoms[0].to_wkt(),'Polygon((0 0,1 1,2 2,0 0))')
# PolygonM
feat = fs.next()
eq_(feat.id(),15)
eq_(feat['gid'],15)
eq_(feat['name'],'PolygonM')
geoms = feat.geometries()
eq_(len(geoms),1)
eq_(geoms[0].to_wkt(),'Polygon((0 0,1 1,2 2,0 0))')
# PolygonZM
feat = fs.next()
eq_(feat.id(),16)
eq_(feat['gid'],16)
eq_(feat['name'],'PolygonZM')
geoms = feat.geometries()
eq_(len(geoms),1)
eq_(geoms[0].to_wkt(),'Polygon((0 0,1 1,2 2,0 0))')
# MultiLineString
feat = fs.next()
eq_(feat.id(),17)
eq_(feat['gid'],17)
eq_(feat['name'],'MultiLineString')
geoms = feat.geometries()
eq_(len(geoms),2)
eq_(geoms[0].to_wkt(),'LineString(0 0,1 1)')
eq_(geoms[1].to_wkt(),'LineString(2 2,3 3)')
# MultiLineStringZ
feat = fs.next()
eq_(feat.id(),18)
eq_(feat['gid'],18)
eq_(feat['name'],'MultiLineStringZ')
geoms = feat.geometries()
eq_(len(geoms),2)
eq_(geoms[0].to_wkt(),'LineString(0 0,1 1)')
eq_(geoms[1].to_wkt(),'LineString(2 2,3 3)')
# MultiLineStringM
feat = fs.next()
eq_(feat.id(),19)
eq_(feat['gid'],19)
eq_(feat['name'],'MultiLineStringM')
geoms = feat.geometries()
eq_(len(geoms),2)
eq_(geoms[0].to_wkt(),'LineString(0 0,1 1)')
eq_(geoms[1].to_wkt(),'LineString(2 2,3 3)')
# MultiLineStringZM
feat = fs.next()
eq_(feat.id(),20)
eq_(feat['gid'],20)
eq_(feat['name'],'MultiLineStringZM')
geoms = feat.geometries()
eq_(len(geoms),2)
eq_(geoms[0].to_wkt(),'LineString(0 0,1 1)')
eq_(geoms[1].to_wkt(),'LineString(2 2,3 3)')
# MultiPolygon
feat = fs.next()
eq_(feat.id(),21)
eq_(feat['gid'],21)
eq_(feat['name'],'MultiPolygon')
geoms = feat.geometries()
eq_(len(geoms),2)
eq_(geoms[0].to_wkt(),'Polygon((0 0,1 1,2 2,0 0))')
eq_(geoms[1].to_wkt(),'Polygon((0 0,1 1,2 2,0 0))')
# MultiPolygonZ
feat = fs.next()
eq_(feat.id(),22)
eq_(feat['gid'],22)
eq_(feat['name'],'MultiPolygonZ')
geoms = feat.geometries()
eq_(len(geoms),2)
eq_(geoms[0].to_wkt(),'Polygon((0 0,1 1,2 2,0 0))')
eq_(geoms[1].to_wkt(),'Polygon((0 0,1 1,2 2,0 0))')
# MultiPolygonM
feat = fs.next()
eq_(feat.id(),23)
eq_(feat['gid'],23)
eq_(feat['name'],'MultiPolygonM')
geoms = feat.geometries()
eq_(len(geoms),2)
eq_(geoms[0].to_wkt(),'Polygon((0 0,1 1,2 2,0 0))')
eq_(geoms[1].to_wkt(),'Polygon((0 0,1 1,2 2,0 0))')
# MultiPolygonZM
feat = fs.next()
eq_(feat.id(),24)
eq_(feat['gid'],24)
eq_(feat['name'],'MultiPolygonZM')
geoms = feat.geometries()
eq_(len(geoms),2)
eq_(geoms[0].to_wkt(),'Polygon((0 0,1 1,2 2,0 0))')
eq_(geoms[1].to_wkt(),'Polygon((0 0,1 1,2 2,0 0))')
atexit.register(postgis_takedown)

View file

@ -44,9 +44,9 @@ if 'shape' in mapnik.DatasourceCache.plugin_names():
mapnik.render(m,im)
actual = '/tmp/mapnik-wgs842merc-reprojection-render.png'
expected = 'images/support/mapnik-wgs842merc-reprojection-render.png'
im.save(actual)
im.save(actual,'png32')
expected_im = mapnik.Image.open(expected)
eq_(im.tostring(),expected_im.tostring(), 'failed comparing actual (%s) and expected (%s)' % (actual,'tests/python_tests/'+ expected))
eq_(im.tostring('png32'),expected_im.tostring('png32'), 'failed comparing actual (%s) and expected (%s)' % (actual,'tests/python_tests/'+ expected))
def test_visual_zoom_all_rendering2():
m = mapnik.Map(512,512)
@ -56,9 +56,9 @@ if 'shape' in mapnik.DatasourceCache.plugin_names():
mapnik.render(m,im)
actual = '/tmp/mapnik-merc2wgs84-reprojection-render.png'
expected = 'images/support/mapnik-merc2wgs84-reprojection-render.png'
im.save(actual)
im.save(actual,'png32')
expected_im = mapnik.Image.open(expected)
eq_(im.tostring(),expected_im.tostring(), 'failed comparing actual (%s) and expected (%s)' % (actual,'tests/python_tests/'+ expected))
eq_(im.tostring('png32'),expected_im.tostring('png32'), 'failed comparing actual (%s) and expected (%s)' % (actual,'tests/python_tests/'+ expected))
# maximum-extent read from map.xml
def test_visual_zoom_all_rendering3():
@ -69,9 +69,9 @@ if 'shape' in mapnik.DatasourceCache.plugin_names():
mapnik.render(m,im)
actual = '/tmp/mapnik-merc2merc-reprojection-render1.png'
expected = 'images/support/mapnik-merc2merc-reprojection-render1.png'
im.save(actual)
im.save(actual,'png32')
expected_im = mapnik.Image.open(expected)
eq_(im.tostring(),expected_im.tostring(), 'failed comparing actual (%s) and expected (%s)' % (actual,'tests/python_tests/'+ expected))
eq_(im.tostring('png32'),expected_im.tostring('png32'), 'failed comparing actual (%s) and expected (%s)' % (actual,'tests/python_tests/'+ expected))
# no maximum-extent
def test_visual_zoom_all_rendering4():
@ -83,9 +83,9 @@ if 'shape' in mapnik.DatasourceCache.plugin_names():
mapnik.render(m,im)
actual = '/tmp/mapnik-merc2merc-reprojection-render2.png'
expected = 'images/support/mapnik-merc2merc-reprojection-render2.png'
im.save(actual)
im.save(actual,'png32')
expected_im = mapnik.Image.open(expected)
eq_(im.tostring(),expected_im.tostring(), 'failed comparing actual (%s) and expected (%s)' % (actual,'tests/python_tests/'+ expected))
eq_(im.tostring('png32'),expected_im.tostring('png32'), 'failed comparing actual (%s) and expected (%s)' % (actual,'tests/python_tests/'+ expected))
if __name__ == "__main__":
setup()

View file

@ -1,5 +1,6 @@
# -*- coding: utf-8 -*-
import os
import sys
import mapnik
@ -10,6 +11,11 @@ except ImportError:
COMPUTE_THRESHOLD = 16
# testcase images are generated on OS X
# so they should exactly match
if os.uname()[0] == 'Darwin':
COMPUTE_THRESHOLD = 2
# returns true if pixels are not identical
def compare_pixels(pixel1, pixel2, alpha=True):
if pixel1 == pixel2:

BIN
tests/visual_tests/data/line.dbf Executable file

Binary file not shown.

BIN
tests/visual_tests/data/line.shp Executable file

Binary file not shown.

BIN
tests/visual_tests/data/line.shx Executable file

Binary file not shown.

View file

@ -19,12 +19,11 @@
" ",
" ",
" ",
" ",
" ! ! !! ! ! ! !! ! ! ! !! !! ",
" ! !! ! !! ! !! !! ",
" ! ! ",
" ! ! !! ! ! !! ",
" ! ! ! ! ",
" ! ! ! ! ! ",
" !!!! ! ! ! !! ! ! ! ! ! ",
" !!!! ! !! ! !! ! ! ",
" ! ! ! ! ",
@ -37,18 +36,18 @@
" !!!!!! ! ! ! !! ! !!!! ",
" ! ! ! ! !!!! !!! ! ! !! ",
" ! !! !!! !!! !!!! ",
" !! ! ! ! ! ! ",
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
" !!! !!!! !! !! !! ",
" !!!! !!!! !!! ! !! ",
" !!! ! !!!! !!! ! !! ! ",
" !!! !!! ! ! !!!! ",
" ! ! ! ! ! ",
" !!! ! !!! ! ! !! ! ",
" ! ! !! !! ! ! ",
" ! !! ! !! !! ! ! ",
" !!!!!! ! !! !!! ! !! ",
" !! !!! !!! ! !! ! ",
" ! ! ! ! ",
" ! !! ! !! ! !! ! ",
" ! ! ! !! ",
" ! !! ! !! ! !! !! ",
" ! !! ! !!!!! ! ! ",
" ! ! !! ! !! !!! ! ",
" !!!! !!! ! !! !!! ",
@ -60,8 +59,8 @@
" !! ! ! ! ! ",
" ! ! ! !! !!! !! ! ",
" ! !!!!! ! ",
" ! !! ! !!! !!!! !!!! ",
" !! !! !! !! !!! !! ! ",
" ! !! ! !!! ! !! !!!! ",
" !! !! !! !! !! !! ! ",
" ! ",
" ",
" ",
@ -79,6 +78,7 @@
" ",
" ",
" ",
" ",
" "
]
}

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,9 +1,9 @@
{
"keys": [
"",
"2",
"6",
"8",
"2",
"4"
],
"data": {},
@ -20,26 +20,26 @@
" ",
" ",
" ",
" ! ! # # $ ",
" !!!! # ## $$$ ",
" ! ! # # ",
" $$$ ! !! # ## ",
" ",
" ! !! ! %%%% %%%%% %%%% %%%%%%%%%% ##### # # # $ $$ $$ ",
" !! ! ! !! ! ! % % % % % %% % # ## # # ## $ $$ $ $ $ $$ ",
" !! ! !!!! ! %%%% % % % % %% % # # # #### # $ $ $ $$$$ $ ",
" ! ! ! ! ! ! ! % % % % % %% % # # # # # $ $ $ $ $ $ $ ",
" !!!! ! !! ! ! % %% % % % %% % # # ## # # $ $ $ $ $ $ ",
" ! ! ! !! ! ! % %% % % % % %% % ## # # # ## # # $ $$ $ $ $ $ ",
" ! % % % %% % ## # $ ",
" ! ! ! %%%%% %%%% %%%%%%%%%% # # # $ $ $ ",
" ! !! ! # ## # $ $$ $ ",
" ! ! ! # ## # $ $ $ ",
" ! ! # # $ $ ",
" ! ## $ ",
" $ $ $$$$ $ %%%% %%%%% %%%% %%%%%%%%%%%%%%% %%%% !!!!! !! ! ! ! ! # # #### # ",
" $ $ $ $$ $ $ $$ % %% % % % %% %% % !! !!! ! ! ! ! ! # # # ## # ## ## ",
" $ $ $$$$ $ $$$$ $ %%%% % % % % %% %% % ! ! !!!!! ! !!!!! ! # #### # #### # ",
" $ $ $ $ $ $ $ $ $ % %% % % % %% %% % ! ! ! ! ! ! ! # # # # # # # ",
" $$$ $$ $ $ $$ $ $$ % % % % % %% %% % !! !! ! ! !! ! !! # ## # # ## # ## ",
" $ $ $$ $ $ $$ $ $$ % %% % % % % %% %% % !! !! ! !! ! ! !! ! !! # ## # # ## # ## ",
" % % % %% %% % !!! ",
" $ $ %%%%% %%%% %%%%%%%%%%%%%%% %%%% # ",
" $ $ # ",
" ",
" ",
" !! !! ! %% % % % % % ## # # ## # $ $$ $ $$ $ ",
" !! !!! !!!!! !! % %%%%% %%%%%%% % ### ### ###### # $$ $$ $ $ $$ $$$$$ ",
" ! % ",
" ",
" ",
" ",
" $$ $$ $ $ %% % % %% % ! ! ! !! ! # ## # # ### # ",
" $ $ $$$$$ $$$$ $$ %%%%%%%% %%%%%% % !!! !!! !!!!!!! !! ## ## ###### ###### ",
" $ ",
" ",
" ",
" ",

View file

@ -18,8 +18,8 @@
" ",
" ",
" ",
" !!!!!! ! ! !!!!!!! ! !!!!! ",
" !!! !!! ! !!! !!! ! ! !!!! ",
" !!!!!! ! ! ! ! ! !!! !!!!!! ! ! ",
" ! ! !!! ! !! !! ! !! ! ! !!! ! ",
" ",
" !! ! !! ! ! !!!! ! ",
" !!! ! ! !! !!!! ! ",
@ -28,8 +28,8 @@
" ",
" ",
" ",
" !!!!!! ! ! ! !!!!! ",
" !!! !!! ! ! ! !!!! ",
" !!!!!! ! ! !!!!!! ! ! ",
" ! ! !!! ! ! ! !!! ! ",
" ! ",
" !! ! !!!! ! ",
" !!! ! !!!! ! ",
@ -38,8 +38,8 @@
" ",
" ",
" ",
" !!!!!! ! ! !!!!!!! ! !!!!! ",
" !!! !!! ! !!! !!! ! ! !!!! ",
" !!!!!! ! ! ! ! ! !!! !!!!!! ! ! ",
" ! ! !!! ! !! !! ! !! ! ! !!! ! ",
" ",
" !! ! !! ! ! !!!! ! ",
" !!! ! ! !! !!!! ! ",

View file

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

View file

@ -30,38 +30,38 @@
" ",
" ",
" ",
" !!! # ",
" !!! !!!!!! ## #### ",
" !!!!!!! !!!!!!!!! ! ####### ## ##### ",
" !!!!!!! !!!!!!!!!! !! ######## ############# ",
" !!! !!! !!!!!!!!!!! !! !!!! ### ### ######## ## ### $$$$$$ ",
" %% %%% !!!!! !! ! !!!!! ##### ## ## ##### $$ $$$ ",
" %% %%%%%% %% !!!! !! !!!!!!!! ##### # ######## $$ $$$$$$$ $ $ ",
" % %%%%%%%%%%%%%%%%% % %% !!!!! ! !! !! #### # ## ### $ $$$$$$ $$$$$$$$$$ $ ",
" % % %%%%%%%%%%%%%%% %%% % !!!! ! !!! ##### # # # $ $$$$$$$$$$ $$$$$$ $$$$ $ ",
" % %%%% %%% %%% %%% % !!! ! ! ##### # $$$$$$$ $$$$$$ $ ",
" % %%%%% %%%% !!! ! # # $$ $$$$$ $ ",
" %%%%% %%%%% % ! !! # # ## $ $$$$ $ ",
" % %%%% %%% % ! ! !!! # ### $ $$$ $ ",
" %%%% % % !!!! #### $ $ $ ",
" % %%% %% ! !! ! #### $$$$$ ",
" % %% &&&& & && %%%%% ''''' '''' '''''''' !!!! # (((((( (((( ((( ### $$$$$ )))))) )) ) )) $$$ $ ",
" % &&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ! '''''''' '''' !!!! # (((((((((( (((( ### $$$$$ )))))))))) ))))))))))))))) ",
" % &&&&&&&& &&& %%%% !!! ' ' ! !! ( ( ## # $$$ ))))))))) ) $$$ $ ",
" % %%%% !!! !!! ### #### $$$ $$$ $ ",
" %%%%% !!! ! ! !! ### # ### $ $$$ $$ ",
" % % % !!! !! ## # # $$$ $$ $ ",
" % %%% %% % !!! ! !!! ! ### # # ### $ $$$$ $$$ $ ",
" % %%% %%%%%%% !!!! ! !!!!!! ### # # #### $ $$$$$$ $$$$$$$$ ",
" %%%%%%%% %%%%%%%% % !!! ! ! !!!! ### # # #### $ $ $$$$ $ $$$$$$ $ ",
" % %%%%%%%%%%%%%%%%%%%%%%% % !!!!! ! ! !!!! #### # ###### $ $$$$$$$$$$$$$$$$$ $$$$ $ ",
" % %%%%%% %%%%%% %%%% % !! !!! ! ! !! ###### # ## ## $$ $$$$$ $$$$$$$$$ $ $ ",
" %% %% %%%%%%% % %% !!! !!! !!! !! !! # ### ## ## ## ## $ $$$$$$ $$$ $$ ",
" %%% %%% !!!!!! !!!!!!! !! !!! ###### ######### # #### $$$$$ $$$$$ ",
" !!!!!! !! !!!!!!!! ###### ## ######## ",
" !!! !!!!!!!!! !!!! ## ########## #### ",
" !!!!!!!!! ! # ########## # ",
" !!!!!! ######### ",
" !! ",
" ! !!!!!!! # ####### ",
" !!!!!!! !!!!!!!!! !!! ####### ############# ",
" !!!!!!!! !!!!!!!!! !!!! ## ##### ########## ### ",
" !! !!!!! !!!!!!!!!!! !!!!! # ###### ######## # ##### $$$$$$ ",
" %% %%% !!!! ! !! ! !!!!! ### # ## ## ##### $$ $$$ ",
" %% %%%%%%% %% !!!!!!! !! !! ##### # ## ### $$ $ $$$$$$$ $ $ ",
" % %%%%%%%%%% %%%%%%%% %% !!!! ! !!! #### # ### $ $$$$$$$$$ $$$$$$$ $$ $ ",
" % %%%%%%%%%%%%%%%%%% %% % !!! ! ! #### # # $ $$$$$$$$$$ $ $$$$$$$$$ $ ",
" % %%% %%% %%% %%% % !!!!! ! ! ##### # # $$$$$ $$$$$$$ $ ",
" % %%%% %%%%% !!!!! !!!!! ### # ### $ $$$$ $ ",
" %%%%% %%%%% % !! !!!!! #### ##### $ $$$$ $ ",
" % %%%% %%% % ! ! !!! # ### $ $$$ $ ",
" %%%% % % % !!!! # ## $$$ $$$ $ ",
" %%%%% %%% ! !! # ## $$$ $ $$ ",
" %%%% &&&& & && %%% ''''' '''' '''''''' !!!!! # (((((( (((( ((( ### $$$$ )))))) )) ) )) $$$$$ ",
" % % &&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ! !! '''''''' '''' ! ! # (((((((((( (((( # $$ $ )))))))))) ))))))))))))))) ",
" % &&&&&&&& &&& %%%% !!!! ' ! !!! #### ( ( # ### $$$ ))))))))) ) $$ $ ",
" % %%%%% !!! !!! #### # ### $$$ $$$ $ ",
" %%% % !!! ! ! !!! ## # ### $$$$ $$$ ",
" % % % !!! !!!! ### # ### $$$$ $$$$$ ",
" % %% %% % !!! ! ! !!! ### # # ### $ $$$$$ $$ $$ ",
" % %%% %%%%%% !!! ! !!!!!! ### # ###### $$$ $$$ $$$$ $ ",
" %%%%%%%% % %%%%% % !!!! ! !!!!!! ### # ###### $ $$$$$ $ $$$$$$$$$ ",
" % %%%%%%%%%%%%% %%%%%%%%% % !!!!! ! ! !!! ### # # ## ### $ $$$$$$$$$$$$$$$$ $$$$$ $ ",
" % %%%%%% %%%%%%%%%%%% % ! !! ! ! ! ## ## # ## ## $$ $$$ $$$$$$$$$$ $ $ ",
" %% %% %%%%%%% %%%% !!!!! !!! !!! ! #### ## ## # $ $$$$$$$$$$$$ $$ ",
" %%% %%% !!!!!! !!!!!!! !! # ##### ######### ### $$$$$ $$$$$ ",
" !!!!! !!! !!!!!!!! ###### ### ######## ",
" !! !!!!!!!!!! !!!!!! ## ########## ###### ",
" !!!!!! !!! ! ! ##### #### # ## ",
" !!! !! ## #### ",
" ",
" ",
" ",

View file

@ -0,0 +1,137 @@
{
"keys": [
"",
"1"
],
"data": {},
"grid": [
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" !!! !! ",
" !!!!!!!!! !!!!!!!! ",
" !!! !!!! !!!! !!! ",
" !!! !!!!! !!! !!! !!!!! !! ",
" !! !!!!!!!! !!! !!! !!!!!!!! !! ",
" !!!!! ! !! !! !!! !! !! !!! !! ",
" !! !! !!!!! !! !! !! !! !!!!! !!!!!! ",
" !! ! !!! !!!!! !! !! !! !!! !! !! !!! ",
" !! !! !!!!!!! !!!! !! !! !!!!!!!!! !! !! ",
" !! !!!!!!! !! !! !! !! !!!!!!!!!!!!!! !! !! ",
" !!!! !!!! !! ! !! !!!!!!!!! !!!!!! !! ",
" !! !! !!! !! !!!! !! !!!!! !!!!!!!!! ",
" !! ! !!! !!!!! ! !! !!!!!!!!!!!!!! !!!!! !!! ",
" !! !! !!! !!!!!!! !! !!!!!!!!!!! !!!!! !!!!! !! ",
" !! !!!!! !!!!!! !!!! !! !!!!!! !!!!!!!!! !! ",
" !!!! !! !! !!! !!!! !! !!!!! !!!! !!!!!!!! !! ",
" !! !! !! !! !!!!! !! !! !!!!! !!!!!!!!!! !!!! !!!!!! ",
" !! !!!! !!! !!! ! !! !!!!!!!!! !!! !!!! !!!! !! !!! ",
" !! !!!!! !! !!! !!!! !!! !!!!! !!! !!!! !!!!!! !! ",
" !! !!!! !! !! !!!!! !! !!! !!!!! !! !!! !!!!!!! !! ",
" !!!! !! !!! !!!! !!!!! !!! !!!! !!!!!!!! !!! !!!!!!! !! ",
" !! !!!!! !! !!! !!!!! !! !!!!!!! !!!!!!!!! !!! !!! !!!!!! ",
" !! !!!! !! !! !!!!! !! !! !!! !! !! !!! !!!!!! !!! ",
" !! !!!!! !! !! !! !!!!! !!! !!!!! !! !!!!!! !! ",
" !! !!!!!!! !!! !!!!! !! !!!! !!!!!! !! !!!!!!! !! ",
" !!!! !! !! !! !!!!! !!!!!!!! !!! !! !! !!!!!!! !! ",
" !! !!!!!!! !! !!!!!! !!!!! !!!!!! !!! !!!!!!!!!!",
" !! !!!! !! !!! ! !!! !!!! !! !! !!!!!!! !!",
" !! !! !!!! !! !!!!!! !!!! !! !! !!!!!!! !",
" !! !!!!!!! !! !!!! !!!!!!!!!!!!!!! !!!!!!!! !! ",
" !!!! !!!! !! !! !! !!!!!! !! !! !! !!!!!!!!",
" !! !! !!!! !! !!!! !! !! !!!!!!! !!",
" !! !!!! !! !! !! !! !!! !!! !! !! !! !",
" !! !! !!!! !! !! !!!! !!!!!!!! !! !!!!! ",
" !! !! !!!! !! !!!!!!!!!!! !! !! !! !!!",
" !! ! !! !! !! !! !! !!! !! !!!! !!!",
" !! !! !!!! !! !!!!!!!! !! !! !! !!",
" !! !! !!!! !! !!! !!! !! !!!! !!",
" ! !! !!!!! !! !!!! !!! !! !!!!",
" !! !! !!!! !! !!!!!! !!!! !",
" !! !! !!!! !! !! !!!",
" !! !! !!!!! !! !! !! ",
" !! !! !!!! !! !!!! ",
" ! !! !!!!! !! !! ",
" !! !! !!!!! !! ",
" !! !! !!!!!!! ",
" !! !! !!!!! !! ",
" !! !! !!!!! !! ",
" ! !! !!!!!!!! ",
" !! !! !!!!! !! ",
" !! !! !!!!! !! ",
" !! !! !!!!!!!! ",
" !!!!!!!! !! !! !!!!! !! ",
" !!!! !!!!! ! !! !!!!!! !! ",
" !!! !!!! !!!! !! !! !!!!!! ! ",
" !! !!!!!!!! !!!! !! !! ! !!! !! ",
" !! !!! !!!! !!!! !! !! !!!!!! !! ",
" !! !!! !!!!! !!!! !!!! !! !! !!!!!! ! ",
" !! !!! !!! !!!! !!!! !!!! !! !! !! !!!!!! ",
" !! !!! !! !!!!!!!! !!!! !!!! !! !! !!!!!! !! ",
" !! !!! !!!!!!!!!!!!!! !!!! !!! !!!! !! !!!! !! ",
"!! !!! !!!!! !!!!! !!!! !!! !! !! !! ! !!!! ",
"! !!! !!!! !!!!!!! !!!!!! !!! !! !! !! !!!!!! !! ",
" !!! !!! !!!!!!!!!! !!!!!! !! !!! !! !! !!!! !! ",
"!!! !!! !!!! !!! !! !!! !!!!! !! !!!! !!!! ",
"!! !!! !!! !!!!! !! !! !! !! !!!! !! !!!! !! ",
"! !!!! !! !!!!!!!! !! !! ! !! ! !! !! !!!! ! ",
" !!!! !! !!! !!! !! !!!!!! ! !!!! !! ! !! ",
"!!!! !! !!! !!! !! !!!!!! !! !! !!!! !! ",
"!!! !!! !! !!! !!!!!! !! !!!! !! !!!! ",
" !! !! !! !! !!!!!! !!!! !! !!!! !! ",
"!! !! !! !! !!!! !!!!! !!!! !! !! ",
"!!!! !!! !! !!!! !! !! !! !!!! ",
" !! !! !! !! !!!!! !!!!! !! !! ",
" ! !! !!!!!!! !!!!!! !!!!! ! ",
" !! !! !!!!! !!!!! !! ",
" ! !! !!!!! !!!!! !! ",
" !! !!!!!!!!!!! !!! ",
" !! !!!!!!!!! !!! ",
" !! !!! !!! !!! ",
" !! !!!!! !!! ",
" !! !!! ",
" !!!!!!! ",
" !!!! ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "
]
}

View file

@ -85,32 +85,32 @@
" ",
" ",
" ",
" ! ",
" !! ! !!!!! !! ",
" ! ! ! ! ! ",
" ! !! ! ! ",
" ! ! !! !! !!!! ",
" !! ! !!! !! !!!!! !!!!!!!!! ",
" ",
" ",
" ! ",
" !!! !!!! !! ! ! ! !! ! ",
" !! ! ! ! ! ! ",
" ! !! ",
" ! ! ! ! ! ! ! ",
" ! !!!!!! !! !! !!!! !! !!!!! ",
" #### #### # !! ! ",
" ## ## # # ! ",
" # # # ## ### ###### # #### # # # # #### #### ! !!!!! ! !! ! ! !! !! ! ",
" # # # # # # # # # # # # ## # # # #### # ! !! ! ! ! ",
" # # # # ##### # # # # # ## ## # # ## # ! ",
" ## ## ## # # # # # # ## ## # # # # # !! ",
" #### ## #### # # # #### ## ## # # # #### ! !!!!! !! ! !!!!! !! ",
" # ! ! ! ",
" ### ! ",
" !!! !!!! ! ! ! ! ! !!! ",
" # # !! ! ! ! ! ! ",
" # # ! ! ",
" # # ### ### ### !! ! ! ! ",
" # # # # ## ## # !!!!!!! !!!!!!!!!!!!!! ",
" # # # # ##### ## !! ! !! ",
" # # # # # # ",
" # # # # ## ## # ! ",
" ## ## ! ",
" ! ",
" ### #### # !! ! ! !! !! ",
" # # # # ! !! ! ",
" ## # # # #### ###### # ### ## ## # # #### #### ",
" # ## # ## # # ## # # # ## # ## # # # # # # ! !! ! ! ! ",
" ## ## # # #### # # # # # # #### # # # # # !! !!!!!!! !!!!! ! ",
" # # # # # # # # # ## ## ## # # # # # ",
" #### # #### # # # ### # # # # # ### ! ",
" # !! ! !! !! !! ! !! !! ",
" #### ! !!! ! ",
" ! ! ! ! ",
" # # !!! !!!! ! !!! ",
" # # !!!!!!!! !!!! !!!!!! ",
" # # ### ### ### ",
" # # # # ## ## # ! ! ! ! ",
" # # # # ##### ## ! !!!!! ! !!!!! !!!! ",
" # # # # # # ! !! ! !! ",
" # # # # ## ## # ",
" ## ## ",
" ",
" ",
" ",
@ -118,48 +118,48 @@
" ",
" ",
" ",
" # # # # # # # # # ) ) ) ) ) ) ) ",
" # ###### ### ### # #### # ###### # # # # ### # ### ## # # ## # )) )))))) ))) ))) ) ))) ) ) )))))) ) ) ) ))) ))) ))) ) ) ",
" ######### ### ### ###### ### ### ####### ### ####### #### ### ## ## ## ## ))))))))) ))) )))) ) ))) )))))))))))) ))) ))) )))))) )))) ))) )) ) ",
" # # # # # # ## ) ) )) ) ) ) )) ) ",
" ## # # ## ##### # # # ## # # #### ### # #### ## #### # ##### ## ) ) ))) ) ) )) )))) )) ) ))) )) ) )) ))))))) ))))))) ))) ) ",
" ## # ###### ### ## # # ## ### ######### ###### # ####### #### #### ))) ))) ))))) ))) ))) ))) ) )))) ))) ))))))))))) ))))) )))))))) ",
" ",
" # ## #### #### ### #### # #### # ## # ##### # # # ### # # ##### ### ## ##### ### # ) )) )) ) )) ) ))) ))) )))) ))))) )) ))) ))) ) ))) ))) ))) ) ))))))) ",
" ### # # ### ## ##### ##### # ## ### ## # ## ### # ### # # # )) )))) ) ) )) ) )))))) ))))) ) ) )) ) )) ) )) )) ",
" # # ) ",
" # ## ## # # ) ) ) ) )) )) ) ",
" # # #### # # ### ### # #### ## #### # # # ## #### ### #### ) )))) ) ) ) ) ) )))) ) ) ))) ))) ) )))) )) )))) ) ) ) )) ",
" ####### ####### # ##### ############# # ### ########## #### #### # ### ) ))))) ))) ) ))))))) ))))))) ) ))))) ))))))))))))) ) ))) )))))))))) ",
" ### # #### ### # # #### ##### ## ### ##### ### ### ##### ####### ### ######### )) ) ))))))) )))) ) ) ) ))))) ) ))))))) )) ) ))) ) )))) ) )))))))))) ",
" #### # # # # ## ## ## ## # ## ## ## # # # ## ## ### #### ## # ) ) ))) ) )) ) ) )) ) )))) ))) )) )) )))))) ) )) ) ))) ",
" # ",
" # # # # # # # ) )) ) ) ) ) ) ) ) ) ",
" # # ### #### # # ## ### # ### ##### #### ##### #### #### #### # # ))) )))) ))) ) ) ))) )))) ) ) )) ))) ) ))) ))))) )))) ))))) )))) ) ",
" ######## #### ## # # #### # ######## # ### ## ######### ### #### # #### ))) )))))))))) )))))))) )))) )) ) ) )))) ) )))))))) ) ))) )) ))))))))) ",
" ",
" ##### ###### ######## #### # #### ### ####### #### ### ## # ##### # ####### ## ) )))) ))) ))))) ))) )) ) ))))) ))))))) )) ))))))) ",
" # ## ## # # ### ### ## # ### # # # ## ##### ### # # # # ### # # ))) )) )) ) ) )) ) ))) )))))) )))) )) ) ",
" # # # ",
" # # # # # # )) )) ) ) ) ) )) )) ) ",
" ## # ## ## ##### ## ###### # #### # ## ### ### #### # ## # ## )) )) ) )))) )))) ) ) ))) ) ))) ) )) ))))))) )) ) ))) )))) ))) ",
" ####### ## ##### # # ###### # ########## # ##### ## ########### # ### ) )))) )))) ))))) )))) )))) )))) ) ) ) )))))) )))))))) )))))))))) ",
" ### ## # ##### ####### ## ####### ### ########### # ####### ## # ### ### #### # ) )))) ))) ))))) ))) )) ) ))))) ))))))) )) ))))))) ))) ))))))))))) ) ",
" # ## # ### ###### #### ## # # ## # # # # ###### ### ## ## ### ## ## ))) )) )) ) ) )) ) ))) )))))) )))) )) ) ) )) ) ) ) ) ",
" # # ) ",
" # ## # #### # # ## # # ) ) ) ) ) ) ) ",
" ## ### # ### #### ##### # ## #### # # ## ## ##### #### # ) )))) ))))))) )))) ))) ) )) )) )) ))))) )) ))))))) ) )))) ",
" # # #### ## ##### # ####### ### ###### # ### # #### #### ##### ## ))))))) )))) ))))) ))) ))))))) ))) ))) )))))))) ) ) )))))) ) ) )))))) ) ",
" ",
" ## ## ## # ### ##### ##### #### ### ##### # ### ## #### ##### ### ## ## ######### ### )))))) )) )))))))))) )) )))))) ))) )) ))))))) )) ))))))) ) ) ",
" ## # # ## ### #### ## # # # ### # #### ## # # ## ### # # ## # # ## )) ))) ) ) ))) ) ) )) )) ))) ) ) ) ) ) )))) ) ",
" # # # # ) )) ) ",
" # # # # # # ) ))) ",
" # #### ## ## #### # # # ## #### ##### # ### #### #### # ## ## ##### # )) ) ))))) ))) ))) ) ) )) ) ))))) )))) )))) ) )) ) ",
" # ##### ###### ######## ## ### ## ############ ############# #### ### ###### ### ))) ))))) ))))) )))) ))) )))))))) ))))) )))) ))))))))))) ) ",
" ####### # ##### # ### ### # ###### ### # # #### # #### ##### #### ### ## ######## )) )) )) ))) )) ))))))) )) ))))))) ) ) ))) ) )) ) ))))) )) ",
" ###### ## # # # # ### # ### # # # # # ### # ## ## ## ## # # # ##### ))) ) ) ) ) ) ) )))) ) )) ) ) ))) ) ",
" # ) ) ",
" # # # # ## # # ## ) )) )) ) ) ) )) ) ",
" ### # # ### ## # ### ###### ### # ### # # # ##### ## ## # #### ))))) ))) )) )))) )) )) ) )))) )))) ))) )) ))))) )))) ) ) ) )))) ",
" #### ### ##### ### ### ####### #### ### #### # # #### ######## # ### ###### )))))) ))) ))) ))) ) )))) )))) ))))) )))) ))) ))) )))))))))))))) ) ",
" ",
" #### #### ###### ######## ### ## # ### # ###### ###### ### ## # # ### ))) )) )))))))) ))) )) )))) ) ) )))) )))) )) ))) ))))) ))))) ) )) ",
" # ## #### # ##### ## ## ### # ## # # # # ##### # ## # ## # ) ) ) ))))) )) ))) )))) ) ) )))) )))) ))) ) ))) )) ",
" # # # ) ) ) ",
" # # # # # ## # )) ) ) ) ) ) ) ) ",
" # ### # ### ###### # ## ## # ####### #### # # # # ## # ### ##### )))) )))) ) ))) )) ))))) )) )) ))) )))) ) )))) )))) )))) ",
" ######### #### ####### #### ##### ##### ## #### # ### ## ### # #### ######## ))))))))) ))))))) )))))) )) ) ))) ) ))))) ))))) )))) )))))))))) )))) ) ",
" # # # ### #### # # ## #### #### #### # # # ## ###### #### # ## ### ## ## ))))))))) ) )))) )) )) )) )) )) )) ) )) ) )))))))) ))) )) ))) ) )))) ",
" # ## # ### # ## ## # ####### #### # # ### #### # ## # # ## # # )))) )))) )) ))) ) ) ) ) ) ) ))) )))) ) )) ) )) ) ) ",
" # # # # ) ) ",
" # # ## ## # # # ) ) ) ))) ) ) ) ",
" ##### # # ## ##### ### # #### ### # #### ## # ## # # ## ### ## #### ))) ) )))) ) ))))) )))) ))))) ) ) ) ))))) )))) ) )) )) ) )) ",
" # ####### ## ####### ########### ##### #### # #### ## # # ###### # ##### ) ))))))))))) )))) )))))))))) )))))) )))) ))))))))) ))) ) )) ))) )) ))) ",
" ",
" ## #### ### ##### ## # ### ## ## ## ## ## ## #### ###### # # # #### ## # ## )))) ))) )))))) )) )) ))) )) ))) )))) ) )) )) ))))) ) )))) ))))) ",
" # # ## # ## ### ## ## # # # # # ##### ## ## ### # ## ### ) ) ) ))))) ) )) ) ) )) ))) ))) ) ) ) ) )) ) )) ))))) ",
" # # ) ) ",
" ) ) ) )) ) )) ",
" # # #### ))))) )))) ) ) ) ) )) ) ))) ))))) ))) ) ) )) ))))) ))) ",
" # ### ##### )))) )) )))) ) ))) )) ))) ) )))) )))))))) )))) )))) )))))))))))))) ",
" ## # # # # ############ # ### #### ###### ### #### # # ###### ####### #### ## )) )) )))) ))))) )))))) )))) )) )))) ))))) )) )) ))) ))) ) ))) ",
" ### # # # ########## ### # ### #### # ### ## ## # # # ###### # ## ## ))) ) ) ) ) ))) )))) )))) ))) ) )) ) ) ) ) )) ) ) ) ",
" # # ) ",
" )) ) ) ) ) ",
" # # #### )) ) ) ) )))) )) ) ) ) )) ))) ) ) ))) ) ))) )) )) ) ",
" # ### ##### ))) ))) )) )))))) )))))) ))) ))) ))) )) )))) ) ))))))))) ))) ) ",
" ",
" ))))) ) )) )))))))) )) )))))) ) ) ) ) )) )))) )))) ) )))))))) )) ",
" ) ))) ) )) ))) )))) ) ))) ) ) )) ) ) )) ))) )))))))) ) ",
" ) ",
" ) ))) )))) ) ))) ))))))))))) ",
" ) ) ) )) )) )))) )))) ",
" ) ",
" ",
" ",
" ",

View file

@ -90,7 +90,7 @@
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
" % %% % % ",
" %% %% % % ",
" ",
" ",
" ",

View file

@ -80,7 +80,7 @@
" #################################################################################################################################################################################### ",
" #################################################################################################################################################################################### ",
" #################################################################################################################################################################################### ",
" # # # # # # # # ## # # ",
" # # # # # # # # # ## # # ",
" ",
" ",
" ",
@ -115,7 +115,7 @@
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
" % %% % % ",
" %% %% % % ",
" ",
" ",
" ",

View file

@ -64,7 +64,7 @@
" ######################################################################################################################################## ",
" ######################################################################################################################################## ",
" ######################################################################################################################################## ",
" ## ## ## # # # ",
" ## ## ## # ",
" ",
" ",
" ",

View file

@ -80,7 +80,7 @@
" #################################################################################################################################################################################### ",
" #################################################################################################################################################################################### ",
" #################################################################################################################################################################################### ",
" # # # # # # # # # # ## # # # # # # ## # ",
" # # # # # # # # # # # ## # # ",
" ",
" ",
" ",
@ -100,7 +100,7 @@
" $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ",
" $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ",
" $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ",
" $ $ $ $ ",
" $ $ ",
" ",
" ",
" ",
@ -115,7 +115,7 @@
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
" %% %% % % ",
" %% %% % % % ",
" ",
" ",
" ",
@ -125,7 +125,7 @@
" &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ",
" &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ",
" &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ",
" && && & & & & & & ",
" && && & & ",
" ",
" ",
" ",

View file

@ -90,7 +90,7 @@
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
" % %% % % ",
" %% %% % % ",
" ",
" ",
" ",

View file

@ -80,7 +80,7 @@
" #################################################################################################################################################################################### ",
" #################################################################################################################################################################################### ",
" #################################################################################################################################################################################### ",
" # # # # # # # # ## # # # # # # # # # # ## # # ",
" # # # # # # # # # ## # # # # # # # # # # # ## # # ",
" ",
" ",
" ",
@ -115,7 +115,7 @@
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
" % %% % % ",
" %% %% % % ",
" ",
" ",
" ",
@ -142,7 +142,7 @@
" (((((((( (((((((( '''' '''' ",
" (((((( (((((( '''' '''' ",
" (((( ((((( ''' ''' ",
" (((( (((( '''' ''' ",
" (((( ((( '''' ''' ",
" (((( ((( ''' '''' ",
" ((( (((( '''' ''' ",
" (((( ((( ''' '''' ",

View file

@ -3,71 +3,71 @@
"",
"9",
"8",
"7",
"4",
"5",
"7",
"16",
"6",
"11",
"10",
"12",
"10",
"2",
"13",
"14",
"11",
"3",
"15",
"1"
],
"data": {},
"grid": [
" !!!! ! !!! ! !!!!! ",
" !!! !!!!! ! !! ! ",
" ! !!! !! ! !!!!! !!! ! ! ",
" !!!!!!! !!!!! !! !!!!! ",
" ! !!!!! ! !!!! !!! ! ",
" !!!!!!!! !!!!!!! !!!!!!! !!! ",
" !!!!!!!!!! !!!!!!!!! !!!!!!!! !!!! ",
" !!!! !!!!! !!!!! !!!!!!!!!!!!!!!!!!!!! ",
" ",
" ",
" ",
" !! ! !! ! ",
" !!!!! !!!!! !!!! ",
" !!!!!!!! !!!!!!! !!!!!! !!!! ",
" !!!!!!!!!!!! !!!!!!!!! !!!!!!!!!! !!!! ",
" !!!! !!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!! ",
" !! # !!!!!!!!! # !!!!!!!!! !!!!!!!! ",
" #### !!!!!!! ### !!!!! $# !!!!!! ",
" ###### $$$$! ###### !!! ##$##$$$! ## %%% ",
" #######$#$ $!$######### ######$$$$####%%% ",
" #### ##$## ###########$ ##$#$$###$$####%%% ",
" &&&## $$#$#$#### ###$$##$$$$####%### %%% ",
" &&& $$$$$$$## ###$$$#$$ ####% %%%% ",
" &&& $$$$ $$####### #######$ $$$$$#%%%%%%%%% ",
" &&&$$$$$$$ ###$$# #$##### $$$$$$$%%% %%%%% ",
" &&$$$$$$$$$$#####$$##$$#$$##$$$$$$$$$%% %%%%% ",
" &&&$$$ $$$$$##$ $##$#$##$#$###$ $$$$$$ % %%% ",
" &&& $ $$$$$ ####$$$###$$##$ $$$%$ %%'%% ",
" &&& $$$ ## $$ ## #### %%%%%%'%% ",
" &&& &(( #((( (((### ((((( '''%'''%% ",
" &&&((&(&&( (((((( ())(((( (((((((''*''''*% ",
" &&((&&(((((((((((((()()))(((((((((((((** %%% ",
" &&&(&& &((((((( ((()))))(((((((( (((((* **%%**",
" &&& & &&(((( ++)((( ))((**((**********%**",
" &&& & &&(((,, +++--))).)))(.*(*(******** *%%*",
" &&& & ,,,,,, +++-)))).....(((*)******%%%**% ",
" &&& & ,&,,, +++))).......())(( %%%%%*%% ",
" &&& &,,,,,,, +++---)))))))(((()( % *%*%%% ",
" &&& ,,,,,//,,/,++----))))))(()))((( ***%%% ",
" &/&,/,,//,/,///++----))) (0000000 %%***%%% ",
" //////,/,,,/,,,/+---)))) 0000000 %%**%%%% ",
" ///,///,// , //---))) 0000000*%%%%%*%%% ",
" &// /////,,,, /// )))) ********%*%%*%%% ",
" &/& / /,/, /// )))) ***********%%%%% ",
" &&&/ //,, /// ))))))))))))) **** %%% ",
" //&////// /// )))))))))))) ** **** %%% ",
" &&& ///// //// ))))))))))) **** *%% ",
" / ///// ////// 111 * ** * ",
" /////////// 111111111111*** * ",
" /////////// 111111111111** * ",
" ///// //// 1111111111111 ",
" / /// /// 1 1111 ",
" / / /// 1 11 ",
" / /// 1 ",
" //// 1 1111 ",
" // 1111111 ",
" #### !!!!!!! ### !!!!! ## !!!!!! ",
" ###### !!! ###### !!! ##### !! ## $$$ ",
" ########## ! ######### ######## ####$$$ ",
" #### ##### ############ ###############$$$ ",
" %%%## ########## ######### ######## $$$ ",
" %%% ####### #&##### ##### $$$ ",
" %%% &&&& ###&&& & &&&#&&# &&&&&### $$$ ",
" %%%&&&&&&& &#&&&&&&&&&&&&&&&&&&&&&& $$$$ ",
" %%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& $$$$ ",
" %%%%&& &&&&&&&& &&&&&&& &&&&&&& &&&&&& $$$$ ",
" %%%%& &&&&& &&&&&& &&&&& &&&&& '$$$$ ",
" %%%% &&& && & '''''$'$$ ",
" %%% ((( (((( (((( ((((( ''''''$$$ ",
" %%%%(((((( (((((( ((((((( ((((((('''''$$$$ ",
" %%%%(((((((((((((((((((((((((((((((((( $$$ ",
" %%%((( (((((((((((((((( ((((((( ((((( $$$$ ",
" %%%%( (((((( (()((((( (((((*********** $$$ ",
" %%% (((++ )))(,(----(---************$$$$ ",
" %%%% ++++++ ))),((--------***.*********$$$ ",
" %%% +++++ ))),,,--------.... ****$$$ ",
" %%%% +++++/// ))),,,............ ***$$$ ",
" %%%%+++++//////)),,,............. **$$$$ ",
" %%%%%++////////)),,,.... 0000000 **$$$$ ",
" %%%%++//////////),,..... 0000000 ***$$$ ",
" %%%%%+//// //,,.... 0000000*******$$$ ",
" %%%%%//// /// .... *************$$$ ",
" %%% /// /// .... ************ $$$ ",
" %%% //// /// ............. *** $$$ ",
" %%% ///// /// ............. $$$ ",
" %%% //// //// ............ $$$ ",
" /////// ////// 111 ",
" //////////// 1111111111111 ",
" ///////// 1111111111111 ",
" ////// 1111111111111 ",
" ",
" ",
" ",
" ",
" ",
" ",
" "
]

View file

@ -13,8 +13,8 @@
"12",
"13",
"14",
"3",
"11",
"3",
"15",
"1"
],
@ -24,91 +24,91 @@
" ",
" ",
" ",
" ! ! !! ! ",
" !!!! ! ! !!! ! !!!! ",
" !!!! !! !!!!! !!!!! ! ! !!! ! ",
" !!!! ! ! !! ! !! !! !! ! !!! ! ",
" ! !!! !!!! ! !!! !!!!!! !!! !!!! ! ! ",
" !! !!!!!! !! !! ! !!!! !!!! ! !!! !!! !!! !!! ",
" !!! !!!!!!!!! !!! ! !!!!!!!!! !!! ! !!!!! !!!!!! !! ",
" ! !!!!!!!!!!!!!!!! ! !!!!!!!!!!! !! !!!!!!!! !!!! !!! ",
" !!!!!! !!!!!!! !! !!!!! !!!!!! !! !!!!!!!!!!! ! !!! !!!!! ",
" !!!!!! !!!!! !!! !!!!!! !!!!! !!!! !!!!!! !!!!!! !!!!!!!!!!!! ",
" !!!!! !!!!! ! !!!!!! !!!!!!! !!!!!! !!!!! ! ! !!!!! ",
" !!!! !!!!!! !!!!!! !!!!!!! !!!!! !!!!! !!!!!! ",
" ",
" ",
" ",
" !!! ",
" !!!!! !!! ",
" !!!!!!!! !!!!! !!! ",
" !!!!!!!!! !!!!!!!! !!!!!! !! ",
" !!!!!!!!!!!! ! !!!!!!!!!! !!!!!!!! !!!! ",
" !!!!!! !!!!!!! !!!!!!! !!!!!! !!!!!!!!!!!! ! !!!!! ",
" !!!!!! !!!!! !!!!!!! !!!!! !!!!!! !!!!!!! !!!!!! ",
" !!!!! !!!!! !!!!!!!! !!!!!! !!!!!!! !!!!! !!!!!! ",
" !!!! !!!!!! !!!!!! !!!!!! !!!!! !!!!!!!!!!!!! ",
" ! !!!!! !!!!!! !!!!!!!!!!! !!!!!!!!!!! ",
" !!!!!!!!! !!!!!!!!! !!!!!!! ",
" # !!!!!!! # !!!!!! !!!!! ",
" #### !!!!! #### !!! ## !!! $$$ ",
" ####### ! ###### ! #### # $$$ ",
" ########## ######### ####### ### $$$ ",
" ####### ##### ###### ##### ######### ####$$$$$$ ",
" ###### ###### ###### ##### ###### ##### ###$$$$$$$$ ",
" ##### ###### ##### ###### ##### ###### #####$$ $$$$$ ",
" %%%%#### ##### ###### ###### ##### ###### ###### $$$ ",
" %%%% # & &&& #####&&&&##### & & ##### ###### #&######## $$ $$$ ",
" %%%% & & && ###&&#&&#### & ###########& #&###### $$ $$$$ ",
" %%%% & &&#&#&### &&& ##&#####&& & &&& &&### $$$$$ $$$ ",
" %%%% &&&&& & &&#&&# &&& ##&##&&& &&& && &&&& $ $$ $$$ ",
" %%%%%% &&&&&&&& &&## & && &## && && &&&&&& $$$$$ ",
" %%%%% &&&& && &&&#&&&&& &&& &&&&&& & &&&&&&&&&& && $$$ ",
" %%%%%% &&&&&&&&& &&& &&&&&&&& && &&& &&&&&&&& && & &&&&&&&&&&& $$$ ",
" %%%%%% &%&&&&&&& &&& &&&&&&&&&&& &&&&&&&&&&&&&& &&& &&&&&&&&&&&& $$$ ",
" %%%%%%&&&&&&&&&&& &&&&&&& &&&&&& &&&&&& &&&& && &&&&&& &&&& & $$$ ",
" %%%%%%%%%& &&&& &&&&&& &&&& &&&&& &&&& &&&&& &&&&&&&&& $$$ ",
" %%%%%%&%% &&&&&&&&&& &&&&&&&&&& &&&&&&&&&& &&&&&&&& $$$ ",
" %%%%%%%% &&&&&&&&& &&&&&&&& &&&&&&&& &&&&&& $$$ ",
" %%%% &&&&&&& &&&&&& &&&&& &&&& $$ $$$$ ",
" %%%% &&& & $$$$$$$$$ ",
" %%%% $$$'$$$$$ ",
" %%%% ''$'$$$$$ ",
" %%%% ''''''''''''$$$$$ ",
" %%%% (( ((((( ((((( ((((((( '''''''''$'''$$$$ ",
" %%%% ((((((( (((((((( (((((((( ((((((((( ''''''''$$$'$$$$$ ",
" %%%% ((((((((( (((((((((( ((((((((((( ((((((((((( ''''' ' $ $$$ ",
" %%%% %(((((((((( (((((( (((( (((((( ((((( (((((( (((( ''' ''' $$$ ",
" %%%%%%(((( ( ((((( (((((( (( (((( ((((( ((((( ((((( (((( (( '' ''$$ ",
" %%%%%%((% (((((((( ((((((((( ( ((((((((((( ( (((((((((( ((((((((( '''' ''$$$ ",
" %%%%%%( (( ((((((((((((( ((((((((( (( (((((((( (((((((((( ' ' '$$$ ",
" %%%%%% % ( (((((((())( (((((((((( ( ((((( (*** (( (((( $$$ ",
" %%%%% %%% ( (((( ))))(( ((++ (((((( (( ( ( ((((*********(*(***** $$$$$$ ",
" %%%%%%%%% ((( ( )))))((((((++ ,,,( (( (( ( *((*****(*((((****** $$$$$$$$ ",
" %%%% %% ((( )))))) ( +(( ,,, ((((------------ (**(*****((***********$$ $$$$$ ",
" %%% %% ( (( ()))) ((+ ,,, ((------------((((( (((((((((***** $$$ ",
" %%% ())))) +++ ,,, (------------((-( ((((( **$$ $$$ ",
" %%% ))())) ..++ ,,, ////////////// **$$ $$$$ ",
" %%% ))))) ..... ,,/// ////////////////////// $$$$$ $$$ ",
" %%% )))))))) .+... ,//, / /////////////////////// *$*$$ $$$ ",
" %%% )))))) )) ) ....++..,/// //////////////////////// *** $$$$$ ",
" %%% ))))) ))).)..... ..+...,,/ //// *** $$$ ",
" %%% )))))) ))).)))........ ..+ /,, / /// *** $$$ ",
" %%% )).)) ) ..)..............+ ,/, ///// *** $$$ ",
" %%% )).)) .)))). .......+.++,// / /// 000000000000000 *** $$$ ",
" %%%)))).. .. ))).. ...+++,,,,// /// 000000000000000 **** $$$ ",
" %%% ))). . ..).. .... ,,,,// /// 000000000000000 **** $$$ ",
" %%% )). . ..... ....,,,, /// *** $$$ ",
" %%% .. . .... .....,, /// **** ****$ $$$$ ",
" %%% .. ..... .... /// *********************$$$$$$$$$ ",
" %%% . ... ... /// *********************$$$ $$$$$ ",
" %%% . ... ... /// ********************* $ $$$$$ ",
" %%% .. ... ... //// **** * $$$$$ ",
" %%% .... ... ///// ** * $ $$$$$ ",
" %%% .... ... /////////////////////// $$$$$$$$$ ",
" %%% .... .... /////////////////////* ****** $ $$$ ",
" %%% .... ....... ////////////////////*** **** $$$ ",
" %%% .... ... ... // ////////////////// $$$ ",
" .... ..... . ////// / /// $$$ ",
" .... ....... .. // / / /// / /// ",
" .... ......... . // // /// / ",
" .......... ..... . . .. ////// /////1/1/111111111111 ",
" . .............. . ... ////11111//111//111111111111 ",
" . ............ ... 11111111111111111111111111 ",
" . .... .... . 11111111111111111111 ",
" .. ... . 1111 11 ",
" ... 111 11 ",
" ..... 11 1 11 ",
" ..... 111 11111 ",
" 1 111111 ",
" ####### ##### ############ ######### ##### $$$ ",
" ################ ############## ############ ##### $$$ ",
" ####### ####### ####### ###### ####### ###### ###### $$$ ",
" %%%%#### ####### ###### # ###### ####### ###### ###### $$$$ ",
" %%%% # ####### ##### # ##### ######## # ############ $$$ ",
" %%%% ################ ########### ######### $$$ ",
" %%%% # ########### ######## ######## $$$ ",
" %%%%% ####### ####### # & # ### $$$ ",
" %%%% & ##### &&&& #### # & &&& $$$ ",
" %%%% &&&&&& ###&&&& &&&&&& # # &&&&&&&& $$$$ ",
" %%%% &&&&&&&& &&&&&&&& &&&&&&&&&& &&&&&&&&&& $$$$ ",
" %%%%% &&&&&&&&& &&&&&&&&&&& &&&&&&&&&&&& &&&&&&&&&&&&& $$$$ ",
" %%%%%&&&&&&&&&&&&& &&&&&&& &&&&& &&&&&&& &&&& &&&&&&& &&&&&& & $$$$ ",
" %%%% &&&&& &&&&& &&&&&& &&&&&&&&&&&& &&&& &&&&& &&&&&&&&& $$$$ ",
" %%%% &&& &&&&&&&&&& &&&&&&&&&& &&&&&&&&&& &&&&&&&& $$$ ",
" %%%%% & &&&&&&&&& &&&&&&&& &&&&&&&& &&&&&& $$$$ ",
" %%%%% &&&&&&& &&&&&& &&&&& &&&& $$$$ ",
" %%%%% &&& & ''''' $$$ ",
" %%%% ''''' $$$ ",
" %%%% ''''' $$$ ",
" %%%% '''''''''''''$$$$ ",
" %%%% (( ((((( ((((( ((((((( ''''''''''''' $$$ ",
" %%%% ((((((( (((((((( (((((((( ((((((((( ''''''''''''' $$$ ",
" %%%% ((((((((( (((((((((( ((((((((((( ((((((((((( $$$ ",
" %%%% ((((((((((( (((((( (((( ((((((((((((( ((((((((((((( $$$ ",
" %%%%(((((( ((((((( (((((( (((( ((((((( ((((( ((((( (( ((((( (( $$$ ",
" %%%% ((( ((((( ((((( (((((((((( ( (((((((((( ((((((((( $$$ ",
" %%%% ( (((((((((( ((((((((( ((((((((( (((((((( $$$ ",
" %%%% ( (((((((() (((((((( ((((( *** (((((* $$$ ",
" %%% ((((( ())) ++++ ((((((( ****************** $$$ ",
" %%% (())))) ++++ ((,,, ******************** * $$$ ",
" %%% )))))) +++ ,,, --------------- ********************** $$$ ",
" %%% ))))) +++ ,,, --------------- ****** $$$$ ",
" %%% )))))))) +++ ,,, ---------..---- ***** $$$ ",
" %%%% ))))))) +++ ,,, .... ............... **** $$$ ",
" %%% ))))) ) ++++ ,,, ....................... *** $$$ ",
" %%% )))))))) ++++ ,,,, ....................... *** $$$ ",
" %%% ))))))) / +++ ,,,, ....................... *** $$$ ",
" %%% ))))) ) //////// +++ ,,, .... *** $$$$ ",
" %%% )))))) )) //////////// +++ ,,, ... *** $$$$ ",
" %%%% ))))))) ///////////////+++ ,,, ... *** $$$$ ",
" %%%% ))))))) ////// ////////+++,,, ... 000000000000000 *** $$$$ ",
" %%%))))))) ///// //////,,,, ... 000000000000000 **** $$$$ ",
" %%%%))) ) ///// /////,,,, ... 000000000000000 **** $$$ ",
" %%%%)) ///// ////,,,, ... *** $$$$ ",
" %%% //// /////,, ... **** **** $$$$ ",
" %%% /// //// ... *********************** $$$ ",
" %%%% /// /// ... ********************** $$$ ",
" %%% /// /// ... ********************* $$$ ",
" %%%% /// /// .... * ** * *** $$$$ ",
" %%%% //// /// ..... ** $$$ ",
" %%% //// /// ....................... $$$ ",
" %%% //// //// ...................... $$$ ",
" %%% //// //// ...................... $$$ ",
" %%% //// /// .................... $$$ ",
" //// //// .. . . .. $$$ ",
" //// ////// ",
" //// ////// ",
" ////////// /////// 11111111111111111111 ",
" /////////////// 11111111111111111111111111 ",
" ///////////// 11111111111111111111111111 ",
" / //////// 11111111111111111111 ",
" // 1 11111 111 1 ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",

View file

@ -26,130 +26,130 @@
" ",
" ",
" ",
" ! ",
" ! !!! ",
" !!! !! !! ! ",
" ! ! !!! !! ! ",
" !! !! ! !! ! !!! ",
" !!!! ! !!! !!!!! ! !!! ! ",
" !!! !! !!!! ! ! !!! !!! ! ! ! !!!!! ",
" ! ! ! !!!!! ! !!! ! !!!! !!!! ! ! !!!! !! ",
" ! ! !!!!!!!!! !!!! ! !!!!! ! ! ! !! ! ! ",
" !!!! !!!!!!!!!!!!!!! !!! !!!!!!! ! ! ! !!!!!! !! !!!!! ! ",
" ! ! !!!!!! !!!!! ! !! ! !!!!!!!!!! !! !! !!! !!!!!!!! ! !!! !!! !!! !! ",
" !!!!!!!!!!! !!!!! !! ! ! !!!!! !!!!!!!!! !! ! !!!!!!!!!!! !! !! ! !!!!!!!! ",
" !!! !!!!!! !!!!!!!!! !!!!!!! !!!!!! !!!!!!!!!! ! !! ! !!!!!! !!!!! ! !!!!!!!!!!! ",
" ! !!!!!! !!!!! !!! !!! !!! !!!!!! !!!!! !!! !!! ! ! !!!!! !!!!!! ! ! !! !!!!! ",
" !!!!!!! !!!!! ! ! !! !!!!!! !!!!! !!! ! ! !!!!!! !!!!!!!!! ! !!!!!!! ",
" !!!!!! !!!!! ! !! !!! !!!!!! !!!!!! !!!! !!!!!! !!!!! ! !! !!!!!!! ",
" !!!!! !!!!!!! !!! !!!!! !!!!!! !!! !!!!! !!!!! !! !!!!! ",
" !!! !!!!! !!!!!!! !!!!! ! !!!!!! !!!!!! !!!!!! ",
" !!!!! !!!!!! !!!!!! !!!!!! !!!!!! !!!!!! ",
" !!!!! !!!!!! !!!!!! !!!!! !!!!!!!!!! ",
" ",
" ",
" ",
" ",
" ",
" ",
" !! ",
" !!!!!! !! ",
" ! !!!!!!!! !!!!!!! !!!! ",
" !!!!!!!!!!!! !!!!!!!!! !!!!!! ! ",
" !!!!!!!! !!!!! !!!!!!!!!! !!!!!!!! ! !! ",
" !!!!!! !!!!! ! !!!!! !!!!!! !!!!!!!!!!!! !!!!! ",
" !!!!!!!! !!!!!!! !!!!!! !!!!!! !!!!!! !!!!! !!!!!!! ",
" !!!!!!! !!!!!! !!!!!!! !!!!!! !!!!! !!!!!!! !!!!!! ",
" !!!!!!! !!!!!!! !!!!!! !!!!!! !!!!!! !!!!!! !!!!!! ",
" !!!!!! !!!!!! !!!!!! !!!!!!! !!!!!! !!!!! !!!!!!!! ",
" !!!!! !!!!!!! !!!!! !!!!!! !!!!!!! !!!!! ! !!!!! ",
" !!! !!!!!! !!!!!! !!!!! !!!!!! !!!!!! ! !!!!!! ",
" !!!!!!! !!!!!!! !!!!!! !!!!!!!! !!!!!! !!!!!!! ",
" !!!!!! !!!!!! !!!!!!!!!!!! !!!!!!!!!! ",
" !!!!!!!!!!! !!!!!!!!! !!!!!!!! ",
" !!!!!!! !!!!!! !!!!! ",
" ## !!!!! # !!!! !! ",
" ##### !!! #### ! # $$$$ ",
" ######## ###### ### $$$$ ",
" ########## ######### ##### ## $$$$ ",
" ###### ###### ###### ##### ######### ####$ $$$$ ",
" ###### ###### ######## ##### ########### #####$ $ $$$$ ",
" ###### ##### ###### ########### ##### ##### ######$$$$$$$$$ ",
" ########### ##### ###### ######### ################ ##### $$ $$$$$$ ",
" ###### ### # # ## ###### ##### ## ##### ######## ## ##### ###### $ $$$$$$ ",
" ##### # #### ######### ###### ## ##### ##### ###### ###### $$$$$$ ",
" %%% ### ### ### ##### ###### ## ###### ##### # ## ###### ######### $$$$$ ",
" %%% #### ## # ##### ###### # ##### ###### # #### ##### ###### ### $$ $$$$$$ ",
" %%% ## ### # ###### ###### # ##### ###### # #### ############## # $$$$ ",
" %%% %% ## ##### ##### ## ###### ##### # & ############ #### $$$$ ",
" %%% %%%%% & ## ########### & ##&&###### & # &&& ##### # ## $$$$ ",
" %%%%% % & &&& & ### ##&&&#### & &&&& &#&&#### && & &&&& ## #### $$$$ ",
" %%%%% % && && ## #&&&##& && & &&&& &&&& &&& & ### $$$$ ",
" %%%%% %% &&& & &&&&#&#&& &&& &&&& &&&& && &&&& & && & && $$$$ ",
" %%% % %%% && & && &&& &&&& && &&& & & && && & & & &&&& &&&&& &&& $$$$$$ ",
" %%% %%% & && && & &&&&& &&&&& && & &&&&&&&&&&&&& &&& &&&&&&&&&&&&&& && $$$$$$$$$ ",
" %%%% % &&&&&&&& & & & & &&&&&&&&& && &&& &&&&&&&&&&&&&& &&& &&&&&&&&&&&&&& $$ $$$$$$ ",
" %%% &&&&&&&&&& && & &&&&&&&&&&&& & & &&&&&&&&&&&&&& &&&&&&&&&&&&&&&&& $ $$$$ ",
" %%% &&&&&&&&&&&&& & &&&&&&& &&&&&&& &&&&&& &&&&&& & &&&&&& &&&&& & $$ $$$$ ",
" %%% &&&&&& &&&& && &&&&&& &&&& & &&&&&& &&&& &&& &&&&& &&&& & & $$ $$$$$ ",
" %%% &&&&& &&&&&&&& &&&&& &&&& && &&&&& &&&&&& &&&&& &&&& && & $$$$ $$$$ ",
" %%% &&&&& &&&&&&&& &&&&& &&&&& &&&&& &&&& & &&&&&& &&&& &&&& $$ $$$$ ",
" %%% &&& &&&&& &&&&&& &&&&& &&&&&& &&&&&&&&&&&&& &&&&&&&&&&&& $$$$$$ ",
" ####### ###### ############ ######### #### $$$$ ",
" ####### ###### ####### ##### ########### ###### $$$$ ",
" ###### # ####### ###### # ####### ############# ###### $$$$ ",
" ####### # ##### ###### # ###### ###### ####### ###### $$$$$ ",
" ######## ###### ######## ##### ####### # ##### ###### $$$$ ",
" ###### ###### ######## ##### ####### ####### ####### $$$$$ ",
" %%% #### ##### ####### ####### ##### ###### ###### $$$$ ",
" %%% ###### ######## ####### ###### ##### ####### $$$$ ",
" %%% ####### ###### # ##### ###### ########## # $$$$$ ",
" %%% ####### ##### ####### ##### ######## # $$$$ ",
" %%%% ########### ########### ###### $$$$ ",
" %%%% ######### ######## ##### $$$$$ ",
" %%% # ####### ###### $$$$$ ",
" %%% ##### ### & $$$$ ",
" %%%% # & &&&&&& $$$$ ",
" %%% & && &&&&&&& &&&&&&&&& &&&&&&&&& $$$$ ",
" %%% &&&&&&&&& &&&&&&&&&&& &&&&&&&&&&&& &&&&&&&&&&& $$$$ ",
" %%%% &&&&&&&&&&& &&&&&&&&&&&&& &&&&&&&&&&&&&& &&&&&&&&&&&&&&&& $$$$ ",
" %%%% &&&&&&&&&&&&&& &&&&&&&& &&&&& &&&&&&&& &&&&& &&&&&& &&&&& $$$$$ ",
" %%% &&&&&& &&&& &&&&&& &&&& &&&&&&& &&&& &&&&&& &&&&& $$$$ ",
" %%%% &&&&& &&&&& &&&&& &&&& &&&&&& &&&& &&&&& &&&& & $$$$ ",
" %%%% &&&&& &&&&& &&&&& &&&& &&&&&&& &&&&&& &&&&&& &&&& & &&&& $$$$ ",
" %%% &&& &&&&& &&&&&& &&&&&& &&&&&& &&&&&&&&&&&&& &&&&&&&&&&&& $$$$ ",
" %%% & &&&&&&&&&&&& &&&&&&&&&&& &&&&&&&&&& &&&&&&&&& $$$$ ",
" %%% &&&&&&&&& &&&&&&&&& &&&&&&&& &&&&&& $$$$ ",
" %%%%% &&&&&&& &&&&&& &&& & $$$$ ",
" %%%%% % && $$$$ ",
" %%% % '''''' $$$$ ",
" %%%%% % '''''' $$$$ ",
" %%%%% '''''' $$$$ ",
" %%%%%%%%% ''''$' $$$$$ ",
" %%%% %% '''''''''''''''''$$$$$$$$$ ",
" %%%%%% % '''''''''''''''''$$ $$$$$$ ",
" %%% ((( (((((( ((((((( '''''''''''''''''$' $$$$$$ ",
" %%% ((((((( (((((((( ((((((((( ((((((((((( ' ' $$$$$$ ",
" %%% (((((((((( ((((((((((( (((((((((((( ((((((((((((( '''''' $ $$$$$ ",
" %%% ((((((((((((( ((((((((((((( (((((((( ((((( (((((( ((( (((( $$ $$$$$$ ",
" %%% ((((((( ((((( (((((( (((((( ((((( ((((( (((( ((((( ( (((( '' ' ' ' $ $$$$ ",
" %%% (((((((((( (((( (((((((((((( ((((( (((((( ((((( ((((( ((((( ((( (((( ( '''' $$$$ ",
" %%% ((((((( ( ( (((( ((((( ( ( (((( ((((( ( (((( (((((( ( ( ( ((((( ((( $$$$ ",
" %%%%% (((( ( ( (((( ((((( ( (( (((( ((((( ( ((((( (((((( ( (((( (((((((((((( $$$$ ",
" %%% %% %( ((((( (((((( (((((( (((((( ((((((((((( ( ((( (((((((((( ( ( ( (((((((((( $$$$ ",
" %%% %%%% (((( ( (((((((((((( ( ((( ((((((((( ( ( ( (((((((( (( ((((((( $$$$ ",
" %%%% %% ( ( ((((((((( )) (( (((((( (( ((((( ( ( (( ( $$$$$$$ ",
" %%% % %% (( (((((((( )))) *(* (( ( ( ( (( ((( +++++++ ((( ( $$$$$$$$$ ",
" %%% %% ( (( ))))) **** ( ((((( ( (((((( ++++++++++++++++++((+++++++ $$ $$$$$$ ",
" %%% % % ((( )))))) **** ( ,,,(( ( ((((+++++++++++++++++((+++((((+++ $$$$$$ ",
" %%% %%%% ((( ())))) *** ((,(( (( -- (( (( (( .++.++++++++++++(((+(+((++++++ $$ $$$$$$ ",
" %%% %% ( (((())) *** (((,(( -----.--....---(-((((- ....... ( ( +++++++++ $$ $$$$$ ",
" %%% (((((())) *** (,(, -----..-...----------- ...... +++++ $$$$ $$$$ ",
" %%% ))))))) ) *** ,,, -----.---------------- .. .. ++++ $ $$ $$$$ ",
" %%% ))))))) ) **** ,,, ...... .. ... ... ++++ $$$$$$ ",
" %%% )))))))) ))) **** ,,, ..... ... . . ... ++++ $$$ ",
" %%% ))))) ) ) ))) **** ,,, ........................ +++ $$$ ",
" %%% ))))) ) ) / /// *** ,,,, . ................................ +++ $$$ ",
" %%% %% )))))) ))) ///// *** ,,,, ... . ................................ +++ $$$ ",
" %%% %%%% ))))) ))) / / *** ,,,. . . .................... +++ $$$ ",
" %%% %%%%% )))))) / //// *** ,,, .. ...... +++ $$$ ",
" %%% % % )))))) //// /// **** ,,, .. ...... +++ $$$ ",
" %%% % %% ))))) /////////// // ///* ,,,.... ... +++ $$ $$$$ ",
" %%% % %% )))))) ///////////////// / */* ,,,,. .. ... +++$$$$$$$$$ ",
" %%% % % )))))) //////////////////////***//,,,, .. ... +++$$$ $ $$$ ",
" %%% %% ))))) ))) ) ////// //////// //*///,,,, ..... +++ $ $$$$$ ",
" %%% %% )))))))))))))) ///// //// ***///,, .... 00000000000000000000000 ++++ $$$$$ ",
" %%% )))))))) ) )))////// /////*/ //,, .... 00000000000000000000000 ++++ $ $$$$ ",
" %%% ))))) )))////// /////// ,,, ... 00000000000000000000000 +++ $$ $$$$$ ",
" %%% ))) ///// //// / /,,, ... 00 00 0 +++ $ $$$ ",
" %%% )) ))) //// //// ,,,, ... 000000 +++ $$$ ",
" %%% ) /// //// ,,,, ... ++++ $$$ ",
" %%% //// ///// ... 0000 0000 ++++ $$$ ",
" %%% % //// //// ... +++0+0+0+000++++++++++++++++++++++ $$$ ",
" %%% %% %% /// /// .... +++++++++++++++++++++++++++++++++ $$$ ",
" %%% % /// //// ....... +++++++++++++++++++++++++++++++++ $$$$$$ ",
" %%% %% /// /// ... ..... + + +++++++++++ $$$$$$$$ ",
" %%% %% %% /// /// .. . ... ++++++ +++++++ $$ $$$$$ ",
" %%% %% %% / /// /// .. . .... + ++++++ $$$$$$ ",
" %%% %% %% // ////// //// .. ....... ++++ + ++ $$ $$$$$ ",
" %%% % % / / ////// /// / // . ......... +++ + +++++ $$ $$$$ ",
" %%% /// /// ///// / / .. .. ...... +++ + $$$$ $$$ ",
" %%% // ////// ////// .. ............................... $ $$ $$$ ",
" %%% // ////// /// // / . .............................. $$$$$ ",
" %%% / // //// /// // / ............................ $$$ ",
" %%% // /// //// ///// / .. ... . ... . $$$ ",
" / //// //// / . ... . . . $$$ ",
" //// ///// / .. .. ",
" //// ////// ......... .... .... ",
" //// ////// .. ... . . ... ",
" ///// ///// ",
" //////// ////// ",
" ///////////// /////// 11111111111111111111111111111111111111 ",
" ////////////////////// 11111111111111111111111111111111111111 ",
" // //////////////// / 11111111111111111111111111111111111111 ",
" / //// //////// //// 11111111111111 1 1 ",
" // /// / / // 1111111 1111111 ",
" ////// // /// 111111 11 ",
" ///// / / / / 11 1 11 1111111 ",
" / / / 11 11111 111 11 1 ",
" 11 111111 ",
" %%%% &&&&&&&&& &&&&&&&&& &&&&&&&& &&&&&& $$$$ ",
" %%% &&&&&&& &&&&&& &&& & $$$$ ",
" %%%% && $$$$ ",
" %%%% '''''' $$$$ ",
" %%% '''''' $$$$ ",
" %%% '''''' $$$$ ",
" %%% '''''' $$$$ ",
" %%% '''''''''''''''''''' $$$$ ",
" %%% ''''''''''''''''''' $$$$$ ",
" %%% ((( (((((( ((((((( ''''''''''''''''''' $$$$ ",
" %%% ((((((( (((((((( ((((((((( ((((((((((( ''' '' ' ' ' ' $$$$$ ",
" %%%% (((((((((( ((((((((((( (((((((((((( ((((((((((((( '' $$$$ ",
" %%% ((((((((((((( ((((((((((((( ((((((( ((((( (((((( ((((( $$$$ ",
" %%% (((((((( (((((( (((((((((((((((( ((((( ( (((( ((((( (((((( $$$$$ ",
" %%%% ((((( ( (((((((( ((((((( ((((( ((((((( ((((( ((((( (((((( ( $$$$ ",
" %%%% ((((( ((((( (((((( ( (((( ((((( ( (((( (((((( ( ((((( ((( $$$$ ",
" %%%% (((( ((((( (((((((( (((( (((((( (((((( (((((( ((((((((((((( $$$$$ ",
" %%%% (( (((((( ((((((( (((((((((((( ((((((((((( ((((((((((( $$$$$ ",
" %%% ((((((((((((( ((((((((( ( ((((((((( ((((((( $$$$ ",
" %%% ((((((((( ( )) ((((((((( (((((((( ( ((( $$$$ ",
" %%%% (((( )))) *** (( ( ( +++++++ $$$$$ ",
" %%%% ))))) ***** +++++++++++++++++++++++++++ $$$$ ",
" %%% )))))) **** ,,, - +++++++++++++++++++++++++++++ $$$$ ",
" %%%% ))))) *** ,,,, ------ -- - -------- +++++++++++++++++++++++++++++ $$$$$ ",
" %%%% ))))) **** ,,,, ---------------------- +++++++++ $$$$ ",
" %%%% )))))) **** ,,,,, ---------------------- +++++ $$$$ ",
" %%% ))))) **** ,,, ---------------------- ++++ $$$$ ",
" %%%% ))))) **** ,,,, ++++ $$$$ ",
" %%% )))))))) ***** ,,, . .. .. . .. +++++ $$$ ",
" %%% ))))) ***** ,,,, ........................ ++++ $$$ ",
" %%% ))))))) **** ,,,,, ................................ ++++ $$$ ",
" %%% )))))) ) **** ,,,,, ................................ ++++ $$$ ",
" %%% ))))))) **** ,,,, ................... ++++ $$$ ",
" %%% )))))) ) **** ,,, .... ++++ $$$ ",
" %%% )))))) ) //// / **** ,,, , ..... ++++ $$$ ",
" %%% ))))))) /////////// //// **** ,,,,, .... ++++ $$$ ",
" %%% )))))))) / ///////////////// *** ,,,,, .... +++ $$$ ",
" %%% ))))))) //////////////////// **** ,,,,, .... +++ + $$$$ ",
" %%%% ))))) ) /////// //////// **** ,,,,, .... ++++ $$$ ",
" %%%% )))))) ///// //// *** ,,,,, .... 00000000000000000000000 +++++ $$$$ ",
" %%%% )))))) ////// /////** ,,, ..... 00000000000000000000000 +++++ $$$ ",
" %%% ))))) ////// ///// ,,, .... 00000000000000000000000 ++++ $$$ ",
" %%%% ))) ////// ////// ,,,, ... 0 000 000000 ++++ $$$$ ",
" %%%% )) //// //// ,,,, .... 00 +++ $$$ ",
" %%% //// //// ,,,, .... ++++ $$$ ",
" %%%% //// ///// ... ++++ $$$$ ",
" %%%% //// //// ... ++++++++++++++++++++++++++++++++++ $$$$ ",
" %%%% /// /// .... +++++++++++++++++++++++++++++++++ $$$ ",
" %%%% /// //// .... +++++++++++++++++++++++++++++++++ $$$ ",
" %%%% //// /// .... ++++++ ++++++++++++++ $$$$ ",
" %%%% /// /// .... +++ +++++ $$$ ",
" %%%%% /// /// .... $$$ ",
" %%%% //// //// ..... $$$$ ",
" %%%%% //// //// ..... $$$ ",
" %%%% /// //// ...... $$$ ",
" %%% //// //// ............................... $$$ ",
" %%% //// //// .............................. $$$ ",
" %%% //// //// ............................ $$$ ",
" %%% //// //// .... ..... ...... $$$ ",
" //// //// .. $$$ ",
" ///// ///// ",
" ///// ////// ",
" ///// //////// ",
" ////// ////// ",
" //////// ////// / ",
" ////////////// ////// 11111111111111111111111111111111111111 ",
" ///////////////// / 11111111111111111111111111111111111111 ",
" / / //////////// 11111111111111111111111111111111111111 ",
" / /// //// 11111111111111 11 1111 11 1 ",
" 111 1 111 1 ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",

View file

@ -9,10 +9,10 @@
"16",
"6",
"2",
"10",
"12",
"14",
"10",
"13",
"14",
"11",
"3",
"15",
@ -33,164 +33,164 @@
" ",
" ",
" ",
" !!! ! ",
" !! !! !! !! !!! ",
" ! !! ! ! ! !!!! !! ! ",
" !!!!! !!!! ! ! ! !!! ! ! ! ",
" !!! !!!! !! ! ! ! ! ! !!! ! ",
" !!!!!!!!!! ! !!! !!!!!!! !! ! !!! !!!! !!! ",
" !!!!!!!!! ! ! ! !!!!!!! !!! ! !!!!!!!! !!! ! ",
" ! ! !!!!!! !!!!! !!! ! ! !!!!!!! !!!! ! !! !!!!! ! ! !!!!! ",
" !!! !!!!!! !!!!!!!!!! ! !!!!!!!!!!!!!!! ! ! !!!!!!!!! !!! !!! !! ! ",
" !!! !!!! !!!!!! !!!!!!!!! !! !!!!!! !!!!! !! ! !!!!!!!!!!! !!! !!! !!! !!!! ",
" ! !! !!!!!! !!!!! !!! ! !!!!!! !!!!! ! ! ! !!!!! !!!!!!!!!! ! ! !!!!!!!! ",
" !!!! !!!!!! !!!!!!! !! !! ! !!!!!! !!!!!! !! ! !!!! !!!!!! !!!!!!!! ! ! ! !!!!! ",
" ! ! !!!!!!!! !!!!!! !!!! !!!!! !!!!!! ! !!! !! !!!!!! !!!!! ! ! !! !!!!!!!!! ",
" ! !!!!!! !!!!! ! !! !!!! !!!!!! !!!!! !!!!! !!! !! !!!!! !!!!! ! ! !! !!!!!! ",
" !!!!!!! !!!!! !! ! ! ! !!! !!!!!! !!!!! !!! ! ! !!!!!!!!! !!!!!! !!!! !!!!! ",
" !!!!!! !!!!!! !!! ! !! !!!!!! !!!!!! !! ! !!!!!! !!!!! !!!!! !!!!!! ",
" !!!!! !!!!!! !! !!! !!!!!! !!!!! !!! !!! !!!!! !!!!! ! !!!!!! ",
" !!!! !!!!! !!! !!! !!!!! !!!!! !!! ! !!!!!! !!!!!!!! ! !! !!!!! ",
" ! !!!!! !!! !!!!!!! !!!!!!!! !!!!! !!!!!!!! !! !!!!!!! ",
" !!!!!!!!! !!!!! !!!!!! !!!!!! !!!!! !! !!!!! ",
" !!!!!! !!!!!! !!!!! !!!!!! !!!!! !!!!!! ",
" !!!!! !!!!!! !!!!!! !!!!! !!!!!!!!!!! ",
" ",
" ",
" ",
" ! ",
" ! !!!! ",
" !!!!!!!! !!! ",
" !!!!!!!!!! ! !!!!!! ! !!! ",
" !!!!!!!! !!!!! !!!!!!!!! !!!!! ",
" !!!!!!!! !!!!!!!! !!!!!!!!!!!! !!!!!!!!! ! ",
" !!!!!!!! !!!!! ! !!!!!! !!!!! !!!!!!!!!!! !!!!! ",
" !!!!!! !!!!! ! !!!!!!! !!!!! !!!!!! !!!!!! !!!!!!!! ",
" !!!!!! !!!!!!! !!!!!! !!!!!! !!!!!! !!!!!!! !!!!!! ",
" !!!!!!! !!!!!!! !!!!! !!!!!! ! ! !!!!!! !!!!! !!!!!! ",
" !!!!!!! !!!!!! !!!!!! !!!!! ! !!!!!! !!!!!!! ! !!!!!! ",
" !!!!!!! !!!!! ! !!!!!! !!!!!! !!!!!! !!!!!!! !!!!!!! ",
" !!!!!! !!!!!! !!!!!! !!!!!!! !!!!!!! !!!!!! !!!!!!! ",
" !!!!! !!!!!! !!!!!!! !!!!!! !!!!!! !!!!! !!!!!!!! ",
" !!!! !!!!! !!!!!! !!!!!!! !!!!!! !!!!!! !!!!!! ",
" ! !!!!! !!!!!!! !!!!!!! !!!!! !!!!!! !!!!!! ",
" !!!!!! !!!!!!! !!!!!! ! !!!!!! !!!!!!! ! !!!!! ",
" !!!!!! !!!!!!! !!!!!! !!!!!! !!!!! !!!!!! ",
" !!!!! !!!!!!!! !!!!!! !!!!! !!!!!!!!!!! ",
" !!!!!!!!!!! !!!!!!!!!! !!!!!!!! ",
" !!!!!!!!! !!!!!!! !!!!! ",
" !!!!!! !!!! !!! ",
" ### !!! # !! $$$ ",
" ##### ! #### $$$ ",
" ######## ####### ## $$$ ",
" ########### ########## ##### # $ $$$ ",
" ###### ####### ###### ##### ######## ### $$ $$ $$$ ",
" ####### ## ##### ##### ## ##### ########## ##### $ $$ $$$ ",
" ###### # ##### ###### ### ###### ##### ##### ##### $ $$$ ",
" ###### # ###### ######### ###### ######## ###### ###### $ $$$ ",
" ###### # ####### ####### # # ##### ########## ###### ###### $$ $ $$$ ",
" ######### ## # ##### ###### # ### # # ##### ##### ### ##### ######## $$ $ $$$ ",
" ####### ### ### ##### ##### # ## # ## ###### ##### # # ## ###### ###### ##### $ $$$ ",
" ########## ## #### ###### ###### ### # ## ##### ###### ##### ###### ###### ## ### $$ $$$ ",
" ######## # # # # ##### ######### # #### ##### ##### ### ## # ##### ###### ## ### $$$ ",
" %%% ## # ### ## # ##### ##### ### ## # ###### ##### ## # # ######## ###### # ### $$$ ",
" %%% ## # # ###### ######## ### # # ###### ###### ######### ##### #### $$$ ",
" %%% % ### ######## ######### ### #### ##### ######## ## # ###### ###### $$$ ",
" %%%%% %% # ### ##### ###### # ### ### ##### ##### ## # # ########### $$$ ",
" %%%%% % #### ##### ###### ### ### ###### ##### ## ## # ####### # $$$ ",
" %%% % ##### ###### ##### ### # ########### ## # # ###### # $ $$$ ",
" %%% % %% ### ########### # && ######## # ## &&& && ### ###### # $ $ $$$ ",
" %%% % %%% & ### ######## && && &&& ###### # # &&&& && ### #### ### $$ $$ $$$ ",
" %%% %%%%% &&&& ### ##&&& && && & &### ### & ### ## # $$ $$ $$$ ",
" %%% % &&&& ### &#&& &&&& & &&&&& &&&# # &&& & # # # $$ $$ $$$ ",
" %%% % && & && & & && & && && &&&&& && & &&&&&&& & ## $$ $$$ ",
" %%% &&& & &&&& & & &&&&& && & & && && &&&&&&&& &&& $ $$$ ",
" %%% &&& && &&&&&& & &&& &&&&&& & & & &&&&&&&& &&&&& &&&&&&&&&& && $$ $$ $$$ ",
" %%% && && & &&&&&&&&& & &&&&&&&&&&&&&&& & &&&&&&&&&&&& && & && &&&& &&&&&&&&&&&&& && & $ $$$ ",
" %%% & &&& &&&&&&&&&&& && & &&&&&&&&&&&&& && &&&& &&&&&&&&&&&&&&& && && &&&&&&&&&& &&&&& & & $$$ ",
" %%% &&& &&&&&&&&&&&&&& & & &&&&&&& &&&&&& & && && &&&&&&& &&&&&&&& & &&& &&&&&& &&&&& & && $$$$ ",
" %%% &&& &&&&&&& &&&&& &&& & &&&&&&& &&&&& & &&& & &&&&&& &&&&&&&& & &&&&& &&&&&&&&&& $$$$ ",
" %%% %% &&&&&&& &&&& &&&& & &&&&&& &&&&&& && &&& &&&&& &&&&&& & &&& &&&&& &&&& && $$$$ ",
" %%% %%%% &&&&&& &&&&& & && &&&&& &&&&& & &&&&&&&&&& &&&& &&& &&&&&&& &&&& & & $$$$ ",
" %%% %%%%%&&&&& &&&& & & &&&&& &&&& && &&&&&&& &&&&&&& &&&&& &&&&&& &&& && $$$$$$ ",
" %%% % %&&&&& &&&& && &&&& &&&&& &&&& & &&&&& &&&&& &&&&& &&&&& &&& &&&&& $$ $$$$$$ ",
" %%% % %% &&& &&&& &&& &&&&&& &&&& &&&&& &&&&& &&&&&& &&&&&&&&&&&&&& $ $$$$$$ ",
" %%% % %% & &&&&& &&&&&&& &&&&&& &&&&&& &&&&&&&&&&&&& &&&&&&&&&&& $ $$$$ ",
" %%% % % &&&&&&&&&&&&& &&&&&&&&&&&& &&&&&&&&&& &&&&&&&&& $ $$$$$$ ",
" %%% %% &&&&&&&&&&& &&&&&&&& &&&&&& &&&& $$ $ $$$$ ",
" %%% %% &&&&&&& &&&& & $$ $ $$$$ ",
" %%% && $ $$$$ ",
" %%% $$$$$$ ",
" ########### ########## ##### # $$$$$ ",
" ############## ############ ######## ### $$$$$ ",
" ####### # ##### ####### ###### ########## ##### $$$$ ",
" ######## ##### ####### ###### ##### ##### ##### $$$ ",
" ####### ####### ####### ####### ###### ###### ###### $$$ ",
" ###### ####### ##### # ##### ####### ###### ###### $$$$ ",
" ###### ## ####### ####### ##### ####### ####### ####### $$$$$ ",
" ####### ###### ###### ###### ##### ######## ####### $$$$$ ",
" ######## ######## ###### ###### ####### ####### ####### $$$$$ ",
" #### # # ##### ###### ###### ##### # ######## ######## $$$ ",
" %%% ## ####### ##### ###### ##### ######## ####### $$$$ ",
" %%% ######## ######## ####### ###### ####### ##### ## $$$ ",
" %%% ######## ####### ####### ####### # ###### ######## $$$ ",
" %%% ####### ###### # # ##### ####### ############## $$$$$ ",
" %%% ####### ######## ######## ##### ####### $$$$ ",
" %%%% # ###### ####### ############# ##### $$$$ ",
" %%%% ########### # ########## ## $$$$ ",
" %%% ######## # ######## $$$$$ ",
" %%%% ####### #### $$$ ",
" %%%% ### # ## $$$ ",
" %%%% && $$$ ",
" %%% && & & &&&&&&&&& $$$ ",
" %%% & &&& &&&&&&& &&&&&&&& &&&&&&&&&& $$$ ",
" %%%% &&&&&&&&& &&&&&&&&&& & &&&&&&&&&&&&&& &&&&&&&&&&&&&&&& $$$$$ ",
" %%% &&&&&&&&&&& &&&&&&&&&&&&&& &&&&&&&&&&&&&&&& &&&&&&&&& &&&&& $$$$$ ",
" %%%% &&&&&&&&&&&&&&& &&&&&&& &&&&&&& &&&&&&&& &&&&&& &&&&&&& &&&&& $$$$ ",
" %%%% &&&&&&&& &&&&& &&&&&&& &&&&&& &&&&&&&& &&&&&& &&&&&& &&&&& $$$$$ ",
" %%%% &&&&&& &&&& &&&&&&& &&&& &&&&&&& &&&&& &&&&&&& &&&& $$$$ ",
" %%%% &&&&&& &&&&& &&&&& &&&&& &&&&&&& &&&&& &&&&&& &&&&& $$$$ ",
" %%%% &&&&& &&&&& &&&&&& &&&& &&&&&& &&&& & &&&&& &&&&& &&& $$$$$ ",
" %%% &&&&& &&&&& &&&&&& &&&& &&&&&&& &&&&&& &&&&& &&&&&& &&&&&& $$$$$ ",
" %%% &&& &&&& &&&&&&& &&&& &&&&& &&&&&& &&&&&& &&&&&&&&&&&&&& $$$$ ",
" %%% & &&&&&& & &&&&&&& &&&&&& &&&&&&& &&&&&&&&&&&&& &&&&&&&&&&& $$$$$ ",
" %%% &&&&&&&&&&&&& &&&&&&&&&&&& &&&&&&&&&& &&&&&&&&& $$$$$ ",
" %%% &&&&&&&&&&& &&&&&&&& &&&&&& &&&& $$$$ ",
" %%% &&&&&&& &&&& & $$$$ ",
" %%% && $$$$ ",
" %%% $$$$ ",
" %%% '''''''' $$$$ ",
" %%% '''''''' $$$$ ",
" %%% '''''''' $$$$ ",
" %%% % ''' $$$$ ",
" %%% % ''''''''''''''''''''''''' $$$$ ",
" %%% % %% ''''''''''''''''''''''''' $$$$ ",
" %%% % %% (( '''''''''''''''''''''''''$ $ $$$$ ",
" %%% %% ((((((( (((((((( '''''''''''''''''''''''''$$ $$$$$$ ",
" %%% %% %% (((((( (((((((( (((((((((( (((((((((((( ' ''' $$ $$$$$$ ",
" %%% % %% (((((((((( (((((((((((( ((((((((((((( (((((((((((((( ' ''' $ $$$$$$ ",
" %%% %% % (((((((((((((( ((((((((((((((( (((((((( ( ((((( ((((((( ((((( ''' '' $$$$$$ ",
" %%% ((((((( (((((( ((((((( ((( (((( (((((( (( (((((( (((((( ((((((( ' ' ' ''' $$$$$ ",
" %%% ((((((( ( (((( (((((( (((((( (((( (((((( (((( (((( ((((( (( (((( ' ' ''' $$ $$$$$$ ",
" %%% (((((( (( (((( (((((( ( (( (((( ((((( ( ((((((( ((((( ( ((((((( $ $$$$ ",
" %%% (((((((((( ( (((( ((((( (( (((( (((((( ((( (((( ((((((((( (( (((((( (( $$$$ ",
" %%% ((((((((( (((( ((((( ((((( (( (( (((( ((((( ( ((( (((( (((((((((( (( ( ((((((( (((( $$$$ ",
" %%% (((( ( ((( (( (((( (((((( ((( (( (((( ((((((( ( (( (((( (((((((( ( ((( ((( ( ((((( (((((( $$$$ ",
" %%% %% (( (((( ( ((((( (((((( ( ((((( (((((( (( ( ( (((((((((((((( ( (( (( ((((((((((((( $$$$ ",
" %%% % %% ((( ((((((((( (((((( ( (((((((((((((( (((( ( (((((((((((( (((( (( ((((((((( $$$$ ",
" %%% %% (( ((((((((((((( (((((((((((( (( (( ((((((((( ((( ((( (((((( (( $$$$$$ ",
" %%% %% % ( (((((((( ((( )) (((((((((( (( ( (( ((( ( ((( (((((( * $$ $$$$$$ ",
" %%%%% % (( ( ((((( ( (((() +++ (((( ( ((( ,, (((((( ((( (( ( (( ** ** * $$ $$$$$$ ",
" %%%% % %% (( ( ())()) +++ (( ((( ,,, ,, ((((( ************ (( ( * * ** $$$$$$ ",
" %%%%% ((( ( ((())) +++ ( ( ( ((( ( ***************************((((( *** * *** $ $$$$$$ ",
" %%%% % % ((((( (()())) ++++ ( (((((--- ,,,,,,,, (( ((((( **************************((*(******* ******* $$ $ $$$$ ",
" %%%%%% ((( ()))) ++++ ((( ((--- ,,, ,,,,, ( ((( ********************************* * * $$ $ $$$$ ",
" %%%% )))))) ) +++ (--- ,,,,,, **************** $ $$$$ ",
" %%%% ))))))))) ) +++ ---- ,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ****** $$$$$$ ",
" %%%% ))))) ))) )) +++ ----- -- ,,,,,,,,,,,,,,,,,,,,,,,,,,,,, . .. **** $$$$ ",
" %%%% )))))) ))) )) +++ --- -- - ,,,,,,,,,,,,,,,,,,....,..,,,, .. ... . **** $$$$ ",
" %%%% )))))) ) ))) ++++++ + ------ - . ... ... .. . .... **** $$$$ ",
" %%%% ))))) ) ++++ ++ + --- - ... ... .. . .. . .. **** $$$$ ",
" %%%%% )))))) )) +++++++ ----- -- . .. ..... ... ..... **** $$$$ ",
" %%%%%% )))))) ) ++++ ++ ---- -- .. ..... ... . . . *** $$$$ ",
" %%%% %% ))))) +++ + + ----- -- . .. ................................. *** $$$$ ",
" %%%%%% % )))))) / +++ + ++ ---- -- .......................................... *** $ $ $$$$ ",
" %%%%%% )))))))) // //// // ++++++ ++ --- -- ........................................... *** $$ $$$$ ",
" %%%%%%%%% ))))) ))) ///// //// ++++++++ --- ................. *** $$ $ $$$$ ",
" %%%%%% %% )))))) ))) )) // // // ++++++ --- ..... *** $ $$$$$$ ",
" %%%%%%%%% )))))) )) ) ) /// /// // // +++ --- .... *** $$$$$$ ",
" %%%%%% ))))) )) ) // //// ///// / +++ ---- . ... *** $$$$$ ",
" %%%% )))))) ) )) //////// /// / +++ ---- . . ... *** $$ $$$$$$ ",
" %%%% )))))) ))) /////////////// / +++ ---- .. . .... *** $ $$$$ ",
" %%%% ))))) ) ////////////////////// ++++ --- . . .... *** $$$$ ",
" %%%% )))))) ////// ////////////// ++++ --- .. ..... *** $$$$ ",
" %%%% )))))) ////// ///////// +/+ --- . ..... **** $$$$ ",
" %%%% %% ))))) ) ///// //// /++/ --- ... ..... **** $$$$ ",
" %%%% %%%% ))))))))) ) ////// ///////++// ---- . ... 00000000000000000000000000000 **** $$$$ ",
" %%%%%% %)))))))) )) ////// //// /++////---- . ... 00000000000000000000000000000 *** $$$$$$ ",
" %%%%%% %%)))) ))) )) ///// //// / / --- ... 00000000000000000000000000000 *** $$$$$$$$$ ",
" %%%%%% )%))) ) ) )) ////// //// // /--- ... 00 00 0 0000 *** $$ $$$$$$ ",
" %%%% % %%%) ) ) ////// /////// --- ... 000000 0 00 *** $$$$$$$ ",
" %%% %) ))) ///////// //// // --- ... **** $ $$$$$$ ",
" %%%% % ) //////// //// / --- ... 00000000 00 00000 ****** **$$ $ $$$$ ",
" %%% / / /// //// --- ... 00 0000 000000 *** ** *$$ $ $$$$ ",
" %%% // // /// ///// ... ***** * $ $$$$ ",
" %%% / / /// //// ... **************** **** * * $$$$$$ ",
" %%% // / //// /// . ... ********************************************** ** $$$$ ",
" %%% // // //// /// .. ..... ******************************************** * * $$$$ ",
" %%% // /// //// ..... ********************************* * ** $$$$ ",
" %%% ////// //// . ... * * *** ** ** *** ** $$$$ ",
" %%%%% /// //// .. ..... * **** * **** ** *** $$$$ ",
" %%% %% % /// /// / ......... ** * * $$$$ ",
" %%% %%%%% //// /// // .. .. .... **** * ****** ***** ** $$$$ ",
" %%%% %% /////// ///// / . ..... ** * *** ** * ******* $ $ $$$$ ",
" %%%%% %% //////// ///// // . .... $$ $$$$ ",
" %%%%%% // ///// ///// // ..... $$ $ $$$$ ",
" %%%%% %% // / /// //// / ...... $ $$$$$$ ",
" %%%%%%%% // / /// /// / // .......................................... $$$$$$ ",
" %%%%%% // ///// /// //// ......................................... $$$$$ ",
" %%% / // //// /// / . .. ...................................... $$ $$$$$$ ",
" %%% / // //// /// .. . . . . .. . $ $$$$ ",
" %%% / //// /// .. ... .. ... ... .. $$$$ ",
" //// //// ... . $$$$ ",
" //// ///// ..... .. . . . . ..... $$$$ ",
" ///// ///// ... .... ... .... ",
" //// ////// ",
" %%% $$$$ ",
" %%%% '''''''' $$$$$ ",
" %%%% '''''''' $$$$$ ",
" %%%% '''''''' $$$$ ",
" %%%% ''' $$$$ ",
" %%%%% ''''''''''''''''''''''''' $$$$ ",
" %%% ''''''''''''''''''''''''' $$$$ ",
" %%%% (( ''''''''''''''''''''''''' $$$$ ",
" %%%% ((((((( (((((((( ''''''''''''''''''''''''' $$$$ ",
" %%% (((((( (((((((( (((((((((( (((((((((((( ''' '' ''' ''' $$$$$ ",
" %%%% (((((((((( (((((((((((( ((((((((((((( (((((((((((((( $$$$ ",
" %%%% (((((((((((((( ((((((((((((((( ((((((((( (((((( (((((((( ( (((( $$$$$ ",
" %%%% ((((((((( (((((( (((((((((( ((((( (((((( (((((( (((((( ( (((( $$$$ ",
" %%%% ((((((( ( ((((((( (((((((( ( ((((( (((((( (((( ((((( ( ( (((( $$$$ ",
" %%% (((((( (( ((((( ((((((( (((( ((((((( ((((( ((((( ( (((((( $$$$$ ",
" %%%% (((((( (((( ((((( ((((( ((((((( (((((( (((((((( ((((( (( $$$$ ",
" %%%% ((((((( (((( ((((( ((((( ((((((( ((((( ((((( ( (((( (((( $$$$ ",
" %%%%% (((( (((( (((((( ((((( ((((( ( (((((( ((((((( ((((( (((((( $$$$$ ",
" %%%%% (( ((((( ((((((( (((((( (((((( ( ((((((((((((((((( (((((((((((((( $$$$$ ",
" %%% (((((( (((((((( (((((((((((( (((((((((((( ( (((((((((( $$$$ ",
" %%% (((((((((((( (((((((((( (((((((((( ( (((((((( $$$$ ",
" %%% (((((((((( )) ((((((((( ((( ((( (((( $$$$$ ",
" %%%% (((((( ( )))) *** (( ( + $$$$ ",
" %%%% ( ( ))))) *** +++++++++++++ + +++++ $$$$ ",
" %%%% )))))) *** ++++++++++++++++++++++++++++++++ + $$$$$ ",
" %%%% )))))) **** ,,, +++++++++++++++++++++++++++++++++++++ $$$$ ",
" %%%% ))))))) **** ,,, - - ++++++++++++++++++++++++++++++++++ $$$$ ",
" %%%% )))))))) *** ,,, ------- - --- - ----- +++++++++++++++ $$$$ ",
" %%%% )))))))) **** ,,,, ----------------------------- +++++++ $$$$ ",
" %%%% ))))))) **** ,,,, ----------------------------- ++++++ $$$$ ",
" %%%% )))))) ) **** ,,, ----------------------------- +++++ $$$$ ",
" %%%%% )))))) ) ***** ,,, +++++ $$$$ ",
" %%%% )))))))) **** ,,, +++++ $$$$ ",
" %%%% )))))) ) *** ,,, ++++ $$$$ ",
" %%%%% )))))) *** ,,,, . .. .. . . . +++ $$$$$ ",
" %%%%% ))))))) **** ,,,,, . ................................. +++ $$$$ ",
" %%%% ))))))) *** ,,,,, .......................................... +++ $$$$ ",
" %%%% )))))) **** ,,,, ............................................ +++ $$$$ ",
" %%%% ))))) **** ,,,, .................. +++ $$$$ ",
" %%%% )))))) *** ,,,, ...... +++ $$$$ ",
" %%%% )))))) **** ,,, .... +++ $$$$$ ",
" %%%%% ))))) ) / // **** ,,,, ... +++ $$$$$ ",
" %%%% )))))))) //////// **** ,,,,, .... +++ $$$$ ",
" %%%% )))))) /////////////////// / **** ,,,,, .... +++ $$$$ ",
" %%%% ))))))) //////////////////////// **** ,,,, .... +++ $$$$$ ",
" %%%% ))))))) /////// //////////////// **** ,,,, ... +++ $$$$ ",
" %%%% )))))) /////// ///////// *** ,,, .... ++++ $$$$ ",
" %%%% )))))) ) /////// //// *** ,,,, ... ++++ $$$$ ",
" %%%% ))))))))) ////// ///// *** ,,,, ... 00000000000000000000000000000 ++++ $$$$ ",
" %%%% )))))))) / ////// //// *** ,,,, ... 00000000000000000000000000000 +++ $$$$ ",
" %%%% ))))))) /////// //// ,,, ... 00000000000000000000000000000 +++ $$$$ ",
" %%%% )))))) ////// ///// ,,, ... 0 000 0000000 0 +++ $$$$ ",
" %%%%% ))) ////// ///// ,,, ... 00 ++++ $$$$ ",
" %%%% ) //// ////// ,,, ... ++++ $$$$ ",
" %%% /// //// ,,, ... ++++ $$$$ ",
" %%% /// //// ,,, ... ++++ $$$$$ ",
" %%% /// ///// ... +++++ $$$$ ",
" %%% /// //// ... ++++++++++++++++ +++++ $$$$ ",
" %%% //// /// ... +++++++++++++++++++++++++++++++++++++++++++++ $$$$ ",
" %%%% //// /// ... ++++++++++++++++++++++++++++++++++++++++++++ $$$$ ",
" %%%% /// //// ... + ++++++++++++++++++++++++++++++++++++ $$$$ ",
" %%% //// //// .... ++++ +++ ++++ $$$$ ",
" %%%% /// //// ..... $$$$$ ",
" %%%% /// /// .... $$$$$ ",
" %%% ///// //// ..... $$$$$ ",
" %%% ///// //// ...... $$$$$ ",
" %%%% //// //// ..... $$$$ ",
" %%% /// //// ..... $$$$$ ",
" %%%% /// //// ....... $$$$$ ",
" %%%% / /// /// / .......................................... $$$$ ",
" %%% //// //// ........................................ $$$$ ",
" %%% ///// /// ........................................ $$$$ ",
" %%% ////// //// ... . . . ...... $$$$$ ",
" %%% ///// /// . $$$$ ",
" ///// ///// $$$$ ",
" ///// ////// $$$$ ",
" ////// ///// ",
" ///// //////// ",
" //// /////// ",
" //// ///// ",
" ///// /////// / / ",
" / ///// ///////// /// ",
" / /////////// ///// / /// ",
" // / /////////////////////// / / 11111111111111111111111111111111111111111111111111 ",
" / / //////////////////// /// 11111111111111111111111111111111111111111111111111 ",
" / / //////////// /// 11111111111111111111111111111111111111111111111111 ",
" //// / / //// 1111111111 1 1 1111 ",
" / /// // /// 1111111 1 1 1 1 11 ",
" /// ///// 111 11 1 1 ",
" / /// / 11 1 11 11111 1 11111 ",
" // ///// 11 11111 111 11 1 111111 ",
" ////// 1 111111 ",
" //// /////// ",
" ///// ////// ",
" ///// ////// ",
" /////////// ///// ",
" /////////////////////// 11111111111111111111111111111111111111111111111111 ",
" //////////////////// 11111111111111111111111111111111111111111111111111 ",
" // ///////////// 11111111111111111111111111111111111111111111111111 ",
" / /// ///// 11111111111 111111 11 11 1111111111 ",
" / /// 1 11 11 11 ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",

View file

@ -27,42 +27,42 @@
" !!!!! !!!! !!! ",
" !!!!!!!! !!!!!!! !!!!!! !!! ",
" !!!!!!!!!! !!!!!!!!! !!!!!!!! !!!! ",
" !!!!! !!!!! !!!!! !!!!!!!!!!!!!!!!!!!!! ",
" !! #! !!!!!!!!! # !!!!!!!!! !!!!!!!! ",
" !!!! !!!!! !!!!! !!!!!!!!!!!!!!!!!!!!! ",
" !! # !!!!!!!!! # !!!!!!!!! !!!!!!!! ",
" #### !!!!!!! ### !!!!! ## !!!!!! ",
" ###### !!! ###### !!! ##### !! ###$$$ ",
" ########## ! ########!! ######## ####$$$ ",
" ###### !!! ###### !!! ##### !! ## $$$ ",
" ########## ! ######### ######## ####$$$ ",
" #### ##### ############ ###############$$$ ",
" %%%## ########## ######### ######## $$$ ",
" %%% ####### ####### ##### $$$ ",
" %%% &&&& #####& &&&##### &&&&&### $$$ ",
" %%%&&&&&&& &&&&&& &&&&&&# #&&&&&& $$$ ",
" %%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& $$$ ",
" %%% &&&& #####& &&&#### &&&&&### $$$ ",
" %%%&&&&&&& &#&&&& &&&&&&# &&&&&&& $$$ ",
" %%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& $$$ ",
" %%%&&& &&&&&&&&&&&&&&&& &&&&&&& &&&&&& $$$ ",
" %%% & &&&&& &&&&&&& &&&&& &&&&& '''$$ ",
" %%% &&& && & '''''''$$ ",
" %%% ((( (((( (((( ((((( '''''''$$ ",
" %%% ((( ((((( (((( ((((( '''''''$$ ",
" %%%((((((( (((((( ((((((( ((((((('''''''$$ ",
" %%%((((((((((((((((((((((((((((((((((( $$$ ",
" %%%((( (((((((((((((((( ((((((( ((((( $$$ ",
" %%% ( ((((( ())(((( ((((*********** $$$ ",
" %%(((((((((((((((((((((((((((((((((((( $$$ ",
" %%%((( (((((((( ((((((( ((((((( ((((( $$$ ",
" %%% ( ((((( )((((( ((((*********** $$$ ",
" %%% (((++ ))),,,--------************ $$$ ",
" %%% ++++++ ))),,,--------***.*********$$$ ",
" %%% ++/++ ))),,,------.-.... ****$$$ ",
" %%% ++++//// ))),,,............ ***$$$ ",
" %%% +++++ ))),,,--------.... ******$$$ ",
" %%% +++++/// ))),,,............ ***$$$ ",
" %%% +++++//////)),,,,............ ***$$$ ",
" %%%++++////////)),,,,... 0000000 ***$$$$",
" %%%+++//////////),,,.... 0000000 ***$$$$",
" %%%++++////////)),,,,... 0000000 ***$$$ ",
" %%%+++//////////),,,.... 0000000 ***$$$ ",
" %%%+++//// //,,,... 0000000*******$$$ ",
" %%% /// /// .... . *************$$$ ",
" %%% /// /// .... . ************ $$$ ",
" %%% /// /// ............. **** $$$ ",
" %%% //// /// ............ * $$$ ",
" %%% /// /// .... *************$$$ ",
" %%% /// /// .... ************ $$$ ",
" %%% /// /// ............. *** $$$ ",
" %%% //// /// ............ $$$ ",
" %%% //// //// ........... $$$ ",
" ///// ////// 111 ",
" ///// ////// . . 111 ",
" /////////// 1111111111111 ",
" //////// 1111111111111 ",
" ///// 1111111111111 ",
" ////// 1111111111111 ",
" ",
" ",
" ",

View file

@ -34,76 +34,76 @@
" !!!!!!!!!!!! !!!!!!!!!! !!!!!!!! !!! ",
" !!!!!! !!!!!! !!!!! !!!!!! !!!!!!!!!!! !!!!! ",
" !!!!!! !!!!! !!!!!! !!!!! !!!!!! !!!!!! !!!!!! ",
" !!!!!! !!!!! !!!!!! !!!!!! !!!!!! !!!!!! !!!!! ",
" !!!!!! !!!!!! !!!!!! !!!!!! !!!!! !!!!!!! !!!!!! ",
" ! !!!!! !!!!!! !!!!!!!!!!!! !!!!!!!!!!! ",
" !!!!!!!!! !!!!!!!!!!! !!!!!!! ",
" # !!!!!!! # !!!!!! !!!!! ",
" !!!!! !!!!! !!!!!! !!!!!! !!!!!! !!!!!! !!!!! ",
" !!!! !!!!!! !!!!!! !!!!!! !!!!! !!!!! !!!!!! ",
" ! !!!!! !!!!!! !!!!!!!!!!! !!!!!!!!!!! ",
" !!!!!!!!! !!!!!!!!! !!!!!!! ",
" ## !!!!!!! # !!!!!! !!!!! ",
" #### !!!!! #### !!! ## !!! $$$ ",
" ####### !!! ###### ! #### # $$$ ",
" ####### ! ###### ! #### # # $$$ ",
" ########## ######### ####### ### $$$ ",
" ####### ##### ###### ##### ######### ##### $$$ ",
" ###### ###### ###### ##### ###### ##### ##### $$$ ",
" ###### ###### ##### ###### ##### ####### ###### $$$ ",
" %%%%###### ##### ###### ###### ##### ######## ###### $$$ ",
" %%%% # # ##### ##### ##### ###### ########## $$$ ",
" %%%% ############ ############# ######## $$$ ",
" ###### ###### ###### ##### ############ ##### $$$ ",
" ##### ###### ##### ###### ##### ###### ###### $$$ ",
" %%%%#### ##### ###### ###### ##### ###### ###### $$$ ",
" %%%% # ##### ##### ##### ###### ########## $$$ ",
" %%%% ############ ########### ######## $$$ ",
" %%%% ######### ######## ##### $$$ ",
" %%%% ###### ###### ## $$$ ",
" %%%% ##### ### && $$$ ",
" %%%% &&&& ##&#&&& &&&&&& &&&&&&& $$$ ",
" %%%% #### ### && $$$ ",
" %%%% &&&& ##&&&&& &&&&&& &&&&&&& $$$ ",
" %%%% &&&&&&&& &&&&&&&& &&&&&&&& &&&&&&&&&& $$$ ",
" %%%% &&&&&&&&& &&&&&&&&&& &&&&&&&&&&& &&&&&&&&&&&& $$$ ",
" %%%% &&&&&&&&&&&& &&&&&& &&&&& &&&&&& &&&& &&&&&& &&&& & $$$ ",
" %%%% &&&&& &&&& &&&&&& &&&& &&&&& &&&& &&&&& &&&&&&&&& $$$ ",
" %%%% &&& & &&&&&&&&&& &&&&&&&&&&& &&&&&&&&&& &&&&&&&& $$$ ",
" %%%% & &&&&&&&&& & &&&&&&&& &&&&&&&& &&&&&& $$$ ",
" %%%% &&& &&&&&&&&&& &&&&&&&&&& &&&&&&&&&& &&&&&&&& $$$ ",
" %%%% & &&&&&&&&& &&&&&&&& &&&&&&&& &&&&&& $$$ ",
" %%%% &&&&&&& &&&&&& &&&&& &&&& $$$ ",
" %%%% &&& & ''''' $$$ ",
" %%%% &&& & & ''''' $$$ ",
" %%%% ''''' $$$ ",
" %%%% ''''' $$$$$ ",
" %%%% ''''''''''''' $$$$ ",
" %%%% (( ((((( ((((( ((((((( ''''''''''''' $$$ ",
" %%%% ''''' $$$ ",
" %%%% ''''''''''''' $$$ ",
" %%%% (( ( ((((( ((((( ((((((( ''''''''''''' $$$ ",
" %%%% ((((((( (((((((( (((((((( ((((((((( ''''''''''''' $$$ ",
" %%%% ((((((((( (((((((((( ((((((((((( ((((((((((( $$$ ",
" %%%% ((((((((((( (((((( (((( (((((( ((((( (((((( (((( $$$ ",
" %%%%((((((( ((((( (((((( (((( ((((( ((((( ((((( (((( (( $$$ ",
" %%%% ((( ( ((((( ((((( ((((((((((( (((((((((( ((((((((( $$$ ",
" %%%% ( ((((((((() ((((((((((( (((((((( (((((((( $$$ ",
" %%%%(((((( ((((( (((((( (((( ( ((((( ((((( ((((( (((( (( $$$ ",
" %%%% ((( ((((( ((((( (((((((((( (((((((((( ((((((((( $$$ ",
" %%%% ( ((((((((() ((((((((( (((((((( (((((((( $$$ ",
" %%%% ((((((()) ((((((( ((((( *** (((( $$$ ",
" %%% (((( )))) ++++ (( (****************** $$$ ",
" %%% (((( )))) ++++ (( ****************** $$$ ",
" %%% )))))) ++++ ,,,, ******************** $$$ ",
" %%% )))))) +++ ,,, --------------- ********************* $$$ ",
" %%% ))))) +++ ,,, --------------- ** ***** $$$ ",
" %%%%% )))))) +++ ,,, --------------- * **** $$$ ",
" %%%% )))))) +++ ,,, .............. **** $$$ ",
" %%% ))))) +++ ,,, --------------- * ***** $$$ ",
" %%% )))))) +++ ,,, --------------- **** $$$ ",
" %%% )))))) +++ ,,, .............. **** $$$ ",
" %%% ))))) ++++ ,,, ...................... *** $$$ ",
" %%% )))))) ++++ ,,,, ....................... *** $$$ ",
" %%% )))))) +++ ,,,, ....................... *** $$$ ",
" %%% ))))) /////// +++ ,,, .... *** $$$ ",
" %%% )))))) //////////// +++ ,,, ..... *** $$$ ",
" %%% )))))) //////////// +++ ,,, ... *** $$$ ",
" %%% ))))) ///////////////+++ ,,, ... *** $$$ ",
" %%% ))))) ////// ///////++++,,, ... 000000000000000 *** $$$ ",
" %%%))))))) ///// ///+++,,,, ... 000000000000000 **** $$$ ",
" %%% ))) ) ///// //// ,,,, ... 000000000000000 **** $$$ ",
" %%%)))))) ///// ///+++,,,, ... 000000000000000 **** $$$ ",
" %%% ))) ///// //// ,,,, ... 000000000000000 **** $$$ ",
" %%% )) ///// ////,,,, ... *** $$$ ",
" %%% //// /////,, ... **** **** $$$ ",
" %%% /// / //// ... *********************** $$$ ",
" %%% //// /////,, ... **** * * **** $$$ ",
" %%% /// //// ... *********************** $$$ ",
" %%% /// /// ... ********************** $$$ ",
" %%% /// /// ... ********************* $$$$$ ",
" %%% /// /// .... $$$$ ",
" %%% //// /// ..... * $$$ ",
" %%% //// /// ........................ $$$ ",
" %%% /// /// ... ********************* $$$ ",
" %%% /// /// .... $$$ ",
" %%% //// /// ...... $$$ ",
" %%% //// /// ....................... $$$ ",
" %%% //// //// ...................... $$$ ",
" %%% //// //// ..................... $$$ ",
" %%% //// /// .................. $$$ ",
" //// //// $$$ ",
" //// ////// ",
" //// ////// ",
" ////////// ///// 11111111111111111111 ",
" //// / ////// ",
" ////////// ///// 111111111111111111111 ",
" ////////////// 11111111111111111111111111 ",
" //////////// 11111111111111111111111111 ",
" // //// 11111111111111111111 ",
" //// 11111111111111111111 ",
" ",
" ",
" ",

View file

@ -38,114 +38,114 @@
" !!!!!!!!!!! !!!!!!! !!!!! ! ",
" !!!!!! !!!!! !!!!!!!!!! !!!!!!!! !! ",
" !!!!!! !!!!! !!!!! !!!!!! !!!!!!!!!!! !!!!! ",
" !!!!!! !!!!!! !!!!!! !!!!!! !!!!!! !!!!! !!!!!! ",
" !!!!!! !!!!!! !!!!!! !!!!!!! !!!!!! !!!!! !!!!!! ",
" !!!!!! !!!!! !!!!!! !!!!! !!!!! !!!!!! !!!!! ",
" !!!!!!! !!!!! !!!!!! !!!!! !!!!!! !!!!!! !!!!!! ",
" !!!!!! !!!!!! !!!!!! !!!!!! !!!!!!!! !!!!! !!!!!! ",
" !!!!!! ! !!!!!! !!!!! !!!!!! !!!!! !!!!! !!!!! ",
" !!! ! !!!!! !!!!!!! !!!!!! !!!!!! !!!!!! !!!!!! ",
" !!!!! !!!!!! ! ! !!!!!! !!!!!! !!!!!! !!!!!! ",
" !!!!!! !!!!! !!!!!! !!!!!! !!!!!! !!!!! !!!!!! ",
" !!!!! !!!!!! !!!!! !!!!!! !!!!! !!!!! !!!!! ",
" !!! !!!!! !!!!!! !!!!! !!!!!! !!!!!! !!!!!! ",
" !!!!! !!!!!! !!!!!! !!!!!! !!!!!! !!!!!! ",
" !!!!! !!!!!! !!!!!! !!!!! !!!!!!!!!! ",
" !!!!!!!!!!! !!!!!!!!! !!!!!!!! ",
" !!!!!!! !!!!!! !!!!!! ",
" ## !!!!! # !!!! ! !! ",
" ##### !!! #### ! # $$$$ ",
" !!!!!!!!!!!! !!!!!!!!! !!!!!!!! ",
" !!!!!!! !!!!!! !!!!! ",
" ## ! !!!!! # !!!! ! !! ",
" ##### !!! #### # ! # $$$$ ",
" ######## ###### ### $$$$ ",
" ########## ######### ##### ## $$$$ ",
" ###### ###### ###### ##### ######### #### $$$$ ",
" ###### ###### ############ ######### #### $$$$ ",
" ###### ###### ###### ##### ########### ###### $$$$ ",
" ###### ##### ###### ###### ##### ##### ###### $$$$ ",
" ####### ##### ###### ###### ##### ###### ##### $$$$ ",
" ###### ###### ##### ##### ###### ##### ###### $$$$ ",
" ##### ###### ###### ##### ##### ###### ###### $$$$ ",
" %%% ### # ###### ###### ####### ##### # ###### ###### $$$$ ",
" %%% ####### ###### # # ##### ###### ##### ###### $$$$ ",
" %%% ### ##### ###### ###### ##### ###### # ###### $$$$ ",
" %%% ##### ###### ##### ###### ##### ###### $$$$ ",
" %%% ###### ###### ##### ###### ########## $$$$ ",
" %%% ##### ##### ###### ##### ######## $$$$ ",
" %%%%% ########### ########## ###### $$$$ ",
" %%%%% ######### ####### ## $$$$ ",
" %%% ###### ##### ###### ##### ######## $$$$ ",
" %%% ########### ########## ##### $$$$ ",
" %%% ######### ####### ## $$$$ ",
" %%% ###### #### $$$$ ",
" %%% ### ## $$$$ ",
" %%% &&&&& $$$$ ",
" %%% && &&&&& &&&&&&&& &&&&&&&&& $$$$ ",
" %%% &&&&&&&& &&&&&&&&& &&&&&&&&&&& &&&&&&&&&&& $$$$ ",
" %%% &&&&&&&&&& &&&&&&&&&&&& &&&&&&&&&&&&& &&&&&&&&&&&&&& $$$$ ",
" %%% &&&&&&&&&&&&& &&&&&&& &&&&& &&&&&& &&&&& &&&&&& & &&&&& $$$$ ",
" %%% &&&&&& &&&& &&&&&& &&&& &&&&&& &&&& &&&&& & &&&& $$$$$ ",
" %%% &&&&& &&&& &&&&& &&&& &&&&& &&&&&& &&&&& &&&& & $$$$ ",
" %%% &&&&&& &&&&& &&&&& &&&& &&&&& &&&& &&&&&& &&&& &&&& $$$$ ",
" %%% &&&&&&&&&&&&& &&&&&&& &&&&& &&&&&& &&&&& &&&&&& &&&&& $$$$ ",
" %%% &&&&&& &&&& &&&&&& &&&& &&&&&& &&&& &&&&& &&&& $$$$ ",
" %%% &&&&& &&&& &&&&& &&&& &&&&& &&&& &&&&& &&&& & $$$$ ",
" %%% &&&&& &&&&& &&&&& &&&& &&&&& &&&& &&&&&& &&&& &&&& $$$$ ",
" %%% &&& &&&&& &&&&&& &&&&& &&&&&& &&&&&&&&&&&&& &&&&&&&&&&&& $$$$ ",
" %%% & &&&&&&&&&&&& &&&&&&&&&&& &&&&&&&&&& &&&&&&&&& $$$$ ",
" %%% &&&&&&&&&& &&&&&&&&& &&&&&&&& &&&&&& $$$$ ",
" %%% &&&&&&& & &&&&&& &&& & $$$$ ",
" %%% && && $$$$ ",
" %%% '''''' $$$$ ",
" %%% &&&&&&&&& &&&&&&&&& &&&&&&&& &&&&&& $$$$ ",
" %%% &&&&&&& &&&&&& &&& & $$$$ ",
" %%% && $$$$ ",
" %%% '''''' $$$$ ",
" %%% '''''' $$$$ ",
" %%% '''''' $$$$ ",
" %%% ' ' '''''' $$$$ ",
" %%% ''''''''''''''''''' $$$$ ",
" %%% ''''''''''''''''''' $$$$ ",
" %%% ((( (((((( ((((((( ''''''''''''''''''' $$$$ ",
" %%% ((((((( (((((((( ((((((((( ((((((((((( '' $$$$ ",
" %%% (((((((((( ((((((((((( (((((((((((( ((((((((((((( ' $$$$ ",
" %%%%% ((((((((((((( ((((((((((((( ((((((( ((((( (((((( ( (((( $$$$ ",
" %%% ((((((( ((((( (((((( ((((( ((((( (((( ((((( ( (((( $$$$ ",
" %%% ( ''''''''''''''''''' $$$$ ",
" %%% ( ((( (((((( ((((((( ''''''''''''''''''' $$$$ ",
" %%% ((((((( (((((((( ((((((((( ((((((((((( $$$$ ",
" %%% (((((((((( ((((((((((( (((((((((((( ((((((((((((( $$$$ ",
" %%% ((((((((((((( ((((((((((((( ((((((( ((((( (((((( (((( $$$$ ",
" %%% ((((((( ((((( (((((( ((((( ((((( (((( ((((( (((( $$$$ ",
" %%% ((((( (((( (((((( ((((( (((((( ((((( ((((( (((( ( $$$$ ",
" %%% (((((( (((( ((((( (((( ((((( ( (((( (((((( ((((( ((( $$$$ ",
" %%% (((( ( (((( ((((( (((( ((((( ((((( (((((( (((((((((((( $$$$ ",
" %%% ((((( (((( ((((( (((( ((((( (((( (((((( ((((( ((( $$$$ ",
" %%% (((( (((( ((((( (((( ((((( ((((( (((((( (((((((((((( $$$$ ",
" %%% (( (((((( (((((( ((((((((((( (((((((((( (((((((((( $$$$ ",
" %%% ((((((((((( ((((((((( (((((((( ((((((( $$$$ ",
" %%% ((((((((( )) (((((( ((((( (( $$$$ ",
" %%% (((( ()))) *** (( ( +++++++ $$$$ ",
" %%% (((((((( )) (((((( ((((( (( $$$$ ",
" %%% (((( )))) *** ( +++++++ $$$$ ",
" %%% ))))) **** +++++++++++++++++++++++++++ $$$$ ",
" %%% )))))) **** ,,, +++++++++++++++++++++++++++++ $$$$ ",
" %%% ))))) **** ,,,, -- +++++++++++++++++++++++++++++ $$$$ ",
" %%% ))))) *** ,,,, ---------------------- + +++++++++ $$$$$ ",
" %%% ))))) *** ,,,, -- +++++++++++++++++++++++++++++ $$$$ ",
" %%% ))))) *** ,,,, ---------------------- +++++++++ $$$$ ",
" %%% )))))) *** ,,, ---------------------- +++++ $$$$ ",
" %%% ))))) *** ,,, ---------------------- ++++ $$$$ ",
" %%% ))))) **** ,,, ++++ $$$$ ",
" %%% )))))) **** ,,, - ++++ $$$ ",
" %%% )))))) **** ,,, ++++ $$$ ",
" %%% ))))) **** ,,, ........................ +++ $$$ ",
" %%% ))))) *** ,,,, ................................ +++ $$$ ",
" %%% )))))) *** ,,,, ................................ +++ $$$ ",
" %%% ))))) *** ,,, ................... +++ $$$ ",
" %%% )))))) *** ,,, .... . +++ $$$ ",
" %%% )))))) *** ,,, .... +++ $$$ ",
" %%% )))))) //// **** ,,, .... +++ $$$ ",
" %%% ))))) /////////// **** ,,, ... +++ $$$ ",
" %%% )))))) ///////////////// *** ,,,, ... +++ $$$ ",
" %%%%% ))))))) //////////////////// *** ,,,, ... +++ $$$ ",
" %%%% ))))) ) ////// / //////// *** ,,,, .... +++ $$$ ",
" %%% )))))) ///// / //// *** ,,, .... 00000000000000000000000 ++++ $$$ ",
" %%% )))))) //////////////////// *** ,,,, ... +++ $$$ ",
" %%% ))))) ////// / //////// *** ,,,, .... 0 +++ $$$ ",
" %%% )))))) ///// //// *** ,,, .... 00000000000000000000000 ++++ $$$ ",
" %%% )))))) ////// ////*** ,,, .... 00000000000000000000000 ++++ $$$ ",
" %%% ))))) ////// ///// ,,,,, ... 00000000000000000000000 +++ $$$ ",
" %%% ))))) ////// ///// ,,, ... 00000000000000000000000 +++ $$$ ",
" %%% ))) ///// //// ,,, ... +++ $$$ ",
" %%% )) //// //// ,,,, ... 0 +++ $$$ ",
" %%% )) //// //// ,,,, ... +++ $$$ ",
" %%% /// //// ,,,, ... ++++ $$$ ",
" %%% //// ///// ... ++++ $$$ ",
" %%% //// ///// ... + ++++ $$$ ",
" %%% //// //// ... ++++++++++++++++++++++++++++++++++ $$$ ",
" %%% /// /// .... +++++++++++++++++++++++++++++++++ $$$ ",
" %%% /// //// .... +++++++++++++++++++++++++++++++++ $$$ ",
" %%% /// /// ... + +++++++++++ $$$ ",
" %%% /// /// .... + $$$ ",
" %%% /// / /// .... $$$ ",
" %%% //// /// ..... $$$$ ",
" %%% //// /// ..... $$$$$ ",
" %%% /// //// ...... $$$ ",
" %%% /// /// ... +++++++++++ $$$ ",
" %%% /// /// ... $$$ ",
" %%% /// /// .... $$$ ",
" %%% //// /// ..... $$$ ",
" %%% //// /// ..... $$$ ",
" %%% /// //// ...... . . $$$ ",
" %%% //// //// ............................... $$$ ",
" %%% //// /// .............................. $$$ ",
" %%% //// /// ............................ $$$ ",
" %%% //// /// .. $$$ ",
" ///// //// . $$$ ",
" / //// ///// ",
" //// ////// ",
" %%% //// /// $$$ ",
" //// //// $$$ ",
" //// ///// ",
" ///// ////// ",
" //// ////// ",
" ///// ///// ",
" //////// ////// ",
" ///////////// ////// 11111111111111111111111111111111111111 ",
" /////////////////// 11111111111111111111111111111111111111 ",
" //////////// / 11111111111111111111111111111111111111 ",
" ///////////////// 11111111111111111111111111111111111111 ",
" //////////// 11111111111111111111111111111111111111 ",
" //// 11111111111111 ",
" 1 ",
" ",
" ",
" ",
" ",

View file

@ -42,151 +42,151 @@
" !!!!!!!!! !!!!! !!! ",
" !!!!!! !!!!! !!!!!!! !!!!! ",
" !!!!!! !!!!!! !!!!!!!!!!! !!!!!!!! ! ",
" !!!!!! !!!!!! !!!!!! !!!!! !!!!!!!!!! !!!! ",
" !!!!!! ! !!!!! !!!!!! !!!!! !!!!! !!!!!! !!!!!! ",
" !!!!!! !!!!!! !!!!!! !!!!!! !!!!!! !!!!! !!!!! ",
" !!!!!!! !!!!!! !!!!! !!!!!! !!!!!! !!!!!! !!!!!! ",
" !!!!!! !!!!! !!!!!! !!!!! !!!!! !! !!!!! !!!!!! ",
" !!!!!!! !!!!! !!!!!!!! !!!!! !!!!!! !!!!!! !!!!! ",
" !!!!!! !!!!! !!!!!! !!!!!! !!!!!!!!!! !!!! ",
" !!!!!! !!!!! !!!!!! !!!!! !!!!! !!!!!! !!!!!! ",
" !!!!!! !!!!!! !!!!!! !!!!!!! !!!!!! !!!!!! !!!!! ",
" !!!!!!! !!!!!! !!!!! !!!!!! !!!!!! !!!!! !!!!!! ",
" !!!!!! !!!!! !!!!!! !!!!! !!!!! !!!!! !!!!!! ",
" !!!!!!! !!!!!! !!!!!! !!!!! !!!!!! !!!!!! !!!!! ",
" !!!!!! !!!!!! !!!!!! !!!!!! !!!!!! !!!!! !!!!!! ",
" !!!!!! !!!!!! !!!!!! !!!!!! !!!!! !!!!! !!!!!! ",
" !!!!!! !!!!! !!!!! !! !!!!! !!!!!! !!!!!! !!!!! ",
" ! ! !!!!! !!!!!! !!!!!! !!!!! !!!!!! !!!!!! ",
" !!!!!! !!!!! !!!!!! !!!!!!! !!!!! !!!!! ",
" !!!!!! !!!!!! !!!!! !!!!!!!! !!!!! !!!!!! ",
" !!!!! !!!!!! !!!!!! !!!!! !!!!! !!!!! !!!!!! ",
" !!!! !!!!! !!!!! !!!!! !!!!!! !!!!!! !!!!! ",
" ! !!!!! !!!!!! !!!!!! !!!!! !!!!!! !!!!!! ",
" !!!!!! !!!!! !!!!!! !!!!!! !!!!! !!!!! ",
" !!!!!! !!!!!! !!!!! !!!!!! !!!!! !!!!!! ",
" !!!!! !!!!!! !!!!!! !!!!! !!!!!!!!!!! ",
" !!!!!!!!!!! !!!!!!!!!! !!!!!!!!! ",
" !!!!!!!!! !!!!!!! !!!!! ! ",
" !!!!!!! !!!! !!! ",
" ### ! !!! # !! $$$ ",
" ##### ! #### $$$ ",
" ######## ####### ## $$$ ",
" !!!!!!!!!!! !!!!!!!!!! !!!!!!!! ",
" !!!!!!!!! !!!!!!! !!!!! ",
" !!!!!! !!!! !!! ",
" ### !!! # !! $$$ ",
" ##### ! ##### $$$ ",
" ######## ####### ## # $$$ ",
" ########### ########## ##### # $$$ ",
" ###### ###### ###### ##### ######## ### $$$ ",
" ####### ##### ##### ##### ########## ##### $$$ ",
" ###### ##### ###### ###### ##### ##### ##### $$$ ",
" ###### ####### ###### ###### ###### ####### ###### $$$ ",
" ###### # ###### ##### ##### ###### ## ###### ###### $$$ ",
" ###### ##### ####### ##### ##### ##### ##### $$$ ",
" ####### ##### ##### # ###### ##### ###### ###### $$$ ",
" ###### ###### ###### ###### ###### ###### ##### $$$ ",
" #### ##### ###### ####### ##### ##### ###### $$$ ",
" %%% ## # ##### ##### ###### ##### ###### ###### $$$ ",
" ###### ###### ###### ###### ###### ###### ###### $$$ ",
" ###### ###### ##### ##### ###### ###### ###### $$$ ",
" ###### ###### ###### ##### ##### ##### ##### $$$ ",
" ####### ##### ##### ###### ##### ###### ###### $$$ ",
" ###### ###### ###### ##### ###### ###### ##### $$$ ",
" #### ##### ###### ##### ##### ##### ###### $$$ ",
" %%% ## ##### ##### ###### ##### ###### ###### $$$ ",
" %%% ###### ###### ###### ###### ##### ##### $$$ ",
" %%% ###### ###### ##### ###### ###### ###### $$$ ",
" %%% ##### ###### ##### ##### ########### $$$ ",
" %%%%% ##### ###### ###### ###### ######## $$$ ",
" %%% ###### ##### ########### # ##### # $$$ ",
" %%% ##### ###### ####### ##### ####### $$$ ",
" %%% ###### ##### ########### ##### $$$ ",
" %%% ########### ######## ## $$$ ",
" %%% ######## ###### $$$ $ ",
" %%% ######## ###### $$$ ",
" %%% ##### #### $$$ ",
" %%% ### # $$$ ",
" %%% # $$$ ",
" %%% $$$ ",
" %%% &&&&&&& $$$ ",
" %%% &&&&&& &&&&&&&& &&&&&&&&&& $$$ ",
" %%% &&&&&&&& &&&&&&&&&& &&&&&&&&&&&& &&&&&&&&&&&&& $$$ ",
" %%% &&&&&&&&&&& &&&&&&&&&&&&& &&&&&&&&&&&&&& &&&&&&&& &&&&& $$$ ",
" %%% &&&&&&&&&&&&&& &&&&&&& &&&&&& &&&&&&& & &&&&& &&&&&& &&&&& $$$$ ",
" %%% &&&&&&& &&&&& &&&&&&& &&&&& &&&&&& & &&&&& &&&&& &&&&& $$$$ ",
" %%% &&&&&& &&&& &&&&&& &&&& &&&&& &&&&& &&&&& & &&&& $$$$ ",
" %%% &&&&&& &&&&& &&&&& & &&&&& &&&&&& &&&& &&&&&& &&&& $$$$ ",
" %%% &&&&& &&&& &&&&& &&&& &&&&& &&&& &&&&& &&&& && $$$$ ",
" %%% &&&&&& &&&& &&&&& &&&& &&&&& &&&&& &&&&& &&&&& &&&&& $$$$ ",
" %%% &&&&&&&&&&&&&& &&&&&&& &&&&&& &&&&&&& &&&&& &&&&&& &&&&& $$$$ ",
" %%% &&&&&&& &&&&& &&&&&&& &&&&& &&&&&& &&&&& &&&&& &&&&& $$$$ ",
" %%% &&&&&& &&&& &&&&&& &&&& &&&&& &&&&& &&&&& &&&& $$$$ ",
" %%% &&&&&& &&&&& &&&&& &&&&& &&&&&& &&&& &&&&&& &&&& $$$$ ",
" %%% &&&&& &&&& &&&&& &&&&& &&&&& &&&& &&&&& &&&& && $$$$ ",
" %%% &&&&& &&&& &&&&& &&&& &&&&& &&&&& &&&&& &&&&& &&&&& $$$$ ",
" %%% &&& &&&& &&&&&& &&&& &&&&& &&&&& &&&&&& &&&&&&&&&&&&&& $$$$ ",
" %%% & &&&&& &&&&&&& &&&&&& &&&&&& &&&&&&&&&&&&& &&&&&&&&&&& $$$$ ",
" %%% &&&&&&&&&&&&&& &&&&&&&&&&&& &&&&&&&&&& &&&&&&&&& $$$$ ",
" %%% & &&&&&&&&&&& &&&&&&&& &&&&&& &&&& $$$$ ",
" %%% &&&&&&& &&&& & $$$$ ",
" %%% && $$$$ ",
" %%% & $$$$ ",
" %%% &&&&&&&&&&&&& &&&&&&&&&&&& &&&&&&&&&& &&&&&&&&& $$$$ ",
" %%% &&&&&&&&&&& &&&&&&&& &&&&&& &&&& $$$$ ",
" %%% &&&&&&& &&&& & & $$$$ ",
" %%% &&& $$$$ ",
" %%% $$$$ ",
" %%%%% '''''''' $$$$ ",
" %%%% '''''''' $$$$ $ ",
" %%% $$$$ ",
" %%% '''''''' $$$$ ",
" %%% '''''''' $$$$ ",
" %%% '''''''' $$$$ ",
" %%% ''' $$$$ ",
" %%% ''''''''''''''''''''''''' $$$$ ",
" %%% ''''''''''''''''''''''''' $$$$ ",
" %%% (( ''''''''''''''''''''''''' $$$$ ",
" %%% ((((((( (((((((( ''''''''''''''''''''''''' $$$$ ",
" %%% ((((((( ((((((((( ''''''''''''''''''''''''' $$$$ ",
" %%% (((((( (((((((( (((((((((( (((((((((((( $$$$ ",
" %%% (((((((((( (((((((((((( ((((((((((((( (((((((((((((( $$$$ ",
" %%% (((((((((((((( ((((((((((((((( (((((((( ((((((( ((((((( (((( $$$$ ",
" %%% ((((((( (((((( ((((((( (((( (((((( (( (((( (((((( ((((( $$$$ ",
" %%% ((((((( (((( (((((((( (((( (((((( (((( ((((( (((((( $$$$ ",
" %%% (((((( (((( (((((( ( (((( ((((( ((((( ((((( ((((( $$$$ ",
" %%% (((((((((( (((((((((((( ((((((((((((( ((((((((((((((( $$$$ ",
" %%% (((((((((((((( (((((((((((((((( (((((((( ((((( ((((((( (((( $$$$ ",
" %%% ((((((( (((((( ((((((( (((( (((((( (((( (((((( (((( $$$$ ",
" %%% ((((((( (((( (((((( (((( (((((( (((( ((((( (((( $$$$ ",
" %%% (((((( (((( (((((( (((( ((((( ((((( ((((( ((((( $$$$ ",
" %%% ((((( (((( ((((( (((( (((((( (((( (((((( (((( (( $$$$ ",
" %%% (((((( (((( ((((( (((( ((((( (((( ((((( (((( (((( $$$$ ",
" %%% (((( ( (((( (((((( (((( ((((( (((( (((((( ((((( (((((( $$$$ ",
" %%% ((((( (((( ((((( (((( ((((( (((( ((((( (((( (((( $$$$ ",
" %%% (((( (((( (((((( (((( ((((( (((( (((((( ((((( (((((( $$$$ ",
" %%% (( ((((( (((((( ((((( (((((( (((((((((((((( ((((((((((((( $$$$ ",
" %%% ((((((( (((((( (((((((((((( (((((((((((( ((((((((( $$$$ ",
" %%% (( ((((((((((( (((((((((( (((((((( ( (((((( $$$$ ",
" %%% ((((((((((((( (((((((((((( (((((((((((( ((((((((( $$$$ ",
" %%% ((((((((((( (((((((((( (((((((( (((((( $$$$ ",
" %%% (((((((( )) ((((((( ((( $$$$ ",
" %%%% (((( )))) *** (( $$$$ ",
" %%%% ))))) *** ( ++++++++++++ $$$$ ",
" %%%% (((( )))) *** ( $$$$ ",
" %%%% ))))) *** ++++++++++++ $$$$ ",
" %%%% )))))) *** ++++++++++++++++++++++++++++++++ $$$$ ",
" %%%% )))))) **** ,,, +++++++++++++++++++++++++++++++++++++ $$$$$ ",
" %%%% ))))) **** ,,, ++++++++++++++++++++++++++++++++++ $$$$ ",
" %%%% )))))) *** ,,, ------ + +++++++++++++++ $$$$ ",
" %%%% )))))) ***** ,,,, ----------------------------- + ++++++ $$$$ ",
" %%%% ))))) *** ,,,, ----------------------------- + ++++ $$$$ ",
" %%%% )))))) **** ,,, +++++++++++++++++++++++++++++++++++++ $$$$ ",
" %%%% ))))) **** ,,, +++++++++++++++++++++++++++++++++ $$$$ ",
" %%%% )))))) *** ,,, ------ +++++++++++++++ $$$$ ",
" %%%% )))))) *** ,,,, ----------------------------- ++++++ $$$$ ",
" %%%% ))))) *** ,,,, ----------------------------- + ++++ $$$$ ",
" %%%% )))))) *** ,,, ----------------------------- ++++ $$$$ ",
" %%%% )))))) **** ,,, ++++ $$$$ ",
" %%%% ))))) **** ,,, ++++ $$$$ ",
" %%%% )))))) *** ,,, ++++ $$$$ ",
" %%%% )))))) *** ,,, +++ $$$$ ",
" %%%% )))))) *** ,,,, ................................. +++ $$$$ ",
" %%%% )))))))) *** ,,,, .......................................... +++ $$$$ ",
" %%%% )))))) ) **** ,,, ........................................... +++ $$$$ ",
" %%%% ))))) **** ,,, ................. . +++ $$$$ ",
" %%%% )))))) *** ,,, ..... . +++ $$$$ ",
" %%%% ))))) *** ,,,, ................................. +++ $$$$ ",
" %%%% )))))) *** ,,,, .......................................... +++ $$$$ ",
" %%%% )))))) **** ,,, ........................................... +++ $$$$ ",
" %%%% ))))) **** ,,, ................. . +++ $$$$ ",
" %%%% )))))) *** ,,, ..... +++ $$$$ ",
" %%%% )))))) *** ,,, .... +++ $$$$ ",
" %%%% ))))) *** ,,,, ... +++ $$$$ ",
" %%%% )))))) //////// *** ,,,, ... +++ $$$$ ",
" %%%% )))))) /////////////// *** ,,,, .... +++ $$$$ ",
" %%%% ))))) ////////////////////// **** ,,, .... +++ $$$$ ",
" %%%% )))))) ////// ////////////// **** ,,, ... +++ $$$$ ",
" %%%% )))))) ////// ///////// *** ,,, .... ++++ $$$$ ",
" %%%% ))))) ///// / //// *** ,,, ..... ++++ $$$$ ",
" %%%% )))))) ////// ///// *** ,,,,, ... 00000000000000000000000000000 ++++ $$$$ ",
" %%%% )))))) ////// ///////// *** ,,, ... ++++ $$$$ ",
" %%%% ))))) ///// / //// *** ,,, ... 0 ++++ $$$$ ",
" %%%% )))))) ////// ///// *** ,,,, ... 00000000000000000000000000000 ++++ $$$$ ",
" %%%% )))))) ////// //// *** ,,,, ... 00000000000000000000000000000 +++ $$$$ ",
" %%%% ))))) ///// //// ,,, ... 00000000000000000000000000000 +++ $$$$ ",
" %%%% ))))))) ////// //// ,,, ... +++ $$$$ ",
" %%%% ))) ) ////// ///// ,,, ... 0 +++ $$$$ ",
" %%%%% ) ///// //// ,,, ... ++++ $$$$ ",
" %%% /// / //// ,,, ... ++++ $$$$ ",
" %%%% ))))) ////// //// ,,, ... +++ $$$$ ",
" %%%% ))) ////// ///// ,,, ... +++ $$$$ ",
" %%% ) //// //// ,,, ... ++++ $$$$ ",
" %%% /// //// ,,, ... ++++ $$$$ ",
" %%% /// //// ,,, ... +++ $$$$ ",
" %%% /// ///// ... ++++ $$$$ ",
" %%% /// //// ... ++++++++++++++++ ++++ $$$$ ",
" %%% /// //// ... ++++++++++++++++ + ++++ $$$$ ",
" %%% //// /// ... ++++++++++++++++++++++++++++++++++++++++++++ $$$$ ",
" %%% //// /// ..... +++++++++++++++++++++++++++++++++++++++++++ $$$$ ",
" %%% / /// //// ... + +++++++++++++++++++++++++++++++++ $$$$ ",
" %%% ///// //// ... + ++ $$$$ ",
" %%% /// //// .... + $$$$ ",
" %%% //// /// ... +++++++++++++++++++++++++++++++++++++++++++ $$$$ ",
" %%% /// //// ... +++++++++++++++++++++++++++++++++ $$$$ ",
" %%% /// //// ... $$$$ ",
" %%% /// //// .... $$$$ ",
" %%% /// /// .... $$$$ ",
" %%% //// /// .... $$$$ ",
" %%% //// /// ..... $$$$ ",
" %%% /// /// .... $$$$ ",
" %%% /// //// ..... $$$$ ",
" %%% /// //// ...... $$$$ ",
" %%% /// //// ...... . $$$$ ",
" %%% /// /// .......................................... $$$$ ",
" %%% //// /// ........................................ $$$$ ",
" %%% //// /// ...................................... $$$$$ ",
" %%% //// /// . $$$$ ",
" %%% //// /// . $$$$ ",
" %%% //// /// ...................................... $$$$ ",
" %%% //// /// $$$$ ",
" %%% //// /// $$$$ ",
" //// //// $$$$ ",
" //// ///// $$$$ ",
" ///// ///// $$$$ ",
" ///// ///// ",
" //// ////// ",
" //// ////// ",
" //// ////// ",
" ///// ////// / ",
" ///// ////// ",
" //// ///// ",
" ///// ////// ",
" ////// / ////// ",
" /////////// ///// ",
" /////////////////////// 11111111111111111111111111111111111111111111111111 ",
" //////////////////// 11111111111111111111111111111111111111111111111111 ",
" / //////////// 11111111111111111111111111111111111111111111111111 ",
" //// 1111111111 11 ",
" 1 1 ",
" //////////// 11111111111111111111111111111111111111111111111111 ",
" //// 1111111111 ",
" ",
" ",
" ",
" ",

View file

@ -1,12 +1,12 @@
{
"keys": [
"",
"2",
"1",
"3",
"5",
"7",
"9",
"1",
"3",
"2",
"4",
"6",
"8",
@ -23,15 +23,15 @@
" ",
" ",
" ",
" !!! !! ! # $ $ % ",
"! ! !!! ### $$$ %%% ",
"! ! # $ % % & ",
"!!! ## $$$ %%% &&& ",
" ",
" & ! ' ( # ) $ * % +",
" ! ' # ( $ ) % * & +",
" ",
" ",
"& ) ** ++",
"& &&&&&& )) ** ++",
"& &&&&&&& ",
" '' ( ) ** ++",
" ' (( )) ** ++",
" ",
" ",
" ",
" ",

View file

@ -1,15 +1,15 @@
{
"keys": [
"",
"2",
"4",
"5",
"6",
"7",
"8",
"9",
"2",
"1",
"3",
"6",
"5",
"10"
],
"data": {},
@ -23,15 +23,15 @@
" ",
" ",
" ",
" !!!!!! ! # # $ % & & '' ",
" !! ! !!!! ## $$ %%% && ' ",
" !!!!!!!!! # $ % % && ",
" '' !! ! !! ###$$$ %% & ",
" ",
" ( ! ) # $ * % & ' + ",
" ( ' ) ! * # $ % & + ",
" ",
" ",
" * * + +",
" ( ((( **** * * *** +++++ +",
" ( (( ((( ******* ***** +++++ + ",
" ) ) +++",
" ))))) ) )))) ++ ",
" ) ))))) )) )))) ",
" ",
" ",
" ",

View file

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

View file

@ -1,15 +1,15 @@
{
"keys": [
"",
"2",
"1",
"3",
"5",
"7",
"9",
"2",
"4",
"6",
"8",
"9",
"1",
"4",
"7",
"10"
],
"data": {},
@ -23,15 +23,15 @@
" ",
" ",
" ",
" !! !!! !! # $$$ $$$$ % & && & &&& '' ",
" !!!! !!!! ## $ $ $$ %% &&& & && & ' ",
" !!! !!!! ### #### # $$$$$$$$ % %%% %%%%%% & &&& &&&& ",
" ! !! # ### $$ $ %%% % % % &&& & & & ",
" ",
" ( ! # ) $ % * & ' + ",
" ! ' # ( $ ) % * & + ",
" ",
" ",
" ( ) * * + + + ",
"((( ( ( ((( ))))) )))) **** * * *** ***** ++++ + ++",
"(( ( ((( ((( ))))) ) ))))) ******* **** * ** * +++++++ + ",
" ' ' ' ( ) ) ",
" ' ''' ' ''' ' ( ) ))) ) ) ) * ",
" ' '''''' ' '' '' ) ))))) )) )) ",
" ",
" ",
" ",

View file

@ -1,16 +1,16 @@
{
"keys": [
"",
"2",
"4",
"6",
"8",
"10",
"1",
"3",
"5",
"7",
"9"
"9",
"10",
"2",
"4",
"6",
"8"
],
"data": {},
"grid": [
@ -23,16 +23,16 @@
" ",
" ",
" ",
" !!!! !!!! ### ## ## $$$ $$$ %% %%% %%%% && &&&&&&",
" ! ! ! # # #### $$ $ $$$ %%%% %%%% % &&&& &&&&",
" !!!!! !! # ######## $$ $$$$ $ %%% %%% %%% &&& &&& & ' ''' ",
" !! ! ! ### # ## # $$ $ $$$ % % % %% & & && ''''' ",
" ",
" ' ! ( # ) $ * % + & ",
" ! ( # ) $ * % + & ' ",
" ",
" ",
" ( ( (( ) * + ",
"''' ' ' ''' (((( ( (( ((((((( ))))) ))))) *** * * ** *** +++ + ++++ ++ ",
"''' ' '' ''' ((((((( (( ((((((( ))))) ) )) )) ***** * **** * *** +++++ +++ ++ ",
" ",
" ( ( ) * + ",
" ( ((( ( (((( ( ))))) )))) ***** * * ++ + ++ + ++ ",
" ( ((((( (( ((( ))))) ) ))))) * ***** ** * ++++ + ++ +++ + ",
" + ",
" ",
" ",
" ",

View file

@ -3,14 +3,14 @@
"",
"2",
"4",
"7",
"9",
"6",
"8",
"10",
"1",
"3",
"5",
"6",
"8",
"10"
"7",
"9"
],
"data": {},
"grid": [
@ -23,16 +23,16 @@
" ",
" ",
" ",
" ! !!!! ! ## ####### $$$$$$ $ $ $ %%%%%% % % ",
" !!! !!!!! #### #### $ $$ $$$$ % %% % % ",
" ",
" & ! ' # ( ) $ * % + ",
" ! !!! !! ! ## #### # $$ $$$ $ %%% %%%%%% &&& &&& ",
" !! ! !!! #### ## # $$ $ $$$ % %%%%% & && ",
" % ",
" ' ! ( # ) $ * % + & ",
" ",
" ",
" & & ' ' ' ( ( ( ) * + + ",
" &&&& & &&& && ''''' ' ''' '''' (((( ( (( (( ))) ) ) ) **** *** ** +++ + + +++ ",
" &&&&&&& &&& && ''''' ' '''' '''' ((((((( (( ( (( ))))) )) )) ***** ** *** * +++++ + +++++ ",
" ** ",
" ' ( ( ( ) * + ",
" ''''' ' ' ''' ( ((( ( ( ((((( )) ) ) )) *** * * *** ***** +++++ +++ +++ ",
" '''' ' ''' ''' ( ((((( (( ((((( )))) ) ) ) )) ****** **** * ** * + +++++ +++ ++ ",
" ",
" ",
" ",
" ",

View file

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

View file

@ -31,18 +31,15 @@
" ",
" ",
" ! ",
" ! ",
" ",
" !! ! ! ! ",
" ! ! ! ",
" ",
" ",
" ! ",
" ",
" ! ",
" ",
" !!! ! ! ",
" ! ! ",
" ",
" ",
" ",
" !! ! ",
" !! ",
" ! ! ",
" ",
" ! ",
" !!! ",
@ -54,6 +51,9 @@
" ",
" ",
" ",
" ",
" ",
" ",
" "
]
}

View file

@ -5,11 +5,11 @@
"5",
"1",
"2",
"3",
"6",
"7",
"9",
"10",
"3",
"4"
],
"data": {},
@ -25,11 +25,11 @@
" ! ",
" ! ! ",
" ## ",
" $$$ % % #### & & ' ! ! ( (((( ) ",
" $ % % * + ## && ' ' ! ( ( ( )) ",
" $$ %% * ++ && '' !! (( (((( )) ",
" $ * ++++ ( ",
" *** ++ ",
" $$$ % % & #### ' ' ( ! ! ) )))) * ",
" $ % % & + ## '' ( ( ! ) ) ) ** ",
" $$ %% & ++ '' (( !! )) )))) ** ",
" $ & ++++ ) ",
" & & ++ ",
" ! ",
" ! ",
" ! ",

View file

@ -5,11 +5,11 @@
"5",
"1",
"2",
"3",
"6",
"7",
"9",
"10",
"3",
"4"
],
"data": {},
@ -25,11 +25,11 @@
" ! ",
" # ! ! ",
" ## ",
" $$$ %%% #### &&& ''' !!! ( (( ( ( ))) ",
" $ %% * + ### && '' ! ( (( ( ) ",
" $$ % * ++ & ' !! ( (( ( ) ",
" $ % * ++++ & ' ! ) ",
" *** ++ ",
" $$$ % % & #### ''' ((( !!! ) )) ) ) *** ",
" $ %% & + ### '' (( ! ) )) ) * ",
" $$ % & ++ ' ( !! ) )) ) * ",
" $ & ++++ ' ( ! * ",
" & & ++ ",
" ! ",
" ! ",
" ! ",

View file

@ -5,11 +5,11 @@
"5",
"1",
"2",
"3",
"6",
"7",
"9",
"10",
"3",
"4"
],
"data": {},
@ -25,11 +25,11 @@
" !! ",
" # ! ",
" ## ",
" $$$ %%% ##### &&& ''' ! (( ( ( )) ",
" $ %% * + ### && '' !! ( ( ( ) ",
" $$ % * ++ && '' !! (((( (( )) ",
" $ % * ++++ & ' ) ",
" *** ++ ",
" $$$ % % & ##### ''' ((( ! )) ) ) ** ",
" $ %% & + ### '' (( !! ) ) ) * ",
" $$ % & ++ '' (( !! )))) )) ** ",
" $ & ++++ ' ( * ",
" & & ++ ",
" !! ",
" ! ",
" !! ",

View file

@ -5,11 +5,11 @@
"5",
"1",
"2",
"3",
"6",
"7",
"9",
"10",
"3",
"4"
],
"data": {},
@ -25,11 +25,11 @@
" !! ",
" # ! ",
" ## ",
" $$ %%% ##### && '' ! ( (((( ) ",
" $ %% * + ### && ''' !! (( ( (( )) ",
" $$ % ** ++ && '' !! (( ( (( )) ",
" $ % * ++++ & ' ( ",
" *** + ",
" $$ % % & ##### '' (( ! ) )))) * ",
" $ %% & + ### '' ((( !! )) ) )) ** ",
" $$ && ++ '' (( !! )) ) )) ** ",
" $ & ++++ ' ( ) ",
" & & + ",
" !! ",
" ! ",
" !! ",

View file

@ -5,11 +5,11 @@
"5",
"1",
"2",
"3",
"6",
"7",
"9",
"10",
"3",
"4"
],
"data": {},
@ -25,11 +25,11 @@
" ! ",
" # ! ! ",
" ## ",
" $$ %%% #### & ' ! ! ( (((( ( ) ) ",
" $ %% * + ## &&& ''' ! ( ( ( ) ",
" $$ % ** ++ && '' !! (( (((( )) ",
" $ % * ++++ ( ",
" *** + ",
" $$ % % & #### ' ( ! ! ) )))) ) * * ",
" $ %% & + ## ''' ((( ! ) ) ) * ",
" $$ && ++ '' (( !! )) )))) ** ",
" $ & ++++ ) ",
" & & + ",
" ! ",
" ! ",
" !! ",

View file

@ -5,11 +5,11 @@
"5",
"1",
"2",
"3",
"6",
"7",
"9",
"10",
"3",
"4"
],
"data": {},
@ -25,11 +25,11 @@
" ! ",
" # ! ! ",
" ## ",
" $$ %%% #### & ' !!! ( ( (( ( ))) ",
" $ %% * + ## && ' ' ! ( (( ( ) ",
" $$ % ** + && '' ! (( ) ",
" $ % ** ++++ ! ) ",
" *** + + ",
" $$ % % & #### ' ( !!! ) ) )) ) *** ",
" $ %% & + ## '' ( ( ! ) )) ) * ",
" $$ && + '' (( ! )) * ",
" $ && ++++ ! * ",
" & & + + ",
" ! ! ",
" ! ",
" ! ",

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

Some files were not shown because too many files have changed in this diff Show more