Pookkalam by Anto Josu

Code

def bird():
    b = line(x1=0,y1=10,x2=10,y2=15,stroke_width=2)
    bird = combine([b,b|scale(x=-1)])
    return bird

inner_1c = circle(r=20,fill="red",stroke="none")|translate(x=70)
c115 = circle(r=90,fill="#f8ed83",stroke="none")
inner_circle = circle(r=70,fill="#fbff00",stroke="none")
petal1 =  ellipse(fill="white",stroke="none",h=75)|translate(x=45)
petal3 =  ellipse(fill=" green ",stroke="none",h=60)|scale(0.8)|translate(x=45)
petal2 =  ellipse(fill="yellow",stroke="none",h=60)|scale(0.9)|translate(x=45)
c2 = circle(r=140,fill="#f5ca08",stroke="none")
c4 = circle(r=135,fill="red",stroke="none")
c3 = circle(r=144,fill="#f57008",stroke="none")
c5 = circle(r=150,fill=" #4fe200 ",stroke="none")

flower = combine([petal1|repeat(7,rotate(60)),petal2|repeat(6,rotate(60)),petal3|repeat(6,rotate(60))
])|scale(0.93)
inner_2c = circle(r=20,fill="green",stroke="none")|translate(x=65)
show(c5,c3,c2,c4,flower,flower|rotate(30),c115)
show(inner_1c|repeat(11,rotate(33)),inner_2c|repeat(11,rotate(33)))
show(inner_circle)

