view etc/xemacs-beta.xpm @ 872:79c6ff3eef26

[xemacs-hg @ 2002-06-20 21:18:01 by ben] font changes etc.; some 21.4 changes mule/mule-msw-init-late.el: Specify charset->windows-registry conversion. mule/mule-x-init.el: Delete extra mule font additions here. Put them in faces.c. cl-macs.el: Document better. font-lock.el: Move Lisp function regexp to lisp-mode.el. lisp-mode.el: Various indentation fixes: Handle flet functions better. Handle argument lists in defuns and flets. Handle quoted lists, e.g. property lists -- don't indent like function calls. Distinguish between lambdas and other lists. lisp-mode.el: Handle this form. faces.el, font-menu.el, font.el, gtk-faces.el, msw-faces.el, msw-font-menu.el, x-faces.el, x-init.el: Major overhaul of face-handling code: -- Fix lots of bogus code in msw-faces.el, msw-font-menu.el, font-menu.el that was "truenaming" font specs -- i.e. in the process of frobbing a particular field in a general user-specified font spec with wildcarded fields, sticking in particular values for all the remaining wildcarded fields. This bug was rampant everywhere except in x-faces.el (the oldest and only correctly written code). This also means that we need to work with font names at all times and not font instances, because a font instance is essentially a truenamed font. -- Total rewrite of extremely junky code in msw-faces.el. Work with names as well as font instances, and return names; stop truenaming when canonicalizing and frobbing; fix handling of the combined style field, i.e. weight/slant (also fixed in font.el). -- Totally rewrite the frobbing functions in faces.el. This time, we frob all the instantiators rather than just computing a single instance value and working backwards. That way, e.g., `bold' will work for all charsets that have bold available, rather than only for whatever charset was part of the computed font instance (another example of the truename virus). Also fix up code to look at the fallbacks (all of them) when no global value present, so we don't need to put something in the global value. Intelligently handle a request to frob a buffer locale, rather than signalling an error. When frobbing instantiators, try hard to figure out what device type is associated with them, and frob each according to its own proper device type. Correctly handle inheritance vectors given as instantiators. Preserve existing tags when putting back frobbed instantiators. Extract out general specifier-frobbing code into specifier.el. Document everything cleanly. Do lots of other things better, etc. -- Don't duplicatively set a global specification for the default font -- it's already in the fallback and we no longer need a default global specification present. Delete various code in x-faces.el and msw-faces.el that duplicated the lists of fonts in faces.c. -- init-global-faces was not being called at all under MS Windows! Major bogosity. That caused device-specific values to get stuck into all the fonts, making it very hard to change them -- setting global specs caused nothing to happen. -- Correct weight names in font.el. -- Lots more font fixups in objects*.c. Printer.el: Warning fix. specifier.el: Add more args to map-specifier. Add various "heuristic" specifier functions to aid in creation of specifier-munging code such as in faces.el. subr.el: New functions. lwlib.c: Fix warning. config.inc.samp: Clean up, add args to control fastcall (not yet supported! the changes needed are in another ws of mine), profile support, vc6 support, union-type. xemacs.dsp, xemacs.mak: Semi-major overhaul. Fix bug where dump-id was always getting recomputed, forcing a redump even when nothing changed. Add support for fastcall. Support edit-and-continue (on by default) with vc6. Use incremental linking when doing a debug compilation. Add support for profiling. Consolidate the various debug flags. Partial support for "batch-compiling" -- compiling many files on a single invocation of the compiler. Doesn't seem to help that much for me, so it's not finished or enabled by default. Remove HAVE_MSW_C_DIRED, we always do. Correct some sloppy use of directories. s/cygwin32.h: Allow pdump to work under Cygwin (mmap is broken, so need to undefine HAVE_MMAP). s/win32-common.h, s/windowsnt.h: Support for fastcall. Add WIN32_ANY for identifying all Win32 variants (Cygwin, native, MinGW). Both of these are properly used in another ws. alloc.c, balloon-x.c, buffer.c, bytecode.c, callint.c, cm.c, cmdloop.c, cmds.c, console-gtk.c, console-gtk.h, console-msw.c, console-msw.h, console-stream.c, console-stream.h, console-tty.c, console-tty.h, console-x.c, console-x.h, console.c, console.h, device-gtk.c, device-msw.c, device-tty.c, device-x.c, device.c, device.h, devslots.h, dialog-gtk.c, dialog-msw.c, dialog-x.c, dialog.c, dired-msw.c, editfns.c, emacs.c, event-Xt.c, event-gtk.c, event-msw.c, event-stream.c, event-tty.c, event-unixoid.c, events.c, extents.c, extents.h, faces.c, fileio.c, fns.c, frame-gtk.c, frame-msw.c, frame-tty.c, frame-x.c, frame.c, frame.h, glyphs-eimage.c, glyphs-gtk.c, glyphs-msw.c, glyphs-widget.c, glyphs-x.c, glyphs.c, glyphs.h, gui-gtk.c, gui-msw.c, gui-x.c, gui.c, gutter.c, input-method-xlib.c, intl-encap-win32.c, intl-win32.c, keymap.c, lisp.h, macros.c, menubar-gtk.c, menubar-msw.c, menubar-x.c, menubar.c, menubar.h, minibuf.c, mule-charset.c, nt.c, objects-gtk.c, objects-gtk.h, objects-msw.c, objects-msw.h, objects-tty.c, objects-tty.h, objects-x.c, objects-x.h, objects.c, objects.h, postgresql.c, print.c, process.h, redisplay-gtk.c, redisplay-msw.c, redisplay-output.c, redisplay-tty.c, redisplay-x.c, redisplay.c, redisplay.h, scrollbar-gtk.c, scrollbar-msw.c, scrollbar-x.c, scrollbar.c, select-gtk.c, select-msw.c, select-x.c, select.c, signal.c, sound.c, specifier.c, symbols.c, syntax.c, sysdep.c, syssignal.h, syswindows.h, toolbar-common.c, toolbar-gtk.c, toolbar-msw.c, toolbar-x.c, toolbar.c, unicode.c, window.c, window.h: The following are the major changes made: (1) Separation of various header files into an external and an internal version, similar to the existing separation of process.h and procimpl.h. Eventually this should be done for all Lisp objects. The external version has the same name as currently; the internal adds -impl. The external file has XFOO() macros for objects, but the structure is opaque and defined only in the internal file. It's now reasonable to move all prototypes in lisp.h into the appropriate external file, and this should be done. Currently, separation has been done on extents.h, objects*.h, console.h, device.h, frame.h, and window.h. For c/d/f/w, the most basic properties are available in the external header file, with the macros resolving to functions. In the internal header file, the macros are redefined to directly access the structure. Also, the global MARK_FOO_CHANGED macros have been made into functions so that they can be accessed without needing to include lots of -impl headers -- they are used in almost exclusively in non-time-critical functions, and take up enough time that the function overhead will be negligible. Similarly, the function overhead from making the basic properties mentioned above into functions is negligible, and code that does heavy accessing of c/d/f/w structures inevitably ends up needing the internal header files, anyway. (2) More face changes. -- Major rewrite of objects-msw.c. Now handles wildcard specs properly, rather than "truenaming" (or even worse, signalling an error, which previously happened with some of the fallbacks if you tried to use them in make-font-instance!). -- Split charset matching of fonts into two stages -- one to find a font specifically designed for a particular charset (by examining its registry), the second to find a Unicode font that can support the charset. This needs to proceed as two complete, separate instantiations in order to work properly (otherwise many of the fonts in the HELLO page look wrong). This should also make it easy to support iso10646 (Unicode) fonts under X. -- All default values for fonts are now completely specified in the fallbacks. Stuff from mule-x-init.el has all been moved here, merged with the existing specs, and totally rethought so you get sensible results. (HELLO now looks much better!). -- Generalize the "default X/GTK device" stuff into a per-device-type "default device". -- Add mswindows-{set-}charset-registry. In time, charset<->code-page conversion functions will be removed. -- Wrap protective code around calls to compute device specifier tags, and do this computation before calling the face initialization code because the latter may need these tags to be correctly updated. (3) Other changes. EmacsFrame.c, glyphs-msw.c, eval.c, gui-x.c, intl-encap-win32.c, search.c, signal.c, toolbar-msw.c, unicode.c: Warning fixes. config.h.in: #undefs meant to be frobbed by configure *MUST* go inside of #ifndef WIN32_NO_CONFIGURE, and everything else *MUST* go outside! eval.c: Let detailed backtraces be detailed. specifier.c: Don't override user's print-string-length/print-length settings. glyphs.c: New function image-instance-instantiator. config.h.in, sysdep.c: Changes for fastcall. sysdep.c, nt.c: Fix up a previous botched patch that tried to add support for both EEXIST and EACCES. IF THE BOTCHED PATCH WENT INTO 21.4, THIS FIXUP NEEDS TO GO IN, TOO. search.c: Fix *evil* crash due to incorrect synching of syntax-cache code with 21.1. THIS SHOULD GO INTO 21.4.
author ben
date Thu, 20 Jun 2002 21:19:10 +0000
parents 3ecd8885ac67
children 7910031dd78a
line wrap: on
line source

