Collègien(ne) ou lycéen(ne), jusqu'au jeudi 1er juin Casio t'a permis de participer à son exceptionnel concours May the 4th 2023.
Il te suffisait de programmer sur ta calculatrice Casio ou son émulateur ton meilleur dessin Star Wars, avec 2 catégories au choix :
Dans chacune des deux catégories était à gagner un formidable gros lot : 1 console de jeux Nintendo Switch accompagnée d'1 jeu Star Wars (valeur 310€).
Dans une actualité précédente nous t'avions présenté l'ensemble des participations nous ayant été partagées.
Il est maintenant grand temps de découvrir les vainqueurs que Casio vient tout juste d'annoncer.
Il te suffisait de programmer sur ta calculatrice Casio ou son émulateur ton meilleur dessin Star Wars, avec 2 catégories au choix :
- catégorie fx-92 Collège : pour les dessins programmés sur fx-92+ Spéciale Collège ou déjà sur la nouvelle fx-92 Collège Classwiz de rentrée 2023
- catégorie Graph Python : pour les dessins programmés en langage Python sur Graph 35+E II ou Graph 90+E
Dans chacune des deux catégories était à gagner un formidable gros lot : 1 console de jeux Nintendo Switch accompagnée d'1 jeu Star Wars (valeur 310€).
Dans une actualité précédente nous t'avions présenté l'ensemble des participations nous ayant été partagées.
Il est maintenant grand temps de découvrir les vainqueurs que Casio vient tout juste d'annoncer.
Nidal alias bouboule1 chez nous, élève de Quatrième au Collège Clément Marot à Lyon, est le grand vainqueur dans la catégorie fx-92 Collège.
Son dessin représente baby Yoda (ou Grogu), protagoniste du film The Mandalorian. Une œuvre d'autant plus remarquable que Nidal a lui-même conçu l'image en question.
Regardons un petit peu le code de sa participation :
"Ah ! non ! c'est un peu court, jeune homme !", aurait certainement répliqué Cyrano de Bergerac. Nous ne pouvons que nous incliner, c'est en effet en l'état bien trop court et simple relativement à la complexité du dessin, il manque quelque chose...
Rappelons en effet que la formidable fx-92+ Spéciale Collège de rentrée 2018 ainsi que son formidablissime successeur fx-92 Collège Classwiz de rentrée 2023 sont certes programmables dans un langage "à la Scratch / Logo / turtle", mais limitent dans tous les cas la taille du script saisi à 900 octets.
Dans ces 900 octets doivent donc rentrer à la fois les instructions de tracé mais également l'ensemble des données éventuelles.
Pour contourner cette difficilté Nidal a su faire preuve d'audace ; il a eu l'idée de sortir les données du code.
Nidal a décomposé l'affichage de son image en 44 segments horizontaux et son code est en fait une boucle demandant à l'utilisateur la saisie de nombres successifs, chacun codant les coordonnées d'un segment horizontal à tracer.
Précisons que la fenêtre graphique sur fx-92 Collège affiche des coordonnées allant de -95 à +96 en abscisse, et -23 à +23 en ordonnée.
Le format conçu par Nidal est le suivant en base décimale,
Félicitations !
Son dessin représente baby Yoda (ou Grogu), protagoniste du film The Mandalorian. Une œuvre d'autant plus remarquable que Nidal a lui-même conçu l'image en question.
Regardons un petit peu le code de sa participation :
- Code: Select all
Style Croix
Répéter 1000
?→A
A*1*10^-4→A
100(A-Ent(A→B
Style relevé
Aller à x=-16+Ent(A ; y=20-Ent(B
Stylo écrit
Avancer de 100(B-Ent(B))-Ent(A
Attention, à ce jour la plateforme en ligne Classpad.net ne permet pas d'afficher correctement ce script si tu suis le lien précédent.
Elle souffre en effet d'un bug qui a été signalé, faisant qu'elle ne reconnaît pas l'un des jetons utilisés dans le code, la puissance de 10 (de code hexadécimal 0x2D). Tout script dont le code fait appel à une puissance de 10 sera à ce jour inaffichable sur Classpad.net.
En attendant correction nous t'en proposons une version équivalente compatible Classpad.net, où nous avons juste supprimé l'usage de la puissance de 10, remplaçant le
Elle souffre en effet d'un bug qui a été signalé, faisant qu'elle ne reconnaît pas l'un des jetons utilisés dans le code, la puissance de 10 (de code hexadécimal 0x2D). Tout script dont le code fait appel à une puissance de 10 sera à ce jour inaffichable sur Classpad.net.
En attendant correction nous t'en proposons une version équivalente compatible Classpad.net, où nous avons juste supprimé l'usage de la puissance de 10, remplaçant le
*10^-4
par un ÷10000
."Ah ! non ! c'est un peu court, jeune homme !", aurait certainement répliqué Cyrano de Bergerac. Nous ne pouvons que nous incliner, c'est en effet en l'état bien trop court et simple relativement à la complexité du dessin, il manque quelque chose...
Rappelons en effet que la formidable fx-92+ Spéciale Collège de rentrée 2018 ainsi que son formidablissime successeur fx-92 Collège Classwiz de rentrée 2023 sont certes programmables dans un langage "à la Scratch / Logo / turtle", mais limitent dans tous les cas la taille du script saisi à 900 octets.
Dans ces 900 octets doivent donc rentrer à la fois les instructions de tracé mais également l'ensemble des données éventuelles.
Pour contourner cette difficilté Nidal a su faire preuve d'audace ; il a eu l'idée de sortir les données du code.
Nidal a décomposé l'affichage de son image en 44 segments horizontaux et son code est en fait une boucle demandant à l'utilisateur la saisie de nombres successifs, chacun codant les coordonnées d'un segment horizontal à tracer.
Précisons que la fenêtre graphique sur fx-92 Collège affiche des coordonnées allant de -95 à +96 en abscisse, et -23 à +23 en ordonnée.
Le format conçu par Nidal est le suivant en base décimale,
aabbcc
, avec :- aa-16 : abscisse de l'extrémité gauche du segment
- cc-16 : abscisse de l'extrémité droite du segment
- 20-bb : ordonnée des extrémités du segment
- Code: Select all
010009
110019
210029
000130
010204
090221
260229
030305
090311
140316
190321
250327
040411
140416
190426
060524
070623
090721
080809
130817
210822
080912
180922
081022
081122
061208
121214
171218
221224
061311
191324
041426
041526
031627
041726
041826
041926
072023
072123
072223
062324
062424
062524
092621
Félicitations !
Ilyas R. alias ikario198 chez nous, est le grand vainqueur dans la catégorie Graph Python. Ilyas est élève en Première au lycée Louis Pasteur à Avignon, où il a l'honneur de suivre l'enseignement de spécialité de NSI de Vincent Robert alias cent20 chez nous. Vincent incite régulièrement ses disciples à participer à divers concours de programmation, notamment sur calculatrices, et arrive souvent à les conduire à la victoire. Une équipe de champions ces spécialistes NSI Louis Pasteur, bravo !
Revenons-en à Ilyas, passionné à la fois de programmation et également depuis son enfance pour la saga Star Wars, qui a pu trouver ici une occasion exceptionnelle de combiner ses centres d'intérêt. Il a choisi pour sa part de représenter la scène du film-épisode 4 un Nouvel Espoir où le Millenium Falcon s'approche de la Death Star, réunissant ainsi deux vaisseaux emblématiques de la saga.
Son script de 44,849 Ko ne fait que 31 lignes, mais plusieurs d'entre elles sont très conséquentes, jusqu'à 18845 colonnes. Le script n'est donc pas consultable ni modifiable sur calculatrice (l'éditeur acceptant certes jusqu'à 300 lignes mais jusqu'à seulement 256 caractères chacune). Par contre le script sera parfaitement lançable.
Le script s'appuie ici sur la bibliothèque de tracé par pixels casioplot.
En insérant des retours à la ligne réguliers sur ses longues lignes, on reconnaît des éléments de l'affichage et met donc en évidence un codage des données par caractères. On note donc le codage distinct de plusieurs éléments graphiques :
Ilyas a visiblement bien du talent. Les vaisseaux se détachent ici clairement du fond d'écran sans pour autant choquer visuellement ; on s'attend à ce qu'ils se mettent à bouger à tout moment !
Si tu consultes le code, tu noteras qu'Ilyas l'a rempli de pléthore de références à l'univers de Star Wars :
Félicitations !
Revenons-en à Ilyas, passionné à la fois de programmation et également depuis son enfance pour la saga Star Wars, qui a pu trouver ici une occasion exceptionnelle de combiner ses centres d'intérêt. Il a choisi pour sa part de représenter la scène du film-épisode 4 un Nouvel Espoir où le Millenium Falcon s'approche de la Death Star, réunissant ainsi deux vaisseaux emblématiques de la saga.
Son script de 44,849 Ko ne fait que 31 lignes, mais plusieurs d'entre elles sont très conséquentes, jusqu'à 18845 colonnes. Le script n'est donc pas consultable ni modifiable sur calculatrice (l'éditeur acceptant certes jusqu'à 300 lignes mais jusqu'à seulement 256 caractères chacune). Par contre le script sera parfaitement lançable.
Le script s'appuie ici sur la bibliothèque de tracé par pixels casioplot.
En insérant des retours à la ligne réguliers sur ses longues lignes, on reconnaît des éléments de l'affichage et met donc en évidence un codage des données par caractères. On note donc le codage distinct de plusieurs éléments graphiques :
- le fond d'écran étoilé, affiché en premier
- les deux vaisseaux ainsi qu'un titre "Star Wars X Casio", affichés par-dessus le précédent
Ilyas a visiblement bien du talent. Les vaisseaux se détachent ici clairement du fond d'écran sans pour autant choquer visuellement ; on s'attend à ce qu'ils se mettent à bouger à tout moment !
Si tu consultes le code, tu noteras qu'Ilyas l'a rempli de pléthore de références à l'univers de Star Wars :
- Code: Select all
from casioplot import set_pixel as coup_de_sabre_laser, show_screen as voir_l_hologramme
nombre, ouvrir, memoire, classer, maitriser, force = sum, range, len, list, int, True
etoiles_de_la_galaxie = {'M': (26, 33, 43), 'C': (0, 6, 16), 'G': (12, 16, 27), 'F': (8, 12, 23), 'H': (15, 19, 30), 'E': (5, 9, 20), 'B': (0, 2, 14), 'D': (4, 8, 20), 'a': (69, 71, 83), 'A': (1, 0, 6), 'Q': (45, 45, 47), 'P': (42, 40, 51), 'R': (48, 47, 52), 'T': (52, 50, 61), 'L': (30, 29, 37), 'I': (18, 22, 34), 'Y': (68, 67, 72), 'U': (56, 56, 58), 'S': (50, 50, 52), 'O': (37, 36, 44), 'K': (29, 28, 33), 'J': (22, 22, 34), 'X': (61, 61, 71), 'N': (37, 36, 41), 'V': (59, 59, 59), 'c': (77, 77, 85), 'b': (77, 77, 77), 'Z': (66, 66, 78), 'e': (82, 83, 88), 'f': (85, 85, 97), 'i': (94, 93, 98), 'd': (78, 78, 88), 'h': (88, 90, 102), 'W': (54, 57, 74), 'g': (80, 87, 105), 'y': (134, 138, 149), 'n': (104, 106, 118), 's': (109, 120, 140), 'k': (93, 99, 113), 'r': (120, 119, 125), 'w': (126, 129, 148), 'j': (92, 94, 107), 'q': (108, 115, 134), 'l': (92, 98, 122), 'p': (104, 108, 133), 'o': (103, 108, 128)}
au_fin_fond_de_la_galaxie = ['MCGGFGHFEGCCFCBDEBaBDDCBDBBBBADAQAABACABBABACAAFAABAEEDCBFBBBAABCABBBDBABBCBPBBBBDCDCCCCBCCBECABEACCABEABACAADCAABCABDBABBCBRABCBBAADATBDBCCABABBABAAAAABACBAAEBBDBAAAAAABABAABABABAABABADAALCBB', 'DGFDFFFFFCCFCFIEBEBLCEBEBHCBBCBBABAAAABBBBAYBBAABDBBMAPCCBCCDDBACABBABCBCCAAGHBCEBCDCHEBDBCEBBCADCBCACABBAAAUSDABAEBCFCBABAAAAAACAFCACCEDDCDAGBAAABAABABAABBBAAAABAAAAAAABCABAACGAAAAABABACBOCBB', 'GBGIGCGFDCIEDDDCEDFCFEBFEBICACABABCAACABBBAKABABBABGDOBDEJCCBJACAEBBCCCBBAEEHCDCCBDFDBCBCGEBBDXBAABBCACAABNBDABCABBCCDACCABCFDABCABDBBCBBCBACFAAAABAGAAAACACKBCCABAAAAAADAAAAABAAACAAAAAQABBACBD', 'EDCDFRCDBGBDCEEEEEDGBFFCEFABDAECBAACCBAADACACADBAGFCIHGBDCCBDADBEABDBBFBCBBFBCCBBDBCBMDQBRBCBBBBBDBCBBCACBACACCACBDDADAABCCBACCBBCBACCBCBEBEABBBRAADAAABCABVADABABAAAABBEAAUDAAAABAAABABABBGABBB', 'DCXDCFEEDBDFECDBBCBDCBGECCIACBABBBABBABAAUAABAAAABAACAGRBDDFECCCADAAACBAAcBGBDBDDDBDEBFDCCDBcBEBADCABCCCCCBBABBFBARHBABBACBADBCEEADDBJHHFBBGALJBAGBAAABAAAADbABAAABBABBCIAAAUAAACAAGAAABACARBABC', 'CEBGEDIBCSFCDDCCCCBCCBCBCCUABCCUACAABBCCBACCAAACCABBCHDDBHEBBFACEBDEBBEEBADBBCGEEBCBCGCBGBDGCBBCaACBBBBFBABEBGBBCCBBBBAABABBBBHCFDAACDDCBDFAFBBACFGBAAABABBAABAAAABBAAABFCCACAAAAABHBAAAAADABCBB', 'DDDCGEECDCBFEBCBBAbBCCIBEBABAABABCADDBDBACABAAAABABBCBDBFBBCBEDGDbBCBDCCCQBCBBECBVCBbCZCDDEDDBFDHMBCCABBKEADHBDBBDBBMACAABCIDBAGEBFCCBEEBCEKGNAFBGACCEBADAACAACABABBAAAANDBAAABAACAAABAABBBBAADB', 'EFEEFDCCEDEKCBCBBBBCCBBHDDFBHHAAZCCBBFABABCBABBABCBCCCCCCDBCECCDBBDBDCECFJBBDEEFDBCBCCBCCBJBFFCFCDEBCFDBQBEAAFDFDCFCACCBBCDABCBKBCBBCDBBCSDFeGMACBGHCACBAPACABBCBABBABBBAAAABAAAAAABAACABABCABBB', 'EEGJEEBEFEIHHCDBBCDBCBECBFBDLHCBBDBBCBBBBAAACAABBACCBBCCCBfBCGFBBCDDFBFBBEBHCBDFEEBTBBGCGEBECFHHDCCCCDDEBEGNHCEFDCDDBADBDDBCECEBCCBDFCBCBAFEJFFDLFACABAAADAFBABAFBBAABBBPKCAAAAAAAAAAAAAACAABBBB', 'DFDBHJECDFFCCFEDCCADBBBBBBDCFDESCBDCBBCAAAAABAEACBADDBCBBECBEBDCEBCCBCBDHBEFBCDBBKFBBBCCCGFBFECDCEIMBDECDDEHFFIGGEFCBCACBACCBFBCCDCBBEDBaCGBEBBEiABACAACANBABCACBFABABABBBABBAAAAAAAAAAAAACaAABC', 'EEFFFFFECEBBCBBCDCEBEXCCCBEEDGFDIDCBBCCBABCABDACBEFBCDBDDBBCCCBGCBFCECFCBCBDFDBGCGBECDLQGEICIDJZCEDDECEFEEEGGFFHCJCFFCFCCDBCFBYBEBHBdBEAAFICDCJBOABCCAAABAAABAABABBBACBBBBBBAABBAAAAAABCACBACCBB', 'EECGFEEFFDBhBFBCCBDCBBDDDEFGHDGGEHDDCBBCBCBACABDCBBECBTCCDDCDBECCECCBCECZCEECJDPCEFFHBEGCDDGDFDCFBHDDEFDHGHFEIDHECCCGJCCCCECBCCCFDCBBBBBBCECFFADBCBABLBBABHCBAAABAECACBBBBBBBABAAAAABBAABBABCACC', 'CBFGEDICBFBBBDLBBBDCDCCDDDEEGGHIFFBBEBCBCBBDBBDBBCBCBBCDCCBBBCBDCBDFBDENBDFCECDDDBFBCFBBDBOCVFCMEWCCCFDFFFDLJDHCCCFDCBBDBCDBFBBCCECBCABCABCABAGCAFBCACEDADACCCDBBEBAZGBBBBBBBBAAABCAAAGLBBBBBACB', 'NODECJDEDDBKCBBcCEEBCDQDCUQHDHHFGCFCCBDDGBCBCDCDBBCBBVBSCCDEBCEFFCBEDCDEDEEDDCBCFCFCFEECBRIEFFEDDDDEFCDEGILFHDDLJDECCCBBBEDBDHBBBDUJAeABADABAJEHAICBCAGCAACEAGLDACACBBBCDDDBBBACBBAABBBBAADBACBC', 'BBEBECDEFMEBBDDBFBGFDEBGGFFDgFGGGDGGFDCBBCECMBDCCCCCGBcMEBEECEGCCIDIDCGFHFFEBHCDGEBNCBJCDMCFDDCECDEECGCHEFMPRZUFJFEDBCBCCBCICCFBBDBCAAHACACJHCOEEABCFHAWFAECEECCCWIDCEHGDCDCBBBBBBBBBBBBBDAAAACB', 'BDEDBCBDCDBCBcEECEDEECGDFGHGFHGGEIEIFDBCBFCCBFBGBCCCBDBCCFCEEEEEGEDFIEGCGHCCBBDFCDDRVBCCCCCCDHFEZDFHCDEGFLFMIKMJEGCDCBCBECGCBEBEDBBCACABBBAABABCAPBAABABBBDDBCBFABEDDEBFHDDBBCBBBBBBBBBBIBFOBBBB', 'BCDFBDDDCEJDECECDBEDFDEHEFFHGGIEDGHFEGEDOAABBCBDBBCCGDBFCDECFFLEECFDFDGFDFDFBHCDCDFFCCEFEBHCLHCDDEEECDFCQCFGIKKGCCCBDBBFbCKCDTBCBDBBDBBABABABPACBIBABBFCBBFBAACBEBGBCCFGBCBCBCBBBBMBBBCCDBAGBBAB', 'CBEBGDBCBSGDEEGFDiEDFDEChEHFJHGGIMDDJBFCUCRHBNEBCACADFBDDEGEGCHECECCEICFFFFECFEECEHCEHCFBFCFCCWJDFCXIEFFUDDIFEMLHEKJDDCDBLHDDCFBBACACDABABBCAKABAEBDBBBBBFBCEBCDGBFBDFCCDDCCBBBBDBBCCBBCBCDAAMNB', 'BBCEBCBDBCFECDDEFDFHDHFGDGGGFHHHFGHFGFFFADABAFDAACAEBBDDCHDDFFEFPGHEHDOFEEFFGLBBCDEDFBBCDEDBCFCDJCICGFEEEGFGGDFCBPJDBCLDECDDEBCDDABCAPBBADCACCBCCBDBBBBCCBDBBBBDBHEDFBFCEDDBBBCDCCCCCGcBCBBDBBBB', 'CDBBCBEDCCBGBGFFHHHHGEGGIFEGIIHGIPHFEDDBECBBBABAcADCDBEBHDFIFEHNECGFEGHFHEHEFGJFFFBgBDDCBCDCDCKDEJVEEGEIDHGGFEGCcBCByJEBGCDEBBGBDABAABACBBBCBCDBDCBCBDCCBBCBCBCBRBCEFCCFEDDCDCEDFEBDCBBDCBDBBGWB', 'BABBDBLFCEDBZDFFHFHFQIGIFHHGKFHEDaDHDGDEBCAEAADAAACBCBBBCDEDFFCKFEFCIGFIDIEIHFLGIKCBIDBBCCGCCGFIDLEFWDHDFGFHIGGHGRCILJBHCBDBBCBBCKACABCABBCBHBCBCFBCCBCCCDBCBBBBEBCEEEHFFEEDEDEEEBCCBDCBBCBBBdBD', 'BFDBCCBFCBDDHDGKIGFIKFIHGFFHHJGeDIFVFECDBEFAECDCCBACBbEFDHKDFHGHFLDKGFIFIEHGHELEGDQCDMBBBDBCCDDDGDGGLEEGGEEEFGIFJGOBISJFBHFBBBBACBBBAABCBBBDBCCCcBDCBCCDBBBCCECCCFBBDECGEDEEEEEECQBBZCCCBBCDBCFE', 'BABACFBCCBBHNFDEaEJDFHIGDbFEGFCJFGFDGCIFDCBCABBBAhBCDBFDIDCDIEFDFFIDEWFGHFIGHHDGGFDGDCBDCCGBCCEFDFIFGIEEFGFFIFFGHCLRFenYMGCBDABBBBAAEEAFBBCBBBBCCDCCBDDCBBBBCABBCBBLCFDFEEDEEFFFFRDEEBEBDEBCEBDD', 'BAADBBBBBFDDFFHFFGIGFHFHFGEHFYFIGFGFFDDDCAACBCCEBABDBCCDCFFdEFEHEIIIFFFGGGFHMHGEGECDBCBBECBIBDFKFFILGKFKFFGGEDJEQJDOPVQKFHLBABCBAAAaAADABBBCBDCBFBDBCBBBBADBADCeBECSCFFDIHFGFGFFEDFDDFEFDDEDCHEF', 'BACBBDDPDCCDHYFHGDJHLFHHGFFDFNDGIENEEBBBDACCBCAAABBBCDDCDFDCDDEFQDIIIJEJGHFHCIGFBFCCDCABDBDBBEDEHEHHFIIHHGGFHDJHDEBTGGHDHCCEBOACABAAFALAAACANBBDFKBHBCBCBGABBACABDEPEDEFFFFEFDIEgCFDFEDFEEECDCDD', 'ABBDDBCDCDEHHCIGFeGFHHFGFIEIHDEFEFQDHBBGBDBBBBBbABBBCDDCCEEFFFGGIHFJJFsEFFHFgCGHHBECEBCCBDBFEBCFCVKKIGFHGGJEIGGIIDGBCBDCBCBBBCAABABBBBACBEECCBBBBBCBBEBEBBCAADBCFCCCNEIGGHGFIGHEDFFFDEEEGFDCFCEC', 'DBDBCFDDCDFDCFHKFDGFGFGGDFGFFIGDDDCBFFDCBCBBDABACCBBCDDDDEEFEEHGHGKJENEIHHEHCHGGFFCCCBEBBFCBBFFGGFDHJFKHGLFHEFGHHEECMCCCCGEEIEAXACPABAFCBBCABBCCDBBBBFBBABBACCCFCCBIFDFFDFGEFFFGFFDFDGGGGDEDCEBE', 'EBDCFCDCDDEDGGFFFEEHFGGDfDHGGFDFKBgECBCBKBDHAACBBBCCDDCBCCEGFFGFHIHKIHIJHFHDFHJJGEFCFCBEBBDDCCDBECHHJIGHIHGHJJFIDHGGCDDDBLIBABHAAHICABAEDBCBGBBCBDOCCBCDACABDABDBCJCDFFEOVDLRDGEGDbHEFDEDDDDCBEC', 'BbCCDDDCEFCFEDIGFEGGHFGICEFGEGEEDDBCBBCFCBBBCDBCEDCBBCDECCEGGHIHHJHHJKIJJFJEEFHIFCDDEDBFBEDCBECQEFGFFIPIHJJHIHFFgCHEIECDDCCEEDABAAABBDCCBCBCBDCCVCBEBHBBFACDCCDCECFHEFGDCFFHKHGMFDEDFGEGFEEIECED', 'DCEOEZGFCDFCGDHFDGGFGGGFFUGDDGEDCEFECCDBBFDCFBDCCCCDEDCCEEEFGGJJHJJLLMJIIeIHFDKFEHCDFGEGEDBBFCHDFFFFfEIHKHINJKJHGIFFGECBDFBFBGAEBAWADBBBDDCFBHHECEEBdBPCCFCDFCBEBDCFKEDGHDIEELLOHJFDEEEHDEHICCEC', 'FLEFDEEDFFDEEEEGHFGGFHHGFEGFGDHEDEEDCDCDCBCDBEEBDCCDDDDDDEEGHGHHKJLJIMQHLGMJFGEFIEGCJGBKBCCIDGDFEFDGFIIJKKKJKKMFJFGHDFFFHDBDDBCABAECBBECFBBDCDECCDGCaBDBCBCHBBDBCBDBELGHDHGGICCDFHCFEFEBdFFDGCBD', 'DDEFEEEEEFOIFHJFGDGHGGDHGEFFBGCDFDCBBDCCCEBCFBECECCCCCDEEFEFGGHJJIILKLHXJHIHGFEWFDEDDBCEBBDDEEEFGCEHDKFIKINLMKFnFJIEHDEFFDDGCBDBABAACEBdBDDDEEEFECCBBCCZFCCEDJBDBDBEDDGDEGDDEKXIDCDDDDEFBEDNCCDB', 'EEEDEFEFFEJFEGFGGIEGFHGEDFECEDGDCEEBBCCBCBBDCGBDCDBDDCCDFDGHHHJIJILJJKIIJHGHIGFHHFDDBCCBFDECGDGLCFDGRFGJILNNKNJHHKHEFHEHECCCIBCAEBCCBBKBBDDCGEEFEDCDBEDBCFBCFBDBDCCCDEEJGFDDFDCDDBJECCEDLEDCDCCC', 'CEEGEEDEFEFEGFIFFKeEIHHCcBEDDBDCCCBXCBIBCBCCDBDCCBFBCBDEEEHGGGJKLKIKIOZHIEJHHHXGFGDCCBFPBFCFCECYDDGHUEIKKJLILNKROHHKFEDDOXDIBEAHABACEDICFCEOCCGEEEDDRFBEFBCDWCBFBBCBBIIFJGEDDDCFCBFCCCCEIEEFCFBB', 'CBECCDFFEEFFFHJFIHDIIIGEFEEEBTCBCBDBBACDBBBCBDCBDBBBDCDCEEJEHIKILGHHGIIKGHFHGCHHIIIUCFBCFFGFDDFDDCGEFIIIHLIMLKKJHGHIFGDCCBFFCDABCBWABCFFBEHCaHDEDCFECGFFFDCCBBBCCCFCBFFECINCbCICJFCBCCCCEDFEHCSC', 'CDCCcCFCGFHFKIFZIFJHIHILGFECEKCDDACAADABBDBCDBCDCCEBBECGEGCaCFIGHKKIFFJGJHFJHiDHHFHJEEFCHCDKGEFDEGGGIHIKLJLLQJIKFHGFHFDGCKECDFCFBAADDCCJFCEGDEEDDGDCCCEFGCEEHCDCCBJCCBECEECDEDIDEDCEBBDBBDGCBCCE', 'BCCCCFBeCIIIIFLRLIGIIHGGEEEDDACABCBACAACCBCBBDBBBBHBbBCCEDFDXGGHJEHHHHGFGIEGGDHFEIGFFGDFCkCaEDDHFEJHIJKJJJMNKNMIJGHHFEEECDFLNBGDDBBDCCJEBdDEEHEEFDFDWeDDFIFDDDEDCIBBDKBFDCECCOBFBCCEBCEBCEGDDDCC', 'DBDECCGCHKFFGHHHHJIIFFHIFFGCEADBACCBACABBBBEEBBCCDBCBDCECHFDEDEHIIJHPEGGHDWGGHHDGFHGHFHGLEHCEFFFHKFKMKLOMKLMMJQNNHHHFFFDHEGHCHCCABBACCECDCIDEEFQDFEEMDFFHDGFaDELBBDCBCBBCMIEDBCEFGCBCDCCDCECCDCB', 'CBDHFFFEFBbCJFKJHFJGKGHFHCBCBCDABBAAAABBOGBABFXBCBBDCCECFCGEROEFFJFSIGFHEFCFEFCHFEFDHEFGGGFJJDGGHILKLOOLKLMLNQINUKHHHFFHMDIDHBDBBAECBBCDHDCOFEHLDHGGEFGGGKIFEDDJLCBBBBCCBCCBCDCBBECCCBBCBBBDCBEH', 'CCCFCCEDEGEHFJGGGHQGFIFGEEBBBBBBABBBABBBBABCBBBCCBDDBCCFLEFFGGFGHEILGGFGHDhCFCOaDEEEEFHHIFGMMGGHKIKLMMMLZMOSLMOLMIJIIHHGJDDOEBCCACBCFBCIGGGEJEFFGEHFGGGHFNMIFGCGCBDCBCBBCBDCBBBBCBBCBBCCBYCBIKBB', 'CCDCEEDHCFCEGGFHHFLFFIGECCBBBBCBAABABACBABCBBBCBCECEMBEDFGEEGEHFFHIGGHGHGEDFEFGBFEHBEFDKKLGFGJIHJJMKLQNUOOOSRNMLKHNMHHKHGDEECDEDBABECDEGDGEHFfEGHIGGGHHIKTJMRFCEBFBBBFCBSRBBECGBBCEBBBBBCBBBBAEB', 'CEDCEFEDDCQDCEIGFGGFFDGECCECGABBBBBABBBAADADCCCCCCFDDECCEDGJHJFFSUHIHIJGKELDHHJIDDEfHHFHNIJIIHIKKJNNPRXROPOQONOMMLLGHJHGFFFHEDDDCDBBCEHCFCGKGFGLHHJLHHGLOLRMIHRCJBDCBEBBVBBbBDBCBCBDBBCBCBAXACAB', 'DDCFFCDEDDECiDDEGGFGHFEDGBBDArBHBABABEBBUACCBBBBCGDECFDFDGIHJJGYKJIIGIEIEHDHIEICEHEBHFDHHILHKHKKMMLTRWRTaRONPRNOMKIJJHIPEGHHCDDCBBDCBEDFEEJFHIIHGHKGGJJGGFKJODCCCCCCCBUBBBBGEEDCDBBBBBCBADDaCDDC', 'CCBDEBCEEEEFBDGDFGHFFGEJBCBBCAABAAAABFBBACBLUDIMEEDCZCEFEGJIKJKJJIKIKGRFHFFEEHEECGGOIEMHHIIIJKTKNLQPRSXURPYNQONONeeKKGHHGDDCFCDBBBBDEBEDCEFFIIIJGIGIHHHIRHGHKFwMCDCBCFJLPBDCCHCBCCSBBBACCABAABBA', 'CBCBCFDCFDEEEFCGDHFFGEFEFBBBBBABBABAAEBBPCCCDBZCEFFFDDEFHFYQJMJIMMGMKLFIJMIFDEGEDEEKJMFJJNKJKLYcMQPSTRXUUVXYPMaMLLLKHJFIHODFCEDBICXBFFDEGEFFFFIHJJJHFIJJDFFGDGFDYBDDDDBCCCCBEBFDDBBCCCCACBADABAB', 'CCDCCFECDCEECDDEFDGDEFDDBCCCBAEAAABAADBCRFBFEFBGHDGDGFFGGFGGKLJKMKKMGIKKFIIGFIIEJNFGHFNHKILNLLOMORRTYSTVZPrOMSNNNTLKIGIGDYCHDDCCDBBDECEEIEEGDFIHHHJHLKEHGKDEGEDFCCGBBEASEBUBDBDCCCBCBBBBBAXACATB', 'DCDECCEFEEcEFGGDCDFKJCGCEBPBDCBCBBBBCBCCEBjDEEEDDGFHFIHGFIIJIJKKKJLPMLJJPHNGLGHFHKICiUIKIJLKMNNPRPTSSWXWRbnQYZMLMJKPJLGIJDEECEDCCDEBDCGDDEEEgFHGIGIJFIJGEOFEEDCCEBBBCCBCAEFBCDCCBCBBBVBACBABATAA', 'CCBBBCFDEGDFGFENWEFDEFDDCCCBCBCECCCCDBBBBDCDDJGFIHGEIGGIJGGKKLLLKKNJJLJIRFLMOFHLGIRIGEJJLLLLNMPRRSRXVVUUVWPVRNSMNKJONFIJFLEDDBEDCBBCDCFEFJFEDGHGGIGGeFGIIDNBNCHHBBBLCABBBADCBBDBBEBCCAABBABACACD', 'CCBCBCDEQLGFGGKEDGGFFGGFCBBUBBDDDEEDCBBGBDEDGEFGFHGHKHKJHMLJIOJJKNWMLJNHMLWOGIGRFHGLJLLKLNKNOPQQRSSUVXSZWXRcVPORLLKHIJKHIDGDDCDBBCCBFCEEEFHFHGJIGJHIKFIGHEDDCDCBCABACBCADCZBPBECBEBCBBBBABBCAAAC', 'BCBBCCEDFCHFGJGGHHEGFGFEEEFBCCDBBCCBCCBBCCEEFHGGGFHLKKIKJNOJKJLMJJJIKRLSHJDIHUUFGJIJJJJLMJROOQPRRQRUTTeRTZTdQSPPMKJJJMKIEFDDCBDCCCCHCECEFEJGHHFHKHLHGGIHFEEFDBECAABABBADBABBDGCIDDCCBAAAAAAACABA', 'DDBGBCBDFGFHFFHIDIHIHFICEDCDCDBECCBEDBDECDDIEEHIGKLKJKNJKMKJJIJIbEIRQMPKYJPGLMIHKIJHNKNNIPPQOPQRQPTSTUQaVRSURPTOOMJJKGEOMDGFBCBCDDEBCIDEDGFKGIHIIHIHFHJGFDGECEDBCBBBBaBFBICCBBDDBDFBBBBAABACAKAA', 'CBCCCDEEEIEIHFIIIEaIKHEGEDEBCBCCCBCBBCDDHDEGGIGIKKLILKMJKLIJLKIGNFKHJLPPLILLILIJJIJLKHLTOOOQSPSTSRSSSTVWZXQXSOORLNPILIJEHDEBCBDBCHBEFCDEFFGHGHIEHIGJILHEGFGCEEBCBBBAAACMBBIBEFFICCBBBAABBABAAKBA', 'BHDBBBBEECFDDIELHEGIIIFECFCCCBDCECCCCEECFIFEHIKIKMNMKMINLJLHLKKIGHGNKHOQLJqJJIJIGKMIOMLPOQPQVSRRSUTRQRVPlQZRVYOOPKIYFJJFEFCEBBBEDBCGDCDDGHHIKHFiFHIFGGFJFDDSCCECCCCBBBBBCBBDCDBCDGBBCBABBAABDACA', 'CRBBCFCDCGCGFDGFHGHHHEEEEFEBEECDFBDCDECFDGKFHIIMKLMKNKMLKJLIKLKJIIHHKKJHRKKLLZMIMKMOIPNOQSSTRSSWTUVUUTTTRQgXRQQMMNONODFFEFEBCCBEDCBCDCGCUGKIGHHEIGGGFFGFDFCSDFCFCBCCCBDBBCCBCDTCCJCBBEDAABACBABB', 'BSLBBBDBEDFCDEFHFGHGGIFGEJCgBEHEDJCEECKGIIHJKIKLMKJNLLKJKKJLJMJIFJIJJJJJKJIJLLHJHIJLLMNepPSTSTSTWRTZXSjRRVTOQQOMQOLLFHEDFCHCDCVBCCEGCEDEDGEFGHIGFeEZIKEIHDFCCCCFDCCCCBDBBBCBRBDCCCBBBBBBAACAABBB', 'EBBBDBCCCCDCEEFEGHEFGFGFEDDCEEFEECFDEHDHLKKLIKLLKKgPJJKLJKIIIIJHIFGHIIPhJKJLJJMKKJJLLYTPWTRVUTUcXSVUTUTTWTQWUQSNOLPKKHFFFLBEDCCHBBDBDFPDFFGHHGIIIEKFGGGDHFEEEDCCCCCDCCBBBCCCBCDEDBBCAABABCBBCACA', 'DCCBBBCLBCCCFEEFFGIECDGDECEEEDFDFCEDEDGGFGKJIJLKLJJKLNJLLMKJJKGGGGFHIGOHOKMKMKLKKKJKNRTQRQRYWSUVXXUYXUXUnUUXQONQOKLMHRGEBGCCCSQEDYBDCCGFFFEEEFHHGHGGGFIiDCDFECQGCDCCCBCQKBBBCBCBCBBCCEYAAFCABCCB', 'FCEBCCBBECCBCCFGDEDDGCEFDbECFEFFEEFEENHELHHHKJKIMKJLJKLLKKIKGGIQFHFJKMNJKHLLLMJMJLLLMORObOTTTRUWTYWbVYUbYSTQRQUQLXIILGDFEBBCDCDHCCEBCECDGCJCEGFFIJGGGFEDGKFCCCCCCBDCCCCBBDCCBDCCBBBBCBBCCBABBCCB', 'BDJADCACBBCDDCDDCFCDDEBFFCFFEGFFEFDDECEEFGFJHIKMIKNKLJMJLJIJJHFDcHIFKIKKJLIJKLKIMKPZLLOQORdVUVVWYUYUXWTVTUSSQMhNMKKKLKIEFCMRDEGEFKBDCEEDDGDGEDEHFHGHGEDECNCDDgCDDBDCCDGCCBBBDCBDCCBBZBBBBCBEBBGB', 'CCEEBAKACBCCCCDDDDCCEDDCCCGGDFFEEFDEFDEGEJGFKHHKNJLLGiGKHJJIGGIIHIHgJJMKKJKIJILMMLLKMLdSPURVUVVUXVeZWSUTSRTQUQQLYJbPHIJGFDFCFCGDEDQCCDCHDDDFGEEHFDGECGDEELEGECDCCCDCCBIDBQCHDBCCCHFCBEDBBCBBCBBB', 'GBCDABHABCDCDBCDCBICBDECFEGHEECFCFFDEGGFHGFKHTVLJKJLJJcGIKHIHJHGFJGFJJJNLIHKKIMHMMLOOOLNRNUTTUwVYWWYUTUPRRSNOQGOLIHHNIFHEDHHHFIFEGREDCMCDCDEDFGCGFFDCCCICOFECCDDCCBDCEODCQDBEFCCDBKBDBCFBBBDDBGD', 'BDBBBAABABBACBCFDDCBCCCCBBECGDECDDCGIEIJJILLIEGKGJKHHJMJIHIEGIIGIHIHKHKIHLLJKIHfLLNLPSQQQSSSUaRSXZWVVSTRQUPQQIkILMLOKKkDGJEDEGIDICCIDDRCCDFCGECFCCEHHFNCGECCCDBCBBMBEBBGCBCEEBOKBBBEDFFCCCEBBBCE', 'BABBACAABABCEBBBBEBcCBECDCFECCEEFDfCGGFJGHIGGKHFJKHKKIGIJHOKHHIHIFIJIGJIIJHJJSSMOKWQOQONRQRUZTXWSWXWVVRSRQQSMPSHOKNGaGFLIEJQFFCgCGGDFCCCDFCPCCHFDDCFFDECDCDCBBXBCCBLCFDBCCCCFDCCBGEBCCBBBECDPKCB', 'ACABAACAOEAACBBBCBCBBBCBCBCCDEDCECEEDFGIGFKGGFHMREHIGHJHHGPWFHHPHGGHFdGHIKKPNNTPWOLRMRRSRSRRRRSSWTZSRTRSOOQOQNHrMKJOHKHIHMGFFFJDIHDdCCCHDDDJDFCEKFEEHSDDFDCDBCBCCBBBBCDCBCCEGCFBCDDCDFHCYBBFBBFB', 'AAABAAABGBBBDBHCCBQMBBDBCBCCCDBDDCCEEDFMLRGJGFHFefEGHHIHGGIEHEGEGHHHGGGGINMKKNSMLQNLTOQOOQSVRZYQUSRUSQRPPRNMNNSKJOQKJHcDHHIGFDMDFGICCFDFCDGEFIDDDJCBDGBEDCCBCCBBBBBCEYBBFEBDDDCCCHBEDCBBBDBDBBBC', 'AAAABACABABBBCCCBDBCDBCBBBCCCBCBBBFBDFEEFGGKHGGJGDGHGHHIFFGGHGGEGGGHHHHFGEIJMKPOOMQXOSMTOPQOOUNYOQQORSQSMPMMNNMOLMXHNKHKJEIEFKDMECFDECFDCDGCCDCCLBCIDDDDCCBBCBCABCBBSECQBEDBBBFBHEECDBECACiACCCC', 'DVABABDABDACCBABCBCCBCCBBDACCDBQMECECCFCFFIIEKHJIIGHIGLFJGMEHDFHGGHHIIHGFIIHKHPVKNQMPQPOQOQPQNqOQOWWNQMNMONONPMMLLLQHMHHHHGFFGDRCFEEEDCDRDCFCDCDBDBBCBDBCBDBBCAABABEBDCBDCCCBDDCCCBFECCBGJCeABCA', 'AABABAABABCADCEFBCEBEBAVAAACBCBBCBBCCCDFEEFGIJHFHIGIFJFGHDIEEJEGGHIIHGGHIHHKGPLQNMKNQLRQNQNQNPMONOMNMLRNMOMNNNOLOJILMGJGKGDFDDHEECFJCDDdCDECCCNCCDFBDDBCCEBDBABADCBHDEFDBBVBBDCCCBIBJBBBcBAACIAB', 'BABBAAAACAAfBACCEFBABCCHAXGACAFCDDVCCCDDEFGGFbMQGFLFHJKIFFGFFLHIHHGGHHHFFIIFMIKLLSURRQOPPKOLMOOLMOMNONMNNOMKPJLOMPHINEPGGFGDMNCCEFCEECDCDCCCDCDDCBBFCBCBCBCCBDABBACOCBBCDBCFBBBCEDDCBCDAABBAAKAB', 'CABCAAAAAXBVADCCBBBEDAAAARABCBGBBOGFCCDDDDEFLNHHKFFJIEIFEGFEDEHGFIJIFEGIIFIFGLKKMMQMQSTVPMPMLMJlJMLMLLMNMLNKOLLLGIIJIIGJGJEDDCDDDBFCGGECCbEDEEEDBBCCCFBBBCBCBBCBABCCACCBCBBBBBCECDBBBBAWBABDDABC', 'ADAAACABBAAABADCCEEBBEECDAACDAGBBBBCFCDDDFEEIIIGMfGIHFGGFGDGFIGFHGGGHHGFEHIHGHJLLOLNVTQSQPONMMMIMJOKMRMLMLLLKLKEkGLHHFGFFDHEDFCECBDBDECFCCEFCECECCBEBCCBBBCBBCBCADACDABACDFCEBDADCDDABDABBDCDABB', 'AAAOAAAAACAAAPADDBEDCBDBACBEDCEBDFFCCCCCEEEGGHIHJEIHIEGFKEGCFFFGFGHGFEEFKFELIIHKOLPPSQUTTSNMLJLJYIJeIPJMPRJOKJJHTFHKHGIEFCFECCECDCEDCDEDEFEICDCCBECBCCBCBCDBCACBABEABCBBABBBCDBBBACACABBBBDBBBTD', 'AAANAAAAAAABCBABXBFDEBBHABABAEEHKDGCBBEFDDCGGCHHIHJFEMFKEGEFEDHGIHHFEFEHFEGICJJKbJNQLONSOXPJMPKLXJLINIGIRILHHkFLGEKHGGHEFFCDECDCBBDCCECDECFCXCECBBQBCDBBBCBAEDBBCBBABFAFCCEEABBDABDCBBACAaAABADT', 'CMMLABBAACABAACABEBEFEFCCCBDADFHBGDQUBCCCCDECIFHEIFFGFEDDDDCECFGEMGFHDMHEIFJgHJHSMMOQiNWLPNJLJNIIJNHMILIHGFJHHHGDIEHFDCDEFDCJCCDBEBECCFCCEDCEECGDCBCFCECCOIBADBCDCCBBBFAAEACBACADBACABCABCBIBEBA', 'ABCAeAACVGCABCADBGYGDFIDBCBCDGEGBBLBBCEBCCEDCDCDHDKHEFEGFCCFDGEDGIEGHCFFHJKIEJIKINMMOHPLOLQLJMJJKKHMKIIFHHGHIHGJFIGFEGJCFBECBCCBBDBBECFFFCECCCCDEBGCCCEBEBDBBBBBBCEADCBBCBHABBABAACABCAcBBBGAABC', 'CAECCABCCACCBBCDBBBBBDFBECCECFEBSIBCBDDDECCCFCEEDFEEDHDDEEJCIDFFCoDSNIKJJEIGKJJMKLNNOMKNLOONMMIIGLIHIIHIGFFEFHIGHFEFFECIFgBDDBFDCBDBDDGECEIEDBEBBCBCBBBBBBCCBCBBCBBDABABBABBBBBBACBCBBBACBBAABBE', 'ACBABFBBACBBCDCBDGDCNCBEBCBBCDDGBBBECBCECCEDCECDCFEWHEDGDEEGCGHFFFFEEGEFGIGNGFIGNRMMOMPKNNJMKJIJHGGIGGGDEHEEFFFFDGKDGEDCCDDGCBCBBFBDDDCCEFEDCDDDFFCBBDKCBDCBACBCADCDAKAEBgABBCCAABBAEDBDABBBABBA', 'CACCALAYAEADDBCCDEFCBBDCCBCCABCBEEGDHDHDDDFGEDEEHDDDGGFECFECFEEDEEECIFHLJJZLIIFLGVLKKKOQKPJLLFgGEJGHEHGFDECECFGGPCECDPCCEBBEBDBCBCDFBEECECDECCBHEBFDHAABAAAEECKABCACNCBEABBABAABBBAABABBCDCDBAAB', 'CEBCAAJBCBDCBFBFBCDDDEBCBCBBDDBBDBDBCCBDFBBFDDFDEFGJCGGIEEJEECFFIFDFCGEEEJGGIKMGKIMLJLLOMLKKJLFGTGGHIDEDEDcUCCDECEDGHCCEFCBDCCABBBFBEEDEEDCECHDBDCBCBCCABCEACCAfADCEBDAAAACCCCDWABBBCADBEADCABAA', 'ABAAHBACDBBIDCBEFCDDABDBBBCBBBBBDBRLCEECCFNPDKDFFDDDFGGEJEECDGFJDIFGEEFFHFEJIGGLKHILKIMROIMJIGIDSDHFFGCFFCCDBECCEEEEDDGDBDBBCDDBBEBCCBEBFFEEDBFBBFCADBEAQAACABDACCBDBBBMPABBBBBDAABAAAABACBBDACA', 'BAABBABBADDDAHIAFCDACAABBBABCBBACBBBFBCEDCCCDCEEDIFFEDIGHEJDEEFDDECGEGEDiCFIFGHKJJVGKKMPLLJGLKIHJFFFFEDIGFDFCDFDCICFBCBCEAEABBCBCBCCCCDHECBDCCDBBCGAABEAABEABCDCCBCDBBBBCAAABABBBAAAAAAQABDACDCB', 'AZAECCDCCCEBEBACDABDABCAAAACCACaBBBECBCGDDDCECCEFGFCFGFHHCEEEFCDEDECJCLFCDFEUREMYGHHLMLJJJIJIIHEFFJDGEFCEFCCDCBCACBGBHDCCCCCACBCBCBCCBDCBhBDCHBCCAACCAABCEABCGBCBDCCCBBBBJCACACABBCBAAAJBACABACA', 'DBCABCCACDBBCCBDAWBABBABCCBADBDBCFEBCHMEDCDECCDDFEFICJFFCiDEUCDDDCCHDFCGDFFFCDHHEGFIHHKKHJNHIFFGHEFGCDEEDBCDBBDBDAECCCECEBABGACMBBECCCBEBDBDDCBDBDBAEDCBCACBCABCCBBEDBCBBTBCACACCCDAAMYAAHBADEAD', 'AACDCDAFAFEDAEPADABCAAACBABACBDCGBCECJDGFFCBCEDIDCECECCDTCGDCFCDDEDCCCDCEMCEDCGFHDIHHKIFLLIFKFHEIGICPCDDCCCBCBCBBDCBFCBGCDBDCCBICEDBBCQBECZBBCDCBADAXBBBCDCCBICBBDBBBCCBDBCFBACCCCBAAKBAAEAIGEAC', 'CABBBDBDAACBCBAEAJAFBACABABBABCADECBCCEBCBBDBDDDDEFCEFFCCEEDEDFDDCCCDBBCCDCCCCCFEFJFDDFILIJHDHFGDHDEDCEEEEECCBCCDBBCFDGEDBCFABBCBCCBBDBEBBBLCCDCBBBCCBDCCBBBXBBbBBECDCDBDDDEEDEBBCBDCAABADBABBBB', 'ACACBABEADAEABCBCADDDBACAfACDBACBCBBBDBCBCCEFFBCCBDDECCFCCEFEHFCFDCEDOCBCBGBCQECECEDNVFEHHEGFFGDHFEECcCCFDFECCEBBCCCMDCBCCDACBCBCDCCOBEBGDCCBBDFBDBCBBCGBBDFBBeBCBBEBECCCGDFBLBaCICBBACSCAADBACB', 'BBGABBBAABAACBDACECDJDABCBCAAABBBBBCDADBCBCCBBCCBDDDCEGCCDEFFEEECCECCBCECBBDCFCCECCECDEGEFIEHEEFEDEGFDHDDEECDEBCBCBBCBCECCBDFBCBCBCBLCBLCDCCCCGDDBCBGCDBECCBBBBBBEBBCBCBDCCGBEGBGCFBABAABGBBBGBD', 'BASCAAACBACBACCCCARACCCCBCBBACBARBCBBFCCBCECCBBCDCBCcBCCGCEDHEFFEBGCCDBCCDCEDCbCFECFFDFFGFGHFFHDCDEIDgCFEDDDBECBCBDDBBCBCBBBCCRBCDCDEDCFEBDDEECCBCCDBCBCBBFBCBBfBBBdBCBCDBCGEBlDBMABBAAEBBCBBEBA', 'BABCBADABBBABSEBCDADDBACBDEZBAABEBBCDBCBBACDBCCBBCCBBCCCDCFDCQCDHCCDDECCHCEBEEDCCDFCDDEGEGGGDEDDXqCHFCEECGHECDBECZCCBBBDCIBDBBBDBCCDFBDCCFFBDCBBBBDBBCDCCCCCCBBBBDCBCBBBCCBCCFCBCBCBCACADBCEKBBC', 'ADDACCABBABBAADABHCBAEABBBFDCIBCCBEBCDACFCCBDCFBCCBBBBCCDECEGDDFCJNDDDGCCCCDCCECDCDCEDEFFEHDGDFFCDPDHEDWKCDCDCDEBBBDCBCBBCDBDDBCCDBEDCCCEBDDBCCECCBBCBCCDBCCBCEBFACCBBCCBCBBEIGBDCDBABAABCAVCCBC', 'BCDBBABBBBAABAFBFDBCBECCECDBDCBABBBEHADDCDBBDFBGCCCCCCCDBFCDEDNHCGBFCDDKDEIEDGECFDFCDCDCDFDHDGDGHCFEECEDCDEQCDFBCDCCBCBCfBDCECKCBDBDDDCCFBBBBLBBBBBCDCCCBCCBCEBDBYACCBBCCBCCBPBDBDBABAACAACACDBC', 'KBDEBFCAABBBDBBCBBBCCBSFDCBDIBBCCBBCAGGADAEDDCCBBABCBBBCKFCDFCCGCFSCECCRBCEEKCDECDDKMCECEDGDGCEDCGFEFFDECDDQGCFCCCEBBCBCCBDCCCTDBCCBDCDCBEECDBCBCBDBBNDECBDBDGBGCAdACBBCBCBBDBEBAAABBAACABCDHHBE', 'CCBGBBACBAGDDCBDCDRABECCGBTBCBBBBKGBBCBFBBCEHFEBAAAAABBBGCDDBEFCBDBSJDEBDCCbBCECCEEEDDGFEFEFDFEDDDGECDDDFCDCJFCFDDCCcCCDBEDCECBXCCDBDCDCDCCDBDBCBCBCCBCBLBDEBCBCAAAAACCEBBBCBABCDABCACAAABBCBCBA', 'DBDCFICCACCBBDBBBABdFBEBBGHBBGCCBCBBLBBBFBFFBGCBCBBABBCCCFBBDCGEJFCCBBEECBCCUBBEFCCDDFDCDFEDEFFFECDCDIEHCDFDDECDCCDDBCDCFCCDCEDCBCCCCDCDCEDCCBDBBDDCCFBICSLBCBBDBBCBCACBBABAACBCDKABACBABAACDBAB', 'EDFCFBEADGBFDBCDKFESECQDFBGDCEBEQCEFBCDBCBGBBECECBAABBBBABBBCBHFGBDEfFCCClBBLCCEBGEHDCIDDDDCEEFFECDDCCDDECEFDCFDEDCCDEDDECECEECBCCCCCDCECCBDCCBCCBBBBBXBDFCDDBCBCAABCWACBABAABBBBLAABABBACCBBAJA', 'BCBDBCBDCCDBCCLBICEJJGNKKICHBBCBBBCCEBBCBGBCCBFBCBACCBABBACBEHCCFCEBCBCBBBCDBBECJCCCDEDCCCCDDDDEDDCECFERDDEDDFCDDCFCDCDDCEDECECDCBDBCCCDCDDCCBOBCBDLBCHCFBDEBBCBBCBBBADABABBBBABAAEAAAAAAABBADAB']
pieces_du_faucon_millenium = {'~': (255, 255, 255), '`': (252, 252, 251), '?': (250, 249, 249), '/': (246, 246, 244), '>': (244, 244, 241), '.': (239, 239, 237), '|': (226, 227, 223), '_': (210, 209, 204), ')': (202, 202, 196), '{': (219, 219, 214), '-': (199, 202, 201), '&': (188, 193, 191), '%': (183, 186, 182), '[': (221, 217, 204), '+': (215, 213, 204), '(': (202, 200, 190), '}': (227, 223, 212), ']': (220, 217, 206), '1': (152, 152, 145), '*': (199, 196, 185), '7': (176, 167, 154), 'a': (83, 74, 65), 'k': (109, 101, 91), 'y': (144, 140, 136), 'x': (142, 135, 134), ',': (238, 236, 230), "'": (234, 231, 223), ':': (237, 234, 224), '$': (185, 184, 176), '!': (177, 176, 167), '^': (191, 190, 181), '8': (174, 170, 161), 'S': (54, 52, 52), 'h': (96, 93, 88), 's': (133, 125, 115), 'p': (121, 115, 107), 'w': (145, 134, 128), '4': (162, 159, 150), ';': (232, 230, 219), 'j': (111, 100, 82), '3': (157, 156, 147), 'r': (126, 123, 118), 'V': (58, 59, 60), 'b': (77, 77, 74), 'i': (104, 97, 89), 'W': (75, 61, 55), 'o': (121, 112, 106), '<': (243, 241, 234), '#': (187, 181, 170), '@': (182, 178, 169), 'I': (19, 22, 28), 'M': (33, 35, 39), '0': (149, 148, 141), 'u': (137, 131, 122), 'D': (4, 10, 17), 'Q': (47, 46, 46), 'e': (91, 83, 77), 'f': (94, 87, 80), '=': (211, 208, 194), 'v': (135, 132, 126), '5': (163, 160, 154), 'z': (147, 144, 135), '2': (159, 151, 142), 'R': (48, 49, 52), 'n': (121, 110, 101), 'J': (20, 24, 32), 'U': (60, 58, 57), 'g': (97, 89, 82), 'T': (71, 51, 41), 't': (133, 129, 115), '6': (161, 166, 161), 'l': (110, 103, 99), 'Z': (73, 73, 71), 'c': (91, 78, 71), '9': (174, 175, 168), 'q': (123, 121, 112), 'P': (58, 36, 33), 'm': (117, 108, 94), 'X': (65, 65, 62), 'd': (84, 83, 79), 'N': (45, 39, 31)}
soudures_du_faucon_millinium = ['~~~~~~~~~~~~~~~~~~~~~~~~~~~`?/>>.|_){.~~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~~~~~~{-&%%[+(}(_]{1*7akyx>~~~~~~~~~~~~', "~~~~~~~~~~~~~~~~~~~,,)&+':(-$!^&{^*8kShspw4y8,~~~~~~~~~", '~~~~~~~~~~~~~~~~~~*)8(]|%-;xjp1)[(3prVb477skiWo[~~~~~~~', '~~~~~~~~~/+_[:?<.:$_!+#[_{[}^p&[)@sIM30ubDQefokuw~~~~~~', '~~~~~~~;)&;{-)^&_(]++}$+)=;;;**[+8#83kIS=vu58#8z2k=~~~~', "~~~~~.0=&|}=(_-[{_-[--_}[]^&2%|w-'{((%2kRenRJUjgrWan~~~", "~~~~}Tu};^&(8tv#56^&)(]][}}='|[?,+***=62ru0v260xx1waw~~", "~~~'y5lu$^g$#&&$6-==)((-+{%=57%0Z*=::^7=--{[6=&)*))=6_~", '~~~2wyacrsx(8{+((]Wwx&%-]}-+=3lb&,|[2$=8*+=-)+(=)=+[60~', '~~~<t138zt!#^_)};zpo1-_}{-[-=[^7&^65$&@@;#r5@$%**%*=+){', "~~~~<+[_;}!)-=-[+*)|{}[].=|{}%()%{'0_&+]3]1ocgt'{_&^9=~", '~~~~~~~~;=#}-=(}[6__=_|_{[}&$!!-]{}^(_*%_^]}(s)=-=_=&6~', "~~~~~~:+-qok]&&;<+))|-}++_2u#1y09{}[-[##){9s}-'{=$)__3`", "~~~~~~$4'+1#3z']%-][{=*_4w]+@x53z{{'+]:$]%]_(@@'(&))_|~", "~~~~~']]|{_[]==()+-)=]%5|];$%!@85[__'_='+w$}3wuy-+]{8(~", "~~~~.*xqz+}_=-%&=*-=*9#[_'^#-*8%^[=*'{_|,*=8o+_zz!{}j~~", '~~~/&]3bw)[-{(!$){$sv_|_|+}}*-=(jv+]=}1_}})n#={+58!ut~~', '~~?(}_]%6[4}(__$3yeP]#|:__-=@ign#)&{!^z-)*_6*=!vt$&m>~~', '~~&)=!v8zXRo5#%nVoela()7)}=(){-=[]_8(%:}*+_]9(own9j+~~~', "~*[%w8vTWeUWocv0_''x#@zv$^@$*)(;-=;+_,;;]=++@y2g$~/~~~~", '])10wTZfXR1xr6&_&[_}{]g2R!_-_-[#}&-(|;}{+!98y1Up~~~~~~~', "9|cWiaZTy|%6*+xXQu;]{;)=@'|;+$#m#5_ww5o5x783,~;~~~~~~~~", "%5rpdNr+#5%[[{_n4^]:'2{(&4y-438v@*88h!00rrmt<~~~~~~~~~~", '|&bXy<=5-;=_]__+[(@165s31xius%@n8(&%7vu0(,?~~~~~~~~~~~~', "~|3`~'_=-))!5590qvtsqtp774c$^*(};9'~~~~~~~~~~~~~~~~~~~~", '~~~~~4-@$yy2zvi0o0jcu29%}.,~~~~~~~~~~~~~~~~~~~~~~~~~~~~', '~~~~~)!#9061jnt20][`?~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~', '~~~~~<#8545#,``~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~']
pieces_de_l_etoile_noire = {'~': (255, 255, 255), '`': (252, 252, 252), '?': (250, 250, 250), 'm': (108, 108, 108), 'f': (88, 88, 88), '9': (172, 172, 172), '5': (160, 160, 160), '^': (187, 187, 187), '8': (169, 169, 169), '0': (146, 146, 146), '1': (149, 149, 149), '6': (163, 163, 163), '(': (195, 195, 195), '|': (224, 224, 224), ',': (236, 236, 236), 'R': (48, 48, 48), 'X': (65, 65, 65), 'q': (118, 118, 118), '3': (154, 154, 154), '@': (178, 178, 178), 'n': (110, 110, 110), 'd': (83, 83, 83), 'u': (129, 129, 129), 'v': (131, 131, 131), 'w': (136, 136, 136), '7': (165, 165, 165), '2': (153, 153, 153), 'y': (141, 141, 141), '!': (173, 173, 173), '=': (204, 204, 204), 'O': (40, 40, 40), 'Z': (71, 71, 71), 'g': (90, 90, 90), 'Q': (46, 46, 46), 'S': (51, 51, 51), 'r': (120, 120, 120), 'k': (101, 101, 101), 'V': (61, 61, 61), '4': (158, 158, 158), 'x': (139, 139, 139), 'l': (103, 103, 103), 'b': (76, 76, 76), 'W': (62, 62, 62), 'a': (75, 75, 75), 'e': (86, 86, 86), 't': (126, 126, 126), 'z': (142, 142, 142), 's': (123, 123, 123), 'A': (0, 0, 0), 'M': (35, 35, 35), 'T': (55, 55, 55), 'G': (18, 18, 18), 'D': (9, 9, 9), 'E': (12, 12, 12), 'F': (15, 15, 15), 'C': (8, 8, 8), 'U': (58, 58, 58), 'p': (116, 116, 116), 'o': (113, 113, 113), 'i': (97, 97, 97), 'H': (21, 21, 21), 'Y': (69, 69, 69), 'c': (78, 78, 78), 'j': (98, 98, 98), 'B': (3, 3, 3), '#': (180, 180, 180), 'h': (93, 93, 93), '%': (185, 185, 185), 'K': (30, 30, 30), 'L': (32, 32, 32), 'J': (27, 27, 27), 'I': (25, 25, 25), 'P': (44, 44, 44), ')': (198, 198, 198), '/': (247, 247, 247), '>': (244, 244, 244), 'N': (38, 38, 38), '$': (183, 183, 183), '&': (191, 191, 191), '+': (209, 209, 209), '<': (242, 242, 242), '}': (222, 222, 222)}
chantier_de_l_etoile_noire = ['~~~~~~~~~~~~~~~~`~`~~~~~~`~~~~~`~`~~``~`~`~~`~~`~~~~~~~~~~~~~~~?~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~`~~`~~~~~~~~`~~~~mfm995^8016(|,?~~~``~`~`~`~~~~~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~``~~~`~~~`~~~RXq3@8nduvdvw1uw77972y!=?`~~~`~~~~`~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~~~`~~~`~~``OZgQRRSrkVr!46!7@753225xx6?~~~~`~~~~~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~?~~~~`~~~31lbgWaOe2t0z305145431zyy0yuss~`~~~`~`~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~~~~~~~`AqWAMOOTGDEGmmmmds4w1v1uzyvw0stqmf~~``~~~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~``~`~~nvkrxgEWWRRFCDCUMdXmpz0rxuvpoo0tnmnmiX~`~~~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~~`~`Fsf47y1HTlTHXUYcddenjnw4nsvspnpornililgWt`~~~~~~~~~~~~~~~~~', '~~~~~~~~~~`~~`~~~~~~~Bxt84x#TCEAOswu0x00wrou3npqmqmmljjjhfdcZXa~~~`~~~`~~~~~~~~~', '~~~~~~~~~~`~`~~~~?~~~~U%@460MAKFfbrnRsxurruyziompjiliemigcZeVSLC?~~~~~~`~~~~~~~~', '~~~~~~~~~~~~~~`~~~~~??ACJ3302UTrtvvzmlv1qvwrlopnhefldahbeZZVSIHI~~~```~~~~~~~~~~', '~~~~~~~~~~?~`~~~~~`H~~Wf3@slVs2oqrj8xzzwtnzujnmjjfZeddaUWXTXPLGE~?`~~`~~~~~~~~~~', '~~~~~~~~~~~~~~`~ABjho`)6p7HHAZox32tzw0xyzsrpnjlilgcaeYUXRVQUQIGJ``?~``~~~~~~~~~~', '~~~~~~~~`~~`~~~/APgls#qewOEAKGr464y4yyzptmqsutjXQMOSehZYPJPIMHGHHHIA`~/?~~~~~~~~', '~~~~~~~~~`~~~~>~oUadrniuZBFSjTz2w2010zwrrrqrlCBDFGGDBILRTMIHLLJGHJDJ~~?~~~~~~~~~', '~~~~~~~~~~~~~`~ACOEIJEGPDo3@733vxy52yvpnpqcAAGHGGFGFHGFDGNJJLMLHHKHHJ`~`~~~~~~~~', '~~~~~~~~~`~~`~4HFOVJKKVVFAuoleo3zu!rwxqvtlDBGCGGFFHFGFGGJHIKIJLLJKLLH~~~~`~~`~~~', '~~~~~~~~``~`~LfqeceUWaqeMDLPWDUYmql0vrptveBFDGFDEFIHGFGHGGMJGJIIIMHMMIA~`~~~~~~~', '~~~~~~~~?`~`DCLBFJJLCX0olirpdmwrxwyppqlwcBHHGGDGDDFGFFEGGHIHRJLLJLKJLIJC~~`~`~~~', '~~~~~~~~~?~~EFYobYVX8$6$561yyxvywxurqghwAFHDDFIEECEFGFFGEFCHLOMJLKMHMGKGA`~~~`~~', '~~~~~~~~``?~BDQVgfZakglgXi@y00o0r0jqlilkBFFHCFFFDCFEFCDGFGGFIRIMIKKKJLIHI~~?`~~~', '~~~~~~~~~~~~FTMdhaecCfeZklj2zpt0qwmnjemTEGFDHGEFECFDECDDFBGEFLMKKIKMJJGGHD~`~``~', '~~~~~~~~``~~AJNYQaPOP5192wwzuawvpuwroiiIHGFFCEFFGEFDFEDDCHCDCNTJKHIJLJHDFIA~~~~`', '~~~~~~~~`~?~HPHKNLTK@vox@z1zrusrldTTiikMIHHHGDDIFEFFDDDEHFFFCOXLKJILHIHIFGG`~~`~', '~`~`~~`~``~AKHSMMJUVJTm0yxsuswtsiplfddkLGHIIHDFFFHFCFDDDHIHFCKbNINGKHILHECA~~~~~', '``~~~~~/~~AGWcnHCILLJEPPLdVYhwvtlmegfgeOBFDHHFEHFGDCGFHEFFEECQfRKLJKLLME?~~AN~`~', '~~`~~`~``AFXjZuSRmirhirlkcSkktnkkifffdaaDHFFFHGFFGEFHGIGDGHGDLiSLIIJKOMF~>`~A`~~', '`?~`~``~BAPRNLGMm$5&250p10hclpnhgdfdhdYeFGGIICFGGGGFFEGKMGEBDRkTQLOKNMOG?~~~`~??', '``?~`~~AOXgcABSlv352qqxq7KcmUcXhhecacaRZXBGHFHFDEEGFFFDLKIKIGZcMGGFIFHIB~`~`~~~`', '~~~~``ASjTXHDLOUepPmALOQmafspjjgaZcbdZRXYQEHGDFGFDFFGGCIJKGGLbaKEGGHHHLDA~~`~~?`', '/?``~BFYhbPWQFRbskSlgjOHUfeqqllifcbZaWSTSQGKKDDGHFEFEGGGKLJLWZUHILGHEGJGIAA~~``~', '~`~~aAZrsgbaVGIKmdZsjrzwhkmqpfdgedZaVWTUQRQJGDDEFFFIFHICHGRakhKIJLIGEFKJHLKB~?~`', '`~~AAO+$TYMFINNRQWKrDR5yqjsslccdcaYaWVUUOSTKDGFGFDCFFIKGHNbgpcHHHHGEGGJJJHHGDF`~', '~~xGYjfRagkPRQUYdadcVeQGPObIejfdcYWWVWQOLRNLKNHGFCDFGGJSZbendFKJHNFHIHLLHDFDDA`~', '`qtAIfmoWoMVSdPabjjiUVUghglbeWabeXZVUQOOHRMJJQPNNRQNOTZdeegRGLLKIPHLKHKKKGGGDFF~', '~Upkkwhmt1mecYgANiuxw4ssnfrqhTdddXXTRSPKIIGFDFJIPXagjimaWPFBFNKJHKPQMGIJGGJJFGC`', '~fls1fff0ykfbSenhekkUosrrmrngZcbcUUSRKLHGKJHBGGFFIFLPNSGEGHHHPMLKJOMMKKLIHHGIIA~', '~zmosn5x65YOAAi4mueRmZuwqfwndYdbcbUOTMIFFFKFIBGLHKDBEGIBIJHGDMLGIQMKKKKMHHEIIKA`', '~2z0wo@xzfqpstlu5063uwpoalnngYXZYSPSHIGGGKEFCFHKILGGHJKFGGGHIPKKDSOPKHHMMMIGHJA~', '`x556iz06anyys02xw11svtldlokhWYcXTTJPIDEHIHHDBKKIMEGFJOEJHHGFOLKKPHLKKLMLKHLPIC~', '~3x26$9680s4psyvwswxvvnVPmnkfUYcZPQLPHDDEGIKCEKIKOGFHLIKMNRLNNQMLUJKNQRSRPPPONA~', '~w@7voqruvx1039794623ztgqjnmffeZcWVPPSONRMRQPQOQOLTMPQTTUSTSSVQMQSNOMKGFDGFEFFA~', '~kufs4ywx4xz36zzzwz3923yztsplmnfbaZWOOLMKVPRNPQIMVNSNTPPPPOSRTTTRPPSONLLOHJJMJA~', '`Zjjn1zslsxbollwslpjjpojghedeYXVTQIMNLJIJKHIKGJIHLCIFANPQMMMNKKLLJJJFGIIMIEGOLA`', '~QPhY0uqlqyhnmlvrurigmifdXfdaURQLMIJOKGFJHJHIMGFGKHHHEHFQLOLMKGJHKKJGHJKNKLFFCA~', '?mHKNjloYXaNYmmtjgnjgngfeXcaaVRSPPOIMJHLJNHMFJFIHMIGLIGKNMHJKKOQHMMLIIGJLGGIGA~~', '~!AKcPgiSLOHAccYcXidPUidcYMUdTRRTPKKQLGDEMLMKIFKMPGHHLPGRRDIJIOKIMMLILIMJDEBEA~~', '~~AAAPcZCeUeBAERAKafneaYYXISYUWNMPKOPKMGHPJJMLGHJPGIGFKHMOKLLKJIJNNJGOILGAAKA~~~', '~~AABJBABAZTLTOBDRikqgeeXYRVZUPRNGBFFBHDGSKKHMJIIIHIHFLJOOOKMKKHIMPLKIDGU~`~~~~~', '~~ABCACDBHWBAMCLCDZfWeZaXWMTZUQAABABCKJAFOMLKKIJJMKHIDPQSOMILLLGNKPKOOJD~`~`~`~~', '~`~AENZPBBQLEDBFDATUKOKKEMCIRTGEBACJMQIJFLMILKGDGPNMFFSRQPOOIHIKMLLLLGBF?`~~`~`~', '/~~AEFFBAHQLRJLCBAKYBCJJDABKRPBIDDHKKTLIDKLIFDDFFLNJGERQTOLMONMMNRQOQEHKB``~~~~`', '~~`~AABAAAABABAACGHLQAABBAAHHLIDACAAFICFACAGJKLLECCFQNLNMMIHHJIMUIKMOTHIB~~~``~~', '?<~?~CAABBFABACEAADKOGCAACAFBAAACAABAGKBBACRTHHKHILIIHFOOLIKOLKPXKKLQNKIA~~`~~`~', '~~``~~ABBFIGGFJMKICIMOIHIAGBBBCCCAACACGAABDGFBEDBFTLIGHKNFJKSINPTNMKPOLGC~~~~~?~', '``/~?`~ABAABACCHHDDLKLcVMAEDFFAACGEDCBAABADKHDABAFOKIIEDGCBGCCDDHDPNOIMIA?~~`~~~', '~~~~~~~~~ADKDBAGONLACFDMOIBJMCFCAACCABAABABJCAAFKLMFHGBFBAAAGGNVUBNOLPHAA~~`~~`~', '~~~~~~~~~`AABADDHQQaLAACBIIFLHKKGBAEDABAAAADHHBHISUNRPCAABBANLLTOCJIHLAB~~~~`~~~', '~~~~~~~~~`~ZAAHDCBFLFDCAAAACMLKECEBBBABBBCBAGIGIGKNJJGAABAAEAAEIADDLGA~~?~~~~`~~', '~~~~~~~~`~`~~MBAAGEBDEBAAAENIEHBDAABAACCDBAAGBDGDABAABBABABAADFFAACHA`~``~~~`~~~', '~~~~~~~~`?~~~>ABBGQQAFEBCOMKHCACBCBABAAFAEBADHAAFAAABAAAACAACEHEB}AB~~?`~`~?~~~~', '~~~~~~~~`~~`~~~AEDCPqeRKVNJHHIFCCCAAAABAIBGBGFDGFAABBABADACDCJIAB?/~``?~~``~~?~`', '~~~~~~~~~~~`~`~~~``KGAGSTFCGEEBBACACBCADFFHLGIDFGECCEHIAAAVHLRMIA~~?~~~``~~``~~~', '~~~~~~~~`~~~~~~?`~~~ABKSRQMQLHABBDFCDQIFHKDADAFIQRKHLIHHDCOOOIKIA~``~``~~~`~~`~~', '~~~~~~~~~~~~~~~~~?`~BACKJLFIDHMJNHSDHOPILMGGEBJLPLMOMMBRLCNRLQFDB?~`~Q?~~~~~~~~~', '~~~~~~~~~~~~~~~~`~``~ATLGFEBBCTMOLOMNMXRKQHHGEKGOHPKRVFWOTQMPPDGAMPTC~~`~~~~~~~~', '~~~~~~~~~~~~~~~~/~~~`BENSREBHDETMIKHHOJGIMROMPVTOMKJMMOHJKFHQMPMNFKA~?~~~~~~~~~~', '~~~~~~~~~~~~~~~~~?~LBFIISRHMDDACGKHHHILNPNMNOISPIHIHKHIIJMIQIMKJOOA~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~?`~DDJFHIIFFDADGIEGFOQOKMRKKQMPMHGIIOIKFLJINMGOLKA~`~~~`~~~~~~~~', '~~~~~~~~~~~~~~~~~?`~~AAAAUOWGDAIBCGHDGOMORLMPRMNIGKGLJNBBFKMMOMI~~~~~``~~~~~~~~~', '~~~~~~~~~~~~~~~~`~`~~?~`FABLMNSGLKLQMLPPMSLKKTRHEHHFKIKMOPMJOKH~~`~`~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~~`~?~`~~ARUOKUPKJPHLKMPGELPPLCIPOMKGMGHFFGHGIM~~`~~~~~`~~~~~~~~', '~~~~~~~~~~~~~~~~~~~~~~~~~AQRHKKGFHNMPKIJHKNMKIEDFGFCJGHHFEDAI~~~~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~~~~~~~~~~AHNQONOMJOMLLMIINMLJCCGCCHEFILGCA~~~`~~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~~~~~~~~~~~BFPTSPLKTLNOMJGJIIKHHEDFAFGHBAB~~~~~~~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~~~~~~~~~`~?QMSNNPHDFEAGKKFFEGMHCEIKCDC`~~~~~~~`~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~~~~~~~~~~/~~~BKLIKLMPONMHKFDKHHDAA~?`~~~~~>```~~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~~~~~~~~````~~`~BAAEBBDBBAABAABA~~~/~`~~``/~~~~`~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~~~~~~~~~`~~~``~`~`~~``~~~`~~`~`~~~`~``~~`~`~~~`~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~~~~~~~~`~`??`~~~`~?`~`?~~~`~~~~~~`~`~`~~~~~~~~~~~~~~~~~~~~~~~~~']
bb_8 = {'~': (255, 255, 255), 'u': (204, 177, 7), 'o': (180, 158, 3), 'n': (173, 152, 4), 'x': (219, 191, 5), 'm': (168, 148, 4), 'v': (207, 182, 4), 'R': (79, 68, 3), 'e': (130, 114, 12), 'p': (184, 162, 3), 'r': (191, 168, 4), 'q': (186, 163, 4), 's': (196, 171, 4), 'W': (98, 85, 7), 'w': (214, 187, 5), 'z': (227, 198, 5), 'b': (122, 106, 3), '0': (232, 202, 4), 't': (200, 173, 5), 'g': (142, 124, 5), 'Y': (109, 95, 4), 'k': (160, 140, 1), 'A': (0, 0, 0), 'i': (151, 131, 3), 'O': (66, 57, 0), 'c': (108, 96, 33), 'a': (111, 96, 18), 'N': (60, 54, 0), 'I': (40, 34, 0), 'l': (168, 146, 3), 'B': (7, 5, 0), 'S': (83, 73, 1), 'V': (96, 84, 1), 'f': (137, 122, 2), 'J': (43, 37, 0), 'X': (98, 85, 10), 'y': (222, 194, 4), 'j': (158, 137, 3), 'h': (150, 131, 2), 'Q': (72, 64, 2), 'L': (53, 46, 0), 'U': (89, 77, 1), 'H': (35, 30, 0), 'K': (46, 40, 0), 'Z': (111, 97, 1), 'G': (27, 24, 0), 'P': (68, 58, 1), 'F': (25, 22, 0), 'M': (56, 49, 1), 'd': (130, 113, 3), '9': (255, 248, 7), 'C': (12, 9, 0), '6': (255, 226, 7), 'T': (76, 68, 20), 'E': (20, 17, 0), 'D': (15, 12, 4), '3': (243, 212, 6), '4': (250, 218, 6), '8': (255, 244, 7), '1': (235, 205, 6), '7': (255, 238, 6), '2': (240, 210, 6)}
r2_d2 = ['~~~~~~~~~~uonnnnnnnnnxmnnnnnnnnnnnnnnmvR~~~epnnnnnnnr~~~~~~umnnnnnnnnnnqs~~~~~~~~~~~~~Wsmnnnnnms~~~~wmnnmz~~~bqnnnm0~~wmnnnnnnnm~~~~~0mnnnnnnnnnnptg~~~~~~~rqnnnnnnnnnnq', '~~~~~~~~YkAAAAAAAAAAAiAAAAAAAAAAAAAAAAOc~~~vAAAAAAAAAv~~~~aNAAAAAAAAAAAAARz~~~~~~~~~~~cIAAAAAAAn~~~lBAAAASV~~tAAAAAs~pAAAAAAAAAr~~~~~fAAAAAAAAAAAAAJvX~~~~yAAAAAAAAAAAAo', '~~~~~~~~uAAAAAAAAAAAAjAAAAAAAAAAAAAAAARY~~~hAAAAAAAAAk~~~~XQAAAAAAAAAAAAAAAw~~~~~~~~~~cLAAAAAAANc~~uAAAAAAq~~sAAAAAq~tAAAAAAAAAUW~~~~hAAAAAAAAAAAAAAAkW~~wAAAAAAAAAAAAAo', '~~~~~~~WSAAAAAAAAAAAAjAAAAAAAAAAAAAAAARX~~iHAAAAAAAAAKg~~~XQAAAAAAAAAAAAAAAAw~~~~~~~~~cLAAAAAAAAu~~lAAAAAAs~~iAAAANa~ZAAAAAAAAAAr~~~~hAAAAAAAAAAAAAAAAw~~lAAAAAAAAAAAAAo', '~~~~~~~gGAAAAAAAAAAAAiAAAAAAAAAAAAAAAAPX~~uAAAAArAAAAAv~~~YQAAAAAKWVVWRAAAAAj~~~~~~~~~cJAAAAAAAAo~aOAAAAAAVRVRAAAAi~nBAAAAnAAAAAr~~~~hAAAAAFWVVVVAAAAARW~cAAAAAAAAAAAAAn', '~~~~~~~aMAAAAAAAahhhiyceeefIAAAAAeeeedqW~~iAAAAH9FAAAAk~~~YQAAAAAuPQRQchAAAAW~~~~~~~~~bmdeeAAAAAQVqAAAAAAAAnhCAAAAs~tAAAAA6VAAAASX~~~hAAAAAgYQXTUuAAAAFh~gAAAAAAAThihhgv', '~~~~~~~~lAAAAAAgZ~~~~~~~~~VcAAAAGn~~~~~~~iHAAAAlLhAAAAIh~~XQAAAAArAAAAAtAAAAU~~~~~~~~~~~~~gQAAAAArnAAAAAAAAoqAAAAAn~YAAAAXRrAAAAAu~~~hAAAAAfFABAApAAAAEk~wAAAAAAKu~~~~~~', '~~~~~~~~wAAAAAAAy~~~~~~~~~~bAAAAGg~~~~~~~vAAAAAvAwAAAAAv~~YQAAAAAtADDDGtAAAAe~~~~~~~~~~~~~~qAAAAAsZAAAAAAAAUtAAAAN~nAAAAAuBqAAAAAp~~~hAAAAAgLCDECyAAAALc~eQAAAAAAl~~~~~~', '~~~~~~~~~vAAAAAAAx~~~~~~~~~bAAAAGg~~~~~~~iAAAASYAhIAAAAi~~YQAAAAAVkjjkjBAAAAy~~~~~~~~~~~~~~tAAAAALEAAAAAAAABOAAAAh~sAAAABpBQaAAAARY~~hAAAAAMljjjlIAAAAu~~~0AAAAAAAjc~~~~', '~~~~~~~~~TkAAAAAAAy~~~~~~~~bAAAAGg~~~~~~iHAAAAtAAGkAAAAGj~YQAAAAAAAAAAAAAAAu~~~~~~~~~~~~~~~YRAAAAAAAAAAAAAAAAAAAAq~YAAAAgLBBuAAAAAt~~hAAAAAAAAAAAAAAAiZ~~~~yAAAAAAAkU~~~', '~~~~~~~~~~aiAAAAAAAz~~~~~~~bAAAAGg~~~~~~uAAAABnAAAtAAAAAu~XQAAAAAAAAAAAAAay~~~~~~~~~~~~~~~~~pAAAAAAAAAGDAAAAAAAAAnlAAAAAuBBBlDAAAAo~~gAAAAAAAAAAAAASxW~~~~~~xAAAAAAAw~~~', '~~~~~~~~~~~WmAAAAAATa~~~~~~bAAAAGg~~~~~~hAAAAUyqrq3FAAAAg~WQAAAAAAAAAAAQ4~~~~~~~~~~~~~~~~~~~tAAAAAAAAAjcAAAAAAAANZqAAAAF3qrrzUAAAAPZ~hAAAAAAAAAAAC8T~~~~~~~~~xAAAAAAAs~~', '~~~~~~~~~~~~xEAAAAAAv~~~~~~bAAAAGg~~~~~iHAAAAAAAAAAAAAAAGhUQAAAAAgCAAAAAp~~~~~~~~~~~~~~~~~~~aQAAAAAAAAqpAAAAAAAAgXXAAAAAAAAAAAAAAAAt~hAAAAAVNAAAAAac~~~~~~~~~gZAAAAAAo~~', 'seeeeeeeeeedMAAAAAAAl~~~~~~bAAAAGh~~~~~vAAAAAAAAAAAAAAAAAtSQAAAAAqxAAAAAAcbbbZz~~~~~~~~~~~~~~pAAAAAAAAmlAAAAAAAApkAAAAAAAAAAAAAAAAAo~gAAAAAc1IAAAAAXbbadwceedUAAAAAAATV~', 'qAAAAAAAAAAAAAAAAAAAf~~~~~~bAAAAGh~~~~~iAAAAAAAAAAAAAAAAAdhPAAAAAq~0AAAAAAAAAAi~~~~~~~~~~~~~~uAAAAAAAPXRVAAAAAAAmpAAAAAAAAAAAAAAAAAMjeAAAAAf~vIAAAAAAAAAeAAAAAAAAAAAANa~', 'qAAAAAAAAAAAAAAAAAAAo~~~~~~bAAAAGh~~~~jHAAAAAtlmmmrbAAAAAB7MAAAAAr~~1AAAAAAAAAk~~~~~~~~~~~~~~aQAAAAAAk~~rAAAAAAMrVAAAAAhpnnmnpAAAAAA1cAAAAAf~~yGAAAAAAADgAAAAAAAAAAAAWT~', 'qAAAAAAAAAAAAAAAAAAAu~~~~~~bAAAAGh~~~~vAAAAAEm~~~~~vAAAAAA3NAAAAAr~~~1AAAAAAAAk~~~~~~~~~~~~~~~qAAAAAAu~~tAAAAAAewAAAAAAv~~~~~rAAAAAAleAAAAAf~~~zFAAAAAADgAAAAAAAAAAAAx~~', 'qAAAAAAAAAAAAAAAAAO0~~~~~~~YAAAACh~~~~cAAAAAg~~~~~~iGAAAAAZMAAAAAq~~~~0AAAAAAAi~~~~~~~~~~~~~~~sAAAAAAp~~aNAAAAAqmAAAAAN~~~~~~~YAAAAAHeAAAAAd~~~~0EAAAAAAeAAAAAAAAAAGw~~~', 'nrrrrrrrrrrrrrrrrvk~~~~~~~~0qrrqua~~~avqrrsrw~~~~~~~1qrrrquvqrrrq1~~~~~yqrrrrq2~~~~~~~~~~~~~~~UwqrrqwT~~~2qrrrqvxqrrrq1~~~~~~~zqrrrrrzqrrrq2~~~~~wqrrrqrzqrrrrrrrrtj~~~~', '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~dmooooor~~~~~~~opopoonn~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ShAAAAAAx~~~~~kOAAAAAMl~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~lNAAAAATd~~~~mAAAAAAy~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~zAAAAAAt~~~zAAAAAAx~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xAAAAAAy~nKAAAAAh~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ShAAAAARriAAAAAMn~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~mMAAAAAfAAAAAAz~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~zAAAAAAAAAAAw~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~wAAAAAAAAAf~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~RfAAAAAAALm~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~nLAAAAAAAAx~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~VdAAAAAAAAAJq~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~vAAAAAAAAAAAe~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~0AAAAAA6BAAAAAv~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~oKAAAAAl~xAAAAAAz~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~UfAAAAALl~~eAAAAALo~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~wAAAAAA0~~~rFAAAAAfU~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xAAAAAAn~~~~~zAAAAAAt~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~nnXZZZZfj~~~~~~rXZZZYY6~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~chkjfY~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~UbcXP~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~evbLGCDIOfwZ~~~~~~vVXXXXXXWjX~~~~~~lrZXXXXXXWUVilWXXWjY~~~~~tqcUMLRYmui~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~zPAAAAAAAAAAW~~~~~~kAAAAAAAAAu~~~~~mPAAAAAAAAAAAOSAAAAOW~~~wUAAAAAAAAAAItf~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~tAAAAAAAAAAAAAMs~~~eKAAAAAAAAAp~~~~~qAAAAAAAAAAAAQUAAAAPX~~sAAAAAAAAAAAAAAWr~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sAAAAAAAAAAAAAAz~~~~vAAAAACAAAAPa~~~WRAAAAAAAAAAAAQUAAAAPW~vAAAAAAAAAAAAAAAAUh~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~yAAAAAAACRTHAAA0~~~~~lAAAAE2AAAAAs~~~cLAAAAAAAAAAAANUAAAAPRqAAAAAAABRTJAAAAAAAr~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~YAAAAAEwmWTgxEy~~~~~gKAAAAfuCAAAAo~~~QZAAAAAAGrrrrqzQAAAAOalAAAAAAmpVUfyGAAAAAFl~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~qAAAAADz~~~~~~u~~~~~~vAAAAAuIcAAAAOb~~~vAAAAAASf~~~~STAAAANxKAAAAAeTAABBBzAAAAAAt~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sAAAAAo~~~~~~~~~~~~~~kAAAAObAuAAAAAu~~~dRAAAAAAdj~~~UTAAAAM7AAAAAAuAABCBBdNAAAAAn~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sAAAAAs~~~~~~~~~~~~~gJAAAAqBAnCAAAAn~~~~zAAAAAAAXk~~UTAAAAL8AAAAAAnAABCCCJgAAAAAh~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sAAAAAs~~~~~~~~~~~~~uAAAAArAAMeAAAAMd~~~~1AAAAAAAdZ~XTAAAAL7AAAAABmAAABCCDnAAAAAf~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sAAAAAp~~~~~~~~~~~~~kAAAAYVACAwAAAAAu~~~~~0AAAAAAAt~jTAAAAL8AAAAAApAAACCBNcAAAAAk~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~rAAAAAFx~~~~~~q~~~~gKAAAAUmmmmkAAAAAl~~~~~~xAAAAAACnQTAAAAM6BAAAAAuAAACCCfNAAAAAq~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~WAAAAAGxjTScyIy~~~vAAAAAAAAAAAAAAAAKjeggggxEAAAAAAqRTAAAANoUAAAAAOoAAABMwAAAAAAt~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~yAAAAAAAFTULAAA1~~lAAAAAAAAAAAAAAAAA7UEGGEAAAAAAAAcdSAAAAPTtAAAAAARuposjAAAAAATY~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pAAAAAAAAAAAAABvfIAAAAAOUUUUUAAAAAAkQAAAAAAAAAAAAZfSAAAAPTcQAAAAAAAAAAAAAAAAAz~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~qAAAAAAAAAAAAAJ7AAAAAAwQSSRfYAAAAAQSAAAAAAAAAAAAqSTAAAAPW~xEAAAAAAAAAAAAAAAu~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~zLAAAAAAAAAAR0fAAAAAcO~~~~~tAAAAARSAAAAAAAAAAAOjQTAAAAPX~~xTAAAAAAAAAAAACx~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~iuXIAAACLbwacJAAAAAw~~~~~~nFAAAARTAAAAAAAAAJno~VUAAAAQY~~~cwXBAAAAAAAOpr~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~', '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~fnoold~~~YooooopV~~~~~~~pnnnnllnnnnnpnnnf~~~~onnnno~~~~~~Rnsqnnpsrc~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~']
def tracer_par_le_pouvoir_de_la_force(rayons, galaxie, longueur_de_l_etoile, largeur_de_l_etoile, taille_de_l_etoile=force):
galaxie = [classer(droide) for droide in galaxie]
for planete in ouvrir(memoire(galaxie)):
for stormtrooper in ouvrir(memoire(galaxie[planete])):
if nombre(rayons[galaxie[planete][stormtrooper]]) < maitriser("120")*maitriser("42"[force])*(force+force+force):
for particule_cosmique in ouvrir(taille_de_l_etoile):
for poussiere_cosmique in ouvrir(taille_de_l_etoile):
coup_de_sabre_laser(longueur_de_l_etoile+maitriser(42/(maitriser(memoire("droides"))+force))+stormtrooper*taille_de_l_etoile+poussiere_cosmique, largeur_de_l_etoile+maitriser(42/(maitriser(memoire("droides"))+force))+planete*taille_de_l_etoile+particule_cosmique, rayons[galaxie[planete][stormtrooper]])
tracer_par_le_pouvoir_de_la_force(etoiles_de_la_galaxie, au_fin_fond_de_la_galaxie, 42*0, 42*0, force+force)
tracer_par_le_pouvoir_de_la_force(pieces_du_faucon_millenium, soudures_du_faucon_millinium, 220, 100, 120//42)
tracer_par_le_pouvoir_de_la_force(pieces_de_l_etoile_noire, chantier_de_l_etoile_noire, 20, 20, 120//42)
tracer_par_le_pouvoir_de_la_force(bb_8, r2_d2, 120+42+memoire("droides de combat")+force, (force+force)*memoire("force"))
voir_l_hologramme()
Félicitations !
LePhe, administrateur de Planète Casio, a envoyé une participation au nom de toute sa communauté, qui bien que hors catégorie bénéficie de par son caractère remarquable d'un affichage sur la page des gagnants.
Il représente la Death Star flottant majestueusement dans le vide intersidéral. Mais ici, le rendu du vaisseau en question nous interpelle. Cela ne ressemble pas à un sprite possiblement extrait d'un jeu vidéo comme on a pu voir dans certaines participations précédentes, cela ne ressemble pas non plus à une vue d'artiste... cela ressemble plutôt à... un rendu 3D !
Et c'est exact, après le raycasting que nous t'avions sorti en Python lors de notre concours de rentrée 2022, Lephe pousse la barre encore plus haut avec maintenant du raytracing en Python !
Tu peux comparer ci-contre l'image dont il s'est inspiré (en bas à droite) et sa reproduction en raytracing (en haut à gauche).
Mais ne t'attends pas à trouver dans le code ici quoi que ce soit de ressemblant à ce que l'on a vu précédemment pour coder l'image en question. Au contraire, tout est vectoriel, et la taille du script obtenue en conséquence en est à couper le souffle.
Pour donc les images illustrées jusqu'ici, seulement 7,705 Ko de script, avec seulement 218 lignes pour jusqu'à 105 colonnes, le code peut donc être consulté et même modifié sur calculatrice !
Par contre, avec tous les calculs 3D supplémentaires nécessaires les performances en prennent ici un coup. Si le fond étoilé aléatoire est certes affiché après seulement 6 secondes, il faudra attendre jusqu'à 6min 30s pour que l'affichage de la Death Star, progressif de haut en bas, soit achevé.
Il représente la Death Star flottant majestueusement dans le vide intersidéral. Mais ici, le rendu du vaisseau en question nous interpelle. Cela ne ressemble pas à un sprite possiblement extrait d'un jeu vidéo comme on a pu voir dans certaines participations précédentes, cela ne ressemble pas non plus à une vue d'artiste... cela ressemble plutôt à... un rendu 3D !
Et c'est exact, après le raycasting que nous t'avions sorti en Python lors de notre concours de rentrée 2022, Lephe pousse la barre encore plus haut avec maintenant du raytracing en Python !
Tu peux comparer ci-contre l'image dont il s'est inspiré (en bas à droite) et sa reproduction en raytracing (en haut à gauche).
Mais ne t'attends pas à trouver dans le code ici quoi que ce soit de ressemblant à ce que l'on a vu précédemment pour coder l'image en question. Au contraire, tout est vectoriel, et la taille du script obtenue en conséquence en est à couper le souffle.
Pour donc les images illustrées jusqu'ici, seulement 7,705 Ko de script, avec seulement 218 lignes pour jusqu'à 105 colonnes, le code peut donc être consulté et même modifié sur calculatrice !
Par contre, avec tous les calculs 3D supplémentaires nécessaires les performances en prennent ici un coup. Si le fond étoilé aléatoire est certes affiché après seulement 6 secondes, il faudra attendre jusqu'à 6min 30s pour que l'affichage de la Death Star, progressif de haut en bas, soit achevé.
- Code: Select all
from casioplot import *
import math
import random
WIDTH = 384
HEIGHT = 192
BLACK = (0, 0, 0)
# Vecteurs à 3 dimensions (x,y,z). Ça sert aussi pour les couleurs (r,g,b) !
class Vec3:
def __init__(self, x, y, z):
self.x, self.y, self.z = x, y, z
def __add__(self, u):
return Vec3(self.x + u.x, self.y + u.y, self.z + u.z)
def __sub__(self, u):
return Vec3(self.x - u.x, self.y - u.y, self.z - u.z)
def neg(self):
return Vec3(-self.x, -self.y, -self.z)
# Produit scalaire
def dot(self, u):
return self.x * u.x + self.y * u.y + self.z * u.z
# Produit et division par une constante
def mulf(self, s):
return Vec3(self.x * s, self.y * s, self.z * s)
def divf(self, s):
return Vec3(self.x / s, self.y / s, self.z / s)
# Normalisation
def normalize(self):
return self.divf(math.sqrt(self.dot(self)))
# Conversion vers une couleur (avec saturation au blanc)
def toColor(self):
f = lambda v: 255 if v >= 1 else int(v * 255)
return (f(self.x), f(self.y), f(self.z))
def intersect_ray_sphere(ray_origin, ray_dir, sphere_center, sphere_r):
"""Calcul de l'intersection entre un rayon partant de ray_origin et
voyageant dans la direction ray_dir, et une sphère. Renvoie t1 et t2,
les deux temps auxquels le rayon intersecte la sphère."""
ray_origin -= sphere_center
a = ray_dir.dot(ray_dir)
b = 2 * ray_origin.dot(ray_dir)
c = ray_origin.dot(ray_origin) - sphere_r * sphere_r
delta = b*b - 4*a*c
if delta < 0:
return -1, -1
sqrt_delta = math.sqrt(delta)
t1, t2 = (-b + sqrt_delta) / (2*a), (-b - sqrt_delta) / (2*a)
return min(t1, t2), max(t1, t2)
def sphere_normal(sphere_center, position):
"""Vecteur normal à une sphère à la position donnée."""
return (position - sphere_center).normalize()
ORIGIN = Vec3(0, 0, 0)
# "Field Of View": angle de vue vertical en degrés et en radians
FOV = 60
FOV_RADIANS = FOV * math.pi / 180
# Distance dans l'espace en 3D entre la caméra (à ORIGIN) et le plan qui
# représente l'écran. La distance est choisie pour que l'écran fasse une
# hauteur de 1 unité dans l'espace en 3D.
SCREEN_DISTANCE = 1 / (2 * math.tan(FOV_RADIANS / 2))
### Objet #1: L'étoile de la mort (Death Star, abbrévié "DS") ###
# Centre et rayon de la sphère
DS_CENTER = Vec3(0, 6, -0.2)
DS_RADIUS = 2.4
# Valeurs aléatoire pour le motif à la surface de la sphère
DS_ALEA = [random.randint(0, 255) for _ in range(25)]
# Couleurs
DS_LIGHT = Vec3(0.7, 0.65, 0.5)
DS_DARK = Vec3(0.45, 0.4, 0.3)
DS_SEMILIGHT = (DS_LIGHT + DS_DARK).divf(2)
DS_HIGHLIGHT = (DS_DARK + (DS_LIGHT - DS_DARK).mulf(3))
# Fonction donnant la couleur à la surface de la sphère à la position 3D donnée
def texture_death_star(pos):
# Conversion des coordonnées cartésiennes x/y/z en sphériques. Comme on ne
# regarde qu'un côté de la sphère connaître x/z suffit.
pos = (pos - DS_CENTER).divf(DS_RADIUS)
phi = math.asin(pos.z)
theta = math.asin(pos.x / math.cos(phi))
# Conversion de l'invervalles [-π;π] vers [0:256) pour u et [0:128) pour v
# (symétrique par rapport au milieu de la hauteur)
u = (theta + math.pi / 2) / math.pi * 256
v = abs(phi / math.pi * 256)
# Pixels aléatoires sur la partie sombre mais réguliers en hauteur
surf_light_N = 0
if v <= 0.5:
surf_light_N = 4
elif 4 < v <= 60:
surf_light_N = 4 if (int(v) & 7) == 0 else 64
if surf_light_N and random.randint(0, surf_light_N) == 0:
return DS_HIGHLIGHT if u < 144 else DS_SEMILIGHT
# Bordure au milieu
if v <= 0.5:
return DS_DARK.mulf(0.7)
# Bandes de motifs carrés en surface
if 4 <= v <= 20:
return DS_LIGHT if int(u) in DS_ALEA else DS_DARK
if 23 <= v <= 38:
return DS_LIGHT if (int(u) + 43) & 255 in DS_ALEA else DS_DARK
if 41 <= v <= 60:
return DS_LIGHT if (int(u) + 90) & 255 in DS_ALEA else DS_DARK
return DS_LIGHT
### Object #2: Laser incrusté dans la sphère ###
# Centre et rayon de la sphère qui est extrudée de l'étoile de la mort
LASER_CENTER = DS_CENTER + Vec3(0.28, -1, 0.28).normalize().mulf(3.48)
LASER_RADIUS = 1.2
# Même affaire que pour texture_death_star()
def texture_laser(pos):
pos = (pos - LASER_CENTER).divf(LASER_RADIUS)
phi = math.asin(pos.z)
theta = math.asin(pos.x / math.cos(phi))
# Conversion des invervalles [-π;π] vers [-1:1] en se restreignant à la
# partie visible
u = (theta + math.pi / 2) / math.pi * 8.533 - 3.533
v = (phi + math.pi / 2) / math.pi * 8.533 - 3.533
LIGHT = Vec3(0.7, 0.7, 0.50)
DARK = Vec3(0.3, 0.3, 0.24)
SEMILIGHT = (DARK + (LIGHT - DARK).mulf(2))
r = math.sqrt(u*u + v*v)
if 0.80 <= r <= 0.85:
return DARK
if r <= 0.25:
return SEMILIGHT
return LIGHT
### Source de lumière #1 (lumière ambiente) ###
# Intensité de l'illumination
AMBIENT_LIGHT = 0.05
### Souce de lumière #2 (lumière directionnelle): le Soleil ###
# Direction des rayons et intensité de l'illumination
SUN_DIRECTION = Vec3(-1, -0.22, -0.1).normalize()
SUN_INTENSITY = 4.5
### Source de lumière #3 (lumière ponctuelle) ###
# "Front light": Position de la source et intensité de l'illumination
FLIGHT_POSITION = Vec3(-1.5, 2.5, 0)
FLIGHT_INTENSITY = 0.15
### Dessin ###
# Fond noir
for y in range(HEIGHT):
for x in range(WIDTH):
set_pixel(x, y, BLACK)
show_screen()
# Étoiles aléatoires
for step in range(10):
for _ in range(400):
intensity = random.randint(0, 95)
color = (intensity, intensity, intensity)
x = random.randint(0, WIDTH-1)
y = random.randint(0, HEIGHT-1)
set_pixel(x, y, color)
show_screen()
# Lancer de rayon pour tous les pixels
for y in range(HEIGHT):
for x in range(WIDTH):
# Direction du rayon partant de ORIGIN et intersectant l'écran au
# niveau du pixel (x, y)
ray_dir = Vec3((x - WIDTH / 2) / HEIGHT,
SCREEN_DISTANCE,
(HEIGHT / 2 - y * 1.05) / HEIGHT).normalize()
# Si le rayon n'intersecte pas l'étoile de la mort, on passe
t1_ds, t2_ds = intersect_ray_sphere(ORIGIN, ray_dir, DS_CENTER, DS_RADIUS)
if t1_ds < 0:
continue
# Point de collision, normale à la sphère en ce point, et texture
collision = ORIGIN + ray_dir.mulf(t1_ds)
normal = sphere_normal(DS_CENTER, collision)
texture = texture_death_star
# Si on touche le laser, on utilise les infos de collision du laser
t1_laser, t2_laser = intersect_ray_sphere(ORIGIN, ray_dir, LASER_CENTER, LASER_RADIUS)
if 0 <= t1_laser <= t1_ds <= t2_laser:
collision = ORIGIN + ray_dir.mulf(t2_laser)
normal = sphere_normal(LASER_CENTER + (LASER_CENTER - DS_CENTER).mulf(0.3), collision).neg()
texture = texture_laser
# Calcul de l'illumination du point de collision:
# Lumière ambiante
light_level = AMBIENT_LIGHT
# Lumière provenant du Soleil
light_level += max(-normal.dot(SUN_DIRECTION) * SUN_INTENSITY, 0)
# Lumière provenant de la source ponctuelle sur la gauche
FLIGHT_DIRECTION = (collision - FLIGHT_POSITION).normalize()
light_level += max(-normal.dot(FLIGHT_DIRECTION) * FLIGHT_INTENSITY, 0)
# Couleur finale du pixel: couleur donnée par la texture, multipliée
# par le niveau d'illumination
color = texture(collision).mulf(light_level)
set_pixel(x, y, color.toColor())
show_screen()
J'ai moi-même, juste pour le plaisir et au nom de toute la communauté TI-Planet, envoyé également une participation hors concours que j'ai nommée Escape Out of Dagobah, et au justement le plaisir de la retrouver elle aussi épinglée sur la page des gagnants !
J'adapte pour ma part à nouveau une scène du film-épisode 5 L'Empire contre-attaque, cette fois-ci celle où Luke tente d'arracher son vaisseau X-Wing aux marais de la planète Dagobah.
J'utilise la bibliothèque graphique casioplot. Record de longueur, le code fait ici 124,724 Ko avec pas moins de 814 lignes, bien évidemment non visualisable ou modifiable sur calculatrice.
Sauf que ce n'est pas un simple dessin, je commence par animer un dialogue entre Luke et Yoda que tu fais progresser avec la touche
L'affichage se compose de différents éléments : fond d'écran, surface du marais, partie immergée sous la surface du marais, Luke, Yoda, leurs deux plateformes flottantes et le X-Wing. La fonction d'affichage a été optimisée pour ne redessiner que les seuls pixels inclus dans un rectangle dont les coordonnées sont à lui communiquer. Pour optimiser les performances il suffit ainsi d'encadrer le ou les changements visuels à chaque rafraichissement de l'écran par un rectangle le plus petit possible.
Et encore mieux qu'une animation, c'est un véritable jeu vidéo qui démarre après cette cinématique. Ton but est donc ici d'extraire ton X-Wing des profondeurs de Dagobah afin de pouvoir vite partir sauver tes amis.
Les contrôles au clavier sont extrêmement simples, le jeu se jouant avec une seule et unique touche,
À toi de tenir compte des variations automatiques de la jauge alors affichée en haut d'écran, t'indiquant si la Force est plus ou moins avec toi. La touche
Merci Casio !
J'adapte pour ma part à nouveau une scène du film-épisode 5 L'Empire contre-attaque, cette fois-ci celle où Luke tente d'arracher son vaisseau X-Wing aux marais de la planète Dagobah.
J'utilise la bibliothèque graphique casioplot. Record de longueur, le code fait ici 124,724 Ko avec pas moins de 814 lignes, bien évidemment non visualisable ou modifiable sur calculatrice.
Sauf que ce n'est pas un simple dessin, je commence par animer un dialogue entre Luke et Yoda que tu fais progresser avec la touche
AC:
L'affichage se compose de différents éléments : fond d'écran, surface du marais, partie immergée sous la surface du marais, Luke, Yoda, leurs deux plateformes flottantes et le X-Wing. La fonction d'affichage a été optimisée pour ne redessiner que les seuls pixels inclus dans un rectangle dont les coordonnées sont à lui communiquer. Pour optimiser les performances il suffit ainsi d'encadrer le ou les changements visuels à chaque rafraichissement de l'écran par un rectangle le plus petit possible.
Et encore mieux qu'une animation, c'est un véritable jeu vidéo qui démarre après cette cinématique. Ton but est donc ici d'extraire ton X-Wing des profondeurs de Dagobah afin de pouvoir vite partir sauver tes amis.
Les contrôles au clavier sont extrêmement simples, le jeu se jouant avec une seule et unique touche,
AC(touche ACtion, c'est facile à retenir).
À toi de tenir compte des variations automatiques de la jauge alors affichée en haut d'écran, t'indiquant si la Force est plus ou moins avec toi. La touche
ACte permet ici d'invoquer la Force. Appuie aux bons moments afin de faire léviter ton X-Wing le plus possible et l'arracher aux marais de Dagobah !
- Code: Select all
#########################
# Escape Out of Dagobah #
#########################
# un jeu Python pour Graph 90+E / fx-CG50
from casioplot import set_pixel, show_screen, get_pixel, draw_string
from math import sqrt, floor, ceil, cos, pi, sin, log10
from random import random, randint, seed
#-------
# IMAGES
#-------
# images converties sur https://tiplanet.org/forum/img2calc.php
S_L, S_H, S_BITS, S_ITRANSP, S_RLE, S_PALETTE, S_ZOOM, S_X, S_Y = tuple(range(9))
I_LUKE, I_XWING, I_YODA, I_PF_P, I_PF_G, I_AP = tuple(range(6))
SPRITES = (
# Luke Skywalker - d'apres https://www.reddit.com/r/PixelArt/comments/9dd75i/oc_luke_skywalker_i_did_on_my_latest_stream_join/
[19,58,7,0,
(b"\x80\v\x81\3\x82\1\x80\4",
b"\x80\n\x82\1\x83\1\x84\1\x82\1\x85\2\x80\3",
b"\x80\t\x81\1\x86\1\x82\1\x84\2\x81\1\x82\1\x80\3",
b"\x80\t\x84\1\x87\1\x88\1\x89\1\x81\1\x8a\1\x86\1\x82\1\x80\2",
b"\x80\t\x81\1\x8a\1\x8b\1\x89\2\x8c\1\x88\1\x84\1\x80\2",
b"\x80\t\x81\1\x8a\1\x89\3\x8d\1\x8a\1\x84\1\x80\2",
b"\x80\b\x85\1\x86\1\x8a\1\x88\1\x89\2\x8a\1\x87\1\x80\3",
b"\x80\n\x8e\1\x8f\1\x88\2\x90\1\x86\1\x84\1\x80\2",
b"\x80\a\x91\1\x92\1\x86\1\x84\1\x8f\1\x93\3\x80\4",
b"\x80\5\x94\1\x91\1\x95\2\x92\1\x96\1\x8f\1\x97\1\x93\2\x98\1\x80\1\x89\2",
b"\x80\3\x99\1\x94\1\x9a\1\x91\1\x9a\2\x95\1\x92\1\x97\1\x8f\1\x93\1\x9b\1\x9c\1\x8d\1\x89\2",
b"\x80\2\x99\1\x9d\1\x9a\1\x95\1\x94\2\x95\3\x91\1\x93\1\x8a\1\x8d\1\x89\1\x8a\1\x89\1\x8a\1",
b"\x80\1\x94\1\x9d\1\x9a\1\x95\1\x9a\1\x9d\1\x9a\1\x9e\1\x94\1\x96\1\x8a\3\x89\2\x8f\3",
b"\x80\1\x9f\1\x9d\1\xa0\1\x9a\1\xa0\1\x9a\1\x94\1\x9a\2\xa1\1\x8f\2\x90\1\x88\1\x89\1\x8f\2\x80\1",
b"\x80\1\x9f\1\x9d\1\x9a\3\x94\1\x9a\2\xa2\1\xa3\1\xa4\1\xa5\1\x9a\1\x9d\2\x8f\2\x80\1",
b"\x80\2\x9e\1\x9a\3\x9f\1\x9a\1\xa6\1\xa7\1\xa8\1\xa9\1\x94\1\x9a\2\xa2\1\x97\1\xaa\1\x80\1",
b"\x80\2\xab\1\xa2\2\xac\1\xa2\2\xa5\1\xa3\1\xa9\1\x94\1\x9a\1\x9d\1\x91\1\xa2\1\xad\1\xa5\1\xa2\1",
b"\x80\3\xa2\2\xac\1\xa1\1\xa2\1\xa4\1\xa9\2\x9a\3\xa2\2\xa4\1\xa8\1\xa2\1",
b"\x80\4\xa2\1\xac\1\xae\1\xa8\1\xa9\2\x9a\2\x9d\1\x92\1\xa2\1\xae\1\xa8\1\xa5\1\xa2\1",
b"\x80\4\xa2\2\xac\1\xa9\2\xaf\1\x9a\2\x9d\1\xa2\2\xb0\1\xb1\1\xa5\1\xa2\1",
b"\x80\3\x99\1\x9a\2\xa2\1\xa9\1\xb2\1\x91\1\x9a\2\xa1\1\xa2\2\xb0\1\xb3\1\xb2\1\xa1\1",
b"\x80\3\x9f\1\x9a\3\xb0\1\x91\1\x92\1\x91\2\xb4\1\xa2\2\xac\1\xa1\1\xa2\1\xab\1",
b"\x80\3\x9f\1\xb5\1\x9a\2\x91\1\xac\1\xb4\1\xac\1\xb0\1\xb4\1\xae\1\xa6\4\x80\1",
b"\x80\2\x99\1\xb6\2\x98\2\x91\2\xb7\1\xb8\1\xac\1\xb4\2\x80\5",
b"\x80\2\xb9\1\xba\2\xbb\1\xbc\3\xb7\2\xb3\1\xbd\1\xb0\1\x80\5",
b"\x80\2\xbb\1\xbe\1\xbf\1\xc0\4\xb7\2\xc1\1\xc2\1\xb9\1\x80\5",
b"\x80\2\xc0\2\xc3\1\xc4\1\xc5\2\xc6\1\xc7\2\xc8\1\xc0\1\xc2\1\xb3\1\x80\4",
b"\x80\1\x9f\1\x9a\5\xc4\1\xc6\2\xb4\1\xa1\1\xa2\1\xc9\1\xca\1\x80\4",
b"\x80\1\x94\1\xcb\1\xcc\4\x9a\1\xb0\1\xb4\1\xb0\1\xa1\1\xa2\1\xc0\1\xbe\1\x80\4",
b"\x9f\1\xab\1\xcd\2\xce\3\xcf\1\xd0\1\xb4\2\xc3\1\xa1\1\xac\1\x80\5",
b"\xab\1\xb9\1\xd1\1\xd2\1\xce\4\xd3\1\xd4\1\xb4\1\xac\1\xa2\2\x80\5",
b"\xd5\1\xa3\1\xd6\1\xd7\1\xd8\1\xce\3\xd9\1\xda\1\xd4\2\xc3\1\xbd\1\xdb\1\x80\4",
b"\x80\2\xdc\1\xce\1\xd3\1\xce\4\xd2\1\xdd\2\xde\1\x80\6",
b"\x80\3\xce\1\xd8\1\xdf\1\xce\3\xd2\1\xdd\2\xe0\1\x80\6",
b"\x80\4\xd1\1\xd2\1\xce\3\xe1\1\xd2\1\xdd\1\xe0\1\xd4\1\x80\5",
b"\x80\4\xce\1\xe1\1\xd7\1\xce\3\xd2\1\xdd\3\x80\5",
b"\x80\5\xce\1\xd2\1\xce\3\xd2\1\xdd\3\x80\5",
b"\x80\5\xce\1\xe2\1\xda\1\xce\2\xe1\1\xda\1\xdd\2\xd4\1\x80\4",
b"\x80\6\xce\1\xd3\1\xce\3\xd2\1\xd9\1\xdd\2\x80\4",
b"\x80\6\xce\1\xe3\1\xce\2\xdf\1\xe4\1\xdd\3\x80\4",
b"\x80\a\xe3\1\xe5\2\xe6\1\xe7\1\xd9\1\xe7\1\x80\5",
b"\x80\a\xe8\1\xe9\1\xea\2\xeb\1\xec\1\xeb\1\x80\5",
b"\x80\a\xe8\1\xed\3\xee\1\xef\1\xec\1\x80\5",
b"\x80\6\xf0\1\xea\1\xe9\2\xf1\1\xeb\1\xee\1\xeb\1\x80\5",
b"\x80\6\xea\4\xee\1\xf2\1\xef\1\x80\6",
b"\x80\6\xed\1\xf3\3\xee\1\xf2\1\xef\1\x80\6",
b"\x80\5\xea\1\xf4\1\xea\1\xe9\1\xf5\1\xee\1\xec\1\x80\a",
b"\x80\6\xf6\1\xe5\2\xee\2\xeb\1\xf2\1\x80\6",
b"\x80\5\xf5\1\xf0\1\xea\1\xdf\1\xee\1\xf2\1\xef\1\x80\a",
b"\x80\5\xf6\1\xf3\1\xed\1\xec\1\xeb\1\xee\1\x80\b",
b"\x80\5\xea\3\xf7\1\xf2\1\xec\1\x80\b",
b"\x80\4\xf6\1\xed\1\xf3\1\xf8\1\xf9\2\xf7\1\xf9\1\xfa\1\x80\6",
b"\x80\5\xea\3\xf9\6\xfa\1\x80\4",
b"\x80\5\xea\2\xe5\1\xfb\6\xf9\1\x80\4",
b"\x80\4\xe5\1\xed\1\xe5\1\xfc\1\x80\v",
b"\x80\4\xea\2\xfc\1\xf1\2\xfa\1\x80\t",
b"\x80\4\xf5\1\xfc\1\xf5\1\xf1\1\xfc\3\xfd\1\x80\a",
b"\x80\5\xfe\6\xf9\1\x80\a",),
((0, 0, 0), (154, 121, 93), (152, 124, 87), (124, 96, 85), (126, 96, 80), (156, 122, 86), (122, 99, 80), (119, 98, 85), (247, 191, 140), (250, 207, 152), (251, 188, 140), (194, 145, 114), (175, 121, 94), (253, 203, 152), (120, 102, 76), (232, 165, 120), (229, 168, 121), (220, 216, 195), (225, 214, 195), (219, 140, 102), (234, 231, 210), (248, 244, 222), (252, 241, 225), (235, 160, 119), (217, 215, 200), (231, 229, 214), (255, 252, 230), (247, 238, 224), (249, 192, 135), (251, 255, 231), (241, 229, 210), (237, 228, 215), (255, 252, 224), (211, 200, 181), (207, 203, 182), (38, 39, 32), (44, 37, 27), (40, 39, 28), (205, 203, 188), (51, 45, 35), (43, 37, 32), (86, 78, 67), (131, 87, 60), (206, 197, 184), (188, 175, 151), (139, 83, 60), (209, 203, 176), (86, 79, 68), (182, 176, 150), (42, 40, 24), (84, 81, 64), (90, 81, 65), (186, 178, 146), (246, 244, 229), (64, 61, 54), (105, 91, 76), (107, 90, 70), (53, 51, 44), (62, 61, 59), (26, 28, 26), (51, 47, 46), (178, 173, 155), (1, 4, 0), (32, 31, 20), (7, 0, 0), (102, 86, 66), (30, 31, 26), (205, 194, 167), (203, 199, 179), (148, 139, 115), (164, 150, 127), (71, 56, 37), (39, 27, 13), (3, 0, 5), (95, 88, 82), (254, 253, 217), (254, 255, 226), (203, 165, 124), (215, 181, 137), (229, 213, 176), (204, 188, 152), (212, 181, 143), (193, 158, 97), (197, 156, 97), (195, 174, 138), (102, 104, 102), (217, 179, 143), (200, 165, 117), (213, 179, 129), (209, 169, 122), (197, 164, 109), (240, 239, 223), (252, 250, 234), (204, 171, 122), (206, 171, 128), (192, 157, 109), (201, 174, 122), (217, 184, 133), (218, 183, 127), (196, 156, 103), (204, 170, 115), (169, 136, 76), (171, 137, 71), (175, 143, 89), (174, 130, 77), (193, 156, 115), (188, 156, 114), (122, 87, 16), (141, 103, 34), (166, 135, 81), (126, 85, 17), (141, 105, 27), (183, 159, 114), (159, 122, 58), (138, 106, 36), (171, 133, 81), (190, 154, 119), (155, 122, 48), (172, 133, 75), (106, 73, 8), (168, 134, 62), (103, 75, 8), (182, 162, 126), (57, 6, 10), (160, 121, 51), (186, 158, 126), (65, 6, 10))
],
# X-Wing d'apres https://www.pngwing.com/en/free-png-prwig/download
[66,30,3,0,
(b"\x80\1)\xd0\2\31",
b"h\31\32\23\31\xa8\2\21\22\t",
b"P\31\32\33\21\v\22\31@\218\31h\t\32\v\t",
b"8\31\32\31\n$*\f\31 \t\22\t(\t\22\v\t89\n\23\t",
b"\b1\32\31\30\t\22\34\22$\22!\n\v\22)\32\2392\t\n\v\t\b",
b"\t\22\t\32\318\21\32\f\22\f\22!\22\23\t\23\22\23\t\n\v\t\23\n\24\32$\n\t\n\23\t\b",
b"\t\32\31`\t2\31\22\21\v\21\23\n\t\23\t\n\23\21\v\24\22\24\n\34\n\t\23\t\20",
b'\b\t\n\t\x80\1\21\32\21*\v\t\33\22\33\22\v\21\v\t2\34"\v\t\20',
b"\20\t\x98\1\t\n\21\n\31\n\33\n\31:\v\t\vR\31\n\t\30",
b"\xb8\1\21\n\t\v\t\n\t\23!\32\31\22\23\t21\v\n\t\30",
b"\xc0\1\t\n\21\n\21\23\32\v\n\v\t\n\t\22\33\32) \t\n\t ",
b"\x88\1)\20\t\n\31\22\v\n\v\21\33\21\n\21\x1b1 \31\n\t ",
b"h!\22\33A\v\32\33\t\v\t\v\31\x131 \t\22\23\t ",
b'X\21";\31\23\n\31\n\t\23\21\v\31\v1\v\t \31\v\t(',
b"H\21\32#\31+\21\n\31\n\21\23\t+I \t\n\23\t(",
b"8\21\22\21*\33\22\33\21\n\21\n\21#I\23\t\v\21\30\t\22\v\t(",
b"(\21\22\21\20\31\32A\n\21\n\t\22\33)\v\31\v\21#\21\b!0",
b'\b!\22\218\31\x1012\f\x1b1\v\31#"\21H',
b'\t"\21\x80\1\21:\f\n\23)\v\t\v\t#\n\v\31\v\22\21 \21\b',
b"\t\22\21\x88\1\21:\f\n\239\v\21\23\22\v\31\v*!\22\t",
b"\b\t\n\t\x88\1\t:\24\n\23)\33\21\vR\v\21\v\22\t\v\n\v\t",
b"\b\21\x88\1\t:\24\n\23\t !\20!2\v\21\23\22\t\v\n\v\t",
b"\x98\1\t#\22\34\n\23\tx!B\23\n\23\t",
b'\x90\1\t2\34\n\23\t\xa0\1!"\t\v\n\v\21',
b"\x90\1\t:\f\n\23\t\xc8\1!\v\22\v\21",
b"\x88\1\t\v:\33\t\xf0\1\t\22\31",
b'\x88\1\t\33"\33\t\xf8\1\t\n!',
b"\x88\1\tC\21\xf8\1\t\v\n!",
b"\x90\1\31\33\21\x88\2\t\n)",
b"\xa8\1\31\x98\29",),
((255, 0, 255), (0, 0, 0), (255, 255, 255), (128, 128, 128), (255, 0, 0))
],
# Yoda d'apres https://www.reussiralecole.fr/pixel-art-star-wars/
[31,33,7,0,
(b"\x80\f\x81\6\x80\r",
b"\x80\n\x82\1\x81\1\x83\1\x84\3\x85\1\x84\1\x86\1\x81\1\x80\v",
b"\x80\t\x82\1\x84\1\x87\1\x88\3\x85\1\x84\1\x88\1\x84\1\x89\1\x81\1\x80\3\x8a\1\x80\6",
b"\x80\6\x8a\1\x80\1\x81\1\x85\v\x84\1\x81\1\x8a\2\x80\5\x82\1\x81\1",
b"\x81\4\x80\2\x8a\1\x81\1\x84\2\x85\1\x88\2\x84\1\x85\1\x84\2\x85\1\x84\1\x88\2\x8b\1\x8c\1\x8d\1\x8a\1\x80\1\x81\3\x84\1\x82\1",
b"\x81\1\x84\1\x88\1\x84\1\x8e\1\x81\2\x82\1\x81\1\x8e\1\x84\1\x88\2\x84\1\x82\1\x8f\2\x82\1\x81\1\x84\1\x8b\1\x8d\1\x90\1\x86\1\x82\2\x84\2\x88\1\x83\1\x82\1",
b"\x80\1\x81\1\x88\2\x84\1\x82\1\x84\4\x90\1\x81\2\x90\1\x84\5\x88\1\x8a\1\x91\1\x84\4\x92\2\x83\1\x93\1\x80\1",
b"\x80\2\x94\1\x83\1\x95\1\x96\1\x97\2\x98\1\x84\1\x88\3\x84\1\x98\1\x97\2\x92\1\x98\1\x84\1\x88\1\x84\1\x98\5\x84\1\x99\1\x80\2",
b"\x80\3\x81\1\x9a\1\x9b\1\x80\3\x97\1\x84\1\x88\2\x92\1\x80\3\x9b\1\x9c\1\x9d\1\x88\2\x96\1\x98\1\x96\1\x84\2\x93\1\x80\3",
b"\x80\4\x86\1\x9b\1\x80\3\x9b\1\x9e\1\x88\2\x9b\1\x80\3\x9b\2\x85\1\x88\2\x84\3\x95\1\x81\1\x80\4",
b"\x80\4\x81\1\x85\5\x84\2\x88\1\x9f\1\x85\5\x84\1\x88\1\x84\2\x82\1\x90\1\x80\6",
b"\x80\4\x81\1\x88\3\x84\1\x85\1\x98\1\x97\1\x84\1\x88\1\x9f\1\x84\1\x88\4\x84\1\x81\2\x86\1\x8c\1\x8b\1\x80\5",
b"\x80\4\x81\1\x84\1\x88\2\x85\1\x84\3\x88\3\x85\1\x88\4\x85\2\x87\1\x90\1\x8c\1\x8a\1\x80\5",
b"\x80\5\x94\1\x85\2\x84\1\x80\5\x84\2\x85\5\x87\1\x81\1\x8a\3\x80\5",
b"\x80\6\x81\1\x85\2\x84\5\x88\1\x85\6\x86\1\xa0\1\x80\2\x8a\1\x80\5",
b"\x80\6\xa1\1\x81\1\x85\6\x87\1\x85\5\x81\1\xa2\2\xa3\1\x80\a",
b"\x80\6\xa4\1\xa5\1\xa6\1\x90\1\x85\a\x9f\1\x85\1\xa5\1\xa2\4\xa4\1\x80\6",
b"\x80\6\xa4\1\xa2\3\xa7\1\xa8\1\xa9\4\xaa\1\xa5\1\xa2\2\xab\1\xa2\2\xa5\1\xac\1\x80\6",
b"\x80\5\xa4\1\xa5\1\xad\2\xa2\2\xae\1\xaf\3\xb0\1\xa5\1\xa2\3\xb1\1\xa5\1\xa2\3\xb2\1\x80\5",
b"\x80\5\xa4\1\xa5\1\xa3\1\xb3\2\x86\1\x81\3\xb4\1\xb3\1\xad\2\xa2\1\xad\1\xb2\1\xa5\1\xa2\3\xb2\1\x80\5",
b"\x80\5\xa4\1\xa5\1\xb2\1\x81\2\x84\2\x88\2\x82\1\xa4\1\xb2\1\xb3\1\xad\2\xb5\1\xa5\1\xa2\3\xb6\1\x80\5",
b"\x80\5\xa4\1\xa2\1\xa5\1\x90\1\x9b\1\x84\1\x8e\1\x84\1\x88\1\x81\1\xa5\2\xb5\1\xb2\2\xa2\4\xad\2\xb7\1\x80\4",
b"\x80\4\xb2\1\xa5\1\xa2\2\x81\1\x86\1\x94\1\x81\1\x9b\1\x90\2\xa2\6\xad\1\xa2\2\xad\2\xb7\1\x80\4",
b"\x80\4\xb2\1\xa2\3\x81\1\x87\1\x85\1\xb8\1\x95\1\xb9\1\xa5\1\xa2\1\xba\1\xa2\4\xad\1\xa2\1\xad\3\xb7\1\x80\4",
b"\x80\4\xb2\1\xa2\3\xbb\1\x81\2\xbc\2\xa4\1\xa2\2\xad\3\xa2\2\xad\5\xb7\1\x80\4",
b"\x80\4\xb2\1\xa5\1\xa2\2\xbd\1\xbe\1\xbf\1\xc0\1\xc1\1\xc2\1\xad\n\xb3\1\xc3\1\xa1\1\x80\4",
b"\x80\4\xb2\1\xad\1\xa2\2\xc4\1\xbe\2\xc5\1\xbc\1\xc2\1\xb3\1\xad\b\xb3\1\xb2\1\xb3\1\xb7\1\x80\4",
b"\x80\4\xb2\1\xad\2\xa2\1\xa5\1\xbb\1\xc6\2\xc7\1\xbc\1\xc8\1\xad\6\xb3\1\xa4\1\xb2\1\xb3\1\xad\1\xb7\1\x80\4",
b"\x80\5\xa4\1\xad\1\xa2\2\xc9\1\xc6\2\xca\1\xbc\1\xcb\1\xad\4\xb3\1\xb2\2\xad\4\xb7\1\x80\4",
b"\x80\5\xa0\1\xad\1\xa2\1\xad\1\xb3\1\xcc\1\xcd\1\xca\1\xbc\1\xcb\1\xb3\2\xa4\1\xa0\1\xa4\1\xb3\4\xad\2\xb7\1\x80\4",
b"\x80\5\xa0\1\xad\1\xb3\1\xce\1\x96\1\xcf\1\xd0\1\xd1\1\xbc\1\xc2\1\xb2\1\xd2\1\xd3\1\x92\1\x96\1\x98\1\x96\2\x92\1\xb3\1\xad\1\xb7\1\x80\4",
b"\x80\5\xa0\1\xb3\1\xce\1\x83\1\xd4\1\x83\1\xd5\1\x96\1\xd6\1\xd1\1\xb3\2\xce\1\x84\1\x98\1\x84\1\x83\1\x92\1\x83\1\x92\1\xd3\1\xb7\1\x80\4",
b"\x80\6\xa0\1\x81\6\xd1\1\xd7\1\xa1\2\x81\4\x82\1\x81\3\xa0\1\x80\5",),
((0, 0, 0), (74, 116, 0), (79, 114, 0), (192, 220, 53), (191, 219, 51), (136, 167, 0), (71, 114, 5), (137, 168, 0), (190, 218, 50), (141, 165, 0), (151, 153, 150), (150, 152, 149), (234, 237, 233), (235, 238, 234), (76, 112, 5), (78, 114, 8), (70, 113, 4), (68, 111, 1), (63, 100, 1), (69, 112, 2), (77, 113, 6), (75, 111, 3), (67, 103, 0), (65, 102, 4), (64, 101, 3), (80, 110, 4), (66, 116, 0), (255, 255, 255), (67, 97, 0), (72, 101, 0), (191, 219, 39), (134, 165, 0), (129, 98, 26), (130, 99, 27), (244, 240, 218), (123, 98, 14), (128, 97, 25), (245, 241, 219), (67, 110, 0), (127, 60, 27), (135, 67, 33), (132, 65, 37), (132, 64, 24), (249, 238, 218), (131, 99, 18), (224, 211, 186), (133, 65, 32), (135, 67, 39), (131, 63, 30), (126, 95, 13), (127, 96, 24), (225, 212, 187), (138, 64, 34), (127, 96, 15), (124, 99, 15), (128, 97, 33), (75, 117, 0), (129, 98, 34), (223, 210, 185), (125, 107, 45), (191, 83, 46), (124, 106, 44), (192, 173, 119), (87, 38, 18), (193, 79, 45), (194, 80, 46), (126, 101, 27), (124, 94, 11), (126, 102, 42), (83, 40, 17), (191, 172, 118), (88, 38, 19), (124, 99, 25), (126, 103, 49), (89, 39, 19), (125, 100, 26), (128, 104, 44), (192, 174, 126), (62, 99, 0), (127, 104, 50), (129, 106, 52), (90, 40, 20), (128, 97, 16), (226, 213, 188), (66, 103, 5), (58, 102, 2), (91, 41, 21), (87, 44, 21))
],
# petite plateforme d'apres https://gameartpartners.com/downloads/swamp-game-background/
[59,19,7,0,
(b"\x80\b\x81\n\x80\b\x81\16\x80\2\x81\f\x80\5",
b"\x80\a\x81\1\x82\1\x83\1\x82\4\x84\1\x85\1\x86\1\x87\1\x81\b\x86\1\x88\2\x89\1\x82\1\x88\1\x82\1\x88\1\x82\4\x8a\1\x8b\1\x81\2\x8b\1\x8c\1\x82\1\x88\3\x82\2\x88\1\x8a\1\x84\1\x8d\1\x81\2\x80\3",
b"\x80\5\x81\2\x82\4\x88\6\x82\3\x88\3\x82\1\x88\1\x82\1\x88\1\x82\1\x88\f\x82\1\x88\5\x82\3\x88\1\x82\3\x88\3\x81\1\x80\2",
b"\x80\3\x81\2\x8e\1\x8f\1\x88\a\x8a\1\x88\1\x90\1\x88(\x81\1\x80\1",
b"\x80\1\x81\2\x88\3\x82\1\x88\a\x82\1\x88)\x82\1\x88\1\x81\1",
b"\x81\1\x87\1\x82\1\x90\1\x88\n\x8e\1\x88\1\x82\1\x88(\x82\1\x81\1",
b"\x81\1\x91\1\x83\1\x82\1\x88\2\x82\1\x88\1\x82\3\x88\3\x82\1\x92\1\x82\1\x88\4\x82\1\x88\1\x82\1\x88\1\x82\4\x88\2\x82\5\x88\4\x82\2\x84\1\x88\1\x82\4\x88\2\x82\1\x88\2\x82\1\x88\3\x93\1\x80\1",
b"\x80\1\x81\1\x94\1\x88\a\x95\1\x94\2\x96\1\x94\1\x97\1\x98\1\x99\1\x9a\1\x8a\1\x8f\1\x88\1\x82\1\x88\1\x9b\2\x95\1\x8e\2\x9c\1\x9d\1\x99\1\x82\1\x88\2\x84\1\x94\2\x96\1\x94\1\x9e\1\x9f\1\x88\4\x8e\1\x88\2\x82\1\x88\3\x82\1\x88\2\x99\1\x80\2",
b"\x80\2\xa0\1\xa1\1\x82\2\x88\2\x8a\1\x96\1\x97\1\xa2\1\x96\2\xa2\1\x96\1\x98\1\xa2\1\x96\1\xa2\1\xa0\1\x88\1\x82\1\xa3\1\xa4\b\xa5\1\x9a\1\x88\1\xa2\1\x96\4\x92\1\xa6\1\xa2\1\xa7\2\xa0\1\xa2\1\x96\1\xa8\1\x95\1\x88\1\x82\1\x88\1\x82\1\x88\1\x90\1\x88\1\x80\2",
b"\x80\3\xa9\2\xaa\3\xa9\a\xaa\1\xab\1\xaa\3\xac\1\xad\1\xae\r\xa9\1\xaa\1\xa9\1\xaa\2\x92\1\x98\1\xa9\1\xaa\1\xa9\a\xaa\2\xa9\1\xab\1\xaf\1\xaa\1\x80\2",
b"\x80\5\xb0\2\xb1\1\xb0\b\xb2\1\xb0\3\xb1\1\xb3\1\xb4\n\xb3\1\xb4\1\xb5\1\xb0\5\xb1\2\xb0\v\xb1\1\xaf\1\xb1\1\x80\3",
b"\x80\6\xb1\n\xab\1\xb1\4\xb6\1\xb7\1\xb3\n\xb6\1\xb1\5\xb8\1\xb9\2\xb1\f\xaf\1\xb8\1\x80\3",
b"\x80\6\xba\1\xbb\16\xbc\f\xab\1\xbb\a\xb9\1\xbb\v\x9f\1\xbb\2\x80\3",
b"\x80\6\xbd\n\xbe\3\xbd\1\xbe\1\xbf\1\xc0\1\xc1\n\xbd\1\xbe\1\xbd\4\xbe\1\xbd\1\xbe\2\xbd\v\xc2\1\x80\4",
b"\x80\a\xc3\20\xc1\n\xc3\24\xc4\1\x80\5",
b"\x80\b\xc5\1\xc6\1\xc5\2\xc6\1\xc5\1\xc6\2\xc5\1\xc6\1\xc5\1\xc6\1\xc5\1\xc6\1\xc5\1\xc7\3\xc8\1\xc7\5\xc5\4\xc6\1\xc5\2\xc6\4\xc5\a\xc9\1\xc5\1\x80\a",
b"\x80\n\xca\1\xcb\1\xcc\5\xcb\1\xcd\1\xce\1\xcc\1\xca\1\xcb\1\xcf\1\xd0\1\xd1\1\x80\4\xd2\1\xcf\1\xcc\6\xca\1\xcc\1\xcb\1\xcc\t\x80\t",
b"\x80\v\xcd\1\xd3\1\xca\1\xcd\1\xd4\1\xca\1\x80\4\xd5\1\xd6\1\xd0\1\x80\b\xcd\1\xd3\1\xd4\1\xd5\1\x80\1\xcd\1\xd4\1\xd3\1\x80\2\xd4\1\xcd\1\xca\3\xd4\1\xca\1\x80\n",
b"\x80\f\xd7\2\x80\23\xd7\1\x80\v\xd8\1\xd7\1\x80\f",),
((255, 0, 255), (0, 0, 0), (66, 146, 8), (66, 146, 0), (66, 138, 8), (66, 134, 8), (66, 130, 16), (66, 121, 16), (58, 146, 8), (66, 142, 0), (66, 142, 8), (74, 125, 25), (66, 134, 16), (66, 125, 16), (74, 125, 16), (58, 146, 0), (58, 142, 8), (82, 113, 25), (99, 61, 41), (107, 73, 33), (115, 77, 41), (74, 130, 16), (115, 73, 41), (107, 69, 41), (90, 53, 41), (82, 121, 16), (74, 134, 16), (74, 134, 8), (74, 121, 16), (74, 117, 16), (99, 61, 33), (90, 57, 33), (115, 69, 41), (107, 81, 41), (107, 73, 41), (99, 85, 25), (107, 61, 33), (107, 61, 25), (90, 53, 33), (82, 113, 16), (99, 89, 33), (107, 65, 41), (107, 65, 49), (90, 49, 41), (99, 77, 41), (99, 73, 33), (107, 57, 33), (82, 49, 41), (99, 61, 49), (99, 57, 49), (82, 45, 41), (99, 49, 33), (99, 53, 33), (99, 53, 41), (90, 49, 33), (99, 49, 41), (99, 53, 49), (90, 53, 49), (99, 49, 49), (90, 49, 49), (90, 45, 41), (90, 45, 58), (82, 45, 58), (82, 45, 49), (90, 40, 49), (82, 40, 41), (74, 49, 49), (82, 40, 58), (58, 45, 41), (82, 36, 58), (74, 36, 58), (74, 36, 41), (82, 36, 41), (82, 36, 66), (74, 28, 66), (74, 32, 66), (74, 32, 58), (74, 28, 58), (58, 32, 49), (74, 36, 49), (74, 32, 49), (74, 32, 41), (66, 36, 41), (74, 24, 66), (66, 28, 66), (66, 28, 58), (74, 24, 58), (66, 24, 66), (66, 20, 66))
],
# grande plateforme d'apres https://gameartpartners.com/downloads/swamp-game-background/
[104,28,7,0,
(b"\x80\4\x81\2\x80b",
b"\x80\3\x81\1\x82\1\x83\1\x81\n\x80X",
b"\x80\1\x81\2\x84\1\x85\1\x84\3\x86\2\x84\5\x87\1\x81\3\x80D\x81\r\x80\4",
b"\x81\1\x86\1\x85\2\x84\17\x81\3\x80\3\x81\2\x807\x81\5\x84\1\x88\1\x89\1\x8a\1\x84\t\x81\2\x80\2",
b"\x8b\1\x85\1\x84\2\x85\1\x84\r\x8c\1\x86\1\x85\1\x86\1\x81\1\x80\1\x81\1\x84\2\x81\2\x804\x81\1\x85\1\x86\1\x84\2\x86\1\x84\1\x85\1\x84\v\x85\1\x84\1\x81\1\x80\1",
b"\x80\1\x8d\1\x8e\1\x86\2\x85\1\x84\f\x85\1\x86\2\x84\1\x8f\1\x81\1\x85\1\x84\1\x85\2\x90\1\x81\3\x80\23\x81\5\x80\24\x81\5\x84\1\x85\1\x84\1\x85\2\x84\1\x86\1\x85\1\x86\1\x84\1\x8c\1\x84\a\x85\2\x86\1\x8c\1\x81\1",
b"\x80\1\x91\1\x92\1\x93\1\x85\2\x84\1\x8c\1\x85\1\x84\r\x85\1\x84\b\x94\1\x81\23\x8c\1\x95\1\x96\1\x95\1\x8a\1\x81\24\x97\1\x90\1\x8a\1\x84\1\x86\1\x84\17\x85\1\x84\4\x98\1\x91\1\x80\1",
b"\x80\2\x99\1\x91\1\x93\1\x9a\1\x85\2\x84\5\x86\1\x84\b\x8c\1\x84\b\x86\1\x95\4\x96\1\x95\1\x96\3\x95\4\x96\1\x95\2\x96\1\x95\3\x86\1\x95\3\x96\1\x95\1\x96\1\x95\2\x96\1\x95\a\x96\1\x84\3\x85\1\x8c\1\x84\1\x85\2\x84\1\x85\1\x84\20\x85\1\x84\2\x9b\1\x9c\1\x9d\1\x80\2",
b"\x80\3\x9d\1\x91\1\x92\1\x9a\1\x84\1\x94\1\x84\5\x85\1\x84\a\x85\1\x84\a\x85\1\x96\2\x95\4\x96\1\x95\1\x96\1\x95\b\x96\1\x95\1\x96\1\x95\1\x96\3\x95\4\x96\1\x95\3\x96\1\x95\5\x84\v\x86\1\x84\17\x8c\1\x84\1\x9e\1\x92\1\x91\1\x9f\1\x80\2",
b"\x80\4\x9d\1\x91\1\x92\1\xa0\1\x92\1\xa1\1\x85\1\x86\1\x84\1\x8c\1\x86\1\x84\1\x85\1\x84\2\x86\1\x84\2\x85\1\x84\a\x85\1\x95\r\x96\1\x95\25\x96\3\x95\1\x84\3\x85\1\x84\5\x85\1\x84\2\x86\1\x84\5\x86\1\x85\1\x84\1\x85\1\x86\2\xa2\1\x85\1\xa3\1\xa4\1\x91\1\x9d\1\x80\4",
b"\x80\5\xa5\1\x91\1\xa6\1\x92\1\x9a\1\xa1\1\x83\1\x84\2\xa7\1\xa8\1\xa9\1\x84\2\x8f\1\x88\1\x86\1\x84\1\x86\1\x84\a\x95\f\x96\2\x95\25\x96\2\x95\4\x85\2\x8c\1\x84\b\x86\1\x84\3\x8a\1\x84\1\x86\1\x84\1\x86\1\x84\1\x9a\1\xaa\1\xab\1\x91\1\x9d\2\x80\5",
b"\x80\6\xa5\1\xa6\1\x91\1\x9c\1\x9a\2\xa1\1\xac\1\xad\1\xae\1\xaf\2\x88\1\x8a\1\x89\3\x86\1\x84\a\x96\1\x95\n\x84\1\x95\1\x84\1\x95\25\x96\1\x86\1\x95\4\x85\2\x84\5\x85\1\x89\3\xb0\1\x84\2\xb1\1\xb2\1\x9e\1\x84\2\x86\1\x9b\1\xb3\1\x91\1\xb4\1\x9d\1\xb5\1\x80\6",
b"\x80\b\x9d\1\x91\1\x9c\1\x93\1\x8d\1\xa1\1\xb6\1\xae\2\xb7\1\xaf\1\xb8\1\xb9\1\xba\1\x84\1\x86\1\x85\2\x8c\1\xbb\1\xbc\1\x85\1\x84\2\x96\1\x95\1\x96\1\x95\1\x96\1\x95\1\x96\2\x95\2\x96\2\xbd\1\xa9\1\x84\1\xbe\1\x90\1\xbf\1\xc0\1\x95\2\x96\1\x95\2\x96\1\x95\1\x96\2\x95\1\x96\1\x95\1\x96\1\x95\1\x96\1\x95\1\x96\1\xa7\1\xc1\1\xc2\1\x8f\1\xc3\1\x89\3\x84\2\x8c\1\x86\1\x85\1\xba\1\xb8\1\xc4\1\xaf\1\xae\1\xb7\1\xae\1\xb6\1\xa1\1\x8d\1\x93\2\x91\1\x9d\1\xa5\1\xc5\1\x80\a",
b"\x80\n\x9d\1\x91\2\x93\1\xc6\1\xc7\1\xc8\1\xae\1\xb7\1\xc9\1\xca\1\xaf\1\xcb\1\xcc\1\xcd\1\x84\2\x86\1\x89\2\xb0\1\x96\1\x95\1\x96\2\x95\2\xbf\1\xce\1\xba\2\xcf\1\x96\1\x8f\1\x89\1\xd0\1\x89\3\xba\1\x89\1\x96\1\x95\1\xbc\1\xcc\2\xd1\2\xd2\1\x95\2\x84\1\xba\1\x89\1\xba\2\x89\1\xba\1\x89\1\xd3\1\xba\1\x89\3\xd4\1\x86\1\x8c\1\x86\1\xd5\1\xd6\1\xaf\1\xd7\1\xca\1\xd8\1\xae\1\xc8\2\xc7\1\x9a\1\x93\1\x9c\1\x91\1\x9d\1\xa5\1\xb5\1\x80\t",
b"\x80\v\x9d\1\x91\1\x92\1\xa0\1\xc7\2\xc8\1\xb6\1\xd9\1\xd7\1\xaf\2\xda\1\xd1\2\xdb\1\xdc\1\xb9\1\xba\1\x89\1\xba\3\x90\1\xdd\1\xba\4\xb9\1\xba\3\xde\1\xd0\1\xba\5\xd5\1\xda\1\xdf\1\xd6\2\xda\1\xd6\1\xcb\1\xe0\1\x96\1\x95\1\xe1\1\xba\4\xb9\1\xba\1\xd0\1\xba\2\x89\3\xcc\1\xcd\1\xd1\1\xcb\1\xda\1\xaf\1\xb7\1\xd9\1\xad\1\xc7\1\xc8\1\xc6\1\xa0\1\x93\1\x91\1\x9d\1\x99\1\x80\f",
b"\x80\r\xe2\1\xa0\2\xe3\1\xc7\1\xa1\1\xad\1\xae\1\xb7\2\xaf\1\xda\2\xcc\2\xe4\1\x89\2\xb8\16\xe5\1\xb8\5\xda\1\xaf\1\xda\1\xaf\a\x95\1\x96\1\xb9\1\xb8\1\xca\1\xb8\3\xe5\1\xb8\1\x89\4\xcc\1\xda\2\xaf\1\xb7\2\xae\1\xe6\1\xa1\1\x9a\1\xc7\1\xc6\1\xa0\1\xa6\1\x80\17",
b"\x80\16\xe7\1\xa0\1\xe8\1\xb3\1\x8d\1\xc7\1\xe9\1\xae\1\xb7\2\xaf\2\xda\1\xcc\1\xe4\1\x89\3\xc4\v\xca\2\xea\1\xc4\1\xca\1\xc4\3\xaf\t\xeb\1\xaf\1\x95\1\xb8\1\xc4\3\xca\1\xc4\1\xe5\1\xca\2\x89\2\xba\1\xb8\1\xaf\2\xb7\2\xae\1\xc8\1\xc7\1\x9a\1\xb3\1\xa0\2\xe7\1\x80\20",
b"\x80\16\xe7\1\xe2\1\x80\1\xab\1\x93\1\xc7\2\xe9\1\xae\1\xb7\2\xaf\2\xda\1\xcc\1\x89\3\xd8\r\xea\1\xd8\5\xb7\v\xeb\1\x95\1\xc9\1\xd8\3\xc9\1\xec\1\xd8\2\xc4\1\xba\1\xb8\1\xed\1\xeb\1\xb7\2\xae\1\xc8\1\xc7\2\xa0\1\x91\1\xab\1\xa0\1\xee\1\x80\20",
b"\x80\22\xa0\2\xc7\2\xe9\1\xae\1\xb7\3\xaf\1\xc4\1\xba\1\x89\2\xd8\1\xad\f\xef\1\xad\5\xb7\r\xf0\1\xad\b\xb8\1\xca\1\xd8\1\xad\1\xae\1\xe9\1\xf1\1\xc7\1\xef\1\xa0\2\x9d\1\x80\23",
b"\x80\23\xa0\1\xef\2\xc7\1\xf1\2\xb7\3\xc4\1\xb8\2\xba\2\xb6\f\xef\1\xb6\5\xe9\1\xae\v\xe9\1\xe5\1\xad\1\xb6\2\xa1\1\xb6\4\xd8\1\xad\2\xb6\2\xc7\2\xef\1\xa0\1\xf2\1\xf3\1\xa6\1\x80\23",
b"\x80\23\xaa\1\xa0\1\xef\2\xc7\1\xf1\2\xd0\1\xb7\1\xd7\1\xca\1\xc4\1\xb8\1\xba\1\xa1\f\xef\1\xa1\1\xb6\1\xa1\3\xc7\r\x9a\1\xb6\1\xa1\2\x9a\1\xa1\4\xad\2\xa1\1\x9a\2\xc7\1\xef\1\xa0\1\xe7\1\xaa\1\xb4\1\x80\24",
b"\x80\24\x92\1\xef\1\xea\2\xf1\2\xe5\2\xad\2\xca\2\xb8\1\x8d\1\x9a\5\x8d\6\xe7\1\x8d\3\x9a\1\x8d\1\xc7\r\x8d\1\x9a\4\x8d\1\x9a\3\xa1\2\xb3\2\x9c\1\xab\1\xef\1\xe7\1\x80\27",
b"\x80\30\xea\2\xf4\1\xe5\1\xb6\2\xad\1\xd9\1\xca\1\x80\1\x91\1\x93\2\x9c\1\x93\a\xe7\1\x93\1\x9c\1\x93\3\xa0\r\xb3\1\x93\2\x9c\1\xe5\1\xf5\1\xa4\1\x9c\1\x93\1\x8d\1\xf6\1\x92\1\x91\2\x9d\1\x8b\1\x80\30",
b"\x80\34\xf7\1\x80\6\xf8\1\x91\t\xef\1\x91\1\x9c\2\x91\2\xa0\f\xab\1\x91\3\xa4\1\x80\3\xf9\1\x91\2\x92\1\x91\1\x9d\1\xfa\1\x80\32",
b"\x80'\x9d\2\x91\1\x9d\3\xab\1\x9d\5\xa0\6\xf2\2\xa0\1\xf2\2\xa0\1\x9d\2\x91\1\x9d\1\x80%",
b"\x80*\xb5\1\xa5\1\xb5\1\xf3\1\xb5\3\xa5\2\xa6\n\xb4\1\xa6\1\xb5\2\x9d\1\x80&",
b"\x80+\xfb\1\xb5\1\xa5\1\xb5\2\xfc\2\xb4\1\xa6\b\xe7\1\xaa\1\xa6\2\xb5\2\x80'",
b"\x803\xfd\1\xb4\1\xfe\1\xb4\1\x80\a\xb4\1\xff\1\x80(",),
((255, 0, 255), (0, 0, 0), (62, 121, 12), (69, 107, 22), (68, 142, 9), (64, 139, 20), (58, 142, 6), (67, 112, 26), (74, 125, 20), (114, 77, 42), (65, 132, 11), (69, 50, 48), (65, 139, 3), (89, 49, 55), (81, 85, 43), (98, 99, 31), (73, 131, 13), (82, 39, 57), (84, 44, 50), (90, 45, 58), (74, 105, 21), (53, 147, 13), (64, 146, 0), (74, 117, 10), (73, 105, 29), (57, 37, 41), (90, 49, 50), (75, 101, 34), (82, 44, 60), (83, 35, 60), (87, 77, 39), (82, 36, 66), (81, 40, 42), (89, 53, 47), (75, 89, 32), (81, 66, 47), (91, 40, 56), (76, 35, 57), (74, 35, 42), (89, 91, 30), (99, 69, 38), (76, 113, 19), (72, 40, 49), (84, 39, 48), (82, 85, 31), (100, 56, 48), (100, 49, 34), (108, 56, 35), (107, 85, 32), (89, 70, 23), (101, 61, 40), (91, 44, 48), (74, 36, 47), (72, 33, 59), (101, 52, 51), (99, 53, 30), (106, 70, 41), (117, 68, 39), (115, 72, 40), (109, 92, 30), (81, 111, 19), (92, 72, 32), (73, 138, 4), (82, 119, 26), (89, 113, 23), (83, 85, 24), (91, 109, 20), (114, 82, 39), (106, 65, 39), (74, 28, 58), (92, 39, 41), (92, 44, 43), (88, 45, 33), (99, 66, 47), (106, 66, 50), (108, 60, 25), (115, 66, 31), (99, 94, 28), (107, 81, 42), (106, 90, 34), (92, 53, 32), (115, 66, 24), (97, 81, 26), (90, 57, 34), (115, 82, 33), (99, 88, 24), (115, 62, 35), (107, 61, 42), (107, 61, 48), (99, 61, 50), (107, 60, 31), (88, 106, 25), (106, 69, 22), (100, 89, 32), (116, 73, 46), (115, 61, 22), (107, 65, 33), (106, 85, 38), (67, 37, 40), (89, 40, 30), (116, 72, 34), (90, 53, 42), (98, 53, 40), (74, 40, 39), (82, 40, 33), (91, 48, 35), (80, 50, 42), (98, 58, 32), (90, 57, 40), (109, 68, 46), (74, 45, 42), (81, 45, 40), (99, 65, 41), (91, 48, 40), (82, 36, 41), (80, 37, 50), (84, 52, 40), (76, 53, 47), (84, 49, 48), (68, 81, 48), (68, 73, 59), (73, 57, 60), (75, 44, 57), (58, 48, 49), (75, 31, 65), (42, 130, 19), (74, 32, 49), (76, 26, 68))
],
# paysage de marécages d'apres https://gameartpartners.com/downloads/swamp-game-background/
[384,192,7,0,
(b"\x80\1\x81\1\x82\1\x83\1\x84\3\x85\1\x86\1\x81\3\x86\1\x81\2\x84\1\x87\4\x84\2\x86\1\x81\4\x82\1\x88\1\x87\2\x86\2\x81\3\x86\1\x81\1\x87\2\x83\1\x81\25\x89\1\x84\2\x81\3\x84\2\x85\1\x81\t\x86\1\x87\1\x84\1\x87\1\x8a\1\x81\2\x84\3\x8b\1\x81\4\x84\2\x89\1\x86\2\x87\2\x84\1\x87\1\x84\1\x83\1\x86\16\x8c\1\x84\2\x86\n\x87\1\x84\2\x86\b\x87\1\x8d\1\x84\1\x8c\1\x86\v\x8a\1\x84\1\x87\1\x86\f\x87\1\x84\1\x86\1\x81\1\x84\1\x85\1\x86\n\x84\1\x87\1\x8e\1\x86\5\x8f\1\x90\1\x80\1\x91\1\x87\2\x80\5\x8f\2\x87\1\x84\1\x87\1\x92\1\x80\2\x8d\1\x84\2\x81\5\x84\2\x87\1\x81\1\x84\2\x8a\1\x81\17\x88\1\x84\2\x81\v\x84\3\x81\1\x87\1\x84\2\x93\1\x81\t\x87\2\x88\1\x81\2\x8c\1\x87\1\x84\1\x81\1\x82\1\x81\1\x94\1\x92\1\x84\1\x87\1\x95\1\x92\b\x87\1\x84\1\x8f\3\x96\1\x92\4\x97\1\x82\1\x81\4\x84\2\x8c\1\x81\5\x84\2\x88\1\x81\5\x87\1\x84\2\x81\1\x8d\1\x84\1\x81\6\x98\1\x84\2\x81\4\x89\1\x84\2\x87\1\x81\6\x89\1\x84\2\x85\1\x81\17\x99\1\x80\1",
b"\x80\1\x81\3\x87\1\x84\3\x81\a\x84\2\x87\1\x81\1\x88\1\x87\1\x84\2\x81\5\x87\1\x8d\1\x93\1\x81\a\x93\1\x84\1\x9a\1\x81\25\x89\1\x84\2\x8b\1\x81\2\x84\2\x83\1\x81\n\x84\3\x81\3\x9a\1\x84\3\x81\4\x84\2\x93\1\x86\3\x9a\1\x87\1\x84\2\x8d\1\x9b\1\x86\r\x89\1\x84\2\x86\v\x84\2\x87\1\x86\6\x8a\1\x84\3\x85\1\x86\v\x87\1\x9b\1\x8b\1\x86\f\x84\2\x8a\1\x83\1\x87\1\x8c\1\x86\n\x87\1\x84\1\x87\1\x86\5\x90\1\x8f\1\x80\2\x84\2\x80\5\x96\1\x9c\1\x84\2\x9d\1\x81\1\x9e\1\x82\1\x87\1\x84\2\x81\5\x9a\1\x84\2\x81\1\x84\2\x85\1\x81\17\x8a\1\x84\2\x81\n\x87\2\x84\1\x89\1\x81\2\x84\1\x87\1\x84\1\x88\1\x81\b\x84\2\x83\1\x81\3\x84\2\x87\1\x81\1\x95\1\x92\1\x9f\1\x84\2\xa0\1\x92\5\x95\1\x92\2\x84\2\xa1\1\x8f\3\x92\4\x97\1\xa2\1\x89\3\x85\1\x87\1\x84\1\x81\4\x89\2\x84\1\x87\1\x88\1\x89\5\x8d\1\x87\2\x89\1\x85\1\x84\1\x83\1\xa0\1\x89\4\x84\1\x87\1\x84\1\x89\2\xa0\1\x81\1\x8b\1\x84\3\x89\a\x84\2\x83\1\x89\20\x80\1",
b"\x80\1\xa2\1\x80\1\x82\1\x84\3\x87\1\x89\1\x81\6\x84\3\x81\3\x84\3\x89\1\x81\2\x84\1\x87\1\x84\1\x81\t\x84\2\x81\25\x89\1\x84\1\x87\1\x83\1\x81\2\x87\1\x84\1\x88\1\x81\n\x87\1\x84\2\x81\5\x87\1\x84\1\x87\1\x9c\1\xa2\1\xa0\1\x84\2\xa3\1\x86\1\x81\1\x86\1\x82\1\x86\1\x81\1\x85\1\x87\2\x84\1\xa3\1\x86\1\x82\1\x86\3\x81\3\x86\3\x81\1\x84\2\x81\1\x86\n\x81\1\x87\2\x84\1\x8b\1\x81\2\x86\1\x88\1\x84\1\x87\2\x84\1\x87\1\x86\1\x81\2\x86\2\x81\3\x86\3\x84\2\x81\4\x86\6\x81\2\x86\1\xa3\1\x84\4\x89\1\x81\1\x86\t\x93\1\x87\1\x84\1\x86\1\x81\1\x86\3\x81\1\x86\2\x81\1\x87\1\x84\1\x80\6\x87\1\x84\2\x81\3\x82\1\x84\1\x87\1\x84\1\x81\5\x89\1\x84\2\x81\1\x84\3\x81\20\x84\2\x81\t\x87\2\x84\1\x8b\1\x81\4\x84\3\x83\1\x81\a\x84\2\x89\1\x81\3\x8a\1\x84\1\x87\1\x83\1\x81\2\x87\1\x84\1\xa3\1\x81\1\xa2\1\x92\a\xa4\1\x84\1\x9f\1\x8f\3\x92\5\x89\3\x8c\1\x84\2\x8b\1\x89\6\x87\1\x84\1\xa3\1\x89\5\x87\1\x84\2\x89\2\x84\2\x89\5\x84\2\x8b\1\xa0\2\x89\2\x87\1\x84\2\x89\b\x84\1\x87\1\x84\1\x89\16\xa0\1\x81\1\x89\1",
b"\x80\3\x81\1\x87\1\x84\4\x81\6\x83\1\x84\1\x87\1\x81\4\x84\1\x87\1\x84\1\x8a\1\x84\2\x9b\1\x81\n\x84\2\x81\25\x8b\1\x87\1\x84\1\x85\1\x81\2\x85\1\x87\1\x84\1\x81\t\x85\1\x84\3\x81\6\x84\2\x87\1\x86\1\x8b\1\x87\3\x81\b\x8e\1\x84\1\x87\1\x84\1\x89\1\x81\n\x87\1\x84\1\x81\f\x82\1\x9a\1\x87\1\x84\1\x8e\1\x81\1\x8b\1\x84\1\x87\1\x8c\1\x81\1\x84\1\x87\1\x81\v\x84\2\x81\r\x8a\1\x84\1\x87\1\x84\2\x81\f\x84\2\x81\t\x84\2\x80\5\xa5\1\x84\3\x81\4\x84\3\x81\6\x84\1\x87\1\x81\1\x84\3\x81\20\x84\2\x81\b\x89\1\x84\2\x87\1\x81\5\x84\3\x87\1\x81\6\x83\1\x84\2\x81\5\x84\3\x81\2\x87\1\x84\1\x8b\1\x81\6\x94\1\x92\2\xa6\1\x84\1\xa7\1\x8f\3\x96\1\x92\5\x97\1\x89\1\x84\3\x89\a\x84\2\x85\1\x89\5\xa0\1\x87\1\x84\1\x89\2\x87\2\x88\1\x89\3\x9a\1\x84\1\x87\1\x89\4\x84\1\x87\1\x84\1\x89\t\x83\1\x84\2\x89\16\x8f\1\xa0\1\x80\1",
b"\x80\2\xa8\1\x9e\1\x8b\1\x84\1\x87\1\x84\2\x81\1\x82\1\x81\4\x93\1\x84\2\x81\5\x84\4\x87\1\x85\1\x81\n\x84\2\x81\25\x8a\1\x84\1\x87\1\x85\1\x81\2\x89\1\x84\2\x83\1\x89\1\x82\1\x81\6\x84\3\x85\1\x81\3\x89\1\x81\2\x89\1\x84\1\x87\2\xa9\1\x87\2\x9b\1\x81\t\x8b\1\x87\1\x84\2\x81\t\x8b\1\x84\2\x81\16\x85\1\x84\2\x85\1\x84\3\x81\2\x87\1\xa3\1\x81\v\x84\2\x81\r\x89\1\x84\2\x87\1\x84\1\x81\f\x84\1\x9b\1\x81\b\xaa\1\x87\1\x84\1\x80\5\x84\3\x9a\1\x81\4\x84\2\x87\1\x81\6\x84\1\x87\1\x81\1\x85\1\x84\2\x81\20\x88\1\x84\1\x81\b\x8d\1\x84\2\x81\6\x84\3\x87\1\x84\1\x81\5\xa3\1\x84\2\x81\5\x87\1\x84\2\x81\2\x84\2\x81\6\x82\1\x81\1\xab\1\x92\1\xa2\1\x84\1\x83\1\x81\1\x8f\1\x9c\1\x90\1\x92\6\xa2\1\x84\1\x87\1\x84\1\x89\a\x84\2\x83\1\x89\6\x84\2\x89\2\x83\1\x84\2\x89\3\x84\2\x88\1\x89\4\x87\1\x84\1\x8d\1\x89\n\x84\2\x89\r\xa0\1\x89\1\x9e\1\x80\1",
b"\x80\5\x88\1\x84\2\x87\1\x9a\1\x89\5\x8a\1\x87\1\x84\1\x89\6\x87\1\x84\3\x81\1\x89\n\x84\1\x87\1\x89\25\x85\1\x84\1\x87\1\x89\2\x81\1\x89\1\x87\1\x84\2\x89\a\x85\1\x84\2\x87\1\x89\b\x87\1\x84\1\x87\1\xa3\1\x84\2\x8c\1\x81\v\x87\1\x84\2\x81\b\x9a\1\x84\1\x87\1\x81\17\x9a\1\x84\2\x87\2\x9a\1\x81\2\x84\1\x93\1\x81\v\x84\2\x81\r\x98\1\x84\1\x87\1\x84\1\x87\1\x81\f\x84\1\x87\1\x81\a\xa0\1\x80\1\x87\1\x84\1\x80\4\x8b\1\x84\2\x87\1\x81\5\x84\2\x85\1\x81\6\x87\1\x84\1\x81\2\x84\3\x81\17\x85\1\x84\1\x81\b\x84\2\xa3\1\x82\1\x81\5\x84\5\x81\5\x84\3\x81\5\x89\1\x84\1\x9b\1\x87\1\x85\1\x84\2\x81\v\x84\1\x93\1\x81\2\x8f\1\x9c\1\x92\3\xac\1\x89\1\xa0\1\x8b\1\x84\3\x89\a\x84\2\x8a\1\x89\6\x85\1\x84\1\x8a\1\x89\2\x84\2\x89\2\x8b\1\x84\1\x87\1\x89\4\xa3\1\x87\1\x84\1\x89\v\x84\2\x89\v\x80\1\x9c\1\x89\1\x9c\1\x80\2",
b"\x80\3\x94\1\x80\1\x95\1\x8d\1\x84\3\x89\5\x83\1\x84\1\x9a\1\x89\a\x87\1\x84\1\x87\1\x9a\1\x81\1\x82\1\x89\b\x84\1\x8e\1\x89\22\xa0\1\x89\1\x8e\1\x84\2\xa3\1\x89\4\x8a\1\x87\1\x84\1\x87\1\x89\6\x84\3\x85\1\x89\b\xa0\1\x84\5\x81\r\x84\1\x87\2\x8a\1\x81\1\x82\1\x81\1\x82\1\x81\2\x87\1\x84\1\x85\1\x81\20\xa3\1\x87\1\x84\2\x81\2\x83\1\x84\1\x81\f\x84\2\x81\n\x82\1\x81\2\x84\5\x81\v\x93\1\x84\1\x93\1\x81\b\x83\1\x87\1\xad\1\x80\4\x91\1\x84\2\x85\1\x81\5\x87\1\x84\1\x8b\1\x81\6\x84\2\x81\2\x83\1\x87\2\x8b\1\x81\16\x85\1\x87\1\x81\a\x87\1\x84\2\x81\6\x85\1\x84\4\x98\1\x82\1\x81\4\x84\3\x81\6\x84\4\x87\1\x84\1\x81\v\x84\1\x8a\1\x96\1\x9c\3\x92\4\x8b\1\x89\1\x8b\1\x87\1\x84\2\x89\2\x8b\4\x8a\1\x84\1\x87\1\x8b\5\x89\1\x8b\1\x98\1\x84\1\x8a\1\x8b\1\x89\1\x84\2\xa3\1\x8b\1\x87\1\x84\1\xae\1\x8b\4\x84\1\x87\1\x84\1\x8b\v\x87\1\x84\1\x89\1\x8b\b\x89\1\x8b\1\x89\1\xa1\1\x9c\1\x89\1\x96\1\x80\1",
b"\x80\4\x89\2\x84\4\x89\5\x88\1\x84\1\x8c\1\x89\a\x85\1\x84\2\x87\1\xa3\1\x89\t\x87\1\x83\1\x89\22\xa0\1\x84\4\x8a\1\x89\5\x84\1\x87\1\x84\1\x89\6\x87\1\x84\2\x89\b\xa0\1\x92\1\xa4\1\x84\3\x88\1\x81\16\x84\1\x8d\1\x87\1\x81\5\x89\1\x84\1\x87\1\x81\22\x84\1\x87\2\x98\1\x81\1\x84\2\x81\f\x84\2\x8b\1\x81\v\x89\1\x84\1\x87\1\x9a\1\x84\2\x81\v\x87\1\x9b\1\x81\t\x87\1\x84\1\x80\5\x9b\1\x84\2\x8b\1\x81\4\x93\1\x84\2\x81\a\x84\2\x81\3\x87\1\x84\1\x87\1\x82\1\x81\r\x88\1\x84\1\x81\a\x84\2\x89\1\x81\6\x8d\1\x87\1\x84\1\x87\1\xa3\1\x81\6\x84\2\x9a\1\x81\6\x87\1\x84\4\xa3\1\x81\v\x87\1\x89\1\x97\1\x81\3\x96\1\x92\2\x89\1\x8b\3\x83\1\x84\2\x83\1\x8b\5\x83\1\x84\2\x8b\a\x93\1\x84\1\x8b\3\x88\1\x87\1\x84\3\x87\1\x8b\5\x84\2\x87\1\x8b\v\x87\1\x9b\1\x8b\17\xaf\1\x80\1",
b"\x80\3\xa0\1\x89\2\x8a\1\x84\2\x87\1\x84\1\x89\2\xa0\1\x89\1\x84\1\x9b\1\x89\b\x8b\1\x87\1\x84\2\x87\2\x89\a\xa3\1\x87\1\x89\23\x8a\1\x87\1\x84\2\x87\1\x89\a\x87\1\x9b\1\x84\1\x88\1\x89\3\x9b\1\x84\3\x89\b\x99\2\x84\4\x81\20\x84\3\x81\3\x87\1\x84\1\x87\1\x81\22\x89\1\x84\6\x81\r\x87\1\x84\1\x87\1\x81\t\x89\1\x84\2\x87\1\x81\1\x88\1\x84\1\x9b\1\x81\n\x98\1\x87\1\x84\1\x81\a\x84\3\x80\5\x81\1\x84\3\x81\5\x9b\1\x84\2\x81\6\x89\1\x84\1\x87\1\x81\2\x82\1\x84\3\x89\1\x81\r\x87\1\x84\1\x81\6\x85\1\x84\1\x87\1\x81\6\x87\1\x84\3\x8b\1\x81\1\x89\1\x81\4\x89\1\x84\2\x89\1\x81\5\x82\1\x81\1\x87\1\x84\3\x81\v\x83\1\x84\1\x81\5\xb0\1\x92\4\x90\1\x8b\2\x9b\1\x84\2\x8b\5\xa3\1\x87\1\x84\1\x8b\a\xa3\1\x84\1\x8b\4\x84\3\x87\1\x84\1\x8b\4\x98\1\x84\2\x8a\1\x8b\v\x84\2\x8b\16\xab\2\x80\1",
b"\x80\4\x89\1\x80\1\x89\1\x84\4\x87\1\x89\2\x84\2\x8a\1\x89\t\x84\4\x87\1\x84\1\x83\1\x89\1\xa0\1\x89\1\xa0\1\x84\1\x87\2\x89\1\x8b\1\x89\22\x9a\1\x84\3\x89\b\x87\1\x84\3\x89\2\x84\3\x8b\1\x89\5\x8b\1\x89\3\x98\1\x87\1\x84\3\xa6\1\x92\1\xb0\1\x81\1\x89\2\x81\a\xa0\2\x81\1\x8b\1\x84\3\x81\1\x87\2\x9b\1\x81\21\x89\1\x81\1\x87\1\x84\2\x87\1\x84\2\x8a\1\x81\16\x84\1\x87\1\x81\1\x89\1\x81\5\x89\1\x81\1\x84\3\x8c\1\x89\1\x87\2\x9a\1\x81\t\x87\1\x84\1\x87\1\x89\1\x81\6\x84\3\x87\1\x80\6\x84\1\x8d\1\x84\1\x89\1\x81\4\x84\1\x87\1\xa3\1\x81\6\x84\2\x8b\1\x81\3\x8b\1\x87\1\x84\2\x81\1\x89\1\x81\t\x89\1\x9a\1\x84\1\x9a\1\x81\2\x89\3\x81\1\x84\2\xae\1\x89\6\x84\3\x89\b\x85\1\x84\1\x87\1\x81\3\x89\3\x81\2\x93\1\x84\3\x81\1\x89\1\x81\5\x89\1\x81\1\x89\1\x81\1\x8d\1\x84\1\x82\1\x81\4\x89\1\xa0\2\x99\1\x90\1\x8b\3\x8a\1\x87\1\x84\1\x87\1\x8b\4\x84\3\x8b\6\x98\1\x84\1\x87\1\x8b\4\xae\1\x9b\1\x84\2\x9a\1\x8b\4\x9a\1\x87\1\x84\1\x8b\v\xa3\1\x84\1\x88\1\x8b\r\x87\1\x96\1\x80\2",
b"\x80\6\xb1\1\x9d\1\x84\2\x87\1\x84\1\x8b\1\x84\2\x87\1\xa0\1\x89\t\x9a\1\x84\1\x87\1\x8b\1\x84\2\x87\1\x98\1\x89\2\x87\1\x84\2\x8a\1\x89\24\x84\1\x87\1\x84\2\x8b\1\x89\a\xa0\1\x87\1\x84\1\x87\1\x84\4\x9b\1\x89\t\x83\1\x84\2\x87\1\x84\1\x87\1\x9b\1\x96\2\x92\1\x97\1\x89\t\x81\1\x89\2\x8c\1\x84\2\x87\1\x84\3\x89\2\xa0\1\x89\16\xa0\1\x89\1\x84\4\x9b\1\x84\2\x93\1\x81\1\x89\1\x81\1\x89\t\x81\1\x84\1\x87\1\x81\1\x89\5\x81\2\xa0\1\x84\2\x87\1\x9a\1\x89\1\x84\2\x83\1\x89\b\x87\1\x84\1\x87\1\x8c\1\x89\a\x84\2\x87\2\x80\5\xa8\1\x84\3\x81\4\x8b\1\x84\2\x89\1\x81\6\x84\2\x81\4\x89\1\x84\2\x87\1\xa0\1\x81\1\x89\3\x81\3\x89\1\x81\1\x82\1\x81\1\x84\2\x89\1\x81\2\x89\3\x81\1\x84\2\x89\1\x81\2\x89\3\x8b\1\x87\1\x84\2\x89\b\xa3\1\x84\1\x87\1\x89\6\x81\3\x87\3\x89\6\xa0\2\x89\2\x87\1\x84\1\x87\1\x89\b\xb0\1\x96\2\xac\1\x8b\2\x84\3\x8b\4\x87\1\x84\2\x8b\6\x8d\1\x84\1\x98\1\x8b\5\x84\1\x87\1\x84\1\x98\1\x8b\4\x87\1\x84\2\x8b\n\x8a\1\x84\2\x8b\r\x84\2\x80\3",
b"\x80\4\xa8\1\x89\1\x9c\2\xa3\1\x87\1\x84\5\x8b\v\x89\1\x84\3\x89\1\x84\3\x87\2\x84\1\x87\1\x84\1\xac\1\x89\1\x8b\21\x83\1\x84\5\x89\2\x8b\6\xac\1\x8b\2\x87\1\x84\5\x85\1\x8a\1\x8b\2\xac\1\x8a\1\x85\1\x84\5\x89\1\x84\1\x87\1\x84\1\x99\1\xa0\1\x81\1\x99\1\x92\1\x89\f\x9a\1\x84\2\x83\2\x84\2\x89\16\x81\1\x99\1\x92\1\xb2\1\x84\1\x87\1\x8a\1\x81\1\x85\1\x87\1\x84\2\x83\1\x89\r\x84\1\x87\1\x89\b\x81\1\x84\1\x87\1\x84\1\xa0\1\x87\1\x84\1\x8a\1\x89\a\x81\1\x84\3\x83\1\x81\1\x89\a\x85\1\x84\2\x80\1\x97\2\x80\2\x89\1\x85\1\x84\1\x87\1\x89\2\x82\1\x89\1\x84\2\x88\1\x89\5\x84\3\x89\1\x81\1\x89\3\x81\1\x93\1\x84\2\x87\1\xa0\1\x89\a\x81\1\x89\1\x84\2\x87\1\x89\a\x84\2\x98\1\x89\5\x93\1\x84\3\x81\1\x89\a\x84\3\x89\2\x81\1\x89\3\xa0\1\x89\1\x88\1\x84\3\x89\t\x84\2\x87\1\x89\1\xa0\1\x89\a\x97\1\x96\3\x9c\1\xb1\1\x84\3\x8a\1\x8b\2\x8a\1\x84\2\x85\1\x8b\1\x8a\2\x8b\1\x83\1\x84\1\x87\1\x84\1\x8a\5\x8b\1\x87\2\x84\1\x8a\4\x8b\1\x84\2\x87\1\x8b\1\x8a\b\xa3\1\x87\2\x83\1\xb3\1\x8a\1\x8b\1\x8a\t\x83\1\x84\2\x8f\1\x8b\2",
b"\x80\3\x92\1\x8b\3\x9c\1\x8b\1\x84\6\x8a\1\x8b\v\x87\1\x84\2\x8b\2\x8a\1\x84\4\x87\2\x8b\21\xac\1\x87\1\x84\6\x8b\f\x84\16\x87\1\x8b\1\x8f\1\x84\5\x96\2\x89\17\x84\3\x89\1\x8a\1\x84\2\x89\17\x92\1\x84\3\x96\1\x89\2\x87\1\x84\3\x9a\1\x89\f\x87\1\x84\1\x89\n\x87\1\x84\1\x87\1\x84\1\x87\1\x89\t\x8c\1\x84\2\x87\1\x89\b\xa0\1\x89\1\x84\1\x87\1\x89\2\x80\2\x89\2\x84\2\x9a\1\x89\2\x83\1\x84\2\x89\5\x87\1\x84\2\x87\1\x89\a\x88\1\x84\1\x87\1\x8d\1\x89\1\xa0\1\x89\5\x83\1\x84\1\x9b\1\x84\1\x89\b\x84\2\x88\1\x89\5\x93\1\x87\1\x84\2\x89\b\x87\1\x84\1\x9a\1\x89\b\x84\3\x87\1\x8b\1\x89\a\x87\1\x84\2\x85\1\x89\n\x96\1\x92\1\xa1\1\x8a\2\x85\1\x84\1\x87\1\x8a\4\x84\1\x87\1\x8a\4\x87\1\x84\3\x8a\a\xb1\1\x84\2\x87\1\x8a\4\x84\2\x9b\1\x8a\b\x84\3\x85\1\x8a\r\x87\1\x84\1\x87\1\xa6\1\x80\2",
b"\x80\4\x90\1\x8b\4\x98\1\x8d\1\x84\4\xa3\1\x8b\v\x8a\1\x84\1\x87\1\x8b\4\x87\1\x84\2\x87\1\x84\1\xac\2\x8b\16\x9a\1\x84\3\x87\1\xac\1\x9b\1\x84\1\x87\1\x8b\v\x87\1\x84\2\x87\1\x8b\1\x85\1\x87\1\x84\5\x87\1\x83\1\x8b\4\x84\6\xb0\1\x89\20\x84\2\x87\1\x85\1\x84\1\x87\1\x89\17\x85\1\x84\2\xa6\1\x92\1\x80\2\x84\1\x87\1\x84\1\x8d\1\x84\1\x87\1\x89\v\x8a\1\x84\1\x89\n\x84\4\x9b\1\x89\t\xa0\1\x89\1\x84\1\x87\1\x88\1\x89\b\xa3\1\x87\2\x89\2\xa0\1\x89\3\x87\1\x84\2\x89\2\x84\3\x89\5\x84\3\x87\1\x89\1\xa0\1\x89\6\x87\1\x84\2\x89\6\xa0\1\x87\3\x84\1\x89\b\x9a\1\x87\2\x89\5\x93\1\x84\3\x89\b\x84\2\x8b\1\x89\a\x87\1\x84\4\x87\1\x89\6\x8c\1\x87\1\x84\2\x85\1\x89\t\x96\2\x92\1\x9c\1\x8a\3\x87\2\x9a\1\x8a\2\x85\1\x84\2\x8a\4\x87\1\x84\2\x87\1\x8a\b\x84\3\x9a\1\x8a\3\x87\1\x84\1\x87\1\x8a\b\x84\3\x9a\1\x8a\f\x84\2\x87\1\x9b\1\x80\3",
b"\x80\4\x8f\1\x8b\5\x87\1\x84\4\x87\1\x8b\f\x84\2\x8b\6\x87\1\x84\1\x87\1\x84\1\x87\2\x83\1\x8b\a\x8a\1\x85\1\x84\6\x8b\3\x87\1\x84\2\x8b\n\x8a\1\x84\2\x87\1\x88\1\x8b\v\xac\1\x8b\2\xb4\1\x87\1\x9b\1\x84\1\x87\1\x84\1\x93\1\x89\21\x87\1\x8d\1\x84\2\x8a\1\x89\16\x87\1\x84\2\x8a\1\x89\3\x84\3\x8b\1\x84\4\x89\v\x84\1\x85\1\x89\b\x87\1\x84\4\x98\1\x89\v\xa3\1\x84\2\x89\a\x87\2\x84\1\x8b\1\x89\4\xa0\1\x89\2\x84\2\x87\1\x8b\1\x87\1\x84\1\x8a\1\x89\5\x87\1\x84\2\x87\1\x89\b\x8a\1\x87\2\x84\1\x89\6\x87\1\x84\3\x8b\1\x89\a\x8b\1\x87\1\x88\1\x89\6\x84\1\x87\1\x84\1\x89\a\x87\3\x89\b\x84\6\x89\a\x84\4\x89\b\xa0\1\x90\2\xb0\1\x96\2\x8a\2\x87\1\x84\2\x8a\2\x84\3\x8a\4\x87\1\x84\3\x8a\b\x84\4\x9a\1\x8a\2\xa3\1\x84\2\x8a\b\x84\2\x87\2\x8a\v\x84\3\xb5\1\x80\4",
b"\x80\3\x8b\1\xac\1\x8b\6\xa3\1\x84\4\x85\1\x8b\b\x8a\1\x8b\1\xa3\1\x84\1\x87\1\x8b\6\xb3\1\x87\1\x84\6\x87\1\x84\5\x87\1\x84\1\x87\1\x84\2\xae\1\x8b\6\x8a\1\x84\2\x8a\1\x8b\a\x83\1\x84\4\x8b\f\x8a\1\xb0\1\x80\1\x96\1\x9c\1\x84\3\x87\1\x84\1\xae\1\x89\20\x8b\1\x84\1\x8d\1\x84\1\x8b\1\x89\f\xa0\1\x84\1\x87\1\x84\1\x9d\1\x96\2\x89\1\x8b\1\x84\3\x8b\1\x89\1\x85\1\x84\2\x87\1\x8a\1\x89\b\x8b\1\x87\2\x89\b\x87\1\x84\2\x87\1\x84\1\x89\f\x87\3\x89\a\x84\1\x87\1\x84\1\x8b\1\xa0\1\x89\6\x84\6\xa0\1\x89\5\xa0\1\x84\3\x89\t\x9b\1\x87\1\x84\1\x87\1\xa0\1\x89\5\x98\1\x8d\1\x87\1\x84\1\x89\b\x84\1\x83\1\x89\6\x84\2\x87\1\x8b\1\x89\6\x84\1\x87\1\x8a\1\x89\a\x8c\1\x84\2\x8b\2\x84\2\x8a\1\x89\a\x84\3\x89\f\xa6\1\x96\1\xa1\1\x8a\1\x9a\1\x84\2\x8a\2\x84\2\x9a\1\x8a\5\x9a\1\x84\2\x9a\1\x8a\a\x84\3\x87\1\x84\1\x98\1\x8a\1\x83\1\x84\2\x8a\t\x87\1\x84\2\x8a\t\xae\1\x84\3\x9a\1\x8a\1\x80\1\x8a\1\x80\2",
b"\x80\3\x8b\t\x84\2\x87\2\x84\1\x8b\t\xac\1\x84\1\x87\1\x84\1\x8b\a\x87\1\x84\1\x87\1\x8b\1\x85\1\x84\n\x9a\1\x98\1\x8b\b\xac\1\x83\1\x84\2\x8b\a\x87\1\x84\3\xae\1\xac\1\x8b\r\x80\1\xab\1\xa6\1\x89\1\x84\3\x87\1\x84\1\x83\1\x89\16\xb0\1\x89\1\x84\3\x85\1\x89\2\xa0\1\x89\a\x8b\1\x89\1\x88\1\x84\1\x87\1\x84\1\x96\3\x8f\1\x89\1\x84\1\x87\1\x84\1\x83\1\x89\2\x85\1\x84\2\x87\1\x89\b\x85\1\x84\2\x89\b\x84\2\x87\1\x84\1\x8a\1\x89\t\x8b\1\x89\1\x9a\1\x84\1\x9b\1\x98\1\x89\6\xa0\1\x84\3\x83\1\x89\a\x93\1\x87\1\x84\3\x8a\1\x89\b\x87\1\x84\1\x8a\1\x89\t\x84\1\x8d\1\x84\2\x89\6\x9b\1\x84\2\x89\a\x8b\1\x84\1\x8a\1\x89\6\x9a\1\x84\2\x88\1\x89\5\x8e\1\x84\2\x89\b\x85\1\x84\1\x87\1\x89\2\x84\2\x87\1\x89\a\x8b\1\x87\1\x84\1\x8b\1\x89\v\x8f\1\x92\1\xb6\1\x96\1\x9f\1\x87\1\x84\1\x8a\2\x87\2\x8a\a\x84\3\x8a\a\x87\1\x84\5\x8a\1\x98\1\x84\2\x83\1\x8a\t\x84\2\x88\1\x8a\a\x85\1\x84\4\x8a\3\xb7\1\x80\2",
b"\x80\5\x8a\5\x8b\1\x8a\2\x84\3\x87\2\x8a\1\x8b\1\x8a\5\x85\1\x84\3\x8a\2\x8b\1\x8a\4\xac\1\x84\2\x9b\1\x8a\3\x8b\3\x8a\2\x8b\2\x8a\6\x8b\4\x8a\3\x8b\1\x9b\1\x84\1\x83\1\x8a\1\xb1\1\x8a\1\x8b\2\x84\4\x8a\4\x8b\1\x8a\t\x8b\1\x8a\1\x8b\1\x80\1\xa0\1\x89\1\x8a\1\x84\2\x8d\1\x87\1\x84\2\x89\f\x96\1\xa6\1\x96\1\xb0\1\x88\1\x84\2\x87\1\x89\t\x83\1\x84\3\x98\1\x8f\1\x96\1\xb6\1\xa6\1\x89\3\x84\1\x87\1\x84\1\x89\3\x8a\1\x84\3\x8b\1\x89\6\x84\2\x9a\1\x89\b\x84\1\x87\2\xa3\1\xa0\1\x89\v\x84\3\x8b\1\x89\b\x88\1\x84\1\x87\1\xa0\1\x89\a\x9b\1\x84\1\x87\2\x89\t\x93\1\x84\2\x89\n\x87\1\x84\2\x9b\1\x89\6\x84\2\xac\1\x89\6\x85\1\x87\1\x89\b\x84\3\x89\5\x87\1\x84\2\x89\b\x87\2\x84\1\x89\2\x8a\1\x84\2\x85\1\x89\a\x84\1\x87\1\x84\1\x89\r\xb6\1\xa6\2\x84\1\x87\1\xa7\1\x84\2\x9b\1\x92\1\x8a\2\x98\2\x8a\1\x98\1\xb5\1\x87\1\x84\1\x8a\a\x88\1\x84\1\x87\1\x88\1\x84\1\x87\1\x84\1\x8a\1\x84\2\x87\1\x8a\6\x98\1\x8a\2\x9b\1\x84\1\x87\1\x98\1\x8a\1\x98\1\x8a\3\x87\1\x84\3\x9a\1\x8a\3\x9c\1\x80\3",
b"\x80\6\x8a\a\x84\6\x8a\5\x87\1\x84\2\x87\1\x8a\b\x84\3\x98\1\x8a\30\x98\1\x84\1\xa3\1\x8a\2\xb1\1\x8a\1\x84\4\x85\1\x8a\16\xab\1\x80\2\xb6\1\xa6\1\x96\1\x8a\1\x84\2\x96\1\x9b\1\x84\3\x87\1\x89\1\x8b\1\x89\1\x8b\2\x89\1\x8b\4\x96\1\xac\1\x8f\1\x89\2\x88\1\x87\2\x84\1\x89\1\x8b\1\x89\4\x87\1\x84\3\x87\1\x8b\1\x89\1\x8b\2\x92\1\xb0\1\x80\1\xac\1\x8b\2\x87\1\x84\1\x85\1\x8b\4\x84\4\x8b\1\x89\3\x84\3\x8b\2\x89\2\x8b\3\x8a\1\x84\5\x9a\1\x8b\v\x87\1\x84\1\x87\1\x9a\1\x8b\2\x89\1\x8b\6\xa3\1\x84\2\xa0\1\x89\6\x87\1\x84\1\x8d\1\x84\2\x89\b\x87\1\x84\2\x89\v\x84\1\x9b\1\x84\2\x8b\1\x89\2\x8b\1\x98\1\x87\1\x84\1\x8b\1\x89\6\x87\1\x84\1\x89\b\xa0\1\x84\2\x88\1\x89\3\x8a\1\x84\2\x98\1\x89\b\x84\1\x87\1\xa3\1\x89\3\x87\1\x84\1\x87\1\xa0\1\x89\6\x84\2\x88\1\x89\f\xa6\3\x96\1\x84\5\xa6\3\xb4\1\x98\3\xa9\1\x87\1\x84\2\xa9\1\x98\6\xae\1\x84\1\x87\1\x98\1\x85\1\x84\2\x87\1\x84\3\x98\t\x84\3\x98\4\xb5\1\x84\1\x87\1\x84\2\xae\1\x98\4\xb1\1\x80\3",
b"\x80\2\xaf\1\x80\3\x8a\a\x84\5\x87\1\x9a\1\x8a\4\x87\3\x8a\t\x84\3\x98\1\x8a\30\xa3\1\x84\1\xae\1\x8a\3\x87\1\x84\4\x8a\17\x92\1\x80\3\xa6\2\x93\1\x87\1\x84\1\xb0\1\xb8\1\x9d\1\x84\1\x9b\1\x84\1\x8d\1\x8a\1\x89\1\x8b\a\x8f\1\xa1\1\x8b\2\x89\1\x8b\1\x84\4\x83\1\x8b\1\xac\1\x85\1\x84\2\x87\2\x85\1\x89\1\x8b\4\xac\1\x8b\1\xab\1\x90\1\xac\1\x89\1\x8a\1\x84\2\x8b\1\x89\3\xac\1\x84\1\x87\1\x84\1\x9a\1\x8b\2\x9a\1\x84\2\x8d\1\x8b\1\x89\1\x8b\4\x88\1\x84\2\x87\1\x83\1\x8b\1\x84\2\x8b\t\x89\1\x8b\2\x8d\1\x9b\1\x84\1\x8b\n\x8d\1\x84\1\x8a\1\x89\5\x85\1\x84\2\x87\1\x84\1\x87\1\x85\1\x89\a\x84\1\x87\1\x93\1\x89\v\x8b\1\x84\1\x87\1\x84\1\x87\1\x89\3\x84\1\x87\2\x89\a\x87\1\x84\1\x89\b\x8b\1\x84\2\x9b\1\x89\3\x84\3\x89\t\x84\2\x93\1\x89\3\x9a\1\x84\2\x8a\1\x89\5\x83\1\x84\1\x87\1\x8b\1\x89\a\xac\1\xb4\1\x89\2\xa6\2\x96\1\xa6\2\x84\4\x87\1\xa6\2\x96\1\xb4\3\x98\2\x87\2\x84\1\x98\b\x84\1\x87\1\x9a\1\x98\1\x87\2\x84\4\xa9\1\x98\b\x84\2\x88\1\x98\3\xae\1\x84\1\x87\2\x84\1\xb9\1\x98\1\x80\2\x98\1\xa9\1\x80\4",
b"\x80\2\x8a\2\xab\1\xb1\1\x8a\a\x84\5\x87\1\x84\1\x87\1\x8a\3\x84\1\x87\1\xa3\1\x8a\t\x87\1\x84\2\xa3\1\x8a\27\x98\1\x84\2\x8a\3\x84\4\x87\1\x8a\16\x80\6\xa6\2\x84\2\xba\1\xa6\1\x8b\1\xac\1\x8b\1\xa3\1\x84\4\x87\1\x83\1\x8b\r\x87\1\x84\6\x87\1\x85\1\x8b\17\x84\1\x8e\1\xac\1\x8b\4\x84\3\x87\2\x84\2\x87\1\x8b\5\x85\1\x87\1\x84\2\x87\1\x8b\3\x9a\1\x84\1\xa3\1\x8b\v\x83\1\x84\2\x8b\t\x89\2\x84\2\x89\4\x8b\1\x84\2\x87\1\x8b\1\x84\3\x89\1\xa0\1\x89\4\x84\3\x89\1\x8b\1\x89\f\x87\1\x84\3\x8b\2\x84\3\x8b\1\x89\6\x84\2\x8a\1\x89\6\x8b\1\x89\1\x84\2\x87\1\x89\2\x83\1\x84\2\x87\1\x89\a\x8b\1\x89\1\x87\1\x84\1\x8b\1\x89\3\xa0\1\x84\3\x89\4\x8b\1\x84\2\x87\1\x8b\1\x89\5\x8b\5\xa6\5\xbb\1\x84\4\xb8\1\xa6\2\x80\1\xb4\4\xba\1\x84\2\x9b\1\x98\b\x88\1\x84\2\x98\2\x84\3\x87\1\x84\1\x9d\1\x98\a\x87\2\x84\1\xae\1\xa9\1\xb2\1\x84\2\x87\1\x84\2\x80\5\xb4\2\x80\4",
b"\x80\3\xa1\1\x8a\b\xb1\1\x85\1\x84\2\x98\1\x87\1\x84\3\x87\1\xae\1\x8a\1\x84\3\x8a\n\x84\1\x87\1\x84\1\x8a\26\x98\1\x84\2\x8a\2\x84\5\x85\1\x8a\21\x80\5\xa6\1\x84\2\xac\1\x8b\a\x88\1\x84\1\x87\1\x84\16\x87\2\x84\3\x87\2\x8a\1\x8b\20\x84\2\x8b\5\xac\1\x8b\1\x84\3\x87\1\x8b\1\xac\1\x8b\2\x85\1\x84\4\xa3\1\x8b\6\x84\2\x8b\v\xac\1\x88\1\x84\1\x87\1\x8b\1\xac\1\x8b\5\x89\3\x9a\1\x84\1\x89\1\x8b\2\x9a\1\x87\1\x84\1\x8a\1\x8b\1\x89\1\x8b\1\x87\1\x84\1\x87\1\x8b\4\x89\1\x87\1\x84\2\x89\2\x8b\r\x88\1\x84\1\x87\3\x84\1\x87\2\x8b\a\x84\2\x83\1\x89\1\x8b\a\x87\1\x84\2\xac\1\x87\1\x84\3\xac\1\x8b\t\x84\2\x8a\1\x8b\4\x85\1\x87\1\x84\1\x87\1\x8b\3\x89\1\x84\3\x8b\1\x89\1\x8b\b\xb4\1\xa6\1\xab\1\x80\3\xbc\1\x84\4\x80\4\xb4\4\x87\1\x84\2\x9b\1\x98\t\x87\1\x84\1\x85\1\x98\2\xa9\1\x84\5\xa3\1\x98\5\x84\2\x87\1\xa3\1\x87\1\x84\1\x87\2\x84\1\xbd\1\x80\6\xb4\1\xbb\1\x80\4",
b"\x80\3\x8a\v\x9b\1\x84\2\x8a\1\x87\1\x84\2\x87\1\x84\1\x87\2\x84\2\x8a\n\x88\1\x84\2\x8a\26\x98\1\x84\2\x8a\1\x87\1\x84\4\x87\1\x8a\22\x80\5\xb9\1\x84\1\x9b\1\xa6\1\x8b\t\xae\1\x84\2\x87\1\x84\2\x87\2\x84\3\x87\1\x84\1\x87\1\x84\2\x87\1\x85\1\x88\1\x84\1\x87\1\x84\3\xa3\1\x8a\1\x8b\r\x84\2\x8b\6\xac\1\x85\1\x84\3\x8c\1\xb5\1\x87\2\x84\2\x87\1\x84\1\x83\1\x8b\a\x84\2\xac\1\x8b\f\x84\2\x8b\n\x9a\1\x84\1\x8b\2\x89\1\x84\3\x8b\2\x89\1\x8b\1\x85\1\x84\2\x8b\4\x89\1\x84\3\x8b\17\x89\1\x85\1\x84\3\x87\1\x84\2\x89\1\x8b\6\x84\2\x9a\1\x8b\b\x87\1\x84\2\x8b\1\x84\2\x87\1\x8b\v\x84\2\x83\1\x8b\5\x84\3\x83\1\x8b\3\x87\1\x84\2\x89\1\x8b\t\xa9\1\xb4\1\xa6\4\x84\2\x8d\1\x87\1\x80\5\x9f\1\xb4\3\xba\1\x84\3\x98\t\x84\2\x87\1\x98\3\xb5\1\x87\2\x84\3\x87\2\x88\1\x9a\2\x84\2\x87\1\x84\1\x87\1\x84\3\x80\a\xbe\1\xb4\1\xa6\1\x80\4",
b"\x80\6\xb4\2\xa9\1\x8a\4\x98\2\x87\1\x84\1\x88\1\x8a\1\xae\1\x84\3\x87\3\x84\1\x87\1\x98\2\x8a\6\x98\1\x8a\1\xae\1\x84\1\x87\1\x98\1\x8a\24\x84\2\x87\1\x84\5\x8a\1\x98\2\x8a\17\x98\1\x8a\1\x80\4\xbd\1\x84\2\xac\1\xb0\1\xa1\1\x8b\f\xa6\4\x8f\1\x8b\5\x84\2\x8b\5\x9a\1\x87\1\x84\3\x87\1\x84\24\x87\1\x84\1\x87\1\x84\2\x87\1\x84\3\x87\1\x93\1\x8b\b\xac\1\x9b\1\x84\1\x83\1\x8b\16\x84\1\x87\1\x8b\b\xac\1\x84\2\x8b\2\x9b\1\x87\2\x8b\5\x84\3\x8b\5\x8a\1\x84\2\x9a\1\x8b\21\x87\1\x84\1\x87\1\x84\2\xb5\1\x92\1\xa8\1\x8b\4\x84\2\x9b\1\x8b\b\x84\6\x98\1\x8b\v\x84\3\x8b\6\x87\1\x84\1\x87\1\x8b\3\x9a\1\x84\2\x85\1\x8b\b\xac\1\x8b\2\x96\1\x80\2\xbf\1\x84\3\x80\6\xb8\1\xb4\4\x84\1\x87\1\x84\1\xae\2\x98\1\xae\6\x87\1\x84\2\xae\3\x98\1\x84\1\x87\2\x84\4\x87\1\x84\2\x87\1\x84\4\x9b\1\x80\t\xbb\1\xb4\1\xbe\1\x80\4",
b"\x80\6\x8a\1\x98\1\x8a\1\x98\a\x84\2\x8a\1\x98\2\x9a\1\x84\3\x87\1\x84\2\x8a\1\xa9\1\x98\t\x87\3\x98\20\x8a\2\x98\1\x87\1\x84\4\x87\1\x84\1\x87\1\x98\25\x80\4\x87\3\xa6\2\x8b\2\xac\1\xa6\1\xb8\1\x8b\1\xb8\1\x8b\6\xa6\1\xb6\1\x80\1\xab\1\xa6\1\x8b\1\xac\1\x8b\1\xac\1\x87\1\x84\1\x85\1\x8b\t\x85\1\x88\1\x84\6\x87\3\x84\t\x87\1\x8d\1\x87\1\x84\4\x87\1\x84\2\x83\1\x8b\1\x80\3\x8b\6\x98\1\x87\1\x84\1\x8b\17\x84\2\x8b\b\x84\2\x80\1\xc0\1\x84\2\x85\1\x8b\5\x98\1\x84\2\x8b\a\x85\1\x84\1\x87\1\x8b\21\xac\1\x8b\1\x84\5\x9b\1\x8a\1\x8b\2\xac\1\x84\3\x8b\b\x84\5\x8c\1\x8b\f\x84\2\x87\1\x8b\a\x84\1\x87\2\x8b\3\x87\1\x84\2\x8b\5\xac\1\x8f\1\xb0\1\x8b\4\x80\1\x9b\1\x84\4\x80\5\xbe\1\xa6\1\xb4\4\x9a\1\x84\1\x87\1\x80\6\xae\4\x84\2\xa4\1\xae\2\xa9\1\xba\1\x84\2\xa7\1\xba\1\x87\1\x84\a\x87\1\xb4\1\x80\n\xb4\1\xa9\1\x80\5",
b"\x80\6\x9d\1\x98\t\x84\2\x85\1\x98\3\x85\1\x9b\1\x84\4\x87\1\x83\1\x98\n\x84\2\x98\22\xb5\1\x84\3\x87\1\x84\2\xae\1\x98\25\x80\5\x87\1\x84\1\xc0\1\xa6\2\xac\2\xa6\3\x80\1\xa6\1\x80\1\x92\1\x8a\1\x8b\1\xa6\1\xac\1\xa6\1\x80\3\xa6\1\xb6\1\x8b\3\x87\1\x84\1\x8b\1\xac\1\x8b\r\x8a\1\x98\1\xae\2\x85\3\x84\2\x85\4\xae\1\x83\1\x93\1\xb1\1\x8a\1\x80\1\xab\1\x84\1\x87\1\x9b\1\x84\1\x87\1\x84\1\x87\1\x80\3\x8b\2\x80\3\xac\1\x84\1\x8d\1\xc1\1\x8b\17\x84\2\x8b\a\x87\1\x84\2\xc2\1\x87\1\x84\2\x8b\6\x9b\1\x84\2\xac\1\x8b\a\x87\1\x84\1\x9a\1\x8b\21\xac\1\x8b\1\x84\2\x87\1\x84\1\x87\1\x84\2\xa4\1\xb8\1\x87\1\x84\2\xac\1\x8b\5\x88\1\x84\5\x8a\1\x8b\r\x9a\1\x84\2\x8b\6\xac\1\x84\4\x98\1\x8b\1\x85\1\x84\1\x87\1\x8b\v\xa1\1\x84\5\x80\6\xa6\2\xb4\5\x84\2\xbc\1\x80\6\xbb\1\x80\2\x87\1\x84\2\x9d\1\xb4\3\x84\2\xba\1\xa9\2\xb4\1\xa7\1\xc3\2\x9d\1\xa7\1\x84\2\xa7\1\x80\n\xa7\1\xb4\1\x80\5",
b"\x80\5\xbe\1\xb4\1\xa7\1\xa9\1\x98\b\x84\2\x98\6\x87\1\x84\2\x87\1\x84\2\x87\1\x85\1\x98\a\x84\1\x87\1\x98\17\x9a\1\x84\a\x9a\1\x98\1\xa9\1\x98\21\xa9\1\x98\1\x9c\1\x80\6\x87\1\x84\1\xc0\1\xa6\2\xb8\1\xa6\4\x80\4\xac\1\xab\1\x80\t\x9c\1\xa3\1\x84\2\x8a\1\x8b\25\x87\1\x84\1\x98\1\x8b\5\x80\4\x96\1\x85\1\x87\1\x84\1\x98\1\x87\1\x84\3\xbd\1\x80\2\xac\1\x80\3\x8b\1\x84\2\xc2\1\x80\1\x8b\16\x84\1\x9a\1\x8b\a\x84\2\x87\1\x84\2\x9a\1\x8b\6\x87\2\x9b\1\x8a\1\x8b\t\x87\2\x8b\24\x87\1\x84\1\x9b\1\x84\21\x87\1\x84\1\x8b\20\x84\1\x87\1\x85\1\x8b\a\x83\1\x87\1\x84\3\x8b\1\x8a\1\x84\2\x8b\b\x85\1\x84\a\x80\6\xa6\2\xa9\1\xa7\4\x80\1\x84\2\x80\t\xb9\1\x84\2\xa7\1\x9d\1\xa7\1\xb4\1\x84\3\xb4\1\xa7\a\xc3\1\x84\2\x80\n\x9d\1\xa7\1\x80\5",
b"\x80\5\x98\f\x84\2\x98\a\xb5\1\x87\1\x84\2\x87\1\x84\4\x87\1\xba\1\x98\3\x84\2\x98\n\x85\1\xa3\1\x84\n\x85\1\x98\26\x80\a\x84\1\x87\1\x84\1\xa6\a\xab\1\x80\16\xa6\1\x84\1\x87\1\x85\1\x8a\25\x85\1\x84\1\x87\1\x8a\5\x90\1\x80\5\x8f\1\x84\3\xb4\1\xc3\1\x87\1\x84\3\xbd\1\x80\4\x9c\1\x84\2\xab\1\x80\1\x8b\2\x8a\t\x8b\2\x84\2\x8b\1\xac\1\x8a\2\x8b\1\x8a\1\x8b\1\x8a\1\x84\4\x8b\2\xac\1\x8b\4\x87\1\x84\2\x85\1\x8b\n\x84\2\x88\1\x8b\23\x80\1\x84\2\x80\1\xbc\1\x84\f\x87\1\x84\1\x87\2\x9a\1\x8b\20\x84\1\x87\2\x8b\b\x93\1\x87\1\x84\2\x87\2\x84\2\x8e\1\x98\1\x8a\1\x98\1\x85\1\x87\2\x84\1\x87\1\x84\3\x9b\1\x84\3\x80\6\xa6\2\x9d\1\xa7\4\x80\2\x87\1\xad\1\x80\t\x84\2\xa3\1\xa7\3\xba\1\x84\2\xa7\t\xa3\1\x84\1\xc4\1\x80\t\xa7\2\x80\5",
b"\x80\4\x98\1\xa6\1\xb4\1\x98\t\xae\1\x84\1\x87\1\x98\a\xa3\1\x84\2\x85\1\x87\1\x84\2\x87\1\x84\5\x87\1\x84\1\x87\1\x9a\1\xba\1\x9a\1\xba\1\x9a\2\x9b\1\x84\5\x87\1\x84\5\x87\1\xae\1\x87\1\x84\1\x87\1\x98\23\xa6\1\xa9\1\x98\2\x80\6\x84\2\x87\1\xa6\a\xb6\1\x80\16\xc5\1\x84\1\x87\1\x8b\1\x8a\25\x84\3\x8a\5\x80\b\x87\3\x9d\1\xa7\1\x87\1\x84\1\x87\2\xc6\1\xc7\1\x80\2\x84\2\x87\1\xa8\1\x80\1\x8a\f\x88\1\x84\2\x8a\1\xb1\1\x8a\4\x98\1\x87\1\x84\1\x87\1\x84\1\x80\2\x8b\3\xb1\1\x8b\1\x84\3\x85\1\x8b\v\x98\1\x87\1\x84\1\x8b\24\x87\1\x8d\1\xc8\1\x80\2\x98\1\x9a\1\x84\b\x87\2\x84\3\x8b\3\xac\1\x96\1\x8b\f\x85\1\x84\1\x87\1\x8b\t\x83\1\x84\1\x87\2\x84\3\x8d\1\x84\4\x87\1\x84\5\xa4\1\x80\1\x84\3\x80\6\xb8\1\xa6\1\xa7\5\x80\2\x84\2\x80\t\xc0\1\x87\1\x84\1\xa7\3\x9d\1\x84\2\xa7\b\x9d\1\xa7\1\x84\1\xc0\1\x80\t\xa7\2\x80\5",
b"\x80\5\x98\1\xa9\1\x98\t\x84\2\xae\1\x98\1\xa9\1\x98\4\xae\1\x87\2\xb5\1\xae\1\x98\3\x9a\1\x84\3\x87\1\x84\1\x87\1\x84\n\x87\1\x84\1\x87\1\x84\2\x87\2\x9a\1\x98\2\x9d\1\x98\1\xa3\1\x84\1\xa3\1\x98\f\x9d\1\xa7\1\x98\3\x9d\1\xb4\1\xb8\1\xa6\2\x80\b\x84\1\x9b\1\xb8\1\xa6\a\x80\16\x84\2\xa3\1\x8a\26\x87\1\x84\1\x87\1\x8a\5\x80\b\x84\3\xa7\1\x9d\2\xa7\1\xad\1\x87\3\x84\1\xbc\1\x84\1\x87\1\x80\3\x8a\f\x84\2\x83\1\x8a\4\x98\1\x84\2\x87\3\x80\5\x9d\1\xa7\1\x9d\1\x87\1\x8d\1\x8e\1\x8b\r\x87\1\x84\1\x8b\24\xa3\1\x84\1\xc9\1\x80\1\x8b\2\x9d\1\x84\2\x83\1\x8b\5\x85\1\x84\3\x98\1\xb0\1\x92\1\x80\2\xb0\1\x8b\1\x80\1\x8b\v\x87\1\x84\1\x88\1\x8b\a\x8a\1\x8b\2\x8a\1\x84\1\x87\1\x84\a\x87\1\x84\2\xa3\1\xa7\1\x9d\1\xa7\1\x80\1\xc6\1\x84\2\x80\6\xa6\1\xb8\1\xb4\1\x9d\4\xa6\1\x80\1\x84\2\x80\n\x84\2\xba\1\x9d\2\xa7\1\x84\2\xb5\1\x9d\6\xa7\3\x84\2\x80\t\xa7\2\x80\5",
b"\x80\4\xa9\1\x9d\1\x98\2\xae\b\x84\1\x87\1\xae\2\x98\1\xae\4\x84\3\xae\t\x9d\1\x98\1\x84\2\x9b\1\x87\1\x84\5\x87\1\x9b\1\xa3\1\x9a\1\xae\b\x98\1\x85\1\x84\1\x87\1\xae\t\x9d\1\xae\1\x98\1\x9d\1\xa7\3\x9d\2\xa7\1\xa6\4\x80\a\x84\1\x87\2\xb6\1\xa6\a\x80\16\x84\2\xa3\1\x8a\26\x87\1\x84\1\x87\1\x8a\4\x96\1\x80\b\xc9\1\x84\2\xa7\2\x9d\1\xa7\1\x9d\1\x80\1\x9b\1\x87\1\x84\2\x9b\1\x84\1\xca\1\x80\3\x8a\n\xb1\1\x84\2\x83\1\x8a\1\xb1\1\x87\1\x84\2\x8d\1\x87\1\x84\1\x87\1\xc0\1\x80\5\x9d\1\xa7\1\x8b\1\x87\1\x84\1\x85\1\x8b\v\x8a\1\x8b\1\x87\1\x84\1\x8b\21\x80\1\x96\1\x90\1\xc1\1\x87\1\xbc\1\x80\1\x9d\2\x8b\1\x87\1\x84\1\x83\1\x8a\1\x8b\4\x85\1\x84\3\x80\5\x90\1\x8a\1\x8b\n\x8a\2\xb1\1\x84\2\x8b\5\x8a\5\x8b\1\x8a\1\xac\1\x8b\1\x84\2\x9a\1\xa3\1\x9a\1\xae\1\x8a\3\x8b\1\x8a\2\xa7\2\xc9\1\x87\2\x80\5\xb6\1\xa6\2\xb6\1\xa7\4\x9d\1\x80\1\x9b\1\x84\1\x80\n\x84\1\x87\1\x84\1\xa7\3\x87\1\x84\1\xba\1\xa7\t\x84\2\x80\t\xa7\2\x80\5",
b"\x80\6\xae\1\x9d\1\x98\1\xae\6\x84\2\xa3\1\xae\a\x87\1\x84\1\x87\1\x98\1\xae\b\xa9\1\xb5\1\x84\2\xae\n\x9d\1\xae\t\x87\3\x98\1\xae\a\x98\1\xae\2\xbe\1\xa7\5\x9d\1\xa7\1\xa6\5\x80\6\x84\2\x80\1\xab\1\xa6\a\x80\16\x84\2\x9b\1\x8a\26\x84\2\x87\1\x8a\1\xb1\1\x8a\2\x80\b\xcb\1\x84\3\x9d\1\xa7\1\x9d\1\xa7\2\xcc\1\x80\2\xad\1\x84\4\x87\1\x9b\1\xc2\1\xcd\1\x8a\n\x84\2\xa3\1\x84\2\x87\1\x84\2\x9a\1\x80\1\x84\3\x80\5\xa7\1\xa9\1\x8a\1\x84\2\x9b\1\x8a\v\x8b\2\x84\2\x8a\1\x8b\1\x8a\16\x8b\1\x80\3\xb9\1\x84\1\xbf\1\x9c\1\x8a\1\x9d\1\x8b\1\x8d\1\x84\1\x85\1\x8a\2\x8b\3\x85\1\x84\3\x80\5\x90\1\x8a\1\x8b\a\x8a\6\x87\1\x84\1\x85\1\x8a\t\x8b\4\x84\2\x8a\1\x8b\2\x8a\1\x8b\1\xb0\1\x80\1\xbe\1\xa7\2\x9d\1\xa7\1\xbd\1\x84\2\x80\5\xb8\1\xa6\2\x80\1\xa7\3\x9d\1\xa7\1\x80\1\x84\2\x80\n\x87\1\x84\2\xa7\3\x87\1\x84\1\xba\1\xa7\t\x87\1\x84\1\x80\b\xbe\1\xa7\2\x80\5",
b"\x80\6\xce\1\xae\a\xa3\1\x84\1\xb5\1\xae\25\x84\2\x9a\1\xae\24\x84\2\x9b\1\xae\b\xcf\1\x80\2\xbb\1\xa7\1\x9d\5\xa7\1\xb8\1\xa6\3\xb8\1\xa6\1\x80\5\x87\1\x84\1\x80\1\xab\1\xa6\6\xb8\1\x80\16\xba\1\x84\2\x8a\26\x84\3\x8a\3\x80\b\x8d\1\x84\3\xa7\1\x9d\2\xa7\1\x9d\1\xa7\1\x9d\1\x80\4\x84\4\x9b\1\x84\a\x87\1\x84\2\x87\1\x84\1\x87\2\x84\3\x87\1\x8a\2\x80\2\xbc\1\x84\1\x87\1\x80\5\x9d\1\xa7\1\x9d\1\xc0\1\x87\2\xb1\1\x8a\f\x87\2\x8a\21\x80\3\x84\2\xa9\2\x8a\3\x9a\1\x84\1\x8a\6\x84\2\x87\1\xa3\1\x80\5\xb0\1\xb1\1\x8a\r\x84\1\x9b\1\x84\1\x8a\f\x98\1\x87\1\x9b\1\xb1\2\x8a\2\x96\1\x80\3\x9d\1\xa7\1\x9d\2\x87\1\x84\1\x87\1\x80\5\xa6\3\x80\1\x9d\4\xa7\1\x80\1\x84\2\x80\n\x84\2\x87\1\x9d\2\xa7\1\x87\1\x84\1\xc5\1\x9d\b\xa7\1\x84\1\xc5\1\x80\b\xbb\1\xa7\1\x9d\1\x80\5",
b"\x80\6\x9d\1\xae\2\x9d\1\xae\1\x9d\1\xae\1\x9d\1\xae\1\x87\1\x84\1\xae\25\x84\2\x9a\1\xae\23\x9d\1\x87\2\x84\1\xae\5\x9d\1\xae\2\xab\1\x80\2\x9d\a\xb4\1\xa6\a\x80\4\x84\2\x80\1\xa6\5\xb8\3\x80\16\xb8\1\x84\2\xb5\1\x8a\25\x9a\1\x84\2\x8a\2\x80\t\xc0\1\x84\1\x80\2\x9d\1\xa7\1\x9d\4\xa7\1\xbe\1\x80\4\x84\1\x87\1\x80\1\xbe\1\x91\1\x87\1\x84\a\x87\1\x84\3\x8d\1\x83\1\xa8\1\xb1\1\x8a\1\x80\5\x84\2\xb9\1\x80\4\xa7\2\x9d\1\x8a\3\xa9\1\xb1\1\x8a\3\xb1\1\x8a\6\x87\1\x84\1\x83\1\x8a\f\xb1\1\x80\1\x8a\2\x96\1\x80\3\x84\1\x87\1\xb1\1\x8a\f\x84\3\x96\1\x80\4\x8a\20\xa3\1\x84\2\x8a\f\x84\2\xa1\1\xa6\3\x80\5\xbe\1\x9d\1\xa7\1\x9d\1\xa7\1\x80\6\xa6\1\xb8\2\xab\1\x80\1\x9d\3\xa7\1\x9d\1\xc3\1\x84\1\xca\1\x80\n\x84\1\x87\2\x9d\2\xa7\1\x87\2\xc3\1\x9d\b\x87\2\xb6\1\x80\b\xa7\1\x9d\2\x80\5",
b"\x80\5\xb8\1\xae\3\x9d\2\xae\3\x9d\1\x84\2\xb5\1\xae\a\x9d\1\xae\f\x84\2\xb5\1\xae\25\x84\2\x9a\1\xae\5\x80\1\xa7\1\x80\3\x9d\a\x9f\1\xb8\1\xa6\6\xd0\1\x80\3\x84\3\xb8\1\xa6\4\xb8\3\x80\16\xa6\1\x84\2\xa7\1\x8a\26\x87\1\x84\1\x8a\1\x92\1\x80\r\xcf\1\x9d\2\xa7\3\x9d\2\xbe\1\x80\3\x84\1\x8d\1\x80\2\x8a\3\x98\1\xae\1\x85\1\x9a\2\x85\1\xae\1\x98\1\x84\3\x8a\1\x80\1\x8a\1\x96\1\x80\5\x84\2\xbf\1\x80\4\x9d\3\x8a\3\x9d\1\x90\1\x8a\2\x80\1\x8a\a\x84\2\x8a\r\x9c\1\x80\2\x8a\2\x80\2\x84\2\xa9\1\x9d\1\x8a\v\xae\1\x84\1\x87\1\x84\1\x80\4\x8a\21\x9a\1\x84\2\x8a\v\x98\1\x8d\1\x87\1\x8a\2\xa6\2\x80\6\x9d\1\xa7\2\x9d\1\xa7\1\x80\5\xa6\1\xb8\2\x80\2\xa7\3\x9d\1\xa7\1\x84\2\x80\v\x84\2\xa3\1\xa7\2\xc3\1\x87\1\x84\1\xa7\b\xc3\1\x87\1\x84\1\xa6\1\x80\b\xa7\3\x80\5",
b"\x80\a\x9d\1\xae\1\x9d\3\xae\1\x9d\1\x80\1\x84\2\xb5\1\xae\4\x9d\1\xae\16\x84\3\xae\26\x9a\1\x84\1\x87\1\xae\2\x9d\1\x80\1\xae\1\x80\5\xa7\1\x9d\2\xa7\3\x9d\1\xbb\1\xa6\4\xb8\2\xa6\2\x80\3\xc4\1\x84\1\x87\1\xb8\2\xa6\4\xb8\1\xa6\1\x80\16\xb2\1\x84\1\x87\1\xb8\1\x9c\1\x8a\24\x87\1\x84\2\x8a\1\x80\17\x9d\b\xce\1\x80\1\xad\1\x84\1\xc6\1\x80\2\x8a\v\x84\3\x80\3\x98\1\x80\5\x84\2\x80\5\x9d\1\xa7\1\x9d\1\x8a\1\xa9\1\xa7\2\x80\1\x8a\1\x92\1\x80\1\x96\1\x8a\5\x84\3\x8a\t\x92\1\x8a\3\x90\1\x80\3\x8a\1\x80\1\x84\1\x87\1\x84\1\x9d\1\x8a\2\x9d\1\x9c\1\x8a\b\x84\4\x80\4\x96\1\x8a\20\x9a\1\x84\2\x8a\t\xb1\1\x98\1\x84\1\x87\1\xb8\3\xa6\2\x80\6\xa4\1\x9d\2\xa7\1\x9d\1\xbe\1\x80\4\xa6\1\xb8\1\xa6\1\x80\2\xa7\1\x9d\2\xc3\1\x84\2\x87\1\x80\n\xc6\1\x84\2\x9d\1\xa7\2\xba\1\x87\1\x84\1\xa7\a\x9d\1\x87\2\xc0\1\xcf\1\x80\b\xa7\1\x9d\1\xa7\1\x80\5",
b"\x80\a\xbe\1\x9d\5\xa7\1\xbb\1\x84\2\xae\3\xb5\1\xae\1\xab\1\x80\2\xae\4\x9d\1\xae\a\x84\3\xae\26\xb5\1\x8d\1\x84\1\xae\2\x80\a\xa8\1\x9d\a\xbb\1\xa6\1\xb8\b\x80\3\x84\2\xb2\1\xb8\a\x80\16\x87\1\x84\1\xc5\1\xb8\1\xa1\1\x80\1\x8a\21\x98\2\x84\2\x85\1\x98\1\x80\17\xa7\2\x9d\6\xa7\1\xa4\1\x8d\1\x84\1\x80\3\x8a\1\x98\1\xa7\1\x9d\1\x8a\a\x84\3\x80\b\x84\2\xc1\1\x80\5\xa7\1\x9d\6\x80\2\xb1\1\x8a\a\x84\1\x87\1\x84\1\x8a\t\x80\1\xb1\1\x8a\3\x80\5\x84\3\x8a\2\x9d\1\x9c\2\x8a\a\xae\1\x87\1\x84\3\x80\4\xb1\1\x8a\a\xb1\1\x8a\2\xb1\1\x8a\2\xa4\1\x8a\2\x87\1\x84\1\x9b\1\x8a\b\x90\1\xb8\1\x98\1\x87\1\x8d\1\xb8\3\xa6\1\xb8\1\x80\6\xa7\1\x9d\1\xa7\2\xa4\1\x9d\1\x80\3\xa6\1\xb8\2\xa6\1\x80\2\x9d\4\x84\2\x87\1\x80\n\x84\2\xc0\1\x9d\3\x9b\1\x84\1\x87\1\x9d\b\x87\2\xa3\1\xbb\1\x80\b\x9d\3\x80\5",
b"\x80\b\xa4\1\xa7\4\x9d\2\x84\2\xab\1\xbb\1\xae\2\xc3\1\xa7\1\x80\1\xb5\1\xae\1\xb5\1\xae\1\xb5\1\x9d\1\xae\2\xb5\1\xae\4\x84\2\x87\1\xae\24\xb5\1\xae\2\x87\1\x84\1\x80\t\xb2\1\xa7\6\x9d\1\xb8\t\xa6\1\xa8\1\x80\2\x84\2\xb2\1\xa6\1\xb8\3\xa6\1\xb8\1\xa6\1\x80\16\x84\1\x87\1\xb8\2\x8a\1\x98\24\x84\2\x98\2\x80\17\xce\1\xc3\1\xa4\a\xc0\1\x87\1\x84\1\x80\2\xab\1\xb6\1\x9d\1\xa9\1\x98\b\x84\3\x80\b\x87\1\x84\1\x80\6\xa7\a\xa8\1\x80\2\x8a\a\x84\3\x8a\5\x9c\1\x8a\2\x80\2\x9c\1\xb1\1\x80\a\x84\3\xa7\1\xa4\1\xa7\1\x80\2\x9c\1\x8a\6\x9b\1\x84\3\xc5\1\x80\6\x8a\3\x80\1\x8a\b\xa7\1\x8a\2\x84\1\x87\1\x84\1\x8a\a\xaa\1\x80\1\xb8\1\xa9\1\x84\2\x8a\1\xb8\4\x80\6\xcf\1\xa4\1\xc3\1\xa4\1\x9d\1\xa4\1\xcc\1\x80\2\xb8\2\xa6\2\x80\2\x9d\2\xa7\1\x9d\1\x84\3\x80\t\x84\1\x87\1\x84\1\xa4\1\x9d\1\xa4\1\x9d\1\x84\2\x9b\1\x9d\b\x84\1\x87\1\xa3\1\xbb\1\x80\b\x9d\1\xa7\2\x80\5",
b"\x80\b\xc3\1\xa4\1\xc3\1\xa4\1\xc3\2\xba\1\x87\1\x84\1\x80\1\x9d\1\xb5\2\x80\5\xb5\1\xbb\2\x80\1\xc3\1\xb5\6\x84\3\xb5\1\xae\1\xb5\26\x9d\1\x80\t\xc3\1\xa4\6\xc3\1\xb8\v\x80\2\xa8\1\xb8\b\x80\17\x84\2\xb8\2\xa9\1\x98\1\x8a\1\x98\22\x84\2\xab\1\x80\21\xc3\b\xa3\1\x84\2\xa4\1\xa6\1\x80\1\x98\1\x9d\1\x98\t\xb4\1\x84\2\x80\b\x87\2\x80\6\xb6\1\xc3\1\xa4\5\xc3\1\x80\3\x8a\2\xab\1\xb1\2\x80\1\x84\2\x83\1\xb1\2\x8a\1\xb1\1\x80\16\xa8\1\x84\2\x9b\1\xc3\1\x9d\1\x80\3\x96\1\x8a\1\x80\3\xab\1\xb0\1\x84\3\x87\1\xc1\1\x80\t\x9c\1\x8a\3\xb0\1\x80\2\xb1\1\x8a\1\x80\1\xbe\1\xa7\1\x84\2\x88\1\x8a\4\x9d\1\x8a\2\xb1\1\x80\1\xb8\1\x87\1\x84\1\x87\1\xb8\5\x80\a\xa4\2\xc3\1\xa4\1\xc3\2\x80\1\xab\1\xa6\1\xb8\2\x80\3\xa7\1\x9d\1\xa4\1\xc3\1\x84\2\xba\1\x80\b\xc4\1\x84\1\x87\2\xa4\3\xc3\1\x84\2\xa3\1\xa4\a\xc3\1\x87\1\x84\1\xc3\1\xb2\1\x80\b\xa4\3\x80\5",
b"\x80\b\xb2\1\xc3\5\x84\2\xb9\1\x80\t\xc3\1\x80\1\xb5\t\x87\1\x84\2\xb5\31\x80\b\xcf\1\xc3\b\xb8\1\xbb\1\xb8\n\xa6\2\xb8\b\x80\17\x84\1\x87\1\xb8\1\xa9\1\x98\17\x9c\1\x98\2\x80\1\x98\2\x87\1\x84\1\x80\23\xc3\1\xa4\2\xc3\4\xc5\1\x84\1\x87\1\xc3\4\x9d\1\x98\n\x84\2\x80\b\x87\1\x84\1\x80\a\xa4\1\xc3\6\x80\b\x9b\1\x84\1\x87\1\x80\3\x8a\1\x80\17\xba\1\x87\1\x84\1\xc3\2\xa7\1\x80\2\x9c\1\x80\a\x84\2\x87\1\x84\1\xc9\1\x80\v\x92\1\x80\2\x90\1\x80\6\x84\2\x8a\1\xcf\1\xc3\1\xa9\1\x8a\1\x9d\1\xc3\4\x9f\1\x87\1\x84\1\x87\1\xb8\1\xbb\1\xb8\3\x80\a\xa4\1\xc3\5\xab\1\xb8\2\xa6\1\xbb\1\x80\3\xa6\1\xc3\2\x9b\1\x84\2\xc3\1\x80\b\x84\3\xc3\5\x84\2\x9b\1\xc3\a\x84\1\x87\1\x84\1\xc3\1\xa7\1\x80\b\xc3\3\x80\5",
b"\x80\b\xa8\1\xc3\5\x84\1\x87\1\xc9\1\x80\n\xd1\1\xb6\1\xb5\1\xa7\1\xb5\6\x87\1\x84\2\xb5\27\xc3\1\x80\t\xc3\1\xa4\1\xc3\a\xb8\f\xbb\2\xb8\b\x80\16\xd1\1\xba\1\x84\1\x87\1\x98\20\x9f\1\xb1\1\xab\1\x80\1\xd2\1\x98\1\x84\3\x80\22\xc3\b\x84\2\x9b\1\xc3\4\x98\5\xa9\2\x98\2\xc0\1\x87\1\x84\1\x80\b\xc9\1\x87\1\x84\1\xcc\1\x80\5\xc3\a\xa4\1\x80\a\x87\1\x84\1\x9b\1\x80\22\xb6\1\x9b\1\x84\2\xc3\2\x80\v\x84\4\xc0\1\x80\34\xbb\1\xa4\1\xc3\4\x84\2\xc0\1\xb8\5\x80\a\xc3\6\xbb\1\xb8\4\x80\3\xa8\1\xc3\2\x84\3\xc3\1\x80\a\xbe\1\x87\1\x84\1\xc1\1\xa4\2\xc3\3\x84\2\x87\1\xc3\a\x84\3\xc3\1\xa7\1\x80\b\xc3\3\x80\5",
b"\x80\t\xc3\5\x9b\1\x84\2\x80\n\xce\1\x80\1\xb5\1\x80\1\xb5\1\xc3\1\xb5\4\x87\1\x84\2\xb5\27\xc3\1\x80\t\xc3\b\xb2\1\xb8\2\xbb\n\xb8\1\xbb\a\xb8\1\xab\1\x80\16\xa8\1\xb8\1\x84\2\x9b\1\xa9\1\x98\r\x9d\2\x80\3\xd3\1\x80\1\xc4\1\x84\2\x80\22\xa4\1\xc3\b\x87\1\x84\1\xc5\1\xc3\3\x98\5\xa9\1\x80\1\xa9\1\xb8\1\x84\2\xc0\1\x80\t\x84\1\x87\1\x84\1\x80\5\xb2\1\xc3\a\xb6\1\x80\6\x84\2\xc9\1\x80\21\xb2\1\xc3\1\x84\2\x87\1\xc3\2\x80\v\x84\5\x80\36\xa4\1\xc3\2\xba\1\x87\1\x84\1\xa4\1\xb8\4\xbb\1\x80\a\xab\1\xc3\6\xb8\3\xab\1\x80\4\xc3\2\x84\3\xc3\1\xb2\1\x80\6\x84\2\xc5\1\x9f\1\xc3\5\x87\1\x84\2\xc3\a\x84\3\xc3\1\xa4\1\x80\b\xc3\3\x80\5",
b"\x80\t\xc3\3\xa4\1\xc3\2\x84\2\x80\16\xb6\1\xc3\4\xb5\2\x84\2\xb5\20\xc3\1\xb5\2\xc3\1\xb5\3\x80\t\xbe\1\xc3\b\xbb\1\xb8\2\xbb\6\xb8\r\x80\17\xab\1\xbb\1\x84\2\x87\1\x98\1\x80\2\x92\1\x98\t\x9d\1\xc3\2\x80\6\x84\2\xa8\1\x80\22\xc3\b\x84\2\xba\1\xc3\3\x9d\1\x98\4\xb4\1\x80\3\x84\2\x80\n\x84\3\x80\6\xc3\a\xa4\1\xc3\1\x80\5\x84\2\xc9\1\x80\21\xc3\2\x84\3\xc3\1\x80\f\xc6\1\x84\4\x80\37\xc3\2\xba\1\x84\2\xa4\1\xb8\3\xbb\1\xb8\1\x80\b\xc3\6\xb2\1\xbb\1\xb8\1\x80\5\xc3\2\x84\1\x87\1\x84\1\xc3\2\x80\5\xc4\1\x84\2\x80\1\xc3\6\xc0\1\x84\2\xc3\a\x84\1\x87\1\x84\1\xc3\2\x80\a\xb6\1\xc3\2\xa7\1\x80\5",
b"\x80\t\xb2\1\xc3\5\x84\2\xc8\1\x80\r\xb2\1\xc3\5\xb5\1\x84\2\xb5\2\xc3\1\xb5\6\xa7\1\xc3\2\xb5\1\xc3\1\xb5\2\xc3\1\xa7\1\xc3\2\x80\f\xc3\1\xa4\1\xc3\a\xb8\2\xbb\24\x80\17\xa6\1\xbb\1\x87\1\x84\1\x87\1\xb8\1\xc8\2\x98\n\xc3\3\x80\6\x84\2\xbe\1\x80\22\xc3\b\x84\2\xc0\1\xc3\3\x98\1\xc3\1\x98\3\x80\4\x84\2\x80\n\x87\1\x84\2\x80\6\xc3\b\xa4\1\xab\1\x80\4\x87\1\x84\1\xb9\1\x80\20\xa4\2\xc3\1\x84\3\xa4\1\x80\r\x84\4\x80\37\xc3\2\xc5\1\x84\2\xc0\1\xbb\2\xb8\1\xbb\1\xb8\1\x80\b\xc3\6\xa4\1\xb8\1\x92\1\x80\5\xc3\2\x84\1\x87\1\x84\1\xa4\1\xc3\1\xb2\1\x80\4\xbf\1\x84\1\x87\1\xb7\1\xa4\1\xc3\6\x84\2\xba\1\xc3\6\x84\1\x87\2\xc3\2\x80\a\xb2\1\xc3\2\xb2\1\x80\5",
b"\x80\n\xc3\1\xa4\1\xc3\2\x84\2\xc0\1\xa4\1\x80\r\xc3\6\x9b\1\x87\1\x84\1\xc3\5\xb5\1\xba\1\xc3\2\x80\1\xd3\1\x80\25\xc3\6\xa4\1\xc3\2\xbb\25\xb6\1\x80\17\xbb\3\xc5\1\xa7\1\xa8\1\x80\1\x98\v\xc3\1\x98\1\x9d\1\xcf\1\x80\5\xa8\1\xb2\1\x80\23\xc3\b\xc5\1\xc0\1\xc3\a\x98\1\x9d\1\x80\4\x84\1\x87\1\x80\v\xc1\1\xb6\1\x80\6\xa7\1\xc3\1\xa4\1\xc3\4\xa4\1\xc3\2\xa4\1\x80\3\x84\1\x87\1\x84\1\x80\17\xc3\4\xa3\1\x84\2\xc3\1\x80\r\xcf\1\x84\3\xa8\1\x80\37\xc3\2\x84\2\x9b\1\xc3\1\xbb\3\xa6\1\x80\b\xa6\1\xc3\6\xbb\1\x80\6\xc3\2\x87\1\x84\2\xc3\2\xa4\1\x80\5\x84\1\x87\1\xba\1\xc3\a\x84\3\xc3\6\x84\3\xc3\1\xa4\1\x80\a\xa4\2\xc3\1\xcf\1\x80\5",
b"\x80\n\xc3\3\xc5\1\x84\2\xc3\2\xb2\1\x80\f\xc3\6\x84\2\x87\1\xc3\t\xb2\1\x80\24\xbb\1\xc3\a\xa4\1\xc3\1\xb6\1\xab\1\xb8\1\xbb\23\x80\20\xbb\2\xb8\1\x9f\1\xa9\2\x80\1\x98\b\xae\1\x98\3\x9d\1\xc3\2\x80\32\xa6\1\xc3\17\xae\1\xc3\1\xb6\1\x80\4\x84\2\xad\1\x80\23\xc3\v\xb2\1\x80\1\xb9\1\x84\2\x80\16\xa4\1\xc3\5\x87\1\x84\1\xbb\1\x80\16\x87\1\x84\2\xc5\1\x80\37\xc3\2\x84\1\x87\1\x84\1\xc3\2\xb8\1\xbb\1\xb6\1\x80\t\xc3\6\xbb\1\x80\6\xc3\2\x9b\1\x84\1\x87\1\xc3\3\xa4\1\x80\4\x84\1\x87\1\xc5\1\xc3\a\x87\1\x84\2\xc3\6\x84\3\xc3\2\x80\a\xc3\3\xb6\1\x80\5",
b"\x80\n\xb6\1\xc3\2\xa3\1\x84\1\x87\1\xc3\3\x80\v\xcc\1\xc3\6\x84\2\xc0\1\xc3\n\xd4\1\x80\21\xd5\1\xc3\v\x80\2\xbb\22\xb8\1\xbb\1\x80\20\xbb\2\x9f\1\xa9\1\x9f\1\x98\1\xae\1\x98\4\xae\3\x98\1\x9d\1\xae\1\x98\2\xc3\3\xcc\1\x80\32\xc3\21\x80\5\x9b\1\x84\2\x80\23\xc3\r\xab\1\x84\2\xc8\1\x80\r\xc3\6\x84\2\xb9\1\x80\17\x84\3\x80\37\xc3\2\x84\2\x87\1\xc3\3\xbb\1\xab\1\x80\t\xc3\6\xa6\1\x80\6\x9f\1\xc3\1\xc5\1\x84\2\xc5\1\xc3\3\x80\5\xc5\1\xc3\b\x87\1\x84\1\x87\1\xc3\6\xc0\1\x84\2\xc3\2\x80\a\xc3\3\xa8\1\x80\5",
b"\x80\v\xc3\2\x9b\1\x87\1\x84\1\xc3\4\x80\n\xc3\a\x87\2\xc3\f\xbb\1\x80\16\xb2\1\xc3\f\xab\1\x80\2\xbb\23\x80\20\xbb\5\xb4\1\x98\2\xae\4\x98\1\xae\1\x98\1\xae\1\xa6\1\x98\1\x9d\2\xae\1\xc3\1\xa4\1\xc3\1\x80\32\xc3\21\x80\6\x84\2\xa8\1\x80\23\xc3\f\xa4\1\x87\1\x84\1\xb2\1\x80\r\xc3\6\x84\2\xc5\1\x80\20\x87\1\x84\1\x80\36\xc3\3\xc0\1\x84\2\xc3\4\xa4\1\x80\a\xa6\1\xc3\a\xa6\1\x80\a\xc3\2\x84\2\xba\1\xc3\4\x80\4\xc3\t\xba\1\x87\1\x84\1\xc3\a\x84\1\x87\1\xc3\2\x80\a\xc3\3\x80\6",
b"\x80\v\x92\1\xc3\1\x9b\1\x84\2\xc3\5\x80\t\xc3\a\x84\2\xc3\17\x80\t\xb2\1\xc3\r\xa4\1\xc3\1\x80\3\xbb\22\x92\1\x80\20\xbb\3\xb4\1\xae\1\xbb\1\xae\b\x92\1\x80\2\x9d\1\xc3\6\x80\32\xb2\1\xc3\20\x80\6\x87\1\x84\1\xcf\1\x80\23\xab\1\xc3\f\x84\2\xc3\24\x84\1\x87\1\xb6\1\x80/\xa4\1\xc3\3\x9b\1\x84\1\x87\1\xc3\24\x80\b\xc3\2\x84\2\xc3\6\xa4\1\x80\1\xc3\v\x84\2\xc0\1\xc3\5\xc5\1\x84\1\x87\1\xc3\2\x80\a\xc3\3\x80\6",
b"\x80\f\xc3\1\xa3\1\x84\1\x87\1\xc3\6\xd5\1\x80\5\xcc\1\xc3\b\x84\1\x87\1\xc3\21\xa4\1\xb2\2\xa4\1\xc3\22\x80\4\xbb\22\x80\20\xd0\1\xbb\5\xa6\1\xae\1\xa6\1\xb8\1\xae\2\x9d\1\xae\2\xb4\1\x80\2\xc3\a\xb6\1\x80\31\xcf\1\xc3\17\xbb\1\x80\6\x84\2\xcf\1\x80\24\xc3\v\xba\1\x84\2\xc3\24\x87\1\x84\1\xbe\1\x80-\xd6\1\xc3\5\x84\3\xc3\22\xa4\1\xc3\1\x80\b\xa6\1\xc0\1\x87\1\x84\1\xc3\23\x84\2\xc0\1\xc3\5\x9b\1\x84\2\xc3\2\x80\a\xc3\3\x80\6",
b"\x80\f\xc3\1\xc5\1\x87\1\x84\1\xc0\1\xc3\1\xc5\2\xc3\4\xbb\1\x80\3\xc3\t\x84\3\xc3\1\xc5\1\xc3\v\xc5\4\xc3\b\xc5\1\xc3\v\xd3\1\x80\4\xbb\22\x80\20\xbb\5\xae\2\xa6\1\x80\1\x9d\1\xa1\1\xae\2\x9d\1\xae\1\x80\3\xab\1\xc3\2\xc5\1\xc3\4\x80\31\xb2\1\xc3\17\x80\a\xb9\1\x87\1\xcf\1\x80\25\xc3\n\x84\2\xc0\1\xc3\23\xc0\1\x84\2\xc3\1\x80+\xb6\1\xc3\2\xc5\2\xc3\3\x84\1\x87\1\xba\1\xc3\1\xc5\1\xc3\17\xc5\1\xc3\1\xd3\1\x80\t\x84\3\xc3\6\xc5\2\xc3\v\x87\2\xc0\1\xc5\1\xc3\4\x84\2\x87\1\xc3\2\x80\6\xab\1\xc3\3\x80\6",
b"\x80\f\xab\1\xc5\1\xc0\1\x87\1\x84\1\xc3\b\xc5\2\xc3\1\xc5\1\xc3\b\xc0\1\x84\2\xc5\1\xc3\37\xc5\1\xc3\1\xa4\1\xc3\1\x80\6\xbb\22\x80\17\xbb\6\xb4\1\xa6\1\x80\2\xd7\1\x80\1\x96\1\xae\1\xb8\2\x80\4\xc5\1\xc3\1\xc5\6\x80\27\xcf\1\xc5\r\xc3\1\xc5\2\x80 \xc5\2\xc3\1\xc5\1\xc3\5\x84\1\x87\1\xc5\1\xc3\23\x87\2\x84\1\xc5\1\xc3\1\x80%\xa6\1\xc3\2\xc5\3\xc3\6\xc5\1\x84\2\xc3\2\xc5\1\xc3\16\xc5\2\x80\v\x84\1\x87\2\xc3\1\xc5\1\xc3\1\xc5\17\xc3\1\x9b\2\xc3\3\xc5\1\xc3\2\x84\2\xba\1\xc3\2\x80\6\xbb\1\xc3\3\x80\6",
b"\x80\r\xc5\2\x84\2\xc5\25\x87\1\x84\1\xba\1\xc5\37\xc3\2\xc5\1\xab\1\x80\6\xbb\21\x9f\1\xaa\1\x80\r\xd1\1\xbb\5\x9f\1\xd3\1\x80\5\xaa\1\xae\1\x80\6\xc5\a\xc3\2\x80\23\xd2\1\xd5\1\xc3\3\xc5\16\xcf\1\x80!\xa4\1\xc5\1\xa4\1\xc5\5\x84\1\x87\1\xc5\24\x84\2\x87\1\xc3\1\xc5\2\xd3\1\x80\37\xd4\1\xb2\1\xc5\1\xc3\1\xc5\f\xba\1\x84\2\xc3\1\xc5\21\x80\f\x84\2\xb2\1\xc5\25\xc3\1\xc5\5\x84\2\xc5\2\xc3\1\x80\6\xa4\1\xc5\3\x80\6",
b"\x80\r\xbb\1\xc5\1\x84\1\x87\1\xc5\25\x84\1\x87\1\xc0\1\xc5!\xd3\1\x80\a\xbb\1\x9f\1\xbb\21\x80\r\xbb\a\x80\6\x9d\1\x92\1\x80\6\xc5\n\xb2\1\xab\1\x80\16\x92\1\xc5\24\x80$\xab\1\xc3\1\xc5\4\x84\2\xc5\24\x84\2\x9b\1\xc5\6\x80\33\xb2\1\xc5\21\xba\1\x84\2\xc5\20\xbb\2\x80\f\x84\2\x92\1\x80\1\xa6\1\xc3\1\xc5\23\xc3\2\xc5\3\x87\1\x84\1\xc5\3\x80\6\xc5\4\x80\6",
b"\x80\16\xa4\1\x84\2\xba\1\xc5\24\x84\1\x87\1\xa3\1\xc5\37\xb6\1\x80\b\xbb\1\x9f\1\xbb\1\x9f\17\xbb\3\x80\v\xbb\1\x9f\6\xbb\1\x80\16\xaa\1\xc5-\x80'\xa4\1\xc5\3\x84\2\xc5\24\x84\2\x87\1\xc5\b\xb9\1\x80\26\xc5\25\x84\2\xc5\f\xa4\1\x9f\3\xbb\2\x80\f\x84\1\x87\1\xbb\1\x80\3\xb2\1\xc5\27\x84\2\xc5\3\xa6\1\x80\5\xc5\4\x80\6",
b"\x80\17\x84\2\xba\1\xc5\24\xba\1\x84\1\xa3\1\xc3\1\xc5\34\xbb\1\x80\n\x9f\25\xd2\1\x80\t\x9f\6\xbb\1\x9f\1\xd7\1\x80\17\xc5-\x80(\xa4\1\xc5\2\x87\1\x84\1\xc5\24\x9b\1\x84\2\xc5\a\xc3\1\xc5\2\xb7\1\x80\23\xc5\1\xb9\1\xc5\24\x84\2\xc5\t\xbb\1\x80\1\xaa\1\x9f\5\xbb\1\x80\f\x84\2\x87\1\x80\4\xa4\1\xc5\26\x84\1\x87\1\xc0\1\xc5\2\xa4\1\x80\4\xaa\1\xc5\4\x80\6",
b"\x80\17\xa6\1\xc50\xb9\1\xb2\1\xab\1\x80\16\xbb\1\x9f\1\xbb\1\x9f\23\x80\b\xbb\1\x9f\a\xbb\1\x80\20\xa4\1\xc5+\x80*\xc5\2\x9b\1\x84\2\xc5\24\x84\2\xc0\1\xc5\r\xb2\1\xaa\1\x80\r\xaa\1\xc5\26\x84\1\x87\1\x84\1\x9f\5\x80\5\xbb\1\x9f\3\xbb\2\x92\1\x80\f\xa4\1\x87\1\x84\1\x80\6\xc5\25\x84\3\xc5\3\x80\4\xa4\1\xc5\3\xa4\1\x80\6",
b"\x80\20\xc5-\xd7\1\x80\22\xaa\1\x9f\26\xbb\1\x80\5\xd7\1\xbb\1\x9f\a\xbb\1\x80\22\xbb\1\xc5(\xa4\1\x80,\xc5\2\x84\2\x9b\1\xc5\23\x84\3\xc5\22\xa4\1\xb2\2\xc5\36\x9b\1\x84\2\xbb\1\x9f\4\x80\5\x9f\4\xbb\1\x9f\1\xaa\1\x80\r\x87\1\x84\1\xc5\1\x80\6\xab\1\xc5\24\x84\1\x87\1\xc0\1\xc5\2\xd7\1\x80\3\xc5\4\xa6\1\x80\6",
b"\x80\21\xc5+\x80\24\xbb\1\x9f\27\xbb\1\xd8\1\x80\1\xd8\1\xaa\1\x9f\t\x80\24\xc5(\x80-\xc5\2\x84\3\xc5\23\x84\3\xc53\x9b\1\x87\2\x9f\5\x80\4\xaa\1\x9f\4\xbb\1\x9f\1\xd7\1\x80\r\x84\2\x9b\1\x80\b\xc5\23\x84\1\x87\1\xc0\1\xc5\2\x9f\1\x80\3\xc5\4\xaa\1\x80\6",
b"\x80\22\xc5(\xa6\1\x80\25\x9f%\x80\26\xc5%\xd9\1\x80/\xc5\1\x84\2\x87\1\xc5\23\x84\3\xc52\xb2\1\xc3\1\x84\2\x9f\1\xbb\1\x9f\3\x80\4\xbb\1\x9f\4\xbb\1\x9f\1\x80\16\x84\3\x80\a\x92\1\xc5\23\x87\2\x9b\1\xc5\3\x80\2\xd7\1\xc5\4\x80\a",
b"\x80\23\xc5'\x80\25\x92\1\x9f$\xd7\1\x80\27\xc5\"\x802\xa4\1\x84\3\xc5\23\x84\3\xc50\xa7\1\x9f\3\x87\1\x84\1\x9f\5\xd7\1\x80\3\x9f\a\x80\16\x84\3\x80\a\xc5\24\x87\2\x9b\1\xc5\3\x9f\1\x80\1\xc5\5\x80\a",
b"\x80\23\xc5&\x80\26\x96\1\x9f#\xd7\1\x80\30\xd7\1\xc5\37\xb8\1\x803\xa6\1\x9b\1\x84\2\xc5\23\xc0\1\x84\2\xc5/\xd7\1\x9f\4\x9b\1\x84\1\x9f\5\xda\1\x80\3\x9f\a\x80\16\xc5\1\x84\1\x87\1\x80\6\xd2\1\xc5\24\x87\1\x84\1\x9b\1\xc5\4\xd7\1\xc5\5\x80\a",
b'\x80\24\xc5$\x95\1\x80\26\xb8\1\x9f"\x92\1\x80\32\xa4\1\xc5\34\x9f\1\x806\xc5F\x80\3\x9f\v\x95\1\x80\2\xd7\1\x9f\a\x80\27\xa7\1\xc5 \x9f\1\x80\a',
b'\x80\25\xc5"\x80\30\xbb\1\x9f!\xbb\1\x80\34\xc5\32\xbb\1\x808\xc5D\xb2\1\x80\4\x9f\v\x96\1\x80\2\xa6\1\x9f\a\x80\27\xc5!\x95\1\x80\a',
b"\x80\25\xb2\1\xc5 \x80\31\xbb\1\x9f!\x80\35\xa4\1\xc5\30\xa4\1\x809\xc5C\x92\1\x80\5\x9f\v\x96\1\x80\2\x9f\b\x80\27\xc5!\x80\b",
b"\x80\26\xc5\37\x80\32\xa6\1\x9f \x80\36\xd7\1\xc5\27\x80;\xc5B\x80\a\x9f\v\xb8\1\x80\2\x9f\a\xb8\1\x80\27\xc5!\x80\b",
b"\x80\27\xc5\35\x80\33\x95\1\x9f\37\xb8\1\x80\37\xbb\1\xc5\25\xb8\1\x80;\xa4\1\xc5\22\xc6\1\xc5\1\xc6\1\xc5*\xb9\1\x80\b\x9f\v\xb8\1\x80\2\x9f\a\x96\1\x80\26\x95\1\xc5\35\xc6\1\xc5\2\xc6\1\x80\b",
b"\x80\27\xda\1\xc6\1\xc5\32\xa6\1\x80\33\xda\1\x9f\37\x80 \xda\1\xc5\25\x80<\xbb\1\xc5\16\xc6\2\xc5\1\xc6\1\xc5\2\xa4\1\x80\1\xc6\1\xc5(\x80\t\x9f\v\xbb\1\x80\1\xdb\1\x9f\a\x95\1\x80\26\x95\1\xc5\36\xc6\1\xc5\1\xa6\1\x80\b",
b"\x80\30\xc5\1\xc6\2\xc5\27\xc6\1\x80\35\x9f\37\x80!\xc5\25\x80=\xc5\16\xc6\1\xc5\2\x80\6\xc5&\xc6\1\x80\n\x9f\1\xb2\1\x9f\n\x80\1\x95\1\x9f\a\xda\1\x80\27\xc6\1\xc5\37\x80\t",
b"\x80\31\xc6\1\xc5\1\xc6\27\x80\1\xa4\1\xc5\2\xc6\a\x80\23\x96\1\x9f\36\x80!\xc6\25\x80=\xc6\16\xc5\2\x9f\1\x80\6\xa4\1\xc6%\x80\v\xb8\1\x9f\v\x80\1\xbb\1\x9f\a\x80\30\xc6\37\x80\n",
b'\x80\31\x9f\1\xc6\26\xc5\2\xc6\1\xc5\1\xc6\6\xc5\1\xc6\2\xa4\1\x80\23\x9f\2\xb2\1\x9f\33\x80!\xc6\23\xc5\1\xc6\1\x80=\xc6\20\xdc\1\x80\6\xda\1\xc6\1\xc5\1\xc6"\x80\f\x96\1\x9f\n\xbb\1\x80\1\x9f\b\x80\30\xc6\37\x80\n',
b"\x80\31\x95\1\xc6\26\xc5\1\xc6\1\xc5\1\xc6\f\x80\22\x9f\36\x80!\xc6\24\xc5\1\x80=\xc6\20\x80\b\xc6#\x9f\1\x80\f\x94\1\x9f\n\xb8\1\x80\1\x9f\b\x80\30\xc6\36\xc5\1\x80\n",
b"\x80\31\xdc\1\xc6%\x96\1\x80\21\x95\1\xb2\35\x80 \xdc\1\xc6\24\x80>\xb9\1\xc6\17\x80\b\xc6#\x80\r\x94\1\x9f\n\x96\1\x80\1\x9f\b\x80\30\xc6\37\x80\n",
b"\x80\31\xdc\1\xc6&\x80\22\xb2\1\x9f\1\xb2\33\x80 \x9f\1\xc6\24\x80>\xb8\1\xc6\17\x80\b\xb9\1\xc6\3\xc5\1\x80\2\xc0\1\xc6\32\xb2\1\x80\r\x96\1\x9f\n\x96\1\xdc\1\xb2\1\x9f\6\xb2\1\x80\30\xc6\1\xc5\1\xc6\34\xa4\1\x80\n",
b"\x80\32\xc6&\x80\22\xb8\1\xb2\34\x80 \xc6\24\xa1\1\x80?\xc6\17\x80\20\xc0\1\xc6\30\xc5\1\x80\16\xb8\1\x9f\1\xb2\t\x96\1\x94\1\xb2\a\xa7\1\x80\30\xc6\36\xdc\1\x80\n",
b"\x80\32\xc6\32\xc5\1\xb0\1\xda\1\xa7\1\xc6\t\x80\22\xdc\1\xb2\1\xa7\1\xb2\31\x80\37\xdd\1\xc6\24\x80@\xc6\17\xb0\1\x80\17\xb8\1\xc6\30\x80\17\x9f\1\xb2\n\xb0\2\xb2\b\x80\30\xc6\36\x80\v",
b"\x80\32\xc6\30\xc0\1\x80\6\xc6\b\x96\1\x80\22\xb2\1\x9f\1\xb2\31\x80\37\xb8\1\xc6\24\x80@\x9f\1\xc6\r\xc0\1\xa4\1\x80\20\xc6\30\x80\17\xa7\1\x9f\1\xb2\t\xb0\2\xb2\a\x9f\1\x80\27\xd2\1\xc6\36\x80\v",
b"\x80\32\xc6\30\x80\a\xa1\1\xc6\b\x80\23\xa7\1\xb2\31\x80\37\xc6\25\x80A\xc6\17\x80\20\xc6\27\xb0\1\x80\17\xb2\1\x9f\1\xb2\t\x9f\1\xb8\1\xa7\1\xb2\6\x9f\1\x80\27\xc6\36\x9f\1\x80\v",
b"\x80\32\xc6\30\x80\b\xc6\b\x80\23\xb8\1\xa7\1\xb2\6\xa7\22\x80\37\xc6\25\x80A\xc6\17\x80\20\xc6\27\x80\20\xb2\1\xa7\v\x9f\1\xa7\a\xb2\1\x80\27\xc6\36\x80\f",
b"\x80\32\xc6\30\xde\1\x80\a\xc6\b\xa1\1\x80\23\xa7\31\x80\37\xc6\25\x80A\xc6\20\x80\17\xc6\27\x80\20\xa7\f\xb2\1\xa7\b\x80\26\xd1\1\xc6\36\x80\f",
b"\x80\32\xc6\30\x94\1\x80\a\xb0\1\xc6\b\x80\23\xb4\1\xa7\30\x80\36\xdd\1\xc6\25\x80B\xc0\1\xc6\16\xb8\1\x80\16\xc6\26\xa4\1\x80\20\xa7\f\xb4\1\xa7\b\x80\26\xc6\36\x94\1\x80\f",
b"\x80\32\xc6\30\x9f\1\x80\b\xc6\b\x80\23\xdf\1\xa7\30\x80\36\xa7\1\xc6\24\xa4\1\x80B\xc6\16\xc0\1\xc6\1\xc0\1\x80\r\xc6\26\xa2\1\x80\20\xa7\25\x80\25\xb4\1\xc6\35\xa1\1\x80\r",
b"\x80\32\xc6\30\xa4\1\x80\b\xc6\b\xb0\1\x80\23\xa7\30\x80\36\xc6\25\xa7\1\x80B\xc0\1\xc6\20\xb0\1\x80\v\xb0\1\xc6\26\x80\21\xa7\25\x80\25\xc6\36\x80\16",
b"\x80\32\xa4\1\xc6\30\x80\b\xdf\1\xc6\b\x80\23\xa7\30\x80\36\xc6\25\x9f\1\x80C\xc0\1\xc6\20\xa4\1\x80\n\xc5\1\xc6\1\xc0\1\xc6\24\x80\21\xa7\25\x80\25\xc0\1\xc6\34\xb0\1\x80\16",
b"\x80\32\xa1\1\xc6\30\x80\t\xc6\b\xdf\1\x80\22\xa7\30\x80\36\xc6\25\xe0\1\x80D\xc6\21\xc0\1\x80\t\xc0\1\xc6\26\x80\21\xa7\24\xb4\1\x80\24\xc0\1\xc6\32\xc0\1\xc6\2\x80\17",
b"\x80\32\xa2\1\xc6\30\x80\t\xc6\b\xa1\1\x80\22\xa7\30\x80\36\xc6\25\x80E\xa4\1\xc6\22\xcd\1\x80\a\xc6\27\x80\21\xa7\24\xb4\1\x80\24\xc6\2\xc0\1\xc6\32\x80\20",
b"\x80\33\xc6\30\x80\t\xc6\b\xa7\1\x80\22\xa7\30\x80\36\xc6\25\x80F\xc6\23\xc0\1\x94\1\x80\4\xdf\1\xc6\27\x80\20\xe1\1\xa7\24\x9f\1\x80\23\xc6\34\xa2\1\x80\21",
b"\x80\33\xc6\30\x80\t\xc6\b\xc5\1\x80\22\xa7\30\x80\35\xe1\1\xc6\25\x80G\xa1\1\xc6\25\xa1\1\xc6\30\xb0\1\x80\20\xe1\1\xa7\24\xa1\1\x80\22\xc6\32\xad\1\xc6\2\x80\22",
b"\x80\33\xc6\30\x80\t\xc6\t\x80\22\xb4\1\xa7\27\x80\35\xa1\1\xc6\25\x80H\xc6\25\xe2\1\xc6\30\x80\21\xe1\1\xa7\24\xa1\1\x80\21\xd0\1\xc0\1\xc6\31\xc0\1\xc6\1\x80\23",
b"\x80\32\xe1\1\xc6\27\xe2\1\x80\t\xad\1\xc6\b\x80\22\x90\1\xa7\27\x80\35\xc5\1\xc6\22\xe2\2\xc6\1\x80I\xc6\21\xad\1\xc6\33\x80\21\xe1\1\xa7\24\xa1\1\x80\21\xc6\1\xe2\1\xc6\32\x80\24",
b"\x80\32\xa7\1\xc6\30\x80\t\xc6\6\xe2\1\xc6\2\x80\22\xa2\1\xa7\27\x80\35\xc6\23\xe2\1\xc6\1\xa7\1\x80K\xc6*\xb4\1\x80\22\xa7\24\x90\1\x80\20\xe2\1\xc6\30\xad\1\xc6\2\xa4\1\x80\24",
b"\x80\32\xc5\1\xc6\30\x80\b\xa1\1\xc6\t\x80\22\xe1\1\xa7\27\x80\35\xc6\25\xa1\1\x80K\xa2\1\xc6)\xe1\1\x80\b\xe3\1\x80\t\xa7\24\x90\1\x80\17\xc5\1\xc6\31\xe2\1\xc6\1\xc0\1\x80\25",
b"\x80\32\xc5\1\xad\30\xe1\1\x80\a\xe2\1\xad\a\xc6\1\xa4\1\x80\23\xa7\27\x80\35\xe2\1\xad\24\x80N\xad(\xc3\1\x80\b\xc3\1\x80\t\xa7\24\x90\1\x80\16\x90\1\xc6\34\xa1\1\x80\25",
b"\x80\32\xa4\1\xad\30\xc5\1\x80\6\xa7\1\xad\a\xe2\1\xad\1\x90\1\x80\23\xa7\27\x80\35\xad\24\xe2\1\x80O\xe2\1\xad#\xe2\2\xad\1\xc3\1\x80\a\xc3\2\x80\1\xc3\1\x80\2\xc3\1\x80\4\xa7\24\xb0\1\x80\16\xad\33\xc6\1\xa7\1\x80\26",
b"\x80\32\xa1\1\xe2\30\xc6\1\x80\1\xa2\1\x80\1\xe4\1\x80\2\xe2\1\xc0\1\xe2\b\x80\24\xa7\27\xe3\1\x80\33\xe1\1\xad\1\xe2\22\xc6\2\x80O\x90\1\xc6\1\xe2#\xc6\1\xad\1\xc3\1\xdb\1\xe5\1\xe6\1\xd0\1\xdb\1\x99\1\xa1\1\xa4\1\xc3\1\x80\1\xc3\1\xb4\1\xe7\1\xc3\1\x80\4\xa7\24\x90\1\x80\f\xe3\1\xad\1\xe2\1\xc6\1\xe2\32\x80\27",
b"\x80\32\xe1\1\xe2\30\xc6\1\x80\1\xc3\1\x80\1\xa4\1\x80\2\xad\1\xc6\1\xe2\a\xa1\1\x80\24\xa7\27\xb0\1\x80\33\xa7\1\xe2\24\x97\1\x80P\x97\1\xc6\1\xe2!\xc6\1\xe2\1\xc5\1\xc3\6\xa4\1\xc3\3\xa2\1\xc3\1\xa4\1\xc3\2\x80\4\xa7\24\xa1\1\x80\f\xe2\35\xa7\1\x80\27",
b"\x80\33\xe2\31\xa1\1\xc3\1\x80\1\xc3\1\x80\1\xa7\1\xe2\1\xad\1\xe2\3\xad\1\xe2\2\xad\1\x80\25\xa7\30\x80\33\xe2\1\xad\1\xe2\23\x80S\xe2\2\xad\1\xe2 \xc3\v\x9d\1\xc3\5\x90\1\x80\1\xe1\1\xb4\1\xa7\23\xa1\1\x80\v\xc6\1\xe2\32\xc6\1\xe2\1\xad\1\x80\30",
b'\x80\17\x9c\1\x80\2\xd2\1\x80\6\x90\1\xa4\1\xe2\31\xa7\1\xc3\3\xd0\1\xad\1\xe2\1\xad\1\xe2\6\xa4\1\x80\25\xa7\30\x80\33\xe2\25\x80T\xe2"\xc3\22\x80\1\xa4\1\xa2\1\xa7\23\xa1\1\x80\n\xe8\1\xad\3\xe2\33\x80\30',
b"\x80\17\xc3\1\x80\2\xc3\1\x80\6\xc3\2\xad\1\xe2\30\xc3\4\xc5\1\xe2\b\xad\1\x80\26\xa7\30\x80\33\xe2\24\xc6\1\x80T\xa4\1\xad\1\xe2\37\xc6\1\xc3\21\x80\1\x90\1\xc3\1\x80\1\xa4\1\xa7\22\xa1\1\x80\t\xa2\1\xe2\1\xad\1\xe2\33\xad\1\x80\31",
b"\x80\17\xc3\1\xa4\1\x9d\1\xc3\1\x80\1\xc3\2\x80\3\xc3\2\xad\1\xe2\30\xc3\3\xc6\1\xc0\1\xe2\b\xa7\1\x80\26\xa7\30\x80\33\xe2\21\xad\1\xe2\2\x80U\xe7\1\xa4\1\xe2\2\xad\1\xe2\34\xc5\1\xc3\23\x80\2\xa7\2\xc3\1\xa4\1\xa7\17\x9f\1\x80\t\xad\1\xe2\35\x80\32",
b"\x80\17\xc3\4\xb4\1\xc3\2\x80\1\xc3\1\xa1\1\xa7\1\xc3\1\xc6\1\xad\1\xe2\27\xc3\3\xad\1\xe2\t\x80\27\xa7\t\xa4\2\xa7\r\xe1\1\x80\31\xd2\1\xe2\23\xc6\1\x80O\xc3\1\x9c\1\x80\6\xad\1\xe2\36\xc3\25\x80\1\xb0\1\xc3\2\xa4\1\xa7\20\x80\b\xe2\2\xad\1\xe2\33\xad\1\x80\2\xc3\1\xe6\1\xd2\1\x80\25",
b"\x80\n\xc3\1\x80\5\xc3\6\x80\1\xb4\1\xc3\3\xc6\1\xe2\1\xad\1\xe2\26\xc3\1\xc6\1\xad\1\xe2\t\x80\30\xa4\1\xa7\26\xa4\2\x80\31\xa7\1\xe2\24\x80O\xc3\2\x9c\1\x80\5\xc6\1\xe2\36\xc3\24\xa4\1\xb0\1\xc3\3\xa7\21\x80\a\xe2\2\xad\1\xe2\34\xb0\1\x80\2\xc3\1\xa4\1\xc3\2\x80\24",
b"\x80\n\xc3\2\x80\5\xc3\5\x9d\1\xa2\1\xc3\3\xc5\1\xe2 \xad\1\xe2\2\xa4\1\x80\30\xa7\4\xa4\1\xa7\4\xc3\2\xa7\2\xa4\1\xa7\2\xa4\1\xc3\1\xa7\1\xa4\2\xa7\2\xc3\1\xa4\1\xc3\1\x80\30\xad\1\xe2\23\xb4\1\x80O\xc3\3\x80\5\xc5\1\xad\1\xe2\35\xc3\30\xa7\2\xa4\1\xa7\3\xa4\1\xa7\1\xa4\1\xa7\2\xa4\2\xa7\5\x80\6\xad\2\xe2\36\x80\4\xc3\3\x80\24",
b"\x80\n\xc3\2\x80\4\xc3\f\xad\1\xe2 \xad\1\xe2\1\xe9\1\x80\b\xe3\1\x80\t\xb7\1\xa2\1\x80\4\xa4\1\xa7\1\xa4\a\xc3\2\xa4\5\xc3\4\xa4\3\xc3\3\xa2\1\x80\27\xe2\24\x80M\xd0\1\x85\1\x80\1\xc3\3\x80\2\xe6\1\x80\1\xb4\1\xc5\1\xad\1\xe2\34\xad\1\xc5\1\xc3\27\xa4\v\xc3\2\xa4\5\x80\6\xe2\37\xc0\1\xb0\1\x80\1\xea\1\xc3\4\x80\24",
b'\x80\a\xa7\1\x90\1\x80\1\xc3\2\x80\1\xa7\1\x80\2\xc3\v\xc5\1\xe2"\xa7\1\xc3\1\x80\1\xdf\1\x90\1\x80\4\xa4\1\xb4\1\x80\1\xdf\1\x80\6\x9d\1\xa7\1\xdf\1\x80\4\xa4\1\xa7\1\xa4\2\xc3\2\xa4\3\xc3\2\xa4\5\xc3\5\xa4\2\xc3\3\x80\30\xe2\1\xad\1\xe2\21\xc5\1\x80M\xc3\3\x9d\1\xc3\3\x99\1\xc3\1\x80\1\xc3\2\xe2\1\xad\1\xe2\35\xc6\1\xc3\25\xa4\2\xc3\2\xa4\1\xc3\2\xa4\4\xc3\3\xa4\1\xc3\2\xa4\2\x80\5\xad\1\xe2\36\xad\1\xc3\3\xa4\1\xc3\3\x9d\1\x80\24',
b"\x80\5\xb4\1\xc3\3\xb4\1\xc3\3\xa4\1\xc3\1\xa1\1\xc3\v\xc5\1\xe2\1\xad\35\xe2\1\xad\2\xa7\1\x90\1\xc3\1\xe1\1\xc3\2\x80\3\xa4\1\xc3\1\xb4\1\xe1\1\xc3\1\xa2\1\x80\5\xc3\2\x80\5\xa4\4\xc3\3\xa4\1\xc3\4\xa4\2\xc3\1\xa4\1\xc3\t\xa4\2\x80\27\xad\23\x80M\xc3\r\xad\35\xe2\3\xc3\34\xa4\1\xc3\6\xa4\1\xc3\3\xa4\1\x80\1\xb0\1\xa1\1\x80\2\xe2\37\xc5\1\xc3\n\xa1\1\xc3\2\xdf\1\x80\16",
b'\x80\1\x90\1\xc3\a\xa4\2\xc3\20\xe2\1\xad\1\xe2\1\xad\34\xe2\1\xad\2\xc3\3\xa7\1\xc3\a\xa7\1\xa2\1\xc3\2\x80\2\xe1\1\x80\2\xc3\2\xa2\1\x80\4\xa4\4\xc3\3\xa4\1\xc3\4\xa4\2\xc3\r\xd2\1\xc3\1\xa7\1\xe5\1\x80\22\xdb\1\xad\22\xe2\1\x80L\xc3\16\xad\35\xe2\3\xc6\1\xc3"\xa4\1\xc3\4\x9f\1\xa4\2\x80\1\xa2\1\xad\37\xa4\1\xc3\n\x9c\1\xc3\2\x80\17',
b"\xa1\1\xc3\32\xad\1\xe2\1\xad\36\xc6\1\xc3\r\xb4\1\xc3\2\xb0\1\xa4\1\xc3\1\x80\1\xa2\1\xc3\1\xa1\1\xc3\1\xdf\1\x80\3\xa4\2\xc3\31\xa4\2\xc3\1\x80\23\xa2\1\xad\23\x80K\xc3\17\xad\35\xe2\4\xc3(\xa4\2\xc3\1\xad\37\xe2\1\xc3\f\xa7\1\x80\20",
b"\xc3\33\xc6\1\xad\1\xe2\1\xad\33\xe2\1\xc3\30\x80\1\xb4\1\xc3\1\xa2\1\x80\1\xc3\2\xa4\1\xc3\33\x80\24\xa7\1\xad\23\x80J\xc3\2\xa4\1\xc3\r\xad!\xc6\1\xc3)\xc5\1\xe2\1\xad\37\xc3\f\x80\1\xdf\1\xe1\1\x80\16",
b'\xc3\33\xc5\1\xad\36\xc3\26\xc5\2\x80\1\xb4\1\xc3\2\xb4\1\x9d\1\xc3\35\xe4\1\xa2\1\x80\22\xc6\1\xad\23\x80I\xa1\1\xa4\1\xc3\17\xad"\xc3)\xc6\1\xe2\1\xad\37\xc3\16\x80\2\xe1\1\x80\f',
b'\xc3\34\xad\36\xc3\26\xc5\2\x80\1\x9d\1\xc3"\x80\2\xa1\1\x80\20\xe2\1\xad\22\xb9\1\x80H\xc3\22\xad"\xc5\1\xc3(\xe2\1\xad\37\xe2\1\xc3\16\x80\1\xc3\2\x80\f',
b"\xc3\34\xad\36\xc3\25\xc5\3\xc3$\x80\1\xb4\1\xc3\1\x80\2\xdf\1\xc3\2\x80\v\xad\23\xb2\1\x80G\xa7\1\xc3\22\xad#\xc3(\xad!\xc3\16\x80\1\xc3\2\xa7\1\x80\1\xdf\1\xa7\1\xc3\2\x90\1\x80\5",
b"\xc3\34\xad\35\xe2\1\xc3\25\xc5\2\xc3%\x80\1\xc3\2\xe7\1\x80\1\xc3\3\x80\n\xb0\1\xe2\1\xad\22\xa1\1\x80F\xe4\1\xc3\23\xad#\xc3(\xad!\xc3\16\xdf\1\xc3\3\xe3\1\xc3\4\xdd\1\x80\5",
b"\xc3\34\xad\35\xc0\1\xa4\1\xc3\23\xc5\3\xc3%\xb4\1\xc3\3\xdd\1\xc3\3\x80\n\xc6\1\xad\23\xb8\1\x80E\xa7\1\xc3\24\xad#\xc3(\xad!\xc5\1\xc3\24\xa4\1\xc3\1\x80\6",
b"\xc3\34\xad\35\xa4\1\xc3\24\xc6\3\xc3,\x94\1\xa7\1\x80\1\xc3\1\x80\a\xad\24\xb0\1\x80D\xb4\1\xc3\24\xad#\xc3)\xad!\xe2\1\xc3\24\xa4\1\xc3\3\x80\4",
b'\xc3\34\xad\35\xc3\25\xc6\3\xc30\x80\2\xdd\1\xa1\1\x80\3\xad\24\xb8\1\x80C\xe9\1\xc3\23\xc5\1\xad#\xc5\1\xc3)\xad"\xc3\31\xa1\1\xe3\1\x80\1',
b"\xc3\34\xad\34\xc5\1\xc3\25\xc6\2\xc5\1\xc34\x80\2\xdf\1\xad\1\xe2\1\xad\22\x80C\x9d\1\xc3\23\xe2\2\xad\1\xe2\3\xad\37\xc3*\xe2\1\xad!\xc3\31\xa7\1\x80\2",
b"\xc3\33\xc5\1\xad\2\xe2\30\xad\2\xc3\25\xc6\3\xc3\4\xc5\1\xc0\1\xc6\2\xc5\1\xc3*\xa4\1\xa1\1\x80\2\xc6\1\xe2\1\xad\1\xe2\17\xad\1\xe2\1\xad\1\x80B\xc3\24\xe2%\xa4\1\xc3*\xad\2\xe2 \xc5\1\xc3\30\xb0\1\x80\2",
b"\xc3\33\xad\2\xe2\31\xad\1\xc5\1\xc3\24\xc5\1\xc6\1\xc0\2\xc3\2\xc0\1\xc6\b\xc3\23\xc6\1\xc3\23\xa4\1\xb0\1\x80\3\xe2\23\xad\2\x80A\xb4\1\xa4\1\xc3\22\xad\2\xe2!\xad\2\xc5\1\xc3+\xad\2\xe2\36\xad\1\xe2\1\xc5\1\xc3\33",
b'\xc3\33\xe2\1\xad\1\xe2\31\xad\1\xc3\25\xc6\23\xc5\1\xc3\r\xc6\1\xc0\1\xc3\24\xa1\1\x80\3\xad\1\xe2\21\xad\1\xe2\1\x9f\1\x80@\xc3\23\xa4\1\xad\1\xe2\1\xad\1\xe2"\xc5\1\xc3,\xad\1\xe2\37\xad\2\xc6\1\xc3\30\xa4\1\xc3\2',
b'\xc3\33\xad\1\xe2\1\xad\31\xe2\1\xc3\24\xad\1\xc6\27\xe2\1\xc6\b\xe2\1\xc5\1\xc3\27\xa1\1\xa7\1\xe2\24\x80?\xa7\1\xc3\23\xc5\1\xad#\xe2\1\xad\2\xc3-\xad"\xc6\1\xc3\33',
b'\xc3\33\xad\3\xe2\31\xc3\23\xc5\1\xe2\30\xad\6\xe2\1\xc6\2\xc5\1\xc3\30\x80\1\xe2\1\xad\24\x80>\xc3\25\xad\2\xe2"\xad\2\xa4\1\xc3-\xad\2\xe2\36\xad\2\xc5\1\xc3\33',
b"\xc3\33\xad\34\xc3\22\xc6\1\xe2\32\xad\2\xe2\3\xad\1\xc5\1\xc3\31\xb4\1\xc5\1\xad\24\xa1\1\x80=\xc3\25\xad\1\xe2\1\xad#\xe2\1\xc3/\xe2\1\xad!\xc3\34",
b"\xc3\33\xad\34\xc3\22\xe2\1\xad\a\xe2\2\xad\1\xe2\1\xad\3\xe2\4\xad\1\xe2\t\xc5\1\xc3\34\xb0\1\x80\1\xad\25\x80=\xa1\1\xc3\24\xad%\xeb\1\xa4\1\xc30\xe2\1\xad \xc3\34",
b"\xc3\33\xad\33\xc6\1\xc3\21\xad\2\xe2\a\xad\1\xe2\2\xad\1\xe2\1\xad\1\xe2\1\xad\1\xe2\4\xad\1\xe2\b\xc6\1\xa4\2\xc3\34\xad\25\x80<\xd0\1\xc3\24\xad\1\xe2\1\xad%\xc31\xc6\1\xad \xc3\34",
b"\xc3\33\xad\33\xc6\1\xc3\17\xa4\1\xc0\1\xad\2\xe2\1\xad\b\xc6\1\xc3\n\xc6\1\xe2\3\xad\4\xe2\1\xc5\1\xc3\34\xad\26\x80<\xc3\24\xad\1\xe2\2\xad$\xc33\xad\37\xe2\1\xc3\34",
b"\xc3\32\xad\34\xc6\1\xc3\v\xa4\1\xc3\3\xad\v\xc6\1\xc3\17\xad\a\xc0\1\xc3\33\xad\25\xa4\1\x80;\xc3\24\xad'\xa4\1\xc33\xad\37\xc6\1\xc3\34",
b"\xc3\32\xe2\1\xad\33\xc6\1\xc3\16\xad\1\xe2\1\xad\n\xc3\21\xc6\1\xad\6\xc3\33\xad\25\x80;\xea\1\xc3\23\xc6\1\xad&\xc35\xc5\1\xad\36\xe2\1\xc3\34",
b"\xc3\31\xc5\1\xad\34\xc6\1\xc3\f\xc0\1\xe2\2\xad\t\xc3\22\xa4\1\xc3\1\xad\2\xe2\1\xad\2\xe2\1\xad\1\xc3\31\xad\26\x80;\xc3\24\xad&\xc37\xad\36\xe2\1\xc3\34",
b"\xc3\31\xad\1\xec\1\xad\33\xe2\1\xc3\v\xc6\1\xad\b\xe2\1\xad\2\xc3\26\xad\1\xe2\1\xad\4\xc0\1\xc3\27\xad\1\xe2\1\xad\23\xe2\1\xad\1\x80:\xc3\24\xad%\xeb\1\xc38\xc6\1\xe2\1\xad\35\xc3\34",
b"\xc3\31\xec\1\xeb\1\xad\34\xc3\n\xa4\1\xad\v\xc6\1\xc3\26\xad\6\xeb\1\xc3\27\xeb\2\xad\25\x809\x9f\1\xc3\23\xc5\1\xeb\1\xad#\xec\1\xc5\1\xc38\xc5\1\xad\36\xc3\34",
b"\xc3\30\xe2\1\xad\36\xc3\t\xc6\1\xeb\1\xad\n\xc3\30\xad\b\xa4\1\xc3\24\xad\1\xec\1\xad\23\xe2\1\xad\2\x809\xc3\23\xc5\1\xeb\1\xad$\xc6\1\xc3:\xad\34\xe2\1\xeb\1\xe2\1\xc3\33",
b'\xc3\30\xec\1\xad\35\xe2\1\xc3\b\xc5\1\xad\1\xeb\1\xad\a\xec\1\xe2\1\xc5\1\xc3\30\xad\2\xeb\1\xec\2\xad\3\xe2\1\xc3\21\xa4\2\xc3\1\xad\26\xe2\2\x808\xc3\20\xa4\1\xc3\3\xe2\1\xad"\xeb\1\xad\1\xc0\1\xc3;\xc6\1\xad\34\xeb\1\xad\1\xc3\33',
b"\xc3\27\xc5\1\xad\36\xe2\1\xc3\b\xad\1\xe2\1\xad\b\xe2\1\xad\1\xc3\31\xad\1\xeb\1\xad\1\xc6\2\xe2\1\xad\1\xec\2\xc3\23\xad\26\xe2\2\xa4\1\x807\xc3\22\xa4\1\xc3\1\xc5\1\xec\1\xad#\xe2\1\xc3=\xad\34\xeb\1\xe2\1\xc3\33",
b"\x80\27\x87 \x80\a\x84\2\x87\t\x84\1\x80\32\x87\3\x80\3\x87\2\x84\1\x80\22\x87\30\x84\1\x80K\x87&\x80>\x84\1\x87\33\x84\1\x87\2\x80\32",
b"\x80\26\x84\1\x87 \x80\6\x84\b\x87\1\x84\3\x80\33\x84\2\x80\5\x87\1\x84\2\x80\20\x87\32\x80J\x84\1\x87%\x80?\x87\1\x84\1\x87\34\x84\1\x80\32",
b"\x80\26\x87!\x80\5\x84\1\x87\1\x84\b\x87\1\x84\1\x80\33\x84\1\x87\2\x80\a\x84\1\x87\1\x80\16\x84\1\x87\2\x84\1\x87\26\xc7\1\x80H\x8e\1\x87%\x80A\x87\2\x84\1\x87\35\x80\31",
b'\x80\25\x84\1\x87 \x80\5\x87\1\x84\f\x80\33\x84\2\x80\b\x84\2\x87\1\x80\f\x84\1\x87\31\x84\2\x80G\x88\1\x84\1\x87\2\x84\1\x87"\x80B\x84\1\x87\34\x84\1\x87\2\x80\30',
b"\x80\25\x87\36\x84\1\x87\1\x80\5\x84\v\x87\1\x84\1\x80\33\x84\2\x80\n\x87\2\x80\v\x87\35\x80F\x84\1\x87\6\x84\2\x87\33\x84\2\x87\1\x80C\x87\1\x84\1\x87\37\x80\27",
b'\x80\25\x87\37\x80\5\x87\1\x84\f\x80\33\x84\2\x87\1\x80\f\x84\1\x87\1\x80\a\x87 \x80D\x84\1\x87\2\x84\1\x87"\x80\v\xed\n\xb7\1\x80/\x84\1\x87 \x80\27',
b"\x80\24\x84 \x80\4\x88\1\x84\r\x80\33\x84\2\x80\r\x84\2\x80\6\x87\1\x84 \x80C\x84\b\x87\1\xcd\1\x87\1\x84\33\x80\t\xed\1\xd5\1\xd4\1\xd5\b\xd4\1\xd5\4\x80-\x87\1\x84\37\x87\1\x84\1\x80\26",
b"\x80\24\x84\37\x80\4\x84\r\x87\1\x80\34\x84\2\x80\16\x84\2\x80\3\xcd\1\x87\1\x84\22\x87\1\x84\2\x87\1\x84\v\x80B\x88\1\x84\b\xd5\3\x84\32\x80\6\xe8\1\xd5\26\x80*\x84\6\x87\2\x84\33\x80\25",
b'\x80\23\x87\2\x84\36\x80\3\x84\17\x80\33\x84\3\x80\17\x84\2\x80\1\x84\2\x87\1\x84"\x80A\x84\2\x87\1\x84\6\x87\1\xd5\2\xcd\1\x84\30\x80\3\xd5\35\x80(\x84$\x80\24',
b"\x80\23\x84 \x80\1\x84\16\x87\1\x84\1\x80\34\x84\3\x80\20\x84\1\x87\1\x84%\x80@\x84\v\xd5\3\xcd\1\x84\22\x87\1\x84\1\xcd\2\xd6\1\xd5!\x80'\x87\1\x84#\x87\1\x80\23",
b"\x80\23\x84\35\x87\1\x84\2\x87\1\x84\20\x80\34\x88\1\x80\22\x84'\x80?\x87\1\x84\f\xee\1\xd5\4\xcd\2\xc7\1\xcd\5\xee\2\xd6\1\xd5*\xd6\2\xd5\1\x80$\x8e\1\x84'\x80\21",
b'\x80\22\x8e\1\x84\1\x87\1\x84\35\x87\1\x80?\x84(\x87\1\x80>\x84\1\x87\1\x84\t\x87\3\xc7\1\xd6\1\xd5\3\xd6\1\xd5\t\xd6\1\xd5)\xd6\2\xef\1\xd6\1\xd4\1\x80"\x87\1\x84\1\x87\1\x84$\x87\1\x84\1\x80\20',
b"\x80\22\x87\1\x84 \x80?\x84)\x87\1\x80<\x87\1\x84\17\x87\1\xd6\2\xd5\1\xd64\xee\4\xd6\2\x80!\x84'\x87\3\x80\17",
b"\x80\22\x84\36\x87\1\x84\1\x88\1\x80>\x84*\x87\1\x80<\x84\22\x87\1\xee<\x80\37\x87\1\x84+\x80\16",
b"\x80\21\x87\1\x84 \x80>\x84\1\x87\1\x84*\x80;\x87\1\x84\22\x87\3\xee<\x80\33\x84\1\x87\2\x84,\xcd\1\x80\f",
b"\x80\21\x84\37\x87\1\x84\1\x80>\x84\1\x87\1\x84*\x80;\x84\27\x87\1\xee;\x80\32\x840\x80\f",
b"\x80\20\x84 \x87\1\x84\1\x87\1\x80<\x87\1\x84,\x80;\x84\32\x87\2\xcd\3\xee6\x80\27\x842\x80\v",
b"\x80\20\x84\1\x87\1\x84\37\x87\1\x84\1\x80<\x87\1\x84-\x809\x84\35\x87\1\xcd\1\xee\23\xcd\1\xee\2\xcd\1\xee\1\xcd\1\xee\1\xcd\2\xee\1\xcd\1\xee\2\xcd\2\xee\22\xcd\2\xee\1\xcd\1\x80\25\x844\x88\1\x80\t",
b"\x80\17\x84$\x87\1\x80;\x84.\x809\x84\36\xee\1\xcd\1\xee\31\x80\4\xe9\1\xee\1\xcd\1\xee\30\x80\24\x87\1\x843\xf0\1\x80\t",
b"\x80\17\x84$\x87\1\x80:\x84.\x80:\x84\32\x87\1\x84\2\xee\1\xcd\f\xee\1\xcd\5\x80\22\xcd\27\x80\22\x87\1\x84\1\x87\1\x843\x87\1\x80\b",
b"\x80\16\x87\1\x84%\x87\1\x808\x84/\x8e\1\x808\x84\35\xcd\20\x80\30\xcd\27\x80\20\x847\x80\b",
b"\x80\16\x87\1\x84$\x87\3\x807\x84/\xcd\1\x808\x84\33\x87\1\xcd\17\x80\33\xcd\27\x80\17\x84\1\x87\2\x843\x87\1\x84\1\x80\a",
b"\x80\r\x84)\xc7\1\x806\x84/\x88\1\x808\x84\f\xec\a\x84\b\xc7\1\xcd\r\x80\37\xcd\26\x80\r\x849\xcd\1\x80\6",
b"\x80\r\x84,\x803\x84\f\x87\3\x84\20\xec\2\x84\a\xec\a\x84\2\x807\x87\1\x84\t\xec\17\x84\2\x87\1\xcd\r\x80!\xee\1\xcd\26\x80\n\x84\4\xec\v\x84\24\xec\2\x84\r\xec\1\x84\1\xec\2\x84\5\x80\6",
b"\x80\f\x84\f\xec\20\x84\t\xec\4\x84\5\x802\x84\v\x87\5\x84\b\xec\31\x807\x84\a\xec\23\x84\1\xcd\16\x80#\xcd\25\x80\n\x84\1\xec\34\x84\4\xec\4\x84\f\xec\n\x80\6",
b"\x80\v\x88\1\x84\b\xec\27\x80\3\xf0\1\x84\2\xec\n\xdb\1\x80/\xf1\1\xec\a\x84\3\xc7\1\x87\2\x80\3\xc7\1\x84\2\xec\36\x807\xec\32\xcd\22\x80!\xcd\25\x80\t\xec%\x84\n\xec\f\x80\6",
b"\x80\v\xec \x80\6\xed\1\xec\v\x80-\xec\t\x84\1\x87\1\xc7\1\x87\1\x80\a\xec \x804\xec\34\xcd\r\xec\1\xcd\a\x80\37\xcd\25\xcc\1\x80\6\xec%\x80\n\xec\r\x80\6",
b"\x80\n\xec!\x80\a\xcd\1\xec\n\x80-\xec\t\xcd\3\x80\b\xec \x803\xec\33\xcd\17\xec\3\xcd\a\x80\36\xcd\25\x80\6\xec%\x80\v\xcd\1\xec\v\x80\6",
b'\x80\t\xec"\x80\b\xcd\1\xf1\1\xec\n\x80+\xec\t\xcd\2\x80\n\xec \x801\x9e\1\xf2\1\xec\31\xcd\17\xec\a\xcd\6\x80\35\xcd\25\x80\4\xec&\x80\f\xec\f\x80\5',
b"\x80\t\xec\17\xcd\a\xec\f\x80\b\xcd\3\xec\t\x80+\xec\b\xcd\2\x80\v\xec\25\x80\2\xec\t\x800\xec\f\xad\1\xec\2\xd5\1\xf3\1\x80\a\xec\4\xcd\17\xec\t\xcd\6\xd2\1\x80\33\xcd\25\xf4\1\x80\2\xec&\x80\r\xec\v\x80\5",
b"\x80\b\xec\r\xcd\v\xf5\1\xec\n\x80\t\xcd\3\xec\t\x80)\xb7\1\xec\a\xcd\3\x80\v\xec\24\x80\3\xec\n\x80.\xec\r\xb7\1\xcd\3\x80\t\xec\2\xcd\20\xec\v\xcd\6\x80\33\xcd\25\x80\1\xec'\x80\16\xcd\1\xec\t\x80\5",
b"\x80\b\xec\n\xcd\3\x80\2\xcc\1\xd1\1\xcd\b\xec\n\x80\t\xcd\4\xd6\1\xec\a\x80)\xec\a\xcd\3\x80\f\xec\22\x80\6\xec\t\x80-\xec\f\xcd\4\x80\v\xec\1\xcd\20\xec\16\xcd\a\x80\30\xcd\26\xec'\x80\16\xcd\1\xec\t\x80\5",
b"\x80\a\xec\t\xcd\3\x80\n\xcd\5\xec\n\x80\t\xcd\4\xec\b\x80(\xec\6\xcd\3\x80\r\xec\16\xcd\4\x80\a\xec\t\x80,\xec\v\xcd\4\x80\f\xcd\21\xec\21\xcd\t\xd2\1\x80\23\xcd\26\xec&\x80\17\xee\1\xec\b\x80\5",
b"\x80\a\xec\b\xcd\3\x80\3\xb7\1\x80\b\xcd\4\xec\n\x80\n\xcd\4\xec\b\x80&\xec\a\xcd\3\x80\r\xec\v\xee\1\xcd\6\x80\a\xec\t\x80+\xec\v\xcd\4\x80\r\xcd\21\xec\23\xcd\v\x80\21\xcd\25\xec\22\x80\2\xec\22\x80\17\xcd\1\xee\1\xec\a\x80\5",
b"\x80\a\xec\a\xcd\3\x80\1\xd0\1\x80\2\xea\1\x80\3\xe7\1\x80\4\xcd\5\xec\n\x80\t\xcd\5\xec\a\x80&\xec\a\xcd\3\x80\f\xcd\1\xec\b\xcd\3\x80\1\xcd\6\x80\b\xec\t\x80)\xec\n\xcd\5\x80\r\xcd\22\xec\26\xcd\f\x80\16\xcd\25\xec\5\x80\4\xec\a\xcd\1\xee\1\x80\4\xec\16\xef\1\xcd\2\x80\r\xcd\2\x8e\1\xec\6\x80\5",
b"\x80\6\xec\a\xcd\3\x80\5\xd4\1\x80\4\xd4\1\x80\3\xcd\6\xec\t\x80\t\xcd\6\xec\a\x80$\xec\a\xcd\4\x80\v\xcd\2\xec\6\x80\2\xcd\3\x80\2\xcd\5\x80\b\xec\t\x80(\xec\n\xcd\1\xd4\3\x80\16\xcd\23\xec\31\xcd\f\xe7\1\x80\v\xcd\25\xec\3\x80\6\xec\5\x80\1\xcd\2\x80\4\xe7\1\xee\1\xec\f\xcd\3\x80\r\xcd\2\x80\2\xec\5\x80\5",
b"\x80\6\xec\6\x80\1\xcd\3\x80\1\xe8\1\x80\3\xea\1\x80\4\xd5\1\x80\3\xcd\a\xec\t\x80\t\xcd\3\xd5\1\xcd\1\xec\a\x80 \xea\1\xe8\1\x80\2\xec\a\xcd\3\x80\v\xcd\3\xec\5\x80\3\x8e\1\xcd\2\x80\2\xcd\5\x80\t\xec\t\x80&\xec\n\xcd\3\xe8\1\xe7\1\x80\r\xea\1\xcd\23\xec\34\xcd\6\xec\1\xcd\4\x80\n\xcd\26\xec\1\x80\a\xec\5\x80\1\xcd\1\x8e\1\x80\4\xcd\2\xec\v\x80\1\xcd\4\x80\f\xcd\3\x80\2\xec\4\x80\5",
b"\x80\6\xec\6\xea\1\xcd\2\x80\2\xef\1\x80\4\xe5\1\x80\3\xef\1\x80\2\xd4\2\xcd\5\xe7\1\xe5\1\xec\b\x80\t\xcd\3\xef\1\xcd\1\xea\1\xec\a\x80#\xec\6\xcd\4\x80\2\xef\2\xd5\1\x80\6\xcd\2\xec\6\x80\4\xcd\2\x80\2\xcd\5\x80\t\xec\t\x80\v\xe9\1\x80\31\xec\n\xcd\4\x80\2\xe9\1\x80\f\xcd\f\x80\2\xcd\6\x80\1\xec\37\xcd\2\xec\2\xcd\5\xe4\1\x80\b\xcd\26\x80\6\xec\5\x80\1\xcd\2\x80\5\xcd\2\x80\1\xec\t\x80\3\xcd\3\x80\f\xcd\3\x80\2\xec\4\x80\5",
b"\x80\6\xec\5\x80\1\xcd\3\x80\1\xe4\1\x80\5\xee\1\x80\3\xee\1\x80\1\xcd\1\xd5\1\xd4\1\xcd\5\x80\2\xec\n\x80\b\xcd\2\xd4\1\xcd\2\x80\1\xec\a\x80!\xec\a\xcd\3\x80\6\xef\1\x80\5\xcd\2\xec\5\x80\5\xcd\2\x80\3\xcd\5\x80\b\xec\t\x80\v\xee\1\x80\30\xec\t\xcd\3\xd4\1\xcd\2\x80\2\xee\1\x80\2\xee\1\x80\t\xcd\r\x80\1\xcd\6\x80\2\xec\n\x80\1\x8e\1\xec\25\xee\1\xec\1\xcd\6\x80\b\xcd\26\x80\1\xe4\1\x80\3\xec\4\x80\2\xcd\1\x80\6\xcd\2\x80\2\xec\a\x80\4\xcd\3\x80\f\xee\1\xcd\1\x80\4\xec\3\x80\5",
b"\x80\5\xec\6\x80\1\xcd\3\x80\a\xee\1\xe4\1\x80\2\xe4\1\x80\1\xcd\1\xef\2\xcd\4\x80\3\xec\1\x80\1\xec\b\x80\b\xcd\5\x80\2\xec\6\x80!\xee\1\xec\6\xcd\3\x80\v\xcd\2\xd4\1\xec\1\xee\1\xec\2\x80\6\xcd\2\x80\3\xcd\5\x80\a\xe4\1\x80\1\xec\b\x80\v\xee\1\x80\27\xec\n\xcd\3\xee\1\xcd\2\x80\17\xcd\24\x80\2\xec\b\x80\3\xcd\3\x80\2\xec\20\xad\1\xee\1\xec\4\xcd\4\x80\a\xcd\26\xef\1\x80\3\xec\5\x80\1\xcd\1\x80\a\xcd\2\x80\2\xec\4\xf6\1\xec\2\x80\4\xcd\3\x80\f\xcd\1\xee\1\x80\4\xec\3\x80\5",
b"\x80\5\xec\5\x80\2\xcd\3\x80\a\xee\2\x80\3\xd4\1\xcd\1\xd5\1\xee\1\xcd\3\x80\4\xec\1\x80\2\xec\b\x80\a\xcd\2\xd4\1\xcd\2\x80\2\xec\6\x80\30\xe9\1\x80\3\xee\1\x80\4\xee\1\xec\5\xcd\4\x80\6\xee\1\x80\4\xcd\2\xec\2\xcd\1\xee\1\xec\1\x80\6\xcd\2\x80\3\xcd\5\x80\a\xee\1\x80\1\xec\t\x80\1\xee\1\x80\b\xee\1\x80\n\xee\1\x80\5\x8e\1\x80\4\xec\1\x80\1\xec\6\x80\3\xec\1\xcd\3\xee\1\xcd\2\x80\1\xee\1\x80\4\xee\1\x80\a\xcd\b\x80\1\xcd\4\x80\1\xcd\a\x80\2\xec\6\x80\4\xcd\4\x80\5\xec\r\xee\2\xec\t\xcd\1\x80\6\xcd\26\x80\2\xec\5\x80\2\xcd\1\x80\a\xcd\2\x80\3\xec\3\xf6\1\xec\1\x80\5\xcd\2\xee\1\x80\v\xee\1\xcd\2\x80\5\xec\2\x80\5",
b"\x80\5\xec\5\x80\2\xcd\3\x80\2\xef\1\x80\4\xee\2\x80\2\xcd\1\xee\1\xcd\1\xd4\1\xee\1\xcd\2\x80\a\xec\2\x80\1\xec\a\x80\a\xcd\1\xee\1\xcd\2\x80\2\xec\a\x80\f\xef\1\x80\n\xe9\1\x80\3\xee\1\x80\3\xee\1\xec\4\xee\1\xec\1\xcd\4\x80\v\xcd\2\xec\5\x80\6\xcd\2\x80\3\xcd\5\x80\a\xee\1\x80\1\xec\4\x80\2\xec\3\x80\n\xee\1\x80\v\xee\1\x80\4\xee\1\x80\4\xec\a\x80\4\xec\1\xcd\3\xd5\1\xcd\1\xe5\1\xef\2\x80\f\xcd\b\x80\1\xcd\4\x80\1\xcd\a\x80\1\xec\6\x80\5\xcd\4\x80\a\xec\b\x80\2\xe4\1\xee\1\xcd\1\xec\f\x80\5\xcd\26\xec\5\x80\3\xcd\1\x80\a\xcd\2\x80\3\xec\3\xf6\1\x80\6\xcd\2\xef\1\x80\2\xe5\1\x80\b\xee\1\xcd\2\x80\5\xec\2\x80\1\xe4\1\x80\3",
b"\x80\4\xec\6\x80\2\xcd\3\x80\2\xe4\1\x80\4\xee\1\xef\1\x80\2\xcd\1\xee\1\xcd\1\xd4\1\xee\1\xcd\1\xee\1\x80\a\xec\2\x80\1\xe4\1\xec\6\x80\a\xcd\1\xee\1\xcd\2\x80\2\xec\a\x80\f\xee\1\x80\n\xe9\1\x80\3\xee\1\x80\3\xee\1\xec\5\xe8\1\xcd\4\x80\5\xee\1\x80\5\xcd\2\xef\1\xec\4\x80\6\xcd\2\x80\4\xcd\4\x80\a\xee\1\x80\1\xec\4\x80\3\xec\3\x80\1\xef\1\x80\3\xe4\1\xee\1\xef\1\xe4\1\xee\1\x80\20\xe5\1\x80\4\xec\6\x80\5\xec\1\xcd\5\x80\1\xee\1\xef\1\x80\v\xcd\b\x80\2\xcd\4\x80\1\xcd\b\xec\5\x80\6\xcd\4\x80\b\xec\6\x80\3\xee\1\xef\1\xcd\2\x80\4\xec\n\x80\3\xcd\26\xec\3\x80\4\xcd\1\x80\a\xcd\2\x80\3\xec\4\x80\1\xef\1\xee\2\x80\3\xcd\2\x80\b\xe9\1\x80\2\xee\1\xe4\1\xcd\1\x80\5\xec\2\x80\5",
b"\x80\4\xec\6\x80\1\xcd\4\x80\6\xee\2\x80\2\xcd\2\xef\1\xcd\2\xee\1\x80\4\xee\1\x80\2\xe9\1\x80\1\xec\2\x80\3\xec\5\x80\6\xe4\1\xcd\5\x80\1\xec\1\x80\1\xec\5\x85\1\x80\v\xef\1\x80\2\xef\1\x80\a\xef\1\xe4\1\x80\5\xad\1\xee\1\xec\5\x80\1\xcd\3\xea\1\x80\5\xef\1\x80\5\xcd\2\xe8\1\xec\2\xef\1\xec\1\x80\6\xcd\2\x80\4\xcd\4\x80\a\xee\1\x80\1\xec\4\x80\2\xec\4\x80\5\xee\1\x80\3\xef\1\x80\f\xe4\1\x80\b\xec\6\x80\5\xec\1\xcd\2\xee\1\xcd\2\x80\1\xee\2\x80\t\xcd\n\x80\2\xcd\5\x80\2\xcd\6\xec\4\x80\a\xcd\4\x80\b\xec\6\x80\3\xee\2\xcd\2\x80\a\xec\b\x80\2\xcd\22\xef\1\xcd\4\xef\1\x80\5\xcd\1\x80\a\xcd\2\x80\3\xec\3\x80\4\xe4\1\xef\1\x80\2\xcd\2\x80\3\xee\1\x80\4\xef\1\x80\2\xee\1\xea\1\xcd\1\x80\5\xec\2\x80\5",
b"\x80\4\xec\5\x80\2\xcd\3\xea\1\x80\3\xef\1\x80\2\xd5\1\xef\1\x80\2\xcd\2\xef\1\xcd\2\xef\1\x80\4\xe4\1\x80\2\xef\1\x80\1\xec\2\x80\3\xec\6\x80\4\xe4\1\xe9\1\xcd\2\xef\1\xcd\2\x80\1\xe4\1\x80\2\xec\5\x80\v\xef\1\x80\n\xef\1\x80\2\xef\1\x80\3\xec\1\xad\1\xec\4\x80\2\xcd\3\xd0\1\x80\5\xef\1\x80\5\xcd\3\xec\3\xe5\1\x80\6\xcd\2\x80\4\xcd\4\x80\a\xef\1\x80\1\xec\4\x80\3\xec\4\x80\3\xd5\1\x80\21\xe9\1\xef\1\x80\2\xe9\1\x80\4\xec\5\x80\1\xec\1\x80\4\xec\1\xcd\2\xef\1\xcd\2\x80\2\xef\2\x80\b\xcd\v\x80\1\xcd\5\x80\2\xcd\6\xec\4\x80\a\xcd\4\x80\t\xec\5\x80\4\xef\1\xcd\2\x80\b\xcd\1\xec\b\x80\1\xcd\24\x80\1\xef\1\xcd\1\x80\5\xcd\1\x80\a\xcd\2\x80\3\xec\3\x80\1\xef\1\x80\3\xef\1\x80\2\xcd\2\x80\b\xef\1\x80\2\xef\1\x80\1\xcd\1\x80\5\xec\2\xad\1\xec\1\x80\3",
b"\x80\4\xec\5\x80\2\xcd\3\xe7\1\x80\3\xef\1\x80\2\xef\1\x80\3\xcd\2\xef\1\xcd\2\xef\1\x80\4\xe5\1\x80\2\xef\1\x80\1\xec\2\x80\3\xec\6\x80\4\xef\1\x80\1\xe7\1\xcd\1\xd4\1\xcd\2\x80\4\xec\5\xe4\1\x80\n\xef\2\x80\t\xef\1\x80\2\xef\1\x80\3\xec\6\xe4\1\x80\1\xcd\3\xef\1\x80\5\xef\1\x80\5\xcd\3\xec\1\xad\1\xec\1\x80\a\xcd\2\x80\4\xcd\5\x80\6\xef\1\xe5\1\xec\4\x80\3\xec\4\x80\3\xef\1\x80\3\xd5\1\x80\16\xef\1\x80\1\xef\1\x80\3\xec\a\x80\1\xec\1\x80\4\xec\1\xcd\2\xef\1\xcd\2\x80\2\xef\2\x80\2\xcd\1\x80\3\xe5\1\xcd\f\xe4\1\xcd\5\x80\2\xcd\6\xec\3\x80\b\xcd\4\x80\t\xec\5\x80\4\xd5\1\xcd\2\x80\b\xcd\3\xec\6\x80\2\xcd\24\xef\1\xcd\2\x80\4\xcd\1\x80\a\xcd\2\x80\3\xec\3\x80\1\xef\1\x80\3\xe4\1\x80\2\xcd\1\xc8\1\x80\b\xe4\1\x80\2\xef\1\xd0\1\xcd\1\x80\5\xec\3\xad\1\x80\3",
b"\x80\4\xec\5\x80\2\xcd\3\x80\4\xd5\1\x80\2\xee\1\x80\3\xcd\2\xef\1\xcd\2\xd5\1\x80\6\xd5\1\xef\1\x80\1\xec\2\x80\3\xec\6\x80\a\xcd\2\xd4\1\xcd\1\xe7\1\x80\3\xec\6\x80\n\xef\2\x80\4\xef\1\x80\4\xef\1\x80\2\xef\1\x80\2\xec\2\xad\1\xec\4\x80\2\xcd\3\xe9\1\x80\5\xd5\1\xef\1\x80\4\xcd\3\xec\1\xad\1\xec\1\x80\a\xcd\2\x80\4\xcd\5\x80\6\xef\1\xe4\1\xec\4\x80\2\xe5\1\x80\1\xec\3\x80\3\xe9\1\x80\3\xef\1\x80\r\xd5\1\x80\2\xd5\1\x80\3\xec\a\x80\6\xec\1\xcd\1\xe8\1\xef\1\xcd\1\xe9\1\x80\2\xe5\1\xef\1\x80\2\xcd\1\x80\2\xcd\v\x80\2\xcd\b\x80\1\xcd\a\xec\2\x80\b\xcd\4\x80\n\xec\4\x80\4\xd5\1\xcd\2\x80\t\xcd\3\xec\6\x80\1\xcd\21\xef\2\xcd\1\xef\1\xcd\3\x80\3\xcd\1\x80\a\xcd\2\x80\3\xec\3\x80\1\xef\1\xe9\1\x80\2\xe4\1\x80\2\xcd\1\xef\1\x80\3\xee\1\x80\5\xef\1\x80\1\xef\1\xe5\1\xcd\1\x80\5\xad\1\xec\2\xad\1\x80\3",
b"\x80\3\xec\a\x80\1\xcd\3\x80\2\xe9\1\xd6\1\xee\4\x80\2\xe7\1\xcd\2\xef\1\xcd\2\xe9\1\x80\6\xef\1\xe4\1\x80\2\xec\1\x80\3\xe5\1\xec\6\x80\6\xcd\2\xef\1\xcd\2\x80\4\xec\5\x80\n\xef\2\x80\1\xd5\1\x80\a\xef\1\x80\2\xef\1\x80\2\xec\a\x80\2\xcd\3\x80\6\xef\2\xe5\1\x80\3\xcd\3\xec\1\xad\1\xef\1\xe5\1\x80\6\xcd\2\x80\4\xcd\5\x80\6\xef\1\xec\5\x80\1\xe9\1\x80\3\xec\3\x80\5\xe9\1\xef\1\x80\3\xe5\1\x80\b\xef\1\x80\3\xe9\1\xef\1\x80\2\xec\a\x80\6\xec\1\xcd\1\xc8\1\xef\1\xcd\1\x80\4\xd5\1\x80\2\xcd\1\x80\1\xcd\f\x80\2\xcd\6\x80\2\xcd\b\xec\2\x80\b\xcd\4\x80\n\xec\5\x80\2\xef\2\xcd\2\x80\t\xcd\3\x80\2\xec\5\x80\1\xcd\17\xef\2\xcd\3\xef\1\xcd\4\x80\1\xcd\1\x80\a\xcd\2\x80\3\xec\3\x80\1\xef\2\x80\5\xcd\1\xef\1\x80\4\xee\1\x80\4\xef\1\x80\1\xe9\1\xe5\1\xcd\1\x80\3\xee\2\x80\1\xec\2\xad\1\x80\3",
b"\x80\3\xec\a\x80\1\xcd\3\x80\1\xd6\1\xee\1\xd6\1\xee\1\xd6\3\xee\1\xd6\1\xee\1\xd4\1\xcd\1\xef\1\xcd\2\xe4\1\x80\4\xef\1\x80\1\xef\1\x80\3\xec\1\x80\4\xec\6\x80\6\xcd\2\xd4\1\xcd\2\x80\4\xec\6\x80\t\xee\2\x80\1\xee\1\x80\a\xd6\1\x80\2\xee\1\x80\1\xe4\1\xec\3\xee\1\xec\2\xd6\1\x80\2\xcd\3\xef\1\x80\6\xd6\1\xef\1\x80\3\xcd\3\xec\3\xef\1\x80\6\xcd\2\x80\4\xcd\5\x80\6\xe9\1\xec\5\x80\1\xef\1\x80\3\xec\3\x80\5\xe9\1\xef\1\x80\3\xef\1\x80\b\xef\1\x80\4\xef\1\xe4\1\x80\1\xec\a\x80\6\xcd\3\xef\1\xcd\1\x80\4\xef\1\x80\2\xcd\r\x80\3\xcd\6\x80\2\xcd\t\xec\1\x80\b\xcd\4\x80\5\xee\1\x80\5\xec\4\x80\2\xd5\1\xef\1\xcd\2\x80\t\xcd\3\x80\2\xe4\1\xec\4\x80\1\xcd\17\xef\1\xcd\5\xef\1\xcd\5\x80\a\xcd\2\x80\3\xec\3\x80\1\xd5\1\xef\1\x80\2\xe4\1\x80\2\xcd\1\xef\1\xe5\1\x80\3\xef\1\x80\3\xe4\1\xee\1\x80\3\xcd\1\x80\2\xd6\1\xee\2\xd6\1\xec\2\xee\1\x80\3",
b"\x80\3\xec\a\xea\1\xcd\2\xee\17\xcd\2\x80\5\xee\1\x80\1\xef\1\x80\3\xec\1\x80\4\xec\6\x80\3\xee\1\x80\2\xcd\1\xd4\1\xcd\3\xee\1\x80\3\xe4\1\xec\5\x80\t\xee\1\x80\2\xee\2\x80\6\xe4\1\x80\2\xee\1\x80\1\xec\4\xee\1\xec\2\xee\1\xe4\1\x80\1\xcd\3\xee\1\x80\6\xee\2\x80\3\xcd\3\xec\3\xee\1\x80\6\xcd\2\x80\4\xcd\5\xe5\1\x80\6\xec\6\xee\2\x80\3\xec\3\x80\2\xe9\1\x80\1\xe4\1\xee\1\x80\f\xe9\1\x80\5\xee\1\x80\1\xec\a\x80\1\xec\1\x80\3\xd1\1\xcd\3\xee\1\xcd\1\x80\3\xef\1\xee\1\x80\1\xe9\1\xee\2\xcd\v\x80\3\xcd\6\x80\2\xcd\t\xec\1\x80\b\xcd\4\x80\3\xef\1\xcd\2\x80\5\xec\2\xee\1\x8e\1\xe9\1\x80\1\xee\2\xcd\2\x80\3\xe5\1\x80\6\xcd\1\xd4\1\xcd\1\x80\3\xec\4\x80\1\xcd\16\xee\1\xcd\5\xee\1\xcd\6\x80\6\xcd\2\x80\3\xec\3\x80\1\xee\1\xef\1\x80\2\xe9\1\x80\2\xcd\1\xee\1\x80\3\xee\2\x80\3\xef\1\xee\1\x80\2\xe4\1\xcd\1\x80\1\xee\6\xec\2\x80\3",
b"\x80\3\xec\6\x80\1\xd1\1\xed\1\xcd\22\x80\1\xee\1\x80\2\xef\1\xe9\1\xe4\1\x80\4\xec\1\x80\4\xec\6\x80\3\xee\1\x80\2\xcd\1\xee\1\xcd\3\xee\1\x80\4\xec\5\x80\t\xee\1\x80\3\xee\1\x80\1\xee\1\x80\a\xee\1\xec\4\xee\2\xec\1\x80\1\xe4\1\xef\1\x80\1\xcd\3\x80\1\xee\1\x80\5\xee\2\x80\3\xcd\3\xec\4\x80\6\xcd\2\x80\4\xcd\5\x80\1\xe9\1\x80\1\xee\1\xe5\1\xe4\1\x80\1\xec\6\xe4\1\xee\2\x80\2\xec\3\x80\1\xe9\1\xe5\1\x80\2\xee\1\xe4\1\x80\3\xe9\1\x80\a\xee\1\x80\4\xee\2\x80\1\xec\5\x80\1\xcd\4\xee\1\x80\1\xec\1\xcd\3\xee\1\x80\3\xee\3\xef\1\xee\1\xcd\r\x80\3\xcd\6\x80\2\xcd\t\xec\1\xe5\1\x80\a\xcd\4\x80\2\xcd\4\x80\5\xec\3\xee\2\x80\1\xee\2\xcd\2\x80\n\xef\1\xee\1\xcd\1\x80\4\xec\4\xcd\36\x80\3\xcd\2\x80\2\xe9\1\xec\3\x80\1\xee\1\xe9\1\x80\2\xee\1\x80\2\xcd\1\xee\1\x80\2\xe5\1\xee\2\x80\3\xee\2\xef\2\xcd\1\xd6\1\xcd\b\x8e\1\xe9\1\x80\2",
b"\x80\2\xec\a\x80\1\xee\1\xcd\25\xef\1\x80\1\xef\1\xe5\1\x80\5\xec\2\x80\3\xec\6\x80\3\xee\1\x80\2\xcd\1\xee\1\xef\1\xcd\2\xee\1\xef\1\x80\3\xef\1\xec\5\x80\b\xcd\1\x80\3\xcd\1\x80\1\xee\1\x80\3\xe9\1\x80\3\xcd\1\xad\1\xec\1\xad\1\xec\1\xcd\2\xec\1\x80\2\xee\1\x80\1\xcd\3\x80\1\xcd\1\x80\4\xcd\2\xef\1\x80\3\xcd\3\xec\3\xcd\1\x80\6\xcd\2\x80\4\xcd\5\x80\1\xcd\5\x80\1\xec\6\x80\1\x8e\1\xee\1\x80\2\xec\3\x80\1\xee\1\x80\3\xee\1\xef\1\x80\3\xe6\1\x80\a\xee\1\x80\3\xcd\1\xee\1\x80\1\xec\6\x80\1\xcd\a\xec\1\xcd\3\x80\3\xee\1\xcd\1\xee\1\xef\2\xcd\f\x80\3\xee\2\xcd\5\x80\1\xe9\1\xee\1\xcd\4\xee\1\xcd\b\xee\1\x80\3\xcd\4\x80\1\xcd\a\x80\3\xcd\1\xec\1\xad\1\xcd\2\xee\1\xcd\1\xee\1\xcd\2\xef\1\xcd\1\xef\1\x80\a\xcd\3\x80\4\xec\4\x80\1\xcd\35\x80\3\xcd\2\x80\2\xef\1\xec\3\x80\1\xee\1\x80\3\xee\1\x80\2\xcd\1\xee\1\x80\2\xee\1\xcd\1\x80\4\xcd\17\xee\1\x80\2",
b"\x80\2\xec\a\xcb!\xcd\1\x80\3\xec\6\x80\3\xcd\1\x80\2\xcd\5\x80\1\xcd\1\x80\4\xec\5\x80\a\x8e\1\xcd\1\x80\3\xe9\1\x80\1\xee\1\xe9\1\x80\2\xcd\1\x80\3\xcd\1\xec\3\xcd\3\xe6\1\x80\2\xcd\1\x80\1\xcd\3\x80\1\xcd\1\x80\3\xe6\1\xcd\2\x80\3\xe9\1\xcd\3\xec\3\xcd\1\x80\6\xcd\2\x80\3\xcd\6\x80\1\xcb\5\xe9\1\xec\6\x80\2\xcd\1\x80\3\xad\1\xec\2\xcd\1\x80\3\xcd\2\x80\f\xcd\1\x80\1\xee\1\xcd\1\x80\2\xe6\1\xec\1\xcd\1\xec\3\xcb\n\xcd\2\x80\3\xcd\2\xee\1\x8e\2\xcb\5\xcd\a\x80\3\xcd\a\x80\1\xcd\1\xe4\1\xee\1\xcb\17\x80\1\xcb\f\xcd\1\x80\2\xcd\2\xee\1\xcd\5\xd5\1\xee\1\xcd\2\x80\2\xe9\1\xee\1\xcd\1\x80\2\xcd\2\xd5\1\xcd\1\x80\5\xec\4\x80\1\xcd\6\xcb\t\xcd\a\xcb\5\xcd\1\x80\3\xcd\2\x80\2\xec\4\x80\1\xcd\1\x80\3\xef\1\x8e\1\x80\1\xcd\1\xee\1\x80\2\xcd\1\xee\1\x80\4\xcb\17\xcd\1\x80\2",
b"\x80\2\xec\4\xad\1\xcb\1\xf7\2\xf0\2\xf7\34\xf0\1\xc7\1\xf7\1\x8e\1\x80\2\xec\6\x80\3\xc7\1\x80\2\xcd\2\xcb\1\xcd\2\x80\1\xc7\1\x80\2\xe9\1\xc7\1\xec\6\x80\6\xc7\1\x80\4\x8e\1\x80\2\xe9\1\x80\1\xc7\2\x80\3\xc7\1\xcd\3\xc7\1\xcb\1\xcd\1\x80\3\xc7\1\xe4\1\xcd\3\x80\1\xc7\1\x80\3\xc7\2\xcd\1\x80\4\xcd\5\xcb\1\x80\a\xcd\2\x80\3\xc7\1\x80\1\xcd\3\xc7\1\xf0\1\xcb\1\xf7\4\xc7\1\xf0\1\xf7\1\xf0\1\xec\3\x8e\1\xcb\2\x80\3\xec\1\xcd\1\xc7\1\x80\4\xc7\1\xcb\1\x80\2\xcb\1\x80\b\xc7\1\xe6\1\x80\1\xc7\1\x80\3\xe6\1\xcd\1\xc7\1\xcd\2\xec\1\xc7\1\xf0\1\xf7\6\xcb\1\xf0\1\xf7\1\xc7\1\xf7\2\xcd\1\xc7\1\xcb\1\xcd\3\xf7\3\xf0\1\xcb\1\xf7\1\xf0\1\xcd\5\x80\3\xcb\1\xc7\1\xcd\4\x8e\1\xe6\1\xc7\1\xf7\17\xf0\1\xc7\1\xf7\2\xf0\1\xf7\v\x8e\1\x80\1\x8e\1\xcb\1\xc7\1\x8e\1\xcb\3\xc7\2\xcb\2\x80\1\xc7\2\xcb\1\xc7\1\x80\1\x8e\1\xcb\1\xc7\1\xee\1\xcd\3\x80\1\xcb\1\x80\2\xec\4\x80\1\xcd\5\xf0\1\xf7\6\xf0\1\xf7\3\xf0\2\xcb\2\xf0\1\xcb\1\xf7\4\xcb\1\xcd\1\x80\3\xcd\2\x80\2\xec\1\xc7\1\xec\2\xe6\1\xc7\1\x80\4\xcb\1\x80\1\xc8\1\xd5\1\x80\2\xcd\1\xc7\1\xcb\1\x80\3\xcb\1\xf0\1\xf7\16\xe6\1\x80\1",
b"\x80\1\xec\3\xc7\1\xf0\5\xf7\2\xf0 \x80\2\xec\6\x80\3\xc7\1\x80\2\xcd\2\xc7\1\xcd\2\x80\1\xc7\1\x80\2\xcd\1\x80\2\xec\5\x80\6\xc7\1\x80\4\xc7\1\x80\1\xe6\1\x80\2\xc7\1\x8e\1\x80\3\xc7\1\xcd\3\xc7\3\x80\3\xc7\1\xcd\4\x80\1\xc7\1\x80\3\xc7\2\x8e\1\x80\4\xcd\5\xc7\1\xf7\1\xf0\1\xf7\2\xf0\1\xc7\1\xe9\1\xcd\2\x80\3\xc7\1\x80\1\xcd\2\xf0\f\xf7\2\xec\1\xf0\1\xc7\1\xcd\1\x80\4\xcd\1\xc7\1\x80\4\xc7\2\x80\2\xc7\1\x80\b\xc7\1\x80\2\xc7\1\x80\3\x8e\1\xcd\1\xc7\1\xcd\2\xc7\1\xf7\2\xf0\6\xf7\1\xf0\a\xc7\2\xcd\1\xc7\1\xf0\a\xc7\1\xcd\4\x80\3\xc7\3\xcd\3\x80\1\xf0\1\xf7\2\xf0\1\xf7\1\xf0\r\xf7\1\xf0\16\xc7\1\xcd\1\x80\1\xc7\4\xf0\1\xc7\n\xe9\1\xc7\2\x8e\1\x80\1\xcd\3\x80\1\xcd\1\x80\3\xec\4\x80\1\xcd\2\xc7\1\xf0\27\xcd\2\x80\2\xcd\2\x80\2\xad\1\xc7\1\xad\2\x8e\1\xc7\1\xe6\1\x80\3\xc7\1\x80\1\xc8\1\xcb\1\xf0\1\xf7\1\xe6\1\xc7\2\xcd\1\xc7\1\xf0\21\xcd\1\x80\1",
b"\x80\1\xc7\1\xf0\1\xf8*\x80\1\xec\6\x80\3\xf0\1\x80\2\xcd\2\xf0\1\xcd\2\x80\1\x84\1\x80\2\xc7\1\x80\2\xf8\1\xc7\1\xec\2\xc7\2\x80\5\xf0\1\x80\4\xf0\1\x80\4\xf0\1\x80\4\xf0\1\xc7\1\x87\1\xc7\1\xf0\3\x80\3\xf0\1\xcd\4\x80\1\xf0\1\x80\3\xf0\2\xcd\1\x80\4\xcd\2\x8e\1\xcd\1\xc7\1\xf8\t\xf0\1\x80\2\xcd\1\xf0\1\x80\1\xf8\25\xc7\1\xcd\1\x80\2\xf0\1\x87\1\x80\3\xf0\2\xf8\a\xf0\1\x80\3\xf0\1\x80\2\xf0\1\xf8\3\xf0\1\xc7\1\xf0\1\xc7\2\xf8\24\xf0\1\xf8\a\xc7\1\xf0\1\xcd\2\xe9\1\x80\3\xf0\3\xc7\1\xf8#\xcd\1\x80\1\xf0\2\x87\1\xf0\v\xc7\1\x80\2\xf0\3\x80\2\xed\2\xd5\1\xf0\1\x80\4\x87\4\x80\1\xc7\1\xf0\1\xf8\30\x87\1\xc7\1\x80\2\xcd\2\x80\2\xc7\2\x87\2\x8e\1\xf0\1\xc7\1\x80\3\xf8\35\x80\1",
b"\xf9\1\xfa\2\xf9\t\xfa\1\xf9 \xfa\1\xec\6\x80\3\xf9\1\xfa\4\xf8\1\xd6\1\xee\1\xf9\1\xfa\1\xf9\1\xfa\1\xf9\1\x80\1\xf0\1\xfa\4\xf9\1\xfa\3\xf9\4\xfa\2\xf9\2\xfa\3\xf9\2\xfa\4\xf9\1\xfa\2\xf9\5\x80\2\xfb\1\x84\1\xcd\3\xef\1\xfb\1\x80\4\xfb\2\x80\5\xcd\2\x8e\1\x80\1\xf9\1\xfa\1\xf9\6\xfa\1\xf9\1\xfa\1\xf9\1\xfa\1\xf9\1\xfa\2\xf9\25\xfa\2\x80\1\x84\1\xfb\1\x84\1\x80\2\x84\1\xfa\2\xf9\t\xfa\4\xf9\1\xfa\3\xf9\1\xfa\1\xf9\1\xfb\1\xf9\1\xfa\1\xf9\1\xfa\1\xf9\20\xfa\1\xf9\t\xfa\2\xf9\2\xcd\1\x80\3\xf9\1\xf8\2\xf9!\xfa\1\xf9\1\x80\2\xf8\1\x80\1\xf8\f\xfb\1\xf8\3\xfb\1\xf8\1\xfb\1\xf0\1\x80\1\xf8\2\xf0\1\x80\5\x84\5\xf9\33\x84\1\x80\2\xd6\2\x80\2\x84\2\xfb\2\xf8\1\xf9\1\xfa\1\xf9\1\xfa\4\xf9\3\xfa\1\xf9\27\xfa\1",
b"\xfc\1\xfd\1\xfc\33\xfd\1\xfc\20\xec\4\xfa\1\xec\2\x80\1\xfc\a\xf0\1\xfe\1\xfd\1\xfc\5\xfa\1\xfd\1\xfc\r\xfd\1\xfc\t\xfd\1\xfc\5\xfd\1\xfc\4\xfa\1\xfb\1\xcd\4\xfa\1\x80\4\xfc\3\xfa\1\x80\3\xcd\2\x8e\1\xfc\v\xfd\1\xfc\33\xfd\1\x80\1\xfb\1\xfa\1\xfb\1\xfa\2\xfc\n\xfd\1\xfc\6\xfd\1\xfc\3\xfd\2\xfc \xfd\1\xfc\2\xfd\1\x80\2\xfc%\xfd\1\x80\3\xfa\30\xff\1\xfe\1\xcd\1\xfb\1\xfa\3\xfb\1\xfa\1\xfb\2\xfc\2\xfd\1\xfc\31\xfb\1\x80\2\xd6\2\x84\1\xfa\1\xfd\1\xfc\v\xfd\1\xfc\33",),
((0, 0, 0), (0, 107, 12), (0, 106, 21), (0, 67, 8), (0, 28, 0), (0, 59, 10), (6, 113, 19), (0, 33, 0), (4, 42, 0), (0, 99, 14), (0, 84, 17), (1, 91, 15), (6, 81, 6), (2, 28, 9), (2, 50, 0), (0, 91, 30), (4, 91, 43), (3, 42, 33), (0, 92, 67), (0, 76, 9), (1, 98, 60), (0, 98, 66), (1, 89, 59), (0, 100, 33), (0, 77, 18), (0, 98, 43), (0, 51, 8), (0, 34, 9), (0, 83, 31), (3, 66, 22), (63, 100, 1), (4, 73, 40), (0, 101, 24), (5, 83, 42), (0, 99, 49), (1, 42, 5), (0, 60, 33), (9, 65, 80), (5, 83, 59), (0, 67, 34), (0, 92, 82), (2, 74, 23), (9, 98, 72), (0, 91, 76), (0, 91, 23), (3, 34, 17), (0, 68, 17), (59, 91, 3), (0, 91, 49), (3, 84, 25), (0, 70, 42), (2, 89, 3), (0, 74, 34), (0, 59, 16), (0, 84, 65), (36, 84, 2), (0, 82, 47), (0, 52, 32), (0, 51, 15), (3, 77, 48), (1, 53, 44), (2, 64, 64), (0, 84, 76), (0, 65, 57), (0, 42, 13), (0, 65, 48), (6, 71, 75), (0, 57, 26), (6, 74, 67), (2, 51, 26), (2, 43, 25), (8, 34, 3), (36, 76, 0), (0, 58, 43), (0, 77, 75), (13, 36, 0), (46, 89, 0), (13, 43, 0), (0, 85, 82), (6, 75, 58), (28, 85, 2), (36, 91, 0), (40, 100, 0), (0, 98, 83), (23, 66, 2), (24, 59, 0), (25, 52, 0), (0, 110, 81), (50, 109, 0), (40, 97, 24), (0, 109, 75), (40, 115, 0), (0, 107, 67), (0, 114, 67), (40, 109, 0), (9, 107, 56), (26, 97, 30), (0, 111, 53), (1, 35, 23), (23, 108, 2), (13, 75, 1), (9, 81, 0), (2, 60, 3), (23, 99, 4), (26, 76, 3), (14, 67, 2), (25, 91, 0), (3, 28, 26), (0, 28, 16), (32, 66, 0), (13, 51, 1), (12, 58, 1), (3, 27, 0), (86, 152, 0), (41, 89, 17), (56, 130, 0), (73, 170, 0), (30, 73, 18), (8, 36, 14), (17, 28, 0), (6, 20, 0), (9, 9, 0), (2, 12, 0), (0, 17, 1), (1, 4, 0), (10, 3, 1), (24, 40, 0), (25, 36, 2))],
)
def draw_sprite_line(rle, nbits, x, y, dw, palette, **kwargs):
'''affiche tout ou partie d'une ligne d'une image, avec :
* arguments obligatoires :
- rle : les donnees compressees RLE de l'image
- nbits : le nombre de bits utilises pour la compression RLE
- y : numero de la ligne a afficher
- x et dw : position et longueur a afficher dans la ligne
- palette : palette de couleurs indexee a utiliser
* arguments nommes optionnels :
- xmin et xmax : bornes horizontales pour tronquer l'affichage
- itransp : index de la couleur transparente dans la palette
- zoom : zoom a appliquer a l'affichage (entier)
- cfond : couleur a utiliser a la place de la couleur transparente
'''
itransp, zoom, cfond, xmin, xmax = 0, 1, None, 0, L_ECRAN - 1
if "xmin" in kwargs: xmin = kwargs["xmin"]
if "xmax" in kwargs: xmax = kwargs["xmax"]
if "itransp" in kwargs: itransp = kwargs["itransp"]
if "zoom" in kwargs: zoom = kwargs["zoom"]
if "cfond" in kwargs: cfond = kwargs["cfond"]
x, y = round(x), round(y)
dw *= zoom
maskval, maskcnt = (1 << nbits) - 1, (255 >> nbits >> 1) << nbits
i = 0
while x <= xmax and dw > 0:
v = rle[i]
mv = v & maskval
c = (v & maskcnt) >> nbits
if v & 128:
i += 1
c |= rle[i] << (7 - nbits)
if c:
w = c * zoom
if (mv != itransp or cfond) and x + w >= xmin and x <= xmax:
xf = max(xmin, x)
draw_horiz(floor(xf), y, ceil(min(dw, min(w - xf + x, xmax - xf + 1))), mv != itransp and palette[mv] or cfond)
x += w
dw -= w
i = (i + 1) % len(rle)
#---------
# COULEURS
#---------
C_LUKE, C_YODA = (96, 184, 243), (139, 235, 162)
def rgb2hsv(r, g, b):
'''convertit une couleur donnee en coordonnees Rouge-Vert-Bleu (RGB) vers des coordonnees Teinte-Saturation-Valeur (HSV), avec :
- r, g, b : les coordonnees rouge/vert/bleu (entier de 0 a 255)
'''
cmax = max(r, g, b)
d = cmax - min(r, g, b)
h = d and (cmax == b and (r-g)/d+4 or cmax==g and (b-r)/d+2 or cmax==r and ((g -b)/d)%6)
s = cmax and d/cmax
return h/60, s, cmax/255
def hsv2rgb(h, s=1, v=1):
'''convertit une couleur donnee en coordonnees Teinte-Saturation-Valeur (HSV) vers des coordonnees Rouge-Vert-Bleu (RGB), avec :
- h : la teinte (sur l'intervalle [0;60[)
- s et v : les saturation et valeur (sur l'intervalle [0;1])
'''
h *= 6
c = v * s
x = c * (1 - abs((h % 2) - 1))
r, g, b = h < 1 and (c, x, 0) or h < 2 and (x, c, 0) or h < 3 and (0, c, x) or h < 4 and (0, x, c) or h < 5 and (x, 0, c) or (c, 0, x)
return [round((k + v - c) * 255) for k in (r, g, b)]
def gradient(start, end, progress):
'''calcule un degrade de couleur en coordonnees HSV, avec :
- start : couleur HSV de depart
- end : couleur HSV de fin
- progress : position de la couleur intermediaire (sur l'intervalle [0;1])
'''
return [start[i] + (end[i] - start[i]) * progress for i in range(3)]
#--------------------
# AFFICHAGE - GENERAL
#--------------------
# extension de la bibliotheque casioplot
L_ECRAN, H_ECRAN = 384, 192 # largeur et hauteur de la zone graphique
H_POLICE = {"small":10, "medium":14, "large":20} # hauteur des caracteres des polices
L_POLICE = {"small":8, "medium":12, "large":18} # largeur des caracteres numeriques des polices
def lnum(i):
'''calcul la largeur d'affichage du nombre i en pixels'''
return 1 + int(log10(max(1, i)))*L_POLICE[POLICE]
def draw_horiz(x, y, w, c):
'''trace une ligne horizontale, avec :
- x et y : les coordonnees de la borne de gauche
- w : la longueur
- c : la couleur
'''
for dx in range(w): set_pixel(x + dx, y, c)
def fill_rect(x, y, w, h, c):
'''trace un rectangle plein, avec :
- x et y : les coordonnees du coin superieur gauche
- w et h : les largeur et hauteur
- c : la couleur
'''
for dy in range(h): draw_horiz(x, y + dy, w, c)
#-----------------------
# AFFICHAGE - SPECIFIQUE
#-----------------------
def draw_surface_marais(y, xmin=0, xmax = L_ECRAN - 1):
'''trace une ligne de la surface du marais, avec :
* parametre obligatoire :
- y : l'ordonnee
* parametres optionnels :
- xmin et xmax : les bornes horizontales
'''
x = 0
seed(42 * y)
while x <= xmax:
c = hsv2rgb(120.6/360, 1, random())
w = randint(1, L_ECRAN // 4)
if x + w >= xmin and x < xmax:
xf = max(xmin, x)
draw_horiz(floor(xf), y, ceil(min(w - xf + x, xmax - xf + 1)), c)
x += w
#-----
# MATH
#-----
# extension de la bibliotheque math
def sign(x):
'''retourne le signe du nombre x, sous la forme -1, 0 ou 1'''
return (x > 0) - (x < 0)
#-----------------
# RAFRAICHISSEMENT
#-----------------
# fonction essentielle, appelee en boucle dans ce qui va suivre
def refresh(ymin=0, ymax=H_ECRAN - 1, xmin=0, xmax = L_ECRAN - 1):
'''rafraichit l'affichage en ne redessinant que les elements necessaires, avec :
- ymin et ymax : les bornes verticales de la zone a rafraichir
- xmin et max : les bornes horizontales de la zone a rafraichir
'''
global forceon, score
ymin, ymax = max(0, floor(ymin)), min(H_ECRAN - 1, floor(ymax))
xmin, xmax = max(0, xmin), min(L_ECRAN - 1, xmax)
txmin, txmax = xmin, xmax
ly = (134,152,160,164)
for y in range(ymin, ymax + 1):
if y >= ly[0] and y < ly[1]: # surface du marais entre arbres et fond d'ecran
draw_surface_marais(y, xmin, xmax)
if y == H_ECRAN - H_BOUTON:
if status[2] or not isinstance(status[0], str) and forceon:
txmax = min(xmax, L_ECRAN - L_BOUTON)
if not isinstance(status[0], str):
txmin = max(xmin, lnum(score))
# decor du marais
if y < ly[1] and (isinstance(status[0], str) or y <= 1 or y >= H_BARRE + 2*M_BARRE - 2) or y >= ly[-1]:
if y < ly[0]:
c = gradient((205/360, 1, .565), (157.5/360, 1, .439), y / (ly[0] - 1))
c = hsv2rgb(c[0], c[1], c[2])
else:
c = y >= ly[-1] and (255, 255, 255)
draw_sprite_line(SPRITES[I_AP][S_RLE][y], SPRITES[I_AP][S_BITS], 0, y, SPRITES[I_AP][S_L], SPRITES[I_AP][S_PALETTE], itransp=SPRITES[I_AP][S_ITRANSP], cfond=c, xmin=txmin, xmax=txmax)
for x in range(txmax + 1, xmax + 1):
set_pixel(x, y, (0, 0, 255))
if not isinstance(status[0], str) and y >= ly[-1]:
for x in range(xmin, txmin):
set_pixel(x, y, (0, 0, 255))
# message or force bar
if isinstance(status[0], str):
if y == 1 + H_POLICE[POLICE] and ymin < y:
draw_string(0, 1, status[0], status[1], POLICE)
elif y < H_BARRE + 2*M_BARRE:
xf = round((L_ECRAN - 1) * status[0])
for x in range(txmin, txmax + 1):
if abs(x - xf) <= M_CURSEUR and y >= 1 and y < 2*M_BARRE + H_BARRE - 1 or abs(x - xf) < M_CURSEUR:
set_pixel(x, y, forceon and (255, 0, 255) or (127, 127, 127))
elif y >= M_BARRE and y < M_BARRE + H_BARRE:
c = gradient((0, 1, 1), (120/360, 1, 1), (x - 2) / (L_ECRAN - 2))
set_pixel(x, y, hsv2rgb(c[0], c[1], c[2]))
if y >= ly[1] and y < ly[2]: # surface du marais entre plateformes et arbres
draw_surface_marais(y, txmin, txmax)
if y >= SPRITES[I_PF_G][S_Y] and y < SPRITES[I_PF_G][S_Y] + SPRITES[I_PF_G][S_H]: # grande plateforme
draw_sprite_line(SPRITES[I_PF_G][S_RLE][y - ceil(SPRITES[I_PF_G][S_Y])], SPRITES[I_PF_G][S_BITS], SPRITES[I_PF_G][S_X], y, SPRITES[I_PF_G][S_L], SPRITES[I_PF_G][S_PALETTE], itransp=SPRITES[I_PF_G][S_ITRANSP], xmin=xmin, xmax=xmax)
if y >= SPRITES[I_PF_P][S_Y] and y < SPRITES[I_PF_P][S_Y] + SPRITES[I_PF_P][S_H]: # petite plateforme
draw_sprite_line(SPRITES[I_PF_P][S_RLE][y - ceil(SPRITES[I_PF_P][S_Y])], SPRITES[I_PF_P][S_BITS], SPRITES[I_PF_P][S_X], y, SPRITES[I_PF_P][S_L], SPRITES[I_PF_P][S_PALETTE], itransp=SPRITES[I_PF_P][S_ITRANSP], xmin=xmin, xmax=xmax)
if y >= SPRITES[I_LUKE][S_Y] and y < SPRITES[I_LUKE][S_Y] + SPRITES[I_LUKE][S_H]: # Luke
draw_sprite_line(SPRITES[I_LUKE][S_RLE][y - ceil(SPRITES[I_LUKE][S_Y])], SPRITES[I_LUKE][S_BITS], SPRITES[I_LUKE][S_X], y, SPRITES[I_LUKE][S_L], SPRITES[I_LUKE][S_PALETTE], itransp=SPRITES[I_LUKE][S_ITRANSP], xmin=xmin, xmax=xmax)
if y >= SPRITES[I_YODA][S_Y] and y < SPRITES[I_YODA][S_Y] + SPRITES[I_YODA][S_H]: # Yoda
draw_sprite_line(SPRITES[I_YODA][S_RLE][y - ceil(SPRITES[I_YODA][S_Y])], SPRITES[I_YODA][S_BITS], SPRITES[I_YODA][S_X], y, SPRITES[I_YODA][S_L], SPRITES[I_YODA][S_PALETTE], itransp=SPRITES[I_YODA][S_ITRANSP], xmin=xmin, xmax=xmax)
if y >= SPRITES[I_XWING][S_Y] and y < SPRITES[I_XWING][S_Y] + SPRITES[I_XWING][S_H]*SPRITES[I_XWING][S_ZOOM]: # X-Wing
draw_sprite_line(SPRITES[I_XWING][S_RLE][(y - ceil(SPRITES[I_XWING][S_Y])) // SPRITES[I_XWING][S_ZOOM]], SPRITES[I_XWING][S_BITS], SPRITES[I_XWING][S_X], y, SPRITES[I_XWING][S_L], SPRITES[I_XWING][S_PALETTE], itransp=SPRITES[I_XWING][S_ITRANSP], zoom=2, xmin=xmin, xmax=xmax)
if y >= ly[2] and y < ly[3]: # surface du marais jusqu'aux plateformes
draw_surface_marais(y, txmin, txmax)
if y >= ly[-1]: # sous la surface du marais
c1a_hsv = (196.5/360, 1, .655)
c1b_hsv = (171.1/360, 1, .396)
c1_hsv = gradient(c1a_hsv, c1b_hsv, sqrt((y - ly[-1]) / (H_ECRAN - ly[-1])))
c1_rgb = rgb2hsv(c1_hsv[0], c1_hsv[1], c1_hsv[2])
for x in range(txmin, txmax + 1):
c2_rgb = get_pixel(x, y)
c2_hsv = rgb2hsv(c2_rgb[0], c2_rgb[1], c2_rgb[2])
k = 2 + sqrt((y - ly[-1]) / (H_ECRAN - ly[-1]))
c3_rgb = hsv2rgb(c1_hsv[0], (c1_hsv[1] + c2_hsv[1])/k , (c1_hsv[1] + c2_hsv[2])/k)
set_pixel(x, y, c3_rgb)
if status[2] and y == H_ECRAN - 1 and xmax >= L_ECRAN - 1 or not isinstance(status[0], str) and forceon:
draw_string(L_ECRAN - L_BOUTON, H_ECRAN - H_BOUTON, "AC/ON", (255, 255, 0), "small")
if not isinstance(status[0], str) and y == H_ECRAN - 1 and xmin <= 0:
draw_string(0, H_ECRAN - H_BOUTON, str(round(score)), (255, 255, 0), "small")
#----------
# ANIMATION
#----------
M_HORIZ, M_VERT = tuple(range(1, 3))
def fanim(lst, mode_osc = 0, loop=True):
'''joue une animation, avec :
- lst : liste d'images a animer, avec pour chaque element :
-- index de l'image principale a animer
-- index d'une image liee a la position de l'image precedente (ou sinon None)
-- abscisse ou deplacer l'image principale (ou None)
-- ordonnee ou deplacer l'image principale (ou None)
- mode_osc : masque indiquant si l'image doit subit des oscillations, pouvant alors etre horizontales (M_HORIZ), verticales (M_VERT) ou bien les deux a la fois
- loop : indique si l'animation doit etre jouee en boucle ou bien une seule fois
'''
global x_c, y_c
x_c, y_c = SPRITES[lst[-1][0]][S_X : S_Y + 1]
ix, iy = 0, 0
while 1:
stop = True
for i in range(len(lst)):
i1_sprite, i2_sprite, destx, desty = lst[i]
tx1, ty1 = SPRITES[i1_sprite][S_X : S_Y + 1]
if not i2_sprite is None: tx2, ty2 = SPRITES[i2_sprite][S_X : S_Y + 1]
if not destx is None and SPRITES[i1_sprite][S_X] != destx:
SPRITES[i1_sprite][S_X] += sign(destx - SPRITES[i1_sprite][S_X])
if not i2_sprite is None:
tx2 = SPRITES[i2_sprite][S_X]
SPRITES[i2_sprite][S_X] += SPRITES[i1_sprite][S_X] - tx1
stop = False
if SPRITES[i1_sprite][S_X] == destx:
lst[i][2] = None
x_c = SPRITES[lst[-1][0]][S_X]
elif i + 1 == len(lst) and mode_osc & M_HORIZ:
SPRITES[i1_sprite][S_X] = x_c - round(sin(ix*pi/180) * SPRITES[i2_sprite][S_L] / 16)
SPRITES[i2_sprite][S_X] += SPRITES[i1_sprite][S_X] - tx1
ix += 18
if not desty is None and SPRITES[i1_sprite][S_Y] != desty:
SPRITES[i1_sprite][S_Y] += sign(desty - SPRITES[i1_sprite][S_Y])
if not i2_sprite is None:
ty2 = SPRITES[i2_sprite][S_Y]
SPRITES[i2_sprite][S_Y] += SPRITES[i1_sprite][S_Y] - ty1
stop = False
if SPRITES[i1_sprite][S_Y] == desty:
lst[i][3] = None
y_c = SPRITES[lst[-1][0]][S_Y]
elif i + 1 == len(lst) and mode_osc & M_VERT:
SPRITES[i1_sprite][S_Y] = y_c - round(sin(iy*pi/180) * SPRITES[i2_sprite][S_H] / 8)
SPRITES[i2_sprite][S_Y] += SPRITES[i1_sprite][S_Y] - ty1
iy += 1
if not i2_sprite is None: refresh(min(ty2, SPRITES[i2_sprite][S_Y]), max(ty1, SPRITES[i1_sprite][S_Y]) - 1, min(tx2, SPRITES[i2_sprite][S_X]), max(tx2, SPRITES[i2_sprite][S_X]) + SPRITES[i2_sprite][S_L])
refresh(min(ty1, SPRITES[i1_sprite][S_Y]), max(ty1, SPRITES[i1_sprite][S_Y]) + SPRITES[i1_sprite][S_H]*SPRITES[i1_sprite][S_ZOOM] - 1, min(tx1, SPRITES[i1_sprite][S_X]), max(tx1, SPRITES[i1_sprite][S_X]) + SPRITES[i1_sprite][S_L]*SPRITES[i1_sprite][S_ZOOM])
if stop:
if not mode_osc or not loop: break
if not status[2]:
status[2] = True
refresh(H_ECRAN - H_BOUTON, H_ECRAN - 1, L_ECRAN - L_BOUTON, L_ECRAN - 1)
show_screen()
def ac(fanim, loop=True, lmsg=None, lparams_anim=()):
''' lance une animation, tout en permettant a tout moment son interruption avec la touche [AC] et dans ce cas le nettoyage correct de l'affichage, avec :
- fanim : la fonction d'animation
- loop : indique si l'animation doit etre jouee en boucle ou bien une seule fois
- lmsg : liste avec le message a afficher et sa couleur
- lparams_anim : liste des parametres a passer a la fonction d'animation fanim()
'''
try:
global status
if not lmsg is None:
status[:2] = lmsg
refresh(1, 1 + H_POLICE[POLICE])
fanim(*(lparams_anim + (loop,)))
except KeyboardInterrupt:
try:
if loop:
status[2] = False
refresh(H_ECRAN - H_POLICE[POLICE], H_ECRAN - 1, 346, L_ECRAN - 1)
fanim(False, *(lparams_anim + (loop,)))
except: pass
#-----------------------------
# AUTRES FONCTIONS SPECIFIQUES
#-----------------------------
def force(f):
'''fait appel a la Force, avec :
- f l'intensite de la Force sur l'intervalle [0;1]
'''
global vy, forceon, score
if forceon:
vy += 2*f - 1
forceon = False
score += f*kscore/(1 - min(0, vy))*1000
refresh(H_ECRAN - H_BOUTON, H_ECRAN - 1, 0, lnum(score))
refresh(H_ECRAN - H_BOUTON, H_ECRAN - 1, L_ECRAN - L_BOUTON, L_ECRAN - 1)
def gameover():
'''teste si on a gagne le jeu'''
return SPRITES[I_XWING][S_Y] < -SPRITES[I_XWING][S_H] * SPRITES[I_XWING][S_ZOOM]
score, kscore, fscore = 0, 1, .999
def main():
'''lance la partie jeu'''
global vy, forceon, kscore, score
try:
refresh(H_ECRAN - H_BOUTON, H_ECRAN - 1, L_ECRAN - L_BOUTON, L_ECRAN - 1)
w = 220
t = 0
of = -1
while not gameover():
try:
try:
f = 1 - abs(cos(t*pi/w))
if t % w == 1 and not forceon:
forceon = True
refresh(H_ECRAN - H_BOUTON, H_ECRAN - 1, L_ECRAN - L_BOUTON, L_ECRAN - 1)
status[:2] = f, None
xf = round((L_ECRAN - 1) * f)
refresh(0, H_BARRE + 2*M_BARRE, of >= 0 and min(xf - M_CURSEUR, oxf - M_CURSEUR), of < 0 and L_ECRAN - 1 or max(xf + M_CURSEUR, oxf + M_CURSEUR) or L_ECRAN - 1)
show_screen()
t, of, oxf = (t + 1) % w, f, xf
vy = SPRITES[I_XWING][S_Y] < H_ECRAN and vy - .005*180/w
kscore *= fscore
except KeyboardInterrupt: force(f)
ty, SPRITES[I_XWING][S_Y] = SPRITES[I_XWING][S_Y], min(H_ECRAN, SPRITES[I_XWING][S_Y] - vy)
if round(ty) != round(SPRITES[I_XWING][S_Y]):
refresh(min(ty, SPRITES[I_XWING][S_Y]), max(ty, SPRITES[I_XWING][S_Y]) + SPRITES[I_XWING][S_H]*SPRITES[I_XWING][S_ZOOM] + 1, SPRITES[I_XWING][S_X], SPRITES[I_XWING][S_X] + SPRITES[I_XWING][S_L]*SPRITES[I_XWING][S_ZOOM])
except KeyboardInterrupt: force(f)
score *= kscore + 1
force(1)
except KeyboardInterrupt:
force(f)
main()
#---------------
# INITIALISATION
#---------------
POLICE = "small" # police a utiliser
# reglage du zoom des differentes images
for sprite in SPRITES:
sprite.append(1)
SPRITES[I_XWING][S_ZOOM] = 2
# positionnement des differentes images a l'ecran
SPRITES[I_XWING].extend(((L_ECRAN - SPRITES[I_XWING][S_L]*SPRITES[I_XWING][S_ZOOM])//2, 164 - SPRITES[I_XWING][S_H]))
SPRITES[I_PF_G].extend((-SPRITES[I_PF_G][S_L], 146))
SPRITES[I_PF_P].extend((L_ECRAN, 151))
SPRITES[I_YODA].extend((SPRITES[I_PF_P][S_X] + (SPRITES[I_PF_P][S_L] - SPRITES[I_YODA][S_L]) // 2, SPRITES[I_PF_P][S_Y] - SPRITES[I_YODA][S_H] + SPRITES[I_PF_P][S_H] // 4))
SPRITES[I_LUKE].extend((SPRITES[I_PF_G][S_X] + (SPRITES[I_PF_G][S_L] - SPRITES[I_LUKE][S_L]) // 2, SPRITES[I_PF_G][S_Y] - SPRITES[I_LUKE][S_H] + SPRITES[I_PF_G][S_H] // 2))
# largeurs et hauteurs de differentes elements graphiques
# - barre de Force et son curseur :
M_CURSEUR = H_POLICE[POLICE] // 4
M_BARRE = 2
H_BARRE = H_POLICE[POLICE] - M_CURSEUR - M_BARRE
# - bouton invitant a taper la touche action [AC]
H_BOUTON = H_POLICE[POLICE]
L_BOUTON = 39
status = ["", None, False]
refresh(0, H_ECRAN - 1) # 1er affichage, dessine tout l'ecran
show_screen()
# anime les differentes etapes du dialogue introductif Luke-Yoda
ac(fanim, True, ("Oh non le vaisseau, nous ne pourrons plus le recuperer...", C_LUKE), (([I_XWING, None, None, H_ECRAN], [I_PF_G, I_LUKE, (L_ECRAN - SPRITES[I_PF_G][S_L]) // 2, None]), M_VERT))
ac(fanim, True, ("Quelle certitude as-tu ? Avec toi, rien n'est jamais possible.", C_YODA), (([I_PF_G, I_LUKE, 33, None], [I_PF_P, I_YODA, (L_ECRAN - SPRITES[I_PF_P][S_L]) // 2, None]), M_VERT))
ac(fanim, True, ("Faire bouger des pierres est une chose mais la c'est different", C_LUKE), (([I_PF_G, I_LUKE, None, None],), M_VERT | M_HORIZ))
ac(fanim, True, ("Different dans ton esprit. Desapprends ce que tu as appris.", C_YODA), (([I_PF_P, I_YODA, 280, None],), M_VERT))
ac(fanim, True, ("C'est trop gros, j'y arriverai pas.", C_LUKE), (([I_PF_G, I_LUKE, None, None],), M_VERT | M_HORIZ))
ac(fanim, True, ("La taille importe peu. Par ma taille peux-tu me juger ?", C_YODA), (([I_PF_P, I_YODA, None, 64],), M_VERT))
ac(fanim, True, ("Tres bien, je vais essayer.", C_LUKE), (([I_PF_G, I_LUKE, None, None],), M_VERT))
ac(fanim, True, ("Non, fais-le. Ou ne le fais pas. Mais il n'y a pas d'essai.", C_YODA), (([I_PF_P, I_YODA, None, None],), M_VERT | M_HORIZ))
vy = 0 # vitesse verticale du X-Wing
forceon = True # indique si la Force est avec toi
main() # lance la partie jeu
# le jeu est gagne, animation de fin
ac(fanim, False, None, (([I_PF_G, I_LUKE, SPRITES[I_XWING][S_X], -SPRITES[I_PF_G][S_H]],), 0))
ac(fanim, True, ("Va Luke, la Force est avec toi, a jamais.", C_YODA), (([I_PF_P, I_YODA, None, None],), M_VERT))
print(score)
Merci Casio !
Source : https://www.casio-education.fr/actualit ... -4th-2023/