d      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z[\]^_`abcd e f g h i j k l m n o p q r s t u v w x y z{|}~ ) Safe-Inferred   In degrees         Safe-Inferred ! !!  ! Safe-Inferred "#$%&'()*+, "#$%&'()*+,"%$#&'()*+, Safe-Inferred-.-.-. Safe-Inferred/0123456/0123456/2103654 Safe-Inferred789:;<=>?@ABCDEFG789:;<=>?@ABCDEFG7>=<;:98?FEDCBA@G Safe-InferredIH Opcode: 1900 I Opcode: 1902J Opcode: 1901K Opcode: 1800L Opcode: 1802M Opcode: 1801O Opcode: 1608P Opcode: 1607Q Opcode: 1606R Opcode: 1605S Opcode: 1604T Opcode: 1603U Opcode: 1602V Opcode: 1601X Opcode: 1600Y Opcode: 1500Z Opcode: 1505[ Opcode: 1504\ Opcode: 1503] Opcode: 1502^ Opcode: 1501` Opcode: 1402a Opcode: 1401c Opcode: 1400d Opcode: 1300e Opcode: 1301f Opcode: 1200g Opcode: 1201h Opcode: 1000i Opcode: 1002jOpcode: 1001 First circle = inner circle, Second circle is enclosing circle k Opcode: 0900l Opcode: 0904m Opcode: 0903n Opcode: 0902o Opcode: 0901p Opcode: 0800qOpcode: 0802 [ScreenPixel] should be as long as width * height * 4 r Opcode: 0801t Opcode: 0703u Opcode:0702v Opcode: 0701w Opcode: 0700y Opcode: 0602z Opcode: 0601{ Opcode: 0600} Opcode: 0502~ Opcode: 0501 Opcode: 0500 Opcode: 0400 Opcode: 0407 Opcode: 0406 Opcode: 0405 Opcode: 0404 Opcode: 0403 Opcode: 0402 Opcode: 0401 Opcode: 0300 Opcode: 0304  Opcode: 0303  Opcode: 0302  Opcode: 0301  Opcode: 0204 Opcode: 0203 Opcode: 0202 Opcode: 0201Reserved type words Type: t | Opcode Arguments: a | List of arguments for that data type Route: r | Either s for system or u: for user Object: o | The object that is beneath Example: {r: s, o: {SystemMeasuredText object}} SystemMeasuredText object: {t:2102, a2:[CanvasId, CanvasText object, ScreenDimensions]}  Opcode: 0200 Opcode: 0100 Opcode: 0101 Opcode: 2000 Opcode: 2001 Opcode: 2100 Opcode: 2101zHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ In degrees zHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@HJIKMLNVUTSRQPOWXY^]\[Z_a`bcdefghjikonmlprqsvutwxzy{|~} Safe-InferredPTranslation is center, does not have a boundingbox due to technical limitations Translation is center Translation is center Translation is upperleftcorner Should contain atleast 1 shape 23 Safe-Inferred  Safe-Inferred"! Safe-Inferred Safe-InferredNone Safe-Inferred           Safe-Inferred                  Safe-InferredNone !"# ! !None$%&'()"# !$%&'()$%&'() None*+,-*+,-*+,- NoneG !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYG !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYLYXWVUTSRHIJKLMNOPQABCDEFG9@?>=<;:087654321-./)(#!*+,*+,$%&+,'" )(#!*+,*+,$%&+,'" -./0876543219@?>=<;:ABCDEFGH IJKLMNOPQRSTUVWXY!None Z[\]^_`abc Z[\]^_`abc Z[\]^_`abcNoneHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Z[\]^_`abcZ[\]^_`abc|~}{xzywsvutprqkonmlhjifgdecb_a`Y^]\[ZXWNVUTSRQPOKMLHJI"Nonedefgh.i/defghidefgh.i/ Nonedefghidefghi#None jkl012mn3o4jklmno jkl012mn3o4 None     jklmnojklmno     $Nonepqrstuvwxy5678 pqrstuvwxypqrstuvwxy5678 Nonepqrstuvwxypqrstuvwxy%Nonez{|}z{|}z{|}None7z{|}=z{|}&None~9:;<=>?@AB~~9:;<=>?@ABNone789:;<=>?@ABCDEFG~~G?FEDCBA@7>=<;:98'NoneCDCDNone /0123456 3654/210(NoneNone-.-.)None EFGHI EFGHINone"#$%&'()*+,,+*)(&'"%$# NoneNoneJKLMNOPQRSTUVJKLMNOPQRSTUVNoneW*+,-./012344556789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnfopqrstuvwxyz{|}~      !"#$%&'()*+,-4./ 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J J K L M N O P Q R S T U V W X Y Z [ \ ] ] ^ _ ` a b c c d e f g h i j k l m n o p q r s!t!u!v!w!x!y!z!{!|!K"}"~""""######$$$$$$$$$$%%%%&&&&&&'''''((()))))))       !"#$%&'()*+,-./0123456789:;<=>/01?@ A B C D"E"F#G#H#I#J#K$L$M$N$O&P&Q&R&S&T&U&V&W&X&Y'Z'[)\)])^)_)`abcdefghijklmneventloop-0.2.1.2Eventloop.Utility.VectorsEventloop.Types.CommonEventloop.Module.TimerEventloop.Module.StdOutEventloop.Module.StdInEventloop.Module.File!Eventloop.Module.Websocket.CanvasEventloop.Module.BasicShapesEventloop.Module.DrawTrees Eventloop.Module.Websocket.Mouse#Eventloop.Module.Websocket.KeyboardEventloop.Types.EventTypesEventloop.RouteEventEventloop.EventloopCoreEventloop.DefaultConfigurationEventloop.Module.Timer.TypesEventloop.Module.StdOut.TypesEventloop.Module.StdIn.TypesEventloop.Module.File.Types'Eventloop.Module.Websocket.Canvas.Types"Eventloop.Module.BasicShapes.Types"Eventloop.Utility.Trees.LayoutTree#Eventloop.Utility.Trees.GeneralTree Eventloop.Module.DrawTrees.Types(Eventloop.Module.Websocket.Canvas.Opcode.Eventloop.Module.Websocket.Canvas.JSONEncoding$Eventloop.Module.BasicShapes.Classes&Eventloop.Module.Websocket.Mouse.Types)Eventloop.Module.Websocket.Keyboard.TypesEventloop.Utility.Websockets$Eventloop.Utility.BufferedWebsocketsEventloop.Utility.Config(Eventloop.Module.Websocket.Canvas.Canvas,Eventloop.Module.Websocket.Keyboard.Keyboard&Eventloop.Module.Websocket.Mouse.Mouse$Eventloop.Module.DrawTrees.DrawTrees(Eventloop.Module.BasicShapes.BasicShapesEventloop.Module.File.FileEventloop.Module.StdIn.StdInEventloop.Module.StdOut.StdOutEventloop.Module.Timer.TimerRotateLeftAroundrotateLeftAround ToPolarCoord toPolarCoordToPointtoPointVector2D|+||-| negateVectorPoint PolarCoordOffsetYXLengthRadiansAngledegreesToRadiansradiansToDegrees lengthToPointlengthBetweenPointsdifferenceBetweenPoints originPoint$fRotateLeftAroundPoint$fRotateLeftAroundPolarCoord$fToPolarCoordPoint$fToPointPolarCoord$fVector2DPoint$fVector2DPolarCoord NumericIdNamedIdTimerOut UnsetTimerSetIntervalTimerSetTimerTimerInTickTimerStartFunction StartedTimerIncomingTickBufferTimerIdMicroSecondDelay StdOutOut StdOutMessageStdInOutStdInReceiveCharStdInReceiveLineStdInReceiveContentsStdInInStdInReceivedCharStdInReceivedLineStdInReceivedContentsFileOutWriteToIfEOF RetrieveChar RetrieveLineRetrieveContents CloseFileOpenFileFileInWroteToIsEOF RetrievedChar RetrievedLineRetrievedContents FileClosed FileOpened ClearPart ClearCanvasClearRectangleCSSUnit CSSPercentage CSSPixelsCanvasTransformResetTransform SetTransform TransformScaleRotate TranslateRestoreSaveTransformationMatrix TransformUnit AlignmentAlignEnd AlignStart AlignCenter AlignRight AlignLeft TextRenderTextFill TextStrokeTextFillRenderStyleTextStrokeRenderStyleFont CanvasTextCanvasGradientTypeLinearGradientRadialGradientPatternRepetitionNoRepeatRepeatYRepeatXRepeat CanvasImage ImageData CanvasElement RenderStyle CanvasPatternCanvasGradient CanvasColorCanvasColorStopPathFill PathNoFillPathRenderFillStyle PathStroke PathNoStrokePathRenderStrokeStyleScreenPathPart RectangleArcArcToQuadraticCurveTo BezierCurveToLineToMoveToCanvasOperationClear DoTransformDrawTextDrawPath CanvasOut MeasureTextCanvasOperationsTeardownCanvas SetupCanvasCanvasPositionCanvasPositionRightCanvasPositionLeftCanvasIn MeasuredTextSystemCanvasOutSystemMeasureTextSystemCanvasInSystemMeasuredTextRoutedMessageOutOutSystemCanvas OutUserCanvasRoutedMessageInInSystemCanvas InUserCanvasFontSize FontFamilyScaleYScaleX ScaleUnit ScreenCircleColorStopOffset ScreenPixel ScreenColor ScreenAlpha ScreenBlue ScreenGreen ScreenRedScreenColorMetricZIndexCanvasIdScreenEndAngleScreenStartingAngleScreenEndPointScreenControlPointScreenStartingPointScreenDimensions ScreenPoint ScreenAngle ScreenRadius ScreenHeight ScreenWidthScreenYScreenX ScreenMetricOpcodeCanvasSystemReceiveBufferCanvasUserReceiveBuffer BoundingBox RotatePoint AroundPoint AroundCenterRotation Primitive MultiLine otherPointsLinepoint1point2Texttext fontFamilyfontSizePolygonamountOfPointsCircleradius translation dimensionsShapeCompositeShape BaseShapeBasicShapesOut DrawShapesAmountOfPoints LowerRight LowerLeft UpperRight UpperLeft ShapeColor StrokeColor FillColorColorAlphaBlueGreenRedRadius DimensionsHeightWidth TranslationGraphicalNumericRoseTreeRoseNodeRBTreeRBNode NodeColorNodeGrey NodeBlackNodeRed ParseTree ParseNodeTree TRoseTreeTRBTree TParseTree DrawTreesOut DrawTrees MouseButton MouseMiddle MouseRight MouseLeftMouse MouseLeave MouseEnterMouseUp MouseDown MouseMove DoubleClickClickKeyboardKey ParametersValue ParameterAPINameIOStateNoState FileStatenewFileInEventsopened TimerStatestartedIntervalTimers startedTimersincomingIntervalTickBufferincomingTickBuffer StdInStatenewStdInInEvents CanvasStatecommonReceiveBuffercanvasUserReceiveBuffercanvasSystemReceiveBufferrouterThreadId KeyboardState MouseState receiveBufferclientConnection serverSocket SharedIOState measureTextOutStop OutDrawTreesOutBasicShapes OutCanvasOutStdIn OutStdOutOutTimerOutFileInInCanvasInStdInInTimerInFileInMouse InKeyboardStartEventloopConfiguration progState eventloopFunc outRouter sharedIOStatemoduleConfigurationsEventloopModuleConfigurationmoduleIdentifieriostate initializereventRetriever preprocessor postprocessorteardown eventSenderOutEventRouterTeardown EventSender PostProcessor PreProcessorEventRetriever InitializerEventloopModuleIdentifier defaultCanvasModuleConfigurationdefaultCanvasModuleIOStatecanvasModuleIdentifiercanvasInitializercanvasEventRetrievercanvasEventSendercanvasTeardownsendRoutedMessageOutrouter"defaultKeyboardModuleConfigurationdefaultKeyboardModuleIOStatekeyboardModuleIdentifierkeyboardInitializerkeyboardEventRetrieverkeyboardTeardowndefaultMouseModuleConfigurationdefaultMouseModuleIOStatemouseModuleIdentifiermouseInitializermouseEventRetriever mouseTeardown#defaultDrawTreesModuleConfigurationdefaultDrawTreesModuleIOStatedrawTreesModuleIdentifierdrawTreesPostProcessorshowGeneralTreeListshowGeneralTreeList'nodeColorToFillColorparseExampleTree rbExampleTreeroseExampleTree%defaultBasicShapesModuleConfigurationdefaultBasicShapesModuleIOStatebasicShapesModuleIdentifierbasicShapesPostProcessordefaultFileModuleConfigurationdefaultFileModuleIOStatefileModuleIdentifierfileEventRetrieverfileEventSender fileTeardowndefaultStdInModuleConfigurationdefaultStdInModuleIOStatestdInModuleIdentifierstdInEventRetrieverstdInEventSender defaultStdOutModuleConfigurationstdOutModuleIdentifierstdOutEventSenderdefaultTimerModuleConfigurationdefaultTimerModuleIOStatetimerModuleIdentifiertimerInitializertimerEventRetrievertimerEventSender timerTeardown routeOutEvent startMainloop allModulesEventloopConfigurationdefaultSharedIOStateConnect BottomConnect TopConnect LayoutLineLayoutNodeContent LayoutNodeLayoutNodeText LayoutTreeLBox marginLine lineThicknesstextFont printTreeprintNodeContent printLinemarginizeLinePointsGeneralizeTreegeneralizeTreePosMiddle BottomOffset RightOffset TopOffset LeftOffset GeneralLineGeneralNodeContent GeneralNodeGeneralNodeText GeneralTreeGeneralTreeBox textHeight charWidthmarginBetweenTreesmarginBetweenNodeContentmarginBetweenNodeRowsmarginBetweenNodeColumnsgeneralNodeDimensionflattenDimensionsgeneralNodeContentDimensionlayoutGeneralTreelayoutGeneralTreeChildren layoutLinelayoutGeneralTreeslayoutGeneralNodeContentListlayoutGeneralNodeContenttextSize treeIndex$fGeneralizeTreeGeneralTreeToOpcodetoOpcode$fToOpcodeClearPart$fToOpcodeCSSUnit$fToOpcodeCanvasTransform$fToOpcodeAlignment$fToOpcodeTextRender$fToOpcodeFont$fToOpcodeCanvasText$fToOpcodeCanvasGradientType$fToOpcodePatternRepetition$fToOpcodeCanvasImage$fToOpcodeRenderStyle$fToOpcodePathFill$fToOpcodePathStroke$fToOpcodeScreenPathPart$fToOpcodeCanvasOperation$fToOpcodeCanvasOut$fToOpcodeSystemCanvasOutoperationObject$fToJSONClearPart$fToJSONCSSUnit$fToJSONCanvasTransform$fToJSONAlignment$fToJSONTextRender $fToJSONFont$fToJSONCanvasText$fToJSONCanvasGradientType$fToJSONPatternRepetition$fToJSONCanvasImage$fToJSONRenderStyle$fToJSONPathFill$fToJSONPathStroke$fToJSONScreenPathPart$fToJSONCanvasOperation$fToJSONCanvasOut$fToJSONSystemCanvasOut$fToJSONRoutedMessageOut$fFromJSONAlignment$fFromJSONFont$fFromJSONCanvasText$fFromJSONCanvasIn$fFromJSONSystemCanvasIn$fFromJSONRoutedMessageInToScreenPathParttoScreenPathPartsToCanvasOperationstoCanvasOperations ToCanvasOut toCanvasOut ToBoundingBox toBoundingBoxToCentertoCenteraddBoundingBoxfoldBoundingBoxestranslateBoundingBoxopOnBoundingBoxallPolygonPoints roundPointroundShapeColor roundColorfindRotationPoint$fToScreenPathPartPrimitive$fToCanvasOperationsShape$fToCanvasOutBasicShapesOut$fToBoundingBoxShape$fToBoundingBoxPrimitive$fToBoundingBoxBoundingBox$fToCenterBoundingBox$fToCenterShape$fToCenterPrimitive$fRotateLeftAroundBoundingBox ReceiveBufferMessagePortHostcreateBindListenServerSocketacceptFirstConnectionsetupWebsocketConnection spawnReaderreadIntoBufferhandleCloseRequestException hasMessage takeMessage writeMessagewriteBinaryMessagecloseWebsocketConnectionnetwork-2.6.0.2Network.Socket.TypesSocketwebsockets-0.9.3.1Network.WebSockets.Connection ConnectionBufferedReceiveBuffer hasMessages takeMessages ipAddress keyboardPort mousePort canvasPortmessageToKeyboardIn$fFromJSONKeyboardparseMouseEventparseMouseButtonparseMousePositionmessageToMouseIn$fFromJSONMouse$fGeneralizeTreeRoseTree$fGeneralizeTreeRBTree$fGeneralizeTreeParseTree$fGeneralizeTreeTreefileEventSender' doReadAction getFromFilefileIsReadablefileIsWriteable fileIsOpenedretrieveContentsretrieveOpenedFileremoveOpenedFile closeAllFilesstdInEventSender' doStdInGettimerEventSender' registerTimerunregisterTimerfindStartedTimertickwithIOStateModuleswithIOStateModulestartMainloopWithStarthandleMainloopUsingSource receiveEventshandleSingleInEvent doEventloop sendOutEventsprocessEventModuleprocessEventsModules processEventsfindModuleConfigurationreplaceModuleConfiguration