/* XPM */
static char *magick[] = {
/* columns rows colors chars-per-pixel */
"388 145 19 1",
"  c #090909090b0b",
". c #2ef52ef52f89",
"X c #131315154c4c",
"o c #7e7e00000000",
"O c #50e450e451e5",
"+ c #6f5c6f5c705d",
"@ c #232327278888",
"# c #36363a3acccc",
"$ c #48704e4ed384",
"% c #68f76cfbddbc",
"& c #99d200000000",
"* c #af5000000000",
"= c #d23a00000000",
"- c #f5e900000000",
"; c #912a912a922b",
": s None c None",
"> c #8d5e9162eb8a",
", c #b3c7b7cbf93d",
"< c #d6dbd706d9dc",
/* pixels */
"::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::",
"::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::",
"::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::",
"::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::",
"::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::",
"::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::",
"::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::",
"::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::",
"::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::",
"::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::",
"::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::",
"::::::::<:::::::<::::::::::<:::::::::::::::::::::<:::::::::::::::<:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::<:::::::::::::::::<:::::::::::::::::::::<::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::",
":::::::::::::::::::::::::::::::::::::::::::::::::<::::::::::::::<<::::<<<<:::::::::::<<<<<<:::::::::<<::<:::::::::::::::::::::::::::::<:::::::::::::::::<:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::",
"::::::::::::::<:<::::::::::<::::::::<::::::<:::::<::<:::::::::::::::::::<:::::::<::::<:<:::::::<:::::<:<<:::::::::<:::<:::::<:::::::::::::<:::::::::::::<::::::::<::::::<:::::<::<::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::",
"::::::::<<::<<<<<::::::::::<<<<:::<<<<<:::<<<<:::::<<<::::::::::<:::::::<:::::::<<:::::::::::<<<<<:::<<<::::::::::<<<<<<::<<<<<:::<<<<<::<<<<<::::::::::<<<<:::<<<<<::<<<<<:::<::<::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::",
"::::::::::::<:::<::<<<<<<::<:::<::<:::<::<::::<::<::::::::::::::::::::::<::::::<<<<::::<::::<<<<<::::::::::<<<<<<:<<:<:<::<::::::<::::<:<<<<<<::<<<<<:::<::<::<::::<::<::::<::<<::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::",
"::::::::::::::::<::::::::::<:::<::<::::<:<::::<::<<<::::::::::::::::::::<::<::<:::<::::<::::<<<:<<:::::<::::::::::<<:<:<::<::::<:<::::<:<<<<<<::::::::::<::<::<::::<::<::::<::<<<:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::",
"::::::::<<::<::::::::::::::<:::<::<<::<::<<::<<::<::<:::::::::::::::::::<::<::<::<<::::<::::::::::::<:::<:::::::::<<:<:<::<<:<:::<<::<<:::::::::::::::::<::<:::<::<<::<<::<:::<:<<::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::",
":::::::<::<::<<<<<::::::::<:::<::::<::<:::<::<::<<::::::::::::::::::::<:::::::<::::<::<::<::::::<::<:<:<:<:::::::<:<:::<<::<:<::::<:<::<::<:<::::::::::<::::::::<:<::::<::::::<:<:<:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::",
"::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::",
":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::<:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::<::::::::::::::::::::::::::::<:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::<:::::::::::::::::::::::::::::<:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::",
":::::::::::::::::::::::::::::::::::::<::::::::::::::<:::<:::::::::<:<::::::::::<::::::::::::::::::::::::::::::::::::::::::::::<::<:::::::::::::::::::::::::::::::::::::<::::::::::::::::<::::::::::<:::::::::::::::::::::::::::::::::::::::::::::<:::::::::::::::::::::::::::::::::::::::::::::::::::<::::::::::::::::::<::::::::::<::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::",
":::::::::::::::::::::::<::::::::::::::<:::::::::::<::::::<::::::::::::<::<:::::::::::::::::::::::::::::::::::<:::<:::::::::::::::::::::::::::::::::::::<:::::::::::::::::<:::::::::<::<:::::::::::::<::::<::::::::::::::::::::::::::::::::::::<::::::::::::::::::<:::::::::::::::::::::<:::::::::::::::<:::::::::::<::<:::::::::::::<::::<:::::::::::::::::::::::::::::::::::<::::::::::::::::::::::",
"::::::::::::::::::::::::::<::::::::::::<:<::::::::::::<::::::::::<::<::::::::::::<::::::::::::::::::::::::::::<:::::::::::::::::::<::::::::::<::::::::::<::<:::::::::::<:::::::::::::::<:::::::::<::::<::::::::::<:::::::::::::::::::::::::::::::<::::::::::::<::::::::::::::<::::::::::::<:::::::::::::<::::::::::::::<:::::::::<::::<::::::::::<::::::::::::::::::::::::::::<:::::::::::::::::::::",
"::::::::::::::::::::::<:<:::<::::::::::::::::::::::::::::::::::::::::<:<::<:::::::::::::::::::::::::::::::::::::::<:::::<:<:<:::::<::<::::::::::::::<::::<:::::::::::::::::::::::::::::::::::::::::<:<::::<::::::::::::::::::::::::::::::::::::::::<:::::<:<::::::<::<::::::::::::::<:<:<:::<::::::::::::::::::::::::::::::::::::::<:<::::<:::::::::::::::::::::::::::::::::::::::::::::::::::::::::",
":::::::::::::::::::::::::<:::::<::<::::::::<:::::::::::::::::<::::<::::::::::::::::<::::::::::::::::::::::::::::::::<:::::::::<:<:::<:::::::<:<:<:::::<::<::<::<::<::::::::<:::::::::::::::::<::::::::<:<:::::::::::::::::::::::::::::::::<:::::::::::<:::::<:::<::<::::::::<:<:<::::::::<:::::<::<::::::::<:::::::::::::::::<::::::::<:<:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::",
":::::::::::::::::::::::<::<:<:<::<::::::::::::::::::::::<::::<::::<::<;;<<::<::::<:::<::::<:::::::::::<<:::::::<::::::<::::<<::::<<:::<::::::::::::::::<::<::<:::<:<::::<:::::::::::::::<::<::<:::::::<::<::<:<::<:<::::::::::::::::::::::::::<:::::::::<::::::::::::<:::::::::::::::::<::<:<::::<::::::<:::::::::::::::<::<::<:::::::<::<::<:<::<:<::::::::::::::::::::::::::::::::::::::::::::::::",
"::::::::::::::::::::::::::<::<::::<::::<::::::::::::<::::::::::<::<::::<:<::::<::::::::::::<:::::::::::<<:::<:::::<::::<:<::;:::::::<::<:::::::<:<::<::::<:<:<:<::::::::::::::::::::<::::::::::<::<::::<::<::::::::::::::::::::::::::::::::<:::::<::<::::<:::<:<:::<:<:<::::::<:<:<::<::::<::<:<::<:::::::::::::::::<:&&:::::::<::<::::<::<:::::::::::::::::::::::::::::<:::<:::::::::::::::::::::::",
":::::::::::::::::::::<:<::::::<:<::::::::<::<:::<::::::<::::::::::::::<<:::<<:<:<:<<<<<<<::::<<<::::<<:<::<<<<:::::<::::::::<:<::<<:::<:<:::::::<::::<::<::::::<:<:<:::::<::<:::<::::::<::::::::::::::::<::<::<:::<:::<::::::::::::::::::::::<:::::<::<::::<:::::<:::::<::::::::<:::<::<:<:::::<::<::::::<::<:::<:::&&*&&:::::::::::::::<::<::<:::<:::<:::::::::::::::::::::::::::::::::::::::::::::",
":::::::::::::::::::::::<::<<:<:::<<:::::::<:::::::::<:::<:::::::<<:<::::<::::<<:::::;:;::<:<::<;::::<<;:::<<::<:::::<:::<:::::::::::::::::::::<:::<:<::::<:<:<:::<::::::::<:::::::::<:::<::::::::::<:<:<:::<:::<:::<::::::::::::::::::::::::::::::::::::<:::::::::::<::<::::::<:::::<::<::<:<<:::<:::::::&&&&&::::::&&-=&::::::::::<:<:<:::<:::<:::<::::::::::::::::::::::::::::::::::::::::::::::::",
":::::::::::::::::<::::::::::::<:::::::::<:<::<:::<:::<:<::<:<::::::::::::<:<:<;;;::<;:::::::<:::::<:::::::::;:<::<:::<:<:::::<:<:::<:<::<:<:::::<::::<:<:::::<::::::::::<:<::<:::<:::<:<::<:<:::::::::::<<:::<:::<:::<:::<:::::::::::::::::::::::<::<::<:::<:<:<:<:::::::<::::::<<::::::::&:::<:::::::::&*---&:::<:::*--&:<:<:::::::::::<<:::<:::<:::<:::<::::::::::::::::::::::::::::::::::::::::::",
":::::::::::::::::::::::::::::::::::<:<::::::::<:::::::::<:<::::::::::<:::<::<:<::<::;::::::::::::::::::::::<:<::::::::::<:::<::::::::::::::::::::::::::::::::::::::<:<:::::::::<::::::::<::::::<:::::<:::<:<:::<:::<:::::::<::::::::::::::::<:::::::::::<:::<:::::<::<::::<::::::::::<&&&&&&&&:::::<:<:::=---&&<:::::=--&::::::<:::::<:::<:<:::<:::<:::::::<::::::::::::::::::::::::::::::::::::::::",
":::::::::::::::::::::::::<:::::::::::<:::::::::::::::::::::<<:<<:::<::<:::<:::::;:<:;:::::::;<::<:<::::::::::<:::::<::::<:::::<:<<:::<::<:<:<::::::<::::<:<::::::::::<::::::::::::::::::::<:<::<::<:::<::::::::::<::::<:<::::<::::::::::::::::::::<::<::<:<:::<:::::::::<::<:::::::<:&&--=&&--=&::::<::::=----&::::::&-=&:<:<::<::<:::<::::::::::<::::<:<::::<::::::::::::::::::::::::::::::::::::::",
":::::::::::::::::::::<:::::::::::::::::::::::::::::::::::<::<::::;<:::;;;;<::;;;<;:;;::<:;<;<;;<:::<;;<:::<;;<;<<::::<:::::<::::::<<::<::::<:<:<<<<<<<<<<<<<:::::::::::::::::::::::::::::<::<<::::::<::<<::<:::<::<:<::::<:::::::::::<:<::::::<::::::::::::<::<:<<<:<:<:::<:<:<:<<::&=--&&&&&--=&:::::::&=----*&:::::&-=&<::<<::::::<::<<::<:::<::<:<::::<::::::::::::<:::::::::::::::::::::::::::::",
":::::::::::::::::::::::::::<:::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,<:<<<:::<<,,,,,,,,,,,,,,,,,,,<:<::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,>>>>>>>>>>,:::::::<::::::::::<:<::<::::::<:::::::<:::::<:<:::::::::<:<:::<:<:<:::::::::<:::<::<:<:<:<:<:::<:<::::<:<::<&&&:<::<::<&==&&::::&o--&::<::::&=-----&&::<:&==&:<:::::::<:::::<:<:::::::::<:<:::<:<:<:::::::::<:::::::::::::::::::::::::::",
"::::::::::::::::::::::::<::::::::,###$##########################%:::<:::<%###################%:<:<:::,######################################################:<:<::::<<:::::::::::::<:::::::<:::<:::<:<:::::<:<:::::::<<<::<::::<:<::::<::<::::::::::::::<:::<&&<::<:<:::&&&<:<::::&&-&&::<:<<&&=&&::<<:&&=------&::<:&*-&::<:::<:::<:<:::::<:<:::::::<<<:::<:::<:<::::<:::::::::::::::::::::::::::::",
"::::::::::::::::::::::::::<:<:<::<##############################@O:<::::<%###################@O::::::<#####################################################@ <:::<<:::::<::<:<::<::<:<<:<::::::::::<::<::<:::::<:<::::::<::<:<:::::::::::::<<::<:<:<<::&&&&*=*&&&::<:<::&*&<::<<<:&=-&::<::<:<&&-&&:::::&=---=&=&&::<&=-&::::::::::<::<::<:::::<:<::::::<::::<:::::::::::::<::::::::::::::::::::::::",
":::::::::::::::::::::::::::<:::<::%@#########################@@@XO::<:<::,#@################@XO<:<<:::%@###################################################XO<:<:<:::::<:::::::<:<:<:<:::::::<::<<::::<::::<<:::::::<:<::<:::::<:<<:::::<:::<<::::::<:&&=------==&:<:<:<:&&&<:::<:&=-&&::<:<:<:&=-&::::<&----&&--&<:::--=&:::<::<<::::<::::<<:::::::<:<:<<:<:::<:<<:::::::::<:::::::::::::::::::::::",
"::::::::::::::::::::::::::::<::<:::O.XX###################@X  .OO;<::<:<::;OOO$##########@@  .;:<:::<::OO. @$##################X       XX@@################X+<<<<:<:<:<:<<:<:<::<::::::<::<:::::::<:<:::::::<<<:<:<:::<<:::<<<:::::::<:&&&<:::<::::::&&--***&&&=-=&:::<::&*&<::<<&*--&:::::<:<:<--&<:<:<:---*&:--*::::=--&<:::::::<:<:::::::<<<:<:<:::<::::<:<:::::::::<::::::::::::::::::::::::::::",
":::::::::::::::::::::::::::::::<::::<::+$################X O:<<:<<<<<<<<<::::<>#########X .+<<<<<<:<:<:::::<>################@ X+:<<<<<:;;O.X@############# ;<<<<<<<:<:<::<::<<<:::<:<::::::::::<::<::<<<::::::::::::::::<::::<<:<::::&&&&&&&::<:::<:&*-*&<<:::&--&:<:<<<*-&::::::---o<:<:::::::==&:<:<:<*--&<<&==&<<:&--&::::::<::<::<<<:::::::::::::<:<:::<:<<:<::::::::::::::::::::::::::::::::::",
":::::::::::::::::::::::::::::::::::::<:<<%###############XO::<<:<::::<<<<<:::<>########  +:::::::<<<<<:<::<<<%############### .::<:::::::::<<+O@##########@ :::::<<<<<:<:<:<:<:<<<:<::<:<::::<::::<:<<::::::::<:::<::<&&:<:<:<&*&&&&&===----*&::<:::<*-&&<:::<:&---&<:::<=-&<:<:::=--&::::<:<:::&&::::<:<o--&<:<&=&::&&--&&:<:::::<:<<::::::::<:::<::<::<:<:::::<:::<:::::::::::::::::::::::::::::::",
":::::::::::::::::::<:::::<:::::::::::::<<,$############## O;;;;;;;;;;;::<<<::,%######@  ;;;;;;;;;;:::<<:<::<,%##############@ ;;;;;;;;;;;;;;;;;;O$########@ ;+;;;;:<<<::<:::<:<:<:<:<:::::<<::<::::<:<<:<<:<:::::&&&&&&*&&<:<:&--=&&*=&&&*=--&:::::::--&<::<:::<&==&:<<:<&-&:<::::&-&&::<:::::<&&&::<:::&&&-&&::&=&&<:&--*&::<:<:::<:<<:<<:<:::::<:::::::::<<<:::<:::::<::::::::::::::::::::::::::::",
"::::::::::::::::::::::::::::<::::::::<:<<:>##############XOOOOO++++++;;:<<<:,,######@ .OOO++O+O++++;::<<::<<,%##############XXOO+OO+++++++++++++++$#######X.OOOO++::<:::::::<:<::::::<<<:<::<<<:<::::::::<:::&&*&&==----=&::::&--*&&:::<&&&=-=&::::::*-&:<:<<:<::<:<::<:&&-&&<:<:&&-&::::<:<::::&&:::::::&&-*&<::&=&&<&=--&:<<<::::::::::<:::<<:::<::<:<:<::::::::<::<::::::::::::::::::::::::::::::",
"::::::::::::::::::::::::::::::<::::::::<<;>##############X.......OO+++;::<<<,$#####@  .........OOO++OO:<::<<,############### ..........OO+OOOOOOOO%$######  .....+;:<<::::<:::<:<<<<<::<:<:<::<:<<::<:&&&<:<&&----==-=*&&&<::::*-&;::<:::::&--&:::::&&-&<<::::<:::<:<:<:<&-=&<:<::&-*&::::::<:<<&*&::<:::&---&:<:&--&:<---&<:<:<<<::<::<:<:<<::<:::::<::<:::::::::::::::::::::::::::::::::::::::::::",
"::::::::::::::::::::::::::::::::::::::<<<:;%#############@   . ..OO++;;:<<<,%#####@ X.. . . ...OO++O:<:::::<,##############@     . ..O.O+++++++OOOO%######     ..O+OO+<<:<:<::<:<:++O+O::<:<<<<:OO<:O&&=&::<&---&&&&&:<&<::::::&-&:::::::::&--&:::::&*-&&:::<::<::::::<:<&--*&:::<&--&::<:::::::&-&::::<:<=--&:<:<&-&::*--&:<<:<:<<::::<:::<:<::::::::<:<:::::::::::::::::::::::::::::::::::::::::::",
"::::::::::::::::::::::::::::::::::::<::<<<:>##############    ...O+;;::<<<,>#####@ .OO.      ..O++++;:<<:::<>##############X      X..OO;+++;;;+O++O>$####@      .O;:;<:<:::<:::::::<:::&&&::<<:<<O:<;&=-&:<:*--&:&<<:::<:::::::&-&::::<::::&--&<::<::&-=&<<:<:::<<::::<:<&---&<<::&--&<:::<:<::::*&&<:<:::*-=&::<:&=-&&&--&<:<:<<:<:<<:::<::<<::::<::::<::::::::::::::::::::::::::::::::::::::::::::",
":::::::::::::::::::::::::::::::::::<::<:<<<,##############     .O+;:::<<<<>#####@ .O+..     ...+;;;+::::<:+,%##############X      ..O++:++;::O++OO;;%####X     ..+;:;<::<:::::;<<:::::&*=&&;;+<:<<+O&&-&::::&--&:+:;<:<+::+<::+&-*;::+;:;+<&--&:::<;;&--=&&&::;<:<++;:+::&=--&:<<<:&*&:::<:::::::&&&:::<<&*-&&<<::&&-&&&--&<<<<:<:<<:<<::::::::::::::::::::::::::<::::::<:::::::::::::::::::::::::::",
"::::::::::::::::::::::::<::::::::::::<:<<:<<%#############X   ..+;:<<<<<,,$####@ O;<;+..   ..O.::<<;<<<::::,$##############        .;;;O:<<<<+;;;O;:>####      ..+;:;:<<:<:;++;:<<:::<&&-*&:;+::<<+;:&-&+++O&--*::::::::::::::<&-=&:<+:::+:&--&++::::<&--=--==&&&&:<:<:;:&&--&:::::&*&<::<:::::::&&&<:<::&&-&:<:<<:&=&&&--*:<:<<<<:<:<<:::<<:::<::::::::::::::<::::::<:::<::::::::::::::::::::::::::",
"::::::::::::::::::::<:::::::::::<:<:<::<:<:<>#############@   .O+;<<<::,,$##### O<;:;O. . ..O++:<<<:<::<<::,##############@      ..+;:+:+<<<:+::;;<<>#### X    ..+:<;<:<::::<<;::<:<::<&--&:::<<:;::&*-&::::&--=&::::::::::::::&--&::+::::&&-*&:::::::&&&&=---===*&<:<:;<&&--&:<:<<&=&<:<:<::<<:<&=&<:<<<:&-*<::<:<:&-=---=&<::::<::::::<:::::<:::::::::::::::::<:::<:::::::::::::::::::::::::::::::",
":::::::::::::::::::::::::::<:<::::::<:<:<:<:,##############   .O+:<<:<,,$####@ .<<;+;O. ...+;::<<<:;:<::<<,>##############X      .O+:<:<<+:<:O::<<:<,###@&&&   .O+:<:<:<;:;::<+<:<:::::&&-=::<::::<:&-=&:::<&=-=&:::::<:::;::<+&*-&<:+:<&&=-=&:::::::<:<:&&&*&=&*--&&:;<<<&--=&:<::&-*&::::<<:::<&-=:<::<:&-=&:<:<::&-----=&::::::<<:<::::::::::::::::::::<::<:::<<::<::<:::::::::::::::::::::::::::",
":::::::::::::::::::::::::::::<:<:<<:<:<:::<<<$#############X  .O+:<::<,$#####  <<<:+... .O+OO+::<;OOO;:<:+,%##############       .O;:+;<:O+<:<;O;::<,##&&&=*   .O;;OOOO+::<OO:;;:<:OOO<<&-=&+:::++::&==&:<::&*-=&;<:+::<+O::<:<&&-&&&*=&&=-&&:::::<+;:+<:;:;OO&&&&--&&<:<&=--=&<:<:&--&::<::<<<:<&-=&<<<::&=-&&<:<:<&&----&:<:<:::::::::<:<:<<:::::::::::::::::<:<:<::::::<:::::::::::::::::::::::::",
"::::::::::::::::::::::::::::::<:::<:::<<:<::<%#############@  ..+;:<<,$####@ X::<<:+O...O+;:<<::<<<:<:<::<,$#############@      ..+;::&&&<<&&&&:<<::,##&----&...O;:<<:<:<<:<:<:<::<:::<:&&-*&<::<:<:&*=&::<:&=--&:::::::::::::::&--=----==-=&:::::::::::<<<::::<<:&--&&:&&&--&<::<:&--=&::<:::<:&&-&&::<<<&*-=&:<:<::&*---&<:<::::<::::<::::::<::::::::::::<:::::<::<:<:::::::::::::::::::::::::::::",
"::::::::::::::::::::::<:::::::<:<:<<:<::<:<:<,##############   .O;:<,%##### X<:<::;O...O+;:<<:<:<:<<:<:<:<,##############@      ..+;&&*--==*==*<:<:<>##&=&*-*&..+::<<<<<::<:<:<:<<:<::<<:&*=&:<:::::&*=&:<::&---&&&&&&&&&&:<:<::&--**---&&&--&&::::::::<::<:<<::<:&---=&&:&==&:<<:<&&*-*&:<:<:<<&*=&<<<:::&&--&::<:<::&&&&&:<:<<:::::::<:<<:<::<::::::::<<:<::<:<:<:<:::<:::::::::::::::::::::::::::",
":::::::::::::::::::<::::<<::::::::<:<:<<:::::<$#############X  .O;,,%#####  <<<<:;+O..O+;::<<<:::<:<<:<<:,>##############X      .O&*=-------=-*&:<<<<%&&=&&*=&.O+::<<:<<:<::<:<:<:<<<::<:<&-&<:<<::<&-=&:<<:*----&&*-----*<<:<::&-=&&:&&&<&&--&:<<:<::::&<<<:<:<:<&*--=&::&*=&<<:<<<&&--*&::<::&&-*&<<<<<<<*--&<<<:<<:&<:<::<::<<:::<<<:<:<::<::::::::::::<:<::::<:<::<:::::::::::::::::::::::::::::",
":::::::::::::::::<:::::::::<::<::::<:<:::<<<:<%#############@  .O:,%##### X<<<<:;+O..O+;:<<<:<<<<:<<<:<::,%##########&&&&&&&    &&&---===*&&&&&&<<<:<<&*=&&&=&.O;:<<<<:<:<<<:<::<::<:<:<:<*-*&:::<<<*-=<<:::&---------**&&<<<<<:&-=&<<:<::::&*=&::::::&&&&::<<::<<&=--&&<:&==&:<<<:<<&---&<<:<<&-=&<:<::::<&*&&:::<::<<<<<<<<:::::<::::<:<:<::<::<::<::::<<<<:<::::<<::<<<::::::::::::::::::::::::::",
"::::::::::::::::::::::::::::::::::::<::<:::::<>##############   >,%####@  <<<::;+O..O+;:<:::::::<::<<:<:<,#####&&&&*&&&=---*& &&&&&&&&&&&,$##;::<<:<<:&*-&&*-*&+;<<<:<:<:::<:<<<<<,<<:::<:&--*<<,,>>o-&::<<<&-----=&&&&&,,>>>><<&**&<:<:::::&==&::<::&&-=&<:<:<<,,&*-*&<<<&=-&:<<<<<<&&--*&&&&&--&&<<:<<<::<&<<<<<<<,,,>>>>>,<<<:::<:::<:<<:<:<<::<::<,,,,>>>>,<<<::::<,>>,:::::::::::::::::::::::::",
":::::::::::::::::::::::::::::::::::::<<:::<<:<<##############X ;,%##### X<<<<:;+O..O+;:<<::::<:::<::<:<:<>####&&====&&=*=-*&&  .O+:<<<:&&>### :::::::::=-&:&--*+;<:<:<<<<<<<<,,,>>%$><::::&&-*&>%###&=&%<<:<&*----o&<,,%$######%&==&<:<:<<<:&*-&<<:<::*--&::<,,>%##=-*#$>::*-*,,>>>>>>&&--=&*=--&&::<<<::::<:<:<<,,>%$#######$>,::::<:::<:<<<::<:<<<,,%$#######$>,<<:<,>###:::::::::::::::::::::::::",
":::::::::::::::::::::::::::::::::::::<:<:::::<<$#############@.,%#####  <<<::;+OO.O+;:<<<::::::<&&&&&&&<,%####&*-&&##&&&&      .O;:<<<:<&$##@ ::::::::&-=<:;&-=&:,,,,,,>>>>%%$######X+<::::&=&&####&&=&#$:<<&*---=&,,%##########&*-&::<<:::<:=-&&::<::&--=<,,>$###o--&###$<&-=#########&&*&&**&&<::::<<<:<:::<,,>%##############%<:<:<<:<:<:<<<::<,,%############$%>,,>$##@ ::::::::::::::::::::::::",
":::::::::::::::::::::::::::::::::::::::<:<<:<:<>##############,>##### X<<<<:;+O..O+;:<<<<<:&&&&&&*-**-=&&$#####=-&####&#      ..O;:<<<<&&###@.::::::::&-*<<:&--&>%$#####$########### :<<:<,&*=&&###&*=&###<<&&----&>$############=-*<::<:<:<:=--&:<::<:*--&>$####&=-&&####O&=&&#########X+:&&&<:::<::::<<<<<<,>$#################$<<:::<:<<:<:<:<,>$######################@O::::::::::::::::::::::::",
"::::::::::::::::::::::::::::::::::::::::::<:<::,##############>#####  <<<<:;+O..O+;:<<::<;O=-&:&&&&&&*--*&#####---&####@      ..+;<<<<,&&###X+<:<<+O::&=&&<:&=-&&##################X.<<<<<,&&-=&####==&##$@<<&----&##############*-*O:<:<:<:<&--*::<::<&--=&&##&&&-&&####$#&&&########## :::<:O;::::::::::<,,%#######@X  O$#######$<<<<:<:<<<<<<,>########@X   X##########XO::::::::::::::::::::::::",
"::::::::::::::::::::::::::::::::::::::::<::<<:<<%##################X :<<<:;+OO.O++;:<<:::;:--&:::<;:<&=--&#####&--&####X      .O;:<<<,&&&&## ::<<<<<;&&-&&<::&==&################## +<:<,,$#&--*####-=####@+<&---=&##############&-*&<:<<;O.+&=-&<::<:<&&=--==**==*&   ####%>##########@ <<:<<:;::::::::<<,>$#######X .;:<>########@<:<<:<<:<:<,>$#######X O;<:<;$########X;<:<<:<::::::::::::::::::",
":::::::::::::::::::::::::::::::::::::::::<::<:<<%#################X O:<<:;+OO.O+;::<<::::;<*&&:::+::::&=-&#####&--&&###       ..;:<:,,&*=&#@ ;<<::::+&*-&:<<:&=-&OXX############### :<;,,$###=-*###&-*#####.:&---&###############&&*&:<<<<:;:&&-*&:::<,>&&&*---=*&  O::;%##%%##########X.::<<<<;:<:<<:::<,>########X O:<<,%#########.:<<<:<;:<<,$#######@ ;<<<<:;:%####### ;<<<::<<:<:<:::::::::::::",
"::::::::::::::::::::::::::::::<:<::<:::::::::<::,################X .;:::;+O.OO+;;:<<<<:::::&&&<<:;::::+&=&&###&&--&&###       .O;:,,>$&==&#X.;O:;;+;+<--&<:<<<---&OO+>############@ ::,,$####&==&&&&-&##### ;&---&&###############&=&&::<<<;<:&==&&:;,>###&&&*&&&  O;::;;$#$########### O+O::::;<<<:<O;,,%########X O;+O,,$#########XO+::++;;;,>######## .;<<:;+O++$###### :<:+;;;<<<<<<<<:::<::::::",
"::::::::::::::::::::::::::::::::::<:<<::<::::::<<$##############X .O+;;;+OO.O+;::<<<<<:<:::&&&:<:;<<<:<&==&####&=-=&##@    .OO;:,,>$###--&#X+<<+;++;+<--*::::<&--*;<<,############X.;,,$###@ X&=-**--&##### O&=--*&@  $&&&&&&####&&-&+;;::<;:<:&&&++,>#########@  ++.;+++>############@ ;++;;;;+<<<<;<<,%########@ O;;;.,%##########@..::;<<<:,$######## :;;;;++OOO>#####@ ;:;++;::<:<::::::<:::::::",
":::::::::::::::::::::::::<::::::<::<::<:<:<:::::<>#############@   OO+++O..O++::<<<<::::<::&*=&&<;<:<;<&=-&####&---&##>,&,,,>>>%%######=-&# :<:++OO++&--&<:<::&*-&;::,############ O>,$###X O&&-----=&####@ >&*---&&&&&&----&&####=&&.O+;:<;<:;&:;<,>##########X +++O+O.O>############X OOOOO+;+:<<<:<,%######### OO++++,###########@ .+;+:<<:>######### :++OOO..OO;$####@ +++OO+;;<<<:<::::<:<:::::",
":::::::::::::::::::::::::::::::::::<:::<:::<::<::>##############   ..OOOOOO+;;:<<<<<<<:::;:&---&<;<<<<,*--&#####*--&##&&*&&o&##########&=&@ <:OOOO++&&-&&:<&&&&=-&&<<,###########@ O,%##@  O:<&=-----&####@O,$&---=&*-------=&####&&&..O+;:;<:;:<;,>##########@ .;++O..X+>############ ... ..O++:<<<,,%#########  :.+;++>###########@ .O++:<<,>######### ;OO.....OO+%####@ OOO.OO;;<::::::::<:::::::",
"::::::::::::::::::::::::::<:::::::::<::<:<<::::<:,$#############X  ......OO;::<:<::<:::::;::---&<;<:<:&--&&#####&*--=&&&=---&##########&&#X.O.+OO....&-&&&&=------&&>>###########X ,>###  O.::&-----=&####@,>##=-------**&&&&&#####X   .O..OOOO<:,,$########## O+.. ..  ;>############     .. ...O<<,%#########@ ;:;..XO>###########@ ....O::>%#########X.. .X.....+>####X ... .O+;<:::<::<:::<:::::",
":::::::::::::::::::::::::::<:::::::::<:<::<<<:::<<%#############@    ...OO+::<<<<<<<<<:::;;<*--&<:+<<,&-*&#######&=----&&*=&&##########&&& ;;;OO.O+;&&-=&&&--=**&--&<%########### >,###  O;:<&=-----&#####>>##@&-*&&&&&&&##########    ..O;:<<<<<,$##########X ;+O... X.>%###########X      .O+:<::,>########## .;++O...>###########   ..O+:<,%##########...  .O+;::,$###X... ..O;:<::::::::::::::::",
":::::::::::::::::::::::::::::::::<:::::::<:::<::::>##############    ...O;;:<<:<::<:<:::::;&&--&&&&&&&=-&&#######&=-=&&&XXX@@##########&*& ;;O...O+:&--=&&&&&&&&&--*&%##########@O,$##  .O;::&----=&######,$##X .+&&:;,############     .O+:<::<,%##########@ OOO.   ...,%###########X      .O+:<<,,##########@ ;+O...X.+##########@     .+;:<%##########@   ..+;::<<%### ..   .O;:<::::::::::::::::",
":::::::::::::::::::::::::::::::::::::::<:<:<::<:::,$#############X   ..O+;:<<<:<<<<::::<<<:<&--=&*------&&######&&-*& &      XXX#######&=&X+O....O+:&--&&&::<:<:<=--&###########@,>##X X.+;::&=---&######%%##X  .O;::,%###########@     .O+::<<,>########### .O...   ..O,$###########      ..O;:<<,$########## .+O..  ..O%#########     ..O;:,%##########$   .O+:<<<<>### +O. ..O;:<::::::::::::::::",
"::::::::::::::::::::::::::::::<:::::<::::<::<:::::,%#############@   ..+;:<<<<<::::<::::<<<<:&-----=**&*-*&#####&=--&       .O+;+$#####&=&.O..X..O;:&=-&<:<::::::&--&###########,>##@  .O+;::,&&*-&&#####>##@   .O;;:,$###########X     ..+::<<,$##########@ O..    ..O;,###########@       O+;<<,%##########@ OO.. . .O+;$#######X      .O+:<$############  .O;:<<:::##@ +O.. .+;<<::::::::::::::::",
":::::::::::::::::::::::::::::::::<:::::::::<<:<:<<,$##############   .O+:<<:::::::::::<<:<:<<&--*&&&<&&&&-=&####&=--&       .O+;;;%#####*=&.   X.O;:&--&:::<:<:<&&=-&&#########$,###   .O;;:,>#&&&&&####$$##   ..+;;>,############      .O+;<<,%###########X ..    ..O+,>###########X      .O;:<,,###########X O..   ..+;:<O@@@@X        .O+:<>############. .O;:<<<<:<  .;+...O+:<<::::::::::::::::",
":::::::::::::::::<:::::<::::::::::<:<<:<:::::<::<,%###############X  .O;:<<::<::<<::<<<<::<<:&=-&:::,%##&=-*&###&*--=&      ..O+++>#####&-&    ..+;&&--&<:::<:::::&-=&#########%%##X  .O+;:;,%####&#####$##@    .O++:>############      ..+:<,>###########@ ..     .O+;:%###########       .O;:<,$########### ..X   ..O;:<::<O..X        .O;:<,#############..O+:<:::::<<<:+O..O+:<<::::::::::::::::",
"::::::::::::::::::::::::::::::::::::::<:<::::::,,%################X  .O+:<<:::<<:<<:::<<::<<<&*-&:::,$##&*--&####&---&     ...OOOO+%####&-&    .O+&&&--*&:<::<:<::&=*&#########>##@   .O+;;;,#############@    ..O++,$###########X      .O;:<,$###########X .     ..+;:,%##########@       .+;:,>###########X ..    .O+;:<<<<<:;O.       .O;:<,##############..+;<<:<::<:<:;O..O;:<<::::::::::::::::",
"::::::::::::::::::::::::::<::::<:::::::<:<::::<,%##################  ..+;<<:<::<<:<<<::<:::<:&*-&<:<,###&&*-&####&*-&      ..OOOOO+%###&*-*&   .O;&&=--=&<<:::<::<<&&&########$$##    .O+;+>>#############X    ..OO;,############X      .O;:,>###########@ X      .O+::,###########X      .O+:<,$###########X .     .O;:<<<:<<:;O..     ..+;:<<%##############.O;:<::<::<<<;+OOO;:<:::::::::::::::::",
":::::::::::::::::::::::::::<::::::::<:<::<:::<,%###################   .O;<<<<::<::<<<:<<:::<<:&-&:<<%####&=-&####&&**       .O;;;+;>###&--=&  . .;&&---=&<:<<:<:::,%##########$##X    .O+++,%############@     ...O,%###########@       .+;:,$###########X       ..+;:,>###########       .O;:,>############ .     .O+;<<<:<<<:;+O.    ..O+;<<:,##############$O+;<<::::::<:;+O+;<<<::::::::::::::::",
":::::::::::::::::::::::<::::::::::::::::<<:<<,>#####O$#############@  .O+:<<:<:+<<<<<<::<::::&=-*:;,%####&--&#####&==&  & .O&&&::;,>###&=-=&  .OO;:&*==&<:<::::<:<,$#############    ..O++;,$############X     X..+,$###########@      ..+;,>############        .O;:<,%###########       .O;:,%###########X       .O;:<<<<::<<:;OO.....O+;:<<<<%##############$O;:<<<<:<<<:;++;:<::::::::::::::::::",
"::::::::::::::::::::<::::::::::<:::::::::::<,>#####X.%#############@  .O+:<<:<:+<:<<<;;<:::::&--=<+,#####&-=&#####&-=&&&*&&&*=&&;;<>###&&=*&  .OO:<<&&:::::<;:;:;<>#############@     .O++>>############@      ...;>############       .O+:,$###########@       ..+;:<,$##########X      .O+;<,############X      ..+;:<::<::<<:;;OOOOOO+;:<<:::,$##############.+;:<:<:::<<:;;::<<:::::::::::::::::",
":::::::::::::::::::::::::::::<::::::<:<:<:<,>#####X :,##############   .O;:<:::::<<:;;:;:<:;<&---&>>#####&-=&####&&--=&&*=---*&&;+<>### &&.. ..OO:<<<<<<<:<<++;+;,%#############     . .O+,%############X      ..O,%############       .O;,,############        .O;:<<>###########X      .O;:,>############       .O+:<<<::<:<<<<:;++++;;:<<::::<>##############$.+:<<:<:::<<::<<<::::::::::::::::::",
":::::::::::::::::::::<:<:<::::::<::::::<::,>#####X ;:,$#############X  .O+:<<:;:::<<+O++::<;<&*--=&&####&&=&&####&&--=&&&&**&&&&<:<>### ;OO....+O<<:<;OOOO+::;:;:,%############X      . O+,$###########@       X.+,$###########X      ..+;,%############       ..+;<<,%###########       .O;:,%###########@      ..+;:<<:<:<::<<<<::::;::<<<::::::$###############O+:<<<:<:<<<<<<:::::::::::::::::::",
"::::::::::::::::::::::::::::::::::::::<:<,,$####X ;:<<%##############  ..+;<<:;:<::;:<<;<:<;<&&---=&&&&&=-o&######&&-& &...;:<<<:;<%##X :O+...O++<<::<<<:<:<;::;<,#############X     ...O;>############X       ..>>############X      .O+:,$###########X       .O+:<<,$##########@      ..+;<,############@      ..+:<<<<::<:<::<<<<:<<<<<<<:<<:<:<$##############.+;:<:<::::<:<::::::::::::::::::::",
":::::::::::::::::::::::<:<:<:::::::<::::<,$####@ +:<<:>##############   .O;:<<<;:<:+::<+:<<+<<*-----------&######@      .OO;<<<:<;:>$#X+<++O..O;+<,<::<<<<<<;;::<>############@      ..O+,>############        .O,%###########@       .O+,>############       ..O;:<<>###########X      .O+;<>############X      .O+:<::<:<::<::<:::<<<<<<<<<:<:<::,$##############.+;:<:<::::::::::::::::::::::::::",
"::::::::::::::::::::::::::::<:::::::::<,,$####@ O<<<<;>$#############X  .O+:<<<+:::<OO;;;<<<OO=-----=&*&&&#######X       ...+<:;OOOO+O .....OO..O,>$%<:::<<:O+:O,%############X        O+,$###########XX      .O+,$###########@       .+;,>############       .O+:<<,%###########       .O+:,>############       .O;<<<::<::<:<<<:::<<:<:<:<<:<::::<>##############@O+;:<<::::::::::::::::::::::::::",
"::::::::::::::::::::::::::::<:<::<::<:<,$####@ O<<<:;++%#############@  .O+;<<<::<::<:<::::<:<&*&&&&&&&##########       .O;:<<::::::<::<<:;OOO+:<,$##O<:::::<<<:,$############       ..O:,############        .O>>############       .O+;,$###########@       .+;:<<,###########@      ..+;<,%############      .O+:<<<<::<:::::<:<::::::<:<<::<:<:<<%##############XO+:<<:<::::::::::::::::::::::::",
":::::::::::::::::::::::::::::::<:::::<,%##### O:<<<;;OO>##############   .+;:<<<:<:::::<<::<:<:<&,$##############      ..+;:<<<:<:<:::<<<:;OO+;:,%##@ <:::<:<:<<,############X       .O+,>###########@       ..+,%############       .O;:,############X      ..+;<<,>###########X      .O+;<,%############      .O;:<:<<<::::<<:<:<:::::::::<<<<::::<<%#############X.O;:<<:::::::::::::::::::::::::",
":::::::::::::::::::::::::::::<:::<::<,%####@ .:<<:;;OO.+$#############X  .O;:<<<<<<:<<:::::::<::<>##############@      .O+:<<:<::::::::<<:;+O+;,>###X.<:<<<:<:<<%############        .O;,$###########X      ..O;,$###########X      ..+;,>############       .O;:<<,$###########       .O;:<,############@      .O;:<:<::<::::<<<::::::::<::<:<<<<::<<<$############# O+;<<<::::::::::::::::::::::::",
":::::::::::::::::::::::::<:::<:<:::,,%##### X<:<<:++O.OO>#############@  .O;:<<<:<:<:<:<:<:<:<<<<>##############X      .O;:<<:::<<:::<:<<:;+++,,$###X;<<:<<:<<<,%############       .O+:,###########@      X..+:,############        O+:<>###########@      ..+;<<,%############       .O;:<,############@     ..+;:<:<<<:<::::::::::<:::,>,::<:<<:<:<<,$############ .O+:<<::::::::::::::::::::::::",
"::::::::::::::::::::::::::::<::::<<,%#####  <<<<:;+O.OO+,##############  .O+:<<<<<:<::<:<:<<<::<,$##############       .+;<<<::<:<::<<<<<::;+,,$###@ ::<<<<<<<<,############X       .O;,>###########@      X.O;,>############     O .O;:,%###########@      .O+;<<,$###########@      ..+::<,############@     .O+:<<::<::<<,<::::<:<:::<,##%<::<<:<::<<>############X..O;:<<:::::::::::::::::::::::",
"::::::::::::::::::::::::::::::<::<,%#####XX<<<<:;+O.OO+;,##############X  .O;:<::<<<<::<:<::<<<<,##############@      ..+:<<::<<:::<:::<<<:::,%####@X<:<<<::<<<>############       ..+;,%###########      X..+;,%###########X    .,>++;:,%###########X      .O+:<,>############X     OOO;:<<,############@     .O;::<<::<<<,>#>:::::<<:::>###O<::<<<<:<<<%###########@ ..+;<<:::::::::::::::::::::::",
":::::::::::::::::::::::::::::::<<,>#####X ;<<<:;+O..O+;:,%#############X  .O+:<<::<:<:<<<<:<:<<<>##############@      .O+:<<::::<::<<:<<<<<,,%##### +<<<::::<<,%###########@       .O+:,############      X.O+:,$###########     ,>##O:<,%###########X      .+;:<,$############     X,>>;<<:,############@     .O;:<<:::<:,,$##$:::<::::<>### <::::<:::<<,$##########@  .O+:<<::::::::::::::::::::::",
"::::::::::::::::::::::::::::::::,>#####X ;<<<:;+O.OO+;:<<>##############  ..+;:<<<:::<:<<<<::<:<%##############X      .O;:<<::<<<::<<:<:<<<,%###### :<<:;;;;:<,$###########X      ..+;,>###########X      X.+;,,############    +,$##X+<<%###########X     ..+;,,%##$##########     >,##$<::<$############     .O;:<:<:::<,$###XO::<::::<%###X<<<<::<<<:<<>##########@  ..+;:<::::::::::::::::::::::",
"::::::::::::::::::::::::::::::<,>#####X :<<<:;+OO.O+;:<:<,##############   .O;:<<:<:<:<<<<<<:<<,$##############      ..+;<<<<<<:<::::<:::,,%######@ <<::;++;:<,############       .O+;,%###########       ..+;,>###########@   .,%##@ ;<<%###########X     .O+:,>##%##########@    +,$##XO<<<%############     .+;::<<::<,%###@ +:::<:::,%###@;<:<<<::<<<<,$#########@   .O;:<::::::::::::::::::::::",
":::::::::::::::::::::::::::::<,>#####@ +<<<:;+O..O+;:<<::<$#############@  .O+::<<<<::<:<:<:<:<,##############@       O+;<<<::<:::;O:<<<,,$#######XO<<:;+O+;:,>############       .O;:,############       .O;:,%###########X   >>### O<<<%###########X     .O;,,$##>##########X   O,%##@ +::<%############@   ..+;<<:::<,>#### .<<::<<<:,$####O<<<<<<<<:<<<>#########X   ..+:<::::::::::::::::::::::",
"::::::::<::::::::::::::::::<<,>###### .:<<:;+O.OO+;:<<:<:<$##############  ..+;:<<::<<:<:<<<:<<%##############X      .O+:<<:<<:<:<:<:<,,>######### ;<:;O.O+;:,$###########X      ..+;,>###########@      X.O;:,%###########   ,,$##X ;<<<%############     .+,,$##%%##########X  .,>### .<<::>#############    .+;:<::<,>####X <:<<<:<<<,#####.<::::<<:<:<<>#########     .+;:<:::::::::::::::::::::",
":::::::::::::::<:::::<<<::<,,>######@ <:::;+OO.O+;;;:::::,>##############@  .O;:<<::<::;<:<<:<,$##############X      .O;:<<<::<:<<<<,,>$#########@ ;;;+...O+<,############X      .O+:,%###########X      .O+;:,$###########  ,,$##@ +:<<:>############$   .+,,$##@,%##########X .,>###X :<:<:<$############$  ..+:<<<<,%####X ;::<<<<<<<,######;:;;;:<<<<:<,#########     .O;:<:::::::::::::::::::::",
":::::::::::::<<<:::::<<:<:<,%#######@.+;:;+O..OO;;;;;:<:::>###############. .O+:<<<:<+;;+:+<:,>###############X     ..O;:<:;:;;<:<<,>$###########X.+.+O...O;,>############       .O;:,$###########       .O;:<,############%,,$##@ .:<<<<,#############%%;,,%$##@ ,###########$>,>###X +<<<<<<%#############$O..+:<<,,$####@ ;<<<<::;::<>######.;++;:<<<<<<,########X     .O+:<:::::::::::::::::::::",
":::::::::::::<<::::<<<<<:,,%#########O:;;;O..OO;::+O;:<<<,>###############$.XOO.OOO;::::;<:<<,$###############X      ..O:<:;+;:<,,>$############# O++O...O;:,%###########@      ..+;<>###########@      ..O;:<,#############%####X +:<:<::%##############%%##### .,############%$###@ .:<:<<:::$#############$>>,,,>$#####@ O<<:<:;;+;:,>######$++O+;<<<:<<>#######@      .O+:<<::::::::::::::::::::",
":::::::::::::::<<:::<<<,,>$##########%:++OO..O+;:;<:<::<<,$################$>O+;:<:::::::<:,,%################$O.   .O+:<<:,,,,>%###############@ ;O.....+;:,$###########X      .O+:,%###########X      .O+:<<,#################X O;:<<::;>#################### X<,################@ .;:<<<::;;>#########################@ O<:<<:;+++;:,>#######$OOO;:<:<<,$#######X      .O+:<<::::::::::::::::::::",
":::::::::::::::::<:::,,>%#############$>,;..O+;:<;<<,,,,>$###################$>,,<<:<::<,,,>$##################$%>,,,,,,>>>%%$##################@ +O. . .+::,############       .O;:,$###########       .O;:<<<$###############X .+;:<<;;+;$##################X ::<$###############  +;::<:;;+;;%#######################@ O::<<:;+OO++:,%########%OO+:<<<,>#######X       .O+:<:::::::::::::::::::::",
"::::::::<::::<<<<:::<>$##################$#.+;:<::+,%$###########################$>:<+;,%####################################################### . .  ..OOO>>###########@      ..+;,,###########@       .O;<<:<%##############X  O+;:<:;++;>$################X ;<<:%##############  .+::::;;++;:<%#####################X O<<:::;+OOO+;:,%#########$>;,,,,%#######X ..     .O;:<:::::::::::::::::::::",
"::::::::::::::::::::<>#####################.+:<<:::,##############################@;:::,######################################################## ..   ..O;:,%###########X      .O+:<>###########X      .O+;:<<:<#############X  .O+;::;+++;:>###############  +:<<<<$###########@   O+;:::;++;;:<<+##################@  ;<<<<:;;+OO+;:<,$############%%$########X .O.     .O;:<<::::::::::::::::::::",
":::::::::::::::::::::,##################### ;:<:::::##############################@O<:::#######################################################@ ..   ..+;:<############       .O;:<%###########       .O+:<<:<:,##########X    .O+;;;+++;;:<;############@  O;::::;;##########X   ..+;;;++++;:<<<<+@##############@X .:<<<::;+OOO+;;:<,####XXX@##############X  +;O.    .O+;<<:::::::::::::::::::::",
":::::::::::::::::::::::                     ;:<<:::<:                              .<<<::                                                             .O+:<<<                  .+;:<:O                 .O;:<<:<:<<@@###@@X       .O++++++;:<<<:@@######@X   .O++;;;++O@######@      .O++++O+;::<<<<<:.X@########@@X  +:::::;++OOOO+::<<<### X++OXX@########@X  +<:;O.    .O;:<::::::::::::::::::::::",
":::::::::::::::::::::::::::<<<<:;;+O.     .O;:<<<<::::::<:<<<<<:;+.             .O+::<<<<<:<:<<:<<<;;O.X           X.+;:<<<<<<<<<<::::;;;++O...       .O;:<:<:<<<<<;+OX       ..+:<<:::<:<<:;O.       .O+;<<<:::<:<+.            ..OOOO+;:<<:<<<OXXXX        ..OOOOOOOO.XXX         ..OOOO++;<<:<:<<:;+.  XXXX     .O+;;;;++OOOO++;:<<<<>X .:<:;O.   XXXX   O+:<<:+O.  ..O+;:<<:::::::::::::::::::::",
":::::::::::::::::::::::::<:<<<:;;+O..     .O+;::<<<<::<::<<<<::;+O.X            ..O+;;:<<<<<:<<<<:;;+..             .O+;::<<<<:::::;;;++OO...        ..+::<::<:::<<;+..       .O;:<<:::::<<:+O.       .O+:<<:<<:<:<<<;+.         ...OO+;:<<<:<<<:;OX          .....OO+;;;O..         ...OO+;:<<::::<<:;O..         ...OOOOOO..OO+;:<<:::<;;:<<:+O.  X..OO+<<<<<<:;O..  ..+;:<<::::::::::::::::::::::",
":::::::::::::::::::::::::::<<:;+O...      ..O++;::<<:::<:<<::;;+O..              ..O++;;:<<<:<<<:;+OO..             ..O+;;;;;;;;;;+++OOO....         .O+:<<<:<::<<:;O.       ..O;<<<:::<:<<;+O.      ..+;:<<:::<:<:<<:+O.         ..OO;:<<<:<::<<;+O.          X...O+;:::;+O.        ...O+;:<<<:<:::<<:;O..          ........OO+:<:<:<<<:<:::::+O..  ..O+;;:::::;+O.....O;:<<:::::::::::::::::::::::",
":::::::::::::::::::::::::<:<:;+OO... .  . ..OO++;:<<<:::<<::;++OO.. .        . .....O+++;:<<<<<:;+OO...          . ...OOO++++++++OOOOO.... . .     ...O;:<:<::<<:<:;O..    . .O+:<<:::::<<:;+...    ..O+;<<:<::<:::<<:;O.        ...++::<:<:<:<<<:;+O.X        ...O+;:<<<:;O.        ..O+;:<<:<:<:<:<<::;OO..         ......O+;;:<:<::<:<:<<<<:+........O+;;;;;;+O....O++::<<:<:::::::::::::::::::::",
"::::::::::::::::::::::::::<<:;+OO...........OOO++;:<<:::<<:;++OOO..................OOO++;::<<<:;++OO..................OOOO+OO+OOOOOOOOO.............OO+::<:::<::<<:;+O.......OO;:<<::::<:<:;+O.......O+;:<<:<<::<::<<:;+O.. . ....O+;:<<:<:::<:<<::;+O..    . ...O+;:<<<<<;+O..    ...O+;:<<:<::::::<<<::;+O.. .  . .  ...OO+;;<<<:::<:<:<::<:;+O....OOOOOO++++OOO...O+;::<:::::::::::::::::::::::::",
"::::::::::::::::::::::::::<<:;++++OO+OOO+O+O++++;:<<::<::<<:;+++++O++OOOOO+OOO+OO+O+O+++;:<<<<<:;++++++O+O+O+OOOOOO+O++++++++++++++++++OOO+O+OOOO+O++;;:<<::<::<:<:;;++OOOO+++;;<<:<::::<<<:;++OOOO+O+;:<<:<:<:<<::<<<:;+OO...OOO+;;:<<<:::::::<<<<:;+OO......OO++;:<:::<<:;+OO....OO+;;:<<:<:<<::<::<<<<:;++OO.........OO+;;:<<<:<::<:::::<<<:+OOO+++++OOOOOO+OOOOO+;;:<<::::::<:::::::::::::::::::",
":::::::::::::::::::::::::::<<::;;;;;;;;;;;;;;;;:::<:::::<<<:::;;;;;;;;;;;;;;;;;;;;;;;;;:::<<<<:+::;;;;;;;;;O+;;;:;;;;+;;;;;;;;;;+O+O;;;+;;;;;;;+;;;;:::<<<:::::<<<<:O;;;;;;;;::<<<:::::::<<+O:;;;;;+O:::<<+<;<::<:::<<<:;;++++++;;::<<:::::::;::::<<:;;++OOOO++;;::<;+<:::<:;++OOOO+;;:<<<<:::::<:<:<+::<<::;;++OOOOOO+++;;:<<<<:::::::<<:<::<:;++;;;;;;;++++++++++;;::<:<::::::::::::::::::::::::::",
"::::::::::::::::::::::::::::<<<::::::::<<<<<<<:<<<;<:::::<<<<<<<<<<:<:<::<:<:<<::::::::<<<<:<<<:<<<:::<::::.::<::<<<+:::::<;;<:<;O;.<:<<;<:<:<:;<<::<<<::::::::::<<<<;::<<<<;<<<<::::::<::<<:<<:<<;:<+:<<:O<O:::<:<::<<<:::;;;;:::<<<<::<:::::::<:::<;:;;;;;;;;::<<<:<::::<<<:;;;;;;::<<::::::<:<:::::<:<:<<<::;;+;;;;;;::<<<<::::::::::::::<<<:;:::<<::::;;;;;;;;:::<<<::::::::::::::::::::::::::::",
":::::::::::::::::::::::::::::<<:<<<<<:<<<<<:<<<<<:;::<:<:<<:<:<::<<<::<:::<<<<::<<<::::<:<::<:<:<<<<<<<<<<;;<<<<:<<<;<<<<<<;<<<<:+<O<<<<;<<:<:<<:<<<:<::<:::<<<:::<<<:::<<<<;:::<::<:<<<<::::<<:<::<<<<:<:O:+<:<:::<::<:<<<<<<<<<<<::<:::<::::<<:<:<<;:;;::;:;:<:<<::::<::::<<<:<;:;:<::<::<:<:::<::<:::<<::<<<<:+::::<<<<<<::::::::::::<:::::<<<<<<<<<<<<<::::::<<<<:<::<::::::::::::::::::::::::::",
":::::::::::::::::::::::::::<::<:<::<::<:<::::::::<<:::::::::::;;::::<;+::+:::;::;<:<;:::<:<:::;;:::::<:::<;<::::<::<<:<<<<<::<::<;:;:::::::::::<::::::::::::<;;::;:::+::;::<;::<:::;:;::<:<:::::::<;<<::::+:;::<::::::::<:<<<<<:<:<::::::::<::;:::<:<;:::<<:;:;:::::::<::::::<<<<:+:;:::::;::;:<:<::;;:::;:<;<<<<::<<<<<<<:::::::::::::::<::<:<<<<:<:::<:<<<<<<<<<<<:<::::::::::::::::::::::::::::::",
":::::::::::::::::::::::::::::::::::::::::::::<::::::::::;;:::::::::::::::<:<;<:::;::<:::::::::::<<:<:::<:::::<::<:::::::::::::::::::<:<:::<:::::<::::::::::::::::<:<:::::::::::::::;::::::::::::::::::<::::<:::::<:<:::::<:::::<::<:<:<:<:::::<:::::::::<<<:+:::::::<::::<:;;;;;<:;::::<:<<:::::::::::::;<<::;:::::::::::::::::::::<::<::::<::::<:<:::::<:<:::<:<:<:::<:<:::::::::::::::::::::::::::",
"::::::::::::::::::::::::::::::::::<::::<:::::::::::::::<:::::::::::<:::::<<:;<<:<<<::::::::::::<:::::<::::::::::::<<:::<:<:::<:::<::<::<:<;::::::;::::::::<::::::<<:::::::::::<::::;:<::::::::::::<::<:::::::::<:::<:<:::::::::::::::::::::::::::<:::::<:::<;:::::<::<::::::::::<:;:<::<:::::::::::::::<;:<<:<:::::::::::::::::::::::::::::::::<:::<:<::::::::::::::<:::::::::::::::::::::::::::::::",
":::::::::::::::::::::::::::::::::::<::::::::::<::<<::::::<;:::;<:<:::;::<;:::::::<:::<<:::::<:<;::<::::::::::::::::<::::<:<:::::::<::::<:::::::::<<::::<;:::::::<:::::::<:::::::<::;::::::::::::::::::::::<:<:::<:::::<:<:::::::<;<:<::<:::::::::::::<<:<<::;:<::<<::::<:<::::::::;:<::<:::<:<::::<:<;:::::::<:<:::::::::<:<::::::::::::::<:<::::::::<::<::::::::<::::::::::::::::::::::::::::::::::",
":::::::::::::::::::::::::::::::::::::::::::::::<::::::<;;<::::<:;::::<<;:<:::<;;<:<:;<::;::::;:<;:::<:<:<::::<::::::;::<::::<::::::<::::::<:::::::;::::<;::::<<;:<::;;:<;;:::;;;<:;;::<:;::;;;;<::::<:<:::<::::::<::<:::::::::::<;<::<::::::<:;<:;;<:::;;:::;<<:::<<;;;;::::::::::;<<:::<::;;:::::;;:<;::<;;<:<::;::::::::::::::::::::<:::<:::::<:<::::::::::::::::::<:<::::::::::::::::::::::::::::",
"::::::::::::::::::::::::::::::<:::::::::::::<:::::<<::::::::::<::::::<:::::<::::<::::::<::::::::<:::::::::::::<:::::<<:<:<:::::::::::<:<:::<<:::::<:::::::::::::::::::::::::::::::::::::::::::::::::<::::::<:<:::<::::::::::::::::::::::<::::::::::::<:::<:::::::::::::::<:<:::::::::::::::::<:::::::::::::::::::<:::::::::::<::::::::::::::<:<::<:::::<::::::::<:<:::::::::::::::::::::::::::::::::",
":::::::::::::::::::::::::::::::::::::::::::::::::<:::::::::::;;::::::;;:<:::<:::::<:::::::::::::::<:::<::<:::::::::::::::::::::::::<:::::::::::::::::::::::::;;<::::::::::::::::::::::::::::::::::::::::::::::<:::::::::::::::::<:<::<::::::::<::::::::<::::::::::::<:<:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::<::::::<::::::::::::::::<:::<:::::::::::::::::::::::::::",
":::::::::::::::::::::::::::::::<::::::::::::::::::::::::::::::::::::::::::::::<:::::::::::::::::::::::::::::::::::::::<::<:<::::::::::<:<::::::::::::<::::::::::::::::::::::::::<:::::::::::::::::::::::::::::<:::::<:::::::::::::::::::<:::::::::::::::<:<::::::::::::::::::::::::::<:::::::::<:::::::::::::::::<::::::::::::::::::::::<:::::<:::::::::::::::::::::::::::::::::::::::::::::::::::::",
":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::<:::<::::::::::::::<:::::::::::::::::::::::<:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::<::::::::::::::::::<:::::::::::::::::::::::<::::::::::<:<:<::::::::::::::::::::::::::::::::::<:::::<::::::::::::::::::::::::::::<::::::::::::<::<::<::::::::::::::::::::::::::::::::",
":::::::::::::::::::::::::::::::::::::::::::::::::::::::::<:::::::::::::::::::::::::::::::::::::::::::<::<:::::::::::::<:::<:<:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::<:::::::::::::::::::::::::::::::::::::::::::::<::::::::::<:<:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::<:::::::::::::::::::::::::::::::::::::::::<::<:::::::::::::::::::::::::::",
"::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::<::::::::::::::::::<::::::::::::::::::::::::::::::::::::<::::::::::::::::<::<::<:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::<:::::::::::::::::::::<::::<:::::::::::::::::::::<:::::::::::::::<:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::",
"::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::<::::::::::::::<::<::::::::::::::::::::::<::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::<::::::::::<:::::<:::::::::::::::::::::<::::::::::::::<:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::<:::::::::::::::::::::::::::::::::",
":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::<::::::::::::::::::::::::::<:::::<<::<:::::::::::::::::::::::::::::::::::::::::::::::::<::::::::::::::::::::::::::::::::::::::::<::::::::::::::<::::<:::::::::::::::<:<::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::<:::<:::::::::::::::::::::::::::",
":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::<:::::::::::<:<:<::<:<::::::::::<<:::::::::::::::::::<::::::::::::::::::::::<:<::::::<:::::<:<::::::::::::::::::::::::::::::::::<::::::::::::::::::::::::::::<::::::::::::::::::::::::<<::::::::::<::::::::::::::::::::::::::::::::::::::::::::::::::::<::::::<::::::::::::::::::::::::::::::",
":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::<:::<:::::::::::::::::::<::::<::::::<::::::<::::::::::::::::::::<:::::::<:::::::::::::::<:::::<::;:::<:<;:::::::::::::::::::::::<::::<::::<::::::<:::::::::::::::<:::::::::::::::::::::::::::::::<::::::::::<:::::::<::::::::::::::::::::::::::::::::::::::::::<::::<::::::::::::::::::::::::::::::::::",
"::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::<:::::::::::::::::::::<:::::<<:::::<::::::<:<::::::::::::<<<:::<:<::::<<<<:::<<<:<:::::<:::::<::::::<::::::::::::::::::::::::::::<:::::::<<<:::<<<<<::<<<<<<::::<:::::::::::<<<:<<::::<<:::::<<:<::::<::::::<::::::<::::::::::::::::::::::::::::::::::::::::::::<:::::::::::::::::::::::::::::::::::::",
"::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::<::::::::::::::::<<:::<<<<<:::::<::::::<:::::::::::<:<<<<::<<<<<::<<<<:::<<<<<<::::<:::::<<<:::::<:<::::::::::::::::::::::::::::::::::<<<::<<<<<::<:<:<<<:::<:::::::::::<:<:<<<:::<<:<::<<<:<::<<<<<::::<:::::::<:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::",
":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::<::::::::::::::<::::::<:::::::::::<<<<<:::<:::<:::<:::::<<:<:<::::<::::::::<::::::::::::::::::::::::::::::::::::::::<::<:::<::::::::<::<:::<::::::::::::::<::<:<::::<:<::::<::<<<<<::::<:::::::<:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::",
":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::<::::::::::::::<:::::::<::::::::::<<<<<<::::::<:::<:::::<<:<:<::::<::::::::<::::::::::::::::::::::::::::::::::::::::<::<:::<::::::<:<::<:::<::::::::::::<:<::<:<::::<:<::::<::<<<<<::::<:::::::<:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::",
"::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::<::::::::::::::<::::::<:::::<<::::<::::::<:::<:::<:::::<:::::::::<::::<<<<::::::::::::::::::::::::::::<::::::::::::<::<:::<::::::<:<::<:::<::::::::::::<:<::<:<<::<:::<::<<:::::::::::<::::::<::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::",
"::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::<::::::::::::::<:::::::<::::<<:::::<<<:::<<:<<<:::<<<::<<:<::<:<<<<<::::<::::::::::::::::::::::::::::<<:::::::::::<<::<<:::<<<::<<:<<:<:<<<<<:::::::::<<:<::<:::<<<::::<<<<<::<<<:::::<::::::<::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::",
":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::<::::::<:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::",
"::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::",
"::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::",
"::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::",
"::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::",
"::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::",
"::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::",
"::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::",
"::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::",
"::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::",
"::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::",
"::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::"
};