## katha
pc1 = [Point(0, 0), Point(0.0, 56.0), Point(0.5399910000449999, 55.99720002333326), Point(1.0799280014399864, 55.98880037332835), Point(1.6197570109347657, 55.9748018899433), Point(2.159424046078245, 55.95520597301476), Point(2.69887514061663, 55.93001458211811), Point(3.2380563498900083, 55.89923023637144), Point(3.7769137562267696, 55.862856014183656), Point(4.315393474335326, 55.82089555294669), Point(4.853441656692596, 55.77335304867168), Point(5.391004498928719, 55.72023325556945), Point(5.928028245207439, 55.66154148557502), Point(6.464459193601645, 55.59728360781651), Point(7.000243701463521, 55.52746604802813), Point(7.5353281907887695, 55.45209578790769), Point(8.069659153574358, 55.371180364418365), Point(8.603183157169283, 55.28472786903511), Point(9.135846849617785, 55.1927469469354), Point(9.667596964994507, 55.0952467961348), Point(10.198380328731032, 54.992237166567136), Point(10.728143862933306, 54.88372835910953), Point(11.25683459168938, 54.7697312245523), Point(11.784399646366946, 54.65025716251391), Point(12.310786270900177, 54.52531812030099), Point(12.835941827065271, 54.394926591713656), Point(13.359813799744241, 54.259095615796106), Point(13.88234980217638, 54.11783877553274), Point(14.403497581196884, 53.97117019648987), Point(14.923205022462147, 53.81910454540317), Point(15.441420155661124, 53.66165702871104), Point(15.95809115971234, 53.49884339103394), Point(16.473166367945954, 53.33067991359995), Point(16.986594273270367, 53.15718341261669), Point(17.4983235333229, 52.97837123758967), Point(18.008302975603982, 52.79426126958739), Point(18.516481602594382, 52.60487191945322), Point(19.022808596854865, 52.41022212596435), Point(19.527233326107957, 52.210331353937924), Point(20.029705348301075, 52.00521959228457), Point(20.530174416650727, 51.794907352009524), Point(21.028590484667138, 51.57941566416156), Point(21.524903711158846, 51.35876607772988), Point(22.0190644652168, 51.132980657489256), Point(22.511023331177395, 50.902081981793565), Point(23.000731113563987, 50.66609314031795), Point(23.488138842006443, 50.425037731749896), Point(23.97319777613808, 50.17893986142941), Point(24.4558594104697, 49.92782413893842), Point(24.93607547924009, 49.67171567563991), Point(25.413797961242544, 49.41064008216679), Point(25.88897908462697, 49.14462346586087), Point(26.361571331677016, 48.873692428162066), Point(26.831527443561793, 48.59787406194839), Point(27.298800425061746, 48.31719594882661), Point(27.763343549268118, 48.03168615637415), Point(28.22511036225561, 47.74137323533231), Point(28.684054687727716, 47.4462862167513), Point(29.140130631634353, 47.146454609087044), Point(29.593292586761184, 46.841908395250464), Point(30.043495237290337, 46.532678029609144), Point(30.490693563331924, 46.21879443494198), Point(30.934842845426, 45.90028899934684), Point(31.375898669014486, 45.577193573101894), Point(31.81381692888257, 45.24954046548049), Point(32.24855383356918, 44.917362441520375), Point(32.680065909746155, 44.580692718747116), Point(33.108310006565446, 44.23956496385243), Point(33.53324329997424, 43.894013289327546), Point(33.95482329699732, 43.544072250051954), Point(34.373007839986286, 43.189776839837954), Point(34.787755110835334, 42.83116248793134), Point(35.199023635162995, 42.46826505546844), Point(35.60677228645957, 42.10112083189011), Point(36.010960290199705, 41.72976653131273), Point(36.411547227919854, 41.3542392888569), Point(36.808493041260064, 40.97457665693395), Point(37.20175803596979, 40.59081660149067), Point(37.59130288587728, 40.20299749821281), Point(37.97708863682217, 39.81115812868752), Point(38.35907671055084, 39.4153376765252), Point(38.73722890857425, 39.015575723441245), Point(39.11150741598772, 38.61191224529781), Point(39.481874805252396, 38.20438760810634), Point(39.848294039938004, 37.79304256399094), Point(40.21072847842642, 37.377918247113236), Point(40.569141877575824, 36.95905616955898), Point(40.923498396344975, 36.53649821718688), Point(41.27376259937729, 36.11028664544004), Point(41.61989946054436, 35.68046407512047), Point(41.961874366448505, 35.247073488127), Point(42.29965311988412, 34.81015822315719), Point(42.63320194325734, 34.36976197137342), Point(42.962487481963784, 33.92592877203389), Point(43.28747680772398, 33.47870300808867), Point(43.608137421876194, 33.028129401741474), Point(43.9244372586262, 32.57425300997745), Point(44.23634468825392, 32.117119220057546), Point(44.54382852027632, 31.656773744979812), Point(44.84685800656642, 31.19326261890814), Point(45.145402844428126, 30.72663219256887), Point(45.43943317962643, 30.256929128615795), Point(45.72891960937284, 29.784200396963875), Point(46.01383318526562, 29.30849327009234), Point(46.2941454161846, 28.829855318317467), Point(46.569828271140295, 28.348334405035555), Point(46.84085418207693, 27.863978681936675), Point(47.10719604662928, 27.37683658418951), Point(47.36882723083283, 26.886956825597874), Point(47.62572157178718, 26.394388393729404), Point(47.87785338027233, 25.89918054501681), Point(48.125197443317525, 25.401382799832295), Point(48.36772902672259, 24.901044937535545), Point(48.60542387753129, 24.398216991495843), Point(48.83825822645662, 23.892949244088772), Point(49.06620879025772, 23.385292221668013), Point(49.28925277406816, 22.875296689512766), Point(49.507367873675435, 22.363013646751256), Point(49.720532277751346, 21.848494321260848), Point(49.92872467003311, 21.33179016454534), Point(50.13192423145502, 20.812952846589802), Point(50.33011064223024, 20.292034250693675), Point(50.52326408388286, 19.769086468282456), Point(50.711365241229664, 19.244161793698588), Point(50.89439530431168, 18.7173127189721), Point(51.07233597027512, 18.188591928571423), Point(51.245169445201675, 17.658052294135), Point(51.41287844588787, 17.125746869184155), Point(51.57544620157339, 16.5917288838178), Point(51.73285645561816, 16.05605173938946), Point(51.88509346712794, 15.518769003167177), Point(52.03214201252843, 14.979934402976845), Point(52.17398738708766, 14.43960182182945), Point(52.31061540638633, 13.897825292532834), Point(52.44201240773642, 13.354658992288448), Point(52.568165251547256, 12.810157237273678), Point(52.6890613226396, 12.264374477210275), Point(52.80468853150708, 11.71736528991943), Point(52.91503531552518, 11.169184375864031), Point(53.02009064010743, 10.619886552678668), Point(53.11984399980894, 10.069526749687915), Point(53.21428541937686, 9.518160002413437), Point(53.303405454747924, 8.96584144707049), Point(53.38719519399288, 8.412626315054347), Point(53.46564625820761, 7.858569927417195), Point(53.53875080235108, 7.303727689336088), Point(53.60650151602978, 6.748155084572469), Point(53.66889162422883, 6.191907669923835), Point(53.725914887989376, 5.635041069668115), Point(53.77756560503257, 5.07761097000128), Point(53.82383861032975, 4.519673113468773), Point(53.864729276618945, 3.9612832933913005), Point(53.90023351486761, 3.4024973482855483), Point(53.930347774681486, 2.843371156280372), Point(53.9550690446597, 2.2839606295290356), Point(53.974394852695866, 1.7243217086180407), Point(53.98832326622528, 1.164510356973114), Point(53.99685289241818, 0.6045825552629118)]
c01 = polygon(pc1,fill='#fd5d18',stroke='none')
pc2 = [Point(0, 0), Point(0.0, 51.0), Point(0.4899918333741666, 50.997450021249925), Point(0.979934667973321, 50.98980033999547), Point(1.4697795099222875, 50.977051721198364), Point(1.9594773751450738, 50.959205439709876), Point(2.4489792942632382, 50.93626328014328), Point(2.9382363174927857, 50.908227536695414), Point(3.427199519539106, 50.875101012917256), Point(3.915820004489462, 50.83688702143359), Point(4.404048910702541, 50.79358938361171), Point(4.891837415694579, 50.74521242917932), Point(5.379136741021565, 50.69176099579154), Point(5.865898157157048, 50.633240428547175), Point(6.352072988365046, 50.56965657945419), Point(6.837612617567586, 50.5010158068445), Point(7.322468491206362, 50.427324974738156), Point(7.806592124098053, 50.348591452156974), Point(8.289935104282806, 50.264823112387596), Point(8.772449097865387, 50.17602833219419), Point(9.25408585384853, 50.082215990980785), Point(9.734797208958001, 49.98339546990332), Point(10.214535092458881, 49.87957665093156), Point(10.6932515309626, 49.77076991586088), Point(11.170898653224235, 49.65698614527411), Point(11.647428694929598, 49.53823671745351), Point(12.122794003471627, 49.41453350724288), Point(12.596947042715604, 49.28588888486017), Point(13.06984039775273, 49.15231571466042), Point(13.541426779641577, 49.013827353849315), Point(14.011659030136947, 48.870437651147554), Point(14.480490126405643, 48.7221609454059), Point(14.947873185728737, 48.56901206417138), Point(15.413761470189776, 48.411006322204486), Point(15.878108391348556, 48.248159519947734), Point(16.340867514899912, 48.080487941945655), Point(16.801992565317125, 47.908008355216325), Point(17.261437430479415, 47.73073800757467), Point(17.719156166283145, 47.54869462590775), Point(18.17510300123616, 47.36189641440202), Point(18.629232341034918, 47.170362052722965), Point(19.081498773123883, 46.974110694147136), Point(19.53185707123673, 46.77316196364686), Point(19.980262199918947, 46.56753595592772), Point(20.426669319031337, 46.35725323341914), Point(20.87103378823399, 46.14233482421813), Point(21.31331117145029, 45.922802219986515), Point(21.753457241310482, 45.698677373801786), Point(22.191427983574357, 45.46998269796177), Point(22.627179601532674, 45.23674106174349), Point(23.060668520386756, 44.99897578911619), Point(23.491851391605955, 44.756710656409005), Point(23.920685097262478, 44.50996988993331), Point(24.34712675434311, 44.25877816356014), Point(24.77113371903751, 44.003160596252805), Point(25.192663591002553, 43.74314274955503), Point(25.611674217602314, 43.478750625034785), Point(26.0281236981233, 43.210010661684215), Point(26.441970387964506, 42.936949733275696), Point(26.853172902801816, 42.65959514567453), Point(27.261690122726417, 42.37797463410833), Point(27.667481196356743, 42.09211636039358), Point(28.070505544923595, 41.802048910119446), Point(28.47072286632796, 41.50780128978922), Point(28.868093139171222, 41.20940292391973), Point(29.262576626757223, 40.90688365209891), Point(29.654133881065952, 40.60027372600184), Point(30.042725746698274, 40.289603806365605), Point(30.428313364791435, 39.9749049599233), Point(30.810858176904972, 39.656208656297316), Point(31.190321928876443, 39.33354676485242), Point(31.566666674646875, 39.0069515515089), Point(31.93985478005531, 38.6764556755159), Point(32.3098489266022, 38.34209218618563), Point(32.676612115181214, 38.00389451958837), Point(33.040107669779125, 37.66189649520897), Point(33.40029924114339, 37.31613231256485), Point(33.75715081041703, 36.96663654778615), Point(34.110626692740496, 36.613444150158095), Point(34.460691540820115, 36.256590438626134), Point(34.8073103484628, 35.89611109826402), Point(35.15044845407663, 35.53204217670542), Point(35.490071544137, 35.16442008053908), Point(35.82614565661792, 34.793281571668274), Point(36.15863718438819, 34.418663763634605), Point(36.48751287857212, 34.040604117906696), Point(36.81273985187436, 33.65914044013407), Point(37.13428558186859, 33.27431087636663), Point(37.45211791424977, 32.886153909240036), Point(37.766205066049515, 32.49470835412757), Point(38.076515628814384, 32.10001335525852), Point(38.3830185717467, 31.702108381803868), Point(38.68568324480759, 31.301033223929366), Point(38.98447938178195, 30.89682798881658), Point(39.2793771033051, 30.48953309665219), Point(39.57034691985062, 30.079189276585986), Point(39.85735973467933, 29.665837562658034), Point(40.14038684674893, 29.249519289695264), Point(40.41939995358407, 28.830276089178046), Point(40.69437115410657, 28.408149885077055), Point(40.96527295142552, 27.983182889660934), Point(41.23207825558695, 27.5554175992751), Point(41.49476038628276, 27.1248967900921), Point(41.753293075518805, 26.691663513834097), Point(42.00765047024158, 26.255761093467694), Point(42.2578071349236, 25.817233118871666), Point(42.50373805410685, 25.376123442478043), Point(42.74541863490435, 24.932476174886872), Point(42.982824709459415, 24.486335680455205), Point(43.21593253736244, 24.03774657286071), Point(43.444718808024895, 23.586753710640313), Point(43.66916064301034, 23.133402192704413), Point(43.88923559832235, 22.677737353827016), Point(44.104921666648764, 22.219804760112286), Point(44.31619727956249, 21.75965020443799), Point(44.5230413096783, 21.297319701876226), Point(44.72543307276555, 20.832859485091983), Point(44.923352329816595, 20.366315999719895), Point(45.116779289070664, 19.897735899719702), Point(45.30569460799301, 19.427166042710933), Point(45.49007939520918, 18.95465348528714), Point(45.6699152123941, 18.480245478310312), Point(45.84518407611592, 18.003989462185807), Point(46.015868459634326, 17.52593306211836), Point(46.181951294653196, 17.04612408334959), Point(46.343415973027426, 16.564610506377544), Point(46.50024634842374, 16.08144048215866), Point(46.652426737935286, 15.59666232729271), Point(46.79994192364993, 15.110324519191211), Point(46.942777154172035, 14.622475691229686), Point(47.080918146097574, 14.133164627884394), Point(47.214351085442466, 13.642440259853913), Point(47.34306262902398, 13.150351659166105), Point(47.467039905795005, 12.656948034270973), Point(47.586270518131194, 12.162278725119837), Point(47.70074254307066, 11.666393198231384), Point(47.810444533506306, 11.169341041745072), Point(47.9153655193305, 10.671171960462338), Point(48.015495008532106, 10.171935770876171), Point(48.11082298824564, 9.671682396189503), Point(48.201339925752556, 9.170461861322922), Point(48.28703676943456, 8.668324287912236), Point(48.367904949678675, 8.16531988929634), Point(48.443936379734275, 7.661498965495922), Point(48.51512345652172, 7.156911898183517), Point(48.58145906139264, 6.6516091456453665), Point(48.64293656084184, 6.145641237735641), Point(48.699549807170605, 5.6390587708234925), Point(48.75129313910147, 5.1319124027334615), Point(48.79816138234437, 4.624252847679737), Point(48.84014985011403, 4.116130871194775), Point(48.87725434359867, 3.6075972850527918), Point(48.909471152379865, 3.0987029421886243), Point(48.93679705480357, 2.5894987316124816), Point(48.95922931830233, 2.0800355733210862), Point(48.976765699668476, 1.5703644132057155), Point(48.989404445278495, 1.0605362179576574), Point(48.99714429126835, 0.5506019699715804)]
c02 = polygon(pc2,fill='#b72918',stroke='#08fb1d',stroke_width=2)
cc1= circle(x=37,r=4,stroke_width=2,stroke='#e29f4c')
ccr1 = cc1|repeat(5,rotate(18))|rotate(15)|translate(y=-5)
pc3 = [Point(0, 0), Point(0.0, 30.0), Point(0.29999500002499996, 29.998500012499957), Point(0.5999600007999925, 29.994000199997334), Point(0.8998650060748699, 29.986501012469628), Point(1.1996800255990248, 29.976003199829336), Point(1.4993750781203499, 29.962507811848987), Point(1.7989201943833382, 29.946016198056125), Point(2.098285420125983, 29.926530007598387), Point(2.397440819075181, 29.904051189078583), Point(2.6963564759403313, 29.878581990359827), Point(2.995002499404844, 29.850124958340775), Point(3.2933490251152437, 29.818682938700903), Point(3.5913662186675803, 29.78425907561599), Point(3.889024278590845, 29.746856811443642), Point(4.186293439327094, 29.706479886379118), Point(4.483143974207977, 29.66313233808127), Point(4.779546198427379, 29.616818501268806), Point(5.075470472009881, 29.567543007286822), Point(5.3708872027747265, 29.515310783643642), Point(5.665766849295018, 29.46012705351811), Point(5.960079923851837, 29.401997335237247), Point(6.253796995382988, 29.34092744172445), Point(6.546888692426081, 29.276923479918164), Point(6.839325706055654, 29.209991850161245), Point(7.13107879281404, 29.140139245560885), Point(7.422118777635689, 29.067372651319342), Point(7.712416556764655, 28.991699344035396), Point(8.001943100664937, 28.913126890976717), Point(8.290669456923414, 28.831663149323127), Point(8.578566753145068, 28.747316265380917), Point(8.86560619984019, 28.660094673768178), Point(9.151759093303308, 28.570007096571402), Point(9.436996818483536, 28.477062542473224), Point(9.721290851846055, 28.381270305851608), Point(10.004612764224435, 28.282639965850386), Point(10.286934223663545, 28.181181385421368), Point(10.568226998252703, 28.076904710338045), Point(10.848462958948865, 27.969820368181033), Point(11.127614082389485, 27.859939067295304), Point(11.405652453694849, 27.74727179571939), Point(11.68255026925952, 27.63182982008655), Point(11.958279839532691, 27.51362468449815), Point(12.232813591787112, 27.392668209369244), Point(12.506124072876329, 27.268972490246554), Point(12.778183951979994, 27.1425498965989), Point(13.048966023336913, 27.013413070580302), Point(13.3184432089656, 26.881574925765754), Point(13.586588561372055, 26.747048645859866), Point(13.853375266244493, 26.609847683378522), Point(14.118776645134748, 26.46998575830364), Point(14.382766158126095, 26.32747685671118), Point(14.645317406487232, 26.182335229372534), Point(14.906404135312107, 26.034575390329493), Point(15.166000236145415, 25.88421211544283), Point(15.4240797495934, 25.73126044091472), Point(15.680616867919783, 25.575735661785167), Point(15.93558593762651, 25.41765333040248), Point(16.188961462019087, 25.25702925486806), Point(16.440718103756215, 25.093879497455603), Point(16.69083068738352, 24.9282203730049), Point(16.939274201851067, 24.760068447290344), Point(17.186023803014447, 24.589440535364382), Point(17.431054816119158, 24.416353699876012), Point(17.674342738268095, 24.240825249364548), Point(17.91586324087177, 24.062872736528774), Point(18.155592172081196, 23.88251395647167), Point(18.393505559203025, 23.699766944920945), Point(18.629579611096798, 23.51464997642547), Point(18.863790720554064, 23.32718156252783), Point(19.096115466659047, 23.137380449913188), Point(19.32653061713074, 22.945265618534645), Point(19.55501313064611, 22.750856279715236), Point(19.781540159144203, 22.554171874226842), Point(20.006089050110948, 22.3552320703461), Point(20.228637348844362, 22.154056761887627), Point(20.449162800700034, 21.950666066214616), Point(20.66764335331655, 21.745080322227146), Point(20.88405715882071, 21.537320088328293), Point(21.098382576012316, 21.32740614036831), Point(21.310598172528245, 21.11535946956707), Point(21.520682726985694, 20.901201280414952), Point(21.728615231104285, 20.6849529885524), Point(21.934374891806886, 20.466636218628395), Point(22.13794113329889, 20.246272802138), Point(22.33929359912579, 20.02388477523923), Point(22.538412154208793, 19.799494376549454), Point(22.73527688685832, 19.573124044921542), Point(22.929868110765163, 19.344796417200023), Point(23.12216636696909, 19.114534325957393), Point(23.312152425804726, 18.882360797210893), Point(23.499807288824513, 18.64829904811992), Point(23.685112190698526, 18.412372484664335), Point(23.86804860109099, 18.17460469930387), Point(24.048598226513327, 17.935019468618933), Point(24.22674301215344, 17.693640750932932), Point(24.402465143681223, 17.45049268391649), Point(24.575747049029957, 17.205599582173683), Point(24.746571400153513, 16.958985934810613), Point(24.914921114759125, 16.710676402986504), Point(25.080779358015626, 16.460695817447608), Point(25.244129544236905, 16.209069176044178), Point(25.404955338540464, 15.955821641230648), Point(25.5632406584809, 15.700978537549469), Point(25.718969675658112, 15.444565349098644), Point(25.872126817300163, 15.186607716983332), Point(26.02269676782052, 14.92713143675179), Point(26.1706644703496, 14.666162455815808), Point(26.31601512824046, 14.403726870856005), Point(26.458734206548435, 14.13985092521218), Point(26.598807433484627, 13.874561006259007), Point(26.736220801843068, 13.607883642767302), Point(26.87096057040144, 13.339845502251185), Point(27.00301326529516, 13.070473388301345), Point(27.13236568136479, 12.799794237904699), Point(27.259004883476507, 12.527835118750723), Point(27.382918207815642, 12.254623226524696), Point(27.50409326315302, 11.980185882188174), Point(27.62251793208408, 11.704550529246884), Point(27.73818037224062, 11.427744731006431), Point(27.85106901747501, 11.149796167815964), Point(27.9611725790168, 10.870732634300184), Point(28.068480046601586, 10.590582036579887), Point(28.172980689572036, 10.309372389481387), Point(28.274664057950936, 10.027131813735053), Point(28.37351998348618, 9.743888533163261), Point(28.469538580667596, 9.459670871858036), Point(28.562710247715483, 9.174507251348654), Point(28.653025667540774, 8.888426187759535), Point(28.740475808676756, 8.601456288958639), Point(28.825051926182187, 8.313626251696702), Point(28.906745562515795, 8.024964858737595), Point(28.98554854838203, 7.735500975980062), Point(29.061453003547964, 7.445263549571161), Point(29.134451337631344, 7.154281603011668), Point(29.20453625085959, 6.862584234253756), Point(29.27170073479978, 6.570200612791219), Point(29.33593807305949, 6.277159976742552), Point(29.397241841958433, 5.98349162992716), Point(29.455605911170796, 5.689224938935001), Point(29.5110244443383, 5.394389330189954), Point(29.563491899653812, 5.099014287007198), Point(29.613003030415513, 4.803129346644905), Point(29.659552885551598, 4.506764097350542), Point(29.70313681011534, 4.209948175402069), Point(29.7437504457506, 3.912711262144333), Point(29.781389731127657, 3.6150830810209653), Point(29.81605090234935, 3.3170933946020544), Point(29.847730493327433, 3.0187720016079185), Point(29.876425336129206, 2.720148733929257), Point(29.902132561294305, 2.4212534536439856), Point(29.924849598121636, 2.122116050031054), Point(29.944574174926448, 1.8227664365815437), Point(29.961304319267494, 1.5232345480073421), Point(29.975038358144282, 1.2235503372476977), Point(29.98577491816437, 0.9237437724739503), Point(29.99351292568071, 0.6238448340927396), Point(29.99825160689899, 0.32388351174798846)]
c03 = polygon(pc3,fill='#ff0000',stroke='#fee331',stroke_width=2)|translate(x=0,y=-5)
cm7=circle(x=22,r=2,stroke_width=2,stroke='none',fill='#f8f5f2')
cr8 = cm7|repeat(5,rotate(18))
wc = [Point(0, 0), Point(0.0, 23.0), Point(0.4499925000374999, 22.9988500095833), Point(0.8999400011999886, 22.99540015333129), Point(1.3497975091123047, 22.989650776226714), Point(1.7995200383985372, 22.98160245320249), Point(2.249062617180525, 22.971255989084224), Point(2.698380291575007, 22.958612418509695), Point(3.1474281301889744, 22.94367300582543), Point(3.5961612286127713, 22.926439244960246), Point(4.044534713910497, 22.906912859275867), Point(4.492503749107266, 22.885095801394595), Point(4.940023537672866, 22.860990253004026), Point(5.38704932800137, 22.834598624638925), Point(5.833536417886267, 22.805923555440128), Point(6.279440158990641, 22.774967912890656), Point(6.724715961311965, 22.741734792528973), Point(7.169319297641069, 22.70622751763942), Point(7.613205708014822, 22.6684496389199), Point(8.056330804162089, 22.62840493412679), Point(8.498650273942527, 22.586097407697217), Point(8.940119885777756, 22.54153129034856), Point(9.380695493074482, 22.49471103865541), Point(9.820333038639122, 22.445641334603927), Point(10.25898855908348, 22.39432708512362), Point(10.69661818922106, 22.34077342159668), Point(11.133178166453535, 22.28498569934483), Point(11.568624835146982, 22.226969497093805), Point(12.002914650997404, 22.16673061641548), Point(12.436004185385121, 22.10427508114773), Point(12.867850129717604, 22.039609136792034), Point(13.298409299760285, 21.97273924988894), Point(13.727638639954963, 21.903672107371406), Point(14.155495227725304, 21.832414615896138), Point(14.581936277769081, 21.7589739011529), Point(15.006919146336653, 21.68335730715196), Point(15.430401335495318, 21.605572395489716), Point(15.852340497379055, 21.5256269445925), Point(16.272694438423297, 21.44352894893879), Point(16.691421123584227, 21.359286618259734), Point(17.108478680542273, 21.2729083767182), Point(17.52382540388928, 21.184402862066356), Point(17.937419759299036, 21.093778924781915), Point(18.349220387680667, 21.00104562718309), Point(18.759186109314495, 20.906212242522358), Point(19.16727592796999, 20.809288254059158), Point(19.573449035005368, 20.710283354111567), Point(19.9776648134484, 20.60920744308708), Point(20.379882842058084, 20.506070628492562), Point(20.78006289936674, 20.400883223923532), Point(21.17816496770212, 20.29365574803279), Point(21.574149237189143, 20.18439892347857), Point(21.967976109730845, 20.073123675852276), Point(22.359606202968163, 19.959841132585943), Point(22.749000354218122, 19.8445626218395), Point(23.136119624390098, 19.727299671367952), Point(23.520925301879675, 19.60806400736863), Point(23.903378906439762, 19.486867553308567), Point(24.28344219302863, 19.363722428732178), Point(24.66107715563432, 19.238640948049298), Point(25.03624603107528, 19.111635619303758), Point(25.408911302776602, 18.982719142922598), Point(25.779035704521668, 18.851904410446025), Point(26.14658222417874, 18.719204503238277), Point(26.511514107402142, 18.584632691179486), Point(26.873794861307655, 18.448202431338725), Point(27.233388258121796, 18.30992736662828), Point(27.590258338804535, 18.169821324439393), Point(27.9443694166452, 18.027898315259527), Point(28.295686080831096, 17.884172531271336), Point(28.64417319998857, 17.738658344933445), Point(28.98979592569611, 17.59137030754323), Point(29.33251969596916, 17.442323147781682), Point(29.672310238716303, 17.291531770240578), Point(30.00913357516642, 17.13901125393201), Point(30.34295602326654, 16.984776850780516), Point(30.67374420105005, 16.828843984097873), Point(31.001465029974824, 16.671228247040812), Point(31.32608573823107, 16.51194540105169), Point(31.647573864018472, 16.351011374282372), Point(31.965897258792367, 16.188442260001423), Point(32.28102409047854, 16.024254314984795), Point(32.59292284665643, 15.858463957890173), Point(32.90156233771033, 15.691087767615102), Point(33.20691169994834, 15.522142481639134), Point(33.50894039868869, 15.351644994350078), Point(33.807618231313185, 15.17961235535458), Point(34.10291533028748, 15.006061767773183), Point(34.39480216614774, 14.831010586520017), Point(34.68324955045363, 14.654476316567335), Point(34.96822863870709, 14.476476611195018), Point(35.24971093323677, 14.297029270225273), Point(35.527668286047785, 14.116152238242655), Point(35.802072901636485, 13.933863602799633), Point(36.07289733976999, 13.750181592607849), Point(36.34011451823016, 13.565124575715247), Point(36.60369771552183, 13.37871105766931), Point(36.863620573544935, 13.190959679666491), Point(37.11985710023027, 13.001889216688138), Point(37.37238167213869, 12.811518575622985), Point(37.621169037023435, 12.6198667933765), Point(37.866194316355354, 12.426953034967202), Point(38.1074330078107, 12.232796591610164), Point(38.34486098772135, 12.037416878787926), Point(38.578454513487166, 11.84083343430896), Point(38.80819022595024, 11.643065916353889), Point(39.03404515173078, 11.444134101509706), Point(39.255996705524396, 11.24405788279212), Point(39.47402269236069, 11.04285726765627), Point(39.688101309822656, 10.840552375996005), Point(39.89821115022694, 10.637163438131905), Point(40.104331202764605, 10.432710792788264), Point(40.306440855602155, 10.227214885059242), Point(40.50451989794274, 10.020696264364364), Point(40.69854852204718, 9.813175582393603), Point(40.88850732521476, 9.60467359104222), Point(41.07437731172347, 9.3952111403356), Point(41.25613989472953, 9.184809176344267), Point(41.43377689812612, 8.973488739089277), Point(41.60727055836093, 8.761270960438264), Point(41.77660352621251, 8.54817706199224), Point(41.9417588685252, 8.334228352963475), Point(42.10272006990238, 8.11944622804458), Point(42.25947103435805, 7.903852165269063), Point(42.4119960869264, 7.687467723863541), Point(42.56027997522927, 7.470314542091834), Point(42.7043078710014, 7.25241433509116), Point(42.84406537157322, 7.033788892700635), Point(42.97953850131116, 6.814460077282311), Point(43.11071371301514, 6.5944498215349565), Point(43.23757788927328, 6.373780126300805), Point(43.36011834377369, 6.15247305836549), Point(43.47832282257304, 5.930550748251381), Point(43.592179505321944, 5.708035388004557), Point(43.701677006447014, 5.484949228975612), Point(43.806804376289385, 5.261314579594546), Point(43.90755110219967, 5.037153803139935), Point(44.003907109589235, 4.812489315502623), Point(44.09586276293765, 4.587343582944156), Point(44.183408866756196, 4.361739119850168), Point(44.26653666650745, 4.135698486478965), Point(44.34523784948072, 3.909244286705518), Point(44.41950454562327, 3.682399165761094), Point(44.4893293283274, 3.4551858079687494), Point(44.55470521517301, 3.2276269344749196), Point(44.6156256686259, 2.999745300977322), Point(44.672084596691484, 2.7715636954494065), Point(44.724076353524026, 2.543104935861575), Point(44.77159573999115, 2.3143918678994044), Point(44.8146380041938, 2.0854473626790972), Point(44.853198841941456, 1.856294314460389), Point(44.88727439718245, 1.6269556383571413), Point(44.91686126238967, 1.3974542680458502), Point(44.94195647890124, 1.1678131534722955), Point(44.96255753721642, 0.9380552585565682), Point(44.97866237724656, 0.7082035588966953), Point(44.990269388521064, 0.4782810394711004), Point(44.997377410348484, 0.24831069234012448), Point(44.999985731932554, 0.01831551434683952), Point(44.9980940924433, -0.21168149518261728), Point(44.99170268104309, -0.44165733673895646), Point(44.98081213686773, -0.6715890129296683), Point(44.965423548962576, -0.9014535307787428), Point(44.94553845617358, -1.131227904025948), Point(44.92115884699346, -1.3608891554254376), Point(44.89228715936281, -1.5904143190434554), Point(44.858926280426346, -1.8197804425549093), Point(44.82107954624415, -2.0489645895385866), Point(44.778750741458104, -2.277943841770775), Point(44.73194409891342, -2.506695301517066), Point(44.680664299235325, -2.7351960938221116), Point(44.62491647036108, -2.9634233687970974), Point(44.564706187027106, -3.1913543039047143), Point(44.500039470211554, -3.418966106241394), Point(44.43092278653223, -3.646236014816578), Point(44.3573630475999, -3.8731413028288015), Point(44.27936760932715, -4.099659279938348), Point(44.19694427119282, -4.325767294536273), Point(44.110101275462036, -4.5514427360095375), Point(44.018847306362, -4.7766630370020575), Point(43.92319148921357, -5.001405675671417), Point(43.82314338951877, -5.225648177941033), Point(43.71871301200417, -5.449368119747548), Point(43.60991079962052, -5.672543129283212), Point(43.496747632498376, -5.895150889233052), Point(43.37923482686015, -6.117169139006578), Point(43.25738413388848, -6.338575676963827), Point(43.13120773855112, -6.559348362635509), Point(43.000718258382456, -6.779465118937032), Point(42.86592874222177, -6.998903934376198), Point(42.72685266890835, -7.2176428652543265), Point(42.58350394593363, -7.43566003786061), Point(42.43589690805045, -7.652933650659473), Point(42.284046315839596, -7.869441976470691), Point(42.127967354233746, -8.08516336464211), Point(41.967675630999, -8.300076243214678), Point(41.803187175174095, -8.514159121079631), Point(41.63451843546755, -8.727390590127586), Point(41.46168627861277, -8.939749327389329), Point(41.284707987681415, -9.151214097168099), Point(41.103601260355106, -9.36176375316314), Point(40.918384207155654, -9.571377240584303), Point(40.72907534963402, -9.780033598257528), Point(40.53569361851821, -9.98771196072093), Point(40.33825835182018, -10.194391560311324), Point(40.13678929290207, -10.400051729240985), Point(39.93130658850188, -10.604671901664402), Point(39.72183078671883, -10.80823161573485), Point(39.50838283495852, -11.010710515650555), Point(39.29098407783825, -11.212088353690257), Point(39.06965625505258, -11.412344992237964), Point(38.844421499199335, -11.611460405796706), Point(38.615302333566426, -11.809414682991052), Point(38.38232166987946, -12.006188028558244), Point(38.145502806010676, -12.201760765327704), Point(37.904869423649096, -12.396113336188732), Point(37.66044558593244, -12.5892263060462), Point(37.412255735040794, -12.781080363764051), Point(37.16032468975242, -12.971656324096388), Point(36.9046776429619, -13.160935129605997), Point(36.64534015916089, -13.348897852570053), Point(36.382338171881635, -13.535525696872897), Point(36.11569798110371, -13.720799999885621), Point(35.845446250623986, -13.904702234332317), Point(35.57161000539031, -14.087214010142795), Point(35.294216628799006, -14.268317076291565), Point(35.01329385995657, -14.447993322622928), Point(34.72886979090578, -14.626224781661984), Point(34.44097286381653, -14.802993630411354), Point(34.14963186814162, -14.97828219213347), Point(33.85487593773782, -15.152072938118234), Point(33.55673454795256, -15.32434848943587), Point(33.25523751267635, -15.495091618674811), Point(32.950414981361476, -15.664285251664419), Point(32.64229743600706, -15.831912469182384), Point(32.33091568811086, -15.99795650864665), Point(32.01630087558819, -16.162400765791638), Point(31.698484459658125, -16.32522879632867), Point(31.377498221697415, -16.48642431759038), Point(31.05337426006236, -16.645971210158972), Point(30.72614498687902, -16.803853519478146), Point(30.39584312480203, -16.960055457448536), Point(30.062501703742345, -17.114561404006512), Point(29.726154057564287, -17.267355908686177), Point(29.386833820752187, -17.41842369216439), Point(29.044574925046955, -17.567749647788684), Point(28.699411596052954, -17.71531884308795), Point(28.351378349815445, -17.861116521265618), Point(28.00050998936902, -18.00512810267538), Point(27.646841601257343, -18.14733918627909), Point(27.290408552024495, -18.28773555108691), Point(26.93124648467838, -18.426303157579348), Point(26.569391315126424, -18.56302814911123), Point(26.204879228584044, -18.697896853297337), Point(25.83774667595613, -18.83089578337965), Point(25.468030370192007, -18.96201163957598), Point(25.095767282614148, -19.091231310409977), Point(24.7209946392211, -19.21854187402224), Point(24.34374991696489, -19.3439305994625), Point(23.964070840003373, -19.467384947962703), Point(23.58199537592785, -19.588892574190876), Point(23.19756173196633, -19.70844132748565), Point(22.810808351162855, -19.826019253071326), Point(22.421773908533204, -19.94161459325332), Point(22.030497307197447, -20.055215788593944), Point(21.637017674489663, -20.166811479068336), Point(21.241374358045213, -20.27639050520044), Point(20.843606921866044, -20.383941909178958), Point(20.443755142364306, -20.489454935953123), Point(20.04185900438474, -20.59291903430818), Point(19.637958697206223, -20.694323857920516), Point(19.2320946105229, -20.79365926639227), Point(18.824307330405215, -20.89091532626538), Point(18.414637635241363, -20.9860823120149), Point(18.003126491659465, -21.079150707021565), Point(17.589815050430957, -21.170111204523426), Point(17.174744642355538, -21.258954708546533), Point(16.757956774128118, -21.345672334814523), Point(16.339493124188206, -21.430255411637035), Point(15.919395538552076, -21.51269548077687), Point(15.497706026628206, -21.59298429829581), Point(15.074466757016387, -21.671113835379014), Point(14.64972005329088, -21.747076279137886), Point(14.223508389768103, -21.820864033391345), Point(13.795874387259236, -21.892469719425456), Point(13.366860808808164, -21.961886176731294), Point(12.936510555415225, -22.029106463720964), Point(12.504866661747135, -22.094123858421796), Point(12.071972291833559, -22.15693185914849), Point(11.63787073475074, -22.217524185153316), Point(11.20260540029264, -22.275894777254173), Point(10.766219814629984, -22.33203779844048), Point(10.328757615957686, -22.385947634456922), Point(9.890262550131062, -22.437618894364807), Point(9.450778466291283, -22.487046411081213), Point(9.010349312480496, -22.53422524189565), Point(8.569019131247062, -22.57915066896436), Point(8.126832055241326, -22.62181819978207), Point(7.683832302802406, -22.66222356763125), Point(7.2400641735363775, -22.70036273200879), Point(6.795572043886362, -22.73623187903004), Point(6.3504003626949155, -22.76982742181018), Point(5.904593646759182, -22.801146000822932), Point(5.458196476379252, -22.830184484236497), Point(5.011253490900164, -22.856939968226726), Point(4.563809384248018, -22.88140977726752), Point(4.115908900460609, -22.903591464398364), Point(3.6675968292130667, -22.92348281146903), Point(3.2189180013389236, -22.94108182936139), Point(2.769917284347069, -22.95638675818832), Point(2.320639577935036, -22.969396067469685), Point(1.8711298094990703, -22.980108456285407), Point(1.4214329296414243, -22.988522853405524), Point(0.971593907675337, -22.99463841739734), Point(0.5216577271281415, -22.998454536709552), Point(0.07166938124294644, -22.99997082973341)]
sh01 = polygon(wc,fill='white',stroke='none',stroke_width=2)|translate(y=-40)
gc = [Point(0, 0), Point(0.0, 15.0), Point(0.3499941666958333, 14.999250006249978), Point(0.6999533342666578, 14.997000099998667), Point(1.049842507087348, 14.993250506234814), Point(1.3996266965321957, 14.988001599914668), Point(1.7492709244737417, 14.981253905924493), Point(2.0987402267805613, 14.973008099028062), Point(2.447999656813647, 14.963265003799194), Point(2.7970142889210443, 14.952025594539291), Point(3.1457492219303864, 14.939290995179913), Point(3.494169582638985, 14.925062479170387), Point(3.842240529301118, 14.909341469350451), Point(4.189927255112178, 14.892129537807994), Point(4.5371949916893195, 14.873428405721821), Point(4.884009012548276, 14.853239943189559), Point(5.230334636575972, 14.831566169040634), Point(5.576137231498609, 14.808409250634403), Point(5.921382217344861, 14.783771503643411), Point(6.266035069903848, 14.757655391821821), Point(6.610061324177521, 14.730063526759055), Point(6.953426577827144, 14.700998667618624), Point(7.2960964946134865, 14.670463720862225), Point(7.638036807830428, 14.638461739959082), Point(7.979213323731596, 14.604995925080622), Point(8.319591924949712, 14.570069622780442), Point(8.659138573908304, 14.533686325659671), Point(8.997819316225431, 14.495849672017698), Point(9.335600284109091, 14.456563445488358), Point(9.672447699743984, 14.415831574661564), Point(10.008327878669247, 14.373658132690458), Point(10.343207233146888, 14.330047336884089), Point(10.677052275520527, 14.285003548285701), Point(11.009829621564126, 14.238531271236612), Point(11.341505993820396, 14.190635152925804), Point(11.672048224928508, 14.141319982925193), Point(12.001423260940802, 14.090590692710684), Point(12.329598164628154, 14.038452355169023), Point(12.656540118773675, 13.984910184090516), Point(12.9822164294544, 13.929969533647652), Point(13.306594529310656, 13.873635897859694), Point(13.629641980802774, 13.815914910043276), Point(13.951326479454806, 13.756812342249075), Point(14.271615857084964, 13.696334104684622), Point(14.590478085022385, 13.634486245123277), Point(14.907881277309992, 13.57127494829945), Point(15.223793693893064, 13.506706535290151), Point(15.5381837437932, 13.440787462882877), Point(15.851019988267398, 13.373524322929933), Point(16.16227114395191, 13.304923841689261), Point(16.47190608599054, 13.23499287915182), Point(16.77989385114711, 13.16373842835559), Point(17.08620364090177, 13.091167614686267), Point(17.390804824530793, 13.017287695164747), Point(17.69366694216965, 12.942106057721414), Point(17.994759707858965, 12.86563022045736), Point(18.29405301257308, 12.787867830892583), Point(18.591516927230927, 12.70882666520124), Point(18.887121705688934, 12.62851462743403), Point(19.180837787715582, 12.546939748727802), Point(19.47263580194744, 12.46411018650245), Point(19.762486568826247, 12.380034223645172), Point(20.050361103516853, 12.294720267682191), Point(20.336230618805686, 12.208176849938006), Point(20.620066527979443, 12.120412624682274), Point(20.901840447683732, 12.031436368264387), Point(21.181524200761395, 11.941256978235835), Point(21.459089819070194, 11.849883472460473), Point(21.734509546279597, 11.757324988212735), Point(22.007755840646407, 11.663590781263915), Point(22.278801377768886, 11.568690224956594), Point(22.5476190533192, 11.472632809267322), Point(22.814181985753795, 11.375428139857618), Point(23.07846351900157, 11.277085937113421), Point(23.34043722512944, 11.17761603517305), Point(23.600076906985088, 11.077028380943814), Point(23.857356600816708, 10.975333033107308), Point(24.112250578869308, 10.872540161113573), Point(24.364733351957497, 10.768660044164147), Point(24.614779672014368, 10.663703070184155), Point(24.862364534616287, 10.557679734783536), Point(25.10746318148331, 10.450600640207476), Point(25.350051102955, 10.3424764942762), Point(25.590104040441368, 10.233318109314197), Point(25.82759798884871, 10.123136401069), Point(26.062509198980088, 10.011942387619616), Point(26.294814179910258, 9.899747188274727), Point(26.524489701334705, 9.786562022460771), Point(26.75151279589269, 9.672398208600011), Point(26.975860761463938, 9.557267162978697), Point(27.197511163438847, 9.441180398605447), Point(27.41644183696193, 9.32414952405996), Point(27.632630889148277, 9.206186242332167), Point(27.846056701272822, 9.087302349651935), Point(28.056697930932213, 8.967509734309466), Point(28.264533514179014, 8.846820375466466), Point(28.469542667628094, 8.725246341958245), Point(28.67170489053495, 8.602799791086841), Point(28.870999966845766, 8.479492967405307), Point(29.06740796721898, 8.355338201493252), Point(29.26090925101823, 8.230347908723804), Point(29.45148446827639, 8.104534588022089), Point(29.639114561630542, 7.977910820615324), Point(29.823780768227717, 7.8504892687747345), Point(30.005464621601128, 7.722282674549322), Point(30.184147953516856, 7.593303858491666), Point(30.359812895790604, 7.463565718375895), Point(30.532441882074533, 7.333081227907904), Point(30.702017649613868, 7.2018634354280024), Point(30.868523240973175, 7.06992546260609), Point(31.031942005732066, 6.937280503129504), Point(31.192257602150246, 6.803941821383651), Point(31.34945399880168, 6.6699227511255925), Point(31.503515476177686, 6.535236694150672), Point(31.65442662825892, 6.3998971189523495), Point(31.802172364055927, 6.263917559375361), Point(31.94673790911825, 6.127311613262348), Point(32.08810880701186, 5.990092941094087), Point(32.22627092076476, 5.852275264623442), Point(32.36121043428072, 5.7138723655032155), Point(32.49291385372084, 5.574898083907982), Point(32.62136800885293, 5.435366317150092), Point(32.746560054368516, 5.2952910182899435), Point(32.868477471167374, 5.154686194740694), Point(32.98710806760943, 5.013565906867527), Point(33.10243998073388, 4.871944266581631), Point(33.21446167744553, 4.729835435929018), Point(33.32316195566806, 4.587253625674327), Point(33.428529945464234, 4.4442130938797675), Point(33.53055511012288, 4.3007281444793195), Point(33.629227247212555, 4.156813125848351), Point(33.72453648960176, 4.012482429368798), Point(33.8164733064457, 3.867750487990031), Point(33.90502850413929, 3.7226317747855804), Point(33.99019322723657, 3.577140801505834), Point(34.071958959336186, 3.431292117126878), Point(34.150317523933076, 3.2851003063956097), Point(34.22526108523607, 3.138579988371276), Point(34.29678214895151, 2.99174581496358), Point(34.364873563032596, 2.8446124694675006), Point(34.42952851839468, 2.697194665094977), Point(34.49074054959611, 2.549507143503599), Point(34.54850353548477, 2.4015646733224525), Point(34.602811699810196, 2.253382048675271), Point(34.65365961180123, 2.1049740877010343), Point(34.70104218670903, 1.9563556310721666), Point(34.7449546863156, 1.8075415405104827), Point(34.785392719407575, 1.6585466973010272), Point(34.82235224221534, 1.5093860008039592), Point(34.855829558817405, 1.3600743669646285), Point(34.88582132151002, 1.2106267268219928), Point(34.91232453114191, 1.061058025015527), Point(34.93533653741419, 0.9113832182907718), Point(34.95485503914541, 0.7616172740036711), Point(34.97087808450166, 0.6117751686238488), Point(34.983404071191764, 0.46187188623697517), Point(34.992431746627496, 0.3119224170463698), Point(34.99796020804882, 0.16194175587399423), Point(34.99998890261421, 0.011944900660982296), Point(34.998517627455904, -0.1380531490321417), Point(34.99354652970018, -0.2880373935254064), Point(34.98507610645268, -0.4379928345193489), Point(34.973107204748665, -0.5879044765948322), Point(34.95764102146834, -0.7377573287125748), Point(34.93867910321713, -0.887536405712242), Point(34.91622334617107, -1.0372267298109492), Point(34.89027599588716, -1.186813332101028), Point(34.860839647078784, -1.3362812540469042), Point(34.8279172433563, -1.4856155489809402), Point(34.791512076932655, -1.6348012835980865), Point(34.751627788294144, -1.7838235394492032), Point(34.708268365836396, -1.9326674144328895), Point(34.661438145465524, -2.0813180242856832), Point(34.61114181016455, -2.2297605040704744), Point(34.55738438952507, -2.377980009662986), Point(34.50017125924436, -2.5259617192361747), Point(34.43950814058778, -2.6736908347424007), Point(34.37540109981664, -2.8211525833932214), Point(34.307856547581586, -2.968332219136655), Point(34.236881238281555, -3.1152150241317766), Point(34.162482269388335, -3.261786310220489), Point(34.08466708073682, -3.408031420396326), Point(34.003443453781024, -3.55393573027014), Point(33.918819510815965, -3.6994846495325295), Point(33.830803714165405, -3.84466362341286), Point(33.73940486533567, -3.989458134134725), Point(33.64463210413548, -4.1338537023677135), Point(33.54649490776198, -4.277835888675332), Point(33.445003089853024, -4.421390294958933), Point(33.34016679950582, -4.564502565897521), Point(33.23199652026205, -4.707158390383256), Point(33.12050306905949, -4.849343502952572), Point(33.00569759515035, -4.991043685212699), Point(32.88759157898635, -5.1322447672634945), Point(32.766196831070694, -5.272932629114419), Point(32.641525490777, -5.413093202096529), Point(32.51359002513541, -5.5527124702693245), Point(32.38240322758587, -5.6917764718223385), Point(32.24797821669882, -5.830271300471302), Point(32.11032843486333, -5.968183106848761), Point(31.96946764694286, -6.1054980998890045), Point(31.82540993889884, -6.242202548207153), Point(31.678169716382016, -6.3782827814723015), Point(31.527761703291944, -6.513725191774519), Point(31.374200940304586, -6.648516234985646), Point(31.21750278336828, -6.782642432113686), Point(31.057682902168136, -6.916090370650697), Point(30.89475727855909, -7.048846705914033), Point(30.728742204967734, -7.180898162380797), Point(30.559654282763084, -7.3122315350153855), Point(30.38751042059645, -7.442833690589977), Point(30.212327832710596, -7.572691568997852), Point(30.03412403721833, -7.701792184559382), Point(29.852916854350692, -7.830122627320593), Point(29.66872440467497, -7.957670064344155), Point(29.48156510728263, -8.084421740992651), Point(29.291457677947456, -8.210364982204043), Point(29.09842112725395, -8.335487193759164), Point(28.90247475869633, -8.459775863541124), Point(28.703638166748146, -8.58321856278652), Point(28.501931234902916, -8.705802947328296), Point(28.297374133685715, -8.82751675883015), Point(28.08998731863622, -8.94834782601236), Point(27.8797915282631, -9.068284065868903), Point(27.666807781970245, -9.187313484875736), Point(27.451057377954783, -9.305424180190151), Point(27.23256189107733, -9.42260434084104), Point(27.011343170704496, -9.53884224890999), Point(26.787423338523972, -9.654126280703057), Point(26.560824786332372, -9.768444907913132), Point(26.331570173796088, -9.881786698772762), Point(26.099682426185325, -9.994140319197307), Point(25.865184732081605, -10.105494533918355), Point(25.628100541058927, -10.215838207607229), Point(25.388453561338824, -10.325160305988511), Point(25.146267757419558, -10.433449896943468), Point(24.90156734767971, -10.540696151603242), Point(24.65437680195632, -10.646888345431742), Point(24.40472083909799, -10.752015859298075), Point(24.152624424492945, -10.85606818053846), Point(23.89811276757257, -10.959034904007487), Point(23.64121131929047, -11.06090573311861), Point(23.38194576957738, -11.161670480873813), Point(23.120342044772222, -11.261319070882289), Point(22.85642630502948, -11.359841538368078), Point(22.590224941703188, -11.457228031166533), Point(22.321764574707853, -11.553468810709532), Point(22.051072049856458, -11.648554252999316), Point(21.778174436175906, -11.742474849570899), Point(21.503099023200157, -11.835221208442885), Point(21.225873318241277, -11.92678405505668), Point(20.94652504363874, -12.017154233203922), Point(20.66508213398722, -12.106322705942105), Point(20.381572733343145, -12.194280556498263), Point(20.096025192410323, -12.281018989160641), Point(19.808468065704893, -12.366529330158247), Point(19.518930108699895, -12.450803028528247), Point(19.227440274949746, -12.533831656971026), Point(18.934027713194915, -12.615606912692934), Point(18.638721764447066, -12.696120618236545), Point(18.341551959054993, -12.775364722298397), Point(18.042548013751592, -12.85333130053412), Point(17.74173982868222, -12.930012556350864), Point(17.439157484414714, -13.005400821686948), Point(17.134831238931348, -13.07948855777866), Point(16.82879152460307, -13.152268355914133), Point(16.521068945146276, -13.2237329381742), Point(16.21169427256248, -13.29387515816019), Point(15.900698444061128, -13.362688001708559), Point(15.588112558965907, -13.43016458759229), Point(15.27396787560484, -13.496298168209032), Point(14.958295808184477, -13.56108213025583), Point(14.6411279236485, -13.624509995390465), Point(14.32249593852106, -13.686575420879283), Point(14.00243171573514, -13.747272200231455), Point(13.680967261446298, -13.806594263819624), Point(13.358134721832084, -13.864535679486869), Point(13.033966379877425, -13.921090653139906), Point(12.708494652146383, -13.9762535293285), Point(12.381752085540503, -14.030018791811), Point(12.05377135404416, -14.082381064105963), Point(11.724585255457189, -14.133335110029792), Point(11.394226708115129, -14.18287583422036), Point(11.062728747597413, -14.23099828264653), Point(10.73012452342385, -14.27769764310356), Point(10.396447295739684, -14.322969245694322), Point(10.061730431989618, -14.366808563296281), Point(9.726007403581104, -14.409211212014213), Point(9.389311782537211, -14.45017295161858), Point(9.051677238139463, -14.489689685969555), Point(8.713137533560943, -14.527757463426633), Point(8.373726522489989, -14.564372477243793), Point(8.033478145744867, -14.599531065950167), Point(7.692426427879715, -14.63322971371618), Point(7.3506054737821085, -14.665465050705139), Point(7.008049465262608, -14.696233853410208), Point(6.664792657636603, -14.725533044976757), Point(6.32086937629881, -14.753359695510044), Point(5.976314013290761, -14.779711022368208), Point(5.631161023861627, -14.804584390440517), Point(5.285444923022726, -14.827977312410894), Point(4.939200282096045, -14.849887449006639), Point(4.592461725257142, -14.870312609232348), Point(4.2452639260727505, -14.889250750589019), Point(3.897641604033461, -14.906699979278299), Point(3.5496295210817923, -14.92265855039186), Point(3.2012624781360293, -14.93712486808589), Point(2.852575311610163, -14.950097485740672), Point(2.503602889930274, -14.961575106105254), Point(2.1543801100477205, -14.971556581427166), Point(1.8049418939494728, -14.980040913567187), Point(1.4553231851659436, -14.987027254099178), Point(1.1055589452766632, -14.992514904394907), Point(0.755684150414151, -14.996503315693918), Point(0.4057337877663323, -14.998992089158403), Point(0.05574285207784723, -14.999980975913093)]
sh02 = polygon(gc,fill='#d6d0cd',stroke='none',stroke_width=2)|translate(y=-39)
face = [Point(0, 0), Point(0.0, 25.0), Point(0.2499958333541666, 24.998750010416632), Point(0.499966667333327, 24.995000166664443), Point(0.7498875050623915, 24.988750843724688), Point(0.999733354665854, 24.98000266652445), Point(1.2494792317669583, 24.968756509874158), Point(1.499100161986115, 24.955013498380104), Point(1.7485711834383193, 24.93877500633199), Point(1.9978673492293173, 24.920042657565485), Point(2.246963729950276, 24.898818325299857), Point(2.4958354161707037, 24.875104131950646), Point(2.74445752092937, 24.84890244891742), Point(2.9928051822229835, 24.820215896346657), Point(3.2408535654923707, 24.7890473428697), Point(3.4885778661059117, 24.75539990531593), Point(3.7359533118399804, 24.719276948401056), Point(3.9829551653561492, 24.680682084390675), Point(4.229558726674901, 24.639619172739017), Point(4.475739335645605, 24.596092319703036), Point(4.721472374412515, 24.550105877931756), Point(4.966733269876531, 24.50166444603104), Point(5.21149749615249, 24.450772868103705), Point(5.455740577021735, 24.39743623326514), Point(5.699438088379711, 24.34165987513437), Point(5.942565660678366, 24.28344937130074), Point(6.185098981363075, 24.22281054276612), Point(6.4270137973038794, 24.15974945336283), Point(6.66828591722078, 24.094272409147262), Point(6.908891214102845, 24.02638595776927), Point(7.148805627620892, 23.95609688781743), Point(7.388005166533492, 23.88341222814015), Point(7.626465911086091, 23.808339247142836), Point(7.864164015402947, 23.73088545206102), Point(8.101075709871711, 23.651058588209672), Point(8.337177303520363, 23.568866638208654), Point(8.572445186386288, 23.484317821184472), Point(8.806855831877252, 23.39742059194837), Point(9.040385799124055, 23.308183640150858), Point(9.273011735324571, 23.216615889412754), Point(9.50471037807904, 23.122726496432826), Point(9.735458557716267, 23.026524850072125), Point(9.965233199610577, 22.928020570415125), Point(10.194011326489258, 22.8272235078077), Point(10.421770060730275, 22.724143741872126), Point(10.648486626649994, 22.618791580499085), Point(10.87413835278076, 22.511177558816918), Point(11.098702674138, 22.40131243813813), Point(11.322157134476713, 22.289207204883223), Point(11.544479388537079, 22.1748730694821), Point(11.765647204278956, 22.058321465253034), Point(11.98563846510508, 21.939564047259317), Point(12.204431172072692, 21.81861269114378), Point(12.422003446093424, 21.695479491941246), Point(12.638333530121178, 21.57017676286902), Point(12.853399791327833, 21.4427170340956), Point(13.067180723266485, 21.31311305148764), Point(13.27965494802209, 21.1813777753354), Point(13.490801218349239, 21.047524379056714), Point(13.700598419796844, 20.91156624787967), Point(13.9090255728196, 20.773516977504084), Point(14.11606183487589, 20.633390372741953), Point(14.321686502512037, 20.491200446136983), Point(14.525879013432633, 20.346961416563346), Point(14.728618948556745, 20.20068770780379), Point(14.929886034059809, 20.052393947107312), Point(15.129660143400997, 19.90209496372639), Point(15.327921299335854, 19.74980578743412), Point(15.524649675913999, 19.595541647021225), Point(15.71982560046172, 19.439317968773192), Point(15.913429555549206, 19.28115037492766), Point(16.105442180942283, 19.121054682112202), Point(16.295844275538425, 18.959046899762697), Point(16.484616799286837, 18.795143228522367), Point(16.671740875092457, 18.629360058621753), Point(16.857197790703633, 18.46171396823969), Point(17.04096900058336, 18.292221721845515), Point(17.22303612776379, 18.12090026852262), Point(17.403380965683926, 17.947766740273575), Point(17.58198548001026, 17.772838450306928), Point(17.758831810440203, 17.596132891305892), Point(17.933902272488076, 17.417667733679128), Point(18.10717935925357, 17.237460823793665), Point(18.278645743172405, 17.055530182190328), Point(18.448284277749078, 16.87189400178167), Point(18.61607799927149, 16.686570646032695), Point(18.782010128507327, 16.499578647124544), Point(18.946064072381933, 16.310936704101287), Point(19.108223425637636, 16.120663681000018), Point(19.26847197247424, 15.928778604964494), Point(19.426793688170605, 15.735300664342411), Point(19.583172740687093, 15.540249206766601), Point(19.73759349224877, 15.343643737220278), Point(19.89004050090916, 15.14550391608656), Point(20.04049852209444, 14.945849557182445), Point(20.188952510127866, 14.744700625777444), Point(20.33538761973435, 14.542077236597075), Point(20.479789207524966, 14.337999651811403), Point(20.62214283346126, 14.132488279008845), Point(20.76243426229927, 13.92556366915542), Point(20.90064946501302, 13.717246514539674), Point(21.03677462019742, 13.50755764670348), Point(21.17079611545039, 13.296518034358872), Point(21.302700548734084, 13.084148781291224), Point(21.432474729715093, 12.87047112424887), Point(21.56010568108347, 12.655506430819443), Point(21.685580639850432, 12.43927619729316), Point(21.808887058624666, 12.221802046513174), Point(21.93001260686705, 12.003105725713336), Point(22.048945172123695, 11.783209104343484), Point(22.16567286123719, 11.562134171882505), Point(22.28018400153589, 11.339903035639418), Point(22.3924671420012, 11.116537918542654), Point(22.502511054412633, 10.892061156917787), Point(22.610304734470656, 10.666495198253916), Point(22.71583740289709, 10.439862598958936), Point(22.819098506513036, 10.212186022103914), Point(22.92007771929418, 9.98348823515681), Point(23.0187649434034, 9.753792107705737), Point(23.115150310200516, 9.523120609172025), Point(23.209224181229175, 9.291496806513305), Point(23.300977149180664, 9.05894386191682), Point(23.390400038834656, 8.82548503048324), Point(23.477483907976694, 8.591143657901155), Point(23.562220048292446, 8.355943178112545), Point(23.644599986238482, 8.119907110969384), Point(23.724615483889664, 7.883059059881696), Point(23.802258539762903, 7.645422709457211), Point(23.87752138961731, 7.407021823132946), Point(23.950396507230632, 7.1678802407988655), Point(24.020876605151823, 6.9280218764139185), Point(24.08895463542983, 6.687470715614663), Point(24.154623790318357, 6.446250813316719), Point(24.217877502956636, 6.204386291309301), Point(24.27870944802612, 5.961901335843057), Point(24.33711354238299, 5.718820195211463), Point(24.393083945666483, 5.475167177326016), Point(24.44661506088291, 5.23096664728546), Point(24.497701534965362, 4.9862430249392995), Point(24.546338259308996, 4.741020782445834), Point(24.592520370281918, 4.495324441824962), Point(24.63624324971151, 4.249178572505998), Point(24.677502525346263, 4.002607788870755), Point(24.716294071293, 3.755636747792119), Point(24.75261400842945, 3.5082901461683904), Point(24.786458704792167, 3.2605927184536108), Point(24.817824775939716, 3.012569234184138), Point(24.846709085291124, 2.764244495501712), Point(24.873108744439527, 2.5156433346732654), Point(24.897021113441003, 2.266790611607714), Point(24.91844380107859, 2.017711211369988), Point(24.937374665101363, 1.768430041692545), Point(24.953811812438705, 1.5189720304846197), Point(24.967753599389578, 1.2693621233394519), Point(24.9791986317869, 1.0196252810397481), Point(24.988145765136977, 0.7697864770616253), Point(24.994594104733924, 0.519870695077283), Point(24.99854300574916, 0.26990292645665703), Point(24.999992073295864, 0.019908167768303828), Point(24.9989411624685, -0.23008858172023616), Point(24.99539037835727, -0.480062322542344), Point(24.989340076037628, -0.7299880575322482), Point(24.980790860534764, -0.9798407943247205), Point(24.969743586763098, -1.2295955478542915), Point(24.95619935944081, -1.4792273428537368), Point(24.94015953297934, -1.7287112163515819), Point(24.921625711347968, -1.97802222016838), Point(24.900599747913414, -2.2271354234115073), Point(24.877083745254502, -2.4760259149682335), Point(24.851080054951897, -2.724668805996811), Point(24.82259127735296, -2.9730392324153385), Point(24.79162026131171, -3.221112357388149), Point(24.758170103903947, -3.468863373809472), Point(24.722244150117533, -3.7162675067841238), Point(24.683845992517906, -3.9633000161049767), Point(24.642979470888832, -4.209936198726958), Point(24.599648671848417, -4.456151391237335), Point(24.553857928440458, -4.701920972322036), Point(24.50561181970113, -4.947220365227758), Point(24.45491517020111, -5.192025040219628), Point(24.401773049563097, -5.436310517034149), Point(24.346190771954873, -5.680052367327209), Point(24.288173895557875, -5.923226217116899), Point(24.2277282220114, -6.165807749220883), Point(24.16485979583243, -6.4077727056881), Point(24.099574903811195, -6.649096890224541), Point(24.03188007438249, -6.889756170612856), Point(23.961782076972845, -7.129726481125553), Point(23.889287921323586, -7.368983824931556), Point(23.81440485678987, -7.607504276495868), Point(23.73714037161575, -7.845263983972093), Point(23.65750219218535, -8.08223917158762), Point(23.57549828225025, -8.318406142021166), Point(23.49113684213311, -8.55374127877249), Point(23.404426307907638, -8.788221048524033), Point(23.315375350554998, -9.021822003494215), Point(23.22399287509672, -9.254520783782208), Point(23.130288019704192, -9.486294119703897), Point(23.03427015478487, -9.717118834118835), Point(22.93594888204523, -9.946971844747935), Point(22.835334033530614, -10.175830166481674), Point(22.73243567064203, -10.403670913678589), Point(22.62726408313001, -10.630471302453834), Point(22.519829788065675, -10.856208652957532), Point(22.41014352878899, -11.080860391642743), Point(22.298216273834484, -11.30440405352281), Point(22.18405921583438, -11.52681728441783), Point(22.067683770399352, -11.748077843190055), Point(21.949101574976954, -11.968163603967994), Point(21.828324487687915, -12.187052558358975), Point(21.705364586140323, -12.404722817649962), Point(21.580234166221853, -12.62115261499642), Point(21.452945740870234, -12.83632030759897), Point(21.323512038821924, -13.050204378867654), Point(21.19194600333926, -13.262783440573592), Point(21.058260790916165, -13.474036234987752), Point(20.92246976996247, -13.683941637006738), Point(20.78458651946711, -13.892478656265272), Point(20.644624827640236, -14.099626439235205), Point(20.50259869053439, -14.305364271310866), Point(20.35852231064494, -14.509671578880493), Point(20.212410095489798, -14.712527931383585), Point(20.06427665616873, -14.913913043353935), Point(19.914136805902217, -15.113806776448172), Point(19.762005558550175, -15.312189141459559), Point(19.60789812711056, -15.509040300316917), Point(19.451829922198094, -15.704340568068401), Point(19.293816550503212, -15.898070414849983), Point(19.133873813231407, -16.09021046783843), Point(18.97201770452312, -16.280741513188556), Point(18.808264409854345, -16.4696444979546), Point(18.64263030441809, -16.65690053199551), Point(18.475131951486862, -16.842490889863925), Point(18.30578610075638, -17.026397012678714), Point(18.13460968667059, -17.208600509980855), Point(17.961619826728256, -17.389083161572447), Point(17.786833819771218, -17.56782691933874), Point(17.610269144254513, -17.744813909052905), Point(17.431943456498562, -17.920026432163457), Point(17.25187458892353, -18.093446967564102), Point(17.070080548266123, -18.26505817334581), Point(16.88657951377891, -18.434842888531016), Point(16.701389835412414, -18.602784134789687), Point(16.51453003198016, -18.76886511813715), Point(16.32601878930677, -18.933069230613462), Point(16.13587495835942, -19.095380051944222), Point(15.944117553362751, -19.255781351182552), Point(15.75076574989747, -19.414257088332192), Point(15.555838882982789, -19.570791415951497), Point(15.359356445142968, -19.725368680738143), Point(15.161338084458054, -19.877973425094467), Point(14.9618036025991, -20.028590388673205), Point(14.760772952848015, -20.17720450990351), Point(14.558266238102247, -20.323800927497107), Point(14.354303708864515, -20.4683649819344), Point(14.148905761217781, -20.610882216930413), Point(13.942092934785638, -20.75133838088041), Point(13.733885910678389, -20.889719428285044), Point(13.524305509424938, -21.026011521154892), Point(13.313372688890762, -21.16020103039424), Point(13.10110854218214, -21.292274537163994), Point(12.88753429553685, -21.422218834223532), Point(12.672671306201586, -21.55002092725144), Point(12.456541060296225, -21.675668036144913), Point(12.239165170665249, -21.799147596297765), Point(12.020565374716478, -21.920447259856886), Point(11.800763532247341, -22.039554896957), Point(11.579781623258913, -22.15645859693365), Point(11.357641745757949, -22.271146669514266), Point(11.134366113547078, -22.38360764598715), Point(10.909977054003457, -22.493830280348387), Point(10.684497005846055, -22.601803550426382), Point(10.457948516891786, -22.707516658984108), Point(10.230354241800757, -22.810959034798806), Point(10.001736939810813, -22.91212033371909), Point(9.772119472461641, -23.010990439699373), Point(9.541524801308633, -23.10755946581145), Point(9.309975985626732, -23.20181775523318), Point(9.077496180104559, -23.293755882214167), Point(8.84410863252893, -23.383364653018333), Point(8.609836681460115, -23.47063510684327), Point(8.374703753897993, -23.55555851671632), Point(8.138733362939378, -23.63812639036727), Point(7.901949105426724, -23.71833047107755), Point(7.664374659588464, -23.796162738505934), Point(7.426033782671203, -23.871615409490538), Point(7.186950308564014, -23.944680938827137), Point(6.947148145415075, -24.015352020023688), Point(6.706651273240865, -24.083621586030965), Point(6.465483741528189, -24.14948280994926), Point(6.223669666829244, -24.212929105711055), Point(5.981233230349991, -24.273954128739657), Point(5.738198675532049, -24.33255177658361), Point(5.494590305628368, -24.388716189526967), Point(5.250432481272934, -24.44244175117523), Point(5.00574961804472, -24.493723089017013), Point(4.760566184026145, -24.54255507496126), Point(4.514906697356293, -24.588932825850073), Point(4.268795723779115, -24.63285170394701), Point(4.022257874186876, -24.674307317400864), Point(3.77531780215909, -24.713295520684824), Point(3.528000201497175, -24.749812415011068), Point(3.280329803755101, -24.78385434872058), Point(3.0323313757662507, -24.815417917648368), Point(2.784029717166758, -24.844499965463832), Point(2.535449657915566, -24.871097583986433), Point(2.2866160558114497, -24.89520811347648), Point(2.037553794007259, -24.916829142901122), Point(1.788287778521624, -24.935958510175425), Point(1.5388429357483717, -24.952594302378607), Point(1.289244209963909, -24.96673485594531), Point(1.039516560832817, -24.978378756831965), Point(0.7896849609119023, -24.98752484065818), Point(0.539774393152965, -24.994172192823196), Point(0.28980984840452306, -24.99832014859734), Point(0.039816322912748024, -24.999968293188488)]
sh03 = polygon(face,fill="#33f129",stroke="none")|translate(y=-26)
oc = [Point(0, 0), Point(0.0, 20.0), Point(0.28999516669083325, 19.999000008333304), Point(0.5799613341066593, 19.996000133331556), Point(0.8698695058723741, 19.99100067497975), Point(1.1596906914123906, 19.98400213321956), Point(1.4493959088496715, 19.975005207899326), Point(1.7389561879038935, 19.964010798704084), Point(2.0283425727884503, 19.95102000506559), Point(2.317526125106008, 19.936034126052387), Point(2.60647792674232, 19.919054660239887), Point(2.895169082758016, 19.900083305560518), Point(3.183570724278069, 19.879121959133936), Point(3.471654011378661, 19.856172717077325), Point(3.75939013597115, 19.831237874295763), Point(4.046750324682858, 19.804319924252745), Point(4.3337058417343775, 19.775421558720844), Point(4.620227991813134, 19.74454566751254), Point(4.906288122942885, 19.711695338191216), Point(5.191857629348902, 19.67687385576243), Point(5.476907954318517, 19.640084702345405), Point(5.761410593056776, 19.60133155682483), Point(6.045337095536889, 19.560618294482964), Point(6.328659069345212, 19.51794898661211), Point(6.611348182520466, 19.473327900107495), Point(6.893376166386905, 19.426759497040592), Point(7.174714818381167, 19.378248434212896), Point(7.4553360048725, 19.327799562690263), Point(7.735211663976105, 19.27541792731781), Point(8.0143138083593, 19.22110876621542), Point(8.292614528040234, 19.164877510253945), Point(8.57008599317885, 19.10672978251212), Point(8.846700456859864, 19.046671397714267), Point(9.122430257867418, 18.984708361648817), Point(9.397247823451186, 18.920846870567736), Point(9.67112567208362, 18.855093310566925), Point(9.944036416208094, 18.787454256947576), Point(10.215952764977613, 18.717936473558694), Point(10.486847526983903, 18.646546912120687), Point(10.756693612976502, 18.573292711530204), Point(11.025464038571686, 18.49818119714626), Point(11.29313192695087, 18.4212198800577), Point(11.55967051154827, 18.3424164563321), Point(11.82505313872754, 18.261778806246163), Point(12.089253270447118, 18.1793149934977), Point(12.352244486913994, 18.095033264399266), Point(12.614000489225681, 18.008942047053537), Point(12.87449510200008, 17.921049950510504), Point(13.133702275992986, 17.831365763906575), Point(13.391596090703011, 17.73989845558568), Point(13.64815075696359, 17.646657172202428), Point(13.903340619521892, 17.55165123780745), Point(14.157140159604323, 17.454890152915024), Point(14.409523997468371, 17.356383593552994), Point(14.660466894940567, 17.256141410295218), Point(14.909943757940285, 17.15417362727648), Point(15.157929638989124, 17.05049044119011), Point(15.404399739705624, 16.94510222026832), Point(15.649329413285116, 16.83801950324537), Point(15.89269416696434, 16.729252998303735), Point(16.134469664470735, 16.618813582003266), Point(16.37463172845603, 16.506712298193563), Point(16.613156342913964, 16.392960356909587), Point(16.850019655581853, 16.277569133250676), Point(17.085197980325827, 16.160550166243034), Point(17.318667799509377, 16.04191515768585), Point(17.550405766345158, 15.921675970981113), Point(17.78038870722959, 15.799844629947298), Point(18.00859362406024, 15.67643331761698), Point(18.234997696535597, 15.551454375018555), Point(18.45957828443708, 15.424920299942126), Point(18.682312929893047, 15.296843745689763), Point(18.90317935962457, 15.167237519810158), Point(19.12215548717273, 15.036114582817895), Point(19.339219415107248, 14.903488046897401), Point(19.554349437216217, 14.769371174591752), Point(19.767524040676697, 14.633777377476411), Point(19.978721908205998, 14.496720214818097), Point(20.187921920193354, 14.358213392218861), Point(20.395103156811903, 14.218270760245542), Point(20.600244900110635, 14.076906313044715), Point(20.80332663608617, 13.9341341869433), Point(21.004328056734145, 13.789968659034933), Point(21.20322906207999, 13.644424145752263), Point(21.40000976218893, 13.497515201425333), Point(21.59465047915493, 13.349256516826156), Point(21.787131749068497, 13.199662917699635), Point(21.977434323963042, 13.04874936328103), Point(22.165539173739656, 12.896530944800016), Point(22.35142748807012, 12.743022883971594), Point(22.5350806782779, 12.588240531473929), Point(22.71648037919703, 12.43219936541328), Point(22.895608451008574, 12.274914989776223), Point(23.072446981054625, 12.116403132869246), Point(23.24697828562955, 11.956679645745956), Point(23.419184911748324, 11.795760500621954), Point(23.589049638891847, 11.63366178927766), Point(23.75655548072896, 11.470399721449123), Point(23.92168568681506, 11.305990623207077), Point(24.084423744267152, 11.140450935324335), Point(24.244753379415105, 10.973797211631739), Point(24.402658559429007, 10.806046117362785), Point(24.55812349392245, 10.637214427487098), Point(24.711132636531534, 10.46731902503298), Point(24.86167068646951, 10.296376899399096), Point(25.009722590056825, 10.124405144655555), Point(25.155273542226503, 9.951420957834527), Point(25.29830898800461, 9.777441637210538), Point(25.43881462396578, 9.60248458057067), Point(25.576776399663487, 9.426567283474787), Point(25.71218051903514, 9.249707337506004), Point(25.845013441781635, 9.071922428511535), Point(25.97526188472139, 8.893230334834124), Point(26.102912823118654, 8.71364892553423), Point(26.22795349198596, 8.533196158603133), Point(26.350371387360624, 8.351890079167148), Point(26.47015426755512, 8.169748817683132), Point(26.58729015438125, 7.986790588125449), Point(26.701767334347945, 7.803033686164589), Point(26.8135743598326, 7.61849648733762), Point(26.922700050225842, 7.433197445210643), Point(27.02913349304957, 7.2471550895334556), Point(27.1328640450482, 7.060388024386591), Point(27.233881333252967, 6.872914926320925), Point(27.332175256019237, 6.684754542490036), Point(27.42773598403664, 6.4959256887755075), Point(27.52055396131201, 6.306447247905357), Point(27.610619906124967, 6.116338167565769), Point(27.69792481195608, 5.925617458506357), Point(27.782459948387533, 5.734304192639092), Point(27.864216861976114, 5.542417501131135), Point(27.943187377098603, 5.34997657249173), Point(28.019363596769296, 5.157000650653375), Point(28.092737903429697, 4.9635090330474405), Point(28.1633029597103, 4.769521068674446), Point(28.23105170916427, 4.57505615616917), Point(28.29597737697312, 4.380133741860813), Point(28.358073470624173, 4.184773317828368), Point(28.41733378055982, 3.9889944199514398), Point(28.473752380798437, 3.7928166259566676), Point(28.527323629527025, 3.5962595534599693), Point(28.578042169665352, 3.3993428580047986), Point(28.625902929401665, 3.2020862310966036), Point(28.670901122699878, 3.004509398233695), Point(28.713032249778163, 2.8066321169347126), Point(28.752292097558914, 2.608474174762889), Point(28.788676740090068, 2.41005538734731), Point(28.822182538937703, 2.2113955964013696), Point(28.85280614354985, 2.0125146677386123), Point(28.880544491591564, 1.8134324892861713), Point(28.905394809251163, 1.6141689690959904), Point(28.927354611517583, 1.414744033354036), Point(28.9464217024289, 1.2151776243876957), Point(28.962594175291912, 1.0154896986715614), Point(28.975870412872805, 0.8157002248317985), Point(28.986249087558893, 0.6158291816493002), Point(28.993729161491352, 0.4158965560618264), Point(28.998309886669023, 0.21592234116532563)]
sh04 = polygon(oc,fill="#fd5d18",stroke="none")|translate(y=2)
l1=line(x1=0,y1=0,x2=30,y2=0,stroke_width=5,stroke='#972402')
l2=line(x1=0,y1=-5,x2=30,y2=-5,stroke_width=5,stroke='#cb3205')
l3=line(x1=0,y1=-10,x2=30,y2=-10,stroke_width=5,stroke='#972402')
l4=line(x1=0,y1=-15,x2=30,y2=-15,stroke_width=5,stroke='#cb3205')
s4=rectangle(x=4,y=28,w=8,h=15,fill='#fd5d18',stroke='none')
l5=line(x1=-1,y1=37,x2=9,y2=37,stroke_width=5,stroke='#cb3205')
c5=circle(r=9,fill='#fee331',stroke='none')
c6=circle(r=3,fill='#b72918',stroke='none')
c7=circle(x=5,r=1,fill='#b72918',stroke='none')
c8=c7|repeat(8,rotate(45))
c9=combine([c5,c6,c8])
c11=c9|translate(x=29,y=-24)
width = 10
eye = circle(r=width/4)+ellipse(w=width,h=5,fill="#ffd8cc")
eyeb=line(x1=3,y1=-23,x2=20,y2=-19,stroke_width=2,stroke='black')
mouth=line(x1=0,y1=-40,x2=15,y2=-40,stroke_width=2,stroke='red')
kathakali = combine([sh01,sh02,sh03,sh04,l1,l2,l3,l4,s4,l5,c11,eye|translate(x=8,y=-29),eyeb,mouth])
top = combine([c01|translate(x=-5,y=-10),c02|translate(x=-4,y=-10),ccr1|rotate(350),c03,cr8|rotate(10)])
show(top|scale(1.2)|translate(y=-2,x=7),kathakali)

##katha end

def human(y2):
    c = circle(r=4,fill="black")
    l = line(x1=0,y1=0,x2=0,y2=-20,stroke_width=3)
    l2 = line(x1=-0,y1=-3,x2=15,y2=-10,stroke_width=3)
    l3 = line(x1=15,y1=-6,x2=15,y2=y2,stroke_width=3)|rotate(350)
    return combine([c,l,l2,l3])

l1 = line(x1=-40,y1=0,x2=10,y2=0,stroke_width=5)
l2 = line(x1=-38,y1=-2,x2=-50,y2=20,stroke_width=5)
boat_all = combine([l1,l2,human(y2=-25)|translate(x=0,y=17),human(y2=-25)|translate(x=-20,y=17),human(y2=-35)|translate(x=-40,y=25)])|rotate(-5)
show(boat_all|scale(0.9)|translate(x=-20,y=-20))
show(bird()|translate(x=-20,y=30),bird()|translate(x=-30,y=20))