π
<-
Chat plein-écran
[^]

News 2024

News 2023
Août (2)
Juin (3)
Mai (4)
Avril (1)

News 2022
Août (3)
Juin (1)
Mai (1)
Mars (2)

News 2021
Août (12)
Juin (2)
Mai (7)
Avril (3)
Mars (1)

News 2020
Août (15)
Juin (7)
Mai (7)
Avril (19)
Mars (4)

News 2019
Août (4)
Juin (6)
Mai (1)
Avril (3)
Mars (1)

News 2018
Août (11)
Juin (3)
Mai (10)
Avril (2)
Mars (4)

News 2017
Août (15)
Juillet (18)
Juin (1)
Mai (7)
Avril (4)
Mars (7)

News 2016
Août (17)
Juillet (16)
Juin (2)
Mai (2)
Avril (1)
Mars (5)

News 2015
Août (25)
Juin (4)
Mai (9)
Avril (4)
Mars (10)

News 2014
Août (4)
Juin (11)
Mai (12)
Avril (9)
Mars (12)
Janvier (13)

News 2013
Octobre (11)
Août (5)
Juin (9)
Mai (12)
Avril (10)
Mars (7)
Janvier (10)

News 2012
Août (12)
Juillet (10)
Juin (13)
Mai (22)
Avril (8)
Mars (5)

News 2011
Octobre (23)
Août (1)
Juin (29)
Mai (11)
Avril (5)
Mars (3)

News 2010
Août (2)
Juin (5)

News 2009
Août (1)
Juin (1)
Mai (1)
Avril (1)
Mars (1)

Remerciements donation de TI pour MyCalcs

Nouveau messagede Adriweb » 24 Mai 2023, 14:31

Il y a maintenant quelques années, j'avais lancé le site MyCalcs, en beta privée à l'époque, mais devenue publique quelques temps après.

A la base, MyCalcs est un site permettant d'organiser et montrer sa collection (petite ou grande) de calculatrices graphiques, même si son back-end (base de données, API, ...) est prévu pour des choses futures de grande envergure que j'annoncerai en temps voulu ;)

Et en fait, au début et jusqu'à Novembre 2021, MyCalcs était restreint aux calculatrices graphiques Texas Instruments, mais s'est depuis élargi pour gérer l'intégralité des calculatrices graphiques existantes, donc de toutes marques - et aujourd'hui on y compte 287 modèles uniques (+ 175 variantes) !

Au cours du temps, beaucoup de fonctionnalités ont été ajoutées, notamment suite à des feedback (merci :favorite:) de sa communauté grandissante (≈450 membres (de tout horizon et du monde entier) et ≈4000 calculatrices enregistrées). Le site continue d'ailleurs toujours d'évoluer :) (preview spécial pour l'occasion : les accessoires de calculatrices graphiques vont "bientôt" arriver !)

Outre l'aspect purement "collection", un des objectifs primordiaux de MyCalcs est en fait, grâce à ceci, de regrouper des informations sur l'évolution logicielle, mais aussi et surtout matérielle, des différents modèles de calculatrices graphiques (y compris leurs cartes électroniques, donc).
En effet, beaucoup l'ignorent, mais il existe en fait plusieurs (voire beaucoup) de révisions matérielles pour un modèle donné. Par exemple, la TI-83 Plus, originellement sortie en 1999 mais toujours d'actualité (!), s'est faite fabriquer au cours du temps par 6 usines différentes en Asie, sous au moins 43 révisions matérielles différentes identifiées ! Pour les Nspire CX, c'est une 30aine, par 2 usines, etc.
Bref, nous voulons recenser l'intégralité (ou du moins autant que possible) de l'historique des calculatrices graphiques, et ainsi sauvegarder ce patrimoine qui nous est cher, avant qu'il tombe dans les oubliettes de l'histoire, comme bien des choses malheureusement. TI-Planet contribue déjà depuis longtemps à cet effort, via notre "musée numérique" à travers notre galerie et les articles de découvertes, par exemple, notamment avec le soutien des fabricants à l'occasion de la sortie de nouveaux modèles :)

Depuis quelques temps, et notamment à l'occasion de la conférence T³ il y a quelques mois (à Dallas !), nous avons pu présenter MyCalcs à TI, et ils ont trouvé ceci très intéressant 0:]
Et bien surprise, TI vient justement de nous faire un superbe cadeau de 3 modèles intéressants pour MyCalcs :favorite:

16817 16818
TI-73 ViewScreen, TI-84 Plus C Silver Edition (EZ-Spot), TI-Nspire CX (EZ-Spot)
16820 16819
Zoom sur le port VSC de la TI-73 (ainsi que sur la 84+CSE, parce que j'adore son look :P)

Les deux calculatrices EZ-Spot (avec du jaune bien visible en plus de l'inscription "school property", justement pour le contexte scolaire) sont neuves et donc en parfait état, ce qui est rare pour des calculatrices à la fois discontinuées et particulièrement EZ-Spot ! (On rappellera par la même occasion, que ces variantes la ne sont pas disponibles à la vente pour les particuliers...).
La Nspire est d'ailleurs en révision matérielle S, qu'il faudrait donc ouvrir pour prendre en photo son PCB afin de le rajouter à nos documentations :)

Mais revenons sur cette TI-73... Non seulement c'est un modèle enseignant ViewScreen (le port utilisé pour la rétroprojection en classe, sur les anciens modèles), mais en plus, il y a quelque chose qui attire notre attention, trouvable en haut au dos de la calculatrice : une plaque avec le nom "Peter Balyta" :) Cette calculatrice, est en fait un don personnel de Peter Balyta, qui a donc offert sa propre calculatrice. C'est incroyable et unique ! Mais qui est donc Peter Balyta ? He bien, nul autre que le président de la division éducation de Texas Instruments depuis 2014, et où il a démarré en 2000, après ses débuts en tant que professeur de mathématiques au collège et lycée :)

Peter a aussi précisé qu'il tentera de nous aider pour certaines informations, par exemple sur les accessoires disponibles au cours du temps, les différentes variations etc. Fantastique !

Un immense merci à Texas Instruments, et tout particulièrement à Peter Balyta, pour cette donation, aussi inattendue que remarquable 🥹

Vous avez tout lu ? Alors maintenant, allez renseigner vos calculatrices graphiques sur MyCalcs B-)
Lien vers le sujet sur le forum: Remerciements donation de TI pour MyCalcs (Commentaires: 3)

Sauvegarde vidéos TI-Planet suite à la panne Gfycat

Nouveau messagede critor » 20 Mai 2023, 08:18

Sur TI-Planet, pour te présenter des animations dans nos actualités, nous utilisions souvent Gfycat.

Fondée en 2013 à Edmonton au Canada puis incorporée en 2015 aux Etats-Unis d'Amérique, Gfycat était une plateforme d'hébergement de courtes vidéos, jusqu'à 1 minute.

C'était notamment l'une des premières plateformes à permettre de fournir des images animées au format GIF, ces dernières se retrouvant alors encodées au format vidéo mp4/webm permettant une réduction significative de taille et ainsi des économies de bande passante lorsque tu nous visitais.

Les vidéos ainsi obtenues n'en restaient pas moins intégrables aux pages Internet sans être amochées d'une barre d'outils, et jouables sans la moindre interaction de l'utilisateur. Tu ne rêves pas, Gfycat permettait de combiner les avantages d'images animées GIF et de vidéos ! :bj:

Le service comptait des centaines de milliers d'utilisateurs, avec une intégration notable à Reddit, Tango, Outlook, Skype, WordPress et bien d'autres... Chez nous sur TI-Planet il s'agissait de 440 vidéos mises en ligne depuis 2016, et nous avions plusieurs fois reçu des trophées par courriel pour le nombre de vues cumulées...
Et puis, Gfycat a fait l'objet de licenciements massifs dans le cadre d'un rachat par SnapChat an août 2022.

Depuis le service s'était lourdement dégradé :
  • depuis des mois, plus personne pour approuver les nouvelles vidéos mises en ligne - elles pouvaient toujours être consultées pour qui disposait de leur adresse, mais elles n'apparaissaient plus dans les tendances, recommandations, ou pour qui consultait la page de profil associée...
  • depuis maintenant au moins 2 mois, impossibilité d'ajouter de nouvelles vidéos, la barre de progression de l'encodage se figeant systématiquement avant les 100%...
SnapChat semblait clairement ne rien avoir à faire de Gfycat, on se demande bien pourquoi il l'a racheté... Inclus dans un pack d'acquisitions ? Pour le couler ? Pour en reprendre le code ?...

Quoi qu'il en soit, Gfycat vient de tomber. Le certificat TLS du site vient d'expirer ce jeudi 18 mai 2023 car n'ayant pas été renouvelé, et comme le site imposait l'accès sécurisé en https il n'est maintenant plus accessible normalement, ton navigateur refusera la connexion.
Il est possible de réobtenir un accès à Gfycat en désactivant la vérification du certificat dans ton navigateur, ce qui n'est bien sûr pas recommandé... Précisons qu'il ne s'agit toutefois que d'un accès très partiel, nombre de choses (scripts entre autres) ne fonctionnant pas correctement dans cette situation, et notamment pas les pages de profil listant toutes tes vidéos.

Nous avons donc récupéré chez nous dans notre propre base de données les adresses de toutes les 440 vidéos Gfycat utilisées, afin de les retélécharger via l'astuce précédente et les ré-héberger en interne sur TI-Planet. Nous avons pu ainsi sauvegarder avec succès 432 des vidéos (98%), un gros merci à Adriweb qui vient de se charger de cette manipulation.

Le code d'intégration associé a été mis à jour, et normalement la quasi totalité des vidéos en question re-fonctionnent désormais comme avant chez nous, regarde :

(Oiram, par MateoConLechuga)


Si tu as des vidéos sur Gfycat nous ne pouvons que t'encourager très fortement à les sauvegarder de toute urgence de façon similaire, avant que la situation ne se dégrade encore davantage et que les vidéos ne deviennent définitivement inaccessibles.

Merci Gfycat pour toutes ces années au service de l'Internet, nous ne t'oublierons pas... :'(

Et quand à la nouvelle entité qu'il y a derrière désormais, vous avez le droit de laisser mourir Gfycat puisque vous l'avez acheté (que ce soit par incurie ou par intérêt), mais vous avez grandement manqué de correction envers des centaines de milliers d'utilisateurs. La moindre des choses eut été de les prévenir que vous n'aviez plus l'intention de rien faire (et vous avez déjà eu plus de 8 mois pour ça), afin de leur donner une chance de sauvegarder leurs vidéos avant qu'il ne soit trop tard, et préserver ainsi 10 ans d'histoire de l'Internet. :mj:
Lien vers le sujet sur le forum: Sauvegarde vidéos TI-Planet suite à la panne Gfycat (Commentaires: 5)

Offre TI d'aide à l'équipement collèges+lycées 2023-2024

Nouveau messagede critor » 11 Mai 2023, 20:42

Enseignant ? Texas Instruments annonce aujourd'hui son offre d'aide à l'équipement pour la rentrée 2023, à l'attention des collèges et lycées, sections d'enseignement supérieur incluses. Sont concernés les établissements de France métropolitaine, de Réunion, d'Antilles-Guyane, ainsi que du réseau AEFE en Europe.

