{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "This notebook tests the processing of ANSI and VT100 color escapes" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [], "source": [ "from __future__ import print_function" ] }, { "cell_type": "code", "execution_count": 41, "metadata": { "collapsed": false }, "outputs": [], "source": [ "ESC = '\\x1b['\n", "RESET = ESC + \"00m\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Plain ANSI 16-color" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[01;40;30mtext \u001b[01m\u001b[01;40;31mtext \u001b[01m\u001b[01;40;32mtext \u001b[01m\u001b[01;40;33mtext \u001b[01m\u001b[01;40;34mtext \u001b[01m\u001b[01;40;35mtext \u001b[01m\u001b[01;40;36mtext \u001b[01m\u001b[01;40;37mtext \u001b[01m\n", "\u001b[01;41;30mtext \u001b[01m\u001b[01;41;31mtext \u001b[01m\u001b[01;41;32mtext \u001b[01m\u001b[01;41;33mtext \u001b[01m\u001b[01;41;34mtext \u001b[01m\u001b[01;41;35mtext \u001b[01m\u001b[01;41;36mtext \u001b[01m\u001b[01;41;37mtext \u001b[01m\n", "\u001b[01;42;30mtext \u001b[01m\u001b[01;42;31mtext \u001b[01m\u001b[01;42;32mtext \u001b[01m\u001b[01;42;33mtext \u001b[01m\u001b[01;42;34mtext \u001b[01m\u001b[01;42;35mtext \u001b[01m\u001b[01;42;36mtext \u001b[01m\u001b[01;42;37mtext \u001b[01m\n", "\u001b[01;43;30mtext \u001b[01m\u001b[01;43;31mtext \u001b[01m\u001b[01;43;32mtext \u001b[01m\u001b[01;43;33mtext \u001b[01m\u001b[01;43;34mtext \u001b[01m\u001b[01;43;35mtext \u001b[01m\u001b[01;43;36mtext \u001b[01m\u001b[01;43;37mtext \u001b[01m\n", "\u001b[01;44;30mtext \u001b[01m\u001b[01;44;31mtext \u001b[01m\u001b[01;44;32mtext \u001b[01m\u001b[01;44;33mtext \u001b[01m\u001b[01;44;34mtext \u001b[01m\u001b[01;44;35mtext \u001b[01m\u001b[01;44;36mtext \u001b[01m\u001b[01;44;37mtext \u001b[01m\n", "\u001b[01;45;30mtext \u001b[01m\u001b[01;45;31mtext \u001b[01m\u001b[01;45;32mtext \u001b[01m\u001b[01;45;33mtext \u001b[01m\u001b[01;45;34mtext \u001b[01m\u001b[01;45;35mtext \u001b[01m\u001b[01;45;36mtext \u001b[01m\u001b[01;45;37mtext \u001b[01m\n", "\u001b[01;46;30mtext \u001b[01m\u001b[01;46;31mtext \u001b[01m\u001b[01;46;32mtext \u001b[01m\u001b[01;46;33mtext \u001b[01m\u001b[01;46;34mtext \u001b[01m\u001b[01;46;35mtext \u001b[01m\u001b[01;46;36mtext \u001b[01m\u001b[01;46;37mtext \u001b[01m\n", "\u001b[01;47;30mtext \u001b[01m\u001b[01;47;31mtext \u001b[01m\u001b[01;47;32mtext \u001b[01m\u001b[01;47;33mtext \u001b[01m\u001b[01;47;34mtext \u001b[01m\u001b[01;47;35mtext \u001b[01m\u001b[01;47;36mtext \u001b[01m\u001b[01;47;37mtext \u001b[01m\n" ] } ], "source": [ "for bg in range(40,48):\n", " for fg in range(30,38):\n", " print (\"{ESC}01;{bg};{fg}mtext {RESET}\".format(**locals()), end='')\n", " print ()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 256-color" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[00;38;5;0m000 \u001b[01m\u001b[00;38;5;1m001 \u001b[01m\u001b[00;38;5;2m002 \u001b[01m\u001b[00;38;5;3m003 \u001b[01m\u001b[00;38;5;4m004 \u001b[01m\u001b[00;38;5;5m005 \u001b[01m\u001b[00;38;5;6m006 \u001b[01m\u001b[00;38;5;7m007 \u001b[01m\n", "\u001b[00;38;5;8m008 \u001b[01m\u001b[00;38;5;9m009 \u001b[01m\u001b[00;38;5;10m010 \u001b[01m\u001b[00;38;5;11m011 \u001b[01m\u001b[00;38;5;12m012 \u001b[01m\u001b[00;38;5;13m013 \u001b[01m\u001b[00;38;5;14m014 \u001b[01m\u001b[00;38;5;15m015 \u001b[01m\n", "\n", "\u001b[00;38;5;16m016 \u001b[01m\u001b[00;38;5;17m017 \u001b[01m\u001b[00;38;5;18m018 \u001b[01m\u001b[00;38;5;19m019 \u001b[01m\u001b[00;38;5;20m020 \u001b[01m\u001b[00;38;5;21m021 \u001b[01m\n", "\u001b[00;38;5;22m022 \u001b[01m\u001b[00;38;5;23m023 \u001b[01m\u001b[00;38;5;24m024 \u001b[01m\u001b[00;38;5;25m025 \u001b[01m\u001b[00;38;5;26m026 \u001b[01m\u001b[00;38;5;27m027 \u001b[01m\n", "\u001b[00;38;5;28m028 \u001b[01m\u001b[00;38;5;29m029 \u001b[01m\u001b[00;38;5;30m030 \u001b[01m\u001b[00;38;5;31m031 \u001b[01m\u001b[00;38;5;32m032 \u001b[01m\u001b[00;38;5;33m033 \u001b[01m\n", "\u001b[00;38;5;34m034 \u001b[01m\u001b[00;38;5;35m035 \u001b[01m\u001b[00;38;5;36m036 \u001b[01m\u001b[00;38;5;37m037 \u001b[01m\u001b[00;38;5;38m038 \u001b[01m\u001b[00;38;5;39m039 \u001b[01m\n", "\u001b[00;38;5;40m040 \u001b[01m\u001b[00;38;5;41m041 \u001b[01m\u001b[00;38;5;42m042 \u001b[01m\u001b[00;38;5;43m043 \u001b[01m\u001b[00;38;5;44m044 \u001b[01m\u001b[00;38;5;45m045 \u001b[01m\n", "\u001b[00;38;5;46m046 \u001b[01m\u001b[00;38;5;47m047 \u001b[01m\u001b[00;38;5;48m048 \u001b[01m\u001b[00;38;5;49m049 \u001b[01m\u001b[00;38;5;50m050 \u001b[01m\u001b[00;38;5;51m051 \u001b[01m\n", "\n", "\u001b[00;38;5;52m052 \u001b[01m\u001b[00;38;5;53m053 \u001b[01m\u001b[00;38;5;54m054 \u001b[01m\u001b[00;38;5;55m055 \u001b[01m\u001b[00;38;5;56m056 \u001b[01m\u001b[00;38;5;57m057 \u001b[01m\n", "\u001b[00;38;5;58m058 \u001b[01m\u001b[00;38;5;59m059 \u001b[01m\u001b[00;38;5;60m060 \u001b[01m\u001b[00;38;5;61m061 \u001b[01m\u001b[00;38;5;62m062 \u001b[01m\u001b[00;38;5;63m063 \u001b[01m\n", "\u001b[00;38;5;64m064 \u001b[01m\u001b[00;38;5;65m065 \u001b[01m\u001b[00;38;5;66m066 \u001b[01m\u001b[00;38;5;67m067 \u001b[01m\u001b[00;38;5;68m068 \u001b[01m\u001b[00;38;5;69m069 \u001b[01m\n", "\u001b[00;38;5;70m070 \u001b[01m\u001b[00;38;5;71m071 \u001b[01m\u001b[00;38;5;72m072 \u001b[01m\u001b[00;38;5;73m073 \u001b[01m\u001b[00;38;5;74m074 \u001b[01m\u001b[00;38;5;75m075 \u001b[01m\n", "\u001b[00;38;5;76m076 \u001b[01m\u001b[00;38;5;77m077 \u001b[01m\u001b[00;38;5;78m078 \u001b[01m\u001b[00;38;5;79m079 \u001b[01m\u001b[00;38;5;80m080 \u001b[01m\u001b[00;38;5;81m081 \u001b[01m\n", "\u001b[00;38;5;82m082 \u001b[01m\u001b[00;38;5;83m083 \u001b[01m\u001b[00;38;5;84m084 \u001b[01m\u001b[00;38;5;85m085 \u001b[01m\u001b[00;38;5;86m086 \u001b[01m\u001b[00;38;5;87m087 \u001b[01m\n", "\n", "\u001b[00;38;5;88m088 \u001b[01m\u001b[00;38;5;89m089 \u001b[01m\u001b[00;38;5;90m090 \u001b[01m\u001b[00;38;5;91m091 \u001b[01m\u001b[00;38;5;92m092 \u001b[01m\u001b[00;38;5;93m093 \u001b[01m\n", "\u001b[00;38;5;94m094 \u001b[01m\u001b[00;38;5;95m095 \u001b[01m\u001b[00;38;5;96m096 \u001b[01m\u001b[00;38;5;97m097 \u001b[01m\u001b[00;38;5;98m098 \u001b[01m\u001b[00;38;5;99m099 \u001b[01m\n", "\u001b[00;38;5;100m100 \u001b[01m\u001b[00;38;5;101m101 \u001b[01m\u001b[00;38;5;102m102 \u001b[01m\u001b[00;38;5;103m103 \u001b[01m\u001b[00;38;5;104m104 \u001b[01m\u001b[00;38;5;105m105 \u001b[01m\n", "\u001b[00;38;5;106m106 \u001b[01m\u001b[00;38;5;107m107 \u001b[01m\u001b[00;38;5;108m108 \u001b[01m\u001b[00;38;5;109m109 \u001b[01m\u001b[00;38;5;110m110 \u001b[01m\u001b[00;38;5;111m111 \u001b[01m\n", "\u001b[00;38;5;112m112 \u001b[01m\u001b[00;38;5;113m113 \u001b[01m\u001b[00;38;5;114m114 \u001b[01m\u001b[00;38;5;115m115 \u001b[01m\u001b[00;38;5;116m116 \u001b[01m\u001b[00;38;5;117m117 \u001b[01m\n", "\u001b[00;38;5;118m118 \u001b[01m\u001b[00;38;5;119m119 \u001b[01m\u001b[00;38;5;120m120 \u001b[01m\u001b[00;38;5;121m121 \u001b[01m\u001b[00;38;5;122m122 \u001b[01m\u001b[00;38;5;123m123 \u001b[01m\n", "\n", "\u001b[00;38;5;124m124 \u001b[01m\u001b[00;38;5;125m125 \u001b[01m\u001b[00;38;5;126m126 \u001b[01m\u001b[00;38;5;127m127 \u001b[01m\u001b[00;38;5;128m128 \u001b[01m\u001b[00;38;5;129m129 \u001b[01m\n", "\u001b[00;38;5;130m130 \u001b[01m\u001b[00;38;5;131m131 \u001b[01m\u001b[00;38;5;132m132 \u001b[01m\u001b[00;38;5;133m133 \u001b[01m\u001b[00;38;5;134m134 \u001b[01m\u001b[00;38;5;135m135 \u001b[01m\n", "\u001b[00;38;5;136m136 \u001b[01m\u001b[00;38;5;137m137 \u001b[01m\u001b[00;38;5;138m138 \u001b[01m\u001b[00;38;5;139m139 \u001b[01m\u001b[00;38;5;140m140 \u001b[01m\u001b[00;38;5;141m141 \u001b[01m\n", "\u001b[00;38;5;142m142 \u001b[01m\u001b[00;38;5;143m143 \u001b[01m\u001b[00;38;5;144m144 \u001b[01m\u001b[00;38;5;145m145 \u001b[01m\u001b[00;38;5;146m146 \u001b[01m\u001b[00;38;5;147m147 \u001b[01m\n", "\u001b[00;38;5;148m148 \u001b[01m\u001b[00;38;5;149m149 \u001b[01m\u001b[00;38;5;150m150 \u001b[01m\u001b[00;38;5;151m151 \u001b[01m\u001b[00;38;5;152m152 \u001b[01m\u001b[00;38;5;153m153 \u001b[01m\n", "\u001b[00;38;5;154m154 \u001b[01m\u001b[00;38;5;155m155 \u001b[01m\u001b[00;38;5;156m156 \u001b[01m\u001b[00;38;5;157m157 \u001b[01m\u001b[00;38;5;158m158 \u001b[01m\u001b[00;38;5;159m159 \u001b[01m\n", "\n", "\u001b[00;38;5;160m160 \u001b[01m\u001b[00;38;5;161m161 \u001b[01m\u001b[00;38;5;162m162 \u001b[01m\u001b[00;38;5;163m163 \u001b[01m\u001b[00;38;5;164m164 \u001b[01m\u001b[00;38;5;165m165 \u001b[01m\n", "\u001b[00;38;5;166m166 \u001b[01m\u001b[00;38;5;167m167 \u001b[01m\u001b[00;38;5;168m168 \u001b[01m\u001b[00;38;5;169m169 \u001b[01m\u001b[00;38;5;170m170 \u001b[01m\u001b[00;38;5;171m171 \u001b[01m\n", "\u001b[00;38;5;172m172 \u001b[01m\u001b[00;38;5;173m173 \u001b[01m\u001b[00;38;5;174m174 \u001b[01m\u001b[00;38;5;175m175 \u001b[01m\u001b[00;38;5;176m176 \u001b[01m\u001b[00;38;5;177m177 \u001b[01m\n", "\u001b[00;38;5;178m178 \u001b[01m\u001b[00;38;5;179m179 \u001b[01m\u001b[00;38;5;180m180 \u001b[01m\u001b[00;38;5;181m181 \u001b[01m\u001b[00;38;5;182m182 \u001b[01m\u001b[00;38;5;183m183 \u001b[01m\n", "\u001b[00;38;5;184m184 \u001b[01m\u001b[00;38;5;185m185 \u001b[01m\u001b[00;38;5;186m186 \u001b[01m\u001b[00;38;5;187m187 \u001b[01m\u001b[00;38;5;188m188 \u001b[01m\u001b[00;38;5;189m189 \u001b[01m\n", "\u001b[00;38;5;190m190 \u001b[01m\u001b[00;38;5;191m191 \u001b[01m\u001b[00;38;5;192m192 \u001b[01m\u001b[00;38;5;193m193 \u001b[01m\u001b[00;38;5;194m194 \u001b[01m\u001b[00;38;5;195m195 \u001b[01m\n", "\n", "\u001b[00;38;5;196m196 \u001b[01m\u001b[00;38;5;197m197 \u001b[01m\u001b[00;38;5;198m198 \u001b[01m\u001b[00;38;5;199m199 \u001b[01m\u001b[00;38;5;200m200 \u001b[01m\u001b[00;38;5;201m201 \u001b[01m\n", "\u001b[00;38;5;202m202 \u001b[01m\u001b[00;38;5;203m203 \u001b[01m\u001b[00;38;5;204m204 \u001b[01m\u001b[00;38;5;205m205 \u001b[01m\u001b[00;38;5;206m206 \u001b[01m\u001b[00;38;5;207m207 \u001b[01m\n", "\u001b[00;38;5;208m208 \u001b[01m\u001b[00;38;5;209m209 \u001b[01m\u001b[00;38;5;210m210 \u001b[01m\u001b[00;38;5;211m211 \u001b[01m\u001b[00;38;5;212m212 \u001b[01m\u001b[00;38;5;213m213 \u001b[01m\n", "\u001b[00;38;5;214m214 \u001b[01m\u001b[00;38;5;215m215 \u001b[01m\u001b[00;38;5;216m216 \u001b[01m\u001b[00;38;5;217m217 \u001b[01m\u001b[00;38;5;218m218 \u001b[01m\u001b[00;38;5;219m219 \u001b[01m\n", "\u001b[00;38;5;220m220 \u001b[01m\u001b[00;38;5;221m221 \u001b[01m\u001b[00;38;5;222m222 \u001b[01m\u001b[00;38;5;223m223 \u001b[01m\u001b[00;38;5;224m224 \u001b[01m\u001b[00;38;5;225m225 \u001b[01m\n", "\u001b[00;38;5;226m226 \u001b[01m\u001b[00;38;5;227m227 \u001b[01m\u001b[00;38;5;228m228 \u001b[01m\u001b[00;38;5;229m229 \u001b[01m\u001b[00;38;5;230m230 \u001b[01m\u001b[00;38;5;231m231 \u001b[01m\n", "\n", "\n", "\u001b[00;38;5;232m232 \u001b[01m\u001b[00;38;5;233m233 \u001b[01m\u001b[00;38;5;234m234 \u001b[01m\u001b[00;38;5;235m235 \u001b[01m\u001b[00;38;5;236m236 \u001b[01m\u001b[00;38;5;237m237 \u001b[01m\u001b[00;38;5;238m238 \u001b[01m\u001b[00;38;5;239m239 \u001b[01m\u001b[00;38;5;240m240 \u001b[01m\u001b[00;38;5;241m241 \u001b[01m\u001b[00;38;5;242m242 \u001b[01m\u001b[00;38;5;243m243 \u001b[01m\n", "\u001b[00;38;5;244m244 \u001b[01m\u001b[00;38;5;245m245 \u001b[01m\u001b[00;38;5;246m246 \u001b[01m\u001b[00;38;5;247m247 \u001b[01m\u001b[00;38;5;248m248 \u001b[01m\u001b[00;38;5;249m249 \u001b[01m\u001b[00;38;5;250m250 \u001b[01m\u001b[00;38;5;251m251 \u001b[01m\u001b[00;38;5;252m252 \u001b[01m\u001b[00;38;5;253m253 \u001b[01m\u001b[00;38;5;254m254 \u001b[01m\u001b[00;38;5;255m255 \u001b[01m\n", "\n" ] } ], "source": [ "t = \"{ESC}00;38;5;{i}m{i:03} {RESET}\"\n", "for i in range(16):\n", " print (t.format(**locals()), end='')\n", " if i % 8 == 7:\n", " print ()\n", "print ()\n", "\n", "for i in range(16,232):\n", " print (t.format(**locals()), end='')\n", " if (i-16) % 6 == 5:\n", " print ()\n", " if (i-16) % 36 == 35:\n", " print ()\n", "\n", "print ()\n", "\n", "for i in range(232,256):\n", " print (t.format(**locals()), end='')\n", " if (i-232) % 12 == 11:\n", " print ()\n", "print ()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 256-color background" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[00;48;5;0m000 \u001b[01m\u001b[00;48;5;1m001 \u001b[01m\u001b[00;48;5;2m002 \u001b[01m\u001b[00;48;5;3m003 \u001b[01m\u001b[00;48;5;4m004 \u001b[01m\u001b[00;48;5;5m005 \u001b[01m\u001b[00;48;5;6m006 \u001b[01m\u001b[00;48;5;7m007 \u001b[01m\n", "\u001b[00;48;5;8m008 \u001b[01m\u001b[00;48;5;9m009 \u001b[01m\u001b[00;48;5;10m010 \u001b[01m\u001b[00;48;5;11m011 \u001b[01m\u001b[00;48;5;12m012 \u001b[01m\u001b[00;48;5;13m013 \u001b[01m\u001b[00;48;5;14m014 \u001b[01m\u001b[00;48;5;15m015 \u001b[01m\n", "\n", "\u001b[00;48;5;16m016 \u001b[01m\u001b[00;48;5;17m017 \u001b[01m\u001b[00;48;5;18m018 \u001b[01m\u001b[00;48;5;19m019 \u001b[01m\u001b[00;48;5;20m020 \u001b[01m\u001b[00;48;5;21m021 \u001b[01m\n", "\u001b[00;48;5;22m022 \u001b[01m\u001b[00;48;5;23m023 \u001b[01m\u001b[00;48;5;24m024 \u001b[01m\u001b[00;48;5;25m025 \u001b[01m\u001b[00;48;5;26m026 \u001b[01m\u001b[00;48;5;27m027 \u001b[01m\n", "\u001b[00;48;5;28m028 \u001b[01m\u001b[00;48;5;29m029 \u001b[01m\u001b[00;48;5;30m030 \u001b[01m\u001b[00;48;5;31m031 \u001b[01m\u001b[00;48;5;32m032 \u001b[01m\u001b[00;48;5;33m033 \u001b[01m\n", "\u001b[00;48;5;34m034 \u001b[01m\u001b[00;48;5;35m035 \u001b[01m\u001b[00;48;5;36m036 \u001b[01m\u001b[00;48;5;37m037 \u001b[01m\u001b[00;48;5;38m038 \u001b[01m\u001b[00;48;5;39m039 \u001b[01m\n", "\u001b[00;48;5;40m040 \u001b[01m\u001b[00;48;5;41m041 \u001b[01m\u001b[00;48;5;42m042 \u001b[01m\u001b[00;48;5;43m043 \u001b[01m\u001b[00;48;5;44m044 \u001b[01m\u001b[00;48;5;45m045 \u001b[01m\n", "\u001b[00;48;5;46m046 \u001b[01m\u001b[00;48;5;47m047 \u001b[01m\u001b[00;48;5;48m048 \u001b[01m\u001b[00;48;5;49m049 \u001b[01m\u001b[00;48;5;50m050 \u001b[01m\u001b[00;48;5;51m051 \u001b[01m\n", "\n", "\u001b[00;48;5;52m052 \u001b[01m\u001b[00;48;5;53m053 \u001b[01m\u001b[00;48;5;54m054 \u001b[01m\u001b[00;48;5;55m055 \u001b[01m\u001b[00;48;5;56m056 \u001b[01m\u001b[00;48;5;57m057 \u001b[01m\n", "\u001b[00;48;5;58m058 \u001b[01m\u001b[00;48;5;59m059 \u001b[01m\u001b[00;48;5;60m060 \u001b[01m\u001b[00;48;5;61m061 \u001b[01m\u001b[00;48;5;62m062 \u001b[01m\u001b[00;48;5;63m063 \u001b[01m\n", "\u001b[00;48;5;64m064 \u001b[01m\u001b[00;48;5;65m065 \u001b[01m\u001b[00;48;5;66m066 \u001b[01m\u001b[00;48;5;67m067 \u001b[01m\u001b[00;48;5;68m068 \u001b[01m\u001b[00;48;5;69m069 \u001b[01m\n", "\u001b[00;48;5;70m070 \u001b[01m\u001b[00;48;5;71m071 \u001b[01m\u001b[00;48;5;72m072 \u001b[01m\u001b[00;48;5;73m073 \u001b[01m\u001b[00;48;5;74m074 \u001b[01m\u001b[00;48;5;75m075 \u001b[01m\n", "\u001b[00;48;5;76m076 \u001b[01m\u001b[00;48;5;77m077 \u001b[01m\u001b[00;48;5;78m078 \u001b[01m\u001b[00;48;5;79m079 \u001b[01m\u001b[00;48;5;80m080 \u001b[01m\u001b[00;48;5;81m081 \u001b[01m\n", "\u001b[00;48;5;82m082 \u001b[01m\u001b[00;48;5;83m083 \u001b[01m\u001b[00;48;5;84m084 \u001b[01m\u001b[00;48;5;85m085 \u001b[01m\u001b[00;48;5;86m086 \u001b[01m\u001b[00;48;5;87m087 \u001b[01m\n", "\n", "\u001b[00;48;5;88m088 \u001b[01m\u001b[00;48;5;89m089 \u001b[01m\u001b[00;48;5;90m090 \u001b[01m\u001b[00;48;5;91m091 \u001b[01m\u001b[00;48;5;92m092 \u001b[01m\u001b[00;48;5;93m093 \u001b[01m\n", "\u001b[00;48;5;94m094 \u001b[01m\u001b[00;48;5;95m095 \u001b[01m\u001b[00;48;5;96m096 \u001b[01m\u001b[00;48;5;97m097 \u001b[01m\u001b[00;48;5;98m098 \u001b[01m\u001b[00;48;5;99m099 \u001b[01m\n", "\u001b[00;48;5;100m100 \u001b[01m\u001b[00;48;5;101m101 \u001b[01m\u001b[00;48;5;102m102 \u001b[01m\u001b[00;48;5;103m103 \u001b[01m\u001b[00;48;5;104m104 \u001b[01m\u001b[00;48;5;105m105 \u001b[01m\n", "\u001b[00;48;5;106m106 \u001b[01m\u001b[00;48;5;107m107 \u001b[01m\u001b[00;48;5;108m108 \u001b[01m\u001b[00;48;5;109m109 \u001b[01m\u001b[00;48;5;110m110 \u001b[01m\u001b[00;48;5;111m111 \u001b[01m\n", "\u001b[00;48;5;112m112 \u001b[01m\u001b[00;48;5;113m113 \u001b[01m\u001b[00;48;5;114m114 \u001b[01m\u001b[00;48;5;115m115 \u001b[01m\u001b[00;48;5;116m116 \u001b[01m\u001b[00;48;5;117m117 \u001b[01m\n", "\u001b[00;48;5;118m118 \u001b[01m\u001b[00;48;5;119m119 \u001b[01m\u001b[00;48;5;120m120 \u001b[01m\u001b[00;48;5;121m121 \u001b[01m\u001b[00;48;5;122m122 \u001b[01m\u001b[00;48;5;123m123 \u001b[01m\n", "\n", "\u001b[00;48;5;124m124 \u001b[01m\u001b[00;48;5;125m125 \u001b[01m\u001b[00;48;5;126m126 \u001b[01m\u001b[00;48;5;127m127 \u001b[01m\u001b[00;48;5;128m128 \u001b[01m\u001b[00;48;5;129m129 \u001b[01m\n", "\u001b[00;48;5;130m130 \u001b[01m\u001b[00;48;5;131m131 \u001b[01m\u001b[00;48;5;132m132 \u001b[01m\u001b[00;48;5;133m133 \u001b[01m\u001b[00;48;5;134m134 \u001b[01m\u001b[00;48;5;135m135 \u001b[01m\n", "\u001b[00;48;5;136m136 \u001b[01m\u001b[00;48;5;137m137 \u001b[01m\u001b[00;48;5;138m138 \u001b[01m\u001b[00;48;5;139m139 \u001b[01m\u001b[00;48;5;140m140 \u001b[01m\u001b[00;48;5;141m141 \u001b[01m\n", "\u001b[00;48;5;142m142 \u001b[01m\u001b[00;48;5;143m143 \u001b[01m\u001b[00;48;5;144m144 \u001b[01m\u001b[00;48;5;145m145 \u001b[01m\u001b[00;48;5;146m146 \u001b[01m\u001b[00;48;5;147m147 \u001b[01m\n", "\u001b[00;48;5;148m148 \u001b[01m\u001b[00;48;5;149m149 \u001b[01m\u001b[00;48;5;150m150 \u001b[01m\u001b[00;48;5;151m151 \u001b[01m\u001b[00;48;5;152m152 \u001b[01m\u001b[00;48;5;153m153 \u001b[01m\n", "\u001b[00;48;5;154m154 \u001b[01m\u001b[00;48;5;155m155 \u001b[01m\u001b[00;48;5;156m156 \u001b[01m\u001b[00;48;5;157m157 \u001b[01m\u001b[00;48;5;158m158 \u001b[01m\u001b[00;48;5;159m159 \u001b[01m\n", "\n", "\u001b[00;48;5;160m160 \u001b[01m\u001b[00;48;5;161m161 \u001b[01m\u001b[00;48;5;162m162 \u001b[01m\u001b[00;48;5;163m163 \u001b[01m\u001b[00;48;5;164m164 \u001b[01m\u001b[00;48;5;165m165 \u001b[01m\n", "\u001b[00;48;5;166m166 \u001b[01m\u001b[00;48;5;167m167 \u001b[01m\u001b[00;48;5;168m168 \u001b[01m\u001b[00;48;5;169m169 \u001b[01m\u001b[00;48;5;170m170 \u001b[01m\u001b[00;48;5;171m171 \u001b[01m\n", "\u001b[00;48;5;172m172 \u001b[01m\u001b[00;48;5;173m173 \u001b[01m\u001b[00;48;5;174m174 \u001b[01m\u001b[00;48;5;175m175 \u001b[01m\u001b[00;48;5;176m176 \u001b[01m\u001b[00;48;5;177m177 \u001b[01m\n", "\u001b[00;48;5;178m178 \u001b[01m\u001b[00;48;5;179m179 \u001b[01m\u001b[00;48;5;180m180 \u001b[01m\u001b[00;48;5;181m181 \u001b[01m\u001b[00;48;5;182m182 \u001b[01m\u001b[00;48;5;183m183 \u001b[01m\n", "\u001b[00;48;5;184m184 \u001b[01m\u001b[00;48;5;185m185 \u001b[01m\u001b[00;48;5;186m186 \u001b[01m\u001b[00;48;5;187m187 \u001b[01m\u001b[00;48;5;188m188 \u001b[01m\u001b[00;48;5;189m189 \u001b[01m\n", "\u001b[00;48;5;190m190 \u001b[01m\u001b[00;48;5;191m191 \u001b[01m\u001b[00;48;5;192m192 \u001b[01m\u001b[00;48;5;193m193 \u001b[01m\u001b[00;48;5;194m194 \u001b[01m\u001b[00;48;5;195m195 \u001b[01m\n", "\n", "\u001b[00;48;5;196m196 \u001b[01m\u001b[00;48;5;197m197 \u001b[01m\u001b[00;48;5;198m198 \u001b[01m\u001b[00;48;5;199m199 \u001b[01m\u001b[00;48;5;200m200 \u001b[01m\u001b[00;48;5;201m201 \u001b[01m\n", "\u001b[00;48;5;202m202 \u001b[01m\u001b[00;48;5;203m203 \u001b[01m\u001b[00;48;5;204m204 \u001b[01m\u001b[00;48;5;205m205 \u001b[01m\u001b[00;48;5;206m206 \u001b[01m\u001b[00;48;5;207m207 \u001b[01m\n", "\u001b[00;48;5;208m208 \u001b[01m\u001b[00;48;5;209m209 \u001b[01m\u001b[00;48;5;210m210 \u001b[01m\u001b[00;48;5;211m211 \u001b[01m\u001b[00;48;5;212m212 \u001b[01m\u001b[00;48;5;213m213 \u001b[01m\n", "\u001b[00;48;5;214m214 \u001b[01m\u001b[00;48;5;215m215 \u001b[01m\u001b[00;48;5;216m216 \u001b[01m\u001b[00;48;5;217m217 \u001b[01m\u001b[00;48;5;218m218 \u001b[01m\u001b[00;48;5;219m219 \u001b[01m\n", "\u001b[00;48;5;220m220 \u001b[01m\u001b[00;48;5;221m221 \u001b[01m\u001b[00;48;5;222m222 \u001b[01m\u001b[00;48;5;223m223 \u001b[01m\u001b[00;48;5;224m224 \u001b[01m\u001b[00;48;5;225m225 \u001b[01m\n", "\u001b[00;48;5;226m226 \u001b[01m\u001b[00;48;5;227m227 \u001b[01m\u001b[00;48;5;228m228 \u001b[01m\u001b[00;48;5;229m229 \u001b[01m\u001b[00;48;5;230m230 \u001b[01m\u001b[00;48;5;231m231 \u001b[01m\n", "\n", "\n", "\u001b[00;48;5;232m232 \u001b[01m\u001b[00;48;5;233m233 \u001b[01m\u001b[00;48;5;234m234 \u001b[01m\u001b[00;48;5;235m235 \u001b[01m\u001b[00;48;5;236m236 \u001b[01m\u001b[00;48;5;237m237 \u001b[01m\u001b[00;48;5;238m238 \u001b[01m\u001b[00;48;5;239m239 \u001b[01m\u001b[00;48;5;240m240 \u001b[01m\u001b[00;48;5;241m241 \u001b[01m\u001b[00;48;5;242m242 \u001b[01m\u001b[00;48;5;243m243 \u001b[01m\n", "\u001b[00;48;5;244m244 \u001b[01m\u001b[00;48;5;245m245 \u001b[01m\u001b[00;48;5;246m246 \u001b[01m\u001b[00;48;5;247m247 \u001b[01m\u001b[00;48;5;248m248 \u001b[01m\u001b[00;48;5;249m249 \u001b[01m\u001b[00;48;5;250m250 \u001b[01m\u001b[00;48;5;251m251 \u001b[01m\u001b[00;48;5;252m252 \u001b[01m\u001b[00;48;5;253m253 \u001b[01m\u001b[00;48;5;254m254 \u001b[01m\u001b[00;48;5;255m255 \u001b[01m\n", "\n" ] } ], "source": [ "t = \"{ESC}00;48;5;{i}m{i:03} {RESET}\"\n", "for i in range(16):\n", " print (t.format(**locals()), end='')\n", " if i % 8 == 7:\n", " print ()\n", "\n", "print ()\n", "\n", "for i in range(16,232):\n", " print (t.format(**locals()), end='')\n", " if (i-16) % 6 == 5:\n", " print ()\n", " if (i-16) % 36 == 35:\n", " print ()\n", "\n", "print ()\n", "\n", "for i in range(232,256):\n", " print (t.format(**locals()), end='')\n", " if (i-232) % 12 == 11:\n", " print ()\n", "print ()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 256-color background and foreground" ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[00;48;5;2;38;5;165m165 on 002 \u001b[00m\u001b[00;48;5;2;38;5;102m102 on 002 \u001b[00m\u001b[00;48;5;2;38;5;252m252 on 002 \u001b[00m\u001b[00;48;5;2;38;5;9m009 on 002 \u001b[00m\n", "\u001b[00;48;5;57;38;5;165m165 on 057 \u001b[00m\u001b[00;48;5;57;38;5;102m102 on 057 \u001b[00m\u001b[00;48;5;57;38;5;252m252 on 057 \u001b[00m\u001b[00;48;5;57;38;5;9m009 on 057 \u001b[00m\n", "\u001b[00;48;5;160;38;5;165m165 on 160 \u001b[00m\u001b[00;48;5;160;38;5;102m102 on 160 \u001b[00m\u001b[00;48;5;160;38;5;252m252 on 160 \u001b[00m\u001b[00;48;5;160;38;5;9m009 on 160 \u001b[00m\n", "\u001b[00;48;5;246;38;5;165m165 on 246 \u001b[00m\u001b[00;48;5;246;38;5;102m102 on 246 \u001b[00m\u001b[00;48;5;246;38;5;252m252 on 246 \u001b[00m\u001b[00;48;5;246;38;5;9m009 on 246 \u001b[00m\n" ] } ], "source": [ "t = \"{ESC}00;48;5;{bg};38;5;{fg}m{fg:03} on {bg:03} {RESET}\"\n", "\n", "for bg in [2, 57, 160, 246]:\n", " for fg in [165, 102, 252, 9]:\n", " print (t.format(**locals()), end='')\n", " print()\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 24-bit RGB" ] }, { "cell_type": "code", "execution_count": 48, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[00;38;2;0;0;0m000|000|000 \u001b[00m\u001b[00;38;2;0;0;30m000|000|030 \u001b[00m\u001b[00;38;2;0;0;60m000|000|060 \u001b[00m\u001b[00;38;2;0;0;90m000|000|090 \u001b[00m\u001b[00;38;2;0;0;120m000|000|120 \u001b[00m\u001b[00;38;2;0;0;150m000|000|150 \u001b[00m\u001b[00;38;2;0;0;180m000|000|180 \u001b[00m\u001b[00;38;2;0;0;210m000|000|210 \u001b[00m\u001b[00;38;2;0;0;240m000|000|240 \u001b[00m\n", "\u001b[00;38;2;0;30;0m000|030|000 \u001b[00m\u001b[00;38;2;0;30;30m000|030|030 \u001b[00m\u001b[00;38;2;0;30;60m000|030|060 \u001b[00m\u001b[00;38;2;0;30;90m000|030|090 \u001b[00m\u001b[00;38;2;0;30;120m000|030|120 \u001b[00m\u001b[00;38;2;0;30;150m000|030|150 \u001b[00m\u001b[00;38;2;0;30;180m000|030|180 \u001b[00m\u001b[00;38;2;0;30;210m000|030|210 \u001b[00m\u001b[00;38;2;0;30;240m000|030|240 \u001b[00m\n", "\u001b[00;38;2;0;60;0m000|060|000 \u001b[00m\u001b[00;38;2;0;60;30m000|060|030 \u001b[00m\u001b[00;38;2;0;60;60m000|060|060 \u001b[00m\u001b[00;38;2;0;60;90m000|060|090 \u001b[00m\u001b[00;38;2;0;60;120m000|060|120 \u001b[00m\u001b[00;38;2;0;60;150m000|060|150 \u001b[00m\u001b[00;38;2;0;60;180m000|060|180 \u001b[00m\u001b[00;38;2;0;60;210m000|060|210 \u001b[00m\u001b[00;38;2;0;60;240m000|060|240 \u001b[00m\n", "\u001b[00;38;2;0;90;0m000|090|000 \u001b[00m\u001b[00;38;2;0;90;30m000|090|030 \u001b[00m\u001b[00;38;2;0;90;60m000|090|060 \u001b[00m\u001b[00;38;2;0;90;90m000|090|090 \u001b[00m\u001b[00;38;2;0;90;120m000|090|120 \u001b[00m\u001b[00;38;2;0;90;150m000|090|150 \u001b[00m\u001b[00;38;2;0;90;180m000|090|180 \u001b[00m\u001b[00;38;2;0;90;210m000|090|210 \u001b[00m\u001b[00;38;2;0;90;240m000|090|240 \u001b[00m\n", "\u001b[00;38;2;0;120;0m000|120|000 \u001b[00m\u001b[00;38;2;0;120;30m000|120|030 \u001b[00m\u001b[00;38;2;0;120;60m000|120|060 \u001b[00m\u001b[00;38;2;0;120;90m000|120|090 \u001b[00m\u001b[00;38;2;0;120;120m000|120|120 \u001b[00m\u001b[00;38;2;0;120;150m000|120|150 \u001b[00m\u001b[00;38;2;0;120;180m000|120|180 \u001b[00m\u001b[00;38;2;0;120;210m000|120|210 \u001b[00m\u001b[00;38;2;0;120;240m000|120|240 \u001b[00m\n", "\u001b[00;38;2;0;150;0m000|150|000 \u001b[00m\u001b[00;38;2;0;150;30m000|150|030 \u001b[00m\u001b[00;38;2;0;150;60m000|150|060 \u001b[00m\u001b[00;38;2;0;150;90m000|150|090 \u001b[00m\u001b[00;38;2;0;150;120m000|150|120 \u001b[00m\u001b[00;38;2;0;150;150m000|150|150 \u001b[00m\u001b[00;38;2;0;150;180m000|150|180 \u001b[00m\u001b[00;38;2;0;150;210m000|150|210 \u001b[00m\u001b[00;38;2;0;150;240m000|150|240 \u001b[00m\n", "\u001b[00;38;2;0;180;0m000|180|000 \u001b[00m\u001b[00;38;2;0;180;30m000|180|030 \u001b[00m\u001b[00;38;2;0;180;60m000|180|060 \u001b[00m\u001b[00;38;2;0;180;90m000|180|090 \u001b[00m\u001b[00;38;2;0;180;120m000|180|120 \u001b[00m\u001b[00;38;2;0;180;150m000|180|150 \u001b[00m\u001b[00;38;2;0;180;180m000|180|180 \u001b[00m\u001b[00;38;2;0;180;210m000|180|210 \u001b[00m\u001b[00;38;2;0;180;240m000|180|240 \u001b[00m\n", "\u001b[00;38;2;0;210;0m000|210|000 \u001b[00m\u001b[00;38;2;0;210;30m000|210|030 \u001b[00m\u001b[00;38;2;0;210;60m000|210|060 \u001b[00m\u001b[00;38;2;0;210;90m000|210|090 \u001b[00m\u001b[00;38;2;0;210;120m000|210|120 \u001b[00m\u001b[00;38;2;0;210;150m000|210|150 \u001b[00m\u001b[00;38;2;0;210;180m000|210|180 \u001b[00m\u001b[00;38;2;0;210;210m000|210|210 \u001b[00m\u001b[00;38;2;0;210;240m000|210|240 \u001b[00m\n", "\u001b[00;38;2;0;240;0m000|240|000 \u001b[00m\u001b[00;38;2;0;240;30m000|240|030 \u001b[00m\u001b[00;38;2;0;240;60m000|240|060 \u001b[00m\u001b[00;38;2;0;240;90m000|240|090 \u001b[00m\u001b[00;38;2;0;240;120m000|240|120 \u001b[00m\u001b[00;38;2;0;240;150m000|240|150 \u001b[00m\u001b[00;38;2;0;240;180m000|240|180 \u001b[00m\u001b[00;38;2;0;240;210m000|240|210 \u001b[00m\u001b[00;38;2;0;240;240m000|240|240 \u001b[00m\n", "\n", "\u001b[00;38;2;30;0;0m030|000|000 \u001b[00m\u001b[00;38;2;30;0;30m030|000|030 \u001b[00m\u001b[00;38;2;30;0;60m030|000|060 \u001b[00m\u001b[00;38;2;30;0;90m030|000|090 \u001b[00m\u001b[00;38;2;30;0;120m030|000|120 \u001b[00m\u001b[00;38;2;30;0;150m030|000|150 \u001b[00m\u001b[00;38;2;30;0;180m030|000|180 \u001b[00m\u001b[00;38;2;30;0;210m030|000|210 \u001b[00m\u001b[00;38;2;30;0;240m030|000|240 \u001b[00m\n", "\u001b[00;38;2;30;30;0m030|030|000 \u001b[00m\u001b[00;38;2;30;30;30m030|030|030 \u001b[00m\u001b[00;38;2;30;30;60m030|030|060 \u001b[00m\u001b[00;38;2;30;30;90m030|030|090 \u001b[00m\u001b[00;38;2;30;30;120m030|030|120 \u001b[00m\u001b[00;38;2;30;30;150m030|030|150 \u001b[00m\u001b[00;38;2;30;30;180m030|030|180 \u001b[00m\u001b[00;38;2;30;30;210m030|030|210 \u001b[00m\u001b[00;38;2;30;30;240m030|030|240 \u001b[00m\n", "\u001b[00;38;2;30;60;0m030|060|000 \u001b[00m\u001b[00;38;2;30;60;30m030|060|030 \u001b[00m\u001b[00;38;2;30;60;60m030|060|060 \u001b[00m\u001b[00;38;2;30;60;90m030|060|090 \u001b[00m\u001b[00;38;2;30;60;120m030|060|120 \u001b[00m\u001b[00;38;2;30;60;150m030|060|150 \u001b[00m\u001b[00;38;2;30;60;180m030|060|180 \u001b[00m\u001b[00;38;2;30;60;210m030|060|210 \u001b[00m\u001b[00;38;2;30;60;240m030|060|240 \u001b[00m\n", "\u001b[00;38;2;30;90;0m030|090|000 \u001b[00m\u001b[00;38;2;30;90;30m030|090|030 \u001b[00m\u001b[00;38;2;30;90;60m030|090|060 \u001b[00m\u001b[00;38;2;30;90;90m030|090|090 \u001b[00m\u001b[00;38;2;30;90;120m030|090|120 \u001b[00m\u001b[00;38;2;30;90;150m030|090|150 \u001b[00m\u001b[00;38;2;30;90;180m030|090|180 \u001b[00m\u001b[00;38;2;30;90;210m030|090|210 \u001b[00m\u001b[00;38;2;30;90;240m030|090|240 \u001b[00m\n", "\u001b[00;38;2;30;120;0m030|120|000 \u001b[00m\u001b[00;38;2;30;120;30m030|120|030 \u001b[00m\u001b[00;38;2;30;120;60m030|120|060 \u001b[00m\u001b[00;38;2;30;120;90m030|120|090 \u001b[00m\u001b[00;38;2;30;120;120m030|120|120 \u001b[00m\u001b[00;38;2;30;120;150m030|120|150 \u001b[00m\u001b[00;38;2;30;120;180m030|120|180 \u001b[00m\u001b[00;38;2;30;120;210m030|120|210 \u001b[00m\u001b[00;38;2;30;120;240m030|120|240 \u001b[00m\n", "\u001b[00;38;2;30;150;0m030|150|000 \u001b[00m\u001b[00;38;2;30;150;30m030|150|030 \u001b[00m\u001b[00;38;2;30;150;60m030|150|060 \u001b[00m\u001b[00;38;2;30;150;90m030|150|090 \u001b[00m\u001b[00;38;2;30;150;120m030|150|120 \u001b[00m\u001b[00;38;2;30;150;150m030|150|150 \u001b[00m\u001b[00;38;2;30;150;180m030|150|180 \u001b[00m\u001b[00;38;2;30;150;210m030|150|210 \u001b[00m\u001b[00;38;2;30;150;240m030|150|240 \u001b[00m\n", "\u001b[00;38;2;30;180;0m030|180|000 \u001b[00m\u001b[00;38;2;30;180;30m030|180|030 \u001b[00m\u001b[00;38;2;30;180;60m030|180|060 \u001b[00m\u001b[00;38;2;30;180;90m030|180|090 \u001b[00m\u001b[00;38;2;30;180;120m030|180|120 \u001b[00m\u001b[00;38;2;30;180;150m030|180|150 \u001b[00m\u001b[00;38;2;30;180;180m030|180|180 \u001b[00m\u001b[00;38;2;30;180;210m030|180|210 \u001b[00m\u001b[00;38;2;30;180;240m030|180|240 \u001b[00m\n", "\u001b[00;38;2;30;210;0m030|210|000 \u001b[00m\u001b[00;38;2;30;210;30m030|210|030 \u001b[00m\u001b[00;38;2;30;210;60m030|210|060 \u001b[00m\u001b[00;38;2;30;210;90m030|210|090 \u001b[00m\u001b[00;38;2;30;210;120m030|210|120 \u001b[00m\u001b[00;38;2;30;210;150m030|210|150 \u001b[00m\u001b[00;38;2;30;210;180m030|210|180 \u001b[00m\u001b[00;38;2;30;210;210m030|210|210 \u001b[00m\u001b[00;38;2;30;210;240m030|210|240 \u001b[00m\n", "\u001b[00;38;2;30;240;0m030|240|000 \u001b[00m\u001b[00;38;2;30;240;30m030|240|030 \u001b[00m\u001b[00;38;2;30;240;60m030|240|060 \u001b[00m\u001b[00;38;2;30;240;90m030|240|090 \u001b[00m\u001b[00;38;2;30;240;120m030|240|120 \u001b[00m\u001b[00;38;2;30;240;150m030|240|150 \u001b[00m\u001b[00;38;2;30;240;180m030|240|180 \u001b[00m\u001b[00;38;2;30;240;210m030|240|210 \u001b[00m\u001b[00;38;2;30;240;240m030|240|240 \u001b[00m\n", "\n", "\u001b[00;38;2;60;0;0m060|000|000 \u001b[00m\u001b[00;38;2;60;0;30m060|000|030 \u001b[00m\u001b[00;38;2;60;0;60m060|000|060 \u001b[00m\u001b[00;38;2;60;0;90m060|000|090 \u001b[00m\u001b[00;38;2;60;0;120m060|000|120 \u001b[00m\u001b[00;38;2;60;0;150m060|000|150 \u001b[00m\u001b[00;38;2;60;0;180m060|000|180 \u001b[00m\u001b[00;38;2;60;0;210m060|000|210 \u001b[00m\u001b[00;38;2;60;0;240m060|000|240 \u001b[00m\n", "\u001b[00;38;2;60;30;0m060|030|000 \u001b[00m\u001b[00;38;2;60;30;30m060|030|030 \u001b[00m\u001b[00;38;2;60;30;60m060|030|060 \u001b[00m\u001b[00;38;2;60;30;90m060|030|090 \u001b[00m\u001b[00;38;2;60;30;120m060|030|120 \u001b[00m\u001b[00;38;2;60;30;150m060|030|150 \u001b[00m\u001b[00;38;2;60;30;180m060|030|180 \u001b[00m\u001b[00;38;2;60;30;210m060|030|210 \u001b[00m\u001b[00;38;2;60;30;240m060|030|240 \u001b[00m\n", "\u001b[00;38;2;60;60;0m060|060|000 \u001b[00m\u001b[00;38;2;60;60;30m060|060|030 \u001b[00m\u001b[00;38;2;60;60;60m060|060|060 \u001b[00m\u001b[00;38;2;60;60;90m060|060|090 \u001b[00m\u001b[00;38;2;60;60;120m060|060|120 \u001b[00m\u001b[00;38;2;60;60;150m060|060|150 \u001b[00m\u001b[00;38;2;60;60;180m060|060|180 \u001b[00m\u001b[00;38;2;60;60;210m060|060|210 \u001b[00m\u001b[00;38;2;60;60;240m060|060|240 \u001b[00m\n", "\u001b[00;38;2;60;90;0m060|090|000 \u001b[00m\u001b[00;38;2;60;90;30m060|090|030 \u001b[00m\u001b[00;38;2;60;90;60m060|090|060 \u001b[00m\u001b[00;38;2;60;90;90m060|090|090 \u001b[00m\u001b[00;38;2;60;90;120m060|090|120 \u001b[00m\u001b[00;38;2;60;90;150m060|090|150 \u001b[00m\u001b[00;38;2;60;90;180m060|090|180 \u001b[00m\u001b[00;38;2;60;90;210m060|090|210 \u001b[00m\u001b[00;38;2;60;90;240m060|090|240 \u001b[00m\n", "\u001b[00;38;2;60;120;0m060|120|000 \u001b[00m\u001b[00;38;2;60;120;30m060|120|030 \u001b[00m\u001b[00;38;2;60;120;60m060|120|060 \u001b[00m\u001b[00;38;2;60;120;90m060|120|090 \u001b[00m\u001b[00;38;2;60;120;120m060|120|120 \u001b[00m\u001b[00;38;2;60;120;150m060|120|150 \u001b[00m\u001b[00;38;2;60;120;180m060|120|180 \u001b[00m\u001b[00;38;2;60;120;210m060|120|210 \u001b[00m\u001b[00;38;2;60;120;240m060|120|240 \u001b[00m\n", "\u001b[00;38;2;60;150;0m060|150|000 \u001b[00m\u001b[00;38;2;60;150;30m060|150|030 \u001b[00m\u001b[00;38;2;60;150;60m060|150|060 \u001b[00m\u001b[00;38;2;60;150;90m060|150|090 \u001b[00m\u001b[00;38;2;60;150;120m060|150|120 \u001b[00m\u001b[00;38;2;60;150;150m060|150|150 \u001b[00m\u001b[00;38;2;60;150;180m060|150|180 \u001b[00m\u001b[00;38;2;60;150;210m060|150|210 \u001b[00m\u001b[00;38;2;60;150;240m060|150|240 \u001b[00m\n", "\u001b[00;38;2;60;180;0m060|180|000 \u001b[00m\u001b[00;38;2;60;180;30m060|180|030 \u001b[00m\u001b[00;38;2;60;180;60m060|180|060 \u001b[00m\u001b[00;38;2;60;180;90m060|180|090 \u001b[00m\u001b[00;38;2;60;180;120m060|180|120 \u001b[00m\u001b[00;38;2;60;180;150m060|180|150 \u001b[00m\u001b[00;38;2;60;180;180m060|180|180 \u001b[00m\u001b[00;38;2;60;180;210m060|180|210 \u001b[00m\u001b[00;38;2;60;180;240m060|180|240 \u001b[00m\n", "\u001b[00;38;2;60;210;0m060|210|000 \u001b[00m\u001b[00;38;2;60;210;30m060|210|030 \u001b[00m\u001b[00;38;2;60;210;60m060|210|060 \u001b[00m\u001b[00;38;2;60;210;90m060|210|090 \u001b[00m\u001b[00;38;2;60;210;120m060|210|120 \u001b[00m\u001b[00;38;2;60;210;150m060|210|150 \u001b[00m\u001b[00;38;2;60;210;180m060|210|180 \u001b[00m\u001b[00;38;2;60;210;210m060|210|210 \u001b[00m\u001b[00;38;2;60;210;240m060|210|240 \u001b[00m\n", "\u001b[00;38;2;60;240;0m060|240|000 \u001b[00m\u001b[00;38;2;60;240;30m060|240|030 \u001b[00m\u001b[00;38;2;60;240;60m060|240|060 \u001b[00m\u001b[00;38;2;60;240;90m060|240|090 \u001b[00m\u001b[00;38;2;60;240;120m060|240|120 \u001b[00m\u001b[00;38;2;60;240;150m060|240|150 \u001b[00m\u001b[00;38;2;60;240;180m060|240|180 \u001b[00m\u001b[00;38;2;60;240;210m060|240|210 \u001b[00m\u001b[00;38;2;60;240;240m060|240|240 \u001b[00m\n", "\n", "\u001b[00;38;2;90;0;0m090|000|000 \u001b[00m\u001b[00;38;2;90;0;30m090|000|030 \u001b[00m\u001b[00;38;2;90;0;60m090|000|060 \u001b[00m\u001b[00;38;2;90;0;90m090|000|090 \u001b[00m\u001b[00;38;2;90;0;120m090|000|120 \u001b[00m\u001b[00;38;2;90;0;150m090|000|150 \u001b[00m\u001b[00;38;2;90;0;180m090|000|180 \u001b[00m\u001b[00;38;2;90;0;210m090|000|210 \u001b[00m\u001b[00;38;2;90;0;240m090|000|240 \u001b[00m\n", "\u001b[00;38;2;90;30;0m090|030|000 \u001b[00m\u001b[00;38;2;90;30;30m090|030|030 \u001b[00m\u001b[00;38;2;90;30;60m090|030|060 \u001b[00m\u001b[00;38;2;90;30;90m090|030|090 \u001b[00m\u001b[00;38;2;90;30;120m090|030|120 \u001b[00m\u001b[00;38;2;90;30;150m090|030|150 \u001b[00m\u001b[00;38;2;90;30;180m090|030|180 \u001b[00m\u001b[00;38;2;90;30;210m090|030|210 \u001b[00m\u001b[00;38;2;90;30;240m090|030|240 \u001b[00m\n", "\u001b[00;38;2;90;60;0m090|060|000 \u001b[00m\u001b[00;38;2;90;60;30m090|060|030 \u001b[00m\u001b[00;38;2;90;60;60m090|060|060 \u001b[00m\u001b[00;38;2;90;60;90m090|060|090 \u001b[00m\u001b[00;38;2;90;60;120m090|060|120 \u001b[00m\u001b[00;38;2;90;60;150m090|060|150 \u001b[00m\u001b[00;38;2;90;60;180m090|060|180 \u001b[00m\u001b[00;38;2;90;60;210m090|060|210 \u001b[00m\u001b[00;38;2;90;60;240m090|060|240 \u001b[00m\n", "\u001b[00;38;2;90;90;0m090|090|000 \u001b[00m\u001b[00;38;2;90;90;30m090|090|030 \u001b[00m\u001b[00;38;2;90;90;60m090|090|060 \u001b[00m\u001b[00;38;2;90;90;90m090|090|090 \u001b[00m\u001b[00;38;2;90;90;120m090|090|120 \u001b[00m\u001b[00;38;2;90;90;150m090|090|150 \u001b[00m\u001b[00;38;2;90;90;180m090|090|180 \u001b[00m\u001b[00;38;2;90;90;210m090|090|210 \u001b[00m\u001b[00;38;2;90;90;240m090|090|240 \u001b[00m\n", "\u001b[00;38;2;90;120;0m090|120|000 \u001b[00m\u001b[00;38;2;90;120;30m090|120|030 \u001b[00m\u001b[00;38;2;90;120;60m090|120|060 \u001b[00m\u001b[00;38;2;90;120;90m090|120|090 \u001b[00m\u001b[00;38;2;90;120;120m090|120|120 \u001b[00m\u001b[00;38;2;90;120;150m090|120|150 \u001b[00m\u001b[00;38;2;90;120;180m090|120|180 \u001b[00m\u001b[00;38;2;90;120;210m090|120|210 \u001b[00m\u001b[00;38;2;90;120;240m090|120|240 \u001b[00m\n", "\u001b[00;38;2;90;150;0m090|150|000 \u001b[00m\u001b[00;38;2;90;150;30m090|150|030 \u001b[00m\u001b[00;38;2;90;150;60m090|150|060 \u001b[00m\u001b[00;38;2;90;150;90m090|150|090 \u001b[00m\u001b[00;38;2;90;150;120m090|150|120 \u001b[00m\u001b[00;38;2;90;150;150m090|150|150 \u001b[00m\u001b[00;38;2;90;150;180m090|150|180 \u001b[00m\u001b[00;38;2;90;150;210m090|150|210 \u001b[00m\u001b[00;38;2;90;150;240m090|150|240 \u001b[00m\n", "\u001b[00;38;2;90;180;0m090|180|000 \u001b[00m\u001b[00;38;2;90;180;30m090|180|030 \u001b[00m\u001b[00;38;2;90;180;60m090|180|060 \u001b[00m\u001b[00;38;2;90;180;90m090|180|090 \u001b[00m\u001b[00;38;2;90;180;120m090|180|120 \u001b[00m\u001b[00;38;2;90;180;150m090|180|150 \u001b[00m\u001b[00;38;2;90;180;180m090|180|180 \u001b[00m\u001b[00;38;2;90;180;210m090|180|210 \u001b[00m\u001b[00;38;2;90;180;240m090|180|240 \u001b[00m\n", "\u001b[00;38;2;90;210;0m090|210|000 \u001b[00m\u001b[00;38;2;90;210;30m090|210|030 \u001b[00m\u001b[00;38;2;90;210;60m090|210|060 \u001b[00m\u001b[00;38;2;90;210;90m090|210|090 \u001b[00m\u001b[00;38;2;90;210;120m090|210|120 \u001b[00m\u001b[00;38;2;90;210;150m090|210|150 \u001b[00m\u001b[00;38;2;90;210;180m090|210|180 \u001b[00m\u001b[00;38;2;90;210;210m090|210|210 \u001b[00m\u001b[00;38;2;90;210;240m090|210|240 \u001b[00m\n", "\u001b[00;38;2;90;240;0m090|240|000 \u001b[00m\u001b[00;38;2;90;240;30m090|240|030 \u001b[00m\u001b[00;38;2;90;240;60m090|240|060 \u001b[00m\u001b[00;38;2;90;240;90m090|240|090 \u001b[00m\u001b[00;38;2;90;240;120m090|240|120 \u001b[00m\u001b[00;38;2;90;240;150m090|240|150 \u001b[00m\u001b[00;38;2;90;240;180m090|240|180 \u001b[00m\u001b[00;38;2;90;240;210m090|240|210 \u001b[00m\u001b[00;38;2;90;240;240m090|240|240 \u001b[00m\n", "\n", "\u001b[00;38;2;120;0;0m120|000|000 \u001b[00m\u001b[00;38;2;120;0;30m120|000|030 \u001b[00m\u001b[00;38;2;120;0;60m120|000|060 \u001b[00m\u001b[00;38;2;120;0;90m120|000|090 \u001b[00m\u001b[00;38;2;120;0;120m120|000|120 \u001b[00m\u001b[00;38;2;120;0;150m120|000|150 \u001b[00m\u001b[00;38;2;120;0;180m120|000|180 \u001b[00m\u001b[00;38;2;120;0;210m120|000|210 \u001b[00m\u001b[00;38;2;120;0;240m120|000|240 \u001b[00m\n", "\u001b[00;38;2;120;30;0m120|030|000 \u001b[00m\u001b[00;38;2;120;30;30m120|030|030 \u001b[00m\u001b[00;38;2;120;30;60m120|030|060 \u001b[00m\u001b[00;38;2;120;30;90m120|030|090 \u001b[00m\u001b[00;38;2;120;30;120m120|030|120 \u001b[00m\u001b[00;38;2;120;30;150m120|030|150 \u001b[00m\u001b[00;38;2;120;30;180m120|030|180 \u001b[00m\u001b[00;38;2;120;30;210m120|030|210 \u001b[00m\u001b[00;38;2;120;30;240m120|030|240 \u001b[00m\n", "\u001b[00;38;2;120;60;0m120|060|000 \u001b[00m\u001b[00;38;2;120;60;30m120|060|030 \u001b[00m\u001b[00;38;2;120;60;60m120|060|060 \u001b[00m\u001b[00;38;2;120;60;90m120|060|090 \u001b[00m\u001b[00;38;2;120;60;120m120|060|120 \u001b[00m\u001b[00;38;2;120;60;150m120|060|150 \u001b[00m\u001b[00;38;2;120;60;180m120|060|180 \u001b[00m\u001b[00;38;2;120;60;210m120|060|210 \u001b[00m\u001b[00;38;2;120;60;240m120|060|240 \u001b[00m\n", "\u001b[00;38;2;120;90;0m120|090|000 \u001b[00m\u001b[00;38;2;120;90;30m120|090|030 \u001b[00m\u001b[00;38;2;120;90;60m120|090|060 \u001b[00m\u001b[00;38;2;120;90;90m120|090|090 \u001b[00m\u001b[00;38;2;120;90;120m120|090|120 \u001b[00m\u001b[00;38;2;120;90;150m120|090|150 \u001b[00m\u001b[00;38;2;120;90;180m120|090|180 \u001b[00m\u001b[00;38;2;120;90;210m120|090|210 \u001b[00m\u001b[00;38;2;120;90;240m120|090|240 \u001b[00m\n", "\u001b[00;38;2;120;120;0m120|120|000 \u001b[00m\u001b[00;38;2;120;120;30m120|120|030 \u001b[00m\u001b[00;38;2;120;120;60m120|120|060 \u001b[00m\u001b[00;38;2;120;120;90m120|120|090 \u001b[00m\u001b[00;38;2;120;120;120m120|120|120 \u001b[00m\u001b[00;38;2;120;120;150m120|120|150 \u001b[00m\u001b[00;38;2;120;120;180m120|120|180 \u001b[00m\u001b[00;38;2;120;120;210m120|120|210 \u001b[00m\u001b[00;38;2;120;120;240m120|120|240 \u001b[00m\n", "\u001b[00;38;2;120;150;0m120|150|000 \u001b[00m\u001b[00;38;2;120;150;30m120|150|030 \u001b[00m\u001b[00;38;2;120;150;60m120|150|060 \u001b[00m\u001b[00;38;2;120;150;90m120|150|090 \u001b[00m\u001b[00;38;2;120;150;120m120|150|120 \u001b[00m\u001b[00;38;2;120;150;150m120|150|150 \u001b[00m\u001b[00;38;2;120;150;180m120|150|180 \u001b[00m\u001b[00;38;2;120;150;210m120|150|210 \u001b[00m\u001b[00;38;2;120;150;240m120|150|240 \u001b[00m\n", "\u001b[00;38;2;120;180;0m120|180|000 \u001b[00m\u001b[00;38;2;120;180;30m120|180|030 \u001b[00m\u001b[00;38;2;120;180;60m120|180|060 \u001b[00m\u001b[00;38;2;120;180;90m120|180|090 \u001b[00m\u001b[00;38;2;120;180;120m120|180|120 \u001b[00m\u001b[00;38;2;120;180;150m120|180|150 \u001b[00m\u001b[00;38;2;120;180;180m120|180|180 \u001b[00m\u001b[00;38;2;120;180;210m120|180|210 \u001b[00m\u001b[00;38;2;120;180;240m120|180|240 \u001b[00m\n", "\u001b[00;38;2;120;210;0m120|210|000 \u001b[00m\u001b[00;38;2;120;210;30m120|210|030 \u001b[00m\u001b[00;38;2;120;210;60m120|210|060 \u001b[00m\u001b[00;38;2;120;210;90m120|210|090 \u001b[00m\u001b[00;38;2;120;210;120m120|210|120 \u001b[00m\u001b[00;38;2;120;210;150m120|210|150 \u001b[00m\u001b[00;38;2;120;210;180m120|210|180 \u001b[00m\u001b[00;38;2;120;210;210m120|210|210 \u001b[00m\u001b[00;38;2;120;210;240m120|210|240 \u001b[00m\n", "\u001b[00;38;2;120;240;0m120|240|000 \u001b[00m\u001b[00;38;2;120;240;30m120|240|030 \u001b[00m\u001b[00;38;2;120;240;60m120|240|060 \u001b[00m\u001b[00;38;2;120;240;90m120|240|090 \u001b[00m\u001b[00;38;2;120;240;120m120|240|120 \u001b[00m\u001b[00;38;2;120;240;150m120|240|150 \u001b[00m\u001b[00;38;2;120;240;180m120|240|180 \u001b[00m\u001b[00;38;2;120;240;210m120|240|210 \u001b[00m\u001b[00;38;2;120;240;240m120|240|240 \u001b[00m\n", "\n", "\u001b[00;38;2;150;0;0m150|000|000 \u001b[00m\u001b[00;38;2;150;0;30m150|000|030 \u001b[00m\u001b[00;38;2;150;0;60m150|000|060 \u001b[00m\u001b[00;38;2;150;0;90m150|000|090 \u001b[00m\u001b[00;38;2;150;0;120m150|000|120 \u001b[00m\u001b[00;38;2;150;0;150m150|000|150 \u001b[00m\u001b[00;38;2;150;0;180m150|000|180 \u001b[00m\u001b[00;38;2;150;0;210m150|000|210 \u001b[00m\u001b[00;38;2;150;0;240m150|000|240 \u001b[00m\n", "\u001b[00;38;2;150;30;0m150|030|000 \u001b[00m\u001b[00;38;2;150;30;30m150|030|030 \u001b[00m\u001b[00;38;2;150;30;60m150|030|060 \u001b[00m\u001b[00;38;2;150;30;90m150|030|090 \u001b[00m\u001b[00;38;2;150;30;120m150|030|120 \u001b[00m\u001b[00;38;2;150;30;150m150|030|150 \u001b[00m\u001b[00;38;2;150;30;180m150|030|180 \u001b[00m\u001b[00;38;2;150;30;210m150|030|210 \u001b[00m\u001b[00;38;2;150;30;240m150|030|240 \u001b[00m\n", "\u001b[00;38;2;150;60;0m150|060|000 \u001b[00m\u001b[00;38;2;150;60;30m150|060|030 \u001b[00m\u001b[00;38;2;150;60;60m150|060|060 \u001b[00m\u001b[00;38;2;150;60;90m150|060|090 \u001b[00m\u001b[00;38;2;150;60;120m150|060|120 \u001b[00m\u001b[00;38;2;150;60;150m150|060|150 \u001b[00m\u001b[00;38;2;150;60;180m150|060|180 \u001b[00m\u001b[00;38;2;150;60;210m150|060|210 \u001b[00m\u001b[00;38;2;150;60;240m150|060|240 \u001b[00m\n", "\u001b[00;38;2;150;90;0m150|090|000 \u001b[00m\u001b[00;38;2;150;90;30m150|090|030 \u001b[00m\u001b[00;38;2;150;90;60m150|090|060 \u001b[00m\u001b[00;38;2;150;90;90m150|090|090 \u001b[00m\u001b[00;38;2;150;90;120m150|090|120 \u001b[00m\u001b[00;38;2;150;90;150m150|090|150 \u001b[00m\u001b[00;38;2;150;90;180m150|090|180 \u001b[00m\u001b[00;38;2;150;90;210m150|090|210 \u001b[00m\u001b[00;38;2;150;90;240m150|090|240 \u001b[00m\n", "\u001b[00;38;2;150;120;0m150|120|000 \u001b[00m\u001b[00;38;2;150;120;30m150|120|030 \u001b[00m\u001b[00;38;2;150;120;60m150|120|060 \u001b[00m\u001b[00;38;2;150;120;90m150|120|090 \u001b[00m\u001b[00;38;2;150;120;120m150|120|120 \u001b[00m\u001b[00;38;2;150;120;150m150|120|150 \u001b[00m\u001b[00;38;2;150;120;180m150|120|180 \u001b[00m\u001b[00;38;2;150;120;210m150|120|210 \u001b[00m\u001b[00;38;2;150;120;240m150|120|240 \u001b[00m\n", "\u001b[00;38;2;150;150;0m150|150|000 \u001b[00m\u001b[00;38;2;150;150;30m150|150|030 \u001b[00m\u001b[00;38;2;150;150;60m150|150|060 \u001b[00m\u001b[00;38;2;150;150;90m150|150|090 \u001b[00m\u001b[00;38;2;150;150;120m150|150|120 \u001b[00m\u001b[00;38;2;150;150;150m150|150|150 \u001b[00m\u001b[00;38;2;150;150;180m150|150|180 \u001b[00m\u001b[00;38;2;150;150;210m150|150|210 \u001b[00m\u001b[00;38;2;150;150;240m150|150|240 \u001b[00m\n", "\u001b[00;38;2;150;180;0m150|180|000 \u001b[00m\u001b[00;38;2;150;180;30m150|180|030 \u001b[00m\u001b[00;38;2;150;180;60m150|180|060 \u001b[00m\u001b[00;38;2;150;180;90m150|180|090 \u001b[00m\u001b[00;38;2;150;180;120m150|180|120 \u001b[00m\u001b[00;38;2;150;180;150m150|180|150 \u001b[00m\u001b[00;38;2;150;180;180m150|180|180 \u001b[00m\u001b[00;38;2;150;180;210m150|180|210 \u001b[00m\u001b[00;38;2;150;180;240m150|180|240 \u001b[00m\n", "\u001b[00;38;2;150;210;0m150|210|000 \u001b[00m\u001b[00;38;2;150;210;30m150|210|030 \u001b[00m\u001b[00;38;2;150;210;60m150|210|060 \u001b[00m\u001b[00;38;2;150;210;90m150|210|090 \u001b[00m\u001b[00;38;2;150;210;120m150|210|120 \u001b[00m\u001b[00;38;2;150;210;150m150|210|150 \u001b[00m\u001b[00;38;2;150;210;180m150|210|180 \u001b[00m\u001b[00;38;2;150;210;210m150|210|210 \u001b[00m\u001b[00;38;2;150;210;240m150|210|240 \u001b[00m\n", "\u001b[00;38;2;150;240;0m150|240|000 \u001b[00m\u001b[00;38;2;150;240;30m150|240|030 \u001b[00m\u001b[00;38;2;150;240;60m150|240|060 \u001b[00m\u001b[00;38;2;150;240;90m150|240|090 \u001b[00m\u001b[00;38;2;150;240;120m150|240|120 \u001b[00m\u001b[00;38;2;150;240;150m150|240|150 \u001b[00m\u001b[00;38;2;150;240;180m150|240|180 \u001b[00m\u001b[00;38;2;150;240;210m150|240|210 \u001b[00m\u001b[00;38;2;150;240;240m150|240|240 \u001b[00m\n", "\n", "\u001b[00;38;2;180;0;0m180|000|000 \u001b[00m\u001b[00;38;2;180;0;30m180|000|030 \u001b[00m\u001b[00;38;2;180;0;60m180|000|060 \u001b[00m\u001b[00;38;2;180;0;90m180|000|090 \u001b[00m\u001b[00;38;2;180;0;120m180|000|120 \u001b[00m\u001b[00;38;2;180;0;150m180|000|150 \u001b[00m\u001b[00;38;2;180;0;180m180|000|180 \u001b[00m\u001b[00;38;2;180;0;210m180|000|210 \u001b[00m\u001b[00;38;2;180;0;240m180|000|240 \u001b[00m\n", "\u001b[00;38;2;180;30;0m180|030|000 \u001b[00m\u001b[00;38;2;180;30;30m180|030|030 \u001b[00m\u001b[00;38;2;180;30;60m180|030|060 \u001b[00m\u001b[00;38;2;180;30;90m180|030|090 \u001b[00m\u001b[00;38;2;180;30;120m180|030|120 \u001b[00m\u001b[00;38;2;180;30;150m180|030|150 \u001b[00m\u001b[00;38;2;180;30;180m180|030|180 \u001b[00m\u001b[00;38;2;180;30;210m180|030|210 \u001b[00m\u001b[00;38;2;180;30;240m180|030|240 \u001b[00m\n", "\u001b[00;38;2;180;60;0m180|060|000 \u001b[00m\u001b[00;38;2;180;60;30m180|060|030 \u001b[00m\u001b[00;38;2;180;60;60m180|060|060 \u001b[00m\u001b[00;38;2;180;60;90m180|060|090 \u001b[00m\u001b[00;38;2;180;60;120m180|060|120 \u001b[00m\u001b[00;38;2;180;60;150m180|060|150 \u001b[00m\u001b[00;38;2;180;60;180m180|060|180 \u001b[00m\u001b[00;38;2;180;60;210m180|060|210 \u001b[00m\u001b[00;38;2;180;60;240m180|060|240 \u001b[00m\n", "\u001b[00;38;2;180;90;0m180|090|000 \u001b[00m\u001b[00;38;2;180;90;30m180|090|030 \u001b[00m\u001b[00;38;2;180;90;60m180|090|060 \u001b[00m\u001b[00;38;2;180;90;90m180|090|090 \u001b[00m\u001b[00;38;2;180;90;120m180|090|120 \u001b[00m\u001b[00;38;2;180;90;150m180|090|150 \u001b[00m\u001b[00;38;2;180;90;180m180|090|180 \u001b[00m\u001b[00;38;2;180;90;210m180|090|210 \u001b[00m\u001b[00;38;2;180;90;240m180|090|240 \u001b[00m\n", "\u001b[00;38;2;180;120;0m180|120|000 \u001b[00m\u001b[00;38;2;180;120;30m180|120|030 \u001b[00m\u001b[00;38;2;180;120;60m180|120|060 \u001b[00m\u001b[00;38;2;180;120;90m180|120|090 \u001b[00m\u001b[00;38;2;180;120;120m180|120|120 \u001b[00m\u001b[00;38;2;180;120;150m180|120|150 \u001b[00m\u001b[00;38;2;180;120;180m180|120|180 \u001b[00m\u001b[00;38;2;180;120;210m180|120|210 \u001b[00m\u001b[00;38;2;180;120;240m180|120|240 \u001b[00m\n", "\u001b[00;38;2;180;150;0m180|150|000 \u001b[00m\u001b[00;38;2;180;150;30m180|150|030 \u001b[00m\u001b[00;38;2;180;150;60m180|150|060 \u001b[00m\u001b[00;38;2;180;150;90m180|150|090 \u001b[00m\u001b[00;38;2;180;150;120m180|150|120 \u001b[00m\u001b[00;38;2;180;150;150m180|150|150 \u001b[00m\u001b[00;38;2;180;150;180m180|150|180 \u001b[00m\u001b[00;38;2;180;150;210m180|150|210 \u001b[00m\u001b[00;38;2;180;150;240m180|150|240 \u001b[00m\n", "\u001b[00;38;2;180;180;0m180|180|000 \u001b[00m\u001b[00;38;2;180;180;30m180|180|030 \u001b[00m\u001b[00;38;2;180;180;60m180|180|060 \u001b[00m\u001b[00;38;2;180;180;90m180|180|090 \u001b[00m\u001b[00;38;2;180;180;120m180|180|120 \u001b[00m\u001b[00;38;2;180;180;150m180|180|150 \u001b[00m\u001b[00;38;2;180;180;180m180|180|180 \u001b[00m\u001b[00;38;2;180;180;210m180|180|210 \u001b[00m\u001b[00;38;2;180;180;240m180|180|240 \u001b[00m\n", "\u001b[00;38;2;180;210;0m180|210|000 \u001b[00m\u001b[00;38;2;180;210;30m180|210|030 \u001b[00m\u001b[00;38;2;180;210;60m180|210|060 \u001b[00m\u001b[00;38;2;180;210;90m180|210|090 \u001b[00m\u001b[00;38;2;180;210;120m180|210|120 \u001b[00m\u001b[00;38;2;180;210;150m180|210|150 \u001b[00m\u001b[00;38;2;180;210;180m180|210|180 \u001b[00m\u001b[00;38;2;180;210;210m180|210|210 \u001b[00m\u001b[00;38;2;180;210;240m180|210|240 \u001b[00m\n", "\u001b[00;38;2;180;240;0m180|240|000 \u001b[00m\u001b[00;38;2;180;240;30m180|240|030 \u001b[00m\u001b[00;38;2;180;240;60m180|240|060 \u001b[00m\u001b[00;38;2;180;240;90m180|240|090 \u001b[00m\u001b[00;38;2;180;240;120m180|240|120 \u001b[00m\u001b[00;38;2;180;240;150m180|240|150 \u001b[00m\u001b[00;38;2;180;240;180m180|240|180 \u001b[00m\u001b[00;38;2;180;240;210m180|240|210 \u001b[00m\u001b[00;38;2;180;240;240m180|240|240 \u001b[00m\n", "\n", "\u001b[00;38;2;210;0;0m210|000|000 \u001b[00m\u001b[00;38;2;210;0;30m210|000|030 \u001b[00m\u001b[00;38;2;210;0;60m210|000|060 \u001b[00m\u001b[00;38;2;210;0;90m210|000|090 \u001b[00m\u001b[00;38;2;210;0;120m210|000|120 \u001b[00m\u001b[00;38;2;210;0;150m210|000|150 \u001b[00m\u001b[00;38;2;210;0;180m210|000|180 \u001b[00m\u001b[00;38;2;210;0;210m210|000|210 \u001b[00m\u001b[00;38;2;210;0;240m210|000|240 \u001b[00m\n", "\u001b[00;38;2;210;30;0m210|030|000 \u001b[00m\u001b[00;38;2;210;30;30m210|030|030 \u001b[00m\u001b[00;38;2;210;30;60m210|030|060 \u001b[00m\u001b[00;38;2;210;30;90m210|030|090 \u001b[00m\u001b[00;38;2;210;30;120m210|030|120 \u001b[00m\u001b[00;38;2;210;30;150m210|030|150 \u001b[00m\u001b[00;38;2;210;30;180m210|030|180 \u001b[00m\u001b[00;38;2;210;30;210m210|030|210 \u001b[00m\u001b[00;38;2;210;30;240m210|030|240 \u001b[00m\n", "\u001b[00;38;2;210;60;0m210|060|000 \u001b[00m\u001b[00;38;2;210;60;30m210|060|030 \u001b[00m\u001b[00;38;2;210;60;60m210|060|060 \u001b[00m\u001b[00;38;2;210;60;90m210|060|090 \u001b[00m\u001b[00;38;2;210;60;120m210|060|120 \u001b[00m\u001b[00;38;2;210;60;150m210|060|150 \u001b[00m\u001b[00;38;2;210;60;180m210|060|180 \u001b[00m\u001b[00;38;2;210;60;210m210|060|210 \u001b[00m\u001b[00;38;2;210;60;240m210|060|240 \u001b[00m\n", "\u001b[00;38;2;210;90;0m210|090|000 \u001b[00m\u001b[00;38;2;210;90;30m210|090|030 \u001b[00m\u001b[00;38;2;210;90;60m210|090|060 \u001b[00m\u001b[00;38;2;210;90;90m210|090|090 \u001b[00m\u001b[00;38;2;210;90;120m210|090|120 \u001b[00m\u001b[00;38;2;210;90;150m210|090|150 \u001b[00m\u001b[00;38;2;210;90;180m210|090|180 \u001b[00m\u001b[00;38;2;210;90;210m210|090|210 \u001b[00m\u001b[00;38;2;210;90;240m210|090|240 \u001b[00m\n", "\u001b[00;38;2;210;120;0m210|120|000 \u001b[00m\u001b[00;38;2;210;120;30m210|120|030 \u001b[00m\u001b[00;38;2;210;120;60m210|120|060 \u001b[00m\u001b[00;38;2;210;120;90m210|120|090 \u001b[00m\u001b[00;38;2;210;120;120m210|120|120 \u001b[00m\u001b[00;38;2;210;120;150m210|120|150 \u001b[00m\u001b[00;38;2;210;120;180m210|120|180 \u001b[00m\u001b[00;38;2;210;120;210m210|120|210 \u001b[00m\u001b[00;38;2;210;120;240m210|120|240 \u001b[00m\n", "\u001b[00;38;2;210;150;0m210|150|000 \u001b[00m\u001b[00;38;2;210;150;30m210|150|030 \u001b[00m\u001b[00;38;2;210;150;60m210|150|060 \u001b[00m\u001b[00;38;2;210;150;90m210|150|090 \u001b[00m\u001b[00;38;2;210;150;120m210|150|120 \u001b[00m\u001b[00;38;2;210;150;150m210|150|150 \u001b[00m\u001b[00;38;2;210;150;180m210|150|180 \u001b[00m\u001b[00;38;2;210;150;210m210|150|210 \u001b[00m\u001b[00;38;2;210;150;240m210|150|240 \u001b[00m\n", "\u001b[00;38;2;210;180;0m210|180|000 \u001b[00m\u001b[00;38;2;210;180;30m210|180|030 \u001b[00m\u001b[00;38;2;210;180;60m210|180|060 \u001b[00m\u001b[00;38;2;210;180;90m210|180|090 \u001b[00m\u001b[00;38;2;210;180;120m210|180|120 \u001b[00m\u001b[00;38;2;210;180;150m210|180|150 \u001b[00m\u001b[00;38;2;210;180;180m210|180|180 \u001b[00m\u001b[00;38;2;210;180;210m210|180|210 \u001b[00m\u001b[00;38;2;210;180;240m210|180|240 \u001b[00m\n", "\u001b[00;38;2;210;210;0m210|210|000 \u001b[00m\u001b[00;38;2;210;210;30m210|210|030 \u001b[00m\u001b[00;38;2;210;210;60m210|210|060 \u001b[00m\u001b[00;38;2;210;210;90m210|210|090 \u001b[00m\u001b[00;38;2;210;210;120m210|210|120 \u001b[00m\u001b[00;38;2;210;210;150m210|210|150 \u001b[00m\u001b[00;38;2;210;210;180m210|210|180 \u001b[00m\u001b[00;38;2;210;210;210m210|210|210 \u001b[00m\u001b[00;38;2;210;210;240m210|210|240 \u001b[00m\n", "\u001b[00;38;2;210;240;0m210|240|000 \u001b[00m\u001b[00;38;2;210;240;30m210|240|030 \u001b[00m\u001b[00;38;2;210;240;60m210|240|060 \u001b[00m\u001b[00;38;2;210;240;90m210|240|090 \u001b[00m\u001b[00;38;2;210;240;120m210|240|120 \u001b[00m\u001b[00;38;2;210;240;150m210|240|150 \u001b[00m\u001b[00;38;2;210;240;180m210|240|180 \u001b[00m\u001b[00;38;2;210;240;210m210|240|210 \u001b[00m\u001b[00;38;2;210;240;240m210|240|240 \u001b[00m\n", "\n", "\u001b[00;38;2;240;0;0m240|000|000 \u001b[00m\u001b[00;38;2;240;0;30m240|000|030 \u001b[00m\u001b[00;38;2;240;0;60m240|000|060 \u001b[00m\u001b[00;38;2;240;0;90m240|000|090 \u001b[00m\u001b[00;38;2;240;0;120m240|000|120 \u001b[00m\u001b[00;38;2;240;0;150m240|000|150 \u001b[00m\u001b[00;38;2;240;0;180m240|000|180 \u001b[00m\u001b[00;38;2;240;0;210m240|000|210 \u001b[00m\u001b[00;38;2;240;0;240m240|000|240 \u001b[00m\n", "\u001b[00;38;2;240;30;0m240|030|000 \u001b[00m\u001b[00;38;2;240;30;30m240|030|030 \u001b[00m\u001b[00;38;2;240;30;60m240|030|060 \u001b[00m\u001b[00;38;2;240;30;90m240|030|090 \u001b[00m\u001b[00;38;2;240;30;120m240|030|120 \u001b[00m\u001b[00;38;2;240;30;150m240|030|150 \u001b[00m\u001b[00;38;2;240;30;180m240|030|180 \u001b[00m\u001b[00;38;2;240;30;210m240|030|210 \u001b[00m\u001b[00;38;2;240;30;240m240|030|240 \u001b[00m\n", "\u001b[00;38;2;240;60;0m240|060|000 \u001b[00m\u001b[00;38;2;240;60;30m240|060|030 \u001b[00m\u001b[00;38;2;240;60;60m240|060|060 \u001b[00m\u001b[00;38;2;240;60;90m240|060|090 \u001b[00m\u001b[00;38;2;240;60;120m240|060|120 \u001b[00m\u001b[00;38;2;240;60;150m240|060|150 \u001b[00m\u001b[00;38;2;240;60;180m240|060|180 \u001b[00m\u001b[00;38;2;240;60;210m240|060|210 \u001b[00m\u001b[00;38;2;240;60;240m240|060|240 \u001b[00m\n", "\u001b[00;38;2;240;90;0m240|090|000 \u001b[00m\u001b[00;38;2;240;90;30m240|090|030 \u001b[00m\u001b[00;38;2;240;90;60m240|090|060 \u001b[00m\u001b[00;38;2;240;90;90m240|090|090 \u001b[00m\u001b[00;38;2;240;90;120m240|090|120 \u001b[00m\u001b[00;38;2;240;90;150m240|090|150 \u001b[00m\u001b[00;38;2;240;90;180m240|090|180 \u001b[00m\u001b[00;38;2;240;90;210m240|090|210 \u001b[00m\u001b[00;38;2;240;90;240m240|090|240 \u001b[00m\n", "\u001b[00;38;2;240;120;0m240|120|000 \u001b[00m\u001b[00;38;2;240;120;30m240|120|030 \u001b[00m\u001b[00;38;2;240;120;60m240|120|060 \u001b[00m\u001b[00;38;2;240;120;90m240|120|090 \u001b[00m\u001b[00;38;2;240;120;120m240|120|120 \u001b[00m\u001b[00;38;2;240;120;150m240|120|150 \u001b[00m\u001b[00;38;2;240;120;180m240|120|180 \u001b[00m\u001b[00;38;2;240;120;210m240|120|210 \u001b[00m\u001b[00;38;2;240;120;240m240|120|240 \u001b[00m\n", "\u001b[00;38;2;240;150;0m240|150|000 \u001b[00m\u001b[00;38;2;240;150;30m240|150|030 \u001b[00m\u001b[00;38;2;240;150;60m240|150|060 \u001b[00m\u001b[00;38;2;240;150;90m240|150|090 \u001b[00m\u001b[00;38;2;240;150;120m240|150|120 \u001b[00m\u001b[00;38;2;240;150;150m240|150|150 \u001b[00m\u001b[00;38;2;240;150;180m240|150|180 \u001b[00m\u001b[00;38;2;240;150;210m240|150|210 \u001b[00m\u001b[00;38;2;240;150;240m240|150|240 \u001b[00m\n", "\u001b[00;38;2;240;180;0m240|180|000 \u001b[00m\u001b[00;38;2;240;180;30m240|180|030 \u001b[00m\u001b[00;38;2;240;180;60m240|180|060 \u001b[00m\u001b[00;38;2;240;180;90m240|180|090 \u001b[00m\u001b[00;38;2;240;180;120m240|180|120 \u001b[00m\u001b[00;38;2;240;180;150m240|180|150 \u001b[00m\u001b[00;38;2;240;180;180m240|180|180 \u001b[00m\u001b[00;38;2;240;180;210m240|180|210 \u001b[00m\u001b[00;38;2;240;180;240m240|180|240 \u001b[00m\n", "\u001b[00;38;2;240;210;0m240|210|000 \u001b[00m\u001b[00;38;2;240;210;30m240|210|030 \u001b[00m\u001b[00;38;2;240;210;60m240|210|060 \u001b[00m\u001b[00;38;2;240;210;90m240|210|090 \u001b[00m\u001b[00;38;2;240;210;120m240|210|120 \u001b[00m\u001b[00;38;2;240;210;150m240|210|150 \u001b[00m\u001b[00;38;2;240;210;180m240|210|180 \u001b[00m\u001b[00;38;2;240;210;210m240|210|210 \u001b[00m\u001b[00;38;2;240;210;240m240|210|240 \u001b[00m\n", "\u001b[00;38;2;240;240;0m240|240|000 \u001b[00m\u001b[00;38;2;240;240;30m240|240|030 \u001b[00m\u001b[00;38;2;240;240;60m240|240|060 \u001b[00m\u001b[00;38;2;240;240;90m240|240|090 \u001b[00m\u001b[00;38;2;240;240;120m240|240|120 \u001b[00m\u001b[00;38;2;240;240;150m240|240|150 \u001b[00m\u001b[00;38;2;240;240;180m240|240|180 \u001b[00m\u001b[00;38;2;240;240;210m240|240|210 \u001b[00m\u001b[00;38;2;240;240;240m240|240|240 \u001b[00m\n", "\n" ] } ], "source": [ "steps = range(0,256,30)\n", "\n", "t = \"{ESC}00;38;2;{r};{g};{b}m{r:03}|{g:03}|{b:03} {RESET}\"\n", "for r in steps:\n", " for g in steps:\n", " for b in steps:\n", " print (t.format(**locals()), end='')\n", " print()\n", " print()\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 24-bit RGB background" ] }, { "cell_type": "code", "execution_count": 47, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[00;48;2;0;0;0m000|000|000 \u001b[00m\u001b[00;48;2;0;0;30m000|000|030 \u001b[00m\u001b[00;48;2;0;0;60m000|000|060 \u001b[00m\u001b[00;48;2;0;0;90m000|000|090 \u001b[00m\u001b[00;48;2;0;0;120m000|000|120 \u001b[00m\u001b[00;48;2;0;0;150m000|000|150 \u001b[00m\u001b[00;48;2;0;0;180m000|000|180 \u001b[00m\u001b[00;48;2;0;0;210m000|000|210 \u001b[00m\u001b[00;48;2;0;0;240m000|000|240 \u001b[00m\n", "\u001b[00;48;2;0;30;0m000|030|000 \u001b[00m\u001b[00;48;2;0;30;30m000|030|030 \u001b[00m\u001b[00;48;2;0;30;60m000|030|060 \u001b[00m\u001b[00;48;2;0;30;90m000|030|090 \u001b[00m\u001b[00;48;2;0;30;120m000|030|120 \u001b[00m\u001b[00;48;2;0;30;150m000|030|150 \u001b[00m\u001b[00;48;2;0;30;180m000|030|180 \u001b[00m\u001b[00;48;2;0;30;210m000|030|210 \u001b[00m\u001b[00;48;2;0;30;240m000|030|240 \u001b[00m\n", "\u001b[00;48;2;0;60;0m000|060|000 \u001b[00m\u001b[00;48;2;0;60;30m000|060|030 \u001b[00m\u001b[00;48;2;0;60;60m000|060|060 \u001b[00m\u001b[00;48;2;0;60;90m000|060|090 \u001b[00m\u001b[00;48;2;0;60;120m000|060|120 \u001b[00m\u001b[00;48;2;0;60;150m000|060|150 \u001b[00m\u001b[00;48;2;0;60;180m000|060|180 \u001b[00m\u001b[00;48;2;0;60;210m000|060|210 \u001b[00m\u001b[00;48;2;0;60;240m000|060|240 \u001b[00m\n", "\u001b[00;48;2;0;90;0m000|090|000 \u001b[00m\u001b[00;48;2;0;90;30m000|090|030 \u001b[00m\u001b[00;48;2;0;90;60m000|090|060 \u001b[00m\u001b[00;48;2;0;90;90m000|090|090 \u001b[00m\u001b[00;48;2;0;90;120m000|090|120 \u001b[00m\u001b[00;48;2;0;90;150m000|090|150 \u001b[00m\u001b[00;48;2;0;90;180m000|090|180 \u001b[00m\u001b[00;48;2;0;90;210m000|090|210 \u001b[00m\u001b[00;48;2;0;90;240m000|090|240 \u001b[00m\n", "\u001b[00;48;2;0;120;0m000|120|000 \u001b[00m\u001b[00;48;2;0;120;30m000|120|030 \u001b[00m\u001b[00;48;2;0;120;60m000|120|060 \u001b[00m\u001b[00;48;2;0;120;90m000|120|090 \u001b[00m\u001b[00;48;2;0;120;120m000|120|120 \u001b[00m\u001b[00;48;2;0;120;150m000|120|150 \u001b[00m\u001b[00;48;2;0;120;180m000|120|180 \u001b[00m\u001b[00;48;2;0;120;210m000|120|210 \u001b[00m\u001b[00;48;2;0;120;240m000|120|240 \u001b[00m\n", "\u001b[00;48;2;0;150;0m000|150|000 \u001b[00m\u001b[00;48;2;0;150;30m000|150|030 \u001b[00m\u001b[00;48;2;0;150;60m000|150|060 \u001b[00m\u001b[00;48;2;0;150;90m000|150|090 \u001b[00m\u001b[00;48;2;0;150;120m000|150|120 \u001b[00m\u001b[00;48;2;0;150;150m000|150|150 \u001b[00m\u001b[00;48;2;0;150;180m000|150|180 \u001b[00m\u001b[00;48;2;0;150;210m000|150|210 \u001b[00m\u001b[00;48;2;0;150;240m000|150|240 \u001b[00m\n", "\u001b[00;48;2;0;180;0m000|180|000 \u001b[00m\u001b[00;48;2;0;180;30m000|180|030 \u001b[00m\u001b[00;48;2;0;180;60m000|180|060 \u001b[00m\u001b[00;48;2;0;180;90m000|180|090 \u001b[00m\u001b[00;48;2;0;180;120m000|180|120 \u001b[00m\u001b[00;48;2;0;180;150m000|180|150 \u001b[00m\u001b[00;48;2;0;180;180m000|180|180 \u001b[00m\u001b[00;48;2;0;180;210m000|180|210 \u001b[00m\u001b[00;48;2;0;180;240m000|180|240 \u001b[00m\n", "\u001b[00;48;2;0;210;0m000|210|000 \u001b[00m\u001b[00;48;2;0;210;30m000|210|030 \u001b[00m\u001b[00;48;2;0;210;60m000|210|060 \u001b[00m\u001b[00;48;2;0;210;90m000|210|090 \u001b[00m\u001b[00;48;2;0;210;120m000|210|120 \u001b[00m\u001b[00;48;2;0;210;150m000|210|150 \u001b[00m\u001b[00;48;2;0;210;180m000|210|180 \u001b[00m\u001b[00;48;2;0;210;210m000|210|210 \u001b[00m\u001b[00;48;2;0;210;240m000|210|240 \u001b[00m\n", "\u001b[00;48;2;0;240;0m000|240|000 \u001b[00m\u001b[00;48;2;0;240;30m000|240|030 \u001b[00m\u001b[00;48;2;0;240;60m000|240|060 \u001b[00m\u001b[00;48;2;0;240;90m000|240|090 \u001b[00m\u001b[00;48;2;0;240;120m000|240|120 \u001b[00m\u001b[00;48;2;0;240;150m000|240|150 \u001b[00m\u001b[00;48;2;0;240;180m000|240|180 \u001b[00m\u001b[00;48;2;0;240;210m000|240|210 \u001b[00m\u001b[00;48;2;0;240;240m000|240|240 \u001b[00m\n", "\n", "\u001b[00;48;2;30;0;0m030|000|000 \u001b[00m\u001b[00;48;2;30;0;30m030|000|030 \u001b[00m\u001b[00;48;2;30;0;60m030|000|060 \u001b[00m\u001b[00;48;2;30;0;90m030|000|090 \u001b[00m\u001b[00;48;2;30;0;120m030|000|120 \u001b[00m\u001b[00;48;2;30;0;150m030|000|150 \u001b[00m\u001b[00;48;2;30;0;180m030|000|180 \u001b[00m\u001b[00;48;2;30;0;210m030|000|210 \u001b[00m\u001b[00;48;2;30;0;240m030|000|240 \u001b[00m\n", "\u001b[00;48;2;30;30;0m030|030|000 \u001b[00m\u001b[00;48;2;30;30;30m030|030|030 \u001b[00m\u001b[00;48;2;30;30;60m030|030|060 \u001b[00m\u001b[00;48;2;30;30;90m030|030|090 \u001b[00m\u001b[00;48;2;30;30;120m030|030|120 \u001b[00m\u001b[00;48;2;30;30;150m030|030|150 \u001b[00m\u001b[00;48;2;30;30;180m030|030|180 \u001b[00m\u001b[00;48;2;30;30;210m030|030|210 \u001b[00m\u001b[00;48;2;30;30;240m030|030|240 \u001b[00m\n", "\u001b[00;48;2;30;60;0m030|060|000 \u001b[00m\u001b[00;48;2;30;60;30m030|060|030 \u001b[00m\u001b[00;48;2;30;60;60m030|060|060 \u001b[00m\u001b[00;48;2;30;60;90m030|060|090 \u001b[00m\u001b[00;48;2;30;60;120m030|060|120 \u001b[00m\u001b[00;48;2;30;60;150m030|060|150 \u001b[00m\u001b[00;48;2;30;60;180m030|060|180 \u001b[00m\u001b[00;48;2;30;60;210m030|060|210 \u001b[00m\u001b[00;48;2;30;60;240m030|060|240 \u001b[00m\n", "\u001b[00;48;2;30;90;0m030|090|000 \u001b[00m\u001b[00;48;2;30;90;30m030|090|030 \u001b[00m\u001b[00;48;2;30;90;60m030|090|060 \u001b[00m\u001b[00;48;2;30;90;90m030|090|090 \u001b[00m\u001b[00;48;2;30;90;120m030|090|120 \u001b[00m\u001b[00;48;2;30;90;150m030|090|150 \u001b[00m\u001b[00;48;2;30;90;180m030|090|180 \u001b[00m\u001b[00;48;2;30;90;210m030|090|210 \u001b[00m\u001b[00;48;2;30;90;240m030|090|240 \u001b[00m\n", "\u001b[00;48;2;30;120;0m030|120|000 \u001b[00m\u001b[00;48;2;30;120;30m030|120|030 \u001b[00m\u001b[00;48;2;30;120;60m030|120|060 \u001b[00m\u001b[00;48;2;30;120;90m030|120|090 \u001b[00m\u001b[00;48;2;30;120;120m030|120|120 \u001b[00m\u001b[00;48;2;30;120;150m030|120|150 \u001b[00m\u001b[00;48;2;30;120;180m030|120|180 \u001b[00m\u001b[00;48;2;30;120;210m030|120|210 \u001b[00m\u001b[00;48;2;30;120;240m030|120|240 \u001b[00m\n", "\u001b[00;48;2;30;150;0m030|150|000 \u001b[00m\u001b[00;48;2;30;150;30m030|150|030 \u001b[00m\u001b[00;48;2;30;150;60m030|150|060 \u001b[00m\u001b[00;48;2;30;150;90m030|150|090 \u001b[00m\u001b[00;48;2;30;150;120m030|150|120 \u001b[00m\u001b[00;48;2;30;150;150m030|150|150 \u001b[00m\u001b[00;48;2;30;150;180m030|150|180 \u001b[00m\u001b[00;48;2;30;150;210m030|150|210 \u001b[00m\u001b[00;48;2;30;150;240m030|150|240 \u001b[00m\n", "\u001b[00;48;2;30;180;0m030|180|000 \u001b[00m\u001b[00;48;2;30;180;30m030|180|030 \u001b[00m\u001b[00;48;2;30;180;60m030|180|060 \u001b[00m\u001b[00;48;2;30;180;90m030|180|090 \u001b[00m\u001b[00;48;2;30;180;120m030|180|120 \u001b[00m\u001b[00;48;2;30;180;150m030|180|150 \u001b[00m\u001b[00;48;2;30;180;180m030|180|180 \u001b[00m\u001b[00;48;2;30;180;210m030|180|210 \u001b[00m\u001b[00;48;2;30;180;240m030|180|240 \u001b[00m\n", "\u001b[00;48;2;30;210;0m030|210|000 \u001b[00m\u001b[00;48;2;30;210;30m030|210|030 \u001b[00m\u001b[00;48;2;30;210;60m030|210|060 \u001b[00m\u001b[00;48;2;30;210;90m030|210|090 \u001b[00m\u001b[00;48;2;30;210;120m030|210|120 \u001b[00m\u001b[00;48;2;30;210;150m030|210|150 \u001b[00m\u001b[00;48;2;30;210;180m030|210|180 \u001b[00m\u001b[00;48;2;30;210;210m030|210|210 \u001b[00m\u001b[00;48;2;30;210;240m030|210|240 \u001b[00m\n", "\u001b[00;48;2;30;240;0m030|240|000 \u001b[00m\u001b[00;48;2;30;240;30m030|240|030 \u001b[00m\u001b[00;48;2;30;240;60m030|240|060 \u001b[00m\u001b[00;48;2;30;240;90m030|240|090 \u001b[00m\u001b[00;48;2;30;240;120m030|240|120 \u001b[00m\u001b[00;48;2;30;240;150m030|240|150 \u001b[00m\u001b[00;48;2;30;240;180m030|240|180 \u001b[00m\u001b[00;48;2;30;240;210m030|240|210 \u001b[00m\u001b[00;48;2;30;240;240m030|240|240 \u001b[00m\n", "\n", "\u001b[00;48;2;60;0;0m060|000|000 \u001b[00m\u001b[00;48;2;60;0;30m060|000|030 \u001b[00m\u001b[00;48;2;60;0;60m060|000|060 \u001b[00m\u001b[00;48;2;60;0;90m060|000|090 \u001b[00m\u001b[00;48;2;60;0;120m060|000|120 \u001b[00m\u001b[00;48;2;60;0;150m060|000|150 \u001b[00m\u001b[00;48;2;60;0;180m060|000|180 \u001b[00m\u001b[00;48;2;60;0;210m060|000|210 \u001b[00m\u001b[00;48;2;60;0;240m060|000|240 \u001b[00m\n", "\u001b[00;48;2;60;30;0m060|030|000 \u001b[00m\u001b[00;48;2;60;30;30m060|030|030 \u001b[00m\u001b[00;48;2;60;30;60m060|030|060 \u001b[00m\u001b[00;48;2;60;30;90m060|030|090 \u001b[00m\u001b[00;48;2;60;30;120m060|030|120 \u001b[00m\u001b[00;48;2;60;30;150m060|030|150 \u001b[00m\u001b[00;48;2;60;30;180m060|030|180 \u001b[00m\u001b[00;48;2;60;30;210m060|030|210 \u001b[00m\u001b[00;48;2;60;30;240m060|030|240 \u001b[00m\n", "\u001b[00;48;2;60;60;0m060|060|000 \u001b[00m\u001b[00;48;2;60;60;30m060|060|030 \u001b[00m\u001b[00;48;2;60;60;60m060|060|060 \u001b[00m\u001b[00;48;2;60;60;90m060|060|090 \u001b[00m\u001b[00;48;2;60;60;120m060|060|120 \u001b[00m\u001b[00;48;2;60;60;150m060|060|150 \u001b[00m\u001b[00;48;2;60;60;180m060|060|180 \u001b[00m\u001b[00;48;2;60;60;210m060|060|210 \u001b[00m\u001b[00;48;2;60;60;240m060|060|240 \u001b[00m\n", "\u001b[00;48;2;60;90;0m060|090|000 \u001b[00m\u001b[00;48;2;60;90;30m060|090|030 \u001b[00m\u001b[00;48;2;60;90;60m060|090|060 \u001b[00m\u001b[00;48;2;60;90;90m060|090|090 \u001b[00m\u001b[00;48;2;60;90;120m060|090|120 \u001b[00m\u001b[00;48;2;60;90;150m060|090|150 \u001b[00m\u001b[00;48;2;60;90;180m060|090|180 \u001b[00m\u001b[00;48;2;60;90;210m060|090|210 \u001b[00m\u001b[00;48;2;60;90;240m060|090|240 \u001b[00m\n", "\u001b[00;48;2;60;120;0m060|120|000 \u001b[00m\u001b[00;48;2;60;120;30m060|120|030 \u001b[00m\u001b[00;48;2;60;120;60m060|120|060 \u001b[00m\u001b[00;48;2;60;120;90m060|120|090 \u001b[00m\u001b[00;48;2;60;120;120m060|120|120 \u001b[00m\u001b[00;48;2;60;120;150m060|120|150 \u001b[00m\u001b[00;48;2;60;120;180m060|120|180 \u001b[00m\u001b[00;48;2;60;120;210m060|120|210 \u001b[00m\u001b[00;48;2;60;120;240m060|120|240 \u001b[00m\n", "\u001b[00;48;2;60;150;0m060|150|000 \u001b[00m\u001b[00;48;2;60;150;30m060|150|030 \u001b[00m\u001b[00;48;2;60;150;60m060|150|060 \u001b[00m\u001b[00;48;2;60;150;90m060|150|090 \u001b[00m\u001b[00;48;2;60;150;120m060|150|120 \u001b[00m\u001b[00;48;2;60;150;150m060|150|150 \u001b[00m\u001b[00;48;2;60;150;180m060|150|180 \u001b[00m\u001b[00;48;2;60;150;210m060|150|210 \u001b[00m\u001b[00;48;2;60;150;240m060|150|240 \u001b[00m\n", "\u001b[00;48;2;60;180;0m060|180|000 \u001b[00m\u001b[00;48;2;60;180;30m060|180|030 \u001b[00m\u001b[00;48;2;60;180;60m060|180|060 \u001b[00m\u001b[00;48;2;60;180;90m060|180|090 \u001b[00m\u001b[00;48;2;60;180;120m060|180|120 \u001b[00m\u001b[00;48;2;60;180;150m060|180|150 \u001b[00m\u001b[00;48;2;60;180;180m060|180|180 \u001b[00m\u001b[00;48;2;60;180;210m060|180|210 \u001b[00m\u001b[00;48;2;60;180;240m060|180|240 \u001b[00m\n", "\u001b[00;48;2;60;210;0m060|210|000 \u001b[00m\u001b[00;48;2;60;210;30m060|210|030 \u001b[00m\u001b[00;48;2;60;210;60m060|210|060 \u001b[00m\u001b[00;48;2;60;210;90m060|210|090 \u001b[00m\u001b[00;48;2;60;210;120m060|210|120 \u001b[00m\u001b[00;48;2;60;210;150m060|210|150 \u001b[00m\u001b[00;48;2;60;210;180m060|210|180 \u001b[00m\u001b[00;48;2;60;210;210m060|210|210 \u001b[00m\u001b[00;48;2;60;210;240m060|210|240 \u001b[00m\n", "\u001b[00;48;2;60;240;0m060|240|000 \u001b[00m\u001b[00;48;2;60;240;30m060|240|030 \u001b[00m\u001b[00;48;2;60;240;60m060|240|060 \u001b[00m\u001b[00;48;2;60;240;90m060|240|090 \u001b[00m\u001b[00;48;2;60;240;120m060|240|120 \u001b[00m\u001b[00;48;2;60;240;150m060|240|150 \u001b[00m\u001b[00;48;2;60;240;180m060|240|180 \u001b[00m\u001b[00;48;2;60;240;210m060|240|210 \u001b[00m\u001b[00;48;2;60;240;240m060|240|240 \u001b[00m\n", "\n", "\u001b[00;48;2;90;0;0m090|000|000 \u001b[00m\u001b[00;48;2;90;0;30m090|000|030 \u001b[00m\u001b[00;48;2;90;0;60m090|000|060 \u001b[00m\u001b[00;48;2;90;0;90m090|000|090 \u001b[00m\u001b[00;48;2;90;0;120m090|000|120 \u001b[00m\u001b[00;48;2;90;0;150m090|000|150 \u001b[00m\u001b[00;48;2;90;0;180m090|000|180 \u001b[00m\u001b[00;48;2;90;0;210m090|000|210 \u001b[00m\u001b[00;48;2;90;0;240m090|000|240 \u001b[00m\n", "\u001b[00;48;2;90;30;0m090|030|000 \u001b[00m\u001b[00;48;2;90;30;30m090|030|030 \u001b[00m\u001b[00;48;2;90;30;60m090|030|060 \u001b[00m\u001b[00;48;2;90;30;90m090|030|090 \u001b[00m\u001b[00;48;2;90;30;120m090|030|120 \u001b[00m\u001b[00;48;2;90;30;150m090|030|150 \u001b[00m\u001b[00;48;2;90;30;180m090|030|180 \u001b[00m\u001b[00;48;2;90;30;210m090|030|210 \u001b[00m\u001b[00;48;2;90;30;240m090|030|240 \u001b[00m\n", "\u001b[00;48;2;90;60;0m090|060|000 \u001b[00m\u001b[00;48;2;90;60;30m090|060|030 \u001b[00m\u001b[00;48;2;90;60;60m090|060|060 \u001b[00m\u001b[00;48;2;90;60;90m090|060|090 \u001b[00m\u001b[00;48;2;90;60;120m090|060|120 \u001b[00m\u001b[00;48;2;90;60;150m090|060|150 \u001b[00m\u001b[00;48;2;90;60;180m090|060|180 \u001b[00m\u001b[00;48;2;90;60;210m090|060|210 \u001b[00m\u001b[00;48;2;90;60;240m090|060|240 \u001b[00m\n", "\u001b[00;48;2;90;90;0m090|090|000 \u001b[00m\u001b[00;48;2;90;90;30m090|090|030 \u001b[00m\u001b[00;48;2;90;90;60m090|090|060 \u001b[00m\u001b[00;48;2;90;90;90m090|090|090 \u001b[00m\u001b[00;48;2;90;90;120m090|090|120 \u001b[00m\u001b[00;48;2;90;90;150m090|090|150 \u001b[00m\u001b[00;48;2;90;90;180m090|090|180 \u001b[00m\u001b[00;48;2;90;90;210m090|090|210 \u001b[00m\u001b[00;48;2;90;90;240m090|090|240 \u001b[00m\n", "\u001b[00;48;2;90;120;0m090|120|000 \u001b[00m\u001b[00;48;2;90;120;30m090|120|030 \u001b[00m\u001b[00;48;2;90;120;60m090|120|060 \u001b[00m\u001b[00;48;2;90;120;90m090|120|090 \u001b[00m\u001b[00;48;2;90;120;120m090|120|120 \u001b[00m\u001b[00;48;2;90;120;150m090|120|150 \u001b[00m\u001b[00;48;2;90;120;180m090|120|180 \u001b[00m\u001b[00;48;2;90;120;210m090|120|210 \u001b[00m\u001b[00;48;2;90;120;240m090|120|240 \u001b[00m\n", "\u001b[00;48;2;90;150;0m090|150|000 \u001b[00m\u001b[00;48;2;90;150;30m090|150|030 \u001b[00m\u001b[00;48;2;90;150;60m090|150|060 \u001b[00m\u001b[00;48;2;90;150;90m090|150|090 \u001b[00m\u001b[00;48;2;90;150;120m090|150|120 \u001b[00m\u001b[00;48;2;90;150;150m090|150|150 \u001b[00m\u001b[00;48;2;90;150;180m090|150|180 \u001b[00m\u001b[00;48;2;90;150;210m090|150|210 \u001b[00m\u001b[00;48;2;90;150;240m090|150|240 \u001b[00m\n", "\u001b[00;48;2;90;180;0m090|180|000 \u001b[00m\u001b[00;48;2;90;180;30m090|180|030 \u001b[00m\u001b[00;48;2;90;180;60m090|180|060 \u001b[00m\u001b[00;48;2;90;180;90m090|180|090 \u001b[00m\u001b[00;48;2;90;180;120m090|180|120 \u001b[00m\u001b[00;48;2;90;180;150m090|180|150 \u001b[00m\u001b[00;48;2;90;180;180m090|180|180 \u001b[00m\u001b[00;48;2;90;180;210m090|180|210 \u001b[00m\u001b[00;48;2;90;180;240m090|180|240 \u001b[00m\n", "\u001b[00;48;2;90;210;0m090|210|000 \u001b[00m\u001b[00;48;2;90;210;30m090|210|030 \u001b[00m\u001b[00;48;2;90;210;60m090|210|060 \u001b[00m\u001b[00;48;2;90;210;90m090|210|090 \u001b[00m\u001b[00;48;2;90;210;120m090|210|120 \u001b[00m\u001b[00;48;2;90;210;150m090|210|150 \u001b[00m\u001b[00;48;2;90;210;180m090|210|180 \u001b[00m\u001b[00;48;2;90;210;210m090|210|210 \u001b[00m\u001b[00;48;2;90;210;240m090|210|240 \u001b[00m\n", "\u001b[00;48;2;90;240;0m090|240|000 \u001b[00m\u001b[00;48;2;90;240;30m090|240|030 \u001b[00m\u001b[00;48;2;90;240;60m090|240|060 \u001b[00m\u001b[00;48;2;90;240;90m090|240|090 \u001b[00m\u001b[00;48;2;90;240;120m090|240|120 \u001b[00m\u001b[00;48;2;90;240;150m090|240|150 \u001b[00m\u001b[00;48;2;90;240;180m090|240|180 \u001b[00m\u001b[00;48;2;90;240;210m090|240|210 \u001b[00m\u001b[00;48;2;90;240;240m090|240|240 \u001b[00m\n", "\n", "\u001b[00;48;2;120;0;0m120|000|000 \u001b[00m\u001b[00;48;2;120;0;30m120|000|030 \u001b[00m\u001b[00;48;2;120;0;60m120|000|060 \u001b[00m\u001b[00;48;2;120;0;90m120|000|090 \u001b[00m\u001b[00;48;2;120;0;120m120|000|120 \u001b[00m\u001b[00;48;2;120;0;150m120|000|150 \u001b[00m\u001b[00;48;2;120;0;180m120|000|180 \u001b[00m\u001b[00;48;2;120;0;210m120|000|210 \u001b[00m\u001b[00;48;2;120;0;240m120|000|240 \u001b[00m\n", "\u001b[00;48;2;120;30;0m120|030|000 \u001b[00m\u001b[00;48;2;120;30;30m120|030|030 \u001b[00m\u001b[00;48;2;120;30;60m120|030|060 \u001b[00m\u001b[00;48;2;120;30;90m120|030|090 \u001b[00m\u001b[00;48;2;120;30;120m120|030|120 \u001b[00m\u001b[00;48;2;120;30;150m120|030|150 \u001b[00m\u001b[00;48;2;120;30;180m120|030|180 \u001b[00m\u001b[00;48;2;120;30;210m120|030|210 \u001b[00m\u001b[00;48;2;120;30;240m120|030|240 \u001b[00m\n", "\u001b[00;48;2;120;60;0m120|060|000 \u001b[00m\u001b[00;48;2;120;60;30m120|060|030 \u001b[00m\u001b[00;48;2;120;60;60m120|060|060 \u001b[00m\u001b[00;48;2;120;60;90m120|060|090 \u001b[00m\u001b[00;48;2;120;60;120m120|060|120 \u001b[00m\u001b[00;48;2;120;60;150m120|060|150 \u001b[00m\u001b[00;48;2;120;60;180m120|060|180 \u001b[00m\u001b[00;48;2;120;60;210m120|060|210 \u001b[00m\u001b[00;48;2;120;60;240m120|060|240 \u001b[00m\n", "\u001b[00;48;2;120;90;0m120|090|000 \u001b[00m\u001b[00;48;2;120;90;30m120|090|030 \u001b[00m\u001b[00;48;2;120;90;60m120|090|060 \u001b[00m\u001b[00;48;2;120;90;90m120|090|090 \u001b[00m\u001b[00;48;2;120;90;120m120|090|120 \u001b[00m\u001b[00;48;2;120;90;150m120|090|150 \u001b[00m\u001b[00;48;2;120;90;180m120|090|180 \u001b[00m\u001b[00;48;2;120;90;210m120|090|210 \u001b[00m\u001b[00;48;2;120;90;240m120|090|240 \u001b[00m\n", "\u001b[00;48;2;120;120;0m120|120|000 \u001b[00m\u001b[00;48;2;120;120;30m120|120|030 \u001b[00m\u001b[00;48;2;120;120;60m120|120|060 \u001b[00m\u001b[00;48;2;120;120;90m120|120|090 \u001b[00m\u001b[00;48;2;120;120;120m120|120|120 \u001b[00m\u001b[00;48;2;120;120;150m120|120|150 \u001b[00m\u001b[00;48;2;120;120;180m120|120|180 \u001b[00m\u001b[00;48;2;120;120;210m120|120|210 \u001b[00m\u001b[00;48;2;120;120;240m120|120|240 \u001b[00m\n", "\u001b[00;48;2;120;150;0m120|150|000 \u001b[00m\u001b[00;48;2;120;150;30m120|150|030 \u001b[00m\u001b[00;48;2;120;150;60m120|150|060 \u001b[00m\u001b[00;48;2;120;150;90m120|150|090 \u001b[00m\u001b[00;48;2;120;150;120m120|150|120 \u001b[00m\u001b[00;48;2;120;150;150m120|150|150 \u001b[00m\u001b[00;48;2;120;150;180m120|150|180 \u001b[00m\u001b[00;48;2;120;150;210m120|150|210 \u001b[00m\u001b[00;48;2;120;150;240m120|150|240 \u001b[00m\n", "\u001b[00;48;2;120;180;0m120|180|000 \u001b[00m\u001b[00;48;2;120;180;30m120|180|030 \u001b[00m\u001b[00;48;2;120;180;60m120|180|060 \u001b[00m\u001b[00;48;2;120;180;90m120|180|090 \u001b[00m\u001b[00;48;2;120;180;120m120|180|120 \u001b[00m\u001b[00;48;2;120;180;150m120|180|150 \u001b[00m\u001b[00;48;2;120;180;180m120|180|180 \u001b[00m\u001b[00;48;2;120;180;210m120|180|210 \u001b[00m\u001b[00;48;2;120;180;240m120|180|240 \u001b[00m\n", "\u001b[00;48;2;120;210;0m120|210|000 \u001b[00m\u001b[00;48;2;120;210;30m120|210|030 \u001b[00m\u001b[00;48;2;120;210;60m120|210|060 \u001b[00m\u001b[00;48;2;120;210;90m120|210|090 \u001b[00m\u001b[00;48;2;120;210;120m120|210|120 \u001b[00m\u001b[00;48;2;120;210;150m120|210|150 \u001b[00m\u001b[00;48;2;120;210;180m120|210|180 \u001b[00m\u001b[00;48;2;120;210;210m120|210|210 \u001b[00m\u001b[00;48;2;120;210;240m120|210|240 \u001b[00m\n", "\u001b[00;48;2;120;240;0m120|240|000 \u001b[00m\u001b[00;48;2;120;240;30m120|240|030 \u001b[00m\u001b[00;48;2;120;240;60m120|240|060 \u001b[00m\u001b[00;48;2;120;240;90m120|240|090 \u001b[00m\u001b[00;48;2;120;240;120m120|240|120 \u001b[00m\u001b[00;48;2;120;240;150m120|240|150 \u001b[00m\u001b[00;48;2;120;240;180m120|240|180 \u001b[00m\u001b[00;48;2;120;240;210m120|240|210 \u001b[00m\u001b[00;48;2;120;240;240m120|240|240 \u001b[00m\n", "\n", "\u001b[00;48;2;150;0;0m150|000|000 \u001b[00m\u001b[00;48;2;150;0;30m150|000|030 \u001b[00m\u001b[00;48;2;150;0;60m150|000|060 \u001b[00m\u001b[00;48;2;150;0;90m150|000|090 \u001b[00m\u001b[00;48;2;150;0;120m150|000|120 \u001b[00m\u001b[00;48;2;150;0;150m150|000|150 \u001b[00m\u001b[00;48;2;150;0;180m150|000|180 \u001b[00m\u001b[00;48;2;150;0;210m150|000|210 \u001b[00m\u001b[00;48;2;150;0;240m150|000|240 \u001b[00m\n", "\u001b[00;48;2;150;30;0m150|030|000 \u001b[00m\u001b[00;48;2;150;30;30m150|030|030 \u001b[00m\u001b[00;48;2;150;30;60m150|030|060 \u001b[00m\u001b[00;48;2;150;30;90m150|030|090 \u001b[00m\u001b[00;48;2;150;30;120m150|030|120 \u001b[00m\u001b[00;48;2;150;30;150m150|030|150 \u001b[00m\u001b[00;48;2;150;30;180m150|030|180 \u001b[00m\u001b[00;48;2;150;30;210m150|030|210 \u001b[00m\u001b[00;48;2;150;30;240m150|030|240 \u001b[00m\n", "\u001b[00;48;2;150;60;0m150|060|000 \u001b[00m\u001b[00;48;2;150;60;30m150|060|030 \u001b[00m\u001b[00;48;2;150;60;60m150|060|060 \u001b[00m\u001b[00;48;2;150;60;90m150|060|090 \u001b[00m\u001b[00;48;2;150;60;120m150|060|120 \u001b[00m\u001b[00;48;2;150;60;150m150|060|150 \u001b[00m\u001b[00;48;2;150;60;180m150|060|180 \u001b[00m\u001b[00;48;2;150;60;210m150|060|210 \u001b[00m\u001b[00;48;2;150;60;240m150|060|240 \u001b[00m\n", "\u001b[00;48;2;150;90;0m150|090|000 \u001b[00m\u001b[00;48;2;150;90;30m150|090|030 \u001b[00m\u001b[00;48;2;150;90;60m150|090|060 \u001b[00m\u001b[00;48;2;150;90;90m150|090|090 \u001b[00m\u001b[00;48;2;150;90;120m150|090|120 \u001b[00m\u001b[00;48;2;150;90;150m150|090|150 \u001b[00m\u001b[00;48;2;150;90;180m150|090|180 \u001b[00m\u001b[00;48;2;150;90;210m150|090|210 \u001b[00m\u001b[00;48;2;150;90;240m150|090|240 \u001b[00m\n", "\u001b[00;48;2;150;120;0m150|120|000 \u001b[00m\u001b[00;48;2;150;120;30m150|120|030 \u001b[00m\u001b[00;48;2;150;120;60m150|120|060 \u001b[00m\u001b[00;48;2;150;120;90m150|120|090 \u001b[00m\u001b[00;48;2;150;120;120m150|120|120 \u001b[00m\u001b[00;48;2;150;120;150m150|120|150 \u001b[00m\u001b[00;48;2;150;120;180m150|120|180 \u001b[00m\u001b[00;48;2;150;120;210m150|120|210 \u001b[00m\u001b[00;48;2;150;120;240m150|120|240 \u001b[00m\n", "\u001b[00;48;2;150;150;0m150|150|000 \u001b[00m\u001b[00;48;2;150;150;30m150|150|030 \u001b[00m\u001b[00;48;2;150;150;60m150|150|060 \u001b[00m\u001b[00;48;2;150;150;90m150|150|090 \u001b[00m\u001b[00;48;2;150;150;120m150|150|120 \u001b[00m\u001b[00;48;2;150;150;150m150|150|150 \u001b[00m\u001b[00;48;2;150;150;180m150|150|180 \u001b[00m\u001b[00;48;2;150;150;210m150|150|210 \u001b[00m\u001b[00;48;2;150;150;240m150|150|240 \u001b[00m\n", "\u001b[00;48;2;150;180;0m150|180|000 \u001b[00m\u001b[00;48;2;150;180;30m150|180|030 \u001b[00m\u001b[00;48;2;150;180;60m150|180|060 \u001b[00m\u001b[00;48;2;150;180;90m150|180|090 \u001b[00m\u001b[00;48;2;150;180;120m150|180|120 \u001b[00m\u001b[00;48;2;150;180;150m150|180|150 \u001b[00m\u001b[00;48;2;150;180;180m150|180|180 \u001b[00m\u001b[00;48;2;150;180;210m150|180|210 \u001b[00m\u001b[00;48;2;150;180;240m150|180|240 \u001b[00m\n", "\u001b[00;48;2;150;210;0m150|210|000 \u001b[00m\u001b[00;48;2;150;210;30m150|210|030 \u001b[00m\u001b[00;48;2;150;210;60m150|210|060 \u001b[00m\u001b[00;48;2;150;210;90m150|210|090 \u001b[00m\u001b[00;48;2;150;210;120m150|210|120 \u001b[00m\u001b[00;48;2;150;210;150m150|210|150 \u001b[00m\u001b[00;48;2;150;210;180m150|210|180 \u001b[00m\u001b[00;48;2;150;210;210m150|210|210 \u001b[00m\u001b[00;48;2;150;210;240m150|210|240 \u001b[00m\n", "\u001b[00;48;2;150;240;0m150|240|000 \u001b[00m\u001b[00;48;2;150;240;30m150|240|030 \u001b[00m\u001b[00;48;2;150;240;60m150|240|060 \u001b[00m\u001b[00;48;2;150;240;90m150|240|090 \u001b[00m\u001b[00;48;2;150;240;120m150|240|120 \u001b[00m\u001b[00;48;2;150;240;150m150|240|150 \u001b[00m\u001b[00;48;2;150;240;180m150|240|180 \u001b[00m\u001b[00;48;2;150;240;210m150|240|210 \u001b[00m\u001b[00;48;2;150;240;240m150|240|240 \u001b[00m\n", "\n", "\u001b[00;48;2;180;0;0m180|000|000 \u001b[00m\u001b[00;48;2;180;0;30m180|000|030 \u001b[00m\u001b[00;48;2;180;0;60m180|000|060 \u001b[00m\u001b[00;48;2;180;0;90m180|000|090 \u001b[00m\u001b[00;48;2;180;0;120m180|000|120 \u001b[00m\u001b[00;48;2;180;0;150m180|000|150 \u001b[00m\u001b[00;48;2;180;0;180m180|000|180 \u001b[00m\u001b[00;48;2;180;0;210m180|000|210 \u001b[00m\u001b[00;48;2;180;0;240m180|000|240 \u001b[00m\n", "\u001b[00;48;2;180;30;0m180|030|000 \u001b[00m\u001b[00;48;2;180;30;30m180|030|030 \u001b[00m\u001b[00;48;2;180;30;60m180|030|060 \u001b[00m\u001b[00;48;2;180;30;90m180|030|090 \u001b[00m\u001b[00;48;2;180;30;120m180|030|120 \u001b[00m\u001b[00;48;2;180;30;150m180|030|150 \u001b[00m\u001b[00;48;2;180;30;180m180|030|180 \u001b[00m\u001b[00;48;2;180;30;210m180|030|210 \u001b[00m\u001b[00;48;2;180;30;240m180|030|240 \u001b[00m\n", "\u001b[00;48;2;180;60;0m180|060|000 \u001b[00m\u001b[00;48;2;180;60;30m180|060|030 \u001b[00m\u001b[00;48;2;180;60;60m180|060|060 \u001b[00m\u001b[00;48;2;180;60;90m180|060|090 \u001b[00m\u001b[00;48;2;180;60;120m180|060|120 \u001b[00m\u001b[00;48;2;180;60;150m180|060|150 \u001b[00m\u001b[00;48;2;180;60;180m180|060|180 \u001b[00m\u001b[00;48;2;180;60;210m180|060|210 \u001b[00m\u001b[00;48;2;180;60;240m180|060|240 \u001b[00m\n", "\u001b[00;48;2;180;90;0m180|090|000 \u001b[00m\u001b[00;48;2;180;90;30m180|090|030 \u001b[00m\u001b[00;48;2;180;90;60m180|090|060 \u001b[00m\u001b[00;48;2;180;90;90m180|090|090 \u001b[00m\u001b[00;48;2;180;90;120m180|090|120 \u001b[00m\u001b[00;48;2;180;90;150m180|090|150 \u001b[00m\u001b[00;48;2;180;90;180m180|090|180 \u001b[00m\u001b[00;48;2;180;90;210m180|090|210 \u001b[00m\u001b[00;48;2;180;90;240m180|090|240 \u001b[00m\n", "\u001b[00;48;2;180;120;0m180|120|000 \u001b[00m\u001b[00;48;2;180;120;30m180|120|030 \u001b[00m\u001b[00;48;2;180;120;60m180|120|060 \u001b[00m\u001b[00;48;2;180;120;90m180|120|090 \u001b[00m\u001b[00;48;2;180;120;120m180|120|120 \u001b[00m\u001b[00;48;2;180;120;150m180|120|150 \u001b[00m\u001b[00;48;2;180;120;180m180|120|180 \u001b[00m\u001b[00;48;2;180;120;210m180|120|210 \u001b[00m\u001b[00;48;2;180;120;240m180|120|240 \u001b[00m\n", "\u001b[00;48;2;180;150;0m180|150|000 \u001b[00m\u001b[00;48;2;180;150;30m180|150|030 \u001b[00m\u001b[00;48;2;180;150;60m180|150|060 \u001b[00m\u001b[00;48;2;180;150;90m180|150|090 \u001b[00m\u001b[00;48;2;180;150;120m180|150|120 \u001b[00m\u001b[00;48;2;180;150;150m180|150|150 \u001b[00m\u001b[00;48;2;180;150;180m180|150|180 \u001b[00m\u001b[00;48;2;180;150;210m180|150|210 \u001b[00m\u001b[00;48;2;180;150;240m180|150|240 \u001b[00m\n", "\u001b[00;48;2;180;180;0m180|180|000 \u001b[00m\u001b[00;48;2;180;180;30m180|180|030 \u001b[00m\u001b[00;48;2;180;180;60m180|180|060 \u001b[00m\u001b[00;48;2;180;180;90m180|180|090 \u001b[00m\u001b[00;48;2;180;180;120m180|180|120 \u001b[00m\u001b[00;48;2;180;180;150m180|180|150 \u001b[00m\u001b[00;48;2;180;180;180m180|180|180 \u001b[00m\u001b[00;48;2;180;180;210m180|180|210 \u001b[00m\u001b[00;48;2;180;180;240m180|180|240 \u001b[00m\n", "\u001b[00;48;2;180;210;0m180|210|000 \u001b[00m\u001b[00;48;2;180;210;30m180|210|030 \u001b[00m\u001b[00;48;2;180;210;60m180|210|060 \u001b[00m\u001b[00;48;2;180;210;90m180|210|090 \u001b[00m\u001b[00;48;2;180;210;120m180|210|120 \u001b[00m\u001b[00;48;2;180;210;150m180|210|150 \u001b[00m\u001b[00;48;2;180;210;180m180|210|180 \u001b[00m\u001b[00;48;2;180;210;210m180|210|210 \u001b[00m\u001b[00;48;2;180;210;240m180|210|240 \u001b[00m\n", "\u001b[00;48;2;180;240;0m180|240|000 \u001b[00m\u001b[00;48;2;180;240;30m180|240|030 \u001b[00m\u001b[00;48;2;180;240;60m180|240|060 \u001b[00m\u001b[00;48;2;180;240;90m180|240|090 \u001b[00m\u001b[00;48;2;180;240;120m180|240|120 \u001b[00m\u001b[00;48;2;180;240;150m180|240|150 \u001b[00m\u001b[00;48;2;180;240;180m180|240|180 \u001b[00m\u001b[00;48;2;180;240;210m180|240|210 \u001b[00m\u001b[00;48;2;180;240;240m180|240|240 \u001b[00m\n", "\n", "\u001b[00;48;2;210;0;0m210|000|000 \u001b[00m\u001b[00;48;2;210;0;30m210|000|030 \u001b[00m\u001b[00;48;2;210;0;60m210|000|060 \u001b[00m\u001b[00;48;2;210;0;90m210|000|090 \u001b[00m\u001b[00;48;2;210;0;120m210|000|120 \u001b[00m\u001b[00;48;2;210;0;150m210|000|150 \u001b[00m\u001b[00;48;2;210;0;180m210|000|180 \u001b[00m\u001b[00;48;2;210;0;210m210|000|210 \u001b[00m\u001b[00;48;2;210;0;240m210|000|240 \u001b[00m\n", "\u001b[00;48;2;210;30;0m210|030|000 \u001b[00m\u001b[00;48;2;210;30;30m210|030|030 \u001b[00m\u001b[00;48;2;210;30;60m210|030|060 \u001b[00m\u001b[00;48;2;210;30;90m210|030|090 \u001b[00m\u001b[00;48;2;210;30;120m210|030|120 \u001b[00m\u001b[00;48;2;210;30;150m210|030|150 \u001b[00m\u001b[00;48;2;210;30;180m210|030|180 \u001b[00m\u001b[00;48;2;210;30;210m210|030|210 \u001b[00m\u001b[00;48;2;210;30;240m210|030|240 \u001b[00m\n", "\u001b[00;48;2;210;60;0m210|060|000 \u001b[00m\u001b[00;48;2;210;60;30m210|060|030 \u001b[00m\u001b[00;48;2;210;60;60m210|060|060 \u001b[00m\u001b[00;48;2;210;60;90m210|060|090 \u001b[00m\u001b[00;48;2;210;60;120m210|060|120 \u001b[00m\u001b[00;48;2;210;60;150m210|060|150 \u001b[00m\u001b[00;48;2;210;60;180m210|060|180 \u001b[00m\u001b[00;48;2;210;60;210m210|060|210 \u001b[00m\u001b[00;48;2;210;60;240m210|060|240 \u001b[00m\n", "\u001b[00;48;2;210;90;0m210|090|000 \u001b[00m\u001b[00;48;2;210;90;30m210|090|030 \u001b[00m\u001b[00;48;2;210;90;60m210|090|060 \u001b[00m\u001b[00;48;2;210;90;90m210|090|090 \u001b[00m\u001b[00;48;2;210;90;120m210|090|120 \u001b[00m\u001b[00;48;2;210;90;150m210|090|150 \u001b[00m\u001b[00;48;2;210;90;180m210|090|180 \u001b[00m\u001b[00;48;2;210;90;210m210|090|210 \u001b[00m\u001b[00;48;2;210;90;240m210|090|240 \u001b[00m\n", "\u001b[00;48;2;210;120;0m210|120|000 \u001b[00m\u001b[00;48;2;210;120;30m210|120|030 \u001b[00m\u001b[00;48;2;210;120;60m210|120|060 \u001b[00m\u001b[00;48;2;210;120;90m210|120|090 \u001b[00m\u001b[00;48;2;210;120;120m210|120|120 \u001b[00m\u001b[00;48;2;210;120;150m210|120|150 \u001b[00m\u001b[00;48;2;210;120;180m210|120|180 \u001b[00m\u001b[00;48;2;210;120;210m210|120|210 \u001b[00m\u001b[00;48;2;210;120;240m210|120|240 \u001b[00m\n", "\u001b[00;48;2;210;150;0m210|150|000 \u001b[00m\u001b[00;48;2;210;150;30m210|150|030 \u001b[00m\u001b[00;48;2;210;150;60m210|150|060 \u001b[00m\u001b[00;48;2;210;150;90m210|150|090 \u001b[00m\u001b[00;48;2;210;150;120m210|150|120 \u001b[00m\u001b[00;48;2;210;150;150m210|150|150 \u001b[00m\u001b[00;48;2;210;150;180m210|150|180 \u001b[00m\u001b[00;48;2;210;150;210m210|150|210 \u001b[00m\u001b[00;48;2;210;150;240m210|150|240 \u001b[00m\n", "\u001b[00;48;2;210;180;0m210|180|000 \u001b[00m\u001b[00;48;2;210;180;30m210|180|030 \u001b[00m\u001b[00;48;2;210;180;60m210|180|060 \u001b[00m\u001b[00;48;2;210;180;90m210|180|090 \u001b[00m\u001b[00;48;2;210;180;120m210|180|120 \u001b[00m\u001b[00;48;2;210;180;150m210|180|150 \u001b[00m\u001b[00;48;2;210;180;180m210|180|180 \u001b[00m\u001b[00;48;2;210;180;210m210|180|210 \u001b[00m\u001b[00;48;2;210;180;240m210|180|240 \u001b[00m\n", "\u001b[00;48;2;210;210;0m210|210|000 \u001b[00m\u001b[00;48;2;210;210;30m210|210|030 \u001b[00m\u001b[00;48;2;210;210;60m210|210|060 \u001b[00m\u001b[00;48;2;210;210;90m210|210|090 \u001b[00m\u001b[00;48;2;210;210;120m210|210|120 \u001b[00m\u001b[00;48;2;210;210;150m210|210|150 \u001b[00m\u001b[00;48;2;210;210;180m210|210|180 \u001b[00m\u001b[00;48;2;210;210;210m210|210|210 \u001b[00m\u001b[00;48;2;210;210;240m210|210|240 \u001b[00m\n", "\u001b[00;48;2;210;240;0m210|240|000 \u001b[00m\u001b[00;48;2;210;240;30m210|240|030 \u001b[00m\u001b[00;48;2;210;240;60m210|240|060 \u001b[00m\u001b[00;48;2;210;240;90m210|240|090 \u001b[00m\u001b[00;48;2;210;240;120m210|240|120 \u001b[00m\u001b[00;48;2;210;240;150m210|240|150 \u001b[00m\u001b[00;48;2;210;240;180m210|240|180 \u001b[00m\u001b[00;48;2;210;240;210m210|240|210 \u001b[00m\u001b[00;48;2;210;240;240m210|240|240 \u001b[00m\n", "\n", "\u001b[00;48;2;240;0;0m240|000|000 \u001b[00m\u001b[00;48;2;240;0;30m240|000|030 \u001b[00m\u001b[00;48;2;240;0;60m240|000|060 \u001b[00m\u001b[00;48;2;240;0;90m240|000|090 \u001b[00m\u001b[00;48;2;240;0;120m240|000|120 \u001b[00m\u001b[00;48;2;240;0;150m240|000|150 \u001b[00m\u001b[00;48;2;240;0;180m240|000|180 \u001b[00m\u001b[00;48;2;240;0;210m240|000|210 \u001b[00m\u001b[00;48;2;240;0;240m240|000|240 \u001b[00m\n", "\u001b[00;48;2;240;30;0m240|030|000 \u001b[00m\u001b[00;48;2;240;30;30m240|030|030 \u001b[00m\u001b[00;48;2;240;30;60m240|030|060 \u001b[00m\u001b[00;48;2;240;30;90m240|030|090 \u001b[00m\u001b[00;48;2;240;30;120m240|030|120 \u001b[00m\u001b[00;48;2;240;30;150m240|030|150 \u001b[00m\u001b[00;48;2;240;30;180m240|030|180 \u001b[00m\u001b[00;48;2;240;30;210m240|030|210 \u001b[00m\u001b[00;48;2;240;30;240m240|030|240 \u001b[00m\n", "\u001b[00;48;2;240;60;0m240|060|000 \u001b[00m\u001b[00;48;2;240;60;30m240|060|030 \u001b[00m\u001b[00;48;2;240;60;60m240|060|060 \u001b[00m\u001b[00;48;2;240;60;90m240|060|090 \u001b[00m\u001b[00;48;2;240;60;120m240|060|120 \u001b[00m\u001b[00;48;2;240;60;150m240|060|150 \u001b[00m\u001b[00;48;2;240;60;180m240|060|180 \u001b[00m\u001b[00;48;2;240;60;210m240|060|210 \u001b[00m\u001b[00;48;2;240;60;240m240|060|240 \u001b[00m\n", "\u001b[00;48;2;240;90;0m240|090|000 \u001b[00m\u001b[00;48;2;240;90;30m240|090|030 \u001b[00m\u001b[00;48;2;240;90;60m240|090|060 \u001b[00m\u001b[00;48;2;240;90;90m240|090|090 \u001b[00m\u001b[00;48;2;240;90;120m240|090|120 \u001b[00m\u001b[00;48;2;240;90;150m240|090|150 \u001b[00m\u001b[00;48;2;240;90;180m240|090|180 \u001b[00m\u001b[00;48;2;240;90;210m240|090|210 \u001b[00m\u001b[00;48;2;240;90;240m240|090|240 \u001b[00m\n", "\u001b[00;48;2;240;120;0m240|120|000 \u001b[00m\u001b[00;48;2;240;120;30m240|120|030 \u001b[00m\u001b[00;48;2;240;120;60m240|120|060 \u001b[00m\u001b[00;48;2;240;120;90m240|120|090 \u001b[00m\u001b[00;48;2;240;120;120m240|120|120 \u001b[00m\u001b[00;48;2;240;120;150m240|120|150 \u001b[00m\u001b[00;48;2;240;120;180m240|120|180 \u001b[00m\u001b[00;48;2;240;120;210m240|120|210 \u001b[00m\u001b[00;48;2;240;120;240m240|120|240 \u001b[00m\n", "\u001b[00;48;2;240;150;0m240|150|000 \u001b[00m\u001b[00;48;2;240;150;30m240|150|030 \u001b[00m\u001b[00;48;2;240;150;60m240|150|060 \u001b[00m\u001b[00;48;2;240;150;90m240|150|090 \u001b[00m\u001b[00;48;2;240;150;120m240|150|120 \u001b[00m\u001b[00;48;2;240;150;150m240|150|150 \u001b[00m\u001b[00;48;2;240;150;180m240|150|180 \u001b[00m\u001b[00;48;2;240;150;210m240|150|210 \u001b[00m\u001b[00;48;2;240;150;240m240|150|240 \u001b[00m\n", "\u001b[00;48;2;240;180;0m240|180|000 \u001b[00m\u001b[00;48;2;240;180;30m240|180|030 \u001b[00m\u001b[00;48;2;240;180;60m240|180|060 \u001b[00m\u001b[00;48;2;240;180;90m240|180|090 \u001b[00m\u001b[00;48;2;240;180;120m240|180|120 \u001b[00m\u001b[00;48;2;240;180;150m240|180|150 \u001b[00m\u001b[00;48;2;240;180;180m240|180|180 \u001b[00m\u001b[00;48;2;240;180;210m240|180|210 \u001b[00m\u001b[00;48;2;240;180;240m240|180|240 \u001b[00m\n", "\u001b[00;48;2;240;210;0m240|210|000 \u001b[00m\u001b[00;48;2;240;210;30m240|210|030 \u001b[00m\u001b[00;48;2;240;210;60m240|210|060 \u001b[00m\u001b[00;48;2;240;210;90m240|210|090 \u001b[00m\u001b[00;48;2;240;210;120m240|210|120 \u001b[00m\u001b[00;48;2;240;210;150m240|210|150 \u001b[00m\u001b[00;48;2;240;210;180m240|210|180 \u001b[00m\u001b[00;48;2;240;210;210m240|210|210 \u001b[00m\u001b[00;48;2;240;210;240m240|210|240 \u001b[00m\n", "\u001b[00;48;2;240;240;0m240|240|000 \u001b[00m\u001b[00;48;2;240;240;30m240|240|030 \u001b[00m\u001b[00;48;2;240;240;60m240|240|060 \u001b[00m\u001b[00;48;2;240;240;90m240|240|090 \u001b[00m\u001b[00;48;2;240;240;120m240|240|120 \u001b[00m\u001b[00;48;2;240;240;150m240|240|150 \u001b[00m\u001b[00;48;2;240;240;180m240|240|180 \u001b[00m\u001b[00;48;2;240;240;210m240|240|210 \u001b[00m\u001b[00;48;2;240;240;240m240|240|240 \u001b[00m\n", "\n" ] } ], "source": [ "steps = range(0,256,30)\n", "\n", "t = \"{ESC}00;48;2;{r};{g};{b}m{r:03}|{g:03}|{b:03} {RESET}\"\n", "for r in steps:\n", " for g in steps:\n", " for b in steps:\n", " print (t.format(**locals()), end='')\n", " print()\n", " print()\n" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.4.2" } }, "nbformat": 4, "nbformat_minor": 0 }