Pour en bénéficier il faut que ton établissement organise un achat groupé de calculatrices Texas Instruments, mais ce de façon exclusive (aucun produit d'une autre marque ne doit apparaître sur la facture).

Pour chaque tranche de 30 calculatrices achetées, tu as droit à 1 produit gratuit au choix parmi tout ce qui suit :

Des éléments qui pourront ainsi être conservés de façon mutualisée pour être utilisés par toi et tes collègues, prêtés ponctuellement à des élèves ayant cassé/perdu/oublié leur machine, à des élèves dans le besoin, pour des projets d'élèves, ou encore donnés en récompense à des élèves méritants (s'étant illustrés lors de concours, olympiades, rallyes ou tout simplement dans leur investissement scolaire)... les possibilités ne manquent pas ! :D

Merci TI ! :favorite:

Source : https://education.ti.com/fr/enseignants ... 23.MAR.VPP
Lien vers le sujet sur le forum: Offre TI d'aide à l'équipement collèges+lycées 2023-2024 (Commentaires: 2)

Découverte adaptateur piles pour prototype Spot / PLT-SHH1

Nouveau messagede critor » 07 Avr 2023, 09:38

En 2002, à l'occasion du salon éducatif international T3 organisé cette année-là à Calgary au Canada, Texas Instruments avait présenté une nouvelle branche de calculatrices révolutionnaires, la famille des TI-PLT (Personnal Learning Tool) dans le cadre de son projet Pet.

Trois modèles différents furent fabriqués, et surnommés de façon très logique de noms de chiens célèbres en Amérique du Nord :
1852
  • TI-PLT SHH1[b], pour [b]Spot HandHeld 1 (Spot étant le nom d'un chien héros de bande dessinée et de dessin animé en Amérique du Nord)
    1823
  • TI-PLT FHH1, pour Fido HandHeld 1 (Fido étant un nom de chien très courant en Amérique du Nord comme Médor chez nous, puisque ce fut le nom du chien d'Abraham Lincoln et également le premier chien Présidentiel des Etats-Unis à se voir photographier, tradition qui se poursuit encore aujourd'hui)
    1700
  • TI-PLT SU1, dont le surnom serait Toto selon une mention manuscrite sur un sticker au dos du prototype testé par le musée Datamath (Toto étant le nom du chien de Dorothée dans le Magicien d'Oz)

18501861Aujourd'hui, reparlons du prototype TI-PLT SHH1, c'est-à-dire de Spot. Adriweb t'avait fait une excellente présentation de son prototype de numéro de série 029 il y a un peu plus de 10 ans.
1850Tous les prototypes Spot que nous avions pu récupérer ou voir passer cette dernière décennie, notamment sur des sites de revente chinois, partageaient un même défaut : le bloc d'alimentation en était absent. On peut en effet supposer que ces batteries avaient entre temps coulé de toutes les façons possibles. Nous n'avions donc toujours pu alimenter ces prototypes que de façon externe via un adaptateur secteur.

Seule et unique exception jusqu'ici, le prototype Spot du musée Datamath, qui à la différence avait été récupéré proprement auprès de Texas Instruments. Le bloc d'alimentation consistait donc en une batterie de capacité 1400 mAh sous une tension de 3,7 Volts.
Mais aujourd'hui il y a du nouveau. Alexandru Balasa de chez vintagecalc.com a réussi à récupérer et donc sauver de la destruction un nouvel exemplaire de Spot, ayant le rare privilège de venir ici lui aussi avec le bloc d'alimentation.

Mais ô surprise, le bloc d'alimentation ne consiste pas ici en une batterie, mais en un adaptateur permettant d'alimenter Spot grâce à 3 piles AAA mises en série !

Précisons au passage qu'il s'agit d'un prototype Spot sensiblement plus ancien que ceux auxquels nous avons accès. Là où celui d'Adriweb a pour numéro de série 029 et le mien 018, ici le numéro de série est 011.
1874Nous profitons de cette annonce pour lancer un appel à l'aide. Le prototype Spot029 d'Adriweb est malade. Sa diode semble indiquer qu'il s'allume et s'amorce correctement, mais l'écran ne s'allume plus, ou alors de façon très exceptionnelle (1 fois sur N, avec pour ne rien arranger N qui ne cesse d'augmenter avec le temps, son dernier allumage correct remontant désormais à plusieurs années...). :'(

Vu que nous avons la chance d'avoir accès à deux prototypes Spot et que l'autre de numéro 018 s'allume toujours, nous avons testé en déconnectant et remplaçant la carte écran. Mais cette autre carte écran pourtant parfaitement fonctionnelle ne change rien au problème, son écran ne s'allume pas lorsque connecté à ce prototype. Cela semble indiquer un problème électronique localisé non pas sur la carte écran mais sur la carte mère.

C'est extrêmement dommage car le firmware du seul prototype Spot018 fonctionnel qu'il nous reste est comme tu peux le devenir plus ancien. Il est beaucoup moins complet, nombre de choses qu'Adriweb avait pu te présenter en étant absentes, et surtout non pleinement fonctionnel. Plusieurs applications sont inutilisables car déclenchant systématiquement une erreur au lancement, nous empêchant de remplir correctement nos tableaux comparatifs. :'(

Nous ne pouvons bien évidemment pas confier à n'importe qui ce genre de pièce historique dont il ne reste plus que quelques exemplaires sur la planète. Si tu peux nous aider en nous partageant tes adresses d'électroniciens de confiance...

Source : https://vintagecalc.com/__trashed
Lien vers le sujet sur le forum: Découverte adaptateur piles pour prototype Spot / PLT-SHH1 (Commentaires: 0)

12 graphiques TI-HP émulées en ligne chez Internet Archive

Nouveau messagede critor » 30 Jan 2023, 20:32

Lorsque nous consultons les sites des différentes constructeurs de calculatrices ou autorités de réglementation des examens, nous utilisons régulièrement la WayBackMachine (littéralement machine à remonter le temps) par Internet Archive. Elle nous permet d'affichage des sauvegardes d'anciennes versions des pages, et de mieux t'informer sur les dernières nouveautés.

L'Internet Archive est un organisme à but non lucratif américain, ayant pour objectif de préserver la connaissance humaine et de la mettre à disposition de tous dans une sorte de "bibliothèque d'Alexandrie en ligne".

Nous parlons de données, mais elles sont loin de se limiter aux seules sauvegardes de sites Internet, ce n'est qu'un aspect disponible. Bien d'autres choses sont archivées et disponibles : images, musiques, vidéos et même logiciels.

Un projet pantagruélique occupant à ce jour plusieurs milliers de téraoctets.

Dernière nouveauté dans la bibliothèque de l'Internet Archive : le tiroir des calculatrices.

Tu peux y retrouver plusieurs calculatrices graphiques sorties entre 1990 et 2002. Un seul clic sur une de ces calculatrices et elle reprend immédiatement vie grâce à l'émulateur en ligne MAME ! :favorite:

Au menu du tiroir, nous avons donc plusieurs modèles Texas Instruments :
  • 1990 : TI-81 avec ROM en version 1.8K
  • 1992 : TI-85 avec ROM en version 10.0
  • 1993 : TI-82 avec ROM en version 19.0
  • 1995 : TI-92 avec ROM en version 1.11
  • 1997 : TI-86 avec ROM en version 1.6
  • 1998 : TI-73 avec OS en version 1.60 sur un Boot en version 1.3005
  • 1998 : TI-89 avec OS en version 1.00
  • 2002 : TI-Voyage 200 avec OS en version 2.09

Sont également présents des modèles du regretté Hewlett Packard :
  • 1993 : HP 48GX avec ROM en version R
  • 1995 : HP 38G avec ROM en version A
  • 1998 : HP 48G+ avec ROM en version R
Une HP 39G (2000) est également présente, mais elle semble cassée. L'amorçage ne va pas plus loin que le Boot Code qui affiche systématiquemetn un message "No System".

Tout ceci nous rappelle le projet de site TI-Emulation (archive) porté par nos membres Persalteas et AlexRider38, qui avaient hélas dû renoncer face à l'hostilité de Texas Instruments, préoccupé par le fait que les fichiers permettent d'utiliser gratuitement ses produits sur tablettes et smartphones.
Ou encore notre émulateur de TI-z80 monochromes en Flash, qui pendant des années t'a permis d'essayer les programmes directement en ligne sans avoir à les télécharger et installer pour cela, avant de disparaître avec la mort de cette technologie.

Espérons que cette fois-ci sera la bonne. Car il est important de sauvegarder et préserver le formidable patrimoine éducatif développé par Texas Instruments pendant que nous l'avons encore sous la main.

D'ailleurs justement, quelque chose que nous avions développé et qui manque à ce jour : c'est la possibilité de choisir la version à émuler, ainsi que celle de charger un programme. ;)

Lien : https://archive.org/details/calculatordrawer
Source : https://blog.archive.org/2023/01/29/a-c ... t-archive/
Lien vers le sujet sur le forum: 12 graphiques TI-HP émulées en ligne chez Internet Archive (Commentaires: 0)

Mise à jour img2calc Python : optimisation palette KhiCAS

Nouveau messagede critor » 17 Jan 2023, 11:36

13917Dans une série d'articles précédents nous te présentions img2calc, notre service en ligne gratuit sur TI-Planet te permettant de convertir facilement et rapidement tes images pour tes projets sur calculatrices.

Un large choix de formats cible t'était proposé :
  • fichiers à appeler depuis tes programmes en langage Basic :
    • .g3p pour Casio Graph 90+E et fx-CG50/20/10
    • .c2p pour Casio fx-CP400 et fx-CG500
    • .8ca ou .8ci pour TI-82 Advanced Edition Python, TI-83 Premium CE, TI-84 Plus CE et TI-84 Plus C Silver Edition
    • .8xi pour TI-83 Plus (compatible TI-82 Plus, TI-82 Advanced monochrome et TI-84 monochrome),
    • .83i pour TI-83 (compatible TI-82 Stats et TI-76.fr)
    • .82i pour TI-82
    • .86i pour TI-86
    • .85i pour TI-85
    • .73i pour TI-73
  • fichiers à appeler depuis tes scripts en langage Python :
    • IM8C.8xv pour les éditions Python des TI-83 Premium CE et TI-84 Plus CE
  • scripts Python pour les différentes bibliothèques de tracé par pixels disponibles selon les modèles :
    • ti_draw (TI-Nspire CX II)
    • graphic (TI-Nspire CX II avec KhiCAS, TI-Nspire CX avec KhiCAS, NumWorks avec KhiCAS, Casio Graph 90+E et fx-CG50 avec KhiCAS)
    • nsp (TI-Nspire avec Micropython)
    • ti_graphics (TI-83 Premium CE et TI-84 Plus CE éditions Python)
    • casioplot (Casio Graph 90/35+E II, fx-9750/9860GIII et fx-CG50)
    • hpprime (HP Prime)
    • kandinsky (NumWorks)

Aujourd'hui, parlons donc de la conversion d'images en scripts Python par img2calc.

Le code des scripts obtenus se compose de 3 éléments :
  • une fonction affichant une image
  • les données de l'image
  • la palette de couleurs associées
Par exemple pour l'image ci-contre, tu pouvais obtenir ce genre de script :
Code: Tout sélectionner
#image converted on TI-Planet
#tiplanet.org/img2calc


#the image drawing function
#- rle : image RLE-compressed data
#- w : width of image
#- pal : palette of colors to use with image
#- zoomx : horizontal zoom
#- zoomy : vertical zoom
#- itransp : index of 1 transparent color in palette or -1 if none
def draw_image(rle, x0, y0, w, pal, zoomx=1, zoomy=1, itransp=-1):
  i, x = 0, 0
  x0, y0 = int(x0), int(y0)
  nvals = len(pal)
  nbits = 0
  nvals -= 1
  while(nvals):
    nvals >>= 1
    nbits += 1
  maskval = (1 << nbits) - 1
  maskcnt = (0xFF >> nbits >> 1) << nbits
  while i<len(rle):
    v = rle[i]
    mv = v & maskval
    c = (v & maskcnt) >> nbits
    if (v & 0b10000000 or nbits == 8):
      i += 1
      c |= rle[i] << (7 - nbits + (nbits == 8))
    c = c + 1
    while c:
      cw = min(c, w - x)
      if mv != itransp:
        col = pal[mv]
        for l in range(0, zoomy, zoomy < 0 and -1 or 1):
          for k in range(cw):
            for p in range(0, zoomx, zoomx < 0 and -1 or 1):
              set_pixel(x0 + (x + k)*zoomx + p - (zoomx < 0), y0 + l - (zoomy < 0), col)
      c -= cw
      x = (x + cw) % w
      y0 += x == 0 and zoomy
    i += 1


#palette for your image
#12 RGB-888 colors
palette = (
(0,0,0),(104,40,120),(136,112,80),(80,192,0),(248,132,24),(160,168,160),(248,252,0),(0,252,248),(248,0,0),(248,252,248),(248,172,176),(0,0,248),
)

#your image data
#160x154 RLE-4 pixels
image = (
b'P\x81\1P\x81\6\xf0\0\1\0\1\20\1\x90\3QP\2\23\1\0\21\xa0\1\xf1\0\0\1\xf0\0\x110\xb2\1\4\2\0\2\1\x92\6`\2\0\5\20\2\1\2\20\5\1 \1\xf0\1b \2\0\4\26\4\0\27\0\xf8\0\20\xf1\0\0\27`\22P\2\4\x92\1\4\2\20\1\xf2\5\x80\1\22\0\1\22\20\25\2@\2\20\2\0\xf2\0\0b \2\0\6'
b'\31\6\0\27\xb0\2\27\0\5\27\5\20\22\xf0\0\2\4\x92\1\4\2\20\xe2\5\xb0\1\2\20\5\2\25\0\x020\2\20\2\0\xf2\0\0b \2\0\6\31\6\0\27\0\x85\1\0\xf8\0\0\27\0\a\31\a\20\22\xa0\1\4\x82\1\24\2\0\1\xc2\5P\22\20\22\5\2\0\1\5\22\0\x020\2\0\22\0\xf2\0\0b \2\0\n\26\n\0'
b'\27\0\25G\25\0\bJ\4\b\0\27\0\a\31\a\20\22\xb0\1\2\4\x82\1\24\2\0\1\xa2\5@\2%\x025B\1\0\22\20\1"\0\xf2\0\0b \2P\27\0\25\27\31\a\25\0\bZ\b\0\27\0\5\27\5\20\22\xe0\1\1\x92\1\0\1\0\x92\5@\2%\x025"\5\1\5\21\5 "\1\xf2\0\0b \2\x001\0\27\0\25\a\t\'\25\0\bZ\b\0'
b'\27\x001\20\22\xf0\1\x92\1\4\2\20\21\xe2\4@\1\2\25\2\5\22\1\5"\0\5\21\2\5 \xa2\1\0b \2\0\'\5\0\27\0\25\a\t\'\25\0\bZ\b\0\27`\22\24\xf0\1\2\4\xf2\0\24 \1\xc2\4`\1" \25\2\20\5\0\22\25\20\xa2\1\0b \2\0\a\31\a\0\27\0\25\27\31\a\25\0\bZ\b\0\27\0\n\26\n\20B'
b'\24\2\xe0\1\4\x82\1\4\2\20\xb2\4\xf0\0\5\2 \2\25\22\25\0\2%\20\xa2\1\0b \2\0\a\31\a\0\27\0\25\a\t\'\25\0\bZ\b\0\27\0\6\31\6\20\xf2\0\24\xe0\1\4\xf2\0\24\2\0\1\x92\4P5\2\25\2\5\0R% \x1252\0b \2\0\5\27\x050\25G\25\0\bZ\20\27\0\6\31\6\20\xa2\1\24\xe0\1'
b'\xf2\0\24\2\0\1\xf2\3P\5\2\25\2\25\2\0\2\1\2\0"\5\2\5\2\xc0\1b \2P\27\1\0\1\x057\25\0\b:\30@\n\26\n\20\xe2\1\xd0\1\1\x82\1\0\1\0\xe2\3P\2\1"\5\22\x010"\5\2\25\x010Q\20b \2\0\2\23\1\0\'\1\0\x017\25\0\b*\b \21\20\2\23\1\20\xf2\1\4\xc0\1\22\1R\4\2\20\21'
b'\xb2\3\x80\1\1\22\1\x020b\x150b\0b \2\0\4\26\4\0G\0\5\'\25\0\b\32\b\20\x017`\x82\2\24\xd0\1\4b\4\2 \1\x92\3`\2\0\2\5\0\2@b\5" R\0b \2\0\6\31\6\0W\0\1\5\a\25\0\b\n\b\0\1W\0\5\27\5\20\22\0\24\xc2\1\4\xf0\1\24R\24\2\20\x82\3`\5 \1P25\2\5\2\5 B\0b \2\0\6'
b'\31\6\0W\1\0\1%\0\30\20g\0\a\31\a\20\22\4 \24\x92\1\4\xa0\2b\24\2\0\1\xe2\2\xf0\0"PB\25\0\22\5\x1202\0b \2\0\n\26\n\0\xf7\0\0\1\25\0\b\20\xf7\0\0\a\31\a\x102$ \24R\4\0\xf2\0\4\xa0\1\4R\24\2\0\1\xc2\2P\2\x90\1\22\5\2\0\25\0\22\25\2\1 \1"\0b \2P\x87\1\1P'
b'\xf7\0\0\5\27\5\20b\20\2\4\0R\4\0\xf1\0\4\22\x90\1\x82\1\0\1\0\xb2\2P\5\x90\1\22\25\0\5\0"\25\x120"\0b \2\x001\0W!@\2\0\1g\x001\20\x92\1\4\20\4B\x80\1\4"\4\x80\1\22\1B\4\2\20\1\x92\2P\5\x90\1\2%\0\1\0\x125\22\x102\0b \2\0\'\5\0\'\21P(\4\b\0a`\xb2\1\24 '
b'\4\x90\1\4B\24\x80\1\24B\4\2\20\1\xf2\1@\22\1\x80\1\2%\2\20\22%"\x102\0b \2\0\a\31\a\0\27\1\20\2D \30\x80\1\n\26\n\20\xe2\1\24\2\x90\1\4\x82\1\x80\1\2\4B\4\2 \xd2\1@\5\2@\22\1\20\2% \x025"\x102\0b \2\0\a\31\a\0\a\1\0\2\24\26\t\26\4\6\2P\5\27\5\0\6\31\6'
b'\20\xf2\1\4\xa0\1\4\x82\1\24\x90\1\x042$\2\0\1\xb2\1@\22 B\20\2\25\2 \2%\2\0\22`b \2\0\5\27\5 \x146\t6\4\0\n\26\4\0\a\31\a\0\6\31\6\20\xf2\1\4\xa0\1\24\xa2\1\24\xf0\0\2\4B\24\2\0\1\x92\x010\25\2\20b\0\2\25\2 \2\25\2\0\22\1\x102\0b \2P\24\6\t\6\31\6\24@'
b'\6\31\6\0\a\31\a\0\n\26\n\20\xf2\1\4\xd0\1\1\xc2\1\x80\1\1R\0\1\0\x82\x010\25\2\20b\0\2\25\22\x102\0\22 2\0b \2\0\2\23\1\0\4\5\6\t\6\t\n\4\2\x001\0\6\31\6\x007\0\2\23\1\20\xf2\1\4\xe0\1\4\xa2\1\24\x80\1\2\x012\4\2\20\1b0\25\2\0\xf2\0\0\2\25\22\20\1\22'
b'\20\22\20B\0b \2\0\4\26\4\0\4\t&\22 \'\5\0\6\t\n\6\0\1\27\1`\22\20Db\4\0\xa2\x014\x104R\4\xa0\1\x142\4\2\20\1B0"\0b\20\2\25\2@\2\0\5\22\20B\0b \2\0\6\31\6\0\4\31$0\a\31\a\0\n\26\2@\1\xa2\x0104"\4\xb0\1\x042$\20$"\4\xd0\1\4"\24\2\x102 \25\22\0R\1\x102P'
b'\2\25\2 2\0b \2\0\6\31\6\0$\2\0\n\26\n\0\a\31\1@\xd2\2 \22\24\xb0\1\4b$ $\0R\24`\24\22\24\2\20\22\0\5\0\25\22\0R\20%\22@B 2\0b \2\0\n\26\n\0\4\2 \6\31\6\0\5\27\20\xc2\3\xf0\1\4\x92\x014\x80\1\4\22\24`\x042\0B\25\22\0B\0\1\0B0R\1\20\1"\0b \2\xa0\1\6\31'
b'\6@\xe2\3\1\xd0\1\4\xd2\1\x80\1\4RP\1\2\24\0"\1\2\0\5\1\2\x001\20\2\21\2\1\x120!20\1\2\0b \2\x001\x001\0\4\n\6\4\20\21\xb2\1\xf1\0\xc2\1\4\xc0\1\4\xe2\1\xf0\0\4R\4P"\0\22\20\1\0\2\0\2`\2\20\2\0\22`\2\21\x120\2\0b \2\0\'\5\0\'\5\0$\5\1\xa2\1!\x80\1\xc2'
b'\1\4\0\xb2\x014\xa2\1\4\xf0\x0042\24\xf0\0\x120\2\0b\0\2\20\2\0\22\0\1"% \x020\2\0b \2\0\a\31\a\0\a\31\a\0\2\20\xa2\1\xd0\1\xc2\1\4\x80\x024b\4\0b\24\20$\22\4P2\0\x82\x035\2\xf0\0b \2\0\a\31\a\0\a\31 \x82\1\1\x80\1\t\x050\25\xc2\1\4\xd0\x01204\22\4\xf0'
b'\0\4\22$\20\4\2P2\0R@\22\0\2@BU\x010\2\0b \2\0\5\27\5\0\5\a\20\x92\1`\x82\3\4\0\xa2\1\20\x82\x010\4\2\xf0\0\4R\24`2\0\x120\1\0\2\20R \2\20\1\2\5\0E0\2\0b \2\xf0\0\1\xf2\0P\5\0\5\0\5\20\25\0\5\0\5\0\5\0\xc2\1\4\0\xa2\1\20\x82\x011\4\x80\1\4b\4`2\0B\0!\2'
b'\1b\1\20\22\0\21\20E \2\0b \2\0\2\23\1\20\xf2\0\1`\5\0\5\0\5\20\25\0\5\0\5\0\5\0\xc2\1\4\0\x91\1\2\20\xc2\1\4\x80\1\4b\4`2\0\2E \x92\1\1\0%\1\25\20\2% \2\0b \2\0\4\26\2\1\xf2\0P\25\1\5\1\5\1\5\0\1\25\1\5\1\5\1\5\0\xc2\1\4\xa0\1\2\20\xc2\1\4\0\xf2\0D"\4'
b'`2\0\2\25"\5\20\x82\1\x112%0\25 \2\0b \2\0\6\t\2\1b\1@\xc5\2\xc2\1\4\xa0\1\2\20\xc2\1\4\xd0\1\2$`2\0\2\5\2%\2\5\20b\1\0\22\25\2%\0\2\1\20\2 \2\0b \2\0\6\5\0b\x010\xb2\4\4\xf0\0\2\20\2\20\xc2\1\4\0\xf2\0\0" \22`2\0\2\5"\5\2\5\2\20R\20\2e\0\22P\2\0b \2\0'
b'\n\0b@\4@\4\0\4\0\4@\4\0\4\0\4 \xc2\1\x040\1\0\1\0\4\20\2\20\xc2\1\4\xf0\0\2\0R\4\xf0\x002\0\2\25\22\25\2\0\2\0\x012\20\22e\0\22\1 "\0b \2\20b@\2\0\22\5\x020\2\0\22\5\x020\2\0\22\5\xc2\1\x040\1\0\1\0\4\20\2\20\xc2\1\4\xf0\0\2\0R\4\xf0\x002\0\1E\2\1\0\5'
b'\x102\0\1\2\1"%\0"0"\0b \2\0\1R \1\5\1\5\0\1\2\x050\1\5\0\1\2\x050\1\5\0\1\2\5\xc2\1\x040\1\0\1\0\4\20\2\20\xc2\1\4\xf0\0\2\0R\4\xf0\x002\20\1%@\5\20\22\0\1\22\x102\21\22@!\0b \2\1R \2\25\2\5\20\1 \2\0\2\5\20\1 \2\0\2\5\20\1\0\xc2\1\x040\1\0\1\0\4\20\2'
b'\20\xc2\1\4\20\2@\2\0R\4\xf0\x002`\22 \5\0\22\x002\1\0\1\2\21\2\1\x90\1b R\1 \2\5"\5P\2\0\2\5P\2\0\2\x050\xc2\1\x040\1\0\1\0\4\20\2\20\xc2\1\4\20\2\0\24\2\0\2\0R\4\xf0\x002@\2\0\22\x010\22\0"\1\0\1 \2\1\20\xf2\0\0b B\x010\5\22\4\2\5P\2\0\2\5P\2\0\2\x05'
b'0\xc2\1\x040\1\0\1\0\4\20\2\20\xc2\1\4\20\2\0$\0\2\0R\4\xf0\x002@\2\0R\20\x012\0"\5\22 2\5"\0b B \x052\4\2\5P\2\0\2\5P\2\0\2\x050\xc2\1\x040\1\0\1\0\4\20\2\20\xc2\1\4\20\2\0$\0\2\0R\4\xf0\x002@\2\0\2\xd0\1%\22 2\5"\0b 2 \5\22\24\2\4\2\5P\2\0\2\5P\2\0\2'
b'\x050\xc2\1\x040\1\0\x010\2\20\xc2\1\4\20\2\0$\0\2\0R\4\xf0\x002\x80\1!\x92\x015\22\x102\5"\0b "02\4\2\4\2\5P\2\0\2\5P\2\0\2\x050\xc2\1\4\xa0\1\2\20\xc2\1\4\20\2\0$\0\2\0R\4\xf0\x002`\1\22\21\xe5\1\2 "\5"\0b "\20\1\22\24\2\4\2\4\2\5P\2\0\2\5P\2\0\2\x05'
b'0\xc2\1\4\0\xa2\1\20\xc2\1\4\20\2\0\24\2\0\2\0R\4\xf0\x00202\xc0\1"E\20"\5"\0b "\20"\24\2\4\2\4\2\5P\2\0\2\5P\2\0\2\x050\xc2\1\4\0\xa2\1\20\xc2\1\4\xf0\0\2\0R\4\xf0\x0020\2\x010\x82\1\1\0\x050\2\25\2\20R\0b \x020\2\4\2\24\2\4\2\4\2\5P\2\0\2\5P\2\0\2'
b'\x050\xc2\1\4\xa0\1\2\20\xc2\1\4\0\xf2\0\0R\4\xf0\x0020\2\20\2\0\xb2\1\5"\20\22 \22\5"\0b \2 \22\4\2\24\2\4\2\4\2\5P\2\0\2\5P\2\0\2\x050\xc2\1\x040(\0\30\0\2\20\xc2\1\4\0\xf2\0\0R\4\xf0\x0020\1\20\2\0\xb2\1\5\22\25\x020b\0b \2\20\22\24\2\4\2\5\4\2\4\2'
b'\5P\2\0\2\5P\2\0\2\x050\xc2\1\x040(\0\30\0\2\20\xc2\1\4\0a\2\0R\4\xf0\x002@\2\0\2\0\xb2\1\5\22\25\x020Q\20b \2\20\22\24\2\4\25\4\2\4\2\5P\2\0\2\5P\2\0\2\x050\xc2\1\x040(\0\30\0\2\20\xc2\1\4\xf0\0\2\0R\4\xf0\x002@\2\0\2\0\xb2\1\5\22\25\2\xb0\1b \2\20"\4'
b'\2\4\5"\4\2\5P\2\0\2\5P\2\0\2\x050\xc2\1\x040(\0\30\0\2\20\xc2\1\4P\4\0\2\0R\4\xf0\x002@\2\0\2\0\xb2\1\5\22\25\2 \xf2\0\0b \2\0\1\22\5\4\2\4\22\5\2\4\2\5P\2\0\2\5P\2\0\2\x050\xc2\1\x040(\0\30\0\2\20\xc2\1\4P\4\0\2\0R\4\xf0\x002@\2\0\2\0\xb2\1\5\22\25\2'
b' \xf2\0\0b \2\0\2\0\22%2\4\2\5P\2\0\2\5P\2\0\2\x050\xc2\1\x040(\0\30\0\2\20\xc2\1\4 \30\0\4\0\2\0R\4\xf0\x002@\2\0\2\0\xb2\1\5\22\25\2 \xf2\0\0b \2\0\2\0\x82\1\4\2\5P\2\0\2\5P\2\0\2\5\a \xc2\1\x040(\0\30\0\2\20\xc2\1\4 \30\0\4\0\2\0R\4\xf0\x002@\2\0\2'
b'\0\xb2\1\5\22\25\2 \xf2\0\0b \2\0\2\0\2\5B\5\2\4\2\5P\2\0\2\5P\2\0\2\27 \xc2\1\x040(\0\30\0\2\20\xc2\1\4 \30\0\4\0\2\0R\4\xf0\x002@\2\0\2\0\xb2\1\5\22\25\2 \xf2\0\0b \2\0\2\0\x82\1\4\2\5P\2\0\2\5P\2\0\a\21\2\20\xc2\1\x040\30\20\b\20\2\20\xc2\1\4 \30\0'
b'\4\0\2\0R\4\xf0\x002@\2\0\2\0\xb2\1\5\22\25\2 \xf2\0\0b \2\0\2\0\2\0B\0\2\4\2\5P\2\0\2\5P\2\0\a\5\0\t\20\xc2\1\4\xa0\1\2\20\xc2\1\4 \30\0\2\0\2\0R\4\xf0\x002@\2\0\2\0\xb2\1\5\22\25\2 \xf2\0\0b \2\0\2\0\x82\1\4\2\5P\2\0\2\5P\2\0\a\5\0\a\20\xc2\1\4\0\xa2'
b'\1\20\xc2\1\4\xf0\0\2\0R\4\xf0\x002@\2\0\2\0\xb2\1\5\22\25\2 \xf2\0\0b \2\0\2\0\2\5\22\1\0"\4\2\5P\2\0\2\5P\2\0\a\5\0\t\20\xc2\1\4\0\xa2\1\20\xc2\1\4\0\xf2\0\0R\4\xf0\x002@\2\0\2\0\xb2\1\5\22\25\2 \xf2\0\0b \2\0\2\0\2\0\2\20\2\0\2\0\4\2\5P\2\0\2\5P\2'
b'\27\5\0\a\20\xc2\1\4\xa0\1\2\20\xc2\1\4\0\xf2\0\0R\4\xf0\x002@\2\0\2\0\xb2\1\5\22\25\2\xb0\1b \2\0\2\x002\0\4\20\24\2\5P\2\0\2\5P\2\27\5\0\a\20\xc2\1\4\xf0\0\1\20\2\20\xc2\1\4\0a\2\0\22\1"\4\xf0\x002@\2\0\2\0\xb2\1\5\22\25\2 \x012\21\20b \2\0\2\0\22\1'
b'\4\0\4\20\24\2\5P\2\0\2\5P\2\a\2\5\0\a\20\xc2\1\4P\33\22\0\2\20B\1b\4\xf0\0\2\0\2\0\2\24\2\4\xf0\x002@\2\0\2\0\xb2\1\5\22\25\2 \x025"\0b \2\0"\20\4\0\4\2\0\24\2\5P\2\0\2\5P\2\a\2\5\0\a\20\xc2\1\4P\33\22\0\2\x102\1\0*2\4\20\24\0\21\0\2\0\2\0$\n\4\xf0'
b'\x002@\2\0\2\0\xb2\1\5\22\25\2 \xf2\0\0b \2\20\22\20\4\2\4\22\24\2\5P\2\0\2\5P\2\0\2\5\0\a\20\xc2\1\4 \33\0\33\22\0\2\20"\1\0\2$\5"\4\20\24\0\21\0\2\0\2\0$\n\4\xf0\x002@\2\0\2\0\xb2\1\5\22\25\2 \xf2\0\0b \2\20"\0\4\2\4\22\24\2\5P\2\0\2\5P\2\a9\a\t"\20*'
b'B\4 \33\0\33\22\0\2\20"\0T"\4\20\24\0\21\0\2\0\2\0$\n\4\xf0\x002@\2\0\2\0\xb2\1\5\22\25\2 \xf2\0\0b \2\20\22\4\0\4\2\4\22\24\2\5P\2\0\2\5P\t\a\t\a\31\a\t\22\1\0\x0242\4 \33\0\33\22\0\2\20"\0T\n\22\4\20\24\0\21\0\2\0\2\0\4\20\n\4\xf0\x002@\2\0\2\0\xb2\1'
b'\5\22\25\2 \xf2\0\0b \2\20\22\4\2\4\2\4\22\24\2\5P\2\0\2\5P\a\20\t\20\a\0\22\0\2D\n"\4 \33\0\33\22\0\2\20"\0T\n\22\4\20\24\0\21\0\2\0\2\0\4\20\n\4\xf0\x002@\2\0\2\0\xb2\1\5\22\25\2 2\5"\0b \2\20\22\4\2\4\2\4\2\1"\5P\2\0\2\5P\a\2\5\t\22\a\22\20d\5\22\4 '
b'\33\0\33\22\0\2\20"\0$\22\4\n\22\4\20\24\0\21\0\2\0\2\0\24\2\n\4\xf0\x002@\2\0\2\0\xb2\1\5\22\25\2 2\5"\0b \2\20\22\4\2\4\2\4\2\0\5\1\0\5P\2\0\2\5P\a*\31\a\n\2\0\2d\n\22\4 \33\0\33\22\0\2\20"\0\24 \4\n\22\4\20\4\2\0\21\0\2\0\2\0\4\20\n\4\xf0\x002@\2\0'
b'\2\0\xb2\1\5\22\25\2 2\5"\0b \2\20\22\4\2\4\2\4\x020\5P\2\0\2\5P\a2\t\a\22\0\xf4\0\n\22\4 \33\0\33\22\0\2\20"\0\4\20\2\0\4\n\22\4\xf0\0\2\0\2\0\4\0\4\n\4\xf0\x002@\2\0\2\0\xb2\1\5\22\25\2 2\5"\0b \2\20\22\4\2\4\2\4\2\0\2\20\5\1@\2\0\2\5\1@\t2\5\2\5\2\0'
b'\4\2\0\2\0\2\0\4\n\22\4 \33\0\33\22\0\2\20"\0\24\2\0\2\0\n\22\4\0\xf2\0\0\2\0$\n\4\xf0\x002@\2\0\2\0\xb2\1\5\22\25\2\xb0\1b \2\20\22\4\2\4\2\4\2\0\22\0\xc2\1\1 \a\5\2\31\2\5\t\2\0\4P\4\n\22\4\xa0\1\2\20"\0\4\0\4\0\4\0\n\22\4\0\xf2\0\0\2\0\4\20\n\4\xf0'
b'\x002@\2\0\2\0\xb2\1\5\22\25\2 \xf2\0\0b \2\20\22\4\2\4\2\4\2\0\2\4\0\x85\2\a\t\5\2\5\2\t\5\2\0\4\2\4 \2\4\n\22\4\0\x91\1\2\20"\0\4\2\4\2\4\0\n\22\4\0a\2\0\2\0\4\20\n\4\xf0\x002@\2\0\2\0\xb2\1\5\22\25\2 \xf2\0\0b \2\20\22\4\2\4\2\4\2\0\2\4\0\x85\2\t\5'
b'\t\2\5\n\t\5\2\0\24\2\4\22\4\2\n\22\4\0\xa2\1\20"\0T\n\22\4\xf0\0\2\0\2\0$\n\4\xf0\x002@\2\0\2\0\xb2\1\5\22\25\2 \xf2\0\0b \2\20\22\4\2\4\2\4\2\0\2\4\0\xf2\1\a\t\5\t\25\31\5\2\0\4\20\4\20\4\0\n\22\4\0\xa2\1\20"\0T\n\22\4\20\4 \2\0\2\0\2\0$\n\4\xf0\x002'
b'@\2\0\2\0\xb2\1\5\22\25\2 \xf2\0\0b \2\20\22\4\2\4\2\4\2\0\2\4\0\xf5\1\aI\25\t\2\0\4\20\4\20\4\0\n\22\4\xf0\0\21\0\2\20"\x004\2\0\n\22\4\20\4 \2\0\2\0\2\0\4\2\0\n\4\xf0\x002@\2\0\2\0\xb2\1\5\22\25\2 \xf2\0\0b \2\20\22\4\2\4\2\4\2\0\2\4\0\xf5\1\a\x197'
b'\25\2\0\xf4\0\n\22\4 \30 \21\0\2\20"\0\4\0\4 \n\22\4\20\4\0\2\0\2\0\2\0\2\0\4\0\4\n\4\xf0\x002@\2\0\2\0\xb2\1\5\22\25\2 \xf2\0\0b \2\20\22\4\2\4\2\4\2\0\22\1\xf5\1\a\5i\2\0\xf4\0\n\22\4 \30\0\v\0\21\0\2\20"\0$\0\24\n\22\4\20\4\0\4\0\2\0\2\0\2\0\4\20\n'
b'\4\xf0\x002@\2\0\1\xc2\1\5\22\25\2 \xf2\0\0b \2\20\22\4\2\4\2\4\2 \x85\2\t\2e\2\0\xf4\0\n\22\4 \30\0\v\0\21\0\2\20"\0\4\2\4\0\2\4\n\22\4\20\4\0\4\0\2\0\2\0\2\0\24\0\n\4\xf0\x002@\2\20\xc2\1\5\22\25\2 \xf2\0\0b \2\20\22\4\2\4\2\4\2 \x85\2\t\5\2U\2\0\4'
b'\22\4\2\4\2\4\n\22\4 \30\0\v\0\21\0\2\20"\0\4\0\4\20\4\n\22\4\20\4\0\4\0\2\0\2\0\2\0$\n\4\xf0\x002@\2\20\xc2\1\5\22\25\2 \xf2\0\0b \2\20\22\4\2\4\2\4\2\0\1\0\x85\2\t%R\0\4\20\4\0\4\0\4\n\22\4 \30\0\v\0\21\0\2\20"\0T\n\22\4\20\2\0\2\0\2\0\2\0\2\0$\n\4'
b'\xf0\x002@\2\20\xb2\1\23%\1\b\2\b\0\xf2\0\0b \2\20\22\4\2\4\2\4\2\4\0\4\x85\2\aE2\0\4\2\0D\n\22\4 \30\0\v\0\21\0\2\20"\0T\n\22\4\xf0\0\2\0\2\0$\n\4\xf0\x002@\2\20\xb2\1\x035\b\5\30\x90\1b \2\20\22\4\2\4\2\4\2$\x85\2\aE2\0\xf4\0\n\22\4 \30\0\v\0\21\0\2'
b'\20"\x004\0\4\n\22\4\0\xf2\0\0\2\0$\n\4\xf0\x002@\2\20\xb2\1\23%8\0\x025\22\5\0b \2\20\22\4\2\4\2\4\2$\xf9\1\27I\2\5\22\0\xf4\0\n\22\4 \30\0\v\0\21\0\2\20"\0\4\20\4\0\4\n\22\4\0\xf2\0\0\2\0$\n\4\xf0\x002@\2\20\xb2\1\23%8\0\xf2\0\0b \2\20\22\4\2\4\2\4\2'
b'$\x85\2\aI\2\5\22\0\xf4\0\n\22\4 \30\0\v\0\21\0\2\20"\0\4\0\2\4\2\4\n\22\4\0a\2\0\2\0\2\24\2\4\xf0\0"\5\2\1 \2\x102E"\23%8\0%B\0b \2\20\22\4\2\4\2\4\2$\xb5\19\aU\2\25\2\0D\22\4\n\22\4 \30\0\v\0\21\0\2\20"\x004\2\4\n\22\4\xf0\0\2\0\22\0"\4\xf0\0"% \2\20'
b'"g\25\23%8\0%B\0b \2\x102\4\2\4\22\24\xb5\1:\a\5B%\2\0D\20\4\n\22\4 \30\0\v\0\21\0\2\20"\x004\0\4\n\22\4\20\x110\2\0R\4\xf0\0"\20\5 \2\20\22\x97\1\23%8\0%B\0b \2\0\1\2%\4\2\4\2\5\24\xb5\x012\a\t\27%)\2\0\4 \4\20\4\n\22\4\0\xa2\1\20"\0T\n\22\4\20\21\0'
b'\30\0\2\0R\4P\2%\2\20\5 \2\20\22\x97\1\23%8\0\22\5B\0b \2\0\2\0\2\25\4\2\4\5\2\24\xb5\1)\'\xf5\0\2\0D\20\4\n\22\4\0\xa2\1\20"\0T\n\22\4\20\21\0\30\0\2\0R\4P\2%\xba\1\x97\1\23%(EB\0b \2\0\2\0\22\25\24\5\2\5\4\xc5\1\xc9\1\2\0\4 \4\20\4\n\22\4\xa0\1\2\20"'
b'\0T\n\22\4\20\25\0\30\0\2\0R\4P\2%\b\4\xba\1\5g\23%(%\0\5B\0b \2\0\2\0\2\5\2%"\4\xb5\1\2\xc5\1\2\0\4\20\2\4\20\4\n\22\4\xa0\1\2\20"\0T\n\22\x045\4\30\0\2\0R\4P\2%(\24\x8a\1\2\1W\23\25\1(%\0\5B\0b \2\0\2\0"\25\22\5\2\4\xb9\1\1\2\xb5\1\2\0\4"\4\20\4\n\22'
b'\4 \x040\30\0\2\20"\0T"\x045\n\1\b\0\2\0R\4P\2%H\x85\1 !\27\23\1\20(%\0\5A\0b \2\0\2\0\2\0B\5\2\4\xb9\1\0Q\5\1\5\21\5\1\2\0\4 \24\0\4\n\22\4 \4\0\2\0\v\30\0\2\20"\0D\n"5*\b\0\2\0R\4P\2%\0\xd8\1@\27 \25 %\0\5Pb \2\0\2\0b\0\2\4\xc5\1\xc0\1\2\0$\2\0$\n\22'
b'\4 \4\0\2\0\v\30\0\2\20"\0D25\n\t\n\20\2\0R\4P\2\xb5\4\0\5B\0b \2\0\2\0\x82\1\4\x95\3\2\0\xf4\0\n\22\4 \4\0\2\0\v\30\0\2\20"\1\20\32\x0525\b\0\b"\0R\4P\2%\xd0\3%\0\5B\0b \2\0\2\0\2\5"\0\22\0\4\x95\3\2\0\24\0$\0\4\n\22\4 \4\0\2\0\v\30\0\2\20\xc2\1\25Z'
b'\22\0R\4P\2%@\xfa\0\5\xf2\1%\0\5B\0b \2\0\2\0\2\0\2\20\2\1\2\24\x95\3\2\0\4\20\4\20\2\4\n\22\4 \4\0\2\0\v\30\0\2\20\xc2\1\4\5\n\4:\1\2\0R\4P\2% \1\2\x8a\1\5\xf2\0c%\0\5B\0b \2\0\2\0\2\1\2\20\4\0\1\24\x95\3\2\0\4\20\4\0\2\24\n\22\4 \4\0\2\0\v\30\0\2\20'
b'\xc2\1\4\5\4\b*\5\0\2\0R\4P\2% \2\xaa\1R\x83\1%\1\5B\0b \2\0\2\0\22 \4\0\2\24\x95\3\2\0\xf4\0\n\22\4 \4\0\2\0\v\30\0\2\20\xc2\1\48\32\2\0\2\0R\4P\2% \5Y\5:U\xf3\0UB\0b \2\0\2\0\2\1\0\4\0\4\0$\x99\3\2\0\xf4\0\n\22\4 \4\0\2\0\v\30\0\2\20\xc2\1\27\2\30\n'
b'\31\0\2\0R\4P\2%\0\1\5\x8a\1\4( \x93\x015\0\5B\0b \2\0\2\0\2\0\24\0\4\2$\x99\3\2\0\xf4\0"\4 \4\0\2\0\v\30\0\2\20\xc2\1\4\0\1\a\0\v\0\v\0\2\0R\4P\x025\1\0\xc8\1\3\5\xb3\1%\0\5B\0b \2\0\1\22\4\2\4\2\4\2$\x97\3\2\0d\n"\4\xa0\1\2\20\xc2\1\4\1\20\a\v\0\v\0'
b'\2\0R\4P\2eY\5(\x023\xd5\1\0\5B\0b \2\20\22\4\2\4\2\4\2$\x99\3\2\0d\n"\4\0\x91\1\2\20\xc2\1!\20\v\0\v\0\2\0"\1\22\4P\2%2U\2\30\5\27#\xa2\1%\0\x051\20b \2\20\22\4\2\4\2\x042\x97\3\2\0d\n"\4\0\xa2\1\20\xb2\1P\1\0\v\0\2\0\2\1\20\22\4P\2%\0\23\x82\x017#'
b'\xa0\1%\0\5Pb \2\20\22\4\2\4R\x97\3\2\0d2\4\0\xa2\1\20\xa2\1\x80\1\v\0\2\1\20:\4\2@\2\25#\xd7\1#\x92\1\v%\0\5;\20b \2\20\x82\1\25\x97\3\2\1\0\x024\x052\4\xa0\1\2\20\xa2\1\xe0\1*$@\2UYW\5#\x92\1\v%\0E\2\0bPR\5\xd7\3\22\1\20\32R\4\xf0\0\4\2\0\2\20\xa2\1P'
b'\1\xf0\0\32\1\2\1\n@\2\5CYG\25#\xd5\1\0\25\2\25\2\xb0\1\x0252\x175\a\25\'\5\ae\a\xf5\0\xc2\1\4\xf0\0\24\0\2\20\xa2\1`\2`"\32\1@Z\xf7\x005\1\b#\xa0\1%\0\5\x82\2\xf8\0\xea\3\xc2\1\4 \x010\24\0\2\20\xa2\1\xf0\0\1P2\1\4@Z\xf7\0\25\21\30#\xa0\1%\0\2\5\2\5\2'
b'\5"\5R\5(R\xea\3\xc2\1\4 \x010\24\0\2\20B\1"\25 \1@\x020B\v\2\1\33\21\xd5\1\1H#\x90\1\1%\20\21\v\1\v!\vQ\v\30B\x85\4\xc2\1\4 \1\0"\24\0\2\20B\0E \21@R$0$Zi\58\x023$\n\x95\1 \xeb\1\b\228\x8a\4\xc2\1\4 \1\0"\24\0\2\20\22\0\xf5\x000\1\xf0\0\1\22\0Q\n\2e'
b'\xa8\1C\2$\n\xc0\1\xc5\1(\2\30\4\xaa\4\xc2\1\4 \1\0"\24\0\2\20\22\0\xf5\0@\2\x80\1\2\32Q9\1%\xc3\1\1\x134\n\xc0\x015\2E\22(\2\b\4\xca\4\xc2\1\4 \1\0"\24\0\2\20\22\0\xf5\0P\2\xf0\0\2:A\t\n\x015\xf9\0\5#\33$\n\24\0+\20\v \5\0B%\22\25\2(\2\b\xea\4\xc2\1\4'
b' \1\0"\24\0\2\20\22\0\xf5\0\x80\1\22@\32\25\xf1\x002\xf5\0\23\1\33\a\24\n\24\2@+\20\5\0\2\25\22%\22\5\2(\2\b\4\xea\4\xc2\1\4 \1\0"\24\0\2\20\22\0\xf5\0\20\x110\b\31\b0\24\x81\x014\x93\1\33\27\5\4\n\4\22\0\x010;\0\2\0\2\25\2\5\1\2\5\22\1\2\30\22\b\xfa\4'
b'\xc2\1\4 \1\0"\4\2\0\2\20\22\0%\30\0\23\0\a\31\a\20\b\t\n\30\xa4\2\xc7\1\4\n$\20\n\5\33\0[\2\x002\5"\5\22\30\22\30\xfa\4\xc2\1\4\xa0\1\2\20\22\0\25\2\30#\a\5\t\27\0\1H\4\3\4\5\2\5\1\t\1\xa4\1i\5\'\2$\2\20\2\nU"E\22\1%\22(R\xd5\4\xc2\1\4\0\xa2\1\20\22'
b'\20\30\27\23\5G\2\58\4\x035\1\n\5\1\x94\1\x97\1\2\32\24\2 \4\n\xa5\2\22\xf8\5\xc2\1\4\0\xa2\1\20"\0\30\27\23\x027\5\22%\32\23%1\xf4\2\20\4\20\4\n\xa0\1\x9b\a\xc2\1\4\0\x91\1 "\0\30\27\3\2\4\a\5\27\5B\32\23%1\xb2\2\n\24\2\0\24\20\4\n\xb1\1k\1K!K\21\xbb'
b'\1!K\xd1\1\xc2\1\4\xd0\1"\0\30\27\3\24\a\2\a\25\22 \32\23%\1\2\21\xb2\2\n\22\0$\20\4\n\5\2\xe5\1"E\a\25\a\x95\1\a\xd5\1\a5\a\x85\1\xc2\1\4\0\xc2\1\4\2\25\30\27\3\24\a\2\a\25\22(\32\23%\1\2\21\2%\xf2\1\n\x104\20\4\n\25BU\2\5B\25\22\x87\1\5\a%\a\25\a%\27'
b'\xf5\0\a%\27%\27\5\a\5\xc2\1\4\xd0\1\4\2\20\30\27\3\24\'\25\22(\32\23%1\0%\x80\2\2D\20\4\n5\2%\22\x85\1B\5\2\5\a\x1575\a\x85\1\a%\'\5\a5\a%\'\5\xc2\1\4\xb0\1%\2\20\30\27\3\24\'\25\22(\32\23%1\0%\xd0\1\2\4\nT\20\4\n\22%B\5\22G\x052\25\x175\27\x95\1\27'
b'\25\x175\xf7\0\25\'\25\a\xc2\1\4\xb0\1%\2\20\30\27\3\24\'\25\22 \32\23%!E\x90\1"\0\24\nT\20\4\n\22\25\22\5"\5\x127%\2\5\2\5\22\27%\27\xa5\1\a\25\27\25g\25\'\25\a\25\a\xc2\1\4\xb0\1%\2\20\30\27\3\24\'\25B\32\23%!%\2\5\xf1\0\20"\0\24\nT\20\4\n\22\25\22\5'
b'\22\5\2\5G%\2\5B\a\xf5\1\a\5\27%g\x157E\xc2\1\4\xb0\1%\1\20\30\27\3\22\'\25\22%\32\23%!%\0\5\xf2\0\20"\0\24\nT\20\4\n\2%B\5\2\5\x1757B\xb5\1W\5\x175W\x157E\xc2\1\4\xb0\1% \30\20\3\20\'\25\22(\32\20% %\0\5\xf2\0\20"\0\24\nT\20\4\nE2U\a\5G\xb5\x017\5\aE'
b'\a\x85\1\x87\x015\a\xc2\1\4\0\xa2\1%\xd0\3%\0\5\xf2\0\20"\0\24\nT\20\4\n\2e\2e\x87\x012%\'5W%\xe7\1U\xb2\1$\33\x80\1\xb5\4\0\5\xf2\0\20"\0\24\nT\20\4\n\v\20[\xa5\3\x87\4\xa2\1\4\22\4\0\v\xf0\0\v%\v( \27 \24 \27\20\30 \22\20%\0\5\xf2\0\20"\0\24\nT\20\4'
b'\n\2\5\2%\2\27%G\25\a\5\a\x057\x152EW\x85\1\a%WE\a\xd2\1\4\x80\1\v\0%\v(\21\0\27 \24 \25\21\30\21\0\22\20%\0\5\xf2\0\20"\0\24\nD\2\20\4\n\xd5\1\'%\27\x85\1"5\22\25\27\x85\1\a%\27\25\'5\a\xd2\1\4\v0;\20%\v(\21\3\27\24\0\24\0\x185\30\22\0\22\3\0%\0\5\xf2'
b'\0\20"\0\24\n4\2 \4\2%\22U\a\25\'%\27\x85\1\2\5\2\5B\25\'\5\a\25\27%G%\27%\27R\4b\4+ +\20%\v\b\2\b\21\3\27\24\0\24\0\30\27\25\30\22\0\22\3\0%\0\5\xf2\0\20"\0\24\n$\x020\2\0\5\2\5\2%\'\5\x87\1\5\'%2\25\2\25\22%\aB\a\5\a5G\5\aE\a\5\a\xd2\1\4\v\20[\0\v%\v'
b'\b\2\b\21\3\27\24\0\24\0\30\27\25\30\22\0\22\3\0%\0\5\xf2\0\20"\0\24\n\24`\xb5\1\27U\a\25\27%\2%\x025\22%\a5\2eB\25\xd2\2\4\0[\20\33%\v(\21\3\27\24\0\24\0\30\27\25\30\22\0\22\3\0%\0\5\xf2\0\20"\0\24\n\4`5\2%\'%\a\xf5\0\27U\2\5b\5\2\27\x92\1\5\1\5B%2\25'
b'\24\xb2\1\4\33@\33\0\v%\v(\21\3\27\24\0\24\0\x185\30\22\0\22\3\0E\xf2\0\20"\0\24\n \33\5\v\1%\x025\a\25gE\27E\a\x85\x017\5\2e\2\xa5\1\x025\xf2\1\33@\33\20%\0(\21\3\27 \24\0\30\25\21\30\22\20\1\3\0%\2\5\xf2\0\20"\0\24\n\20\33\25\1\5\22\5\2e\a\5\a\25\x17'
b'5\'5\27%\a5\'\xa5\1\2\xa5\1\x015\xe2\1\1+\20\33\0\v\20%\1"\20\3\27 \22\0\22\27\x102 \3\0%\0\5\xf2\0\20"\0\24\n\33\1E\2\1\xf5\0\a\25\aU\a\5\'\25W\5\'\25\'U"\25\22\25B\xf5\0\xc2\1\4\1\33\20\33\0+\20\xb5\4\0\5\xf2\0\20"\0\24\n\0\5\x125\22\xa5\1\a\25\a57'
b'\x057\25G\5G5\27\25\27\5\2\25B\x85\1\xa2\1\4\33 \x8b\1% T\30\25\2\b`\23P%\0\5\xf2\0\20"\0\24\n\25\22\x052U\a\x85\1\27E\x97\x015\'\5\27\5\a\5\a\xb5\1\x125\2\5\2\25\x82\1\4\xf0\0K\x105\20\xf4\0\30\25\30@3K%\0\5\x90\1"\0\24\n\x025\2\x85\1\a%\27E\a5\x87\1U'
b'\xf7\0\x95\x0175\a%\22\5b\4;\0K\0\v\0\v\25\x005\x94\1\5\4\b\25\30\0Ck%\0\5\x90\1"\0\24\n5\2\25\a\xa5\1\'\25\xf7\0\25\27\5\'\25G\5W\x157\5\a\5\27\xc5\1\xf2\0\xe0\1\21\0\1%\4\x82\1\5\2\0\2\25\x183\25A\v%\0\5\x90\1"\0\24\2\x91\1e\x87\6\v\1\33\x81\1b\xa0\2'
b'%\4\xf5\0\22 \b\5\30#\0e\v%\0\2+\0;\20"\0\4\2\xa0\1e\x87\6\33\21\x80\1"\4\1+\0\x8b\1\25\0\25\2E\x94\x010(#\20k\0%\20\33\0\5+\5\v\0"\0\2\0\5"\25\x87\1\5\27EGE\x175\'%g\5\27U\a\x057\25\'E\22\5\2\24;\0\33\20;5\0\2\25\22\xb5\4 5\22\25P\a\2\5\22\5\27\5\x97'
b'\x015W\25\a\25\27\25\a\x157\5\x97\x015\a\25G\x057\25\a\25\22\5'
)

#image drawing code sample
draw_image(image, 0, 0, 160, palette, zoomx=1, zoomy=1, itransp=-1)
draw_image(image, 320, 0, 160, palette, zoomx=-1, zoomy=1, itransp=-1)

Rappelons que les interpréteurs Micropython 32 bits de nos calculatrices font appel à 3 types de mémoires :
  • La mémoire de stockage qui comme son nom l'indique stocke physiquement tes fichiers de scripts Python.
  • La pile (stack) qui référence, à l'exécution, les objets Python créés par tes scripts. Sa capacité limite donc le nombre total d'objets Python pouvant coexister simultanément en mémoire.
  • Le tas (heap) qui reçoit, à l'exécution, le contenu des objets Python créés. Il limite donc le volume global de données utilisées pour ces différents objets.

Voici quelques indications de consommation heap mesurées en Python 64 bits sur nos ordinateurs, via la méthode sys.getsizeof(...) :
  • pour un entier : 24 octets de base + 4 octets si non nul + 4 octets pour chaque groupe de 30 bits utilisés au-delà des premiers 31 bits dans sa représentation binaire
  • pour une liste : 56 octets de base + 8 octets par élément + les tailles de chaque élément
  • pour un tuple : 40 octets de base + 8 octets par élément + les tailles de chaque élément
  • pour une chaîne : 49 octets de base + 1 octet par caractère
  • pour un tableau d'octets (bytes) : 33 octets de base + 1 octet par octet
Ce n'est pas exactement pareil en Micropython 32 bits où nous ne disposons de plus pas de la méthode sys.getsizeof(...) pour des mesures fiables, mais le fonctionnement en reste similaire.

Dans tous les cas comme tu peux le constater le langage Python a le très gros défaut d'être un énorme consommateur de heap, mémoire qui sera bien souvent le facteur le plus limitant pour tes projets sur calculatrices. Rappelons les pires modèles sur ce critère :
  • NumWorks avec seulement 64,9 Ko de heap si ta machine est verrouillée sur le firmware officiel
  • éditions Python des TI-83 Premium CE et TI-84 Plus CE avec encore bien pire 19,7 Ko de heap
Voici maintenant les pires modèles sur le critère de l'espace de stockage utilisable pour les scripts Python :
  • éditions Python des TI-83 Premium CE et TI-84 Plus CE qui en pratique n'autorisent que 80 Ko d'espace de stockage pour les scripts Python (si on les dépasse, l'application Python refusera de se lancer, et il faudra archiver ou supprimer des scripts jusqu'à redescendre en-dessous de cette limite)
  • NumWorks avec encore bien pire 43 Ko si ta machine est verrouillée sur le firmware officiel
Des modèles qui cumulent les inconvénients.

Prenons aujourd'hui en exemple l'image ci-contre utilisant 12 couleurs différentes.

Comme déjà expliqué, img2calc a justement été conçu en priorité pour réduire la consommation en heap et stockage. Pour cela img2calc mutualise deux approches :
  • La compression de ton image au format RLE.
  • Le compactage des données, avec l'utilisation des types d'objets Python les moins gourmands en mémoire :
    • des tuples plutôt que des listes pour la palette de couleurs (utilisable comme des listes, mais au contenu non modifiable à la différence)
    • des bytes plutôt que des chaînes ou listes pour les données de la compression RLE (type d'objet Python s'utilisant comme une chaîne de caractères mais optimisé pour le stockage d'octets)
Depuis la mise à jour de janvier 2022 et selon le modèle cible choisi, img2calc pouvait te générer les couleurs de la palette sous 5 formats différents.

Le format de couleur le plus courant est le tuple (rouge, vert, bleu). C'est le seul format connu des bibliothèques graphiques :
  • ti_draw (TI-Nspire CX II)
  • ti_graphics (éditions Python des TI-83 Premium CE et TI-84 Plus CE)
  • casioplot (Casio Graph 90+E et fx-CG50)

En cibant l'un de ces modèles, voici la palette obtenue avec img2calc :
Code: Tout sélectionner
palette = (
(0,0,0), (104,40,120), (136,112,80), (80,192,0), (248,132,24), (160,168,160), (248,252,0), (0,252,248), (248,0,0), (248,252,248), (248,172,176), (0,0,248)
)

C'est le pire cas niveau consommation mémoire. Les données de cette petite palette 12 couleurs de rien du tout, occupent en effet ici :
  • 158 octets en mémoire de stockage
  • $mathjax$40+12\times\left(8+40+3\times\left(8+24\right)\right)+26\times 4$mathjax$
    soit déjà 1,872 Ko à l'exécution en mémoire heap

En plus des tuples (rouge, vert, bleu) précédents, la bibliothèque graphique kandinsky des NumWorks gère 2 autres formats de couleurs :
  • chaînes hexadécimales "#RRVVBB"
  • chaînes identifiant certaines valeurs de couleurs avec leurs noms ou initiales
Puisqu'il y a ici le choix, c'est pour chaque valeur de couleur qu'img2calc opte pour le format le plus économe en mémoire :
Code: Tout sélectionner
palette = (
"k", "#682878", "brown", "g", "orange", "#a0a8a0", "y", "cyan", "r", "w", "#f8acb0", "b"
)

Les données de la palette n'occupent ici plus que :
  • 100 octets en mémoire de stockage
  • $mathjax$40+12\times\left(8+49\right)+1+7+5+1+6+7+1+4+1+1+7+1$mathjax$
    soit 766 octets

Pour la HP Prime, un seul format de couleur est reconnu par la bibliothèque graphique hpprime, mais il est bien plus intéressant en terme de mémoire : l'entier 24 bits.
Code: Tout sélectionner
palette = (
0, 7022972, 9269841, 5358336, 16746267, 10922151, 16776960, 65535, 16711680, 16777215, 16755894, 255
)

Ici nous avons :
  • 112 octets en mémoire de stockage
  • $mathjax$40+12\times\left(8+24\right)+11\times 4$mathjax$
    soit seulement 468 octets en mémoire heap

Le programme Micropython permettant notamment de rajouter le Python sur les anciennes TI-Nspire CX, TI-Nspire CM et TI-Nspire monochromes, inclut une bibliothèque graphique nsp gérant elle aussi un seul et unique format : l'entier 16 bits.
Code: Tout sélectionner
palette = (
0, 26959, 35722, 22016, 64547, 42324, 65504, 2047, 63488, 65535, 64886, 31
)

Cela nous donne :
  • 86 octets en mémoire de stockage
  • $mathjax$40+12\times\left(8+24\right)+11\times 4$mathjax$
    soit 468 octets en mémoire heap

Enfin, traitons du cas de l'application de mathématiques intégrée KhiCAS, disponible pour les modèles couleur TI-Nspire CX II, anciennes TI-Nspire CX, NumWorks, Casio Graph 90+E et fx-CG50.

img2calc choisissait ici parmi 2 formats de couleurs :
  • tuples (rouge, vert, bleu)
  • chaînes nommant les couleurs mais avec quelques différences par rapport aux NumWorks : uniquement des noms complets (pas d'initiales), et avec un peu moins de couleurs reconnues
Code: Tout sélectionner
palette = (
"black", (104,40,120), (136,112,80), "green", (248,132,24), (160,168,160), "yellow", "cyan", "red", "", (248,172,176), "blue"
)

Les données de la palette occupaient ici :
  • 156 octets en mémoire de stockage
  • $mathjax$40+12\times 8 + 5\times\left(40+3\times\left(8+24+4\right)\right)+7\times 49+5+5+6+4+3+0+4$mathjax$
    soit 1,246 Ko à l'exécution en mémoire heap

Résumons les consommations, du meilleur au pire :





tas/heap
(octets)
stockage
(octets)
nsp
468
86
hpprime
468
112
kandinsky
766
100
graphic
1246
156
ti_draw
ti_graphics
casioplot
1872
158

Une économie de mémoire fort modeste par rapport à tout ce que nous venons de survoler, les scripts générés pour KhiCAS se classant alors à l'avant-dernière place niveau consommation mémoire.

Or la bibliothèque graphique graphic de KhiCAS reconnaissait un autre format de couleur fort intéressant mais non utilisé ici, l'entier 16 bits. Un oubli fort regrettable de notre part, ne rendant ainsi pas honneur aux formidables possibilités de KhiCAS...

16353Et bien bonne nouvelle, la dernière mise à jour d'img2calc corrige cet oubli.

Les 3 formats de couleurs gérés sont désormais correctement pris en compte lorsque l'on effectue une conversion pour KhiCAS :
  • tuples (rouge, vert, bleu)
  • chaînes nommant les couleurs
  • entiers 16 bits
Seul le choix le plus économe en mémoire est retenu pour chaque couleur, et voici le résultat :
Code: Tout sélectionner
palette = (
0, 26959, 35722, 22016, 64547, 42324, 65504, 2047, 63488, "", 64886, 31,
)

Les données de la palette occupent donc ici :
  • 84 octets en mémoire de stockage
  • $mathjax$40+12\times 8 + 11\times 24 + 10\times 4 + 49 + 0$mathjax$
    soit 489 octets seulement à l'exécution en mémoire heap

Résumons suite à cette mise à jour :





tas/heap
(octets)
stockage
(octets)
nsp
468
86
hpprime
468
112
graphic
489
84
kandinsky
766
100
ti_draw
ti_graphics
casioplot
1872
158

Les scripts générés pour KhiCAS se classent maintenant clairement parmi les meilleurs niveau consommation mémoire ! :bj:

Bonnes conversions à toi, et n'hésite pas à nous montrer tes projets ! ;)

Liens :
Lien vers le sujet sur le forum: Mise à jour img2calc Python : optimisation palette KhiCAS (Commentaires: 0)

Récapitulatif/Statistiques de l'année 2022 sur TI-Planet !

Nouveau messagede Adriweb » 04 Jan 2023, 10:35

C'est reparti comme les années précédentes ! Voici l'habituelle news récapitulative de 2022 pleine de stats ;)
(Pour 2021, il n'y en a pas eu, oops, mais pour 2020, c'est par ici)

Stats de base
  • Plus de 552 topics et plus de 4360 posts créés
  • 424 archives mises en lignes (hors BAC/DNB...)
  • ... et les archives nouvelles ont cumulé environ 12000 téléchargements (contre 95k pour celles BAC/DNB...) ! (voir plus bas pour le top)
  • Environ 361000 générations créées grâce à nos éditeurs en ligne.
  • Plus de 27500 membres se sont inscrits sur le forum
  • Top 10 des pays des visiteurs: France (66.9%), Etats-Unis (4.3%), Espagne (3.3%), Brésil (2.1%), Maroc (1.9%), Portugal (1.6%), Canada (1.2%), Belgique (1%), Bolivie (0.9%), Réunion (0.9%).
  • Durée moyenne de chaque visite : environ 3min20 (visiteurs), et ≈13min (membres connectés).


Top 15 des news(/topics liés) les plus populaires
  1. Abitur 2029 et fin de la calculatrice graphique en Allemagne : 21733 lectures
  2. Concours Python 2022 - Pykaster3D «attrape-les toutes» ! : 20004
  3. Epreuves spécialité BAC 2022: conseils du jour 1 au jour 2 : 9800
  4. Phi pour N0110: déverrouillage + multiboot Omega 2.0 : 8942
  5. Zero, clone amélioré de TI-84 Plus CE (100 MHz + USB-C) : 6971
  6. Phi épisode 5 : bataille de reuploads Epsilon 18.2.0 : 6743
  7. QCC 2022 : Quelle Calculatrice Choisir ? : 6270
  8. Liste Portugal 2022 + nouvelle NumWorks N0120 EX : 6151
  9. Découverte spécifications nouvelle NumWorks N0120 EX : 5931
  10. Upsilon : firmware successeur d'Omega par sa communauté ! : 5230
  11. Enorme faille consignes mode examen Aix-Marseille : 5085
  12. Khi: bootloader conforme France, multiboot Epsilon+KhiCAS : 4952
  13. Liste calculatrices Australie SACE 2022: éviction HP+Sharp : 4671
  14. NumWorks N0120EX : phénomène de puissance au Portugal ! : 4582
  15. Mise à jour KhiCAS avec graphes 3D TI-Nspire CX NumWorks : 4344


Top 20 des archives uploadées en 2022, par téléchargements (hors sujets/corrigés/témoignages BAC/DNB...)
  1. OutRun v1.07 (Jeux cprizm, March 2022) - SlyVTT. 1277 téléchargements
  2. Jetpack Joyride CE (Jeux ce, January 2022) - King Dub Dub... 1144 téléchargements
  3. Tetris (Jeux nw, August 2022) - notOrzy. 676 téléchargements
  4. Jetpack Joyride (Jeux cgraph, January 2022) - Drakalex007. 408 téléchargements
  5. Minecraft (Alpha 1.5) (Jeux ce, May 2022) - Capysquid. 369 téléchargements
  6. Celeste Classic (Jeux cprizm, January 2022) - Lephenixnoir... 271 téléchargements
  7. Tanks CE (Jeux ce, February 2022) - commandblockguy. 172 téléchargements
  8. Pykaster3D v1.11 (concours Python 2022) (Jeux cprizm, September 2022) - Xavier Andréani... 129 téléchargements
  9. TI-Nspire CX II CAS Premium 5.4.0.259 Windows (Utilitaires PC Nspire, January 2022) - Texas Instruments. 103 téléchargements
  10. OS TI-Nspire™ CX II CAS (v 5.4.0.259) (OS Nspire, January 2022) - Texas Instruments. 91 téléchargements
  11. Windows 10 (Utilitaires cprizm, April 2022) - Farhi. 85 téléchargements
  12. KhiCAS (Casio Graph 90+E / fx-CG50) (Maths cprizm, August 2022) - Bernard Parisse. 82 téléchargements
  13. Labyrinthe 3D (Jeux ce, March 2022) - clemCH. 80 téléchargements
  14. S.A.M.M. (Jeux ce, March 2022) - Captain Calc. 78 téléchargements
  15. Periodic Table CE (Physique ce, April 2022) - mr womp womp. 70 téléchargements
  16. OS+apps TI-83 Premium CE (v. 5.8) (OS ce, June 2022) - Texas Instruments. 70 téléchargements
  17. Angry Birds (Jeux Nspire, November 2022) - Dubs. 69 téléchargements
  18. TI-Connect CE (v6.0, Windows) (Utilitaires PC ce, August 2022) - Texas Instruments. 67 téléchargements
  19. Supersonic Ball HP v1.00 (Jeux prime, February 2022) - DJ Omnimaga. 66 téléchargements
  20. ?


Top 12 des images en galerie








15566
TI-Nspire CX II CAS M-1020AL PCB
June 2022
Vue 30603 fois
15769
TI-Nspire CX II CAS, M-AO PCB
June 2022
Vue 22556 fois
15842
PCB NumWorks N0120 (rev 4.18)
July 2022
Vue 17218 fois
15068
TI-82 Advanced PCB (HW Rev B)
January 2022
Vue 6810 fois
15067
TI-82 Advanced PCB (HW Rev A)
January 2022
Vue 6716 fois
15238
TI-84 Plus (L-0421AF) PCB
February 2022
Vue 1884 fois
15843
Pesée NumWorks N0120EX
July 2022
Vue 1487 fois
15069
TI-Nspire CX II CAS + OS 5.4
January 2022
Vue 1224 fois
15972
TI-Nspire CX II Ndless + Octopus
September 2022
Vue 968 fois
16184
gaming fx-92+ Spéciale Collège
November 2022
Vue 886 fois
15211
Grand rangement Printemps 2022
February 2022
Vue 817 fois
15992
Journées APMEP 2022 Jonzac
October 2022
Vue 704 fois



Top 25 des membres les plus actifs
  • Sur le forum :
    critor (1387 posts, soit 3.8 / jour), Adriweb (416 posts, soit 1.1 / jour), parisse (393 posts, soit 1.1 / jour), Shadow (157 posts, soit 0.4 / jour), Hamza.S (131 posts, soit 0.4 / jour), cent20 (120 posts, soit 0.3 / jour), SlyVTT (99 posts, soit 0.3 / jour), DJ Omnimaga (80 posts, soit 0.2 / jour), Lionel Debroux (70 posts, soit 0.2 / jour), Acmos (66 posts, soit 0.2 / jour), ggauny@live.fr (65 posts, soit 0.2 / jour), Admin (63 posts, soit 0.2 / jour), Capysquid (48 posts, soit 0.1 / jour), DrawingFoolMe2 (46 posts, soit 0.1 / jour), Bobb (39 posts, soit 0.1 / jour), Bisam (34 posts, soit 0.1 / jour), Afyu (34 posts, soit 0.1 / jour), drudomi (32 posts, soit 0.1 / jour), Yaya.Cout (32 posts, soit 0.1 / jour), dechampsfx (24 posts, soit 0.1 / jour), RapidZapper (24 posts, soit 0.1 / jour), fmo (23 posts, soit 0.1 / jour), Noury (22 posts, soit 0.1 / jour), FrenchPythonLover (20 posts, soit 0.1 / jour), Dubs (20 posts, soit 0.1 / jour)
  • Sur le tchat : (tout compris - et pour "Via Discord", ben du coup on n'a plus les stats individuelles, en tout cas pour le moment :P) :
    Afyu (11263 posts, soit 30.9 / jour), ShoutBot (10225 posts, soit 28.0 / jour), critor (9778 posts, soit 26.8 / jour), redgl0w (5758 posts, soit 15.8 / jour), Shadow (5350 posts, soit 14.7 / jour), ptijoz (4116 posts, soit 11.3 / jour), cent20 (3940 posts, soit 10.8 / jour), Capysquid (3678 posts, soit 10.1 / jour), Hamza.S (3539 posts, soit 9.7 / jour), noelnadal (3512 posts, soit 9.6 / jour), FrenchPythonLover (1768 posts, soit 4.8 / jour), SlyVTT (1667 posts, soit 4.6 / jour), Acmos (1648 posts, soit 4.5 / jour), Ti64CLi++ (1400 posts, soit 3.8 / jour), Hayleia (1327 posts, soit 3.6 / jour), ascpial (1176 posts, soit 3.2 / jour), M4x1m3 (1043 posts, soit 2.9 / jour), Adriweb (984 posts, soit 2.7 / jour), Hackcell4TI (840 posts, soit 2.3 / jour), LeGmask (839 posts, soit 2.3 / jour), TheMachine02 (805 posts, soit 2.2 / jour), _Orlando_ (705 posts, soit 1.9 / jour), noobenprogrammation (558 posts, soit 1.5 / jour), Oh11115 (555 posts, soit 1.5 / jour), TIny_Hacker (454 posts, soit 1.2 / jour)

Merci à tous pour cette année 2022 sur TI-Planet, bonne année 2023 encore une fois...
et qu'elle soit meilleure que 2021... !


Image
Lien vers le sujet sur le forum: Récapitulatif/Statistiques de l'année 2022 sur TI-Planet ! (Commentaires: 9)

Bonne année 2023 avec le programme hybride Zero+TI-Basic !

Nouveau messagede critor » 31 Déc 2022, 23:59


Nos Zero ZGC2 et TI-83 Premium CE Edition Python se sont réunies fraternellement pour compter en chœur avec toi :


Bonne et heureuse année 2023 à toi, qu'elle soit encore meilleure que 2022 ! :bj:


Et n'oublie pas de bien comparer les différences entre les programmes Zero Basic et TI-Basic, pour découvrir encore plus de secrets sur la mystérieuse et légendaire Zero ZGC2 : ;)
Code: Tout sélectionner
126→D
32-int(log(D))→A
12→B
A→X
B→Y
While D>0 Do
Output(Y,X,"   ")
X→T
X+(Y==1 and X<A)-(Y==B and X>1)→X
Y+((T==A and Y<B)-(T==1 and Y>1))→Y
Output(Y,X,D)
If not fPart(log(D)) Then
A+1→A
X+(X==A)→X
End
D-1→D
For I In 0,4000 Do End
End
2023→N
Disp("Happy New Year 2023")
Disp("Frohes Neujahr 2023")
Disp("Bonne Annee 2023")
Code: Tout sélectionner
101→D
26-iPart(log(D→A
10→B
A→X
B→Y
While D
Output(Y,X,"   "
X→T
X+((Y=1 and X<A)-(Y=B and X>1→X
Y+((T=A and Y<B)-(T=1 and Y>1→Y
Output(Y,X,D
If not(fPart(log(D
Then
A+1→A
X+(X=A→X
End
D-1→D
For(I,0,1105
End
End
Output(Y,1,"prgmZERO
Disp "HAPPY NEW YEAR 2023
Disp "FROHES NEUJAHR 2023
Disp "BONNE ANNEE 2023
0
Code: Tout sélectionner
101→D
26-ent(log(D→A
10→B
A→X
B→Y
While D
Output(Y,X,"   "
X→T
X+((Y=1 et X<A)-(Y=B et X>1→X
Y+((T=A et Y<B)-(T=1 et Y>1→Y
Output(Y,X,D
If non(partDéc(log(D
Then
A+1→A
X+(X=A→X
End
D-1→D
For(I,0,1105
End
End
Output(Y,1,"prgmZERO
Disp "HAPPY NEW YEAR 2023
Disp "FROHES NEUJAHR 2023
Disp "BONNE ANNEE 2023
0
Our Zero ZGC2 and TI-83 Premium CE Python Edition came together fraternally to count in chorus with you:


Happy new year 2023 to you, may it be even better than 2022! :bj:



And don't forget to compare as well the differences between Zero Basic and TI-Basic programs, to discover even more secrets about the mysterious and legendary Zero ZGC2 :)
Code: Tout sélectionner
126→D
32-int(log(D))→A
12→B
A→X
B→Y
While D>0 Do
Output(Y,X,"   ")
X→T
X+(Y==1 and X<A)-(Y==B and X>1)→X
Y+((T==A and Y<B)-(T==1 and Y>1))→Y
Output(Y,X,D)
If not fPart(log(D)) Then
A+1→A
X+(X==A)→X
End
D-1→D
For I In 0,4000 Do End
End
2023→N
Disp("Happy New Year 2023")
Disp("Frohes Neujahr 2023")
Disp("Bonne Annee 2023")
Code: Tout sélectionner
101→D
26-iPart(log(D→A
10→B
A→X
B→Y
While D
Output(Y,X,"   "
X→T
X+((Y=1 and X<A)-(Y=B and X>1→X
Y+((T=A and Y<B)-(T=1 and Y>1→Y
Output(Y,X,D
If not(fPart(log(D
Then
A+1→A
X+(X=A→X
End
D-1→D
For(I,0,1105
End
End
Output(Y,1,"prgmZERO
Disp "HAPPY NEW YEAR 2023
Disp "FROHES NEUJAHR 2023
Disp "BONNE ANNEE 2023
0
Code: Tout sélectionner
101→D
26-ent(log(D→A
10→B
A→X
B→Y
While D
Output(Y,X,"   "
X→T
X+((Y=1 et X<A)-(Y=B et X>1→X
Y+((T=A et Y<B)-(T=1 et Y>1→Y
Output(Y,X,D
If non(partDéc(log(D
Then
A+1→A
X+(X=A→X
End
D-1→D
For(I,0,1105
End
End
Output(Y,1,"prgmZERO
Disp "HAPPY NEW YEAR 2023
Disp "FROHES NEUJAHR 2023
Disp "BONNE ANNEE 2023
0
Lien vers le sujet sur le forum: Bonne année 2023 avec le programme hybride Zero+TI-Basic ! (Commentaires: 7)

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1560 utilisateurs:
>1536 invités
>19 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)