From 6d4f18a9be8eb3af277a2305ceacc0ed6ef049c5 Mon Sep 17 00:00:00 2001 From: Sophie Coudert <sophie.coudert@telecom-paris.fr> Date: Thu, 5 Dec 2024 21:45:37 +0100 Subject: [PATCH] little improvments, and added documentation --- doc/avatarSysMLV2/AvatarSysMLV2notes.tex | 1085 +++++++++ .../example_models/avSysML_timerRealNames.xml | 1181 +++++++++ .../example_models/before_after_transfo.xml | 2119 +++++++++++++++++ .../example_models/tt_tosysml_with_timer.xml | 1181 +++++++++ doc/avatarSysMLV2/figures/Tuto_BD.pdf | Bin 0 -> 75406 bytes .../figures/Tuto_after_transfo.pdf | Bin 0 -> 15513 bytes .../figures/Tuto_before_transfo.pdf | Bin 0 -> 10840 bytes .../figures/Tuto_countstate_box.pdf | Bin 0 -> 3143 bytes .../figures/Tuto_randomstate_box.pdf | Bin 0 -> 3015 bytes .../figures/Tuto_receivestate_box.pdf | Bin 0 -> 3067 bytes doc/avatarSysMLV2/figures/Tuto_requests.fig | 83 + doc/avatarSysMLV2/figures/Tuto_requests.pdf | Bin 0 -> 8352 bytes .../figures/Tuto_sendstate_box.pdf | Bin 0 -> 3048 bytes .../figures/Tuto_startstate_box.pdf | Bin 0 -> 1866 bytes doc/avatarSysMLV2/figures/Tuto_state_box.pdf | Bin 0 -> 2697 bytes .../figures/Tuto_statemachine1.pdf | Bin 0 -> 11490 bytes .../figures/Tuto_statemachine1a.fig | 30 + .../figures/Tuto_statemachine1a.pdf | Bin 0 -> 15228 bytes .../figures/Tuto_statemachine2.pdf | Bin 0 -> 7395 bytes .../figures/Tuto_statemachine2a.fig | 24 + .../figures/Tuto_statemachine2a.pdf | Bin 0 -> 9756 bytes .../figures/Tuto_stopstate_box.pdf | Bin 0 -> 2162 bytes .../figures/Tuto_texpirestate_box.pdf | Bin 0 -> 4915 bytes .../figures/Tuto_tresetstate_box.pdf | Bin 0 -> 4669 bytes .../figures/Tuto_tsetstate_box.pdf | Bin 0 -> 5305 bytes doc/avatarSysMLV2/figures/avatarClick.pdf | Bin 0 -> 68296 bytes doc/avatarSysMLV2/figures/avatarPopup.pdf | Bin 0 -> 27545 bytes doc/avatarSysMLV2/figures/tp.pdf | Bin 0 -> 11970 bytes .../tosysmlv2/Avatar2SysML.java | 14 +- .../tosysmlv2/AvatarFromSysMLLexer.java | 4 +- .../tosysmlv2/AvatarFromSysMLParser.java | 1789 +++++++------- .../tosysmlv2/javacup/AvatarFromSysML.jcup | 13 +- .../models/avSysML_AttrTimerNameClashL.sysml | 4 +- .../avSysML_DupChParamSndPayloadErrE.sysml | 4 +- .../cli/models/avSysML_badFieldNameErr4.sysml | 4 +- .../cli/models/avSysML_dupAttrDeclK.sysml | 4 +- .../models/avSysML_missingAttrDeclErr6.sysml | 4 +- .../models/avSysML_missingBlockBindErrH.sysml | 4 +- .../cli/models/avSysML_missingBlockErr3.sysml | 4 +- .../cli/models/avSysML_missingBlockErrG.sysml | 4 +- .../models/avSysML_missingChanInSndErrB.sysml | 4 +- .../avSysML_missingDatatypeDeclErrF.sysml | 4 +- .../models/avSysML_missingMethDeclErr8.sysml | 4 +- .../models/avSysML_missingOutMsgErr7.sysml | 4 +- .../avSysML_missingParamSndPayloadErrD.sysml | 4 +- .../avSysML_missingSignalBindingErr5.sysml | 4 +- .../models/avSysML_missingSndPayloadN.sysml | 4 +- .../cli/models/avSysML_missingStateErrA.sysml | 4 +- .../avSysML_missingStateMachineErr9.sysml | 4 +- .../models/avSysML_missingTimerDeclErrI.sysml | 4 +- .../avSysML_missingTimerOnTransErrJ.sysml | 4 +- .../models/avSysML_missingTransDeclErrC.sysml | 4 +- .../avSysML_missingTransRecvPayloadM.sysml | 4 +- .../cli/models/avSysML_original.sysml | 4 +- .../models/avSysML_originalRealNames.sysml | 4 +- .../cli/models/avSysML_syntaxErr1.sysml | 4 +- .../cli/models/avSysML_syntaxErr2.sysml | 4 +- .../resources/cli/models/avSysML_timer.sysml | 4 +- .../cli/models/avSysML_timerRealNames.sysml | 4 +- 59 files changed, 6647 insertions(+), 984 deletions(-) create mode 100644 doc/avatarSysMLV2/AvatarSysMLV2notes.tex create mode 100644 doc/avatarSysMLV2/example_models/avSysML_timerRealNames.xml create mode 100644 doc/avatarSysMLV2/example_models/before_after_transfo.xml create mode 100644 doc/avatarSysMLV2/example_models/tt_tosysml_with_timer.xml create mode 100644 doc/avatarSysMLV2/figures/Tuto_BD.pdf create mode 100644 doc/avatarSysMLV2/figures/Tuto_after_transfo.pdf create mode 100644 doc/avatarSysMLV2/figures/Tuto_before_transfo.pdf create mode 100644 doc/avatarSysMLV2/figures/Tuto_countstate_box.pdf create mode 100644 doc/avatarSysMLV2/figures/Tuto_randomstate_box.pdf create mode 100644 doc/avatarSysMLV2/figures/Tuto_receivestate_box.pdf create mode 100644 doc/avatarSysMLV2/figures/Tuto_requests.fig create mode 100644 doc/avatarSysMLV2/figures/Tuto_requests.pdf create mode 100644 doc/avatarSysMLV2/figures/Tuto_sendstate_box.pdf create mode 100644 doc/avatarSysMLV2/figures/Tuto_startstate_box.pdf create mode 100644 doc/avatarSysMLV2/figures/Tuto_state_box.pdf create mode 100644 doc/avatarSysMLV2/figures/Tuto_statemachine1.pdf create mode 100644 doc/avatarSysMLV2/figures/Tuto_statemachine1a.fig create mode 100644 doc/avatarSysMLV2/figures/Tuto_statemachine1a.pdf create mode 100644 doc/avatarSysMLV2/figures/Tuto_statemachine2.pdf create mode 100644 doc/avatarSysMLV2/figures/Tuto_statemachine2a.fig create mode 100644 doc/avatarSysMLV2/figures/Tuto_statemachine2a.pdf create mode 100644 doc/avatarSysMLV2/figures/Tuto_stopstate_box.pdf create mode 100644 doc/avatarSysMLV2/figures/Tuto_texpirestate_box.pdf create mode 100644 doc/avatarSysMLV2/figures/Tuto_tresetstate_box.pdf create mode 100644 doc/avatarSysMLV2/figures/Tuto_tsetstate_box.pdf create mode 100644 doc/avatarSysMLV2/figures/avatarClick.pdf create mode 100644 doc/avatarSysMLV2/figures/avatarPopup.pdf create mode 100755 doc/avatarSysMLV2/figures/tp.pdf diff --git a/doc/avatarSysMLV2/AvatarSysMLV2notes.tex b/doc/avatarSysMLV2/AvatarSysMLV2notes.tex new file mode 100644 index 0000000000..f1fa92388e --- /dev/null +++ b/doc/avatarSysMLV2/AvatarSysMLV2notes.tex @@ -0,0 +1,1085 @@ +\documentclass[a4paper,11pt]{article}% use option titlepage to get the title on a page of its own. + +% LAYOUT %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\textwidth 16.5cm +\textheight 26cm +\voffset -2.5cm +\hoffset -2cm +\parskip 1mm +\parindent 0mm +\newcommand{\tspace}{\hspace*{4mm}} + +\usepackage{adjustbox} +\usepackage{ragged2e} +\usepackage{tabularx} +\usepackage{hhline} +\usepackage{float} +\usepackage{multirow} +\usepackage{makecell} +\usepackage{hyperref} +% FONTS and SYMBOLS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{amssymb} + + +% USUAL GRAPHICAL TOOLS %%%%%%%%%%%%%%%%%%%%%%%%%%% +\usepackage{boxedminipage} +%\usepackage{graphics} +\usepackage{graphicx} +\usepackage[dvipsnames]{xcolor} + +\usepackage[most]{tcolorbox} +\newtcolorbox{genfunction}{width=16.5cm, colframe=blue!10!white, colback=blue!2!gray!2!white, left=1.5mm, right=1.5mm, top=1mm, bottom=0.5mm, breakable} +\newtcolorbox{sysmlbox}{width=16.5cm, colframe=yellow!30!white, colback=yellow!15!gray!2!white, left=1.5mm, right=1.5mm, top=1mm, bottom=0.5mm, breakable} +\newcommand{\smalltitle}[1]{\par\vspace{1mm}\noindent{\bfseries \textit{#1.}}\par\vspace{0.5mm}\noindent} + +% COLORS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\definecolor{darkred}{RGB}{190,0,0} + + + +\usepackage{fancyhdr} +\pagestyle{fancy} +\fancyhead{} +\fancyhead[R]{Avatar SysMLV2 elements} +\fancyhead[L]{Avatar Documentation} +\renewcommand{\headrulewidth}{0pt} + +\fancypagestyle{plain}{% + \fancyhf{} + \fancyhead[C]{Notes about Avatar SysMLV2 elements} + \fancyfoot[C]{\thepage} +} + + +%\author{Sophie Coudert\\{\small Télécom Paris}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{document} +%\thispagestyle{plain} + +\begin{center} + + \includegraphics[width=0.2\textwidth]{figures/tp.pdf} + \vspace{10 pt}\\ + \Huge TTool \\ + \vspace{10 pt} + {\Large \url{https://ttool.telecom-paris.fr}} + \vspace{20 pt}\\ + \underline{\Large Notes about Avatar SysMLV2 Representation} + \vspace{30 pt} +\end{center} + +\begin{table}[H] + \large + \centering + \begin{adjustbox}{width=\textwidth} + \begin{tabular}{ |p{1.6cm}|p{6.0cm}|p{4.2cm}|p{4.2cm}| } + \hhline{----} + & \textbf{Document Manager} & \textbf{Contributors} & \textbf{Checked by} \\ + \hhline{----} + \textbf{Name} & Sophie COUDERT & \multirow{2}{*}{Sophie COUDERT} & + \multirow{2}{*}{Sophie COUDERT} \\ + \hhline{--~~} + \textbf{Contact} & sophie.coudert@telecom-paris.fr & & \\ + \hhline{--~~} + \textbf{Date} & \today & & \\ + \hline + \end{tabular} + \end{adjustbox} +\end{table} + +\newpage +\tableofcontents + +% \newpage +% \listoffigures + +\newpage +%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ +\section{SysML V2 Generation from an Avatar Model in TTool} +\includegraphics[width=12cm]{figures/avatarClick.pdf} +\begin{enumerate} + \item An Avatar model that is compliant with the generator's limitations must be loaded in TTool. + \item Right-Click in the design panel, and select "to SysML V2" as shown on the figure above. + \item This opens a popup window (see figure below) containing the SysML V2 model associated to the current Avatar design, in textual form, respecting the SysML V2 standard. This model is a package named "AvatarInstance", thus you should copy-paste the text to save it in a file named "AvatarInstance.sysml". You can rename the package. You can choose another filename but you must use the ".sysml" suffix if you want the file to be recognized by the pilot implementation. + \item This model relies on an Avatar-dedicated SysML V2 library whose files can be found in {\ttfamily TTool/src/main/java/avatartranslator/tosysmlv2/static}.\\ + Then, by putting the generated file together with the libraryfiles in a directory, you obtain a complete SysML V2 model that is compliant with the pilote implementation. + \item {\em note about compliance\/}: currently simple models are supported, with data types and timers. Not supported: Library blocks, Pragma/Annotations, Hierarchical States, Graphical information. These aspects are TODOs\ldots +\end{enumerate} + +\includegraphics[width=8cm]{figures/avatarPopup.pdf} + +{\em Technical note 1\/}: The SysML-to-Avatar parser detects as much as possible the potential errors or inconsistancies in the analysed textual model, but is not sufficient for this. Thus Avatar syntax checking must be applied on the model obtained from the parser. + +{\em Technical note 2\/}: The used SysML V2 syntax is a strongly constrained subset of the complete SysML syntax. In particular we make an intensive use of the constructor syntax. Respecting these constraints is mandatory in order to write Avatar SysML specification that can be parsed by our tool. Equivalent specification with other syntax won't be recognized. + +Sections \ref{sec:Instance} presents the generated part of an Avatar SysML Model. This way, it introduces and presents the different features of the Avatar-dedicated SysML V2 Library. Section 5 presents algorithmic aspect of the final concrete generation software. + +%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ +\section{The instance part of Avatar SysMLV2 Models\label{sec:Instance}} +The instance is a package that includes the Avatar-dedicated SysML V2 Library. +\begin{sysmlbox}{\small + \begin{verbatim} + package AvatarInstance { + private import AvatarGeneral::*; + private import AvatarBlockTypes::*; + private import AvatarCommunication::*; + private import AvatarTransitionServer::*; + ... + }\end{verbatim} +}\end{sysmlbox} + + +The name of the package is not significant. It contains the features corresponding to the different elements of the described Avatar model. This section will present them and illustrate them on a little example, with the following bloc diagram (the example is designed to illustrate features, and not to have any particular meaning). + +\includegraphics[width = 14cm]{figures/Tuto_BD.pdf} + +%================================================= +\subsection{Types and Datatypes Declarations} +\begin{sysmlbox} Avatar types {\ttfamily int} and {\ttfamily bool} are directly interpreted by the corresponding SysML V2 data types {\ttfamily Integer} and {\ttfamily Boolean}. +\end{sysmlbox} +Timers are handled in a specific way, detailed in section \ref{sec:timers}. Other types are Avatar data types. For each Avatar data type, an attribute definition is to be provided. This definition specializes the library attribute definition {\ttfamily '\#AvatarDataType'}. The declaration for an Avatar datatype looks like: + +\begin{sysmlbox}{\small + \begin{verbatim} +// Avatar datatype "datatypename: (type1 x1,..., typen xn)" +attribute def 'datatypename' :> '#AvatarDataType'; { + attribute x1: type1; + ... + attribute xn: typen; +} +// where typei is Integer, Boolean or a datatypename (no recursion allowed) + \end{verbatim} +}\end{sysmlbox} +{\em Note\/}: currently, only Integer and Boolean fields are supported. + +The declaration of the datatype Point of our example is the following one: + +\begin{genfunction} + \begin{verbatim} + attribute def 'Point' :> '#AvatarDataType' { + attribute x : Integer default := 0; + attribute y : Integer default := 0; + }\end{verbatim} +\end{genfunction} +Note that the {\ttfamily default} keyword is omitted if initial values are provided. Here, fields get the Avatar default value for integers, i.e., zero. + +%================================================= +\subsection{Expressions and Identifiers} + +SysML integer and boolean expressions are very similar to Avatar ones, except that it uses SysML operators instead of Avatar ones. They only differ on boolean operators: + +\hspace{5mm} +\begin{tabular}{|l|l|} + Avatar operator & SysML operator \\ \hline + \verb|+| & \verb|+| \\ \hline + \verb|-| & \verb|-| \\ \hline + \verb|*| & \verb|*| \\ \hline + \verb|/| & \verb|/| \\ \hline + \verb|%| & \verb|%| \\ \hline + \verb|&&| or \verb|and| & \verb|and| \\ \hline + \verb|||| or \verb|or| & \verb|or| \\ \hline + \verb|!| or \verb|not| & \verb|not| \\ \hline + \verb|==| & \verb|==| \\ \hline + \verb|!=| & \verb|!=| \\ \hline + \verb|<| & \verb|<| \\ \hline + \verb|>| & \verb|>| \\ \hline + \verb|<=| & \verb|<=| \\ \hline + \verb|>=| & \verb|>=| \\ \hline +\end{tabular} +\hspace{5mm} +\begin{minipage}{9cm} + Note that we only consider the "\verb|and|" and "\verb|or|" SysML boolean operators (and not "\verb|&|" and "\verb+|+") as Avatar relies on lazy evaluation: the second operand is only evaluated if the first one is not sufficient to determinate the result. +\end{minipage} + +In the sequel, guards of transitions are SysML boolean expressions and we denote by {\tt toSysML(avatar\_expr)} the SysML expression corresponding to the Avatar expression {\tt avatar\_expr}. + +{\em Note about identifiers: } Generation had to avoid name clashes between the produced identifiers and SysML reserved keyword ()or field names of the used SysML Libraries). Thus all names in the Avatar SysML library and in the generated file respect some special syntax ("{\ttfamily \#...}", "{\ttfamily @...}", "{\ttfamily \$...}"), and the original Avatar mames can be recovered from this special syntax. For example a state named "{\ttfamily '@st:standard.state2'}" in the generated file has original name "{\ttfamily state2}" in the Avatar model. + +For hand writen sysml V2 Avatar models, the user can use ordinary Avatar identifiers insteed of using this special syntax. Then the user has the responsibility to avoid name clashes and have in mind that while parsing, "{\ttfamily '@st:standard.state2'}" and "{\ttfamily state2}" refer to a same Avatar identifier. + +Finally note that the chained notation of data-type field identifiers is preserved: {\ttfamily data.fld1.fld2} is allowed both in Avatar and SysML expressions. However, due to SysML constraints, if such an identifier is used as left-hand-side of a SysML assignment, the "{\ttfamily .}" becomes a "{\ttfamily ::}" in SysML, i.e we will write "{\ttfamily assign data::fld1::fld2 := toSysML(avatar\_expr);}". + +%================================================= +\subsection{Block Basic Features Declarations} +The content of this section is illustrated with block B0 of the example. + +Each Avatar Block has a corresponding SysML part usage. Block hierarchy is represented as follows: if B1 is a sub-block of B0, then the declaration of B1 is a part usage in the declaration of B0. Moreover a shortcut is defined for each block, that allows to denote the block at any level without having to write the complete block chain ({\ttfamily block.subblock1.subblock2} can simply be written {\ttfamily subblock2}). This is consistent as all Avatar blocks have different names. Once again blocks and their components are typed by declarations in the Avatar-dedicated SysML V2 library. The SysML representation of a block respects the following template: + +\begin{sysmlbox}{\small + \begin{verbatim}// part usage for an avatar block named blockname + + part blockname : '#AvatarBlock' { + // for each attribute a with name a and type t + item a : t; + + // for each method t methodname(t1 x1,...,tn xn) + calc methodname: '#CalcMethod' { + in x1 : t1; + ... + in xn : tn; + return : t; + } + + // for each method void methodname(t1 x1,...,tn xn) + action methodname: '#VoidMethod' { + in x1 : t1; + ... + in xn : tn; + } + + // for each in or out signal + part insignalname : '#Channel'; + part outsignal : '#Channel'; + + // for each timer + part timername: '#AvatarTimer' = '#AvatarTimer'('@block' = self); + + // statemachine description (detailed later) ... + + // For each subblock Bi of blockname, part usage of Bi + } + + // For each subblock Bi of blockname, named subblck (and recursively Bij), a shortcut + part Bi : '#AvatarBlock' :> blockname.Bi = blockname.Bi; + part Bij : '#AvatarBlock' :> blockname.Bi.Bij = blockname.Bi.Bij; + \end{verbatim} +}\end{sysmlbox} +{\em Note that} signals are not directed by being typed by {\ttfamily '\#Channel'}. It is the responsibility of the user to use them the right way inside the block. Moreover, if the "count-content" operator is used on a signal in the state machine of the block, then the signal must be a fifo channel. Thus it requires a more precise typing: it is typed by {\ttfamily '\#Fifo'} instead of {\ttfamily '\#Channel'}. +\begin{sysmlbox}{\small + \begin{verbatim} part fifosignal : '#Fifo';\end{verbatim} +}\end{sysmlbox} + +For the block BO of the example, we obtain: +\begin{genfunction} + \begin{verbatim}// part usage of block B0 of the example +part B0 : '#AvatarBlock' { + + attribute x : Integer default := 0; + attribute b : Boolean default := false; + attribute p : 'Point'; + attribute y : Integer default := 0; + + calc make: '#AvatarCalcMethod' { + attribute x : Integer; + attribute y : Integer; + return : 'Point'; + } + calc getx: '#AvatarCalcMethod' { + attribute p : 'Point'; + return : Integer; + } + action foo: '#AvatarVoidMethod' { + attribute b : Boolean; + attribute p : 'Point'; + attribute x : Integer; + } + + part in0 : '#Channel'; + part out0 : '#Channel'; + + ... // statemachine (no timers, no sub-block) +}\end{verbatim} +\end{genfunction} +Concerning timer declaration, we must specify that the timer is associated with the current block (self). Thus, in block B1\_0 we can find: +\begin{genfunction} + \begin{verbatim}part B1_0 : '#AvatarBlock' { ... + part t: '#AvatarTimer' = '#AvatarTimer'('@block'=self)); ... }\end{verbatim} +\end{genfunction} +Concerning block hierarchy in our example we have: +\begin{genfunction} + \begin{verbatim}part B1 : '#AvatarBlock' { ... part B1_0 : '#AvatarBlock' { ... } ... } + part B1_0 : '#AvatarBlock' :> B1.B1_0 = B1.B1_0;\end{verbatim} +\end{genfunction} +{\em Remark\/}: if you observe the attribute declaration of block B1\_0, +\begin{genfunction} + \begin{verbatim}part B1_0 : '#AvatarBlock' { + attribute x : Integer := 0; + attribute b : Boolean := false; + attribute p : 'Point'; ... + }\end{verbatim} +\end{genfunction} +you can notice that there is no "{\ttfamily default}" keyword before attribute initialisation. This reflect the fact that these attributes are initialized in the Avatar model. + +%================================================= +\subsection{Relations and Channels Declarations} +For each relation between two avatar blocks (which provides channels with characteristics) and for each channel in this relation, a part usage is declared (as Avatar relations and channels don't have names, names must be created). Mandatory parameters for relations are the two blocks they rely. The single mandatory parameter for creating a channel is the relation it is associated to. The type of this relation must correspond to the type of the channel. + +\begin{sysmlbox}{\small + \begin{verbatim} +// foreach relation, depending of relation type... +// * synchroneous relation +part syncrelname: '#Sync_Rel' = '#Sync_Rel'('@block1'=b1,'@block2'=b2,'@private'=true); +// * blocking fifo relation +part bfiforelname: '#Bfifo_Rel' = '#Bfifo_Rel'('@block1'=b1,'@block2'=b2,'@max_size'=5); +//* non blocking fifo relation +part nbfiforelname: '#NBfifo_Rel' = '#NBfifo_Rel'('@block1'=b1,'@block2'=b2, + '@lossy'=true,'@max_size'=3); + +// foreach channel in a relation, depending of relation type... +// * synchroneous channel +part syncch: '#Sync' ='#Sync'('@relation' = syncrelname); +// * blocking fifo channel +part bfifoch: '#Bfifo' = '#Bfifo'('@relation' = bfiforelname); +// * non blocking fifo channel +part nbfifoch: '#NBfifo' = '#NBfifo'('@relation' = nbfiforelname); + \end{verbatim} +}\end{sysmlbox} + + +There is no other parameter for channels as their characteristics are specified in their associated relation. Relations have optional parameters. All relations accept the parameter {\ttfamily private} (default value is false). Moreover, fifo-relations accept the parameters {\ttfamily max\_size} (default 1) and {\ttfamily lossy} (default false). + +Once the channels have been declared, they must be connected with in and out block signals. +\begin{sysmlbox}{\small + \begin{verbatim} + // foreach declared channel chn + binding : '#InSignalBinding' bind tgtblockname.insigname = chn; + binding : '#OutSignalBinding' bind srcblockname.outsigname = chn; + \end{verbatim} +}\end{sysmlbox} +In our example, we have one single private synchronous relation which contains two channels relying signals of block B0 and B1\_0. +\begin{genfunction} +\begin{verbatim}// Relation Sync_Relation ============= +part Sync_Relation: '#Sync_Rel' = + '#Sync_Rel'('@block1' = B0,'@block2' = B1_0,'@private'=true); + +// Channel sync_in0_out1------------- +part sync_in0_out1 : '#Sync' = '#Sync'('@relation' = Sync_Relation); +binding : '#InSignalBinding' bind B0.in0 = sync_in0_out1; +binding : '#OutSignalBinding' bind B1_0.out1 = sync_in0_out1; + +// Channel sync_out0_in1------------- +part sync_out0_in1 : '#Sync' = '#Sync'('@relation' = Sync_Relation); +binding : '#OutSignalBinding' bind B0.out0 = sync_out0_in1; +binding : '#InSignalBinding' bind B1_0.in1 = sync_out0_in1;\end{verbatim} +\end{genfunction} + + We then provide channel profiles (i.e. signals parameters). In the SysML V2 representation of Avatar, they are the types of messages conveyed by channels (names must be created for these types of message). As the signal payload may be named differently at both end of the communication, we define a linked couple of message profile: + +\begin{sysmlbox}{\small + \begin{verbatim} +// For each channel chn with in-message profile (t1 i1,...,tn in) +// and with out-message profile (t1 o1,...,tn on) + +part def msg_in0 :> '#InMessage' { + part '@channel' redefines '@channel' = chn; + attribute i1 : t1; + ... + attribute in : tn; +} +part def msg_out1 :> '#OutMessage', msg_in0 { + attribute o1 redefines i1; + ... + attribute on redefines in; +}\end{verbatim} +}\end{sysmlbox} +These declarations make the outgoing message extend the ingoing one and thus ensure compatibility. If a message parameter has the same name at both sides, its renaming line in the out-message declaration can be omitted. In our example, for the signal that relies B0.in0 to B1\_0.out1, we have: + +\begin{genfunction} + \begin{verbatim}// Messages of signal syn_in0_out1............ +part def msg_in0 :> '#InMessage' { + part '@channel' redefines '@channel' = syn_in0_out1; + attribute x : Integer; + attribute p : 'Point'; + attribute b : Boolean; +} +part def msg_out1 :> '#OutMessage', msg_in0 { + attribute x redefines x; + attribute p redefines p; + attribute b redefines b; +}\end{verbatim} +\end{genfunction} +As the parameter names are the same at both sides, the three renaming lines could be omitted. + + + +\subsection{State Machines Descriptions\label{sec:statemachines}} +An avatar state machine is represented by a SysML state machine as illustrated below. the order of state and transition declarations is not relevant (except for readability). +\begin{sysmlbox}{\small + \begin{verbatim} + exhibit state '@statemachine' : '#AvatarStateMachine' { + // state deprivate partclaration 1 + // ... + // state declaration n + // transition declaration 1 + // ... + // transition declaration m + } + \end{verbatim} +}\end{sysmlbox} +In the SysML representation of an Avatar model, all boxes of an Avatar state machine diagram are interpreted by SysML states and all arrows are interpreted by SysML transitions, with an exception. Indeed, an arrow to a communication state (send or receive box, and timer related boxes) that have at least an associated action is decomposed in two steps as illustrated by the following figures. + +\label{lbl:transdecomp} +\includegraphics[width=15cm]{figures/Tuto_before_transfo.pdf} + +\vspace{1mm}\hspace{0cm}{\Large\bfseries is seen as:} + +\vspace{1.5mm}\includegraphics[width=15cm]{figures/Tuto_after_transfo.pdf} + +The starting state of the decomposed transition may be any kind of Avatar state machine diagram box (except stop state), and if the arrow has a guard, this guard is kept on the first arrow of the decomposition. Timer operation are also handled this way as they are interpreted by communications with a timer block. This lead to introduce two new special kind of states (that are not state machine diagram boxes) for pre-send and pre-receive states. + +Each kind of diagram box and special state has a dedicated state specialization in the library. Here are they: + +\begin{itemize} + \item \includegraphics[width=1.5cm]{figures/Tuto_state_box.pdf}: \verb|'#AvatarStandardState'| + \item \includegraphics[width=0.4cm]{figures/Tuto_stopstate_box.pdf}: \verb|'#AvatarStopState'| + \item \includegraphics[width=0.4cm]{figures/Tuto_startstate_box.pdf}: \verb|'#AvatarStartState'| + + \item \includegraphics[width=1.1cm]{figures/Tuto_sendstate_box.pdf}: \verb|'#AvatarSendState'| + \item \includegraphics[width=1.4cm]{figures/Tuto_receivestate_box.pdf}: \verb|'#AvatarReceiveState'| + \item \includegraphics[width=2.8cm]{figures/Tuto_randomstate_box.pdf}: \verb|'#AvatarRandomState'| + \item \includegraphics[width=1.5cm]{figures/Tuto_countstate_box.pdf}: \verb|'#AvatarCountState'| + \item \includegraphics[width=2.7cm]{figures/Tuto_tsetstate_box.pdf}: \verb|'#AvatarSetTimerState'| + \item \includegraphics[width=2.0cm]{figures/Tuto_tresetstate_box.pdf}: \verb|'#AvatarResetTimerState'| + \item \includegraphics[width=2.1cm]{figures/Tuto_texpirestate_box.pdf}: \verb|'#AvatarExpireTimerState'| + \item pre-send state: \verb|'#AvatarPreSendState'| +\item pre-receive state: \verb|'#AvatarPreReceiveState'| +\end{itemize} + +Due to Avatar semantics, the way an outgoing transition from a state is selected relies on a server. Except for stop-states (which have no outgoing edges), the general process is the following one: +\begin{itemize} + \item The n outgoing edges from a state are numbered from 1 to n. + \item the state sends a pool (a list) of requests to the server, which contains exactly one request per outgoing edge, respecting the edge order. + \item As an answer, the server provides the selected edge number. This may block if requests in the pool are blocking communication requests, in which case the state is blocked (no outgoing transition occur) as it waits for a server response that does not arrive. + \item the SysML outgoing transitions of the state are guarded by this received number +\end{itemize} + + +All requests are build using constructors which depend on the type of the target state of the associated outgoing edge, except the special ones \verb|'#NOKrequest'(i)| (for the i-th outgoing edge) which are unsatisfiable (they will never be selected). Such unsatisfiable requests are used for outgoing edges with false guard. + +\subsubsection{State Declarations} +Each state has a function (a SysML V2 calculation) for computing its pool of requests. If it is not the default one, this function must be provided as a feature specialization while declaring the state. For \verb|'#AvatarStandardState'|, this feature is called {\ttfamily '@pool'} (as there may be severall outgoing edges), and for other box types, this feature is called {\ttfamily '@request'} (as there may be at most one outgoing edge). The pool may be empty or null, which is automatically the case for \verb|'#AvatarStopState'| (which thus support no {\ttfamily '@pool'} or {\ttfamily '@request'} specialization). + +Let \verb|REQ_i| denote a request build for outgoing edge i using a constructor depending of the type of the target of this edge (detailed in section \ref{sec:requests}), and \verb|guard_i| denote the guard associated with this edge. The specification of states providing pool function as feature specialization is done as following. + +\begin{sysmlbox}{\small + \begin{verbatim}// for each standard state with n outgoing transitions +state statename :'#AvatarStandardState' { + calc '@pool' redefines '@pool' = {( + if guard_1 ? REQ_1 else '#NOKrequest'(i), + REQ_2, // empty guard example + ... + if guard_n ? REQ_n else '#NOKrequest'(n) + )}; +} + +// for the single start state +entry action startstatename : '#AvatarStartState' { + calc '@request' redefines '@request' = { if guard_1 ? REQ_1 else '#NOKrequest'(i) }; +} + +// for the single stop state +exit action stopstatename : '#AvatarStopState'; + +// for each state with AvatarStateType in '#AvatarPreReceiveState', +// '#AvatarPreSendState', '#AvatarReceiveState', '#AvatarSendState' +// '#AvatarSetTimerState', '#AvatarResetTimerState', '#AvatarExpireTimerState' +state statename : AvatarStateType { + calc '@request' redefines '@request' = { if guard_1 ? REQ_1 else '#NOKrequest'(1) }; +}\end{verbatim} +}\end{sysmlbox} +Note how the SysML {\ttfamily if-else} construct is used to implement the guards of the outgoing edges. Except for stop-states, the default pool (when no pool parameter is provided) is the most used one: it contains one single request, with no guard, for an outgoing transition whose target state is not a communication state (send or receive box, and timer related boxes). + +\vspace{1mm} +As they modify the values of block attributes, \verb|'#AvatarRandomState'| and \verb|'#AvatarCountState'| have an additional feature specialization: the action that implements this modifying. This is specified respecting the following template. +\begin{sysmlbox}{\small + \begin{verbatim} +// for each random state with assignment x:=random(low,high) +state 'statename' : '#AvatarRandomState' { + calc '@request' redefines '@request' = {...}; + action '@state_action' redefines '@state_action' { + first start; + then assign x := '#bound_random'(low,high); + then done; + } +} + +// for each count state with target x and fifo channel fifo +state 'statename' : '#AvatarCountState' { + calc '@request' redefines '@request' = {...}; + action '@state_action' redefines '@state_action' { + first start; + then assign x := fifo.amount(); + then done; + } +} +\end{verbatim} +}\end{sysmlbox} +\subsubsection{Building Requests Using Constructors}\label{sec:requests} +Requests \verb|REQ_i| are exclusively defined using constructors which depends on the target of the associated outgoing edge. Parameter have to be specified only if they don't have default values or are different from these values. The request constructors are the following ones. +\begin{itemize} + \item \verb|'#NOKrequest'| for requests that cannot be selected (edge with false guard) + \item \verb|'#SendRequest'| when edge target type is \verb|'#AvatarSendState'| + \item \verb|'#ReceiveRequest'| when edge target type is \verb|'#AvatarReceiveState'| + \item \verb|'#AvatarSetTimerRequest'| when edge target type is \verb|'#AvatarSetTimerState'| + \item \verb|'#AvatarResetTimerRequest'| when edge target type is \verb|'#AvatarResetTimerState'| + \item \verb|'#AvatarExpireTimerRequest'| when edge target type is \verb|'#AvatarExpireTimerState'| + \item \verb|'#TrivialRequest'| in other cases\\ (target type among \verb|'#AvatarStandardState'|, \verb|'#AvatarStopState'|, \verb|'#AvatarCountState'|, \verb|'#AvatarRandomState'|, \verb|'#AvatarPreSendState'| and \verb|'#AvatarPreReceiveState'|) +\end{itemize} +Moreover +\begin{itemize} + \item The single requests from an \verb|'#AvatarPreSendState'| is a \verb|'#SendRequest'| + \item The single requests from an \verb|'#AvatarPreReceiveState'| is a \verb|'#ReceiveRequest'| +\end{itemize} + +All requests have an {\ttfamily '@index'} parameter (the outgoing edge index) and a {\ttfamily '@delay'} parameter, which are optional: the default index of a request is 1 and the default delay is 0. The default request pool is \verb|#immediate_request| which is defined by \verb|'#TrivialRequest'()| and thus has these default index and delay values. The use of request constructors respects the following template. Communication requests require a channel parameter, and send requests require a payload. Timer-set and timer-reset requests are special kinds of send request, and timer-expire is a special kind of receive request. + +\begin{sysmlbox}{\small + \begin{verbatim}// for unsatisfiable request i +#NOKrequest(i) +// or +#NOKrequest('@index' = i) + +// for send request i on channel c with delay(l,h) and +// out-signal profile (t1 x1,...,tn xn) defined in message type MSG_c, +// called on (a1,...,an), REQ_i is +'#SendRequest'( + '@index' = i, + '@channel' = c, + '@delay' = '#bound_random'(l, h), + '@payload' = MSG_c ( + x1= a1, + ... + xn= an ) +) + +// for receive request i on channel c without delay, REQ_i is +'#ReceiveRequest'( + '@index' = i, + '@channel' = c +) + +// for ^trivial requests with delay(l,h), REQ_i is +'#TrivialRequest'( + '@index' = i, + '@delay' = '#bound_random'(l, h) +) +// #immediate_request may be used for i=1 and delay=0 + +// for operation requests on timer t, REQ_i is +'#AvatarSetTimerRequest'( + '@index' = i, + '@channel'= t.'@set', + '@payload' = '#TimerSetMsg'(10) +) +'#AvatarResetTimerRequest'( + '@index' = i, + '@channel'= t.'@reset' +) +'#AvatarExpireTimerRequest'( + '@index' = i, + '@channel'= t.'@expire' +) +\end{verbatim} +}\end{sysmlbox} +\subsubsection{Transition Declarations} +As outgoing transitions are selected by a server providing a transition number, they are guarded using only their numbers so that only the transition associated to the selected request is enabled w.r.t. SysML semantics. Actions on Avatar transitions are interpreted by actions on SysML transitions. Due to the decomposition presented at the beginning of section \ref{sec:statemachines}, page \pageref{lbl:transdecomp}, transitions to send or receive states have no associated avatar actions. However a receiving transition has specific SysML actions that implement the updating of attribute with the received payload in server response. The transition index and the potential receive payload contained in the server response to the source state of a transition are available in this transition through its features {\ttfamily '@index'} and {\ttfamily '@payload'}. + +\begin{sysmlbox}{\small + \begin{verbatim}// transition i from a state s to a #ReceiveState r on channel c +// with in-signal profile (t1 x1,...,tn xn) defined in message type MSG_c, +// called on (a1,...an) +transition : '#AvatarTransition' first s if '@index' == i + do action : '#ReceiveAction' { + item '@msg' : MSG_c = '@payload' as MSG_c; // kind of cast + first start; + then assign a1 := '@msg'.x1; + ... + then assign a1 := '@msg'.xn; + then done; + } then r; + +// other transition i from src to tgtstate with actions a1,...,an +transition : '#AvatarTransition' first src if '@index' == i + do action : '#TransitionAction' { + first start; + // then, for each action, respecting order + // * if action ai is assignment a:= avatar_expr + then assign a := toSysML(avatar_expr); + // if action is void method call m(a1,...,an), profile (t1 x1,...,tn xn) + then action = m(a1, ... , an); + then done; + } then tgtstate; + \end{verbatim} +}\end{sysmlbox} +Note that if there is a single outgoing transition from a state, then the transition index does not need to be tested on the corresponding SysML transition. Thus in this case, in the illustration above, the {\tt if '@index' == 1} part can be removed. In the same way, if there is no action on the transition, the {\tt do action \{ ...\}} part can be removed. Finally, probability and probability laws can be associated to the transitions in the following way, where the laws and their parameters are the ones allowed in Avatar. +\begin{sysmlbox}{\small + \begin{verbatim} + transition : '#AvatarTransition' first srcstate ... then tgtstate { + attribute '@delayDistributionLaw' : String = "Log normal"; + attribute 'standard deviation' : String = "8"; + attribute 'mean' : String = "5"; + attribute '@weight' : Real = 2.0; + } + \end{verbatim} +}\end{sysmlbox} +\subsubsection{Illustration} +Here we illustrate state machine declarations on two examples that comprise most of the available features. +The first state machine example is this one: + +\includegraphics[width=10cm]{figures/Tuto_statemachine1a.pdf} + +declarations corresponding to the excerpt in box 1), where the state name created for the random box is {\ttfamily random\_0}: +\begin{genfunction} + \begin{verbatim}entry action startstate :'#AvatarStartState' { + calc '@request' redefines '@request' = { + '#TrivialRequest'('@delay' = '#bound_random'(1, 5)) + }; +} +transition : '#AvatarTransition' first startstate + do action : '#TransitionAction' { + first start; + then assign x:= 1; + then assign b:= true; + then done; + } then random_0; +state random_0 : '#AvatarRandomState' { + action '@state_action' redefines '@state_action' { + first start; + then assign x := '#bound_random'(0, 10); + then done; + } +} +transition : '#AvatarTransition' first random_0 then st1;\end{verbatim} +\end{genfunction} +This shows a start state with a trivial parametrized outgoing transition to a random state. This random state has an outgoing transition to state st1 which relies on the default request pool (one single trivial request with no delay and index 1), thus this pool has not to be provided in the state and the transition number does not need to be checked in the transition declaration. + +\vspace{1mm} +Box 2 is a little bit more complex as state st1 has three outgoing transition thus the pool must be provided. Moreover, the left-most transition (nb 3) leads to a sending communication and has an associated action, thus a presend state is introduced, named {\ttfamily presnd\_out0\_0}. In the same way, the right-most transition (nb 1) leads to a receiving communication and has an associated action, thus a prereceive state is introduced, named {\ttfamily prercv\_in0\_0}. The middle transition (nb 2) leads to a count state with created name {\ttfamily count\_in0\_0}: +\begin{genfunction} + \begin{verbatim} + state st1 : '#AvatarStandardState' { + calc '@pool' redefines '@pool' = {( + '#immediate_request', + '#TrivialRequest'('@index' = 2, '@delay' = 3), + if x > 4 ? + '#TrivialRequest'('@index' = 3) + else '#NOKrequest'(3) + )}; + } + + transition : '#AvatarTransition' first st1 if '@index' == 1 + do action : '#TransitionAction' { + first start; + then action = m0v(x, b); + then done; + } then prercv_in0_0; + + transition : '#AvatarTransition' first st1 if '@index' == 2 + then count_in0_0; + + transition : '#AvatarTransition' first st1 if '@index' == 3 + do action : '#TransitionAction' { + first start; + then assign x:= m0i(x, b); + then done; + } then presnd_out0_0;\end{verbatim} +\end{genfunction} +The prereceive state has a single outgoing receiving transition to a receive state named {\ttfamily receive\_in0\_0}, and the presend state has a single outgoing sending transition to a send state named {\ttfamily send\_out0\_0}. {\ttfamily msg\_in0} is the message type characterizing the receiving profile and {\ttfamily msg\_out0} is the message type characterizing the sending profile. {\ttfamily in0} and {\ttfamily out0} are respectively the receiving and the sending channels. both have two parameters {\ttfamily x} and {\ttfamily b}. In the exemple, they are respectively used to update and send the two block attributes with the same names, {\ttfamily x} and {\ttfamily b}. +\begin{genfunction} + \begin{verbatim}state prercv_in0_0 : '#AvatarPreReceiveState' { + calc '@request' redefines '@request' = { + '#ReceiveRequest'( + '@channel'= in0 + ) + }; + } + transition : '#AvatarTransition' first prercv_in0_0 + do action : '#ReceiveAction' { + item '@msg' : msg_in0 = '@payload' as msg_in0; + first start; + then assign x := '@msg'.x; + then assign b := '@msg'.b; + then done; + } then receive_in0_0; + + state presnd_out0_0 : '#AvatarPreSendState' { + calc '@request' redefines '@request' = { + '#SendRequest'( + '@channel' = out0, + '@payload' = msg_out0(x,b) + ) + }; + } + transition : '#AvatarTransition' first presnd_out0_0 then send_out0_0; + \end{verbatim} +\end{genfunction} +Box 3) is quite simple as the three states {\ttfamily receive\_in0\_0}, {\ttfamily send\_out0\_0} and {\ttfamily count\_in0\_0} use the default pool and the stop state is unique in SysML: +\begin{genfunction} + \begin{verbatim}exit action stopstate :'#AvatarStopState'; + + state receive_in0_0 : '#AvatarReceiveState'; + transition : '#AvatarTransition' first receive_in0_0 then stopstate; + + state count_in0_0 : '#AvatarCountState' { + action '@state_action' redefines '@state_action' { + first start; + then assign x := in0.'@amount'(); + then done; + } + } + transition : '#AvatarTransition' first count_in0_0 then stopstate; + + state send_out0_0 : '#AvatarSendState'; + transition : '#AvatarTransition' first send_out0_0 then stopstate;\end{verbatim} +\end{genfunction} +Note that the order in which transitions and states are defined does not matter. + +\vspace{2mm} +The second example essentially illustrates timer operators. Notice that timer operators are communication states. Thus, although this is not the case on this simple example, if there is some action on a transition leading to a timer operator, a precommunication state must be inserted as in the previous example. Set and Reset are sending communications (although Reset has no payload). Expire is a receiving communication. The example is the following one. + +\includegraphics[width=8cm]{figures/Tuto_statemachine2a.pdf} + +The timer is named {\ttfamily t}, and the created names for the set-timer, reset-timer and expire-timer operations are respectively {\ttfamily set\_t\_0}, {\ttfamily reset\_t\_0} and {\ttfamily expire\_t\_0}. + +Box 1) is represented this way: +\begin{genfunction} + \begin{verbatim}entry action startstate :'#AvatarStartState'; + transition : '#AvatarTransition' first startstate then state1; + + state state1 : '#AvatarStandardState' { + '@pool' redefines '@pool' = {( + '#AvatarSetTimerRequest'( + '@channel' = t.'@set', + '@payload' = '#TimerSetMsg'(10) + ) + )}; + } + transition : '#AvatarTransition' first state1 then set_t_0;\end{verbatim} +\end{genfunction} + +Box 2) is represented this way: +\begin{genfunction} + \begin{verbatim}state set_t_0 : '#AvatarSetTimerState'; + transition : '#AvatarTransition' first set_t_0 then state2; + + state state2 : '#AvatarStandardState' { + '@pool' redefines '@pool' = {( + '#AvatarExpireTimerRequest'( + '@channel' = t.'@expire' + ), + '#AvatarResetTimerRequest'( + '@index' = 2, + '@channel '= t.'@reset' + ) + )}; + } + transition : '#AvatarTransition' first state2 if '@index' == 1 then expire_t_0; + transition : '#AvatarTransition' first state2 if '@index' == 2 then reset_t_0; + + state expire_t_0 : '#AvatarExpireTimerState'; + transition : '#AvatarTransition' first expire_t_0 then state1; + + state reset_t_0 : '#AvatarResetTimerState'; + transition : '#AvatarTransition' first reset_t_0 then state2; + \end{verbatim} +\end{genfunction} +%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ +\section{The SysMLV2 Library for Avatar Models} +This library is made of fixed files that are provided and commented. Here is just a quick presentation of its content. From a methodological point of view, provided materials can be classified into two categories although they are often mixed inside the model, as SysML V2 does not offer a way to clearly separate a component interface from its implementation: +\begin{itemize} + \item The common base on which Avatar instances rely. This comprises all Avatar types for blocks, states, methods,\ldots This also comprises the interfaces of some provided components which associate semantics to the models. An intuitive understanding of this base is sufficient to have an insight of the semantics of avatar instance models. + \item The detailed implementation/specification of all the provided features. Indeed, our modeling not only defines a SysML view of avatar models but also provide them with fully specified (as much as possible) semantics, relying on SysML V2 semantics as described in the official documentation. Although official semantics is not fully formal, it is very precise and we tried to only rely SysML constructs that have a very clear and precise meaning. Despite this precision, the provided descriptions are to be considered as specification and not as implementation, as implementation may be different and differently structured but have the same observable behaviour. In particular, we precisely + respect (as much as possible) the behaviour of the current Java implementation of Avatar, providing it with quasi-formal semantics. To enforce this semantical coincidence, we must add a semantical information which is not part of SysML semantics: in our model, all action occur as soon as they are enabled and they are always instantaneous when they have no explicit associated duration in the SysML V2 model. Basic actions such as assignments or (instantaneous) expression evaluations are considered as atomic (as specification is logic and not implementation). +\end{itemize} +In the library, all feature or type name that may occur in the generated instance look lyke {\ttfamily '\#...'} or {\ttfamily '@...'} to avoid conflict with element names of Avatar models. For other names, this is not generally required although it is sometime the case. + +The following sections quickly describe the different files of this library. For details, see comments inside the files. + +%================================================= +\subsection{General Primitives in {\ttfamily AvatarGeneral.sysml}} +This part contains some general features that are not provided by SysML V2. For an intuitive overview, the reader may skip this section as 1) concepts are well-known and 2) they are only used in the detailed specification of semantics, and not directly in the Avatar instance part (except random and assignment). + +\smalltitle{A system level discrete clock} +Avatar relies on a global discrete time. +\begin{sysmlbox}{\small + \verb|item '#systemClock' : Clock { currentTime : Integer redefines currentTime; }| +}\end{sysmlbox} + +\smalltitle{A random primitive} +We define a random function which returns a randomly chosen integer between two bounds. +\begin{sysmlbox}{\small + \verb|calc '#bound_random' { in low : Positive; in high : Positive; ...}| +}\end{sysmlbox} + +\smalltitle{Multiset utilities} +We provide tools to handle multisets represented by sequences. A general tool for iterating on multisets is defined and then used to define some usual functions. For this, some trivial functions are defined to instantiate the general iteration tool parameters. +\begin{sysmlbox}{\small + \begin{verbatim} + action '#nop'; // the action which does nothing + calc def '#Unary_predicate' {...} // predicate with one single parameter + action def '#Unary_action' {...} // action with one single parameter + action '#unary_nop' : '#Unary_action' {...} // action that does nothing + calc '#unary_true' : '#Unary_predicate' {...} // predicate returning true + calc '#identity' {...} // returns a predicate that tests equality to tgt + + action '#multiset_iter' { // iterate tests and actions on a multiset + in multiset : Anything[0..*] ordered nonunique; // the multiset + in pred : '#Unary_predicate' default '#unary_true'; // to select elements + in pre_act : '#Unary_action' default '#unary_nop'; // applied before if_act + in if_act : '#Unary_action' default '#unary_nop'; // applied on selected elems + in post_act : '#Unary_action' default '#unary_nop'; // applied after if_act + out selected : Anything[0..*]; // all x satisfying pred + out discarded : Anything[0..*]; // all x not satisfying pred + ... + } + calc '#multiset_random' {...} // randomly returns an element + action '#multiset_remove' {...} // removes elements satisfying a predicate + calc '#multiset_exists' {...} // tests if some elements satisfy a predicate + \end{verbatim} +}\end{sysmlbox} + +\smalltitle{A simple semaphore} +We define a size-1 semaphore to be used to protect critical sections. +\begin{sysmlbox}{\small + \begin{verbatim}part def '#Lock' { + action lock {...} // waits untill protected ressource is available, then lock it + action unlock {...}// releases the protected ressource + } + \end{verbatim} +}\end{sysmlbox} + +%================================================= +\subsection{Avatar Communications in {\ttfamily AvatarCommunication.sysml}} +This section describes a part of Avatar base that is directly used by Avatar instances. In Avatar, channels are connections between one output signals and one input signals. These connection are associated to Avatar relations which provide them with transmission modes (fifo, synchroneous). Relations may also make channel private. All channels of a relation are relying the same two end blocks which are attributes in the SysML representation of the relation. Fifo relations have additional attributes as fifos have a size and may be lossy. They also may block or not when trying to send on a full fifo, which is modelled by specialization. + +\begin{sysmlbox}{\small + \begin{verbatim}abstract part def '#Relation'; // Avatar relations + part def '#Sync_Rel' :> '#Relation'; // Avatar synchroneous relations + abstract part def '#Fifo_Rel' :> '#Relation' {..} // Avatar fifo relations + part def '#Bfifo_Rel' :> '#Fifo_Rel'; // fifo relations with blocking send */ + part def '#NBfifo_Rel' :> '#Fifo_Rel'; // fifo relations with non-blocking send */ + \end{verbatim} +}\end{sysmlbox} + +Channels convey messages (to be specialized in instances). A special acknowledgment message is used to signal successful synchronisation that do not convey payload (to acknowledge a send request, for example). However, in the current version of the Avatar-SysML software, this message cannot be used for sending requests with empty payload: an message type with no field must be declared. +\begin{sysmlbox}{\small + \begin{verbatim}abstract item def '#Message'; // conveyed by channels, or acknowledgment + individual item def '#AckMessage' :> '#Message'; // Type of the acknowledgment message + individual item '#ack_message' : '#AckMessage'; // The acknowledgment message + part def '#DataMessage' :> '#Message'; // Type of other messages conveyed by channels + part def '#InMessage' :> '#DataMessage'; // for input signal profiles + part def '#OutMessage' :> '#InMessage'; // for output signal profiles + \end{verbatim} + }\end{sysmlbox} + + Channels are partitioned with respect to the transmission modes of their associated relation. + \begin{sysmlbox}{\small + \begin{verbatim} + abstract part def '#Channel' { readonly part relation : '#Relation'; } + part def '#Sync' :> '#Channel' { + public readonly item '@relation' : '#Sync_Rel' redefines '@relation'; + } + abstract part def '#Fifo' :> '#Channel' { + public readonly item '@relation' : '#Fifo_Rel' redefines '@relation'; + calc amount {...} // returns size of content + calc get {...} // removes and returns head + action put {...} // put at end + ... + } + part def '#Bfifo' :> '#Fifo' {...} + part def '#NBfifo' :> '#Fifo' {...} + \end{verbatim} + }\end{sysmlbox} + Only channel types and fifo \verb|amount| operations are directly used in Avatar instances, which contain a declaration of their channels and may use \verb|amount| in "Count" state actions.. Actions such as fifo's {\ttfamily put} or {\ttfamily get} are only used in the detailed specification of the server behaviour. Fifo behaviour is described in detail. Fifo methods are not robust against parallelism which is not a problem as no parallel call occur in our Avatar SysMLV2 models. + + %================================================= + \subsection{The Avatar Transition Server, in {\ttfamily AvatarTransitionServer.sysml}} + Avatar state-machines seem to be close to SysMLV2 state-machines but a subtle difference about enabled transitions compromises quasi-direct transcription. In SysMLV2, a transition is enabled as soon as its guard is satisfied and its potential trigger (which can be a delay) occurs. In Avatar, if the target of the transition is some communication (a send or a receive), this communication must be feasible (not blocked) to enable the transition. This forward looking is not directly representable by SysMLV2 constructs. Thus we describe the selection of an enabled transition by way of a centralized server as this is done in the Java implementation of Avatar. The behaviour of this server is fully described in the model but not detailed in this document. Here we only describe its interface, i.e. its interactions with other components. These interactions precisely respect the behaviour of the Java server, i.e the same transitions are enabled and possibly selected, at the same dates. However, although they can be memorized in the SysML model, the probability laws associated to the transitions are not taken into account in the description of semantics. + + The server is used to select a transition to fire among the enabled outgoing transitions of a state of an Avatar state-machine. For this, states will submit pools of requests to the server, where each request is associated to one of its outgoing transitions. Then, as soon as some requests in the pool are feasible, the server chose one of them and send a response to the requestor (the state) associated to the submitted pool. This response identifies the selected request and provides the associated payload (transmitted message for receive requests, and acknowledgment in other cases). + + Requests are classified using SysMLV2 specialization. As a pool of request exactly contain one request per outgoing transition, some of them are directly definitively disabled: the ones that have a false guard. They are "NOK requests". The other ones are "OK requests". Among them, some are directly enabled (leaving aside their delai): the ones that are do not lead to communications (depending on the other communication end), as their feasibility does not depend on anything. Such requests are called trivial. Remaining requests are communication request. Each request has a transition index, i.e. the index of its associated transition w.r.t. the fixed order of outgoing transitions of the concerned source state. OK requests have a delay (which may be 0). + + \begin{sysmlbox}{\small + \begin{verbatim} + abstract part def '#Request' { attribute '@index' : Positive default 1; } + + part def '#NOKrequest' :> '#Request'; // requests with false guard + + abstract part def '#OKrequest' :> '#Request' {... // requests with true guard + attribute delay : Positive default 0; } + + part def '#TrivialRequest' :> '#OKrequest'; // trivially feasible requests after delai + + item '#immediate_request' : '#TrivialRequest'; + + abstract part def '#CommunicationRequest' :> '#OKrequest' {... // communication + item '@channel' : '#Channel'; } + + part def '#SendRequest' :> '#CommunicationRequest' {... // outgoing communication + item '@payload' : '#DataMessage'; } + + part def '#ReceiveRequest' :> '#CommunicationRequest' {...} // incomming communication + + part def '#RequestPool' { + item requestor : Occurrence; + item pool : '#Request'[1..*] ordered; } + + item def '#Response' { + attribute '@index' : Positive; + item '@payload' : '#Message'; } + + part '#transitionRequestServer' {... // the server + action submit { in request_pool : '#RequestPool'; ...} + } + \end{verbatim} + }\end{sysmlbox} +The following figure summarizes the different kinds of requests with their attributes and the specialization relations that rely them, as well as responses and request pools. + +\includegraphics[width=10.5cm]{figures/Tuto_requests.pdf} + + Note that default values are specified, representing the most common/simple case: default delay is 0, default transition index is 1, and \verb|#immediate_request| is a trivial request respecting these defaults. These defaults in particular describe a simple outgoing arrow from a state, without delay or action (guards are handled another way). + + Specialized requests for implementing timer operations are presented in the next section. + %================================================= + \subsection{Avatar Bloc Components, in {\ttfamily AvatarBlockTypes.sysml}} + This part defines the types associated to Avatar blocs and their components. They are widely used to type the components in the generated instance part of a model. Not that not only usual Avatar states are interpreted by SysML States but also all other Avatar state-machine elements that are not transitions. Moreover, technically, some transitions to communication are decomposed into two successives transitions and thus we introduce a specific state type (PreCommunicationState) for the added intermediate state between two such transitions. + For using the request server, outgoing transitions from a state have a fixed order (set while generating) and are numbered from 1 to n respecting this order. + + Then, the general behaviour of an Avatar SysML state consist in: + \begin{itemize} + \item perform an action (specialized w.r.t. state type). + \item build a request pool containing one request per outgoing transition (ordered). + \item submit the pool to the request server + \item wait for a response from the server, saying that some transition has been selected.\\ + Receiving this response updates the selected transition and the payload attribute in the state and consequently, in all outgoing transitions. + \end{itemize} + This is done by the entry action of states. + + Note that the {\ttfamily '@pool'} or {\ttfamily '@request'} feature of a state is not directly a pool but a function that computes a pool, so that this function can be called at the right moment in the state behaviour. + + + \begin{sysmlbox}{\small + \begin{verbatim} + abstract attribute def '#AvatarDataType'; + part def '#AvatarBlock'; + abstract action def '#AvatarMethod'; + action def '#AvatarVoidMethod' :> '#AvatarMethod'; + calc def '#AvatarCalcMethod' :> '#AvatarMethod'; + state def '#AvatarStateMachine'; + + // pool generating function + calc def '#PoolGen' { return result[0..*] : '#Request'; } + // single request pool generating function + calc def '#RequestGen' :> '#PoolGen' { return result[0..1] : '#Request'; } + + abstract state def '#AvatarState' { + // the request pool function to be specialized by instances + protected calc '@pool' : '#PoolGen' default { '#immediate_request' }; + // the instance specific action, to be specialized + protected action '@state_action' default '#nop'; + // to receive server response + item response : '#Response' := '#default_response'; + ... + entry action {...} + } + state def '#AvatarStandardState' :> '#AvatarState'{ + private action '@state_action' redefines '@state_action' = '#nop'; + } + state def '#AvatarStopState' :> '#AvatarState'{ + private action '@state_action' redefines '@state_action' = '#nop'; + private calc '@pool'[0] redefines '@pool' = { null }; + } + state def '#AvatarStartState' :> '#AvatarState'{ + private action '@state_action' redefines '@state_action' = '#nop'; + protected calc '@request': '#RequestGen' redefines '@pool' + default { '#immediate_request' }; + } + abstract state def '#AvatarCommunicationState' :> '#AvatarState'{...} + state def '#AvatarSendState' :> '#AvatarCommunicationState'; + state def '#AvatarReceiveState' :> '#AvatarCommunicationState'; + state def '#AvatarRandomState' :> '#AvatarState' {...} + state def '#AvatarCountState' :> '#AvatarState' {...} + abstract state def '#AvatarPreCommunicationState' :> '#AvatarState' {...} + state def '#AvatarPreSendState' :> '#AvatarPreCommunicationState'; + state def '#AvatarPreReceiveState' :> '#AvatarPreCommunicationState'; + + action def '#AvatarTransition' :> StateTransitionAction { + attribute '@index' : Positive = + (transitionLinkSource as '#AvatarState').response.'@index'; + item '@payload' : '#Message' = + (transitionLinkSource as '#AvatarState').response.'@payload'; + } + \end{verbatim} + }\end{sysmlbox} + Note that the two features to be specialize in instances (\verb|'@state_action'| and \verb|'@pool'|) have default values set to \verb|{ #nop }| for \verb|'@state_action'| and for \verb|pool|, to a simple outgoing transition without delay and with non-communicating state as target. Moreover, these parameters are already partially specialized in specialized states. The excerpt above illustrate some cases: both in \verb|#AvatarStopState| and \verb|#AvatarStandardState|, the \verb|'@state_action'| is fixed to \verb|'#nop'| and thus is not to be specialized any more. The \verb|'@pool'| parameter of \verb|#AvatarStopState| is fixed to \verb|{ null }|. The one of \verb|#AvatarStartState| is restricted to a single request and thus renamed \verb|'@request'|, which is done for all specialized states with a single outgoing request. This request may be specialized in instance if it is not the default one. Finally, Avatar transitions have two additional \verb|'@index'| and \verb|'@payload'| items (w.r.t. SysMLV2 transitions), which are linked to the corresponding fields of the transition source state's response item. + + \vspace{2mm} + {\ttfamily AvatarBlockTypes.sysml} also contains declarations relative to timers. Avatar timer operation states and transitions are particular communication states, and thus, associated transition requests are communication requests, with a dedicated message type for set-timer requests, which have a duration as payload (a \verb|'@value'| attribute). Reset-timer requests are send requests which have no payload information and thus {\ttfamily'\#ack\_message'} is used as payload. + + \begin{sysmlbox}{\small + \begin{verbatim} + part def '#TimerSetMsg' :> '#DataMessage' { attribute '@value' : Integer; } + + state def '#AvatarSetTimerState' :> '#AvatarSendState'; + state def '#AvatarResetTimerState' :> '#AvatarSendState'; + state def '#AvatarExpireTimerState' :> '#AvatarReceiveState'; + + part def '#AvatarSetTimerRequest' :> '#SendRequest' { + '@payload' redefines '@payload' : '#TimerSetMsg'; + } + part def '#AvatarResetTimerRequest' :> '#SendRequest' { + '@payload' redefines '@payload' = '#ack_message'; + } + part def '#AvatarExpireTimerRequest' :> '#ReceiveRequest'; + \end{verbatim} + } +\end{sysmlbox} +A timer is translated as a particular kind of Avatar block, with an additional {\ttfamily '@block'} attribute which is the block to which the timer belongs. Thus a timer declaration must provide this block information as parameter. As such declarations occur inside the concerned block, this associated block is simply identified by {\ttfamily self} in declarations which look like {\ttfamily part timername : '\#AvatarTimer' = '\#AvatarTimer' ('@block'=self);}. +\begin{sysmlbox}{\small + \begin{verbatim} + part def '#AvatarTimer' :> '#AvatarBlock' { + part '@block' : '#AvatarBlock'; + part '@set' : '#Sync' ...; + part '@reset' : '#Sync' ...; + part '@expire' : '#Sync' ...; + + exhibit state '@statemachine' : '#AvatarStateMachine' {...} +} + \end{verbatim} +}\end{sysmlbox} + As timer operations are communications, a timer block comprises one dedicated (synchronous) channel per operation: the one on which timer the timer operation requests communicate. The timer block state machine describes usual timer behaviour, with no concurrent access aspect as a timer can only be used in the state machine of a single block which does not support any parallelism. + +%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ + + +\section{Supported Identifiers} +A concrete implementation must avoid name clashes. Name clashes may occur between Avatar identifier and SysML keywords, between Avatar identifier and SysML field names of the SysML libraries used in the modeling and between two Avatar identifiers for different types of components (for example a block name and a attribute name). + +In hand written SysMLV2 Avatar models, any Avatar identifier is allowed for any Avatar component, provided that it doesn't cause name clash, which is the responsibility of the user who writes the model. + +While generating, to avoid clash names, we generate secure identifiers that are build from avatar identifiers but are not Avatar identifiers. While parsing, these special identifiers are recognized and the original Avatar identifiers are extracted from them. As a consequence, in the parsed model, an avatar identifier {\ttfamily avident} and its generated version {\ttfamily makeSecureIdent(avident)} are one single identifier. The generated identifiers comprise information about the kind of elements that are denoted, but while parsing, this is not taken into account. Thus, for example, {\ttfamily '@blk:blockname'} is intended to be a block name (identified as {\ttfamily blockname} by parsing), but can be used as a signal name, for example, in handwritten specification (do not do this!). In the resulting parsed Avatar model, it is the same ident as {\ttfamily '@sig:blockname'}, which is intended to be a signal name. Thus, you can use these special identifiers, but carefully. In the following list of generated identifier, when {\ttfamily avname} {\ttfamily signalavname} or {\ttfamily timeravname} occurs, it is the original identifier in the original Avatar model or the final identifier in the avatar model obtained by parsing. When {\ttfamily createdname} occurs, it is some generated name for SysML elements that have no corresponding names in the Avatar model. These created name provide information about what they denote. For more precision about this, look at generated models. To avoid confusion, created state names have a suffix number "\verb|.N|" because, for example, there may be several "send-on-signal-sig" states in a state machine. +\begin{genfunction} + SysML generated identifiers: + \begin{itemize} + \item datatypes: \verb|'@dt:avname'| + \item block name: \verb|'@blk:avname'| + \item attribute or method name: \verb|'$avname'| + \item datatype field names are kept as they are: \verb|'avname'| + \item relations between block1 and block2, depending of type: \verb|'@SYN:createdname'|, \verb|'@BF:createdname'| or \verb|'@NBF:createdname'|, where \verb|createdname| is \verb|block1name-block2name|. + \item channel between signal sig1 of block1 and signal sig2 of block2, depending of type: \verb|'@syn:createdname'|, \verb|'@bf:createdname'| or \verb|'@nbf:createdname'|, where \verb|createdname| is \verb|block1.sig1?block2.sig2|, with \verb|?| being \verb|>| if sig1 is an output signal and sig2 is an input signal and \verb|?| being \verb|<| otherwise. + \item signal profile message type name: \verb|'@MSG:createdname'|, where \verb|createdname| is \verb|blockname.signalname|. + public static String startStateSysMLname(){ return "'@st:start'"; } + \item start state: \verb|'@st:start'| + \item stop state: \verb|'@st:stop'| + \item standard state: \verb|'@st:standard.avavname'| + \item random state: \verb|'@st:random.N'| + \item query-on-signal state: \verb|'@st:count.signalavname.N'| + \item send state: \verb|'@st:send.signalavname.N'| + \item receive state: \verb|'@st:receive.signalavname.N'| + \item pre-send state: \verb|'@st:presend.signalavname.N'| + \item pre-receive state: \verb|'@st:prereceive.signalavname.N'| + \item set-timer state: \verb|'@st:set.timeravname.N'| + \item reset-timer state: \verb|'@st:reset.timeravname.N'| + \item expire-timer state: \verb|'@st:expire.timeravname.N'| + \item pre-set-timer state: \verb|'@st:preset.timeravname.N'| + \item pre-reset-timer state: \verb|'@st:prereset.timeravname.N'| + \item pre-expire-timer state: \verb|'@st:preexpire.timeravname.N'| + \item timer (block) name: \verb|'@tmr:timeravname'| +\end{itemize} +\end{genfunction} +\end{document} + diff --git a/doc/avatarSysMLV2/example_models/avSysML_timerRealNames.xml b/doc/avatarSysMLV2/example_models/avSysML_timerRealNames.xml new file mode 100644 index 0000000000..593a3d0e72 --- /dev/null +++ b/doc/avatarSysMLV2/example_models/avSysML_timerRealNames.xml @@ -0,0 +1,1181 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<TURTLEGMODELING version="3.0 beta" ANIMATE_INTERACTIVE_SIMULATION="true" ACTIVATE_PENALTIES="true" UPDATE_INFORMATION_DIPLO_SIM="false" ANIMATE_WITH_INFO_DIPLO_SIM="true" OPEN_DIAG_DIPLO_SIM="false" LAST_SELECTED_MAIN_TAB="0" LAST_SELECTED_SUB_TAB="1"> + +<Modeling type="AVATAR Design" nameTab="Design" tabs="Block Diagram$B0$B1$B1_0" > +<AVATARBlockDiagramPanel name="Block Diagram" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" > +<MainCode value="void __user_init() {"/> +<MainCode value="}"/> +<Optimized value="true" /> +<considerTimingOperators value="true" /> +<Validated value="B1;B1_0;B0;" /> +<Ignored value="" /> + +<CONNECTOR type="5002" id="2" index="0" uid="e2d900d2-9cd1-419a-a79e-03081de16bf0" > +<cdparam x="338" y="230" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<TGConnectingPoint num="0" id="1" /> +<P1 x="315" y="285" id="98" /> +<P2 x="384" y="277" id="13" /> +<AutomaticDrawing data="true" /> +<new d="false" /> +<extraparam> +<iso value="in in0(int x, Point p, bool b)" /> +<osd value="out out1(int x, Point p, bool b)" /> +<isd value="in in1(int x, Point p, bool b)" /> +<oso value="out out0(int x, Point p, bool b)" /> +<FIFOType asynchronous="false" synchronousCH="true" size="1" blocking="false" private="true" broadcast="false" lossy="false" ams="false" /> +</extraparam> +</CONNECTOR> +<COMPONENT type="5000" id="84" index="1" uid="94fc245f-ba93-486c-a741-c888fb20658d" > +<cdparam x="356" y="175" /> +<sizeparam width="229" height="228" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Block" value="B1" /> +<new d="false" /> +<TGConnectingPoint num="0" id="44" /> +<TGConnectingPoint num="1" id="45" /> +<TGConnectingPoint num="2" id="46" /> +<TGConnectingPoint num="3" id="47" /> +<TGConnectingPoint num="4" id="48" /> +<TGConnectingPoint num="5" id="49" /> +<TGConnectingPoint num="6" id="50" /> +<TGConnectingPoint num="7" id="51" /> +<TGConnectingPoint num="8" id="52" /> +<TGConnectingPoint num="9" id="53" /> +<TGConnectingPoint num="10" id="54" /> +<TGConnectingPoint num="11" id="55" /> +<TGConnectingPoint num="12" id="56" /> +<TGConnectingPoint num="13" id="57" /> +<TGConnectingPoint num="14" id="58" /> +<TGConnectingPoint num="15" id="59" /> +<TGConnectingPoint num="16" id="60" /> +<TGConnectingPoint num="17" id="61" /> +<TGConnectingPoint num="18" id="62" /> +<TGConnectingPoint num="19" id="63" /> +<TGConnectingPoint num="20" id="64" /> +<TGConnectingPoint num="21" id="65" /> +<TGConnectingPoint num="22" id="66" /> +<TGConnectingPoint num="23" id="67" /> +<TGConnectingPoint num="24" id="68" /> +<TGConnectingPoint num="25" id="69" /> +<TGConnectingPoint num="26" id="70" /> +<TGConnectingPoint num="27" id="71" /> +<TGConnectingPoint num="28" id="72" /> +<TGConnectingPoint num="29" id="73" /> +<TGConnectingPoint num="30" id="74" /> +<TGConnectingPoint num="31" id="75" /> +<TGConnectingPoint num="32" id="76" /> +<TGConnectingPoint num="33" id="77" /> +<TGConnectingPoint num="34" id="78" /> +<TGConnectingPoint num="35" id="79" /> +<TGConnectingPoint num="36" id="80" /> +<TGConnectingPoint num="37" id="81" /> +<TGConnectingPoint num="38" id="82" /> +<TGConnectingPoint num="39" id="83" /> +<extraparam> +<blockType data="block" color="-4072719" /> +<CryptoBlock value="false" /> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="5000" id="43" index="4" uid="2b8839f5-8a46-4ef8-b202-68d15fae0cbb" > +<father id="84" num="0" /> +<cdparam x="384" y="239" /> +<sizeparam width="183" height="154" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="46" minY="0" maxY="74" /> +<infoparam name="Block0" value="B1_0" /> +<new d="false" /> +<TGConnectingPoint num="0" id="3" /> +<TGConnectingPoint num="1" id="4" /> +<TGConnectingPoint num="2" id="5" /> +<TGConnectingPoint num="3" id="6" /> +<TGConnectingPoint num="4" id="7" /> +<TGConnectingPoint num="5" id="8" /> +<TGConnectingPoint num="6" id="9" /> +<TGConnectingPoint num="7" id="10" /> +<TGConnectingPoint num="8" id="11" /> +<TGConnectingPoint num="9" id="12" /> +<TGConnectingPoint num="10" id="13" /> +<TGConnectingPoint num="11" id="14" /> +<TGConnectingPoint num="12" id="15" /> +<TGConnectingPoint num="13" id="16" /> +<TGConnectingPoint num="14" id="17" /> +<TGConnectingPoint num="15" id="18" /> +<TGConnectingPoint num="16" id="19" /> +<TGConnectingPoint num="17" id="20" /> +<TGConnectingPoint num="18" id="21" /> +<TGConnectingPoint num="19" id="22" /> +<TGConnectingPoint num="20" id="23" /> +<TGConnectingPoint num="21" id="24" /> +<TGConnectingPoint num="22" id="25" /> +<TGConnectingPoint num="23" id="26" /> +<TGConnectingPoint num="24" id="27" /> +<TGConnectingPoint num="25" id="28" /> +<TGConnectingPoint num="26" id="29" /> +<TGConnectingPoint num="27" id="30" /> +<TGConnectingPoint num="28" id="31" /> +<TGConnectingPoint num="29" id="32" /> +<TGConnectingPoint num="30" id="33" /> +<TGConnectingPoint num="31" id="34" /> +<TGConnectingPoint num="32" id="35" /> +<TGConnectingPoint num="33" id="36" /> +<TGConnectingPoint num="34" id="37" /> +<TGConnectingPoint num="35" id="38" /> +<TGConnectingPoint num="36" id="39" /> +<TGConnectingPoint num="37" id="40" /> +<TGConnectingPoint num="38" id="41" /> +<TGConnectingPoint num="39" id="42" /> +<extraparam> +<blockType data="block" color="-4072719" /> +<CryptoBlock value="false" /> +<Attribute access="0" var="0" id="x" value="0" type="8" typeOther="" /> +<Attribute access="0" var="0" id="b" value="false" type="4" typeOther="" /> +<Attribute access="0" var="0" id="p" value="" type="5" typeOther="Point" /> +<Attribute access="0" var="0" id="t" value="" type="9" typeOther="" /> +<Signal value="in in1(int x, Point p, bool b)" attached="true" /> +<Signal value="out out1(int x, Point p, bool b)" attached="true" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="5003" id="93" index="2" uid="8aa452d0-d94c-4687-872a-d8da736a353a" > +<cdparam x="235" y="77" /> +<sizeparam width="93" height="88" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="DataType" value="Point" /> +<new d="false" /> +<TGConnectingPoint num="0" id="85" /> +<TGConnectingPoint num="1" id="86" /> +<TGConnectingPoint num="2" id="87" /> +<TGConnectingPoint num="3" id="88" /> +<TGConnectingPoint num="4" id="89" /> +<TGConnectingPoint num="5" id="90" /> +<TGConnectingPoint num="6" id="91" /> +<TGConnectingPoint num="7" id="92" /> +<extraparam> +<Attribute access="0" var="0" id="x" value="0" type="8" typeOther="" /> +<Attribute access="0" var="0" id="y" value="0" type="8" typeOther="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5000" id="134" index="3" uid="06d9b9cf-d5f5-46a8-ba3d-befc1c5aff9f" > +<cdparam x="97" y="180" /> +<sizeparam width="218" height="210" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Block" value="B0" /> +<new d="false" /> +<TGConnectingPoint num="0" id="94" /> +<TGConnectingPoint num="1" id="95" /> +<TGConnectingPoint num="2" id="96" /> +<TGConnectingPoint num="3" id="97" /> +<TGConnectingPoint num="4" id="98" /> +<TGConnectingPoint num="5" id="99" /> +<TGConnectingPoint num="6" id="100" /> +<TGConnectingPoint num="7" id="101" /> +<TGConnectingPoint num="8" id="102" /> +<TGConnectingPoint num="9" id="103" /> +<TGConnectingPoint num="10" id="104" /> +<TGConnectingPoint num="11" id="105" /> +<TGConnectingPoint num="12" id="106" /> +<TGConnectingPoint num="13" id="107" /> +<TGConnectingPoint num="14" id="108" /> +<TGConnectingPoint num="15" id="109" /> +<TGConnectingPoint num="16" id="110" /> +<TGConnectingPoint num="17" id="111" /> +<TGConnectingPoint num="18" id="112" /> +<TGConnectingPoint num="19" id="113" /> +<TGConnectingPoint num="20" id="114" /> +<TGConnectingPoint num="21" id="115" /> +<TGConnectingPoint num="22" id="116" /> +<TGConnectingPoint num="23" id="117" /> +<TGConnectingPoint num="24" id="118" /> +<TGConnectingPoint num="25" id="119" /> +<TGConnectingPoint num="26" id="120" /> +<TGConnectingPoint num="27" id="121" /> +<TGConnectingPoint num="28" id="122" /> +<TGConnectingPoint num="29" id="123" /> +<TGConnectingPoint num="30" id="124" /> +<TGConnectingPoint num="31" id="125" /> +<TGConnectingPoint num="32" id="126" /> +<TGConnectingPoint num="33" id="127" /> +<TGConnectingPoint num="34" id="128" /> +<TGConnectingPoint num="35" id="129" /> +<TGConnectingPoint num="36" id="130" /> +<TGConnectingPoint num="37" id="131" /> +<TGConnectingPoint num="38" id="132" /> +<TGConnectingPoint num="39" id="133" /> +<extraparam> +<blockType data="block" color="-4072719" /> +<CryptoBlock value="false" /> +<Attribute access="0" var="0" id="x" value="" type="8" typeOther="" /> +<Attribute access="0" var="0" id="b" value="" type="4" typeOther="" /> +<Attribute access="0" var="0" id="p" value="" type="5" typeOther="Point" /> +<Attribute access="0" var="0" id="y" value="" type="8" typeOther="" /> +<Method value="Point make(int x, int y)" /> +<Method value="int getx(Point p)" /> +<Method value="foo(bool b, Point p, int x)" /> +<Signal value="in in0(int x, Point p, bool b)" attached="true" /> +<Signal value="out out0(int x, Point p, bool b)" attached="true" /> +</extraparam> +</COMPONENT> + + +</AVATARBlockDiagramPanel> + +<AVATARStateMachineDiagramPanel name="B0" minX="16" maxX="3906" minY="16" maxY="2344" zoom="1.5625" > +<CONNECTOR type="5102" id="141" index="0" uid="1146a1cf-2f3c-4f6a-9b58-131f269eed11" > +<cdparam x="359" y="240" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="140" /> +<P1 x="359" y="240" id="175" /> +<P2 x="359" y="309" id="187" /> +<AutomaticDrawing data="true" /> +<new d="false" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="139" index="9" uid="c3a05878-d247-4b3b-b344-d32b2ad13ad7" > +<father id="141" num="0" /> +<cdparam x="379" y="240" /> +<sizeparam width="119" height="48" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="16" maxX="3906" minY="16" maxY="2344" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<new d="false" /> +<TGConnectingPoint num="0" id="135" /> +<TGConnectingPoint num="1" id="136" /> +<TGConnectingPoint num="2" id="137" /> +<TGConnectingPoint num="3" id="138" /> +<extraparam> +<guard value="[ ]" enabled="true"/> +<afterMin value="" enabled="true"/> +<afterMax value="" enabled="true"/> +<extraDelay1 value="" enabled="true"/> +<extraDelay2 value="" enabled="true"/> +<delayDistributionLaw value="0" enabled="true"/> +<computeMin value="" enabled="true"/> +<computeMax value="" enabled="true"/> +<probability value="" enabled="true"/> +<actions value="p = make(x,y)" enabled="true"/> +<actions value="x = getx(p)" enabled="true"/> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="148" index="1" uid="1f01956e-7a84-47df-9fd9-f7a45d1e5f4c" > +<cdparam x="172" y="610" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="3125" maxHeight="3125" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="147" /> +<P1 x="359" y="446" id="164" /> +<P2 x="359" y="493" id="185" /> +<AutomaticDrawing data="true" /> +<new d="false" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="146" index="10" uid="de96ca94-86cb-4bf3-b63e-421a93ccfc67" > +<father id="148" num="0" /> +<cdparam x="172" y="668" /> +<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="3906" minY="10" maxY="2343" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<new d="false" /> +<TGConnectingPoint num="0" id="142" /> +<TGConnectingPoint num="1" id="143" /> +<TGConnectingPoint num="2" id="144" /> +<TGConnectingPoint num="3" id="145" /> +<extraparam> +<guard value="[ ]" enabled="true"/> +<afterMin value="" enabled="true"/> +<afterMax value="" enabled="true"/> +<extraDelay1 value="" enabled="true"/> +<extraDelay2 value="" enabled="true"/> +<delayDistributionLaw value="0" enabled="true"/> +<computeMin value="" enabled="true"/> +<computeMax value="" enabled="true"/> +<probability value="" enabled="true"/> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="155" index="2" uid="1a1f75f0-3055-4d7a-aa5a-4a70634e3484" > +<cdparam x="278" y="537" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="3125" maxHeight="3125" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="154" /> +<P1 x="359" y="354" id="188" /> +<P2 x="359" y="401" id="163" /> +<AutomaticDrawing data="true" /> +<new d="false" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="153" index="11" uid="14ed42f2-4c94-4e0a-9a05-d5bc511d1aa5" > +<father id="155" num="0" /> +<cdparam x="378" y="350" /> +<sizeparam width="107" height="48" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="3906" minY="10" maxY="2343" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<new d="false" /> +<TGConnectingPoint num="0" id="149" /> +<TGConnectingPoint num="1" id="150" /> +<TGConnectingPoint num="2" id="151" /> +<TGConnectingPoint num="3" id="152" /> +<extraparam> +<guard value="[p.x>4 ]" enabled="true"/> +<afterMin value="" enabled="true"/> +<afterMax value="" enabled="true"/> +<extraDelay1 value="" enabled="true"/> +<extraDelay2 value="" enabled="true"/> +<delayDistributionLaw value="0" enabled="true"/> +<computeMin value="" enabled="true"/> +<computeMax value="" enabled="true"/> +<probability value="" enabled="true"/> +<actions value="foo(b,p,x)" enabled="true"/> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="162" index="3" uid="833ce51f-ce8d-402a-819a-526a0071f83a" > +<cdparam x="356" y="181" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="3125" maxHeight="3125" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="161" /> +<P1 x="359" y="74" id="190" /> +<P2 x="359" y="195" id="174" /> +<AutomaticDrawing data="true" /> +<new d="false" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="160" index="12" uid="dd687934-2033-4ae7-a9a0-36d732978073" > +<father id="162" num="0" /> +<cdparam x="380" y="75" /> +<sizeparam width="112" height="94" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="3906" minY="10" maxY="2343" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<new d="false" /> +<TGConnectingPoint num="0" id="156" /> +<TGConnectingPoint num="1" id="157" /> +<TGConnectingPoint num="2" id="158" /> +<TGConnectingPoint num="3" id="159" /> +<extraparam> +<guard value="[ ]" enabled="true"/> +<afterMin value="1" enabled="true"/> +<afterMax value="p.x" enabled="true"/> +<extraDelay1 value="" enabled="true"/> +<extraDelay2 value="" enabled="true"/> +<delayDistributionLaw value="0" enabled="true"/> +<computeMin value="" enabled="true"/> +<computeMax value="" enabled="true"/> +<probability value="" enabled="true"/> +<actions value="x = 1" enabled="true"/> +<actions value="b = true" enabled="true"/> +<actions value="p.x = x" enabled="true"/> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="5104" id="173" index="4" uid="507ab36b-12af-40a9-b4d3-d1687f4ee635" > +<cdparam x="303" y="408" /> +<sizeparam width="113" height="31" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2499" minY="10" maxY="1500" /> +<infoparam name="Receive signal" value="in0(x, p, b)" /> +<new d="false" /> +<TGConnectingPoint num="0" id="163" /> +<TGConnectingPoint num="1" id="164" /> +<TGConnectingPoint num="2" id="165" /> +<TGConnectingPoint num="3" id="166" /> +<TGConnectingPoint num="4" id="167" /> +<TGConnectingPoint num="5" id="168" /> +<TGConnectingPoint num="6" id="169" /> +<TGConnectingPoint num="7" id="170" /> +<TGConnectingPoint num="8" id="171" /> +<TGConnectingPoint num="9" id="172" /> +</COMPONENT> + +<COMPONENT type="5103" id="184" index="5" uid="83bfdfcd-2185-424c-ad19-260ec86acd32" > +<cdparam x="301" y="202" /> +<sizeparam width="116" height="31" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2499" minY="10" maxY="1500" /> +<infoparam name="Send signal" value="out0(x, p, b)" /> +<new d="false" /> +<TGConnectingPoint num="0" id="174" /> +<TGConnectingPoint num="1" id="175" /> +<TGConnectingPoint num="2" id="176" /> +<TGConnectingPoint num="3" id="177" /> +<TGConnectingPoint num="4" id="178" /> +<TGConnectingPoint num="5" id="179" /> +<TGConnectingPoint num="6" id="180" /> +<TGConnectingPoint num="7" id="181" /> +<TGConnectingPoint num="8" id="182" /> +<TGConnectingPoint num="9" id="183" /> +</COMPONENT> + +<COMPONENT type="5101" id="186" index="6" uid="4c83d303-bd2a-4705-9638-d3da5a6d30ba" > +<cdparam x="344" y="500" /> +<sizeparam width="31" height="31" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="16" maxX="3906" minY="16" maxY="2344" /> +<infoparam name="stop state" value="null" /> +<new d="false" /> +<TGConnectingPoint num="0" id="185" /> +</COMPONENT> + +<COMPONENT type="5108" id="189" index="7" uid="c8fc7cc9-d99c-4e2d-b466-4e440c0ba0d7" > +<cdparam x="261" y="316" /> +<sizeparam width="196" height="31" minWidth="46" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2499" minY="10" maxY="1500" /> +<infoparam name="TGComponent" value="null" /> +<new d="false" /> +<TGConnectingPoint num="0" id="187" /> +<TGConnectingPoint num="1" id="188" /> +<extraparam> +<Data variable="x" minValue="0" maxValue="p.y" functionId="0" extraAttribute1="" extraAttribute2="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5100" id="191" index="8" uid="02d7e1f1-28a4-4403-9e64-d6a4786cea7d" > +<cdparam x="348" y="44" /> +<sizeparam width="23" height="23" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2499" minY="10" maxY="1500" /> +<infoparam name="start state" value="null" /> +<new d="false" /> +<TGConnectingPoint num="0" id="190" /> +</COMPONENT> + + +</AVATARStateMachineDiagramPanel> + +<AVATARStateMachineDiagramPanel name="B1" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" > +<COMPONENT type="5100" id="193" index="0" uid="5ee8db59-2cb6-4210-9cac-0363ba606b88" > +<cdparam x="400" y="50" /> +<sizeparam width="15" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="start state" value="null" /> +<new d="false" /> +<TGConnectingPoint num="0" id="192" /> +</COMPONENT> + + +</AVATARStateMachineDiagramPanel> + +<AVATARStateMachineDiagramPanel name="B1_0" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" > +<CONNECTOR type="5102" id="206" index="0" uid="74d4d087-22e6-4735-a473-2b777a473eee" > +<cdparam x="519" y="439" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1280" maxHeight="1280" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="202" /> +<TGConnectingPoint num="1" id="203" /> +<TGConnectingPoint num="2" id="204" /> +<TGConnectingPoint num="3" id="205" /> +<P1 x="484" y="427" id="277" /> +<P2 x="404" y="223" id="386" /> +<Point x="484" y="439" /> +<Point x="535" y="439" /> +<Point x="535" y="223" /> +<AutomaticDrawing data="true" /> +<new d="false" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="194" index="19" uid="36a4768a-9652-43bb-845d-209be2c965da" > +<father id="206" num="0" /> +<cdparam x="484" y="439" /> +<sizeparam width="8" height="8" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="16" maxX="2499" minY="16" maxY="1500" /> +<infoparam name="point " value="null" /> +<new d="false" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="195" index="20" uid="39ef4810-055d-4eaf-a409-784ef6b1a786" > +<father id="206" num="1" /> +<cdparam x="535" y="439" /> +<sizeparam width="8" height="8" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="16" maxX="2499" minY="16" maxY="1500" /> +<infoparam name="point " value="null" /> +<new d="false" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="196" index="21" uid="026cf268-175f-4163-a255-750c9c778d1d" > +<father id="206" num="2" /> +<cdparam x="535" y="223" /> +<sizeparam width="8" height="8" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="16" maxX="2499" minY="16" maxY="1500" /> +<infoparam name="point " value="null" /> +<new d="false" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="201" index="22" uid="7270605d-c970-425f-8bf8-b5065cf75ec2" > +<father id="206" num="3" /> +<cdparam x="438" y="311" /> +<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="16" maxX="2499" minY="16" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<new d="false" /> +<TGConnectingPoint num="0" id="197" /> +<TGConnectingPoint num="1" id="198" /> +<TGConnectingPoint num="2" id="199" /> +<TGConnectingPoint num="3" id="200" /> +<extraparam> +<guard value="[ ]" enabled="true"/> +<afterMin value="" enabled="true"/> +<afterMax value="" enabled="true"/> +<extraDelay1 value="" enabled="true"/> +<extraDelay2 value="" enabled="true"/> +<delayDistributionLaw value="0" enabled="true"/> +<computeMin value="" enabled="true"/> +<computeMax value="" enabled="true"/> +<probability value="" enabled="true"/> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="213" index="1" uid="928bb940-f1ee-436c-9f17-4857b6f782aa" > +<cdparam x="484" y="373" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1280" maxHeight="1280" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="212" /> +<P1 x="485" y="373" id="329" /> +<P2 x="484" y="397" id="276" /> +<AutomaticDrawing data="true" /> +<new d="false" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="211" index="23" uid="0213b0ca-9329-414a-80ad-7921a4d9583b" > +<father id="213" num="0" /> +<cdparam x="501" y="391" /> +<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="16" maxX="2499" minY="16" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<new d="false" /> +<TGConnectingPoint num="0" id="207" /> +<TGConnectingPoint num="1" id="208" /> +<TGConnectingPoint num="2" id="209" /> +<TGConnectingPoint num="3" id="210" /> +<extraparam> +<guard value="[ ]" enabled="true"/> +<afterMin value="" enabled="true"/> +<afterMax value="" enabled="true"/> +<extraDelay1 value="" enabled="true"/> +<extraDelay2 value="" enabled="true"/> +<delayDistributionLaw value="0" enabled="true"/> +<computeMin value="" enabled="true"/> +<computeMax value="" enabled="true"/> +<probability value="" enabled="true"/> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="226" index="2" uid="bc2e2186-ed41-4917-b20c-6144ac1bf4d7" > +<cdparam x="429" y="424" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="222" /> +<TGConnectingPoint num="1" id="223" /> +<TGConnectingPoint num="2" id="224" /> +<TGConnectingPoint num="3" id="225" /> +<P1 x="410" y="428" id="288" /> +<P2 x="398" y="348" id="301" /> +<Point x="409" y="441" /> +<Point x="366" y="441" /> +<Point x="366" y="348" /> +<AutomaticDrawing data="true" /> +<new d="false" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="214" index="24" uid="0de4328e-37e4-435d-81e5-d1d840c7b967" > +<father id="226" num="0" /> +<cdparam x="409" y="441" /> +<sizeparam width="8" height="8" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2499" minY="10" maxY="1499" /> +<infoparam name="point " value="null" /> +<new d="false" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="215" index="25" uid="4cdf03f5-ab6b-4197-961f-5725ef18f4c2" > +<father id="226" num="1" /> +<cdparam x="366" y="441" /> +<sizeparam width="8" height="8" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2499" minY="10" maxY="1499" /> +<infoparam name="point " value="null" /> +<new d="false" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="216" index="26" uid="c81192a6-0500-4f55-b09a-6458263194a2" > +<father id="226" num="2" /> +<cdparam x="366" y="348" /> +<sizeparam width="8" height="8" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2499" minY="10" maxY="1499" /> +<infoparam name="point " value="null" /> +<new d="false" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="221" index="27" uid="fe9df050-f3a4-40b9-be8f-2206708a7e69" > +<father id="226" num="3" /> +<cdparam x="413" y="386" /> +<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2499" minY="10" maxY="1499" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<new d="false" /> +<TGConnectingPoint num="0" id="217" /> +<TGConnectingPoint num="1" id="218" /> +<TGConnectingPoint num="2" id="219" /> +<TGConnectingPoint num="3" id="220" /> +<extraparam> +<guard value="[ ]" enabled="true"/> +<afterMin value="" enabled="true"/> +<afterMax value="" enabled="true"/> +<extraDelay1 value="" enabled="true"/> +<extraDelay2 value="" enabled="true"/> +<delayDistributionLaw value="0" enabled="true"/> +<computeMin value="" enabled="true"/> +<computeMax value="" enabled="true"/> +<probability value="" enabled="true"/> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="233" index="3" uid="fbada9ae-ff5e-4412-920c-379b7fa44bea" > +<cdparam x="422" y="373" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="232" /> +<P1 x="410" y="373" id="326" /> +<P2 x="410" y="398" id="287" /> +<AutomaticDrawing data="true" /> +<new d="false" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="231" index="28" uid="7a339b9b-cfe9-41af-9206-3daa79b45745" > +<father id="233" num="0" /> +<cdparam x="425" y="384" /> +<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2499" minY="10" maxY="1499" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<new d="false" /> +<TGConnectingPoint num="0" id="227" /> +<TGConnectingPoint num="1" id="228" /> +<TGConnectingPoint num="2" id="229" /> +<TGConnectingPoint num="3" id="230" /> +<extraparam> +<guard value="[ ]" enabled="true"/> +<afterMin value="" enabled="true"/> +<afterMax value="" enabled="true"/> +<extraDelay1 value="" enabled="true"/> +<extraDelay2 value="" enabled="true"/> +<delayDistributionLaw value="0" enabled="true"/> +<computeMin value="" enabled="true"/> +<computeMax value="" enabled="true"/> +<probability value="" enabled="true"/> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="240" index="4" uid="90c7cded-4725-4883-8841-04e2104531d6" > +<cdparam x="397" y="278" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="239" /> +<P1 x="409" y="301" id="372" /> +<P2 x="410" y="323" id="314" /> +<AutomaticDrawing data="true" /> +<new d="false" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="238" index="29" uid="2b987670-9d6b-4c27-96f4-d6b309ccfb2e" > +<father id="240" num="0" /> +<cdparam x="396" y="295" /> +<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2499" minY="10" maxY="1499" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<new d="false" /> +<TGConnectingPoint num="0" id="234" /> +<TGConnectingPoint num="1" id="235" /> +<TGConnectingPoint num="2" id="236" /> +<TGConnectingPoint num="3" id="237" /> +<extraparam> +<guard value="[ ]" enabled="true"/> +<afterMin value="" enabled="true"/> +<afterMax value="" enabled="true"/> +<extraDelay1 value="" enabled="true"/> +<extraDelay2 value="" enabled="true"/> +<delayDistributionLaw value="0" enabled="true"/> +<computeMin value="" enabled="true"/> +<computeMax value="" enabled="true"/> +<probability value="" enabled="true"/> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="247" index="5" uid="6fa3f361-9845-4556-8ba4-a3a14d3111d5" > +<cdparam x="358" y="209" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="246" /> +<P1 x="391" y="248" id="413" /> +<P2 x="409" y="271" id="371" /> +<AutomaticDrawing data="true" /> +<new d="false" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="245" index="30" uid="3df7dee5-1456-4a30-9e72-50704be7af2b" > +<father id="247" num="0" /> +<cdparam x="377" y="228" /> +<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2499" minY="10" maxY="1499" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<new d="false" /> +<TGConnectingPoint num="0" id="241" /> +<TGConnectingPoint num="1" id="242" /> +<TGConnectingPoint num="2" id="243" /> +<TGConnectingPoint num="3" id="244" /> +<extraparam> +<guard value="[ ]" enabled="true"/> +<afterMin value="" enabled="true"/> +<afterMax value="" enabled="true"/> +<extraDelay1 value="" enabled="true"/> +<extraDelay2 value="" enabled="true"/> +<delayDistributionLaw value="0" enabled="true"/> +<computeMin value="" enabled="true"/> +<computeMax value="" enabled="true"/> +<probability value="" enabled="true"/> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="254" index="6" uid="08f30cae-8315-4af1-ba7e-c7b1d755e30f" > +<cdparam x="295" y="209" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="253" /> +<P1 x="316" y="248" id="410" /> +<P2 x="298" y="271" id="468" /> +<AutomaticDrawing data="true" /> +<new d="false" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="252" index="31" uid="50d6509f-dd5f-4b32-9fa5-cf9bf9197a97" > +<father id="254" num="0" /> +<cdparam x="216" y="227" /> +<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2499" minY="10" maxY="1499" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<new d="false" /> +<TGConnectingPoint num="0" id="248" /> +<TGConnectingPoint num="1" id="249" /> +<TGConnectingPoint num="2" id="250" /> +<TGConnectingPoint num="3" id="251" /> +<extraparam> +<guard value="[ ]" enabled="true"/> +<afterMin value="" enabled="true"/> +<afterMax value="" enabled="true"/> +<extraDelay1 value="" enabled="true"/> +<extraDelay2 value="" enabled="true"/> +<delayDistributionLaw value="0" enabled="true"/> +<computeMin value="" enabled="true"/> +<computeMax value="" enabled="true"/> +<probability value="" enabled="true"/> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="261" index="7" uid="5c51932f-46f4-459a-9797-88581a319459" > +<cdparam x="292" y="226" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="260" /> +<P1 x="298" y="299" id="469" /> +<P2 x="298" y="345" id="455" /> +<AutomaticDrawing data="true" /> +<new d="false" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="259" index="32" uid="ea67405d-8c98-415c-9bf0-24fdf4cb37c4" > +<father id="261" num="0" /> +<cdparam x="292" y="242" /> +<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2499" minY="10" maxY="1499" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<new d="false" /> +<TGConnectingPoint num="0" id="255" /> +<TGConnectingPoint num="1" id="256" /> +<TGConnectingPoint num="2" id="257" /> +<TGConnectingPoint num="3" id="258" /> +<extraparam> +<guard value="[ ]" enabled="true"/> +<afterMin value="" enabled="true"/> +<afterMax value="" enabled="true"/> +<extraDelay1 value="" enabled="true"/> +<extraDelay2 value="" enabled="true"/> +<delayDistributionLaw value="0" enabled="true"/> +<computeMin value="" enabled="true"/> +<computeMax value="" enabled="true"/> +<probability value="" enabled="true"/> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="268" index="8" uid="9fbaf0a3-016c-40cc-952d-2d93b5149e83" > +<cdparam x="292" y="163" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1280" maxHeight="1280" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="267" /> +<P1 x="353" y="178" id="479" /> +<P2 x="354" y="198" id="383" /> +<AutomaticDrawing data="true" /> +<new d="false" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="266" index="33" uid="ad8b960b-ba33-44a2-9bb8-9ea351468048" > +<father id="268" num="0" /> +<cdparam x="288" y="112" /> +<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="16" maxX="2497" minY="16" maxY="1499" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<new d="false" /> +<TGConnectingPoint num="0" id="262" /> +<TGConnectingPoint num="1" id="263" /> +<TGConnectingPoint num="2" id="264" /> +<TGConnectingPoint num="3" id="265" /> +<extraparam> +<guard value="[ ]" enabled="true"/> +<afterMin value="" enabled="true"/> +<afterMax value="" enabled="true"/> +<extraDelay1 value="" enabled="true"/> +<extraDelay2 value="" enabled="true"/> +<delayDistributionLaw value="0" enabled="true"/> +<computeMin value="" enabled="true"/> +<computeMax value="" enabled="true"/> +<probability value="" enabled="true"/> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="275" index="9" uid="fd4f056d-39b0-4db4-b956-fe6fd3013328" > +<cdparam x="298" y="285" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1280" maxHeight="1280" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="274" /> +<P1 x="298" y="373" id="456" /> +<P2 x="298" y="423" id="466" /> +<AutomaticDrawing data="true" /> +<new d="false" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="273" index="34" uid="80004114-d230-4100-8abd-0089257c3b74" > +<father id="275" num="0" /> +<cdparam x="297" y="305" /> +<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="16" maxX="2497" minY="16" maxY="1499" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<new d="false" /> +<TGConnectingPoint num="0" id="269" /> +<TGConnectingPoint num="1" id="270" /> +<TGConnectingPoint num="2" id="271" /> +<TGConnectingPoint num="3" id="272" /> +<extraparam> +<guard value="[ ]" enabled="true"/> +<afterMin value="" enabled="true"/> +<afterMax value="" enabled="true"/> +<extraDelay1 value="" enabled="true"/> +<extraDelay2 value="" enabled="true"/> +<delayDistributionLaw value="0" enabled="true"/> +<computeMin value="" enabled="true"/> +<computeMax value="" enabled="true"/> +<probability value="" enabled="true"/> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="5111" id="286" index="10" uid="62c92403-5ee8-445e-bf96-3e600f59a4b9" > +<cdparam x="451" y="402" /> +<sizeparam width="66" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Reset timer" value="expire(t)" /> +<new d="false" /> +<TGConnectingPoint num="0" id="276" /> +<TGConnectingPoint num="1" id="277" /> +<TGConnectingPoint num="2" id="278" /> +<TGConnectingPoint num="3" id="279" /> +<TGConnectingPoint num="4" id="280" /> +<TGConnectingPoint num="5" id="281" /> +<TGConnectingPoint num="6" id="282" /> +<TGConnectingPoint num="7" id="283" /> +<TGConnectingPoint num="8" id="284" /> +<TGConnectingPoint num="9" id="285" /> +</COMPONENT> + +<COMPONENT type="5110" id="297" index="11" uid="491c316f-9dd9-4849-979f-c56b1fd77a3c" > +<cdparam x="385" y="403" /> +<sizeparam width="51" height="20" minWidth="40" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Reset timer" value="reset(t)" /> +<new d="false" /> +<TGConnectingPoint num="0" id="287" /> +<TGConnectingPoint num="1" id="288" /> +<TGConnectingPoint num="2" id="289" /> +<TGConnectingPoint num="3" id="290" /> +<TGConnectingPoint num="4" id="291" /> +<TGConnectingPoint num="5" id="292" /> +<TGConnectingPoint num="6" id="293" /> +<TGConnectingPoint num="7" id="294" /> +<TGConnectingPoint num="8" id="295" /> +<TGConnectingPoint num="9" id="296" /> +</COMPONENT> + +<COMPONENT type="5106" id="370" index="12" uid="153cbc7a-51c9-4403-b1fa-af4ed8ae661e" > +<cdparam x="398" y="323" /> +<sizeparam width="100" height="50" minWidth="54" minHeight="40" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="state" value="state2" /> +<new d="false" /> +<TGConnectingPoint num="0" id="298" /> +<TGConnectingPoint num="1" id="299" /> +<TGConnectingPoint num="2" id="300" /> +<TGConnectingPoint num="3" id="301" /> +<TGConnectingPoint num="4" id="302" /> +<TGConnectingPoint num="5" id="303" /> +<TGConnectingPoint num="6" id="304" /> +<TGConnectingPoint num="7" id="305" /> +<TGConnectingPoint num="8" id="306" /> +<TGConnectingPoint num="9" id="307" /> +<TGConnectingPoint num="10" id="308" /> +<TGConnectingPoint num="11" id="309" /> +<TGConnectingPoint num="12" id="310" /> +<TGConnectingPoint num="13" id="311" /> +<TGConnectingPoint num="14" id="312" /> +<TGConnectingPoint num="15" id="313" /> +<TGConnectingPoint num="16" id="314" /> +<TGConnectingPoint num="17" id="315" /> +<TGConnectingPoint num="18" id="316" /> +<TGConnectingPoint num="19" id="317" /> +<TGConnectingPoint num="20" id="318" /> +<TGConnectingPoint num="21" id="319" /> +<TGConnectingPoint num="22" id="320" /> +<TGConnectingPoint num="23" id="321" /> +<TGConnectingPoint num="24" id="322" /> +<TGConnectingPoint num="25" id="323" /> +<TGConnectingPoint num="26" id="324" /> +<TGConnectingPoint num="27" id="325" /> +<TGConnectingPoint num="28" id="326" /> +<TGConnectingPoint num="29" id="327" /> +<TGConnectingPoint num="30" id="328" /> +<TGConnectingPoint num="31" id="329" /> +<TGConnectingPoint num="32" id="330" /> +<TGConnectingPoint num="33" id="331" /> +<TGConnectingPoint num="34" id="332" /> +<TGConnectingPoint num="35" id="333" /> +<TGConnectingPoint num="36" id="334" /> +<TGConnectingPoint num="37" id="335" /> +<TGConnectingPoint num="38" id="336" /> +<TGConnectingPoint num="39" id="337" /> +<TGConnectingPoint num="40" id="338" /> +<TGConnectingPoint num="41" id="339" /> +<TGConnectingPoint num="42" id="340" /> +<TGConnectingPoint num="43" id="341" /> +<TGConnectingPoint num="44" id="342" /> +<TGConnectingPoint num="45" id="343" /> +<TGConnectingPoint num="46" id="344" /> +<TGConnectingPoint num="47" id="345" /> +<TGConnectingPoint num="48" id="346" /> +<TGConnectingPoint num="49" id="347" /> +<TGConnectingPoint num="50" id="348" /> +<TGConnectingPoint num="51" id="349" /> +<TGConnectingPoint num="52" id="350" /> +<TGConnectingPoint num="53" id="351" /> +<TGConnectingPoint num="54" id="352" /> +<TGConnectingPoint num="55" id="353" /> +<TGConnectingPoint num="56" id="354" /> +<TGConnectingPoint num="57" id="355" /> +<TGConnectingPoint num="58" id="356" /> +<TGConnectingPoint num="59" id="357" /> +<TGConnectingPoint num="60" id="358" /> +<TGConnectingPoint num="61" id="359" /> +<TGConnectingPoint num="62" id="360" /> +<TGConnectingPoint num="63" id="361" /> +<TGConnectingPoint num="64" id="362" /> +<TGConnectingPoint num="65" id="363" /> +<TGConnectingPoint num="66" id="364" /> +<TGConnectingPoint num="67" id="365" /> +<TGConnectingPoint num="68" id="366" /> +<TGConnectingPoint num="69" id="367" /> +<TGConnectingPoint num="70" id="368" /> +<TGConnectingPoint num="71" id="369" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5109" id="381" index="13" uid="83cdd050-a535-466f-a3bc-8910fe1b1c16" > +<cdparam x="364" y="276" /> +<sizeparam width="91" height="20" minWidth="40" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Set timer" value="setTimer(t,10)" /> +<new d="false" /> +<TGConnectingPoint num="0" id="371" /> +<TGConnectingPoint num="1" id="372" /> +<TGConnectingPoint num="2" id="373" /> +<TGConnectingPoint num="3" id="374" /> +<TGConnectingPoint num="4" id="375" /> +<TGConnectingPoint num="5" id="376" /> +<TGConnectingPoint num="6" id="377" /> +<TGConnectingPoint num="7" id="378" /> +<TGConnectingPoint num="8" id="379" /> +<TGConnectingPoint num="9" id="380" /> +</COMPONENT> + +<COMPONENT type="5106" id="454" index="14" uid="2d76bc2d-5cb6-43ee-8143-f800f7bc2c0f" > +<cdparam x="304" y="198" /> +<sizeparam width="100" height="50" minWidth="54" minHeight="40" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="state" value="state1" /> +<new d="false" /> +<TGConnectingPoint num="0" id="382" /> +<TGConnectingPoint num="1" id="383" /> +<TGConnectingPoint num="2" id="384" /> +<TGConnectingPoint num="3" id="385" /> +<TGConnectingPoint num="4" id="386" /> +<TGConnectingPoint num="5" id="387" /> +<TGConnectingPoint num="6" id="388" /> +<TGConnectingPoint num="7" id="389" /> +<TGConnectingPoint num="8" id="390" /> +<TGConnectingPoint num="9" id="391" /> +<TGConnectingPoint num="10" id="392" /> +<TGConnectingPoint num="11" id="393" /> +<TGConnectingPoint num="12" id="394" /> +<TGConnectingPoint num="13" id="395" /> +<TGConnectingPoint num="14" id="396" /> +<TGConnectingPoint num="15" id="397" /> +<TGConnectingPoint num="16" id="398" /> +<TGConnectingPoint num="17" id="399" /> +<TGConnectingPoint num="18" id="400" /> +<TGConnectingPoint num="19" id="401" /> +<TGConnectingPoint num="20" id="402" /> +<TGConnectingPoint num="21" id="403" /> +<TGConnectingPoint num="22" id="404" /> +<TGConnectingPoint num="23" id="405" /> +<TGConnectingPoint num="24" id="406" /> +<TGConnectingPoint num="25" id="407" /> +<TGConnectingPoint num="26" id="408" /> +<TGConnectingPoint num="27" id="409" /> +<TGConnectingPoint num="28" id="410" /> +<TGConnectingPoint num="29" id="411" /> +<TGConnectingPoint num="30" id="412" /> +<TGConnectingPoint num="31" id="413" /> +<TGConnectingPoint num="32" id="414" /> +<TGConnectingPoint num="33" id="415" /> +<TGConnectingPoint num="34" id="416" /> +<TGConnectingPoint num="35" id="417" /> +<TGConnectingPoint num="36" id="418" /> +<TGConnectingPoint num="37" id="419" /> +<TGConnectingPoint num="38" id="420" /> +<TGConnectingPoint num="39" id="421" /> +<TGConnectingPoint num="40" id="422" /> +<TGConnectingPoint num="41" id="423" /> +<TGConnectingPoint num="42" id="424" /> +<TGConnectingPoint num="43" id="425" /> +<TGConnectingPoint num="44" id="426" /> +<TGConnectingPoint num="45" id="427" /> +<TGConnectingPoint num="46" id="428" /> +<TGConnectingPoint num="47" id="429" /> +<TGConnectingPoint num="48" id="430" /> +<TGConnectingPoint num="49" id="431" /> +<TGConnectingPoint num="50" id="432" /> +<TGConnectingPoint num="51" id="433" /> +<TGConnectingPoint num="52" id="434" /> +<TGConnectingPoint num="53" id="435" /> +<TGConnectingPoint num="54" id="436" /> +<TGConnectingPoint num="55" id="437" /> +<TGConnectingPoint num="56" id="438" /> +<TGConnectingPoint num="57" id="439" /> +<TGConnectingPoint num="58" id="440" /> +<TGConnectingPoint num="59" id="441" /> +<TGConnectingPoint num="60" id="442" /> +<TGConnectingPoint num="61" id="443" /> +<TGConnectingPoint num="62" id="444" /> +<TGConnectingPoint num="63" id="445" /> +<TGConnectingPoint num="64" id="446" /> +<TGConnectingPoint num="65" id="447" /> +<TGConnectingPoint num="66" id="448" /> +<TGConnectingPoint num="67" id="449" /> +<TGConnectingPoint num="68" id="450" /> +<TGConnectingPoint num="69" id="451" /> +<TGConnectingPoint num="70" id="452" /> +<TGConnectingPoint num="71" id="453" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5103" id="465" index="15" uid="2defadde-3ad2-4986-8807-b8bca2d42df1" > +<cdparam x="260" y="350" /> +<sizeparam width="76" height="18" minWidth="29" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Send signal" value="out1(x, p, b)" /> +<new d="false" /> +<TGConnectingPoint num="0" id="455" /> +<TGConnectingPoint num="1" id="456" /> +<TGConnectingPoint num="2" id="457" /> +<TGConnectingPoint num="3" id="458" /> +<TGConnectingPoint num="4" id="459" /> +<TGConnectingPoint num="5" id="460" /> +<TGConnectingPoint num="6" id="461" /> +<TGConnectingPoint num="7" id="462" /> +<TGConnectingPoint num="8" id="463" /> +<TGConnectingPoint num="9" id="464" /> +</COMPONENT> + +<COMPONENT type="5101" id="467" index="16" uid="3320dfa8-dc96-4387-a94f-25c3a07759ae" > +<cdparam x="289" y="428" /> +<sizeparam width="18" height="18" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="stop state" value="null" /> +<new d="false" /> +<TGConnectingPoint num="0" id="466" /> +</COMPONENT> + +<COMPONENT type="5104" id="478" index="17" uid="6223a7dd-5783-455b-b937-fbe533f02445" > +<cdparam x="261" y="276" /> +<sizeparam width="74" height="18" minWidth="39" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Receive signal" value="in1(x, p, b)" /> +<new d="false" /> +<TGConnectingPoint num="0" id="468" /> +<TGConnectingPoint num="1" id="469" /> +<TGConnectingPoint num="2" id="470" /> +<TGConnectingPoint num="3" id="471" /> +<TGConnectingPoint num="4" id="472" /> +<TGConnectingPoint num="5" id="473" /> +<TGConnectingPoint num="6" id="474" /> +<TGConnectingPoint num="7" id="475" /> +<TGConnectingPoint num="8" id="476" /> +<TGConnectingPoint num="9" id="477" /> +</COMPONENT> + +<COMPONENT type="5100" id="480" index="18" uid="29fdf48a-fe0e-45e1-b3e2-a04dbeaf94de" > +<cdparam x="347" y="160" /> +<sizeparam width="13" height="13" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="start state" value="null" /> +<new d="false" /> +<TGConnectingPoint num="0" id="479" /> +</COMPONENT> + + +</AVATARStateMachineDiagramPanel> + +</Modeling> + + + + +</TURTLEGMODELING> \ No newline at end of file diff --git a/doc/avatarSysMLV2/example_models/before_after_transfo.xml b/doc/avatarSysMLV2/example_models/before_after_transfo.xml new file mode 100644 index 0000000000..df00f5e60a --- /dev/null +++ b/doc/avatarSysMLV2/example_models/before_after_transfo.xml @@ -0,0 +1,2119 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<TURTLEGMODELING version="3.0 beta" ANIMATE_INTERACTIVE_SIMULATION="true" ACTIVATE_PENALTIES="true" UPDATE_INFORMATION_DIPLO_SIM="false" ANIMATE_WITH_INFO_DIPLO_SIM="true" OPEN_DIAG_DIPLO_SIM="false" LAST_SELECTED_MAIN_TAB="0" LAST_SELECTED_SUB_TAB="1" TAGS="deactivated root" SHOW_TAGS="true"> + +<Modeling type="AVATAR Design" nameTab="Design" tabs="Design$Block" > +<AVATARBlockDiagramPanel name="Block Diagram" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" > +<MainCode value="void __user_init() {"/> +<MainCode value="}"/> +<Optimized value="true" /> +<considerTimingOperators value="true" /> +<Validated value="" /> +<Ignored value="" /> + +<COMPONENT type="5000" id="41" index="0" uid="6b6281ce-3885-4278-9932-4a303a28b933" > +<cdparam x="194" y="135" /> +<sizeparam width="250" height="200" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Block" value="Block" /> +<new d="false" /> +<TGConnectingPoint num="0" id="1" /> +<TGConnectingPoint num="1" id="2" /> +<TGConnectingPoint num="2" id="3" /> +<TGConnectingPoint num="3" id="4" /> +<TGConnectingPoint num="4" id="5" /> +<TGConnectingPoint num="5" id="6" /> +<TGConnectingPoint num="6" id="7" /> +<TGConnectingPoint num="7" id="8" /> +<TGConnectingPoint num="8" id="9" /> +<TGConnectingPoint num="9" id="10" /> +<TGConnectingPoint num="10" id="11" /> +<TGConnectingPoint num="11" id="12" /> +<TGConnectingPoint num="12" id="13" /> +<TGConnectingPoint num="13" id="14" /> +<TGConnectingPoint num="14" id="15" /> +<TGConnectingPoint num="15" id="16" /> +<TGConnectingPoint num="16" id="17" /> +<TGConnectingPoint num="17" id="18" /> +<TGConnectingPoint num="18" id="19" /> +<TGConnectingPoint num="19" id="20" /> +<TGConnectingPoint num="20" id="21" /> +<TGConnectingPoint num="21" id="22" /> +<TGConnectingPoint num="22" id="23" /> +<TGConnectingPoint num="23" id="24" /> +<TGConnectingPoint num="24" id="25" /> +<TGConnectingPoint num="25" id="26" /> +<TGConnectingPoint num="26" id="27" /> +<TGConnectingPoint num="27" id="28" /> +<TGConnectingPoint num="28" id="29" /> +<TGConnectingPoint num="29" id="30" /> +<TGConnectingPoint num="30" id="31" /> +<TGConnectingPoint num="31" id="32" /> +<TGConnectingPoint num="32" id="33" /> +<TGConnectingPoint num="33" id="34" /> +<TGConnectingPoint num="34" id="35" /> +<TGConnectingPoint num="35" id="36" /> +<TGConnectingPoint num="36" id="37" /> +<TGConnectingPoint num="37" id="38" /> +<TGConnectingPoint num="38" id="39" /> +<TGConnectingPoint num="39" id="40" /> +<tags value="" /> +<extraparam> +<blockType data="block" color="-4072719" /> +<CryptoBlock value="false" /> +</extraparam> +</COMPONENT> + + +</AVATARBlockDiagramPanel> + +<AVATARStateMachineDiagramPanel name="Block" minX="20" maxX="4883" minY="20" maxY="2930" zoom="1.953125" > +<CONNECTOR type="5102" id="1346" index="0" uid="73fb8e0c-89e1-4b6a-ac41-29d4adb4230a" > +<cdparam x="1267" y="781" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="1347" /> +<P1 x="1259" y="744" id="191" /> +<P2 x="1259" y="800" id="269" /> +<AutomaticDrawing data="true" /> +<new d="false" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1348" index="40" uid="5d6250d7-b29d-4f67-92ad-4ae62f0bbbb0" > +<father id="1346" num="0" /> +<cdparam x="1262" y="813" /> +<sizeparam width="105" height="25" minWidth="0" minHeight="0" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="4882" minY="10" maxY="2928" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<new d="false" /> +<TGConnectingPoint num="0" id="1349" /> +<TGConnectingPoint num="1" id="1350" /> +<TGConnectingPoint num="2" id="1351" /> +<TGConnectingPoint num="3" id="1352" /> +<tags value="" /> +<extraparam> +<guard value="[ ]" enabled="true"/> +<afterMin value="" enabled="true"/> +<afterMax value="" enabled="true"/> +<extraDelay1 value="" enabled="true"/> +<extraDelay2 value="" enabled="true"/> +<delayDistributionLaw value="0" enabled="true"/> +<computeMin value="" enabled="true"/> +<computeMax value="" enabled="true"/> +<probability value="" enabled="true"/> +<userResized /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1339" index="1" uid="4b1039c9-9589-4b4d-95f0-71520ef616f0" > +<cdparam x="1031" y="781" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="1340" /> +<P1 x="1031" y="746" id="1104" /> +<P2 x="1031" y="802" id="291" /> +<AutomaticDrawing data="true" /> +<new d="false" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1341" index="41" uid="a8e5e9d8-4aff-4cbb-aede-97a57ff565b0" > +<father id="1339" num="0" /> +<cdparam x="1031" y="843" /> +<sizeparam width="50" height="25" minWidth="0" minHeight="0" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="4882" minY="10" maxY="2928" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<new d="false" /> +<TGConnectingPoint num="0" id="1342" /> +<TGConnectingPoint num="1" id="1343" /> +<TGConnectingPoint num="2" id="1344" /> +<TGConnectingPoint num="3" id="1345" /> +<tags value="" /> +<extraparam> +<guard value="[ ]" enabled="true"/> +<afterMin value="" enabled="true"/> +<afterMax value="" enabled="true"/> +<extraDelay1 value="" enabled="true"/> +<extraDelay2 value="" enabled="true"/> +<delayDistributionLaw value="0" enabled="true"/> +<computeMin value="" enabled="true"/> +<computeMax value="" enabled="true"/> +<probability value="" enabled="true"/> +<userResized /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1332" index="2" uid="10829090-fe2c-4065-9768-82e439cc4740" > +<cdparam x="789" y="781" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="1333" /> +<P1 x="787" y="746" id="1250" /> +<P2 x="787" y="800" id="313" /> +<AutomaticDrawing data="true" /> +<new d="false" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1334" index="42" uid="ee86341d-c1e3-4e58-9d3a-638edf6c9eea" > +<father id="1332" num="0" /> +<cdparam x="787" y="843" /> +<sizeparam width="50" height="25" minWidth="0" minHeight="0" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="4882" minY="10" maxY="2928" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<new d="false" /> +<TGConnectingPoint num="0" id="1335" /> +<TGConnectingPoint num="1" id="1336" /> +<TGConnectingPoint num="2" id="1337" /> +<TGConnectingPoint num="3" id="1338" /> +<tags value="" /> +<extraparam> +<guard value="[ ]" enabled="true"/> +<afterMin value="" enabled="true"/> +<afterMax value="" enabled="true"/> +<extraDelay1 value="" enabled="true"/> +<extraDelay2 value="" enabled="true"/> +<delayDistributionLaw value="0" enabled="true"/> +<computeMin value="" enabled="true"/> +<computeMax value="" enabled="true"/> +<probability value="" enabled="true"/> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1325" index="3" uid="6c506b76-9233-4f7f-96f5-1cea0cf1c4ef" > +<cdparam x="552" y="779" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="1326" /> +<P1 x="550" y="747" id="118" /> +<P2 x="550" y="799" id="335" /> +<AutomaticDrawing data="true" /> +<new d="false" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1327" index="43" uid="84002eec-0aca-4ad6-8e4a-71e2f46c21f4" > +<father id="1325" num="0" /> +<cdparam x="550" y="841" /> +<sizeparam width="50" height="25" minWidth="0" minHeight="0" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="4882" minY="10" maxY="2928" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<new d="false" /> +<TGConnectingPoint num="0" id="1328" /> +<TGConnectingPoint num="1" id="1329" /> +<TGConnectingPoint num="2" id="1330" /> +<TGConnectingPoint num="3" id="1331" /> +<tags value="" /> +<extraparam> +<guard value="[ ]" enabled="true"/> +<afterMin value="" enabled="true"/> +<afterMax value="" enabled="true"/> +<extraDelay1 value="" enabled="true"/> +<extraDelay2 value="" enabled="true"/> +<delayDistributionLaw value="0" enabled="true"/> +<computeMin value="" enabled="true"/> +<computeMax value="" enabled="true"/> +<probability value="" enabled="true"/> +<userResized /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1318" index="4" uid="023f23ce-c023-4539-be36-1f4148d35c11" > +<cdparam x="308" y="773" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="1319" /> +<P1 x="308" y="746" id="1177" /> +<P2 x="308" y="793" id="649" /> +<AutomaticDrawing data="true" /> +<new d="false" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1320" index="44" uid="180afc48-c731-4c05-9e8c-c89438d17a78" > +<father id="1318" num="0" /> +<cdparam x="310" y="839" /> +<sizeparam width="50" height="25" minWidth="0" minHeight="0" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="4882" minY="10" maxY="2928" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<new d="false" /> +<TGConnectingPoint num="0" id="1321" /> +<TGConnectingPoint num="1" id="1322" /> +<TGConnectingPoint num="2" id="1323" /> +<TGConnectingPoint num="3" id="1324" /> +<tags value="" /> +<extraparam> +<guard value="[ ]" enabled="true"/> +<afterMin value="" enabled="true"/> +<afterMax value="" enabled="true"/> +<extraDelay1 value="" enabled="true"/> +<extraDelay2 value="" enabled="true"/> +<delayDistributionLaw value="0" enabled="true"/> +<computeMin value="" enabled="true"/> +<computeMax value="" enabled="true"/> +<probability value="" enabled="true"/> +<userResized /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="111" index="5" uid="850446ae-ff73-4eda-b832-a579f679611f" > +<cdparam x="1275" y="583" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="110" /> +<P1 x="1259" y="583" id="425" /> +<P2 x="1259" y="647" id="186" /> +<AutomaticDrawing data="true" /> +<new d="false" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="109" index="45" uid="b11a72dc-7991-4d72-a865-4b94d3627003" > +<father id="111" num="0" /> +<cdparam x="1273" y="595" /> +<sizeparam width="103" height="30" minWidth="1" minHeight="1" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="4882" minY="10" maxY="2928" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<new d="false" /> +<TGConnectingPoint num="0" id="105" /> +<TGConnectingPoint num="1" id="106" /> +<TGConnectingPoint num="2" id="107" /> +<TGConnectingPoint num="3" id="108" /> +<tags value="" /> +<extraparam> +<guard value="[ ]" enabled="true"/> +<afterMin value="" enabled="true"/> +<afterMax value="" enabled="true"/> +<extraDelay1 value="" enabled="true"/> +<extraDelay2 value="" enabled="true"/> +<delayDistributionLaw value="0" enabled="true"/> +<computeMin value="" enabled="true"/> +<computeMax value="" enabled="true"/> +<probability value="" enabled="true"/> +<actions value="action_a" enabled="true"/> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="104" index="6" uid="89fd4b50-be9b-4443-b207-37e0a6414ae5" > +<cdparam x="1269" y="212" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="103" /> +<P1 x="1253" y="212" id="352" /> +<P2 x="1253" y="276" id="258" /> +<AutomaticDrawing data="true" /> +<new d="false" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="102" index="46" uid="097a5dd8-811c-4a8e-b31f-70de6e4788f5" > +<father id="104" num="0" /> +<cdparam x="1267" y="224" /> +<sizeparam width="103" height="30" minWidth="1" minHeight="1" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="4882" minY="10" maxY="2928" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<new d="false" /> +<TGConnectingPoint num="0" id="98" /> +<TGConnectingPoint num="1" id="99" /> +<TGConnectingPoint num="2" id="100" /> +<TGConnectingPoint num="3" id="101" /> +<tags value="" /> +<extraparam> +<guard value="[ ]" enabled="true"/> +<afterMin value="" enabled="true"/> +<afterMax value="" enabled="true"/> +<extraDelay1 value="" enabled="true"/> +<extraDelay2 value="" enabled="true"/> +<delayDistributionLaw value="0" enabled="true"/> +<computeMin value="" enabled="true"/> +<computeMax value="" enabled="true"/> +<probability value="" enabled="true"/> +<actions value="action_a" enabled="true"/> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="97" index="7" uid="cbe9c048-abe6-496b-83b3-43b468108e1f" > +<cdparam x="1046" y="583" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="96" /> +<P1 x="1031" y="583" id="571" /> +<P2 x="1031" y="649" id="1099" /> +<AutomaticDrawing data="true" /> +<new d="false" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="95" index="47" uid="ea69ee7b-ca89-4d78-aec6-74b95f859f15" > +<father id="97" num="0" /> +<cdparam x="1044" y="595" /> +<sizeparam width="103" height="30" minWidth="1" minHeight="1" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="4882" minY="10" maxY="2928" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<new d="false" /> +<TGConnectingPoint num="0" id="91" /> +<TGConnectingPoint num="1" id="92" /> +<TGConnectingPoint num="2" id="93" /> +<TGConnectingPoint num="3" id="94" /> +<tags value="" /> +<extraparam> +<guard value="[ ]" enabled="true"/> +<afterMin value="" enabled="true"/> +<afterMax value="" enabled="true"/> +<extraDelay1 value="" enabled="true"/> +<extraDelay2 value="" enabled="true"/> +<delayDistributionLaw value="0" enabled="true"/> +<computeMin value="" enabled="true"/> +<computeMax value="" enabled="true"/> +<probability value="" enabled="true"/> +<actions value="action_a" enabled="true"/> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="90" index="8" uid="70f8a284-128a-43cb-8a0a-b0eea416e542" > +<cdparam x="1041" y="212" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="89" /> +<P1 x="1025" y="212" id="498" /> +<P2 x="1025" y="276" id="280" /> +<AutomaticDrawing data="true" /> +<new d="false" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="88" index="48" uid="4e3559f3-e413-43db-bde4-c6c25c6589ae" > +<father id="90" num="0" /> +<cdparam x="1039" y="224" /> +<sizeparam width="103" height="30" minWidth="1" minHeight="1" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="4882" minY="10" maxY="2928" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<new d="false" /> +<TGConnectingPoint num="0" id="84" /> +<TGConnectingPoint num="1" id="85" /> +<TGConnectingPoint num="2" id="86" /> +<TGConnectingPoint num="3" id="87" /> +<tags value="" /> +<extraparam> +<guard value="[ ]" enabled="true"/> +<afterMin value="" enabled="true"/> +<afterMax value="" enabled="true"/> +<extraDelay1 value="" enabled="true"/> +<extraDelay2 value="" enabled="true"/> +<delayDistributionLaw value="0" enabled="true"/> +<computeMin value="" enabled="true"/> +<computeMax value="" enabled="true"/> +<probability value="" enabled="true"/> +<actions value="action_a" enabled="true"/> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="83" index="9" uid="440250d3-d083-412e-a29a-84e736fb9a67" > +<cdparam x="802" y="582" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="82" /> +<P1 x="787" y="581" id="739" /> +<P2 x="787" y="649" id="1245" /> +<AutomaticDrawing data="true" /> +<new d="false" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="81" index="49" uid="f9b311ce-5e54-4433-98eb-1da6eaaf6226" > +<father id="83" num="0" /> +<cdparam x="800" y="593" /> +<sizeparam width="103" height="30" minWidth="1" minHeight="1" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="4882" minY="10" maxY="2928" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<new d="false" /> +<TGConnectingPoint num="0" id="77" /> +<TGConnectingPoint num="1" id="78" /> +<TGConnectingPoint num="2" id="79" /> +<TGConnectingPoint num="3" id="80" /> +<tags value="" /> +<extraparam> +<guard value="[ ]" enabled="true"/> +<afterMin value="" enabled="true"/> +<afterMax value="" enabled="true"/> +<extraDelay1 value="" enabled="true"/> +<extraDelay2 value="" enabled="true"/> +<delayDistributionLaw value="0" enabled="true"/> +<computeMin value="" enabled="true"/> +<computeMax value="" enabled="true"/> +<probability value="" enabled="true"/> +<actions value="action_a" enabled="true"/> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="76" index="10" uid="73fcf60c-3aa5-4e04-90af-b0b1e6161606" > +<cdparam x="796" y="210" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="75" /> +<P1 x="781" y="210" id="666" /> +<P2 x="781" y="278" id="302" /> +<AutomaticDrawing data="true" /> +<new d="false" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="74" index="50" uid="9530a164-d8e6-4e06-99bf-a230e4aec3d6" > +<father id="76" num="0" /> +<cdparam x="794" y="222" /> +<sizeparam width="103" height="30" minWidth="1" minHeight="1" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="4882" minY="10" maxY="2928" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<new d="false" /> +<TGConnectingPoint num="0" id="70" /> +<TGConnectingPoint num="1" id="71" /> +<TGConnectingPoint num="2" id="72" /> +<TGConnectingPoint num="3" id="73" /> +<tags value="" /> +<extraparam> +<guard value="[ ]" enabled="true"/> +<afterMin value="" enabled="true"/> +<afterMax value="" enabled="true"/> +<extraDelay1 value="" enabled="true"/> +<extraDelay2 value="" enabled="true"/> +<delayDistributionLaw value="0" enabled="true"/> +<computeMin value="" enabled="true"/> +<computeMax value="" enabled="true"/> +<probability value="" enabled="true"/> +<actions value="action_a" enabled="true"/> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="69" index="11" uid="a9648a76-375a-47aa-91e6-13d2ca5d11ef" > +<cdparam x="566" y="580" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="68" /> +<P1 x="550" y="579" id="1031" /> +<P2 x="550" y="650" id="113" /> +<AutomaticDrawing data="true" /> +<new d="false" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="67" index="51" uid="63aeaaf1-7187-4f35-8eec-abfa6b60eeaf" > +<father id="69" num="0" /> +<cdparam x="564" y="591" /> +<sizeparam width="103" height="30" minWidth="1" minHeight="1" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="4882" minY="10" maxY="2928" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<new d="false" /> +<TGConnectingPoint num="0" id="63" /> +<TGConnectingPoint num="1" id="64" /> +<TGConnectingPoint num="2" id="65" /> +<TGConnectingPoint num="3" id="66" /> +<tags value="" /> +<extraparam> +<guard value="[ ]" enabled="true"/> +<afterMin value="" enabled="true"/> +<afterMax value="" enabled="true"/> +<extraDelay1 value="" enabled="true"/> +<extraDelay2 value="" enabled="true"/> +<delayDistributionLaw value="0" enabled="true"/> +<computeMin value="" enabled="true"/> +<computeMax value="" enabled="true"/> +<probability value="" enabled="true"/> +<actions value="action_a" enabled="true"/> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="62" index="12" uid="81983ee6-8230-486d-ba44-080146973ff2" > +<cdparam x="560" y="208" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="61" /> +<P1 x="544" y="208" id="958" /> +<P2 x="544" y="277" id="324" /> +<AutomaticDrawing data="true" /> +<new d="false" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="60" index="52" uid="54496473-1177-417e-bfd9-42a385dc6402" > +<father id="62" num="0" /> +<cdparam x="558" y="220" /> +<sizeparam width="103" height="30" minWidth="1" minHeight="1" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="4882" minY="10" maxY="2928" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<new d="false" /> +<TGConnectingPoint num="0" id="56" /> +<TGConnectingPoint num="1" id="57" /> +<TGConnectingPoint num="2" id="58" /> +<TGConnectingPoint num="3" id="59" /> +<tags value="" /> +<extraparam> +<guard value="[ ]" enabled="true"/> +<afterMin value="" enabled="true"/> +<afterMax value="" enabled="true"/> +<extraDelay1 value="" enabled="true"/> +<extraDelay2 value="" enabled="true"/> +<delayDistributionLaw value="0" enabled="true"/> +<computeMin value="" enabled="true"/> +<computeMax value="" enabled="true"/> +<probability value="" enabled="true"/> +<actions value="action_a" enabled="true"/> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="55" index="13" uid="36cc7b6a-f3be-4f76-9c4b-a4f7ea074168" > +<cdparam x="324" y="582" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="54" /> +<P1 x="308" y="581" id="885" /> +<P2 x="308" y="649" id="1172" /> +<AutomaticDrawing data="true" /> +<new d="false" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="53" index="53" uid="b3a7ac55-de80-499d-b6c4-06fca39128b0" > +<father id="55" num="0" /> +<cdparam x="322" y="593" /> +<sizeparam width="103" height="30" minWidth="1" minHeight="1" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="4882" minY="10" maxY="2928" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<new d="false" /> +<TGConnectingPoint num="0" id="49" /> +<TGConnectingPoint num="1" id="50" /> +<TGConnectingPoint num="2" id="51" /> +<TGConnectingPoint num="3" id="52" /> +<tags value="" /> +<extraparam> +<guard value="[ ]" enabled="true"/> +<afterMin value="" enabled="true"/> +<afterMax value="" enabled="true"/> +<extraDelay1 value="" enabled="true"/> +<extraDelay2 value="" enabled="true"/> +<delayDistributionLaw value="0" enabled="true"/> +<computeMin value="" enabled="true"/> +<computeMax value="" enabled="true"/> +<probability value="" enabled="true"/> +<actions value="action_a" enabled="true"/> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="48" index="14" uid="b7172bfc-a895-4a88-af6e-83624e2eb41d" > +<cdparam x="318" y="210" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="47" /> +<P1 x="302" y="210" id="812" /> +<P2 x="302" y="274" id="638" /> +<AutomaticDrawing data="true" /> +<new d="false" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="46" index="54" uid="94b89568-387d-4ee1-9f07-9c1783d13371" > +<father id="48" num="0" /> +<cdparam x="316" y="222" /> +<sizeparam width="103" height="30" minWidth="0" minHeight="0" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="4882" minY="10" maxY="2928" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<new d="false" /> +<TGConnectingPoint num="0" id="42" /> +<TGConnectingPoint num="1" id="43" /> +<TGConnectingPoint num="2" id="44" /> +<TGConnectingPoint num="3" id="45" /> +<tags value="" /> +<extraparam> +<guard value="[ ]" enabled="true"/> +<afterMin value="" enabled="true"/> +<afterMax value="" enabled="true"/> +<extraDelay1 value="" enabled="true"/> +<extraDelay2 value="" enabled="true"/> +<delayDistributionLaw value="0" enabled="true"/> +<computeMin value="" enabled="true"/> +<computeMax value="" enabled="true"/> +<probability value="" enabled="true"/> +<actions value="action_a" enabled="true"/> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="5106" id="257" index="15" uid="95efbf26-486e-433a-b430-335796e00751" > +<cdparam x="1152" y="647" /> +<sizeparam width="214" height="97" minWidth="78" minHeight="58" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="state" value="preReceive" /> +<new d="false" /> +<TGConnectingPoint num="0" id="185" /> +<TGConnectingPoint num="1" id="186" /> +<TGConnectingPoint num="2" id="187" /> +<TGConnectingPoint num="3" id="188" /> +<TGConnectingPoint num="4" id="189" /> +<TGConnectingPoint num="5" id="190" /> +<TGConnectingPoint num="6" id="191" /> +<TGConnectingPoint num="7" id="192" /> +<TGConnectingPoint num="8" id="193" /> +<TGConnectingPoint num="9" id="194" /> +<TGConnectingPoint num="10" id="195" /> +<TGConnectingPoint num="11" id="196" /> +<TGConnectingPoint num="12" id="197" /> +<TGConnectingPoint num="13" id="198" /> +<TGConnectingPoint num="14" id="199" /> +<TGConnectingPoint num="15" id="200" /> +<TGConnectingPoint num="16" id="201" /> +<TGConnectingPoint num="17" id="202" /> +<TGConnectingPoint num="18" id="203" /> +<TGConnectingPoint num="19" id="204" /> +<TGConnectingPoint num="20" id="205" /> +<TGConnectingPoint num="21" id="206" /> +<TGConnectingPoint num="22" id="207" /> +<TGConnectingPoint num="23" id="208" /> +<TGConnectingPoint num="24" id="209" /> +<TGConnectingPoint num="25" id="210" /> +<TGConnectingPoint num="26" id="211" /> +<TGConnectingPoint num="27" id="212" /> +<TGConnectingPoint num="28" id="213" /> +<TGConnectingPoint num="29" id="214" /> +<TGConnectingPoint num="30" id="215" /> +<TGConnectingPoint num="31" id="216" /> +<TGConnectingPoint num="32" id="217" /> +<TGConnectingPoint num="33" id="218" /> +<TGConnectingPoint num="34" id="219" /> +<TGConnectingPoint num="35" id="220" /> +<TGConnectingPoint num="36" id="221" /> +<TGConnectingPoint num="37" id="222" /> +<TGConnectingPoint num="38" id="223" /> +<TGConnectingPoint num="39" id="224" /> +<TGConnectingPoint num="40" id="225" /> +<TGConnectingPoint num="41" id="226" /> +<TGConnectingPoint num="42" id="227" /> +<TGConnectingPoint num="43" id="228" /> +<TGConnectingPoint num="44" id="229" /> +<TGConnectingPoint num="45" id="230" /> +<TGConnectingPoint num="46" id="231" /> +<TGConnectingPoint num="47" id="232" /> +<TGConnectingPoint num="48" id="233" /> +<TGConnectingPoint num="49" id="234" /> +<TGConnectingPoint num="50" id="235" /> +<TGConnectingPoint num="51" id="236" /> +<TGConnectingPoint num="52" id="237" /> +<TGConnectingPoint num="53" id="238" /> +<TGConnectingPoint num="54" id="239" /> +<TGConnectingPoint num="55" id="240" /> +<TGConnectingPoint num="56" id="241" /> +<TGConnectingPoint num="57" id="242" /> +<TGConnectingPoint num="58" id="243" /> +<TGConnectingPoint num="59" id="244" /> +<TGConnectingPoint num="60" id="245" /> +<TGConnectingPoint num="61" id="246" /> +<TGConnectingPoint num="62" id="247" /> +<TGConnectingPoint num="63" id="248" /> +<TGConnectingPoint num="64" id="249" /> +<TGConnectingPoint num="65" id="250" /> +<TGConnectingPoint num="66" id="251" /> +<TGConnectingPoint num="67" id="252" /> +<TGConnectingPoint num="68" id="253" /> +<TGConnectingPoint num="69" id="254" /> +<TGConnectingPoint num="70" id="255" /> +<TGConnectingPoint num="71" id="256" /> +<tags value="" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5111" id="268" index="16" uid="1c5c8993-cbdd-4a42-aacc-2148dc4fb0a8" > +<cdparam x="1180" y="285" /> +<sizeparam width="146" height="39" minWidth="58" minHeight="0" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Reset timer" value="expire(tmr)" /> +<new d="false" /> +<TGConnectingPoint num="0" id="258" /> +<TGConnectingPoint num="1" id="259" /> +<TGConnectingPoint num="2" id="260" /> +<TGConnectingPoint num="3" id="261" /> +<TGConnectingPoint num="4" id="262" /> +<TGConnectingPoint num="5" id="263" /> +<TGConnectingPoint num="6" id="264" /> +<TGConnectingPoint num="7" id="265" /> +<TGConnectingPoint num="8" id="266" /> +<TGConnectingPoint num="9" id="267" /> +<tags value="" /> +</COMPONENT> + +<COMPONENT type="5111" id="279" index="17" uid="dfe48135-b9c0-4677-a58e-e2c45c566350" > +<cdparam x="1186" y="809" /> +<sizeparam width="146" height="39" minWidth="58" minHeight="1" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Reset timer" value="expire(tmr)" /> +<new d="false" /> +<TGConnectingPoint num="0" id="269" /> +<TGConnectingPoint num="1" id="270" /> +<TGConnectingPoint num="2" id="271" /> +<TGConnectingPoint num="3" id="272" /> +<TGConnectingPoint num="4" id="273" /> +<TGConnectingPoint num="5" id="274" /> +<TGConnectingPoint num="6" id="275" /> +<TGConnectingPoint num="7" id="276" /> +<TGConnectingPoint num="8" id="277" /> +<TGConnectingPoint num="9" id="278" /> +<tags value="" /> +</COMPONENT> + +<COMPONENT type="5110" id="290" index="18" uid="68db0d5d-4a94-4582-86fc-d9342860ca8c" > +<cdparam x="962" y="285" /> +<sizeparam width="127" height="39" minWidth="58" minHeight="0" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Reset timer" value="reset(tmr)" /> +<new d="false" /> +<TGConnectingPoint num="0" id="280" /> +<TGConnectingPoint num="1" id="281" /> +<TGConnectingPoint num="2" id="282" /> +<TGConnectingPoint num="3" id="283" /> +<TGConnectingPoint num="4" id="284" /> +<TGConnectingPoint num="5" id="285" /> +<TGConnectingPoint num="6" id="286" /> +<TGConnectingPoint num="7" id="287" /> +<TGConnectingPoint num="8" id="288" /> +<TGConnectingPoint num="9" id="289" /> +<tags value="" /> +</COMPONENT> + +<COMPONENT type="5110" id="301" index="19" uid="d9dfb818-c0d7-452c-9362-0f65d5a974a9" > +<cdparam x="968" y="811" /> +<sizeparam width="127" height="39" minWidth="58" minHeight="1" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Reset timer" value="reset(tmr)" /> +<new d="false" /> +<TGConnectingPoint num="0" id="291" /> +<TGConnectingPoint num="1" id="292" /> +<TGConnectingPoint num="2" id="293" /> +<TGConnectingPoint num="3" id="294" /> +<TGConnectingPoint num="4" id="295" /> +<TGConnectingPoint num="5" id="296" /> +<TGConnectingPoint num="6" id="297" /> +<TGConnectingPoint num="7" id="298" /> +<TGConnectingPoint num="8" id="299" /> +<TGConnectingPoint num="9" id="300" /> +<tags value="" /> +</COMPONENT> + +<COMPONENT type="5109" id="312" index="20" uid="2b08f292-0318-4461-a4b7-a6f30e938e64" > +<cdparam x="681" y="287" /> +<sizeparam width="200" height="39" minWidth="58" minHeight="0" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Set timer" value="setTimer(tmr,10)" /> +<new d="false" /> +<TGConnectingPoint num="0" id="302" /> +<TGConnectingPoint num="1" id="303" /> +<TGConnectingPoint num="2" id="304" /> +<TGConnectingPoint num="3" id="305" /> +<TGConnectingPoint num="4" id="306" /> +<TGConnectingPoint num="5" id="307" /> +<TGConnectingPoint num="6" id="308" /> +<TGConnectingPoint num="7" id="309" /> +<TGConnectingPoint num="8" id="310" /> +<TGConnectingPoint num="9" id="311" /> +<tags value="" /> +</COMPONENT> + +<COMPONENT type="5109" id="323" index="21" uid="ab3d3907-c64a-42a9-ae60-d1762f05c694" > +<cdparam x="687" y="809" /> +<sizeparam width="200" height="39" minWidth="58" minHeight="1" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Set timer" value="setTimer(tmr,10)" /> +<new d="false" /> +<TGConnectingPoint num="0" id="313" /> +<TGConnectingPoint num="1" id="314" /> +<TGConnectingPoint num="2" id="315" /> +<TGConnectingPoint num="3" id="316" /> +<TGConnectingPoint num="4" id="317" /> +<TGConnectingPoint num="5" id="318" /> +<TGConnectingPoint num="6" id="319" /> +<TGConnectingPoint num="7" id="320" /> +<TGConnectingPoint num="8" id="321" /> +<TGConnectingPoint num="9" id="322" /> +<tags value="" /> +</COMPONENT> + +<COMPONENT type="5104" id="334" index="22" uid="332eb7d7-aa5c-4796-beb3-f1d2619d44bf" > +<cdparam x="495" y="286" /> +<sizeparam width="99" height="39" minWidth="58" minHeight="0" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Receive signal" value="inSig()" /> +<new d="false" /> +<TGConnectingPoint num="0" id="324" /> +<TGConnectingPoint num="1" id="325" /> +<TGConnectingPoint num="2" id="326" /> +<TGConnectingPoint num="3" id="327" /> +<TGConnectingPoint num="4" id="328" /> +<TGConnectingPoint num="5" id="329" /> +<TGConnectingPoint num="6" id="330" /> +<TGConnectingPoint num="7" id="331" /> +<TGConnectingPoint num="8" id="332" /> +<TGConnectingPoint num="9" id="333" /> +<tags value="" /> +</COMPONENT> + +<COMPONENT type="5104" id="345" index="23" uid="88ea61be-8433-43c9-b84e-2a9111344d3a" > +<cdparam x="501" y="808" /> +<sizeparam width="99" height="39" minWidth="58" minHeight="1" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Receive signal" value="inSig()" /> +<new d="false" /> +<TGConnectingPoint num="0" id="335" /> +<TGConnectingPoint num="1" id="336" /> +<TGConnectingPoint num="2" id="337" /> +<TGConnectingPoint num="3" id="338" /> +<TGConnectingPoint num="4" id="339" /> +<TGConnectingPoint num="5" id="340" /> +<TGConnectingPoint num="6" id="341" /> +<TGConnectingPoint num="7" id="342" /> +<TGConnectingPoint num="8" id="343" /> +<TGConnectingPoint num="9" id="344" /> +<tags value="" /> +</COMPONENT> + +<COMPONENT type="5106" id="418" index="24" uid="a5dd8258-9c35-40fc-be19-f1342ab340bd" > +<cdparam x="1171" y="115" /> +<sizeparam width="164" height="97" minWidth="78" minHeight="58" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="state" value="anyBox" /> +<new d="false" /> +<TGConnectingPoint num="0" id="346" /> +<TGConnectingPoint num="1" id="347" /> +<TGConnectingPoint num="2" id="348" /> +<TGConnectingPoint num="3" id="349" /> +<TGConnectingPoint num="4" id="350" /> +<TGConnectingPoint num="5" id="351" /> +<TGConnectingPoint num="6" id="352" /> +<TGConnectingPoint num="7" id="353" /> +<TGConnectingPoint num="8" id="354" /> +<TGConnectingPoint num="9" id="355" /> +<TGConnectingPoint num="10" id="356" /> +<TGConnectingPoint num="11" id="357" /> +<TGConnectingPoint num="12" id="358" /> +<TGConnectingPoint num="13" id="359" /> +<TGConnectingPoint num="14" id="360" /> +<TGConnectingPoint num="15" id="361" /> +<TGConnectingPoint num="16" id="362" /> +<TGConnectingPoint num="17" id="363" /> +<TGConnectingPoint num="18" id="364" /> +<TGConnectingPoint num="19" id="365" /> +<TGConnectingPoint num="20" id="366" /> +<TGConnectingPoint num="21" id="367" /> +<TGConnectingPoint num="22" id="368" /> +<TGConnectingPoint num="23" id="369" /> +<TGConnectingPoint num="24" id="370" /> +<TGConnectingPoint num="25" id="371" /> +<TGConnectingPoint num="26" id="372" /> +<TGConnectingPoint num="27" id="373" /> +<TGConnectingPoint num="28" id="374" /> +<TGConnectingPoint num="29" id="375" /> +<TGConnectingPoint num="30" id="376" /> +<TGConnectingPoint num="31" id="377" /> +<TGConnectingPoint num="32" id="378" /> +<TGConnectingPoint num="33" id="379" /> +<TGConnectingPoint num="34" id="380" /> +<TGConnectingPoint num="35" id="381" /> +<TGConnectingPoint num="36" id="382" /> +<TGConnectingPoint num="37" id="383" /> +<TGConnectingPoint num="38" id="384" /> +<TGConnectingPoint num="39" id="385" /> +<TGConnectingPoint num="40" id="386" /> +<TGConnectingPoint num="41" id="387" /> +<TGConnectingPoint num="42" id="388" /> +<TGConnectingPoint num="43" id="389" /> +<TGConnectingPoint num="44" id="390" /> +<TGConnectingPoint num="45" id="391" /> +<TGConnectingPoint num="46" id="392" /> +<TGConnectingPoint num="47" id="393" /> +<TGConnectingPoint num="48" id="394" /> +<TGConnectingPoint num="49" id="395" /> +<TGConnectingPoint num="50" id="396" /> +<TGConnectingPoint num="51" id="397" /> +<TGConnectingPoint num="52" id="398" /> +<TGConnectingPoint num="53" id="399" /> +<TGConnectingPoint num="54" id="400" /> +<TGConnectingPoint num="55" id="401" /> +<TGConnectingPoint num="56" id="402" /> +<TGConnectingPoint num="57" id="403" /> +<TGConnectingPoint num="58" id="404" /> +<TGConnectingPoint num="59" id="405" /> +<TGConnectingPoint num="60" id="406" /> +<TGConnectingPoint num="61" id="407" /> +<TGConnectingPoint num="62" id="408" /> +<TGConnectingPoint num="63" id="409" /> +<TGConnectingPoint num="64" id="410" /> +<TGConnectingPoint num="65" id="411" /> +<TGConnectingPoint num="66" id="412" /> +<TGConnectingPoint num="67" id="413" /> +<TGConnectingPoint num="68" id="414" /> +<TGConnectingPoint num="69" id="415" /> +<TGConnectingPoint num="70" id="416" /> +<TGConnectingPoint num="71" id="417" /> +<tags value="" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="491" index="25" uid="573c23c0-8662-40e1-992c-e661ac51eb6f" > +<cdparam x="1177" y="486" /> +<sizeparam width="164" height="97" minWidth="78" minHeight="58" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="state" value="anyBox" /> +<new d="false" /> +<TGConnectingPoint num="0" id="419" /> +<TGConnectingPoint num="1" id="420" /> +<TGConnectingPoint num="2" id="421" /> +<TGConnectingPoint num="3" id="422" /> +<TGConnectingPoint num="4" id="423" /> +<TGConnectingPoint num="5" id="424" /> +<TGConnectingPoint num="6" id="425" /> +<TGConnectingPoint num="7" id="426" /> +<TGConnectingPoint num="8" id="427" /> +<TGConnectingPoint num="9" id="428" /> +<TGConnectingPoint num="10" id="429" /> +<TGConnectingPoint num="11" id="430" /> +<TGConnectingPoint num="12" id="431" /> +<TGConnectingPoint num="13" id="432" /> +<TGConnectingPoint num="14" id="433" /> +<TGConnectingPoint num="15" id="434" /> +<TGConnectingPoint num="16" id="435" /> +<TGConnectingPoint num="17" id="436" /> +<TGConnectingPoint num="18" id="437" /> +<TGConnectingPoint num="19" id="438" /> +<TGConnectingPoint num="20" id="439" /> +<TGConnectingPoint num="21" id="440" /> +<TGConnectingPoint num="22" id="441" /> +<TGConnectingPoint num="23" id="442" /> +<TGConnectingPoint num="24" id="443" /> +<TGConnectingPoint num="25" id="444" /> +<TGConnectingPoint num="26" id="445" /> +<TGConnectingPoint num="27" id="446" /> +<TGConnectingPoint num="28" id="447" /> +<TGConnectingPoint num="29" id="448" /> +<TGConnectingPoint num="30" id="449" /> +<TGConnectingPoint num="31" id="450" /> +<TGConnectingPoint num="32" id="451" /> +<TGConnectingPoint num="33" id="452" /> +<TGConnectingPoint num="34" id="453" /> +<TGConnectingPoint num="35" id="454" /> +<TGConnectingPoint num="36" id="455" /> +<TGConnectingPoint num="37" id="456" /> +<TGConnectingPoint num="38" id="457" /> +<TGConnectingPoint num="39" id="458" /> +<TGConnectingPoint num="40" id="459" /> +<TGConnectingPoint num="41" id="460" /> +<TGConnectingPoint num="42" id="461" /> +<TGConnectingPoint num="43" id="462" /> +<TGConnectingPoint num="44" id="463" /> +<TGConnectingPoint num="45" id="464" /> +<TGConnectingPoint num="46" id="465" /> +<TGConnectingPoint num="47" id="466" /> +<TGConnectingPoint num="48" id="467" /> +<TGConnectingPoint num="49" id="468" /> +<TGConnectingPoint num="50" id="469" /> +<TGConnectingPoint num="51" id="470" /> +<TGConnectingPoint num="52" id="471" /> +<TGConnectingPoint num="53" id="472" /> +<TGConnectingPoint num="54" id="473" /> +<TGConnectingPoint num="55" id="474" /> +<TGConnectingPoint num="56" id="475" /> +<TGConnectingPoint num="57" id="476" /> +<TGConnectingPoint num="58" id="477" /> +<TGConnectingPoint num="59" id="478" /> +<TGConnectingPoint num="60" id="479" /> +<TGConnectingPoint num="61" id="480" /> +<TGConnectingPoint num="62" id="481" /> +<TGConnectingPoint num="63" id="482" /> +<TGConnectingPoint num="64" id="483" /> +<TGConnectingPoint num="65" id="484" /> +<TGConnectingPoint num="66" id="485" /> +<TGConnectingPoint num="67" id="486" /> +<TGConnectingPoint num="68" id="487" /> +<TGConnectingPoint num="69" id="488" /> +<TGConnectingPoint num="70" id="489" /> +<TGConnectingPoint num="71" id="490" /> +<tags value="" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="564" index="26" uid="c850ae89-bd97-447f-a341-4eeb35975288" > +<cdparam x="943" y="115" /> +<sizeparam width="164" height="97" minWidth="78" minHeight="58" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="state" value="anyBox" /> +<new d="false" /> +<TGConnectingPoint num="0" id="492" /> +<TGConnectingPoint num="1" id="493" /> +<TGConnectingPoint num="2" id="494" /> +<TGConnectingPoint num="3" id="495" /> +<TGConnectingPoint num="4" id="496" /> +<TGConnectingPoint num="5" id="497" /> +<TGConnectingPoint num="6" id="498" /> +<TGConnectingPoint num="7" id="499" /> +<TGConnectingPoint num="8" id="500" /> +<TGConnectingPoint num="9" id="501" /> +<TGConnectingPoint num="10" id="502" /> +<TGConnectingPoint num="11" id="503" /> +<TGConnectingPoint num="12" id="504" /> +<TGConnectingPoint num="13" id="505" /> +<TGConnectingPoint num="14" id="506" /> +<TGConnectingPoint num="15" id="507" /> +<TGConnectingPoint num="16" id="508" /> +<TGConnectingPoint num="17" id="509" /> +<TGConnectingPoint num="18" id="510" /> +<TGConnectingPoint num="19" id="511" /> +<TGConnectingPoint num="20" id="512" /> +<TGConnectingPoint num="21" id="513" /> +<TGConnectingPoint num="22" id="514" /> +<TGConnectingPoint num="23" id="515" /> +<TGConnectingPoint num="24" id="516" /> +<TGConnectingPoint num="25" id="517" /> +<TGConnectingPoint num="26" id="518" /> +<TGConnectingPoint num="27" id="519" /> +<TGConnectingPoint num="28" id="520" /> +<TGConnectingPoint num="29" id="521" /> +<TGConnectingPoint num="30" id="522" /> +<TGConnectingPoint num="31" id="523" /> +<TGConnectingPoint num="32" id="524" /> +<TGConnectingPoint num="33" id="525" /> +<TGConnectingPoint num="34" id="526" /> +<TGConnectingPoint num="35" id="527" /> +<TGConnectingPoint num="36" id="528" /> +<TGConnectingPoint num="37" id="529" /> +<TGConnectingPoint num="38" id="530" /> +<TGConnectingPoint num="39" id="531" /> +<TGConnectingPoint num="40" id="532" /> +<TGConnectingPoint num="41" id="533" /> +<TGConnectingPoint num="42" id="534" /> +<TGConnectingPoint num="43" id="535" /> +<TGConnectingPoint num="44" id="536" /> +<TGConnectingPoint num="45" id="537" /> +<TGConnectingPoint num="46" id="538" /> +<TGConnectingPoint num="47" id="539" /> +<TGConnectingPoint num="48" id="540" /> +<TGConnectingPoint num="49" id="541" /> +<TGConnectingPoint num="50" id="542" /> +<TGConnectingPoint num="51" id="543" /> +<TGConnectingPoint num="52" id="544" /> +<TGConnectingPoint num="53" id="545" /> +<TGConnectingPoint num="54" id="546" /> +<TGConnectingPoint num="55" id="547" /> +<TGConnectingPoint num="56" id="548" /> +<TGConnectingPoint num="57" id="549" /> +<TGConnectingPoint num="58" id="550" /> +<TGConnectingPoint num="59" id="551" /> +<TGConnectingPoint num="60" id="552" /> +<TGConnectingPoint num="61" id="553" /> +<TGConnectingPoint num="62" id="554" /> +<TGConnectingPoint num="63" id="555" /> +<TGConnectingPoint num="64" id="556" /> +<TGConnectingPoint num="65" id="557" /> +<TGConnectingPoint num="66" id="558" /> +<TGConnectingPoint num="67" id="559" /> +<TGConnectingPoint num="68" id="560" /> +<TGConnectingPoint num="69" id="561" /> +<TGConnectingPoint num="70" id="562" /> +<TGConnectingPoint num="71" id="563" /> +<tags value="" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="637" index="27" uid="6b90da4f-4256-46da-befc-b57c8b762a6f" > +<cdparam x="949" y="486" /> +<sizeparam width="164" height="97" minWidth="78" minHeight="58" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="state" value="anyBox" /> +<new d="false" /> +<TGConnectingPoint num="0" id="565" /> +<TGConnectingPoint num="1" id="566" /> +<TGConnectingPoint num="2" id="567" /> +<TGConnectingPoint num="3" id="568" /> +<TGConnectingPoint num="4" id="569" /> +<TGConnectingPoint num="5" id="570" /> +<TGConnectingPoint num="6" id="571" /> +<TGConnectingPoint num="7" id="572" /> +<TGConnectingPoint num="8" id="573" /> +<TGConnectingPoint num="9" id="574" /> +<TGConnectingPoint num="10" id="575" /> +<TGConnectingPoint num="11" id="576" /> +<TGConnectingPoint num="12" id="577" /> +<TGConnectingPoint num="13" id="578" /> +<TGConnectingPoint num="14" id="579" /> +<TGConnectingPoint num="15" id="580" /> +<TGConnectingPoint num="16" id="581" /> +<TGConnectingPoint num="17" id="582" /> +<TGConnectingPoint num="18" id="583" /> +<TGConnectingPoint num="19" id="584" /> +<TGConnectingPoint num="20" id="585" /> +<TGConnectingPoint num="21" id="586" /> +<TGConnectingPoint num="22" id="587" /> +<TGConnectingPoint num="23" id="588" /> +<TGConnectingPoint num="24" id="589" /> +<TGConnectingPoint num="25" id="590" /> +<TGConnectingPoint num="26" id="591" /> +<TGConnectingPoint num="27" id="592" /> +<TGConnectingPoint num="28" id="593" /> +<TGConnectingPoint num="29" id="594" /> +<TGConnectingPoint num="30" id="595" /> +<TGConnectingPoint num="31" id="596" /> +<TGConnectingPoint num="32" id="597" /> +<TGConnectingPoint num="33" id="598" /> +<TGConnectingPoint num="34" id="599" /> +<TGConnectingPoint num="35" id="600" /> +<TGConnectingPoint num="36" id="601" /> +<TGConnectingPoint num="37" id="602" /> +<TGConnectingPoint num="38" id="603" /> +<TGConnectingPoint num="39" id="604" /> +<TGConnectingPoint num="40" id="605" /> +<TGConnectingPoint num="41" id="606" /> +<TGConnectingPoint num="42" id="607" /> +<TGConnectingPoint num="43" id="608" /> +<TGConnectingPoint num="44" id="609" /> +<TGConnectingPoint num="45" id="610" /> +<TGConnectingPoint num="46" id="611" /> +<TGConnectingPoint num="47" id="612" /> +<TGConnectingPoint num="48" id="613" /> +<TGConnectingPoint num="49" id="614" /> +<TGConnectingPoint num="50" id="615" /> +<TGConnectingPoint num="51" id="616" /> +<TGConnectingPoint num="52" id="617" /> +<TGConnectingPoint num="53" id="618" /> +<TGConnectingPoint num="54" id="619" /> +<TGConnectingPoint num="55" id="620" /> +<TGConnectingPoint num="56" id="621" /> +<TGConnectingPoint num="57" id="622" /> +<TGConnectingPoint num="58" id="623" /> +<TGConnectingPoint num="59" id="624" /> +<TGConnectingPoint num="60" id="625" /> +<TGConnectingPoint num="61" id="626" /> +<TGConnectingPoint num="62" id="627" /> +<TGConnectingPoint num="63" id="628" /> +<TGConnectingPoint num="64" id="629" /> +<TGConnectingPoint num="65" id="630" /> +<TGConnectingPoint num="66" id="631" /> +<TGConnectingPoint num="67" id="632" /> +<TGConnectingPoint num="68" id="633" /> +<TGConnectingPoint num="69" id="634" /> +<TGConnectingPoint num="70" id="635" /> +<TGConnectingPoint num="71" id="636" /> +<tags value="" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5103" id="648" index="28" uid="1b95cfe8-7264-40ea-a665-df092c57676b" > +<cdparam x="251" y="283" /> +<sizeparam width="102" height="39" minWidth="58" minHeight="0" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Send signal" value="outSig()" /> +<new d="false" /> +<TGConnectingPoint num="0" id="638" /> +<TGConnectingPoint num="1" id="639" /> +<TGConnectingPoint num="2" id="640" /> +<TGConnectingPoint num="3" id="641" /> +<TGConnectingPoint num="4" id="642" /> +<TGConnectingPoint num="5" id="643" /> +<TGConnectingPoint num="6" id="644" /> +<TGConnectingPoint num="7" id="645" /> +<TGConnectingPoint num="8" id="646" /> +<TGConnectingPoint num="9" id="647" /> +<tags value="" /> +</COMPONENT> + +<COMPONENT type="5103" id="659" index="29" uid="39ef92b9-66eb-497e-9055-dbdd2e1cdbee" > +<cdparam x="257" y="802" /> +<sizeparam width="102" height="39" minWidth="58" minHeight="1" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Send signal" value="outSig()" /> +<new d="false" /> +<TGConnectingPoint num="0" id="649" /> +<TGConnectingPoint num="1" id="650" /> +<TGConnectingPoint num="2" id="651" /> +<TGConnectingPoint num="3" id="652" /> +<TGConnectingPoint num="4" id="653" /> +<TGConnectingPoint num="5" id="654" /> +<TGConnectingPoint num="6" id="655" /> +<TGConnectingPoint num="7" id="656" /> +<TGConnectingPoint num="8" id="657" /> +<TGConnectingPoint num="9" id="658" /> +<tags value="" /> +</COMPONENT> + +<COMPONENT type="5106" id="732" index="30" uid="41b50d54-30ae-4bf2-9099-e562d691ff41" > +<cdparam x="699" y="113" /> +<sizeparam width="164" height="97" minWidth="78" minHeight="58" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="state" value="anyBox" /> +<new d="false" /> +<TGConnectingPoint num="0" id="660" /> +<TGConnectingPoint num="1" id="661" /> +<TGConnectingPoint num="2" id="662" /> +<TGConnectingPoint num="3" id="663" /> +<TGConnectingPoint num="4" id="664" /> +<TGConnectingPoint num="5" id="665" /> +<TGConnectingPoint num="6" id="666" /> +<TGConnectingPoint num="7" id="667" /> +<TGConnectingPoint num="8" id="668" /> +<TGConnectingPoint num="9" id="669" /> +<TGConnectingPoint num="10" id="670" /> +<TGConnectingPoint num="11" id="671" /> +<TGConnectingPoint num="12" id="672" /> +<TGConnectingPoint num="13" id="673" /> +<TGConnectingPoint num="14" id="674" /> +<TGConnectingPoint num="15" id="675" /> +<TGConnectingPoint num="16" id="676" /> +<TGConnectingPoint num="17" id="677" /> +<TGConnectingPoint num="18" id="678" /> +<TGConnectingPoint num="19" id="679" /> +<TGConnectingPoint num="20" id="680" /> +<TGConnectingPoint num="21" id="681" /> +<TGConnectingPoint num="22" id="682" /> +<TGConnectingPoint num="23" id="683" /> +<TGConnectingPoint num="24" id="684" /> +<TGConnectingPoint num="25" id="685" /> +<TGConnectingPoint num="26" id="686" /> +<TGConnectingPoint num="27" id="687" /> +<TGConnectingPoint num="28" id="688" /> +<TGConnectingPoint num="29" id="689" /> +<TGConnectingPoint num="30" id="690" /> +<TGConnectingPoint num="31" id="691" /> +<TGConnectingPoint num="32" id="692" /> +<TGConnectingPoint num="33" id="693" /> +<TGConnectingPoint num="34" id="694" /> +<TGConnectingPoint num="35" id="695" /> +<TGConnectingPoint num="36" id="696" /> +<TGConnectingPoint num="37" id="697" /> +<TGConnectingPoint num="38" id="698" /> +<TGConnectingPoint num="39" id="699" /> +<TGConnectingPoint num="40" id="700" /> +<TGConnectingPoint num="41" id="701" /> +<TGConnectingPoint num="42" id="702" /> +<TGConnectingPoint num="43" id="703" /> +<TGConnectingPoint num="44" id="704" /> +<TGConnectingPoint num="45" id="705" /> +<TGConnectingPoint num="46" id="706" /> +<TGConnectingPoint num="47" id="707" /> +<TGConnectingPoint num="48" id="708" /> +<TGConnectingPoint num="49" id="709" /> +<TGConnectingPoint num="50" id="710" /> +<TGConnectingPoint num="51" id="711" /> +<TGConnectingPoint num="52" id="712" /> +<TGConnectingPoint num="53" id="713" /> +<TGConnectingPoint num="54" id="714" /> +<TGConnectingPoint num="55" id="715" /> +<TGConnectingPoint num="56" id="716" /> +<TGConnectingPoint num="57" id="717" /> +<TGConnectingPoint num="58" id="718" /> +<TGConnectingPoint num="59" id="719" /> +<TGConnectingPoint num="60" id="720" /> +<TGConnectingPoint num="61" id="721" /> +<TGConnectingPoint num="62" id="722" /> +<TGConnectingPoint num="63" id="723" /> +<TGConnectingPoint num="64" id="724" /> +<TGConnectingPoint num="65" id="725" /> +<TGConnectingPoint num="66" id="726" /> +<TGConnectingPoint num="67" id="727" /> +<TGConnectingPoint num="68" id="728" /> +<TGConnectingPoint num="69" id="729" /> +<TGConnectingPoint num="70" id="730" /> +<TGConnectingPoint num="71" id="731" /> +<tags value="" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="805" index="31" uid="f92c9e44-eced-4616-90f0-e7ccd1bed64a" > +<cdparam x="705" y="484" /> +<sizeparam width="164" height="97" minWidth="78" minHeight="58" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="state" value="anyBox" /> +<new d="false" /> +<TGConnectingPoint num="0" id="733" /> +<TGConnectingPoint num="1" id="734" /> +<TGConnectingPoint num="2" id="735" /> +<TGConnectingPoint num="3" id="736" /> +<TGConnectingPoint num="4" id="737" /> +<TGConnectingPoint num="5" id="738" /> +<TGConnectingPoint num="6" id="739" /> +<TGConnectingPoint num="7" id="740" /> +<TGConnectingPoint num="8" id="741" /> +<TGConnectingPoint num="9" id="742" /> +<TGConnectingPoint num="10" id="743" /> +<TGConnectingPoint num="11" id="744" /> +<TGConnectingPoint num="12" id="745" /> +<TGConnectingPoint num="13" id="746" /> +<TGConnectingPoint num="14" id="747" /> +<TGConnectingPoint num="15" id="748" /> +<TGConnectingPoint num="16" id="749" /> +<TGConnectingPoint num="17" id="750" /> +<TGConnectingPoint num="18" id="751" /> +<TGConnectingPoint num="19" id="752" /> +<TGConnectingPoint num="20" id="753" /> +<TGConnectingPoint num="21" id="754" /> +<TGConnectingPoint num="22" id="755" /> +<TGConnectingPoint num="23" id="756" /> +<TGConnectingPoint num="24" id="757" /> +<TGConnectingPoint num="25" id="758" /> +<TGConnectingPoint num="26" id="759" /> +<TGConnectingPoint num="27" id="760" /> +<TGConnectingPoint num="28" id="761" /> +<TGConnectingPoint num="29" id="762" /> +<TGConnectingPoint num="30" id="763" /> +<TGConnectingPoint num="31" id="764" /> +<TGConnectingPoint num="32" id="765" /> +<TGConnectingPoint num="33" id="766" /> +<TGConnectingPoint num="34" id="767" /> +<TGConnectingPoint num="35" id="768" /> +<TGConnectingPoint num="36" id="769" /> +<TGConnectingPoint num="37" id="770" /> +<TGConnectingPoint num="38" id="771" /> +<TGConnectingPoint num="39" id="772" /> +<TGConnectingPoint num="40" id="773" /> +<TGConnectingPoint num="41" id="774" /> +<TGConnectingPoint num="42" id="775" /> +<TGConnectingPoint num="43" id="776" /> +<TGConnectingPoint num="44" id="777" /> +<TGConnectingPoint num="45" id="778" /> +<TGConnectingPoint num="46" id="779" /> +<TGConnectingPoint num="47" id="780" /> +<TGConnectingPoint num="48" id="781" /> +<TGConnectingPoint num="49" id="782" /> +<TGConnectingPoint num="50" id="783" /> +<TGConnectingPoint num="51" id="784" /> +<TGConnectingPoint num="52" id="785" /> +<TGConnectingPoint num="53" id="786" /> +<TGConnectingPoint num="54" id="787" /> +<TGConnectingPoint num="55" id="788" /> +<TGConnectingPoint num="56" id="789" /> +<TGConnectingPoint num="57" id="790" /> +<TGConnectingPoint num="58" id="791" /> +<TGConnectingPoint num="59" id="792" /> +<TGConnectingPoint num="60" id="793" /> +<TGConnectingPoint num="61" id="794" /> +<TGConnectingPoint num="62" id="795" /> +<TGConnectingPoint num="63" id="796" /> +<TGConnectingPoint num="64" id="797" /> +<TGConnectingPoint num="65" id="798" /> +<TGConnectingPoint num="66" id="799" /> +<TGConnectingPoint num="67" id="800" /> +<TGConnectingPoint num="68" id="801" /> +<TGConnectingPoint num="69" id="802" /> +<TGConnectingPoint num="70" id="803" /> +<TGConnectingPoint num="71" id="804" /> +<tags value="" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="878" index="32" uid="afe7531b-f4db-4ffa-b71a-5285841b147f" > +<cdparam x="220" y="113" /> +<sizeparam width="164" height="97" minWidth="78" minHeight="58" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="state" value="anyBox" /> +<new d="false" /> +<TGConnectingPoint num="0" id="806" /> +<TGConnectingPoint num="1" id="807" /> +<TGConnectingPoint num="2" id="808" /> +<TGConnectingPoint num="3" id="809" /> +<TGConnectingPoint num="4" id="810" /> +<TGConnectingPoint num="5" id="811" /> +<TGConnectingPoint num="6" id="812" /> +<TGConnectingPoint num="7" id="813" /> +<TGConnectingPoint num="8" id="814" /> +<TGConnectingPoint num="9" id="815" /> +<TGConnectingPoint num="10" id="816" /> +<TGConnectingPoint num="11" id="817" /> +<TGConnectingPoint num="12" id="818" /> +<TGConnectingPoint num="13" id="819" /> +<TGConnectingPoint num="14" id="820" /> +<TGConnectingPoint num="15" id="821" /> +<TGConnectingPoint num="16" id="822" /> +<TGConnectingPoint num="17" id="823" /> +<TGConnectingPoint num="18" id="824" /> +<TGConnectingPoint num="19" id="825" /> +<TGConnectingPoint num="20" id="826" /> +<TGConnectingPoint num="21" id="827" /> +<TGConnectingPoint num="22" id="828" /> +<TGConnectingPoint num="23" id="829" /> +<TGConnectingPoint num="24" id="830" /> +<TGConnectingPoint num="25" id="831" /> +<TGConnectingPoint num="26" id="832" /> +<TGConnectingPoint num="27" id="833" /> +<TGConnectingPoint num="28" id="834" /> +<TGConnectingPoint num="29" id="835" /> +<TGConnectingPoint num="30" id="836" /> +<TGConnectingPoint num="31" id="837" /> +<TGConnectingPoint num="32" id="838" /> +<TGConnectingPoint num="33" id="839" /> +<TGConnectingPoint num="34" id="840" /> +<TGConnectingPoint num="35" id="841" /> +<TGConnectingPoint num="36" id="842" /> +<TGConnectingPoint num="37" id="843" /> +<TGConnectingPoint num="38" id="844" /> +<TGConnectingPoint num="39" id="845" /> +<TGConnectingPoint num="40" id="846" /> +<TGConnectingPoint num="41" id="847" /> +<TGConnectingPoint num="42" id="848" /> +<TGConnectingPoint num="43" id="849" /> +<TGConnectingPoint num="44" id="850" /> +<TGConnectingPoint num="45" id="851" /> +<TGConnectingPoint num="46" id="852" /> +<TGConnectingPoint num="47" id="853" /> +<TGConnectingPoint num="48" id="854" /> +<TGConnectingPoint num="49" id="855" /> +<TGConnectingPoint num="50" id="856" /> +<TGConnectingPoint num="51" id="857" /> +<TGConnectingPoint num="52" id="858" /> +<TGConnectingPoint num="53" id="859" /> +<TGConnectingPoint num="54" id="860" /> +<TGConnectingPoint num="55" id="861" /> +<TGConnectingPoint num="56" id="862" /> +<TGConnectingPoint num="57" id="863" /> +<TGConnectingPoint num="58" id="864" /> +<TGConnectingPoint num="59" id="865" /> +<TGConnectingPoint num="60" id="866" /> +<TGConnectingPoint num="61" id="867" /> +<TGConnectingPoint num="62" id="868" /> +<TGConnectingPoint num="63" id="869" /> +<TGConnectingPoint num="64" id="870" /> +<TGConnectingPoint num="65" id="871" /> +<TGConnectingPoint num="66" id="872" /> +<TGConnectingPoint num="67" id="873" /> +<TGConnectingPoint num="68" id="874" /> +<TGConnectingPoint num="69" id="875" /> +<TGConnectingPoint num="70" id="876" /> +<TGConnectingPoint num="71" id="877" /> +<tags value="" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="951" index="33" uid="0c5e5e51-3952-4bf0-bbb6-4ea90725d7da" > +<cdparam x="226" y="484" /> +<sizeparam width="164" height="97" minWidth="78" minHeight="58" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="state" value="anyBox" /> +<new d="false" /> +<TGConnectingPoint num="0" id="879" /> +<TGConnectingPoint num="1" id="880" /> +<TGConnectingPoint num="2" id="881" /> +<TGConnectingPoint num="3" id="882" /> +<TGConnectingPoint num="4" id="883" /> +<TGConnectingPoint num="5" id="884" /> +<TGConnectingPoint num="6" id="885" /> +<TGConnectingPoint num="7" id="886" /> +<TGConnectingPoint num="8" id="887" /> +<TGConnectingPoint num="9" id="888" /> +<TGConnectingPoint num="10" id="889" /> +<TGConnectingPoint num="11" id="890" /> +<TGConnectingPoint num="12" id="891" /> +<TGConnectingPoint num="13" id="892" /> +<TGConnectingPoint num="14" id="893" /> +<TGConnectingPoint num="15" id="894" /> +<TGConnectingPoint num="16" id="895" /> +<TGConnectingPoint num="17" id="896" /> +<TGConnectingPoint num="18" id="897" /> +<TGConnectingPoint num="19" id="898" /> +<TGConnectingPoint num="20" id="899" /> +<TGConnectingPoint num="21" id="900" /> +<TGConnectingPoint num="22" id="901" /> +<TGConnectingPoint num="23" id="902" /> +<TGConnectingPoint num="24" id="903" /> +<TGConnectingPoint num="25" id="904" /> +<TGConnectingPoint num="26" id="905" /> +<TGConnectingPoint num="27" id="906" /> +<TGConnectingPoint num="28" id="907" /> +<TGConnectingPoint num="29" id="908" /> +<TGConnectingPoint num="30" id="909" /> +<TGConnectingPoint num="31" id="910" /> +<TGConnectingPoint num="32" id="911" /> +<TGConnectingPoint num="33" id="912" /> +<TGConnectingPoint num="34" id="913" /> +<TGConnectingPoint num="35" id="914" /> +<TGConnectingPoint num="36" id="915" /> +<TGConnectingPoint num="37" id="916" /> +<TGConnectingPoint num="38" id="917" /> +<TGConnectingPoint num="39" id="918" /> +<TGConnectingPoint num="40" id="919" /> +<TGConnectingPoint num="41" id="920" /> +<TGConnectingPoint num="42" id="921" /> +<TGConnectingPoint num="43" id="922" /> +<TGConnectingPoint num="44" id="923" /> +<TGConnectingPoint num="45" id="924" /> +<TGConnectingPoint num="46" id="925" /> +<TGConnectingPoint num="47" id="926" /> +<TGConnectingPoint num="48" id="927" /> +<TGConnectingPoint num="49" id="928" /> +<TGConnectingPoint num="50" id="929" /> +<TGConnectingPoint num="51" id="930" /> +<TGConnectingPoint num="52" id="931" /> +<TGConnectingPoint num="53" id="932" /> +<TGConnectingPoint num="54" id="933" /> +<TGConnectingPoint num="55" id="934" /> +<TGConnectingPoint num="56" id="935" /> +<TGConnectingPoint num="57" id="936" /> +<TGConnectingPoint num="58" id="937" /> +<TGConnectingPoint num="59" id="938" /> +<TGConnectingPoint num="60" id="939" /> +<TGConnectingPoint num="61" id="940" /> +<TGConnectingPoint num="62" id="941" /> +<TGConnectingPoint num="63" id="942" /> +<TGConnectingPoint num="64" id="943" /> +<TGConnectingPoint num="65" id="944" /> +<TGConnectingPoint num="66" id="945" /> +<TGConnectingPoint num="67" id="946" /> +<TGConnectingPoint num="68" id="947" /> +<TGConnectingPoint num="69" id="948" /> +<TGConnectingPoint num="70" id="949" /> +<TGConnectingPoint num="71" id="950" /> +<tags value="" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="1024" index="34" uid="72910fcb-c7b4-49e2-8c8d-5fd5c2ef9f0a" > +<cdparam x="462" y="111" /> +<sizeparam width="164" height="97" minWidth="78" minHeight="58" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="state" value="anyBox" /> +<new d="false" /> +<TGConnectingPoint num="0" id="952" /> +<TGConnectingPoint num="1" id="953" /> +<TGConnectingPoint num="2" id="954" /> +<TGConnectingPoint num="3" id="955" /> +<TGConnectingPoint num="4" id="956" /> +<TGConnectingPoint num="5" id="957" /> +<TGConnectingPoint num="6" id="958" /> +<TGConnectingPoint num="7" id="959" /> +<TGConnectingPoint num="8" id="960" /> +<TGConnectingPoint num="9" id="961" /> +<TGConnectingPoint num="10" id="962" /> +<TGConnectingPoint num="11" id="963" /> +<TGConnectingPoint num="12" id="964" /> +<TGConnectingPoint num="13" id="965" /> +<TGConnectingPoint num="14" id="966" /> +<TGConnectingPoint num="15" id="967" /> +<TGConnectingPoint num="16" id="968" /> +<TGConnectingPoint num="17" id="969" /> +<TGConnectingPoint num="18" id="970" /> +<TGConnectingPoint num="19" id="971" /> +<TGConnectingPoint num="20" id="972" /> +<TGConnectingPoint num="21" id="973" /> +<TGConnectingPoint num="22" id="974" /> +<TGConnectingPoint num="23" id="975" /> +<TGConnectingPoint num="24" id="976" /> +<TGConnectingPoint num="25" id="977" /> +<TGConnectingPoint num="26" id="978" /> +<TGConnectingPoint num="27" id="979" /> +<TGConnectingPoint num="28" id="980" /> +<TGConnectingPoint num="29" id="981" /> +<TGConnectingPoint num="30" id="982" /> +<TGConnectingPoint num="31" id="983" /> +<TGConnectingPoint num="32" id="984" /> +<TGConnectingPoint num="33" id="985" /> +<TGConnectingPoint num="34" id="986" /> +<TGConnectingPoint num="35" id="987" /> +<TGConnectingPoint num="36" id="988" /> +<TGConnectingPoint num="37" id="989" /> +<TGConnectingPoint num="38" id="990" /> +<TGConnectingPoint num="39" id="991" /> +<TGConnectingPoint num="40" id="992" /> +<TGConnectingPoint num="41" id="993" /> +<TGConnectingPoint num="42" id="994" /> +<TGConnectingPoint num="43" id="995" /> +<TGConnectingPoint num="44" id="996" /> +<TGConnectingPoint num="45" id="997" /> +<TGConnectingPoint num="46" id="998" /> +<TGConnectingPoint num="47" id="999" /> +<TGConnectingPoint num="48" id="1000" /> +<TGConnectingPoint num="49" id="1001" /> +<TGConnectingPoint num="50" id="1002" /> +<TGConnectingPoint num="51" id="1003" /> +<TGConnectingPoint num="52" id="1004" /> +<TGConnectingPoint num="53" id="1005" /> +<TGConnectingPoint num="54" id="1006" /> +<TGConnectingPoint num="55" id="1007" /> +<TGConnectingPoint num="56" id="1008" /> +<TGConnectingPoint num="57" id="1009" /> +<TGConnectingPoint num="58" id="1010" /> +<TGConnectingPoint num="59" id="1011" /> +<TGConnectingPoint num="60" id="1012" /> +<TGConnectingPoint num="61" id="1013" /> +<TGConnectingPoint num="62" id="1014" /> +<TGConnectingPoint num="63" id="1015" /> +<TGConnectingPoint num="64" id="1016" /> +<TGConnectingPoint num="65" id="1017" /> +<TGConnectingPoint num="66" id="1018" /> +<TGConnectingPoint num="67" id="1019" /> +<TGConnectingPoint num="68" id="1020" /> +<TGConnectingPoint num="69" id="1021" /> +<TGConnectingPoint num="70" id="1022" /> +<TGConnectingPoint num="71" id="1023" /> +<tags value="" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="1097" index="35" uid="0c24f671-06e1-42db-b680-eafb22fcb7c6" > +<cdparam x="468" y="482" /> +<sizeparam width="164" height="97" minWidth="78" minHeight="58" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="state" value="anyBox" /> +<new d="false" /> +<TGConnectingPoint num="0" id="1025" /> +<TGConnectingPoint num="1" id="1026" /> +<TGConnectingPoint num="2" id="1027" /> +<TGConnectingPoint num="3" id="1028" /> +<TGConnectingPoint num="4" id="1029" /> +<TGConnectingPoint num="5" id="1030" /> +<TGConnectingPoint num="6" id="1031" /> +<TGConnectingPoint num="7" id="1032" /> +<TGConnectingPoint num="8" id="1033" /> +<TGConnectingPoint num="9" id="1034" /> +<TGConnectingPoint num="10" id="1035" /> +<TGConnectingPoint num="11" id="1036" /> +<TGConnectingPoint num="12" id="1037" /> +<TGConnectingPoint num="13" id="1038" /> +<TGConnectingPoint num="14" id="1039" /> +<TGConnectingPoint num="15" id="1040" /> +<TGConnectingPoint num="16" id="1041" /> +<TGConnectingPoint num="17" id="1042" /> +<TGConnectingPoint num="18" id="1043" /> +<TGConnectingPoint num="19" id="1044" /> +<TGConnectingPoint num="20" id="1045" /> +<TGConnectingPoint num="21" id="1046" /> +<TGConnectingPoint num="22" id="1047" /> +<TGConnectingPoint num="23" id="1048" /> +<TGConnectingPoint num="24" id="1049" /> +<TGConnectingPoint num="25" id="1050" /> +<TGConnectingPoint num="26" id="1051" /> +<TGConnectingPoint num="27" id="1052" /> +<TGConnectingPoint num="28" id="1053" /> +<TGConnectingPoint num="29" id="1054" /> +<TGConnectingPoint num="30" id="1055" /> +<TGConnectingPoint num="31" id="1056" /> +<TGConnectingPoint num="32" id="1057" /> +<TGConnectingPoint num="33" id="1058" /> +<TGConnectingPoint num="34" id="1059" /> +<TGConnectingPoint num="35" id="1060" /> +<TGConnectingPoint num="36" id="1061" /> +<TGConnectingPoint num="37" id="1062" /> +<TGConnectingPoint num="38" id="1063" /> +<TGConnectingPoint num="39" id="1064" /> +<TGConnectingPoint num="40" id="1065" /> +<TGConnectingPoint num="41" id="1066" /> +<TGConnectingPoint num="42" id="1067" /> +<TGConnectingPoint num="43" id="1068" /> +<TGConnectingPoint num="44" id="1069" /> +<TGConnectingPoint num="45" id="1070" /> +<TGConnectingPoint num="46" id="1071" /> +<TGConnectingPoint num="47" id="1072" /> +<TGConnectingPoint num="48" id="1073" /> +<TGConnectingPoint num="49" id="1074" /> +<TGConnectingPoint num="50" id="1075" /> +<TGConnectingPoint num="51" id="1076" /> +<TGConnectingPoint num="52" id="1077" /> +<TGConnectingPoint num="53" id="1078" /> +<TGConnectingPoint num="54" id="1079" /> +<TGConnectingPoint num="55" id="1080" /> +<TGConnectingPoint num="56" id="1081" /> +<TGConnectingPoint num="57" id="1082" /> +<TGConnectingPoint num="58" id="1083" /> +<TGConnectingPoint num="59" id="1084" /> +<TGConnectingPoint num="60" id="1085" /> +<TGConnectingPoint num="61" id="1086" /> +<TGConnectingPoint num="62" id="1087" /> +<TGConnectingPoint num="63" id="1088" /> +<TGConnectingPoint num="64" id="1089" /> +<TGConnectingPoint num="65" id="1090" /> +<TGConnectingPoint num="66" id="1091" /> +<TGConnectingPoint num="67" id="1092" /> +<TGConnectingPoint num="68" id="1093" /> +<TGConnectingPoint num="69" id="1094" /> +<TGConnectingPoint num="70" id="1095" /> +<TGConnectingPoint num="71" id="1096" /> +<tags value="" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="1170" index="36" uid="afaaf927-936c-4307-ba31-ecbd1c1e3f5a" > +<cdparam x="934" y="649" /> +<sizeparam width="195" height="97" minWidth="78" minHeight="58" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="state" value="preSend" /> +<new d="false" /> +<TGConnectingPoint num="0" id="1098" /> +<TGConnectingPoint num="1" id="1099" /> +<TGConnectingPoint num="2" id="1100" /> +<TGConnectingPoint num="3" id="1101" /> +<TGConnectingPoint num="4" id="1102" /> +<TGConnectingPoint num="5" id="1103" /> +<TGConnectingPoint num="6" id="1104" /> +<TGConnectingPoint num="7" id="1105" /> +<TGConnectingPoint num="8" id="1106" /> +<TGConnectingPoint num="9" id="1107" /> +<TGConnectingPoint num="10" id="1108" /> +<TGConnectingPoint num="11" id="1109" /> +<TGConnectingPoint num="12" id="1110" /> +<TGConnectingPoint num="13" id="1111" /> +<TGConnectingPoint num="14" id="1112" /> +<TGConnectingPoint num="15" id="1113" /> +<TGConnectingPoint num="16" id="1114" /> +<TGConnectingPoint num="17" id="1115" /> +<TGConnectingPoint num="18" id="1116" /> +<TGConnectingPoint num="19" id="1117" /> +<TGConnectingPoint num="20" id="1118" /> +<TGConnectingPoint num="21" id="1119" /> +<TGConnectingPoint num="22" id="1120" /> +<TGConnectingPoint num="23" id="1121" /> +<TGConnectingPoint num="24" id="1122" /> +<TGConnectingPoint num="25" id="1123" /> +<TGConnectingPoint num="26" id="1124" /> +<TGConnectingPoint num="27" id="1125" /> +<TGConnectingPoint num="28" id="1126" /> +<TGConnectingPoint num="29" id="1127" /> +<TGConnectingPoint num="30" id="1128" /> +<TGConnectingPoint num="31" id="1129" /> +<TGConnectingPoint num="32" id="1130" /> +<TGConnectingPoint num="33" id="1131" /> +<TGConnectingPoint num="34" id="1132" /> +<TGConnectingPoint num="35" id="1133" /> +<TGConnectingPoint num="36" id="1134" /> +<TGConnectingPoint num="37" id="1135" /> +<TGConnectingPoint num="38" id="1136" /> +<TGConnectingPoint num="39" id="1137" /> +<TGConnectingPoint num="40" id="1138" /> +<TGConnectingPoint num="41" id="1139" /> +<TGConnectingPoint num="42" id="1140" /> +<TGConnectingPoint num="43" id="1141" /> +<TGConnectingPoint num="44" id="1142" /> +<TGConnectingPoint num="45" id="1143" /> +<TGConnectingPoint num="46" id="1144" /> +<TGConnectingPoint num="47" id="1145" /> +<TGConnectingPoint num="48" id="1146" /> +<TGConnectingPoint num="49" id="1147" /> +<TGConnectingPoint num="50" id="1148" /> +<TGConnectingPoint num="51" id="1149" /> +<TGConnectingPoint num="52" id="1150" /> +<TGConnectingPoint num="53" id="1151" /> +<TGConnectingPoint num="54" id="1152" /> +<TGConnectingPoint num="55" id="1153" /> +<TGConnectingPoint num="56" id="1154" /> +<TGConnectingPoint num="57" id="1155" /> +<TGConnectingPoint num="58" id="1156" /> +<TGConnectingPoint num="59" id="1157" /> +<TGConnectingPoint num="60" id="1158" /> +<TGConnectingPoint num="61" id="1159" /> +<TGConnectingPoint num="62" id="1160" /> +<TGConnectingPoint num="63" id="1161" /> +<TGConnectingPoint num="64" id="1162" /> +<TGConnectingPoint num="65" id="1163" /> +<TGConnectingPoint num="66" id="1164" /> +<TGConnectingPoint num="67" id="1165" /> +<TGConnectingPoint num="68" id="1166" /> +<TGConnectingPoint num="69" id="1167" /> +<TGConnectingPoint num="70" id="1168" /> +<TGConnectingPoint num="71" id="1169" /> +<tags value="" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="1243" index="37" uid="a3a79e57-42cc-4ffb-8fb0-ea597a2142fc" > +<cdparam x="211" y="649" /> +<sizeparam width="195" height="97" minWidth="78" minHeight="58" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="state" value="preSend" /> +<new d="false" /> +<TGConnectingPoint num="0" id="1171" /> +<TGConnectingPoint num="1" id="1172" /> +<TGConnectingPoint num="2" id="1173" /> +<TGConnectingPoint num="3" id="1174" /> +<TGConnectingPoint num="4" id="1175" /> +<TGConnectingPoint num="5" id="1176" /> +<TGConnectingPoint num="6" id="1177" /> +<TGConnectingPoint num="7" id="1178" /> +<TGConnectingPoint num="8" id="1179" /> +<TGConnectingPoint num="9" id="1180" /> +<TGConnectingPoint num="10" id="1181" /> +<TGConnectingPoint num="11" id="1182" /> +<TGConnectingPoint num="12" id="1183" /> +<TGConnectingPoint num="13" id="1184" /> +<TGConnectingPoint num="14" id="1185" /> +<TGConnectingPoint num="15" id="1186" /> +<TGConnectingPoint num="16" id="1187" /> +<TGConnectingPoint num="17" id="1188" /> +<TGConnectingPoint num="18" id="1189" /> +<TGConnectingPoint num="19" id="1190" /> +<TGConnectingPoint num="20" id="1191" /> +<TGConnectingPoint num="21" id="1192" /> +<TGConnectingPoint num="22" id="1193" /> +<TGConnectingPoint num="23" id="1194" /> +<TGConnectingPoint num="24" id="1195" /> +<TGConnectingPoint num="25" id="1196" /> +<TGConnectingPoint num="26" id="1197" /> +<TGConnectingPoint num="27" id="1198" /> +<TGConnectingPoint num="28" id="1199" /> +<TGConnectingPoint num="29" id="1200" /> +<TGConnectingPoint num="30" id="1201" /> +<TGConnectingPoint num="31" id="1202" /> +<TGConnectingPoint num="32" id="1203" /> +<TGConnectingPoint num="33" id="1204" /> +<TGConnectingPoint num="34" id="1205" /> +<TGConnectingPoint num="35" id="1206" /> +<TGConnectingPoint num="36" id="1207" /> +<TGConnectingPoint num="37" id="1208" /> +<TGConnectingPoint num="38" id="1209" /> +<TGConnectingPoint num="39" id="1210" /> +<TGConnectingPoint num="40" id="1211" /> +<TGConnectingPoint num="41" id="1212" /> +<TGConnectingPoint num="42" id="1213" /> +<TGConnectingPoint num="43" id="1214" /> +<TGConnectingPoint num="44" id="1215" /> +<TGConnectingPoint num="45" id="1216" /> +<TGConnectingPoint num="46" id="1217" /> +<TGConnectingPoint num="47" id="1218" /> +<TGConnectingPoint num="48" id="1219" /> +<TGConnectingPoint num="49" id="1220" /> +<TGConnectingPoint num="50" id="1221" /> +<TGConnectingPoint num="51" id="1222" /> +<TGConnectingPoint num="52" id="1223" /> +<TGConnectingPoint num="53" id="1224" /> +<TGConnectingPoint num="54" id="1225" /> +<TGConnectingPoint num="55" id="1226" /> +<TGConnectingPoint num="56" id="1227" /> +<TGConnectingPoint num="57" id="1228" /> +<TGConnectingPoint num="58" id="1229" /> +<TGConnectingPoint num="59" id="1230" /> +<TGConnectingPoint num="60" id="1231" /> +<TGConnectingPoint num="61" id="1232" /> +<TGConnectingPoint num="62" id="1233" /> +<TGConnectingPoint num="63" id="1234" /> +<TGConnectingPoint num="64" id="1235" /> +<TGConnectingPoint num="65" id="1236" /> +<TGConnectingPoint num="66" id="1237" /> +<TGConnectingPoint num="67" id="1238" /> +<TGConnectingPoint num="68" id="1239" /> +<TGConnectingPoint num="69" id="1240" /> +<TGConnectingPoint num="70" id="1241" /> +<TGConnectingPoint num="71" id="1242" /> +<tags value="" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="1316" index="38" uid="d1b15404-501b-4153-814d-3d3b7dded431" > +<cdparam x="690" y="649" /> +<sizeparam width="195" height="97" minWidth="78" minHeight="58" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="state" value="preSend" /> +<new d="false" /> +<TGConnectingPoint num="0" id="1244" /> +<TGConnectingPoint num="1" id="1245" /> +<TGConnectingPoint num="2" id="1246" /> +<TGConnectingPoint num="3" id="1247" /> +<TGConnectingPoint num="4" id="1248" /> +<TGConnectingPoint num="5" id="1249" /> +<TGConnectingPoint num="6" id="1250" /> +<TGConnectingPoint num="7" id="1251" /> +<TGConnectingPoint num="8" id="1252" /> +<TGConnectingPoint num="9" id="1253" /> +<TGConnectingPoint num="10" id="1254" /> +<TGConnectingPoint num="11" id="1255" /> +<TGConnectingPoint num="12" id="1256" /> +<TGConnectingPoint num="13" id="1257" /> +<TGConnectingPoint num="14" id="1258" /> +<TGConnectingPoint num="15" id="1259" /> +<TGConnectingPoint num="16" id="1260" /> +<TGConnectingPoint num="17" id="1261" /> +<TGConnectingPoint num="18" id="1262" /> +<TGConnectingPoint num="19" id="1263" /> +<TGConnectingPoint num="20" id="1264" /> +<TGConnectingPoint num="21" id="1265" /> +<TGConnectingPoint num="22" id="1266" /> +<TGConnectingPoint num="23" id="1267" /> +<TGConnectingPoint num="24" id="1268" /> +<TGConnectingPoint num="25" id="1269" /> +<TGConnectingPoint num="26" id="1270" /> +<TGConnectingPoint num="27" id="1271" /> +<TGConnectingPoint num="28" id="1272" /> +<TGConnectingPoint num="29" id="1273" /> +<TGConnectingPoint num="30" id="1274" /> +<TGConnectingPoint num="31" id="1275" /> +<TGConnectingPoint num="32" id="1276" /> +<TGConnectingPoint num="33" id="1277" /> +<TGConnectingPoint num="34" id="1278" /> +<TGConnectingPoint num="35" id="1279" /> +<TGConnectingPoint num="36" id="1280" /> +<TGConnectingPoint num="37" id="1281" /> +<TGConnectingPoint num="38" id="1282" /> +<TGConnectingPoint num="39" id="1283" /> +<TGConnectingPoint num="40" id="1284" /> +<TGConnectingPoint num="41" id="1285" /> +<TGConnectingPoint num="42" id="1286" /> +<TGConnectingPoint num="43" id="1287" /> +<TGConnectingPoint num="44" id="1288" /> +<TGConnectingPoint num="45" id="1289" /> +<TGConnectingPoint num="46" id="1290" /> +<TGConnectingPoint num="47" id="1291" /> +<TGConnectingPoint num="48" id="1292" /> +<TGConnectingPoint num="49" id="1293" /> +<TGConnectingPoint num="50" id="1294" /> +<TGConnectingPoint num="51" id="1295" /> +<TGConnectingPoint num="52" id="1296" /> +<TGConnectingPoint num="53" id="1297" /> +<TGConnectingPoint num="54" id="1298" /> +<TGConnectingPoint num="55" id="1299" /> +<TGConnectingPoint num="56" id="1300" /> +<TGConnectingPoint num="57" id="1301" /> +<TGConnectingPoint num="58" id="1302" /> +<TGConnectingPoint num="59" id="1303" /> +<TGConnectingPoint num="60" id="1304" /> +<TGConnectingPoint num="61" id="1305" /> +<TGConnectingPoint num="62" id="1306" /> +<TGConnectingPoint num="63" id="1307" /> +<TGConnectingPoint num="64" id="1308" /> +<TGConnectingPoint num="65" id="1309" /> +<TGConnectingPoint num="66" id="1310" /> +<TGConnectingPoint num="67" id="1311" /> +<TGConnectingPoint num="68" id="1312" /> +<TGConnectingPoint num="69" id="1313" /> +<TGConnectingPoint num="70" id="1314" /> +<TGConnectingPoint num="71" id="1315" /> +<tags value="" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="184" index="39" uid="2e483a88-d6f8-4df6-a208-261f3f18c923" > +<cdparam x="443" y="650" /> +<sizeparam width="214" height="97" minWidth="78" minHeight="58" maxWidth="3906" maxHeight="3906" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="state" value="preReceive" /> +<new d="false" /> +<TGConnectingPoint num="0" id="112" /> +<TGConnectingPoint num="1" id="113" /> +<TGConnectingPoint num="2" id="114" /> +<TGConnectingPoint num="3" id="115" /> +<TGConnectingPoint num="4" id="116" /> +<TGConnectingPoint num="5" id="117" /> +<TGConnectingPoint num="6" id="118" /> +<TGConnectingPoint num="7" id="119" /> +<TGConnectingPoint num="8" id="120" /> +<TGConnectingPoint num="9" id="121" /> +<TGConnectingPoint num="10" id="122" /> +<TGConnectingPoint num="11" id="123" /> +<TGConnectingPoint num="12" id="124" /> +<TGConnectingPoint num="13" id="125" /> +<TGConnectingPoint num="14" id="126" /> +<TGConnectingPoint num="15" id="127" /> +<TGConnectingPoint num="16" id="128" /> +<TGConnectingPoint num="17" id="129" /> +<TGConnectingPoint num="18" id="130" /> +<TGConnectingPoint num="19" id="131" /> +<TGConnectingPoint num="20" id="132" /> +<TGConnectingPoint num="21" id="133" /> +<TGConnectingPoint num="22" id="134" /> +<TGConnectingPoint num="23" id="135" /> +<TGConnectingPoint num="24" id="136" /> +<TGConnectingPoint num="25" id="137" /> +<TGConnectingPoint num="26" id="138" /> +<TGConnectingPoint num="27" id="139" /> +<TGConnectingPoint num="28" id="140" /> +<TGConnectingPoint num="29" id="141" /> +<TGConnectingPoint num="30" id="142" /> +<TGConnectingPoint num="31" id="143" /> +<TGConnectingPoint num="32" id="144" /> +<TGConnectingPoint num="33" id="145" /> +<TGConnectingPoint num="34" id="146" /> +<TGConnectingPoint num="35" id="147" /> +<TGConnectingPoint num="36" id="148" /> +<TGConnectingPoint num="37" id="149" /> +<TGConnectingPoint num="38" id="150" /> +<TGConnectingPoint num="39" id="151" /> +<TGConnectingPoint num="40" id="152" /> +<TGConnectingPoint num="41" id="153" /> +<TGConnectingPoint num="42" id="154" /> +<TGConnectingPoint num="43" id="155" /> +<TGConnectingPoint num="44" id="156" /> +<TGConnectingPoint num="45" id="157" /> +<TGConnectingPoint num="46" id="158" /> +<TGConnectingPoint num="47" id="159" /> +<TGConnectingPoint num="48" id="160" /> +<TGConnectingPoint num="49" id="161" /> +<TGConnectingPoint num="50" id="162" /> +<TGConnectingPoint num="51" id="163" /> +<TGConnectingPoint num="52" id="164" /> +<TGConnectingPoint num="53" id="165" /> +<TGConnectingPoint num="54" id="166" /> +<TGConnectingPoint num="55" id="167" /> +<TGConnectingPoint num="56" id="168" /> +<TGConnectingPoint num="57" id="169" /> +<TGConnectingPoint num="58" id="170" /> +<TGConnectingPoint num="59" id="171" /> +<TGConnectingPoint num="60" id="172" /> +<TGConnectingPoint num="61" id="173" /> +<TGConnectingPoint num="62" id="174" /> +<TGConnectingPoint num="63" id="175" /> +<TGConnectingPoint num="64" id="176" /> +<TGConnectingPoint num="65" id="177" /> +<TGConnectingPoint num="66" id="178" /> +<TGConnectingPoint num="67" id="179" /> +<TGConnectingPoint num="68" id="180" /> +<TGConnectingPoint num="69" id="181" /> +<TGConnectingPoint num="70" id="182" /> +<TGConnectingPoint num="71" id="183" /> +<tags value="" /> +<extraparam> +</extraparam> +</COMPONENT> + + +</AVATARStateMachineDiagramPanel> + +</Modeling> + + + + +</TURTLEGMODELING> \ No newline at end of file diff --git a/doc/avatarSysMLV2/example_models/tt_tosysml_with_timer.xml b/doc/avatarSysMLV2/example_models/tt_tosysml_with_timer.xml new file mode 100644 index 0000000000..593a3d0e72 --- /dev/null +++ b/doc/avatarSysMLV2/example_models/tt_tosysml_with_timer.xml @@ -0,0 +1,1181 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<TURTLEGMODELING version="3.0 beta" ANIMATE_INTERACTIVE_SIMULATION="true" ACTIVATE_PENALTIES="true" UPDATE_INFORMATION_DIPLO_SIM="false" ANIMATE_WITH_INFO_DIPLO_SIM="true" OPEN_DIAG_DIPLO_SIM="false" LAST_SELECTED_MAIN_TAB="0" LAST_SELECTED_SUB_TAB="1"> + +<Modeling type="AVATAR Design" nameTab="Design" tabs="Block Diagram$B0$B1$B1_0" > +<AVATARBlockDiagramPanel name="Block Diagram" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" > +<MainCode value="void __user_init() {"/> +<MainCode value="}"/> +<Optimized value="true" /> +<considerTimingOperators value="true" /> +<Validated value="B1;B1_0;B0;" /> +<Ignored value="" /> + +<CONNECTOR type="5002" id="2" index="0" uid="e2d900d2-9cd1-419a-a79e-03081de16bf0" > +<cdparam x="338" y="230" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<TGConnectingPoint num="0" id="1" /> +<P1 x="315" y="285" id="98" /> +<P2 x="384" y="277" id="13" /> +<AutomaticDrawing data="true" /> +<new d="false" /> +<extraparam> +<iso value="in in0(int x, Point p, bool b)" /> +<osd value="out out1(int x, Point p, bool b)" /> +<isd value="in in1(int x, Point p, bool b)" /> +<oso value="out out0(int x, Point p, bool b)" /> +<FIFOType asynchronous="false" synchronousCH="true" size="1" blocking="false" private="true" broadcast="false" lossy="false" ams="false" /> +</extraparam> +</CONNECTOR> +<COMPONENT type="5000" id="84" index="1" uid="94fc245f-ba93-486c-a741-c888fb20658d" > +<cdparam x="356" y="175" /> +<sizeparam width="229" height="228" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Block" value="B1" /> +<new d="false" /> +<TGConnectingPoint num="0" id="44" /> +<TGConnectingPoint num="1" id="45" /> +<TGConnectingPoint num="2" id="46" /> +<TGConnectingPoint num="3" id="47" /> +<TGConnectingPoint num="4" id="48" /> +<TGConnectingPoint num="5" id="49" /> +<TGConnectingPoint num="6" id="50" /> +<TGConnectingPoint num="7" id="51" /> +<TGConnectingPoint num="8" id="52" /> +<TGConnectingPoint num="9" id="53" /> +<TGConnectingPoint num="10" id="54" /> +<TGConnectingPoint num="11" id="55" /> +<TGConnectingPoint num="12" id="56" /> +<TGConnectingPoint num="13" id="57" /> +<TGConnectingPoint num="14" id="58" /> +<TGConnectingPoint num="15" id="59" /> +<TGConnectingPoint num="16" id="60" /> +<TGConnectingPoint num="17" id="61" /> +<TGConnectingPoint num="18" id="62" /> +<TGConnectingPoint num="19" id="63" /> +<TGConnectingPoint num="20" id="64" /> +<TGConnectingPoint num="21" id="65" /> +<TGConnectingPoint num="22" id="66" /> +<TGConnectingPoint num="23" id="67" /> +<TGConnectingPoint num="24" id="68" /> +<TGConnectingPoint num="25" id="69" /> +<TGConnectingPoint num="26" id="70" /> +<TGConnectingPoint num="27" id="71" /> +<TGConnectingPoint num="28" id="72" /> +<TGConnectingPoint num="29" id="73" /> +<TGConnectingPoint num="30" id="74" /> +<TGConnectingPoint num="31" id="75" /> +<TGConnectingPoint num="32" id="76" /> +<TGConnectingPoint num="33" id="77" /> +<TGConnectingPoint num="34" id="78" /> +<TGConnectingPoint num="35" id="79" /> +<TGConnectingPoint num="36" id="80" /> +<TGConnectingPoint num="37" id="81" /> +<TGConnectingPoint num="38" id="82" /> +<TGConnectingPoint num="39" id="83" /> +<extraparam> +<blockType data="block" color="-4072719" /> +<CryptoBlock value="false" /> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="5000" id="43" index="4" uid="2b8839f5-8a46-4ef8-b202-68d15fae0cbb" > +<father id="84" num="0" /> +<cdparam x="384" y="239" /> +<sizeparam width="183" height="154" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="46" minY="0" maxY="74" /> +<infoparam name="Block0" value="B1_0" /> +<new d="false" /> +<TGConnectingPoint num="0" id="3" /> +<TGConnectingPoint num="1" id="4" /> +<TGConnectingPoint num="2" id="5" /> +<TGConnectingPoint num="3" id="6" /> +<TGConnectingPoint num="4" id="7" /> +<TGConnectingPoint num="5" id="8" /> +<TGConnectingPoint num="6" id="9" /> +<TGConnectingPoint num="7" id="10" /> +<TGConnectingPoint num="8" id="11" /> +<TGConnectingPoint num="9" id="12" /> +<TGConnectingPoint num="10" id="13" /> +<TGConnectingPoint num="11" id="14" /> +<TGConnectingPoint num="12" id="15" /> +<TGConnectingPoint num="13" id="16" /> +<TGConnectingPoint num="14" id="17" /> +<TGConnectingPoint num="15" id="18" /> +<TGConnectingPoint num="16" id="19" /> +<TGConnectingPoint num="17" id="20" /> +<TGConnectingPoint num="18" id="21" /> +<TGConnectingPoint num="19" id="22" /> +<TGConnectingPoint num="20" id="23" /> +<TGConnectingPoint num="21" id="24" /> +<TGConnectingPoint num="22" id="25" /> +<TGConnectingPoint num="23" id="26" /> +<TGConnectingPoint num="24" id="27" /> +<TGConnectingPoint num="25" id="28" /> +<TGConnectingPoint num="26" id="29" /> +<TGConnectingPoint num="27" id="30" /> +<TGConnectingPoint num="28" id="31" /> +<TGConnectingPoint num="29" id="32" /> +<TGConnectingPoint num="30" id="33" /> +<TGConnectingPoint num="31" id="34" /> +<TGConnectingPoint num="32" id="35" /> +<TGConnectingPoint num="33" id="36" /> +<TGConnectingPoint num="34" id="37" /> +<TGConnectingPoint num="35" id="38" /> +<TGConnectingPoint num="36" id="39" /> +<TGConnectingPoint num="37" id="40" /> +<TGConnectingPoint num="38" id="41" /> +<TGConnectingPoint num="39" id="42" /> +<extraparam> +<blockType data="block" color="-4072719" /> +<CryptoBlock value="false" /> +<Attribute access="0" var="0" id="x" value="0" type="8" typeOther="" /> +<Attribute access="0" var="0" id="b" value="false" type="4" typeOther="" /> +<Attribute access="0" var="0" id="p" value="" type="5" typeOther="Point" /> +<Attribute access="0" var="0" id="t" value="" type="9" typeOther="" /> +<Signal value="in in1(int x, Point p, bool b)" attached="true" /> +<Signal value="out out1(int x, Point p, bool b)" attached="true" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="5003" id="93" index="2" uid="8aa452d0-d94c-4687-872a-d8da736a353a" > +<cdparam x="235" y="77" /> +<sizeparam width="93" height="88" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="DataType" value="Point" /> +<new d="false" /> +<TGConnectingPoint num="0" id="85" /> +<TGConnectingPoint num="1" id="86" /> +<TGConnectingPoint num="2" id="87" /> +<TGConnectingPoint num="3" id="88" /> +<TGConnectingPoint num="4" id="89" /> +<TGConnectingPoint num="5" id="90" /> +<TGConnectingPoint num="6" id="91" /> +<TGConnectingPoint num="7" id="92" /> +<extraparam> +<Attribute access="0" var="0" id="x" value="0" type="8" typeOther="" /> +<Attribute access="0" var="0" id="y" value="0" type="8" typeOther="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5000" id="134" index="3" uid="06d9b9cf-d5f5-46a8-ba3d-befc1c5aff9f" > +<cdparam x="97" y="180" /> +<sizeparam width="218" height="210" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Block" value="B0" /> +<new d="false" /> +<TGConnectingPoint num="0" id="94" /> +<TGConnectingPoint num="1" id="95" /> +<TGConnectingPoint num="2" id="96" /> +<TGConnectingPoint num="3" id="97" /> +<TGConnectingPoint num="4" id="98" /> +<TGConnectingPoint num="5" id="99" /> +<TGConnectingPoint num="6" id="100" /> +<TGConnectingPoint num="7" id="101" /> +<TGConnectingPoint num="8" id="102" /> +<TGConnectingPoint num="9" id="103" /> +<TGConnectingPoint num="10" id="104" /> +<TGConnectingPoint num="11" id="105" /> +<TGConnectingPoint num="12" id="106" /> +<TGConnectingPoint num="13" id="107" /> +<TGConnectingPoint num="14" id="108" /> +<TGConnectingPoint num="15" id="109" /> +<TGConnectingPoint num="16" id="110" /> +<TGConnectingPoint num="17" id="111" /> +<TGConnectingPoint num="18" id="112" /> +<TGConnectingPoint num="19" id="113" /> +<TGConnectingPoint num="20" id="114" /> +<TGConnectingPoint num="21" id="115" /> +<TGConnectingPoint num="22" id="116" /> +<TGConnectingPoint num="23" id="117" /> +<TGConnectingPoint num="24" id="118" /> +<TGConnectingPoint num="25" id="119" /> +<TGConnectingPoint num="26" id="120" /> +<TGConnectingPoint num="27" id="121" /> +<TGConnectingPoint num="28" id="122" /> +<TGConnectingPoint num="29" id="123" /> +<TGConnectingPoint num="30" id="124" /> +<TGConnectingPoint num="31" id="125" /> +<TGConnectingPoint num="32" id="126" /> +<TGConnectingPoint num="33" id="127" /> +<TGConnectingPoint num="34" id="128" /> +<TGConnectingPoint num="35" id="129" /> +<TGConnectingPoint num="36" id="130" /> +<TGConnectingPoint num="37" id="131" /> +<TGConnectingPoint num="38" id="132" /> +<TGConnectingPoint num="39" id="133" /> +<extraparam> +<blockType data="block" color="-4072719" /> +<CryptoBlock value="false" /> +<Attribute access="0" var="0" id="x" value="" type="8" typeOther="" /> +<Attribute access="0" var="0" id="b" value="" type="4" typeOther="" /> +<Attribute access="0" var="0" id="p" value="" type="5" typeOther="Point" /> +<Attribute access="0" var="0" id="y" value="" type="8" typeOther="" /> +<Method value="Point make(int x, int y)" /> +<Method value="int getx(Point p)" /> +<Method value="foo(bool b, Point p, int x)" /> +<Signal value="in in0(int x, Point p, bool b)" attached="true" /> +<Signal value="out out0(int x, Point p, bool b)" attached="true" /> +</extraparam> +</COMPONENT> + + +</AVATARBlockDiagramPanel> + +<AVATARStateMachineDiagramPanel name="B0" minX="16" maxX="3906" minY="16" maxY="2344" zoom="1.5625" > +<CONNECTOR type="5102" id="141" index="0" uid="1146a1cf-2f3c-4f6a-9b58-131f269eed11" > +<cdparam x="359" y="240" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="140" /> +<P1 x="359" y="240" id="175" /> +<P2 x="359" y="309" id="187" /> +<AutomaticDrawing data="true" /> +<new d="false" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="139" index="9" uid="c3a05878-d247-4b3b-b344-d32b2ad13ad7" > +<father id="141" num="0" /> +<cdparam x="379" y="240" /> +<sizeparam width="119" height="48" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="16" maxX="3906" minY="16" maxY="2344" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<new d="false" /> +<TGConnectingPoint num="0" id="135" /> +<TGConnectingPoint num="1" id="136" /> +<TGConnectingPoint num="2" id="137" /> +<TGConnectingPoint num="3" id="138" /> +<extraparam> +<guard value="[ ]" enabled="true"/> +<afterMin value="" enabled="true"/> +<afterMax value="" enabled="true"/> +<extraDelay1 value="" enabled="true"/> +<extraDelay2 value="" enabled="true"/> +<delayDistributionLaw value="0" enabled="true"/> +<computeMin value="" enabled="true"/> +<computeMax value="" enabled="true"/> +<probability value="" enabled="true"/> +<actions value="p = make(x,y)" enabled="true"/> +<actions value="x = getx(p)" enabled="true"/> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="148" index="1" uid="1f01956e-7a84-47df-9fd9-f7a45d1e5f4c" > +<cdparam x="172" y="610" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="3125" maxHeight="3125" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="147" /> +<P1 x="359" y="446" id="164" /> +<P2 x="359" y="493" id="185" /> +<AutomaticDrawing data="true" /> +<new d="false" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="146" index="10" uid="de96ca94-86cb-4bf3-b63e-421a93ccfc67" > +<father id="148" num="0" /> +<cdparam x="172" y="668" /> +<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="3906" minY="10" maxY="2343" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<new d="false" /> +<TGConnectingPoint num="0" id="142" /> +<TGConnectingPoint num="1" id="143" /> +<TGConnectingPoint num="2" id="144" /> +<TGConnectingPoint num="3" id="145" /> +<extraparam> +<guard value="[ ]" enabled="true"/> +<afterMin value="" enabled="true"/> +<afterMax value="" enabled="true"/> +<extraDelay1 value="" enabled="true"/> +<extraDelay2 value="" enabled="true"/> +<delayDistributionLaw value="0" enabled="true"/> +<computeMin value="" enabled="true"/> +<computeMax value="" enabled="true"/> +<probability value="" enabled="true"/> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="155" index="2" uid="1a1f75f0-3055-4d7a-aa5a-4a70634e3484" > +<cdparam x="278" y="537" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="3125" maxHeight="3125" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="154" /> +<P1 x="359" y="354" id="188" /> +<P2 x="359" y="401" id="163" /> +<AutomaticDrawing data="true" /> +<new d="false" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="153" index="11" uid="14ed42f2-4c94-4e0a-9a05-d5bc511d1aa5" > +<father id="155" num="0" /> +<cdparam x="378" y="350" /> +<sizeparam width="107" height="48" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="3906" minY="10" maxY="2343" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<new d="false" /> +<TGConnectingPoint num="0" id="149" /> +<TGConnectingPoint num="1" id="150" /> +<TGConnectingPoint num="2" id="151" /> +<TGConnectingPoint num="3" id="152" /> +<extraparam> +<guard value="[p.x>4 ]" enabled="true"/> +<afterMin value="" enabled="true"/> +<afterMax value="" enabled="true"/> +<extraDelay1 value="" enabled="true"/> +<extraDelay2 value="" enabled="true"/> +<delayDistributionLaw value="0" enabled="true"/> +<computeMin value="" enabled="true"/> +<computeMax value="" enabled="true"/> +<probability value="" enabled="true"/> +<actions value="foo(b,p,x)" enabled="true"/> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="162" index="3" uid="833ce51f-ce8d-402a-819a-526a0071f83a" > +<cdparam x="356" y="181" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="3125" maxHeight="3125" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="161" /> +<P1 x="359" y="74" id="190" /> +<P2 x="359" y="195" id="174" /> +<AutomaticDrawing data="true" /> +<new d="false" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="160" index="12" uid="dd687934-2033-4ae7-a9a0-36d732978073" > +<father id="162" num="0" /> +<cdparam x="380" y="75" /> +<sizeparam width="112" height="94" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="3906" minY="10" maxY="2343" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<new d="false" /> +<TGConnectingPoint num="0" id="156" /> +<TGConnectingPoint num="1" id="157" /> +<TGConnectingPoint num="2" id="158" /> +<TGConnectingPoint num="3" id="159" /> +<extraparam> +<guard value="[ ]" enabled="true"/> +<afterMin value="1" enabled="true"/> +<afterMax value="p.x" enabled="true"/> +<extraDelay1 value="" enabled="true"/> +<extraDelay2 value="" enabled="true"/> +<delayDistributionLaw value="0" enabled="true"/> +<computeMin value="" enabled="true"/> +<computeMax value="" enabled="true"/> +<probability value="" enabled="true"/> +<actions value="x = 1" enabled="true"/> +<actions value="b = true" enabled="true"/> +<actions value="p.x = x" enabled="true"/> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="5104" id="173" index="4" uid="507ab36b-12af-40a9-b4d3-d1687f4ee635" > +<cdparam x="303" y="408" /> +<sizeparam width="113" height="31" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2499" minY="10" maxY="1500" /> +<infoparam name="Receive signal" value="in0(x, p, b)" /> +<new d="false" /> +<TGConnectingPoint num="0" id="163" /> +<TGConnectingPoint num="1" id="164" /> +<TGConnectingPoint num="2" id="165" /> +<TGConnectingPoint num="3" id="166" /> +<TGConnectingPoint num="4" id="167" /> +<TGConnectingPoint num="5" id="168" /> +<TGConnectingPoint num="6" id="169" /> +<TGConnectingPoint num="7" id="170" /> +<TGConnectingPoint num="8" id="171" /> +<TGConnectingPoint num="9" id="172" /> +</COMPONENT> + +<COMPONENT type="5103" id="184" index="5" uid="83bfdfcd-2185-424c-ad19-260ec86acd32" > +<cdparam x="301" y="202" /> +<sizeparam width="116" height="31" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2499" minY="10" maxY="1500" /> +<infoparam name="Send signal" value="out0(x, p, b)" /> +<new d="false" /> +<TGConnectingPoint num="0" id="174" /> +<TGConnectingPoint num="1" id="175" /> +<TGConnectingPoint num="2" id="176" /> +<TGConnectingPoint num="3" id="177" /> +<TGConnectingPoint num="4" id="178" /> +<TGConnectingPoint num="5" id="179" /> +<TGConnectingPoint num="6" id="180" /> +<TGConnectingPoint num="7" id="181" /> +<TGConnectingPoint num="8" id="182" /> +<TGConnectingPoint num="9" id="183" /> +</COMPONENT> + +<COMPONENT type="5101" id="186" index="6" uid="4c83d303-bd2a-4705-9638-d3da5a6d30ba" > +<cdparam x="344" y="500" /> +<sizeparam width="31" height="31" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="16" maxX="3906" minY="16" maxY="2344" /> +<infoparam name="stop state" value="null" /> +<new d="false" /> +<TGConnectingPoint num="0" id="185" /> +</COMPONENT> + +<COMPONENT type="5108" id="189" index="7" uid="c8fc7cc9-d99c-4e2d-b466-4e440c0ba0d7" > +<cdparam x="261" y="316" /> +<sizeparam width="196" height="31" minWidth="46" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2499" minY="10" maxY="1500" /> +<infoparam name="TGComponent" value="null" /> +<new d="false" /> +<TGConnectingPoint num="0" id="187" /> +<TGConnectingPoint num="1" id="188" /> +<extraparam> +<Data variable="x" minValue="0" maxValue="p.y" functionId="0" extraAttribute1="" extraAttribute2="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5100" id="191" index="8" uid="02d7e1f1-28a4-4403-9e64-d6a4786cea7d" > +<cdparam x="348" y="44" /> +<sizeparam width="23" height="23" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2499" minY="10" maxY="1500" /> +<infoparam name="start state" value="null" /> +<new d="false" /> +<TGConnectingPoint num="0" id="190" /> +</COMPONENT> + + +</AVATARStateMachineDiagramPanel> + +<AVATARStateMachineDiagramPanel name="B1" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" > +<COMPONENT type="5100" id="193" index="0" uid="5ee8db59-2cb6-4210-9cac-0363ba606b88" > +<cdparam x="400" y="50" /> +<sizeparam width="15" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="start state" value="null" /> +<new d="false" /> +<TGConnectingPoint num="0" id="192" /> +</COMPONENT> + + +</AVATARStateMachineDiagramPanel> + +<AVATARStateMachineDiagramPanel name="B1_0" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" > +<CONNECTOR type="5102" id="206" index="0" uid="74d4d087-22e6-4735-a473-2b777a473eee" > +<cdparam x="519" y="439" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1280" maxHeight="1280" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="202" /> +<TGConnectingPoint num="1" id="203" /> +<TGConnectingPoint num="2" id="204" /> +<TGConnectingPoint num="3" id="205" /> +<P1 x="484" y="427" id="277" /> +<P2 x="404" y="223" id="386" /> +<Point x="484" y="439" /> +<Point x="535" y="439" /> +<Point x="535" y="223" /> +<AutomaticDrawing data="true" /> +<new d="false" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="194" index="19" uid="36a4768a-9652-43bb-845d-209be2c965da" > +<father id="206" num="0" /> +<cdparam x="484" y="439" /> +<sizeparam width="8" height="8" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="16" maxX="2499" minY="16" maxY="1500" /> +<infoparam name="point " value="null" /> +<new d="false" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="195" index="20" uid="39ef4810-055d-4eaf-a409-784ef6b1a786" > +<father id="206" num="1" /> +<cdparam x="535" y="439" /> +<sizeparam width="8" height="8" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="16" maxX="2499" minY="16" maxY="1500" /> +<infoparam name="point " value="null" /> +<new d="false" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="196" index="21" uid="026cf268-175f-4163-a255-750c9c778d1d" > +<father id="206" num="2" /> +<cdparam x="535" y="223" /> +<sizeparam width="8" height="8" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="16" maxX="2499" minY="16" maxY="1500" /> +<infoparam name="point " value="null" /> +<new d="false" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="201" index="22" uid="7270605d-c970-425f-8bf8-b5065cf75ec2" > +<father id="206" num="3" /> +<cdparam x="438" y="311" /> +<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="16" maxX="2499" minY="16" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<new d="false" /> +<TGConnectingPoint num="0" id="197" /> +<TGConnectingPoint num="1" id="198" /> +<TGConnectingPoint num="2" id="199" /> +<TGConnectingPoint num="3" id="200" /> +<extraparam> +<guard value="[ ]" enabled="true"/> +<afterMin value="" enabled="true"/> +<afterMax value="" enabled="true"/> +<extraDelay1 value="" enabled="true"/> +<extraDelay2 value="" enabled="true"/> +<delayDistributionLaw value="0" enabled="true"/> +<computeMin value="" enabled="true"/> +<computeMax value="" enabled="true"/> +<probability value="" enabled="true"/> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="213" index="1" uid="928bb940-f1ee-436c-9f17-4857b6f782aa" > +<cdparam x="484" y="373" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1280" maxHeight="1280" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="212" /> +<P1 x="485" y="373" id="329" /> +<P2 x="484" y="397" id="276" /> +<AutomaticDrawing data="true" /> +<new d="false" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="211" index="23" uid="0213b0ca-9329-414a-80ad-7921a4d9583b" > +<father id="213" num="0" /> +<cdparam x="501" y="391" /> +<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="16" maxX="2499" minY="16" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<new d="false" /> +<TGConnectingPoint num="0" id="207" /> +<TGConnectingPoint num="1" id="208" /> +<TGConnectingPoint num="2" id="209" /> +<TGConnectingPoint num="3" id="210" /> +<extraparam> +<guard value="[ ]" enabled="true"/> +<afterMin value="" enabled="true"/> +<afterMax value="" enabled="true"/> +<extraDelay1 value="" enabled="true"/> +<extraDelay2 value="" enabled="true"/> +<delayDistributionLaw value="0" enabled="true"/> +<computeMin value="" enabled="true"/> +<computeMax value="" enabled="true"/> +<probability value="" enabled="true"/> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="226" index="2" uid="bc2e2186-ed41-4917-b20c-6144ac1bf4d7" > +<cdparam x="429" y="424" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="222" /> +<TGConnectingPoint num="1" id="223" /> +<TGConnectingPoint num="2" id="224" /> +<TGConnectingPoint num="3" id="225" /> +<P1 x="410" y="428" id="288" /> +<P2 x="398" y="348" id="301" /> +<Point x="409" y="441" /> +<Point x="366" y="441" /> +<Point x="366" y="348" /> +<AutomaticDrawing data="true" /> +<new d="false" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="214" index="24" uid="0de4328e-37e4-435d-81e5-d1d840c7b967" > +<father id="226" num="0" /> +<cdparam x="409" y="441" /> +<sizeparam width="8" height="8" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2499" minY="10" maxY="1499" /> +<infoparam name="point " value="null" /> +<new d="false" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="215" index="25" uid="4cdf03f5-ab6b-4197-961f-5725ef18f4c2" > +<father id="226" num="1" /> +<cdparam x="366" y="441" /> +<sizeparam width="8" height="8" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2499" minY="10" maxY="1499" /> +<infoparam name="point " value="null" /> +<new d="false" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="216" index="26" uid="c81192a6-0500-4f55-b09a-6458263194a2" > +<father id="226" num="2" /> +<cdparam x="366" y="348" /> +<sizeparam width="8" height="8" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2499" minY="10" maxY="1499" /> +<infoparam name="point " value="null" /> +<new d="false" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="221" index="27" uid="fe9df050-f3a4-40b9-be8f-2206708a7e69" > +<father id="226" num="3" /> +<cdparam x="413" y="386" /> +<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2499" minY="10" maxY="1499" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<new d="false" /> +<TGConnectingPoint num="0" id="217" /> +<TGConnectingPoint num="1" id="218" /> +<TGConnectingPoint num="2" id="219" /> +<TGConnectingPoint num="3" id="220" /> +<extraparam> +<guard value="[ ]" enabled="true"/> +<afterMin value="" enabled="true"/> +<afterMax value="" enabled="true"/> +<extraDelay1 value="" enabled="true"/> +<extraDelay2 value="" enabled="true"/> +<delayDistributionLaw value="0" enabled="true"/> +<computeMin value="" enabled="true"/> +<computeMax value="" enabled="true"/> +<probability value="" enabled="true"/> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="233" index="3" uid="fbada9ae-ff5e-4412-920c-379b7fa44bea" > +<cdparam x="422" y="373" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="232" /> +<P1 x="410" y="373" id="326" /> +<P2 x="410" y="398" id="287" /> +<AutomaticDrawing data="true" /> +<new d="false" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="231" index="28" uid="7a339b9b-cfe9-41af-9206-3daa79b45745" > +<father id="233" num="0" /> +<cdparam x="425" y="384" /> +<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2499" minY="10" maxY="1499" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<new d="false" /> +<TGConnectingPoint num="0" id="227" /> +<TGConnectingPoint num="1" id="228" /> +<TGConnectingPoint num="2" id="229" /> +<TGConnectingPoint num="3" id="230" /> +<extraparam> +<guard value="[ ]" enabled="true"/> +<afterMin value="" enabled="true"/> +<afterMax value="" enabled="true"/> +<extraDelay1 value="" enabled="true"/> +<extraDelay2 value="" enabled="true"/> +<delayDistributionLaw value="0" enabled="true"/> +<computeMin value="" enabled="true"/> +<computeMax value="" enabled="true"/> +<probability value="" enabled="true"/> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="240" index="4" uid="90c7cded-4725-4883-8841-04e2104531d6" > +<cdparam x="397" y="278" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="239" /> +<P1 x="409" y="301" id="372" /> +<P2 x="410" y="323" id="314" /> +<AutomaticDrawing data="true" /> +<new d="false" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="238" index="29" uid="2b987670-9d6b-4c27-96f4-d6b309ccfb2e" > +<father id="240" num="0" /> +<cdparam x="396" y="295" /> +<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2499" minY="10" maxY="1499" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<new d="false" /> +<TGConnectingPoint num="0" id="234" /> +<TGConnectingPoint num="1" id="235" /> +<TGConnectingPoint num="2" id="236" /> +<TGConnectingPoint num="3" id="237" /> +<extraparam> +<guard value="[ ]" enabled="true"/> +<afterMin value="" enabled="true"/> +<afterMax value="" enabled="true"/> +<extraDelay1 value="" enabled="true"/> +<extraDelay2 value="" enabled="true"/> +<delayDistributionLaw value="0" enabled="true"/> +<computeMin value="" enabled="true"/> +<computeMax value="" enabled="true"/> +<probability value="" enabled="true"/> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="247" index="5" uid="6fa3f361-9845-4556-8ba4-a3a14d3111d5" > +<cdparam x="358" y="209" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="246" /> +<P1 x="391" y="248" id="413" /> +<P2 x="409" y="271" id="371" /> +<AutomaticDrawing data="true" /> +<new d="false" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="245" index="30" uid="3df7dee5-1456-4a30-9e72-50704be7af2b" > +<father id="247" num="0" /> +<cdparam x="377" y="228" /> +<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2499" minY="10" maxY="1499" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<new d="false" /> +<TGConnectingPoint num="0" id="241" /> +<TGConnectingPoint num="1" id="242" /> +<TGConnectingPoint num="2" id="243" /> +<TGConnectingPoint num="3" id="244" /> +<extraparam> +<guard value="[ ]" enabled="true"/> +<afterMin value="" enabled="true"/> +<afterMax value="" enabled="true"/> +<extraDelay1 value="" enabled="true"/> +<extraDelay2 value="" enabled="true"/> +<delayDistributionLaw value="0" enabled="true"/> +<computeMin value="" enabled="true"/> +<computeMax value="" enabled="true"/> +<probability value="" enabled="true"/> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="254" index="6" uid="08f30cae-8315-4af1-ba7e-c7b1d755e30f" > +<cdparam x="295" y="209" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="253" /> +<P1 x="316" y="248" id="410" /> +<P2 x="298" y="271" id="468" /> +<AutomaticDrawing data="true" /> +<new d="false" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="252" index="31" uid="50d6509f-dd5f-4b32-9fa5-cf9bf9197a97" > +<father id="254" num="0" /> +<cdparam x="216" y="227" /> +<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2499" minY="10" maxY="1499" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<new d="false" /> +<TGConnectingPoint num="0" id="248" /> +<TGConnectingPoint num="1" id="249" /> +<TGConnectingPoint num="2" id="250" /> +<TGConnectingPoint num="3" id="251" /> +<extraparam> +<guard value="[ ]" enabled="true"/> +<afterMin value="" enabled="true"/> +<afterMax value="" enabled="true"/> +<extraDelay1 value="" enabled="true"/> +<extraDelay2 value="" enabled="true"/> +<delayDistributionLaw value="0" enabled="true"/> +<computeMin value="" enabled="true"/> +<computeMax value="" enabled="true"/> +<probability value="" enabled="true"/> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="261" index="7" uid="5c51932f-46f4-459a-9797-88581a319459" > +<cdparam x="292" y="226" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="260" /> +<P1 x="298" y="299" id="469" /> +<P2 x="298" y="345" id="455" /> +<AutomaticDrawing data="true" /> +<new d="false" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="259" index="32" uid="ea67405d-8c98-415c-9bf0-24fdf4cb37c4" > +<father id="261" num="0" /> +<cdparam x="292" y="242" /> +<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2499" minY="10" maxY="1499" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<new d="false" /> +<TGConnectingPoint num="0" id="255" /> +<TGConnectingPoint num="1" id="256" /> +<TGConnectingPoint num="2" id="257" /> +<TGConnectingPoint num="3" id="258" /> +<extraparam> +<guard value="[ ]" enabled="true"/> +<afterMin value="" enabled="true"/> +<afterMax value="" enabled="true"/> +<extraDelay1 value="" enabled="true"/> +<extraDelay2 value="" enabled="true"/> +<delayDistributionLaw value="0" enabled="true"/> +<computeMin value="" enabled="true"/> +<computeMax value="" enabled="true"/> +<probability value="" enabled="true"/> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="268" index="8" uid="9fbaf0a3-016c-40cc-952d-2d93b5149e83" > +<cdparam x="292" y="163" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1280" maxHeight="1280" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="267" /> +<P1 x="353" y="178" id="479" /> +<P2 x="354" y="198" id="383" /> +<AutomaticDrawing data="true" /> +<new d="false" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="266" index="33" uid="ad8b960b-ba33-44a2-9bb8-9ea351468048" > +<father id="268" num="0" /> +<cdparam x="288" y="112" /> +<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="16" maxX="2497" minY="16" maxY="1499" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<new d="false" /> +<TGConnectingPoint num="0" id="262" /> +<TGConnectingPoint num="1" id="263" /> +<TGConnectingPoint num="2" id="264" /> +<TGConnectingPoint num="3" id="265" /> +<extraparam> +<guard value="[ ]" enabled="true"/> +<afterMin value="" enabled="true"/> +<afterMax value="" enabled="true"/> +<extraDelay1 value="" enabled="true"/> +<extraDelay2 value="" enabled="true"/> +<delayDistributionLaw value="0" enabled="true"/> +<computeMin value="" enabled="true"/> +<computeMax value="" enabled="true"/> +<probability value="" enabled="true"/> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="275" index="9" uid="fd4f056d-39b0-4db4-b956-fe6fd3013328" > +<cdparam x="298" y="285" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1280" maxHeight="1280" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="274" /> +<P1 x="298" y="373" id="456" /> +<P2 x="298" y="423" id="466" /> +<AutomaticDrawing data="true" /> +<new d="false" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="273" index="34" uid="80004114-d230-4100-8abd-0089257c3b74" > +<father id="275" num="0" /> +<cdparam x="297" y="305" /> +<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="16" maxX="2497" minY="16" maxY="1499" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<new d="false" /> +<TGConnectingPoint num="0" id="269" /> +<TGConnectingPoint num="1" id="270" /> +<TGConnectingPoint num="2" id="271" /> +<TGConnectingPoint num="3" id="272" /> +<extraparam> +<guard value="[ ]" enabled="true"/> +<afterMin value="" enabled="true"/> +<afterMax value="" enabled="true"/> +<extraDelay1 value="" enabled="true"/> +<extraDelay2 value="" enabled="true"/> +<delayDistributionLaw value="0" enabled="true"/> +<computeMin value="" enabled="true"/> +<computeMax value="" enabled="true"/> +<probability value="" enabled="true"/> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="5111" id="286" index="10" uid="62c92403-5ee8-445e-bf96-3e600f59a4b9" > +<cdparam x="451" y="402" /> +<sizeparam width="66" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Reset timer" value="expire(t)" /> +<new d="false" /> +<TGConnectingPoint num="0" id="276" /> +<TGConnectingPoint num="1" id="277" /> +<TGConnectingPoint num="2" id="278" /> +<TGConnectingPoint num="3" id="279" /> +<TGConnectingPoint num="4" id="280" /> +<TGConnectingPoint num="5" id="281" /> +<TGConnectingPoint num="6" id="282" /> +<TGConnectingPoint num="7" id="283" /> +<TGConnectingPoint num="8" id="284" /> +<TGConnectingPoint num="9" id="285" /> +</COMPONENT> + +<COMPONENT type="5110" id="297" index="11" uid="491c316f-9dd9-4849-979f-c56b1fd77a3c" > +<cdparam x="385" y="403" /> +<sizeparam width="51" height="20" minWidth="40" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Reset timer" value="reset(t)" /> +<new d="false" /> +<TGConnectingPoint num="0" id="287" /> +<TGConnectingPoint num="1" id="288" /> +<TGConnectingPoint num="2" id="289" /> +<TGConnectingPoint num="3" id="290" /> +<TGConnectingPoint num="4" id="291" /> +<TGConnectingPoint num="5" id="292" /> +<TGConnectingPoint num="6" id="293" /> +<TGConnectingPoint num="7" id="294" /> +<TGConnectingPoint num="8" id="295" /> +<TGConnectingPoint num="9" id="296" /> +</COMPONENT> + +<COMPONENT type="5106" id="370" index="12" uid="153cbc7a-51c9-4403-b1fa-af4ed8ae661e" > +<cdparam x="398" y="323" /> +<sizeparam width="100" height="50" minWidth="54" minHeight="40" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="state" value="state2" /> +<new d="false" /> +<TGConnectingPoint num="0" id="298" /> +<TGConnectingPoint num="1" id="299" /> +<TGConnectingPoint num="2" id="300" /> +<TGConnectingPoint num="3" id="301" /> +<TGConnectingPoint num="4" id="302" /> +<TGConnectingPoint num="5" id="303" /> +<TGConnectingPoint num="6" id="304" /> +<TGConnectingPoint num="7" id="305" /> +<TGConnectingPoint num="8" id="306" /> +<TGConnectingPoint num="9" id="307" /> +<TGConnectingPoint num="10" id="308" /> +<TGConnectingPoint num="11" id="309" /> +<TGConnectingPoint num="12" id="310" /> +<TGConnectingPoint num="13" id="311" /> +<TGConnectingPoint num="14" id="312" /> +<TGConnectingPoint num="15" id="313" /> +<TGConnectingPoint num="16" id="314" /> +<TGConnectingPoint num="17" id="315" /> +<TGConnectingPoint num="18" id="316" /> +<TGConnectingPoint num="19" id="317" /> +<TGConnectingPoint num="20" id="318" /> +<TGConnectingPoint num="21" id="319" /> +<TGConnectingPoint num="22" id="320" /> +<TGConnectingPoint num="23" id="321" /> +<TGConnectingPoint num="24" id="322" /> +<TGConnectingPoint num="25" id="323" /> +<TGConnectingPoint num="26" id="324" /> +<TGConnectingPoint num="27" id="325" /> +<TGConnectingPoint num="28" id="326" /> +<TGConnectingPoint num="29" id="327" /> +<TGConnectingPoint num="30" id="328" /> +<TGConnectingPoint num="31" id="329" /> +<TGConnectingPoint num="32" id="330" /> +<TGConnectingPoint num="33" id="331" /> +<TGConnectingPoint num="34" id="332" /> +<TGConnectingPoint num="35" id="333" /> +<TGConnectingPoint num="36" id="334" /> +<TGConnectingPoint num="37" id="335" /> +<TGConnectingPoint num="38" id="336" /> +<TGConnectingPoint num="39" id="337" /> +<TGConnectingPoint num="40" id="338" /> +<TGConnectingPoint num="41" id="339" /> +<TGConnectingPoint num="42" id="340" /> +<TGConnectingPoint num="43" id="341" /> +<TGConnectingPoint num="44" id="342" /> +<TGConnectingPoint num="45" id="343" /> +<TGConnectingPoint num="46" id="344" /> +<TGConnectingPoint num="47" id="345" /> +<TGConnectingPoint num="48" id="346" /> +<TGConnectingPoint num="49" id="347" /> +<TGConnectingPoint num="50" id="348" /> +<TGConnectingPoint num="51" id="349" /> +<TGConnectingPoint num="52" id="350" /> +<TGConnectingPoint num="53" id="351" /> +<TGConnectingPoint num="54" id="352" /> +<TGConnectingPoint num="55" id="353" /> +<TGConnectingPoint num="56" id="354" /> +<TGConnectingPoint num="57" id="355" /> +<TGConnectingPoint num="58" id="356" /> +<TGConnectingPoint num="59" id="357" /> +<TGConnectingPoint num="60" id="358" /> +<TGConnectingPoint num="61" id="359" /> +<TGConnectingPoint num="62" id="360" /> +<TGConnectingPoint num="63" id="361" /> +<TGConnectingPoint num="64" id="362" /> +<TGConnectingPoint num="65" id="363" /> +<TGConnectingPoint num="66" id="364" /> +<TGConnectingPoint num="67" id="365" /> +<TGConnectingPoint num="68" id="366" /> +<TGConnectingPoint num="69" id="367" /> +<TGConnectingPoint num="70" id="368" /> +<TGConnectingPoint num="71" id="369" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5109" id="381" index="13" uid="83cdd050-a535-466f-a3bc-8910fe1b1c16" > +<cdparam x="364" y="276" /> +<sizeparam width="91" height="20" minWidth="40" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Set timer" value="setTimer(t,10)" /> +<new d="false" /> +<TGConnectingPoint num="0" id="371" /> +<TGConnectingPoint num="1" id="372" /> +<TGConnectingPoint num="2" id="373" /> +<TGConnectingPoint num="3" id="374" /> +<TGConnectingPoint num="4" id="375" /> +<TGConnectingPoint num="5" id="376" /> +<TGConnectingPoint num="6" id="377" /> +<TGConnectingPoint num="7" id="378" /> +<TGConnectingPoint num="8" id="379" /> +<TGConnectingPoint num="9" id="380" /> +</COMPONENT> + +<COMPONENT type="5106" id="454" index="14" uid="2d76bc2d-5cb6-43ee-8143-f800f7bc2c0f" > +<cdparam x="304" y="198" /> +<sizeparam width="100" height="50" minWidth="54" minHeight="40" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="state" value="state1" /> +<new d="false" /> +<TGConnectingPoint num="0" id="382" /> +<TGConnectingPoint num="1" id="383" /> +<TGConnectingPoint num="2" id="384" /> +<TGConnectingPoint num="3" id="385" /> +<TGConnectingPoint num="4" id="386" /> +<TGConnectingPoint num="5" id="387" /> +<TGConnectingPoint num="6" id="388" /> +<TGConnectingPoint num="7" id="389" /> +<TGConnectingPoint num="8" id="390" /> +<TGConnectingPoint num="9" id="391" /> +<TGConnectingPoint num="10" id="392" /> +<TGConnectingPoint num="11" id="393" /> +<TGConnectingPoint num="12" id="394" /> +<TGConnectingPoint num="13" id="395" /> +<TGConnectingPoint num="14" id="396" /> +<TGConnectingPoint num="15" id="397" /> +<TGConnectingPoint num="16" id="398" /> +<TGConnectingPoint num="17" id="399" /> +<TGConnectingPoint num="18" id="400" /> +<TGConnectingPoint num="19" id="401" /> +<TGConnectingPoint num="20" id="402" /> +<TGConnectingPoint num="21" id="403" /> +<TGConnectingPoint num="22" id="404" /> +<TGConnectingPoint num="23" id="405" /> +<TGConnectingPoint num="24" id="406" /> +<TGConnectingPoint num="25" id="407" /> +<TGConnectingPoint num="26" id="408" /> +<TGConnectingPoint num="27" id="409" /> +<TGConnectingPoint num="28" id="410" /> +<TGConnectingPoint num="29" id="411" /> +<TGConnectingPoint num="30" id="412" /> +<TGConnectingPoint num="31" id="413" /> +<TGConnectingPoint num="32" id="414" /> +<TGConnectingPoint num="33" id="415" /> +<TGConnectingPoint num="34" id="416" /> +<TGConnectingPoint num="35" id="417" /> +<TGConnectingPoint num="36" id="418" /> +<TGConnectingPoint num="37" id="419" /> +<TGConnectingPoint num="38" id="420" /> +<TGConnectingPoint num="39" id="421" /> +<TGConnectingPoint num="40" id="422" /> +<TGConnectingPoint num="41" id="423" /> +<TGConnectingPoint num="42" id="424" /> +<TGConnectingPoint num="43" id="425" /> +<TGConnectingPoint num="44" id="426" /> +<TGConnectingPoint num="45" id="427" /> +<TGConnectingPoint num="46" id="428" /> +<TGConnectingPoint num="47" id="429" /> +<TGConnectingPoint num="48" id="430" /> +<TGConnectingPoint num="49" id="431" /> +<TGConnectingPoint num="50" id="432" /> +<TGConnectingPoint num="51" id="433" /> +<TGConnectingPoint num="52" id="434" /> +<TGConnectingPoint num="53" id="435" /> +<TGConnectingPoint num="54" id="436" /> +<TGConnectingPoint num="55" id="437" /> +<TGConnectingPoint num="56" id="438" /> +<TGConnectingPoint num="57" id="439" /> +<TGConnectingPoint num="58" id="440" /> +<TGConnectingPoint num="59" id="441" /> +<TGConnectingPoint num="60" id="442" /> +<TGConnectingPoint num="61" id="443" /> +<TGConnectingPoint num="62" id="444" /> +<TGConnectingPoint num="63" id="445" /> +<TGConnectingPoint num="64" id="446" /> +<TGConnectingPoint num="65" id="447" /> +<TGConnectingPoint num="66" id="448" /> +<TGConnectingPoint num="67" id="449" /> +<TGConnectingPoint num="68" id="450" /> +<TGConnectingPoint num="69" id="451" /> +<TGConnectingPoint num="70" id="452" /> +<TGConnectingPoint num="71" id="453" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5103" id="465" index="15" uid="2defadde-3ad2-4986-8807-b8bca2d42df1" > +<cdparam x="260" y="350" /> +<sizeparam width="76" height="18" minWidth="29" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Send signal" value="out1(x, p, b)" /> +<new d="false" /> +<TGConnectingPoint num="0" id="455" /> +<TGConnectingPoint num="1" id="456" /> +<TGConnectingPoint num="2" id="457" /> +<TGConnectingPoint num="3" id="458" /> +<TGConnectingPoint num="4" id="459" /> +<TGConnectingPoint num="5" id="460" /> +<TGConnectingPoint num="6" id="461" /> +<TGConnectingPoint num="7" id="462" /> +<TGConnectingPoint num="8" id="463" /> +<TGConnectingPoint num="9" id="464" /> +</COMPONENT> + +<COMPONENT type="5101" id="467" index="16" uid="3320dfa8-dc96-4387-a94f-25c3a07759ae" > +<cdparam x="289" y="428" /> +<sizeparam width="18" height="18" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="stop state" value="null" /> +<new d="false" /> +<TGConnectingPoint num="0" id="466" /> +</COMPONENT> + +<COMPONENT type="5104" id="478" index="17" uid="6223a7dd-5783-455b-b937-fbe533f02445" > +<cdparam x="261" y="276" /> +<sizeparam width="74" height="18" minWidth="39" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Receive signal" value="in1(x, p, b)" /> +<new d="false" /> +<TGConnectingPoint num="0" id="468" /> +<TGConnectingPoint num="1" id="469" /> +<TGConnectingPoint num="2" id="470" /> +<TGConnectingPoint num="3" id="471" /> +<TGConnectingPoint num="4" id="472" /> +<TGConnectingPoint num="5" id="473" /> +<TGConnectingPoint num="6" id="474" /> +<TGConnectingPoint num="7" id="475" /> +<TGConnectingPoint num="8" id="476" /> +<TGConnectingPoint num="9" id="477" /> +</COMPONENT> + +<COMPONENT type="5100" id="480" index="18" uid="29fdf48a-fe0e-45e1-b3e2-a04dbeaf94de" > +<cdparam x="347" y="160" /> +<sizeparam width="13" height="13" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="start state" value="null" /> +<new d="false" /> +<TGConnectingPoint num="0" id="479" /> +</COMPONENT> + + +</AVATARStateMachineDiagramPanel> + +</Modeling> + + + + +</TURTLEGMODELING> \ No newline at end of file diff --git a/doc/avatarSysMLV2/figures/Tuto_BD.pdf b/doc/avatarSysMLV2/figures/Tuto_BD.pdf new file mode 100644 index 0000000000000000000000000000000000000000..8d1836b1ea9d08e8b7e22e2d1712cf9791fd2d66 GIT binary patch literal 75406 zcmbsQby(ZU7dQ%2p)J+|#Y=#aP>NHuc#9=Karffxf#S5dLvVL@cPsAhTHM|JhVJfn zyTA9n_x^Fu!$UIjNoLL*mkF5!zaY&AT4rRj^4)@KWF``N5;ILhWKK>Jx-UAWdQg25 zX84p8G6@L@ouGj+RL2tjYODd(;n&eJ)7C-e=0>)HTIy(+Alt?<%FrY5s`8O&7;9wd z8Jp$=$Mwi|VrNNoB8GfmtUwTYkCjg8PPOug?Bq2X*03M;2~{ta%2D;>ALt0ZD=(#x zbxgJYUJL&20gH#NA70^`voJqAei$(R55?a|3D`ox(oi@;B%GWN6L6r@pob4g==eU9 zd?2CI(t!VmqX~cT*MB+%aZN)VE$Hvh*s_qYJRI=h8T{|>JsAGC2ML{wow*JPorH#- z4hb2_hu?cjXjtl)LgCB)Lm5#WZ37KnGg}g6_!K<}3*$#xCPr3f62^}oXdhlxe}9e7 z%oGa$o)yUhmH#3s*wW0}{143k+U)o2KZlWqqhP6FYGwYgsg~V8(?TRrOKY8fMtty3 z@$1+aXz56Sc^@YKKB|<Cm6^4rmW~z41KFhhIO4;pAISL!r$7D=t^a?Vejw~$=>1K< zhi&Mjtu>*)2_$G{Y4Ur9_fI;o!AZdI_woP5h4mj?{wF$AE0ilG^sEz%vJWC8&B(_k zqGctGsLF@J$Hj<3($hN0`wBv~Zn;TL@IDQfYC~RuvTDT&@$p-Ppd>V+|6j>@ILbeg z!}JeVAGZDL$iET&|0+3bBy11o_^;$VO#L5Z{qP_X|Mwd7|3X(G6S(C4##i1z8?KHY zm|5t54<R}RdiqcjHa523Lq0QOGfQc64K28^{znq%gy2$VX>RtQwEvSCI$i^)m4uEZ zpP7ldndyTtfBcUs@5Cdiyq=1<-*lSqJ>F$3T=>X!yw>M(SEy%y)#q>z0%>3btA1|7 zmXX0a50{(8ojpgaHEDBdaeDGdKmdy$@zE4EcCeG^Q-0+L(7iA%g>Q~<x>UCN)BbZS z?&3U|c&q*VSS9B;2a)Wj2!FyY^v@9j0?PEGKPSE;=KncFXmU-QJUrWMK)~H^o1h|) zX0i7Hg^FV}YE@@yFp(FYqYJr;M>ezoW8O&wjmVB9&?0f^n!1Q^&-T6BKF&Bs{dcj9 zUjUDcus$~dS6X+QWDBzxtDrstZkv|;9M)GXS&5E8jrJmQp@`b+j}I^S29OE}LdWgA zLDFL3b#1^3rd5Icdkq(;DKHkn3?=AG*o(Gh(gbV!@CDV?cbL`G^+Vrj*5lQ=$LG|x z==HlRlnWQO<`T$g#<Dx)znoY^2ouhF4oo^StG8=r7Q}2>sKr{a7<WtHW-Dwl>CZM3 z?}u9&*~y{D)a2gUofOuV8;N2RFzO%rP+&enn!#{jh*f0QXDS*nVz1sUQpJD&Nu)1* zO6mu6T)=P+_4JQJa*3dLw1<hh36QQIic}hp6gi!T$Gy9mVeQ&3CSOQeri;yXDEYqQ zI1~7~3)`%=!NrO=o2u>U`RUNxNv#W4qtiT6CLSKF_ZY&Nag@VVwxK0mU>cd$v2v!! zxM)*4f{zws5p7z8CeKa27--KYko66SeZl`eX3*=(ye-#@w?$HNsu-zoEw^9_Wlp!a zJL;vzg>_n7>@dHXpdnb-rGiE|-mq0xkRP7Wl>2)!Ge7q?HF;T=Z--U=dfQMr0<p&1 z{pFqCsFPX8qB~|qpT2(L1k`dyqjq>`V9n%IARrK$95Vb%@Gj<GzBctTNe7dg5xR3B z?mHfN7D?HtA2&Jd2-Mpo7grZ=ob4$(KiN%t@=RQf_*6yEx^39bN?PaW6{FWjwyMB5 zVum3_P_*Tdtd?GDOQc+_^*j3PV-|u_FMaBdAJs_960MT+va2seul5!zNF&>dnI~~C zF_v404Kn?5Ls?#izg!qod=@`b%9l|9>oi);-+EVGs^|3%;vTr5n%lmmgjcFFEuoh^ zI>ccvpe<+;8W_W}ZQ8{uZu7Fm_qAodOud!WZhd`e=9d}t;~Jkj5x&(nHYwQ5XnOM9 zo{iKxMzWqI0aG~8uAmWz6q`*nif88A_x-h%lxrSOe~Ze<Ni;%kqk(wbZ{z4OSC?Ej zpQNdV(}0BMslbu3!UXKZL=$p?y36Fc>MbR2H|?Ff+4gpM@=S;^*h8;jh`0!adisSj z?EDI3w~k!%gugOGf<-Qv-A;PdLlG`rYnMmwjuxA^CUSy$z89D3q5?>)4`RwF0!782 z|4V<X5lHe|AsYXxr?hhws(t;ptO-4Dw)gXov4q|MoYZnv^*ec3raprJ3=X#uWLoh8 zHlcwlUD^E`@z;4iU0w3h5(-KalM0b#Ltv04VZHwLxPVq1zajQ=dL82uY_vn3HSje` zs}`%um)_hl;^bn<gi@D0g^jZJHOR_07I_LQB^UPLYkuo6#&`j-y}dvpX_qhAwy9<g zaz7Jt!G=P(D*1aVlFCPQNxx(T+&CTXZL>QyE?oO&<iD7=ZPjrXdp2ZP#?xG8fGlfd zNaBeUk1{0XROO`dGSc#t1gBQbx2oBsesnVHj|_#@>e~DAKZ#t(GfK1XuPgaPiSAA4 zC6>^*H`=9RO4@bMhSBk@?*!dvR$j&Vlm3?Q&8HEW712w?81o$h|Az8y>$BXJL!PJJ z>C)mjV{?kjZ!v{46KHd4%ZEi*Dvoe^g5x`fZ32q0?eZHJz9aK~`>rp)q@y+Tb1c~T z^9*bMSvfXDFM+BHNF10~8=sI{sM#T~!eG%dB<-+%?JZD{JhW<d0)G52Z;nYbCBB)p zkThcnlJ1|LZ>^Mno5&%yeT6IYjdn$c7>^vMnkK+mRax22EHns$2`wx7u_YRG{PRud z_7?H}NoiZe-bD9m`8T;*Ur=ZeHp?%JH#r5=!7o6^w6a^L^Fn;%4aEvma_#b590VZj zYIi|deYwV(V&^h9bib|ABVD1nky0ZZ)2gVMBr6A-Vuoh0pNE*pvSCeOq4+Ce9V&t{ zZVcsx;BWL2q?W1}>O%4(H7fBmQ^79p(Q~g{sm6}3$ZNrqDbY@z`}T1HQ>z_(rD?og zgWC#K({Fm>JwkrHrrXX=ctw;*hXK)xqk(D6gs)`q*j=Say(^U6W(X1TLZ+;VQJT54 zGho8brsZOd#T3)+9m*b?D}1SnbX;bwYRzcpmDoD}vwyR;C+Iu~TSPB`LKk1s0YbD- zXi9aY6seGTjWCp-x4GrJ^BBg?#>>9k+j1M0ql(6tKvnp)Lx6#pWAMn+wdFOFg%Mf~ z;9uHDJ;L{xZasD5ui&fX$pPl&Z90ba7jCI^3W2z&W?n8tD}hf1*Hu>7zAda88K#(W zQy64b*H4RrqHW(d68Tx_1=QLn4IJBZYC5gzoHCxx`eEDG8)XmN{8XnVsC&D$@`VF- zoRVc}tlH9JRT|G<U=^e`%cMkU8DDH99n8<L_*JbwaCgeHo8#kW(y~~WYN;71>_QRY zZo`~CsI0J@6W8eH_wm+yV>B@_a-p(b1rf&Y*_lNtgT*)$M+YTfu~4eBj;SXClM}D@ zrEI1M1EFb#y;e8E@~R1yd$F10RJ8KhbMiU~3m=XAgKGUk-S|N=tb%s((nd2p*EpgA z!ouv<Ak8X!VBkxlzzp?W2q)`=8fKAhpDo8d4Tmm=J@w02)=vy;USBF6ab!Ex@#O>a zMf1j<rg43$G>~g3Xs;!${gkFI(Xw62Se*KC8A_dQI3u3_If04^Ehtb#cHNT93hQ5T z)AO8S<?I(o^B|guWWUYJt4S4$i?V%RSYq||yzBf<6V|iih9qQ&`FcMcCrmoN*h1~t zoa4-qN57?>l3MJBvi!Y8S`to>g0iy^&{XC9$iAA0$<_P^&6&?FUTofRxM~jhK8`Le zUtznQa|X;~;z6R{eiChXEWv7}ji4q25jh-2_53NHjm(S;)nn^<B&f?0o%Uq6_FxL> z<MVBlvaxS4-eaJt*rdi4WQ=XrD3`p`sZGr9v^$G#X2(J?dOfqqL6iaeW_PpFO6@bK zAsIG(+=u<d+OD6SLp;=6=0`Z?u~#uB?79vpBwk8O-QJCf2UDIN8=XEIu=^qn>t13U zH7^$=1aK0nHd6LoS=8}sn$h9ctUAvRQAlw(aKJiZlw~~$Gwe-xj+J61@-Nj1<{qUe zD~^p}Pa%?8AJr@|G8W0jJ73+YS&msQv2#VL4iiTDDYQ)JW+^vWuZr?*|6%msWk&F> z##_%%N*|0rmu(HNoUrw6ef?@J%m|l~@s*e*x=`J_!r2Ow+Z#!4=^$-6>G&abT(%(P zIy)52ndBLd)o&Bm-uz-(I41L042It!Bni-ujRZjosuoT@r4lPF20HvVRyc2&WHNX0 z$>d(eSzYZ37wd}l<@&v)RnWg5?2C;QJ;FjkB%MISMR}lqOm~^nGQho};0{HuK#jrL z+f8Dnn(0bbbS!lLNgAma1`3ObD$WKaCK|FIU4DL2t^qTjh}?Qy%qA)3^tG63g>y?z zH85U)*P>}2D!fcA#?2*73RSSpe@rDYd-Q`8kU*TcKT2h2lp9i+y?&5TcGf}6DteBC z(zfjEs5Cw{YIhjFtNvLU79$U1T2x@g7d4V+IL+;Lw|3)y4D0B=Kn`Gehdw>PeVx-@ zv@D~1`ZX5Lea0OzvMV|`A5^D)v*Fg&&{xa|nkMamzmk(~@aFPVV5jQEu2-L8&{B=3 z8WlsC^S=`R)iQ@7Y(dSB3-Q%dh|Fgd{KjcMP=Yy0u1u|jqG~j5rPUdP)uDLQpmU{s zeYhv9VI%%^$C)?SD^pIczOG&`W&pt_b>L*x%4^D(9MGLly^kythex!dLuV6bOOhHQ zfQl9#WD|gi!Y}qVQf)C8*>opvl~sb$!u%LTt=f7B;?rq;wz(s$I#Zf)q<C|_aOuGA z+h+5`>scY&Z5H0x>1MjMv|~I-^Lfzs!PHm2xkc7c=6qe_uAHSXX(Ly!>glOz;kai3 zC{tEk%D2o0k>rRFaE-5%JW(!&jXqZ+Cy#u*IrOf)U7&aT*IO~E=Y>gRrMImqpSSnI zzA;;GiPqg_V`tk75eHrmQRwZ+x8dS`)Kpe)C#WDb=#fx9oFtz7hDd|mMF249%eOT7 z67x@h<NR5cPF%Euz-hXxnbLC1w>-gbtV4iPbK01P+@~J=tH#Lgnf$AN3H?PJ8v%h! zR4B7Ses~1&k96f7B?7{Rfp335>;=fGALkVM`QI;n_hCRlu#bt<V`3kUj^t8B|M$_? zCFXwz@OMQ?|4oq;NdC|?_;Z}JC;$083c(*ZARv54G-Jw=q2%QAsk!m|^t3QIPI{4* z(Dw!R<!P7WQ#*NXQ5gS3hf_?Wd=zO4g;M)X`PV>wL+X6N2st9%-r3s=v`ACgOlqS; zgFB$U0me1K8jnsiPYPR4Y9)P7rNH+eKYpANlny`V+G)%>crnbdNszpRv?9Du=2K{H z%YV>SD82^tW~WzAGcvpQNgl-Aw?Op;V+f081gMvpkOH=My;PozI-+mUdZj&bo40y0 z9O)Eu|3XQrwZZdJTrt8XWTlwX7}<?0`2hPR0z#4=%m~vqZ~Jo)o=7^7%IC#&WModU zMVr>g**6y}6XeG%<CZN8@Fo5}j;E+f11Y9U@>*tQ|Er9%uk2<rwiB>k95GXq-)FjE z87C?(9O9tO;M)F4BA*0&gfM9IiJWQMelXOasWGKbI0WO@Ex}u@R;9AAhMmyM7fL;7 zF6w6ncWN3m>>=fe@%Ak2u?b)Aa9A=pdk+eL(KK<h(_)I_OCvYn!C}%fX8Vq|QC_9* zq8gvzp;ywxS5<b*Lzyp7G1a}FM((RT*+1a)(Wha(ahlTGuR28pbPcB{j{=eCRyCeM zK?g!d|B$_YS<~<>4FWqR0)i8=(I||7sS|%4Y)H~{&7ATBqsK++Nn$T}P|5V-x<vf= z9NB0HmUp`|S~@g!^7Oc}=)<ap=Qlu?@#4z3O?L@S;u?=@1kPUv#~FTXjQr$b-TG(S z!>~c2Dzzs{;;5fh3dkSUPWXRb+myz*<;Aq%kqJ-i-Zg<bkuIFPAKgPS1hYf4a&xID zDecd86y4V7z-1Ue$s4%?_UXUv%~m^Ivz$dICJxk*(P3CwTAtu^C3!mq%v*e5=0iar z7;DFZpB=6rXyfU?<WTeYXE#*Sd1>sA>$V}*{t9=Y1Q*)euBbd-QBhHolM2JTA1a<H z2hGKe><yP*eF?!Ka+)7+P8F}tF!`Wx#pF`>H4s9DvJs%KU-;FOc%?5&>12E26&2@M zR|#iCAuxHXh>es#vDc(C-=mlTD~x4?;7nFQ0S^;aB<|ePf@<>0e~5R6zotQF<Th)O zfPkQ+v@|y-C+mkc1HMg0Utb>$1;x(@5fKpspsTpEljR0Is7RzG6&zF~t~$X_1YBEL z`Kk)54{Lp=sqWT?MA*nwge65ylk#Ept=c%F$n?R{Adde(;?X1s<_+rFI8@vZ_z^ef zM&ulzZ)&PL>A$%0W!A4I@0{T0&4h;PfSaHi>0uA)CL=8^EgM^O@{;aZ*AJpYgTZ3p z)o;=~KcONK78+#+MU{u)A)}%-50i^YNewg7*r$VZ6Dv<OzOb#%&HNB$n>s0LykqVh zvLHJ1q0`cPGffk4ubP>e>zyGlx|9d}P!{xo9h2Q)WfeOjLT;`u+Mg!XMyox<8U%gU zn&T!*Nk)dE+|G_5@<6|84}2&{g&!FOWx0~Gmp(4ilBwuEqV(Ot)v3|WilVeMpOU(& zYJ6^TUER%CuDqR{T^cok=LpKh%1)@V7tE*t11=jdqazp*m%aNDOu`iNm{{>6ILxSq zR1PCzLNo$yeT>C^O|ormO3O+~G1eI9O@`0`d=|WCyZOR`g1c&agl7{l{!+B2JmA~Q z_Z%E=YR{Xvi*?Riv^0;KT%A&$<4n_7$Hy5lKd4U**;oHScUr<U%~6JCbDvgg#wBtb z#A|;)Kdr2)XeZ028*WKJrf96^H{F}8#rv^UxB*~T2Ws3B*9tk`Tzs%VTXzJN0bjZi zpK)6ZK)}s7B_$<AIxJJvsO(ZWKV%+9>8WOVBy@v$k0fvU<RfXh=c<9oxM9#;&E9<i z9|#7<CV$HqNR>>x5Qu@zGI~*?gk-lYhXNHdHFm7kXjwcsIG*_y*Q(^dYB0rM4FZvd zN6Kr+woqD=EKy#gpjo}K+#|1nf>cQ{;ReIgiW^f_Q*-1NYJIV^q`5<sDrcqGk)4yn zTLX4>cK-bNvzi)_K`YMjCZeO|ao6q(&B*Ux(BL%x$xUqV$rY2&6m#ACJsQ#v_=0mG ze60=7dUlf1($-SJi7D4qo-_e<LM)Q}FIP3H9G6Q%XaPQKgc}e9gcE|O2h23S0r2th z#S^*P?%P`(@ARApTZk1*=X-^PD0p8{_qv#pz^TrZblQsEx=Qf4M%YyyB`QG4pFl9` z7^kT43=B%F4R+YERXRD9-!P*^#T8~@W2?JPV-O`Fi6OgawN8W5#E@S>%ZSvI9z56S z7Gu>fzVPs@q9K@+v^1LVm*Lz2l1d1ecj<|epbOpFFKILG5RVNAgrNp{xH*<v9m}ff z?Oj!?cYfO0Ia<V=iJt~qcA0>)pvvDTSIFMQ&EA2a003LznD*qI|2X=XhrCd!{1pee zmfqUQi7%WJ_OETB_q;|Ww0USp@S@$$oM7LKLuOR)`QX9MC@MLu(@B&!KQO#xxVF}n za~IU#f}7Zry^dZl!arTH3##y!rTlO>HI!;$ADTCL^3?Q}KQgeDg!E8~NEdqAL`Z|W z5F%Hy>5K|!$jd`LR!prgnHU?>_(m|P`n&>j`*PChMa3hN-yZcP7=0C>WB9WGQGXGJ zqk0}NOG=7C5%jWN3NzN*3C&X^*7qP&Xs3XIlhfzKOJs{yQ0<E-7L3o%+XejY9bRb{ zSo7uczbyVUfDfE?iIcm}&+78zg*9yl`Cd^^t|ItAVxC6`pENbUvkJGRY=7{Cns$8* zSU@`1hO4)#y;$6rARn4`9L(3bCS}Xlc%&tVK2?_KO}2@a!VNgZ1N0k=YbR6E?3e`2 zp10^lGg|d-(<?hrP?&Zz_XnT!Kxih%Mo?Sax&^N$hR|SBD2)0um~@TAWZu!@{%*$M ztTpcA;X&u3LnNI}JX@@%WoXqYa=nvsLG^RNc*Vl7G<k3{cA5<P#TYDjOLN4@*jQWJ zb^a-lYU5x`m`Mv6X@}(7H>@;-T%SOe$`+|5$5d0>+ajF&k3X{lvaf{|52x^7YJKDB zWG7x?f%dr7bYClH(gsncd?D&Jcm9M+Ff6g~<axoSXbD4UU@P@+9z}J`5S)a=*f9m| z?AXQ^b8~YohMruT!Bwil(`HYfB@_3+AWPg7j2;={JpllbeVF}V8R)$Z*K5$(CB*X< zV$ad*Li*Xo<tMkK4SK?C?)J-(3!ZLx)RnyYHV|Bt{Keb7L9_Eu)*#isUte2WBE>xO z;c84vPu~Pgw;v>V5h<8sAYHfa?N0F&C54)oKU+E*T{V30j${5CeE?EJib}I^?mlCU zU?+t&phjY`MPc#4^|{f-k<gM<Yeqzh*XD=k)teBwc8$TzJ$x0xn%u7T)~`|=-Jg<q z225>0CI{d~Dp<IQ-chJfe3s^{R8&X^ZX~!Jy%&bxWCJzY_@+cBA6Iy4NW6)y+4gNK zdepLs*m$pfmv;Bw|3)?RQzMvZvJV14k`F+?aKV@1cv;>ghQ(_3&dV#YqrVFr)UJUt z$;QT2ACkVsd#IR*v&ZwbDQYeVUWTsV$ej~dD!#Uo5R{S~&Pc{2U*Efgq=lErXSxDh zU*d*!6rK>&EuOh?Y2A*`(q?j>!wqtJnzqTLIbLn+*B*uRA{0>#4aT0|)^VF$27rVM zGiEwAj?IGmq;1H>NKG6G@rNLzWt^9pDJhR@N1FO`r>3S9?mKYs=DFLYGM*(qyJR|f zv1F##A^@UB7ak!K7Ai9{XUrJ*r6_bk9y?Vr#lK^;ar+vn8-?BegyJsyd>||WXK3)~ zmoO|YIEufvDVhGSNOCYX$lVVzdCYKD<~R2iFY#g2`W%Pl60!kON&npckw*&qk=7bG zg+>q?Xl&_~l9E79KB0l4sJK5u#9HS#|MRA<i<@}Ul(+f=ceFB)Yb`0qS19pAta!B? zxS9QpNr&z@EGj5zKK2-|x$L;thtJZ69kT{akP_`IwS`6Sl~EisaT%Quf3tI2L@MwD z>XH`GLI-DoXhE0obS<mtKtfa~xztO5aGmXk?Tf?bk+eG7@x(sI`$}TfiA+*pQXfbw zHFJHvt1?Z|Naq=Vd}M?wxX9&X0}Vv_K}NBEX$NH1$;By2X{kz-*#*vVsBx*Q-@YOK z_Dl%wmA1M)apfZ~AY__8R$nisxL$iv`_N`MoQ*j+e?+%n{&0xj&0k}C_-G5k*syih zb5<!z4$K=3DVrc@=x#xM13+@>E*~*s+=k3HFOE)3Xp!?7GlsG8UEAAB{WgPqK_uLa znC#$W5!5>&!e4^*Qg|bJ-ba$C+yAmiXi_8LV*0`_n}XExeGr-sNi14?AV0fxDFy0Z zz6%d-lPrFy-VVJMjd=!K2R9cWPQxwV(i4=POPF`2W?2HBYgO+W!Ov&Ym#~j2AqPp6 zq6NI&Zl0~R*ptnnGM9e59`nAX=h30J^LU9Y?s;z=qpO<Ue)C>={aHmzn;Vnn-5AW9 z6!SQVg^dG%gan>^j0qcz=V=+lgqsC^3?ww+-BWf<8}7@y>o;)v$8%oN)9$r-pop8z z+S;8N*UX=n;~&?)vtfDD+&d$<1p$qDE0!_A<HTqsevJje(7`M!oMN0B<&3MYA0*_k z<I&|9#Xth&fnFP%DDwk@pT%8Of&8_YsSPC;vIeqyhX#B&Dz=~R4|)gz>4_MOu*pW= zm}<1@a(Y=XX+z<zpo=|47cUgVwurc$F#_A#-Y(u#m5})U?%-!cz=Tv&W->P#m#b|7 zhA`h!aFDh(ZnzQ0dcYf2Xg%8~JcvhI<B^`$_j>kPk4p1nB*A@$oHYN61W|~gyI?U4 zzUrzt<hN>MejS7raXf-<lIxNtKi8WMWqaA;MpV%r^&AI^SupzDMIbg@M(EQ7v)?i2 zOt^nh7of(akdp5F$>HNxM<4BdMy~vADpPKbV@J#a^i!rVX7{JW{V}hOe7J|qS(cqJ z7bZMY<sa-??-lC!y-(t#*;AS~#|<o;#Bg(9PT@0C$EObt@pgA^#z_HoiP9IK{fO6~ zRq5n(V4;DNzs*nFthJug?&xhr5-YLK%>J}zu>I(z)(|;qm*O_0CWAKx(Qet%rg?ms z@4iT9rxml7#$C}t<HlorRsF?bML4Rm6JMw(h$=vNk?ahWD>1>rW#D6Rr^%4VYzRS3 z`1GPF8eRVYF~jY_sTK;@p~gN?5lWdF;dIhZfT2F-B?~gRH(cvMgQu4ID5aNfZ2@;D zQXz-%7;lx2y+N%ou$3lG1!&Lda#xp>L;{a;Ij&dN)->PhFQ|+E&g~60F!)`hhB$aI zr#)GSeXJ7S{uC6}d|h1l^M)LAXYEmKw^ky{bT;N7!J5Hqcs7!}`Z-f`deQhoD7Gs7 zv&SO<62f=2C&$;*2QyD@%!DR^jAx&GiQ){t!L}U+r47_-KgH#`-#$TMN0QekVb7$M zNB`yIoQ5oTvi6dUTo!kwT$j`CSSpm+oyhQ@v3gLDDN}rfUULT7_)(vFnp!G`;~;}x z-}6fllC<CzKf4tBBWx6a4?MW$R8CJz``U=O!zg&&z%op*rS@zUh#>$v>D2WP<i~sn z^=O2_DG|}PO;6Vx)0R7=mrU#G%nuDzX8k%D4RC3-i6&jZX55%w3(S(t%{ak_M-3Ht zHJ7lc*cT5B<NX!+ta|OKYkc%N+twu?ef)rDO4XP%rt-k$`q9>4Ow1%%AnzlLp<klk zQVrzZ8Jq=UgK6+Fv0w!Ctva3Exk0pr2NtT%sh+CPcxGNHsX=vXVIgCC*JK)hZBpaU z6XX_8rZX|M{<2@{soPXfWB0&l<e^>N-Q7in$jo0&6M0-{M}l+HE3U7%g)poysVOKv z1M}$<5fKs52%0k05@*>_H=Rr_#=QEjr>g|g1PcF39WMvMCduwLhEf+77t_R5<ynDd zA);7tuY(>=S}iBhjO*>9vu57@>@Uuh2D<OzEiW&_lHBD;DJb5){b4tV*0Rjg?s7Zf zlFj6b>Ad^(xQUk&y9b^I{f_LG>0k=siK~@58LSPq<DZp+h)f{YCB5LKiOc|-JVI_H z7EDK40b|}N{!swhsgEBd&M8J6%sU0P3`lVmFBetfn-eJvbm!{@H}Bmac2%OCQcS?D z6-L+a5iCn*O#pngt?s6&m7rb~jQ>X2_U6LvczvV=UiTrY%Z000%YIB25JNPQN!Yhj z3fw*19GBec7s#Ijuo2V!$hdvwG0yptc$)-kIzXXn*#YgEmXnrFIKVGZ%4&Di7v6nc zH&`qd_uZ6hkjtbSOW%EoS4m!;!EO&b4z@mIJKXlFq4rr#0b=~@_xkLj6B6<z6Ziqo z;)&lFY(<H}M;!o95aj99>N@-SoGy>ZoZsc;=C(u*Ic)j)`eu2ITHF70OhFxRb$z_^ znuBI}-q6VCP{))T!|}2%pA4>jG@Z<PO1<P~K4XAuCM&jTYdpsY&{7;^vZNpy=I;ZM z85QcWbdti{fXJNaK9?i|?1Zv$bPmH^(yQI=$*gq52c|WkmIi_{-zd4}3qc@XgF{ZX zAZ1ijoDU&h^|Rk@NJXqE>Jp~!C)w|<MnlF}Uwoi=?Y5#+_6*lizvFx9sGjY47pgV* z_`2+arplXR3?@D95S7qVuYn18^gl>7<39w0kYdIx^g;kWCk*x?Be0W(!T=jOE$0aZ zR-hr+R&V^2k3>-06n~T?dv0iq>>y&%(I&;iR(D($#aCQ$DEq5HB{i@sOiMMCkQvJ+ z5m~6C+jCmUT2pGZ<#yyb8-(!Lz{i6sUr{I*dOApzS<{q{PdTd3<C*xErFzcZqM=HI zp>!ZVK>^%o0fA3M(Y&fn^z}&$A5Xdza|flRg@j;Ed)GL&>szN?UD=29e{bj;7^r-j zIC)uGRfU&JAqnP9+)!qWgqI6`W`1sZUbWa`PlxU)=)cKrg{wr8KSV}W>@zt*FJKd# zF0i6P^rqW*rtF?M>+f*vR}!$RRzzsjY-$B4Dc)#IqyVpWeR*<+Z6YUy|40i8g1h)` zJdFnaY5h#})_VdmEXS3&Bbe<u1v%=oAw+{~qQfr79sP4ntEc#;;aX*kz~nbtTLhHU z<yfi%Mzc^*wQkZQ>@-CSs&$h&Ja|f<+gq1D?+D79$z`ezEK4k_#k;I+zm6?P$fHV` zkNCMT)ILj$-uY%-Y2$HxG~4}_==1drh_GfB20XDh(s*NYZ0zOXai~nBd$I<^@X`1% zP?5Yi7{>+=S3NvDY{|h}U=tG>f?u9#X?1mV$f86H6r}kB@`Y+``U{J)Dk}aC?R6OG z^e?$FWD@n!p2Nxb`dC6r%9ZAqA!fz1O_BFhU2&@`;~Fc|2Iwo(vmmHyQooP3BmWXc zn2|MT$yKHDZ__g@SknS>X3&1FsKnpD3VXfBcsNzzbH94v|GOYr|ICy<M1_iMXdYzV z32ts|CQ{HRKKCYHmqKeb$?8de3JrIMyYY1YjWH>Rc=?5j-~~Bz%B2&5u=u6+#tbTV zG(3b=*3nGVv&-!j6tT;A($B4EueC2Nk3>UG?DMAmzQB4jq8Eeh1lf}Y#;Rrb6Jb|P zE(iD)@9(%#5uAbzv!!^&xYJRdypW*==o&OfLqmhpX>4rl{Viq};633m*Gf$0oxeY- zu^U{E4f&N4^%r`3zwDIe<RJ4DA1sw-WxcrMFECI15MxZt=R`V&c<j>yzHn8E4cG3s zwA`lWht|gjAXj?x!=wxNz#-egA(QYtfIg8I?Y7qc5La57pDBa$Xzw+t<h_yp-{syW zU1yM|7l)^p3g0ozT>m^JA#T<G7>ExI_!@K=2~m=X@o^heOLJo5p^9!Me=`11U@95q zQqT;Jc+9PMRmKGHQRbH}^S?CGNN2}%6JKLl8E@|G3e_O^B1xo+8bgfaqO=az3M^dQ z)G3F-%s9(^Noi?m1%*xqaxVqMS#n{M<_<fHGoSfyp4a|Ey5et9Pkl0>DLU{t=-6lc z>)T!xF;j4`cR^*T<RZLc#ua*@&Ng>T84`jTFgdXSz?DWZcr*xuH!`F*`oK%yvx!gC zj6QAqy!GxWL^^N|u<i5yUkzJH`2V&pKKWz{%45V<f1>mMTzTgIOBazI%@<;j{jbvd zzmmR!U!e9byloKBpFtkg=n(*CI6UdqMIo=Okd7$7V7kXBEBmXCTpo<`RT}R%;>-$> zf&84<uj8d79S#UIF2xOh{jZEa#bN678C+7ffpZFJ7O{(hhdquVj(_(b1ox|=lprYI z1D_&%N^B;uPSZrQY`=v0KAii#ZtGFvXcPG{Mp?w0yM~>SoBC!YD9DJ1<J1_+!u9ip z#`ud})S@bwLHT2Kd3;G;Tjpg@Qo6v7(Mh0RwnrI4Z1eAR3xC4%Bq%2B@b~f8eCUyW zFZd6TanijpoLdC+6T_R}{gUXQuj~s+#E2IwLz$Nj9u%Z8DLVE)r?T}@w|9}&%rxMk zhJSP|apU4}{#KX{4R@c*QyLmg^_H7V>SHjIp4|z~v)i#Z*H523d9sbDo6>>rJkUED z%1Db(li4FoYSLAB(e4=Viz`m}x}W)=3)en~<m+Wrqx=EU5LVwXN52@?oA_$9zJ=!Y zFtC|H-|Q^{O2^-wjg|T(O+!hVuXkJU2Gj{jMwL|Tp70^^f0|JWUrEPM{+!v+Ip9YA zqk9IItniZyf2pru*FLC983y5^{s(#~zogrB5aKE9v#j~_L~KVy{jpdRoLzYnu__$k z`U3TzmJi(i2ficn1ANZUe?IyY#J4kPn@E0(j0a7l*v527j6QJx_YTa7p$t47sVAsr z!50z;4l0_bMStOapMGooMKN;H3Xv82AzAqc;v_$8L0FV}?}|_mZa(#ao6%o9g#dZ) z)5l<g&&GycR!t3lo^7H;edt~M4c{3l0qmIef@-N-WkiypVb+nl>@?LQIW9ec%}*Zj zRp^w(Hhj6!VAH9H3yFH16X?zl(gpZXl4{u83%u?sA{NjUQVtT~`xA?`&jLfRBJi@$ zx$z)*7gR*3@55WE&)@hPVqH`|sa7-km8<>a1#i9gkD|Zk6^&&J3+`7yo}VqIDlMVl z*y7iu_&}|O=|Rn`dG~@9-0_1?Z$~(9YjBfa(%Lzu<rj@XnMqd($aky9$|<6qmBJb~ zo8jC`(v2m(!a%Nkedo|h(Q?~l{rvj2euBqXwm#_97!)~K0%Uy_U3LVOOO>i0wixbW z2;kEZISYEt`EGB(IWuik-bFPl_@OtTISA7i02y*)N`gt9+ES}zDvs3~chB331S-P+ zJS0~@PHmuj512(msZ`P>rxAG@GZLCXUOunBN?@DEpX@@0a<UBpT=MuQx|FLK1o{)0 zP|x2KQ<O?&%gDqfEH$wE3?kbK&69c9UFSE-&x{|wa~e=M-`CV;7tVao!EBdQ>UUlf zcFy#6TCpO5S1w9%)ZJrHHSLv<5$EF|oZMICDI1-(*^>^-TBo|gQ{~mP$Eow^WIzEU zzW(fLA~#m<yTS63R8spPk_DZ^G2|SpTkGT&34l<fw|gt8<~vLwuqH%`a^_~>{;2qh z{CJ2w@n)p))_%*ivEE;k>N?EjexFwT)^S+a0{fv3@i%-DPbGy{tN~l^NIfJo+>lBs zB(n!0tTA3Ta_k``hnt6kANB&z#JHtd+9Jxflzg@!zQdi_ZoFC)ltRj9d*Am9v~tH{ zdXo^9S;g>I-di7`u!Y}?MGgeII;A@47Q8?s*xlaSW8F7*>@8r^x_wsb5TyPsm2ma= zeXJE}B%<v{_NqWswurGbP@7aXmNmuo+7((^rPX2VEuV0_E4PH&1*EZmC3ie+%rsO? z|L7Zg4rYbunN4sFYGS2jKe~F_d@wL4cNtJ;o>4e5IGEltM@UA>p|`IHi%0roD>R+B zN64~u?I@a!olfpLI{_LpGWAUX{%{*t`^YfnAghU@G={A?+28xv*iLuy$YSrz<_VaF z?R*Dd!T}`;j2MjvLUDwq%<U?Az7;E^QW(<po<!fzVciptA{skY&2t<;Fe;cooI=v= zanIwI!#cZh%1Tl<yY>*ylicj~^@B<RYszL-7ctzG<i{-aqOZ%WWRdgY_xEDBwUbhp zKW$a9!0X|k`AK~R%3hOUG{P0z`PAj!B4>Yp?*4Qni05k5A|}b7T=m5tD&AzARkICI z?Sjme12s)CNAOs2*h7v)o00cnZ}#NMDPvH?dQV<V-sg#S2y+r=m+u_z_9|KON*lG? z+_$k3gcHbW`;Y1=%1Daja$0x1U-z)s8j^={b0D7uSfaAu+|&!7HvH<a!1PK2dhE+~ zuZ`wAb1RR`jD<)nZT)oCsHEa48=qHO<sjwE%y*zpr=}fs*y#sb=jWGG%-qyRk~4L0 zJ|5bHbYE?tS4t{}8WlSc?;=4@B)1`>-aObu2bFIc-X<@p*1CoSjmn0Mw_?-&)T5Lv zW$K{Dqo=F!p?xcqil6UvP(aEs>14q<o#uv~0#J^4sfsOsRFF?`zrj>_2v(!e7asE^ zemN&F+<MeTAT<RALJxeE#b5cq;+8FtsAFg9*RzVLA@jL}oGNzcRbTJgPv<Dwfi`bA z3*YAM1qU+ztcJ4&ly@-d4bDlF8h;t%Tkc&#YuKQ7u;_{-U_`OYIm5XHi6%4Ifu;rB zX|1UD6yK{|*cjdiao?@-064sybP}tts3u%4clNpOPjb!f&@BcVu5u1Giqvlp*NL@q z8;b9>WYYMi+Ibu=hrmnO&E4-e`?4FauW*U)cP4HHr*3ab#hqCkyl#&X8!vBC2MAT1 z&vy%X?v~bFc%WzZR1ZnoKR}O9DGWDa3|keSx<r>Ufb{{dtfOrjtV&|X$(5bJ?&~&# z1*41wyDiJ2S`iDT?PGrZFva{Xqgir7hy0{hY5m|~)2WCOIgS@1Q&?OJo3)cTdA6*4 zs;=zEI@635uh6{T?`+`YvY96L?DV|n5~S$ytxiz138h7k4;*zhVLK%xDD?<3N)>cG z^QRy52Th|3562XZ8f;DVV|+E!;(OLxEzDY!&t<j`DJ)t!rxdu{?0Ui{q5H~0Mzs>d zX5W+sKPy5rE8Si#pASrmg``8IVeNGOHQ%iBlr<lJ22AZ8QeWNBB%8XMeQ*h5vI0#7 zDZY`v`CK|YKh-xTX}DkduGj%k!<Jd-w`J1IuwN}t5N5Ke?1c!H%R)@A37I%0X6ggO z{i5p!_K*S#6MhS!%s?y?m$7p{aqhcX1La*R(mU;Q##p+$gV?T?yF(Wj)8kUJJE+#; zzVqQwre@>)EbC(BEzjKs)q<H{8N1YGzsu!-xH0$r(ZuJL#<J^OF!3ULNI;)i<K_A( zV<W-E3|tc0_Qh2n|H&q7%I+J8_O5ptg~q*M@{kSOY4~<`eyx-}=U{#zFx5p;Id<-n zqCC}|2dsA~GCkSqPZs4TOQX@r*ZT$2L^Mf~3kh7AVw?Rk1$Fu%4f#@9V;f4Q`JB8J z0qpgbqbLBWxCkvH3t)}S4<;c12uWHw$MhW4=FfG1d3`AKLk!@fus!ZT_52yw2HuFl z#-mT9CC+BHT9*i7K3}ko=(9W1v2G3$17veqbqs#L^)MNgN|ztnhP0AqkMyOi)q1Fj z&$DTID$zT*xRfvCD4(-l>Vp#&FCpC-t+Ml}%~r}o!W<nIiw1>Dk!VLR1Ay8f>u+M} zxZzv7yE<+-?JO&M0Dz+~(1~J!ySBpQXWI7<j~<m>LLeWd@C$%2!Q!c+SiRUZ;2hG0 zmpIQAwAZjUOz4*TdZSdb2UJKWRET<6E6#npIxN(9R~y6~?tjC+mqc&Sao@g+8wuTl zxXw(f5xZbi^%sor$#V~rw?yX3Cs?-C-5K^+{27i(C#S$8C+HM-nwcFtt^c_b&Lspc z?HP&tVaQ4&9LKN?Ifg9=jZdy%p~E2C7z4aSPYg*6Of&XHvWRvNEf~cY2@Qg#GZJsA z>Zpk+?xNLvg1df#8enKx5LV%QNro~vrf92avl#18hO*Ff>9<R?h0xTgFOrtVuHeZh zhRRNmIVK3dtyY2r`>Am{Z)M<UN<WxgdF(Syc!;x#awTc@;8Q{8W4?Cr(Jx+U#{P;Q zNwtSSjr|!U{XwI5jxOIjmTcKHj!af#S5Eon*46gna(q`*z^bFtY;#ImwHHkVO%xmE z6?(fT$I6ikGlKBG&$**xbb6pWIdC&Z>J2U|$~ujT`#o{jUd%pjBD#xC;?1qAiObyP z+3|vtq1N$GN8|l*q{I1?K}R_f?aRBRWpS6{v!rRh$MJ#C@#WGWp4-*-)IUR{4BjzS zuoOl*C?B57^1&!y6vY!8jJ97h=lfO;i1i(zPO1-PXz5JcK(NIzOSh5K!uu*CgXT{z z_|{zvtU*eNS5Q!R3b##i<o$SBjGT@#U;E}9ta`tuLyD!9_K1Ku;T`<CD&$^cIH`?Q z$Fin*LOo%Zu!`=wPh6BPHR2LNZny?E^j6*A)-|&16W=$IvI(#v%%eqOUYapwm)iBf z7qg<3yB$p?8B;o?)wv~E2xp~Ip3w>V=5L{lMV^`VpmF04gY94?GC@f@)0ohjeh{Eb zeXDlKUh>$Bb?SL$mDoq6v?L=hT7b|u*l1r&g<Y@=yQLXX3_{&euMBvzDZP^2%GdkY zm})BprwWmXVv8hCrb2s%aFzXZC6}dJa$FX-@6b<uX_5Zx(%}R_N4}8JtfPEKBr9_S z*JwJh3+V`UcnP_9CWGOV2aLZ?OyWtpgzfA<zq=_7;y#W#GU+|L516`(G*Z69X}oL< z%D*!bOry8|8F_yjEz09nh*HKr3=rj(8hjRi`Ma<2kAKJzga_#|Rbl)R0a->H8kY?f zy;{jyvw)qrXX5jdrwuIK!p+yyV&bPS$+AG*tQN_4GsA~FZ<GK&<C$szp<DawvKAC@ zEypy6y}znm!>{~02kLVFkh*W<^tcY-^ACP6GnwCS7^N9^u@!%vMDQ8q`r74dkPyFI z!=CfH0?}?tB;IRap{%vBv^UM0W|tozl>XjNiJ^Ds?Lj9Mel<wgZaO&_R&Zw1-!Nh` zpTCnt7!*-U#U<#JxF9wOG=<GnwG>Xn!x}9x^?ZY2U2XiR&gjzd08EOHHavxj%Rd>i zRpGC^u~AP^F6&@Sdb69U@3jD%pE#4A9#3|g;L6%>V7UMEtEtKR=6o)wq`xNVi7n$O z^FdZcXnB1D5zEWmz|sXr)ng#W2WMwcN+ACnMt$M#gv(uKbW6j@r+uT?tNZR00Oi@e z&=q6s!2O~8GT51U?2h>EqVoPDWAOqmvCAIk8jnld;r0Dp?;7!314ZjPc=~iKk*E0b zy3m=!X(e)a0eubpA9sLD$qqnrV@JXqDTC+=QurYwO@@z+&uHSShm5b3?@2v=!ke-% zSl`^|FR*2>4gv^~pm!oQV>Cydmwy=W=O2a9b6>55x?EMNi>n?~MoMl_U1u8Ik8KAf z-rr^t-)|+lVAnwou1dZpp3^m4T?cXBE|nIV+@J0s!MUB1ekkp7zU~YUH&|~~?yrx< zxi6;(|1^`wDZ|OYN1yh;!%JIl1#~WMAZ73i6rF-hy7(P<J=`ElNxDga8kf66avt@X zfdseLe}1_?3x4s*o*Dj)VX2S3L9LtxeQ9#mYmMOhJ*(pLMjGO~SeN_RwNjVstu<L% z=Z9NT|G>x8;Y{G1qmn^HhZ6!l61*gl64xvR-qNV0WM^KhT)4Rk9e@W_;x4!Ax7WK> zmk-^cf8dut{CcpDO#vQ}3<3iE%V%&&15E3}lV0&>4>wHyh9-P$adu4Zd9RNL<fW~T zGcw2dltmRqbMN|W`G+Lr?)u$B)t}4_rUSEU2H;I{kti-&!@V}aJPN%3fCFF9WJV{L zbPF<ytAtPY^1waiopYOec%`<ktTngxek?odQMz4QZUahwpnHVRF)%sYn<&!$i=i&h zzo-2~_d^|yF|y{Cyf$Fd$uSGdp$Zqd?Ils_+Mc)5X`uBb_E_Zl6?K5w()%YATbg{} z!YZJAOf4#LNy`&AaV%>*HSMOaS?nRc!9H-2uvb}p1TU`q3#Hm4xxo0E=s<?ZBE+>! z>uLFvP=+wLw+svwi=dDJ?B_5H(BQ9?ljKPKlmbe0A~X6`bwdCi&)X4+?8k<l=tzvJ z#c&xrAv=^K|3Vc4H+ujFVNL%5R0iFLYYmeSA$Vk@D-`>PJ;d`H#kP~@Zm(enPIw<1 ztmiQ&AwUJ}N!Vj3l@msDsTXlo%OMP?e>|Z=b(JJFt{Sshwi0OXuHdk`OY?a?(1sSs zTak~qUdom)n*SQ{qJN=EH|AbK{99wN^yQpRY+&7i<nqe~nG*;;7V~<hLqW}R-jK~? zc!bycH3<m61pEgSv%<0K0=Md<z*xpP3Pjg$Aal%wW3?9&nG~>aWF4*lGjUnx+w>th zw~Opn=7_N*b$!-fr!bQ|W{y=ZdHg(ZI!<P0S}Br%Xk%k8dl4Sy&4!RlXDOioAIIai zW0ZPgmE-DG(KcQudvy=qLD!2Uc~)8mSwd4qz$tLwz1#?<{||_;XhG9r#i@Lx$t@D$ zvCm=|*9)sx-nK)BXS!J;66;%M{=0lnNE5;nqPGZ6oVvF&Y-DGYqw~@M1Biyz_*;26 z&ZBQ~rN2Kjvijj^+@n8XA8)?HtdXY#{@F0Z_f5OvTmm19tm9o(zL;xQh3HFJuoONw zk5rJj&q9yCJ!#1&H{LTDnm@QnJsxq)T7V`lILw^RLQA?i1XD7lwTvNDoKnMQQzW%9 z=S4M#;*|hX>+>mB6(&zGi1u3aOads4B@LMg1^O-x#6<Q<Bt6wygcP^&ZPTKXfaUA% zK?gJOqPf86WYmXnH*)pcXD|a>Pe1~(PmI%ZyeHY&LLJS#BtCB>AR~|1G5@DyQP}vU zfoTlp2_~u!Zjp&J#5Zm6{ldKZGMBNuTx|)(yH=e&W;P9wQf%JG#xGpdUk)qiEdyik z@0x8mao=-~l3k!m)1nK2rLX`*Jo;LO%CEwcm2I2c2e%-W<Hx|a7}@O8k65P-R(#%k z|L~?bn?~-6#21c5=;Qxj5v>L{(;saE9(i8E4$$=ZL9&sasm3nKhagK>p}hB+s)6s- zq=(v_a;TwFxCt75<~Q(KH?b)mlcOr{s<`iXcNE#Y))`j|GojAy=|kEZV(5I8eKxdr zcrnY5${w;cmrqu3oHGC3Ap<r4)r7-yaEUVoVH3V8dq`Z{4MYY5iBUEC8&|=Ag5RQO zAGOmjg81wc6hU)~C&&hdaLf5WWiKUV^a$jS&Hv29h`9teB{C%FF9bBfboZAW%f9p9 zoRfpo0cszo=Z5Bow063W5ov_esds<5!aXmhL#5;bpvyKDR7aJc%AjEs99chVcX1<Y z<%O!545ZjD=mnIV{k$fk-~%t-eYe1%`x;|1!Z!w!*@52|!iMEgz;BNLe5MztHYise z+K706x?|gf??9s_VvWfj|C|+l24P)&4oU^Mzm45d^rUwSOk;KNob-P;M2Giz=^55A zD!c&w>>tn-&@}`gp=kqS4okk%V)=@}vbeNr3l|dNZ0a4}$70F_ya+In*qRGDXQ&fj z;MQHU>l9>oKD!1UCL?`Y?9Fl-c!ezlro30%p~1>J6;A%NL~`;ftTkax5xj-`7PH3A zZ#=(}Dp0Dh@FR8f8ktgkOG8ek04NPuOz7^B$Tw-M^6*1M3_~?otDVHB&Ut0JE#?I# ztc59#Z|<=&Tff*$r+hlF8Elq3?NBHpdvX%y8jHT!9UP>~Q%+r!4Du4pPXB3z6k*X; zDzOFzeUprOyQj_Vuguid)R^=KYo6~<?xerx;NdXuS$^jn1{&AVcd{_HA8eR?RmYEb z(xl-GdWPZi9%r+=R%;v<=Q&vr3shqf)ThHj#iOF}UQ!23c}3}PjEKC)M9#=7qhl32 z%l3uOYNqOTmTx`p31Hsx>a^Qg3W#Mbi2Bf~_MVV_T?O`qma3+%NdSb;=`=Tv{iA?X zc_HB3@WerjXAYgtBW&WG@tGBt0n?|hI*}b~kO&pXYaHIj|6d`z*Vi8m$j-dn)H!L- z=2P8)Up)098Zg$*MWrAJIp3*M>k-#P?_sEODKc9=m5S1s`C=YL?Bf>b&Xra=3iIr( zENr@S7&DE}{j@?URy8gPwy%-pY~v%rK;iWA4FW(vZSomxn><nVz$`ZJ)VCPjqy=Q( zWNG`lecI7@V--l-O18=V>WBXK-7!CRbjh>B<cicdcg<q+sK$@)hLhR5-x_%AnuCAD zhrWl_L8viJrwftZVg(ZGZEKOMoO9Vl_M4GU2HIdkcKAzq)34usmBpw+E#Y$VCx+iW z?JGv-3BJ<cfL?1^Z+$Tt&iF|Rzk4BMeU!7|5y)FRwXW8)g0|@(IOFSS>@1Nv@#c+> zX9sV$(Y}EDE*qf!TTYlBpsUwoW$^#t|6u`evwQGUk_l+xtaOnY8R7en2co10rWvWc zkyL@FqYb4y$o*`bb5uxS$Z_pL2^dGP?jT6JFXBtJitTluj#ud3v#qRjY+=M$L0Bkp zUX!LV6h|1j(orR_z_NDJ<F7v;l*l|ud^x^0Ra_79FtNLhd}vskpDRIc9I`U_SlKv0 zxkz>B(IGwT(~@qjZh~!ypZzD5%s>#j_l|pLyI)WN>AqCf<#?O8<JWNQBZMEH-s1tN z*$7FS8>|y`<#o#f-B(^N*($I+e$kzRU$Q7BDP(asci{7qblncuR|kzQP!#4pJ29Ib z-lIdNrw8$PnLKey4l0g@dN=YKHWv6G!w#~6(e=S9N^hW`f4v|TgY*UjF}<(M(+L{~ z$CDqlGlHjsfH2ttm;QQoOarV~v|780!!AE`UXCHtfT!+$oD?Vm6}%dgY7WLaYYZ@j z_bL@VcN#A$q{=qIrxC2UQ~lAT^^KA=%T={6Ogvntwrc`BftwHlFIO^-THY}DZ?bI% zY4=0;PGvWb9z8xZ?>gNd{VcyTWV(<JM9R#U9>|mtn<5LKFWTcx`t%+ro^xNqNuZ`v zjRYS^Gs^lhFd&ehz`gBV_OryX%u+i*$G(#aFp?FEFad;NS5TiT$09t?7lE9<AaI-t zJd}sfyc>k|Dnn@V(f;dIqOJe>c><#_0RqDK0XGk3f`6Kku!#zP${3839HQB>tH~nd z`us(!+S0XrEq_9l0WU0nqe<wrU1!D^;NFbCz3W2-OV)nN^vd$U(BT<i^X!Wyx74c6 zHDjp>xE3jX*F!V;|6=d0!=hZf|54qj2#S=VlFEPx2uSxJ5<?>;(jwgrl4Ftr4&6C) zcMsCt-O|j^3_ZkoaEIHy-}n2wuJgw^*Y{k9e+-^j_r2EothGMtzVGLmfQ+r9XY)DE z-adXU2qiI2AMv;f?&xj?b^h=I7#v?7Wk%Vc@Pqp~-T8Cwnq<*mNJGTtOSVRHK7Bf5 zbWN@BZESE7$Q&|krP+!JY&3gVqJz%)k7~3-Nz}-T{*lbdnaPJ^y>7gX1`Hok&z;~a zp%0^LpAD&f@!HIlCMYOyx5i~YEy@j^f^wrt<fAgFRWEifRx7lNyq$vO9B`LqM^PSX zzwsr2;BJc9WE&ck!u+x-wy2%?G{U~`QpsarN5=3cB{YoB0Ztd9)d?)6;7l&?uEbU$ zN>mamE;??N>gf)`rKzLSZs%a%2X>;<!`fEkKLr-v!5ga|IFS$_DMXtQuSgg&{|nwa z&G~}Bgpvy9hcArZr6s?bTcIdlTTmKC>t`vqr>><F`=p$7hFB0>LrVP7m_qNG^1KsV zilOpJ2Prs-QU{`6Ovs`eS3inrm!j@}CCat;5io$zTz>QZW7&H1Q7P&OrrE?jhz3cD zkK<~3`f~Ra>;>aqJCtVUHz3D^^P3BP{w?n{vg5I>x4&IuQ7>lv<!C6eXZKVzOYt3C zy6%v*XtPx&B5yCL{#)LsqQAMaOzfeXh-0g|0zcWqY1)|sJAuVTO2%89H<28V{hAF< z`g0~qE!0_?G^lSMnM-BDI(+k<+<Q#qDyvmwf_!y1Zf2xe^&vm2e}I1Xb6aDJzi0T_ zt-#WsG|N;yeD?_58|HCi09{iP`Gdh9AzZbp@t7DMSH69hYtl@z`pX{K2!ouwjZW+! zmYT5VB8Xo9bEMb<P$ZR7XP~IN4w=L5SAafYr<8p_bi>Vaf|55O@}2h~qLgWle&e}M zPOqN#dY^aqL5ZL?Bc;%b2P8M#TfCETHqEjE3We@JAn+N?QwDt|@cm>to#e2(?wedG zTc=EEQsz+HD*0rW^kLk3N?7KGrk#Yg?&|V`d^-}^1L8N+Tuvh}2KuVWQR7DxIP&m^ z$cL3h#(Z8FADV7Na9I3X<=nPJlgCom<N51V7zz$<zOp^B`7D!5wNHd6|9S8=8%3M) z=Ma^<LW~c#vdb%{d;b{@)gbj^H2aD~Di?o}bqP!qyOtQOlXAV4Rwp}-Ph#^JsYIKo zF7wLsB}%d@D#u4J6+Td()_(ioo6}h{=fH`VOC{!WOgl8qRC<cHzDt3+&~88Oj*rEp zf`ik@?n5jJ3hd)9!LOOaNw<eomn#DO9yi9+N>A{0x*ky^Jr|qO9uoFX((90;Kz@AU ztEik(NPFI?2z7#FB&&XpG83b^o<zLJ_zix6FgXFDof`=hgNAJ{t@{zmMFhl8Zu^M3 z21Ia?8&UX_Q&J@vQ1eK0H15^ZekGOld8dCCYAWLXYi`zjv6soaT!v%Z$WfgF$ACJq z#o`!p>U6&fQV}>~eI)7Z=jawyc-BrHj$F>V!(gB%<GmWwvDXeXna}n?W$@P9nZxzo z&n|jPyOhttL4WJ4Adf0?8ye7j`6U!$bdOwFyffXL1zOFfhZyQF@r<vVB==fognAnL zW<C}qTmWw>I-5b1<V1VFMcy^z2e^j4EXsR9BjHbhthsZ3Ji8;adxFW4P%eUbjK61C z^$CHiUvRFPF96^EpYymgcs_m?(7&lOLx(%IwPUm9@LNHkHpe{_*00g&_W~_LiLNie ztYK!vF}YTbUa~KOs)WCBW~z<RT21r~65CvMJtdOaF0bwO=0?s=RN_mM!N}(q4fU)t zD_4Rg@a(9W*ny3O&`@Y~?g-7{V+K$f4@;F_bBufI>BDbE3)eU4>HPRB#Zo5Xz_?Rk zZ+!_%(tUl|m9#!0<ejGmb4^_tgG-8?EM$(_2^6k8y*IrKL0LF<f%zI8LxNvCAvp{n ziWf56@qXe!!~0Ozv$Fq1LH&zYQXICA;eG$m-h4S%rR1B|$(0@&+6<&ILnYLD<3V1^ zHlCE&-qC%_L~hhT=`Eaq>=$2e$Ay%{y@&Wp0v*KlBC`n+8Qgos1W)@X`fSvmFHee@ zu0v4wh%lZUf`n81y9z6%YowXt^bDnDD(waNNRYs!SI;=9%4iaeOseRaR36c9_pmn6 zp!boo5R~w!G>4$K%56oKUlZkRo*u3spZu#@@r`(u(vrTJhp}1I=n`jM)O!PF#?6w< z+o49OF3eM94l=zq4pLt|fM$hRTKr69<2YA|t^K1>wJcBx+>!!p|2(0m{PgP7qo&lU zI4<1vuq!6snuA<wHXf0NgHsdrt-O|Jm>Ux%WJ<NDIMCItFTw!(_j!Qw+<E_H@+0mK ze<Kjys};^d&xf)=x-YQv`aYzQA=&1x!9(D~Yg-E10|#_>xl2oHv)<<O_d1`<s>Tw* zf@|hSMe;c4!F=}c@f++hOPblo86tgA#m!w#4sOm$dSeY(1K0STROC?l3`d>oy*ubX zJZ|r>s|JpTB2Xs#-OMH3bjUK&g#;&`8Xs1EYLCC26Ur)G-LmHD3A9S{o<Z2?uXP1- ze15vE8o0_-Gvty${3pA0>5}+sY6_pOa;{=pgUx*uHlZ{YHov6#`lNXGxJUB6nkE?q zmp4gMk8}E;=YcYA8z@M7^737wq*pAyAVa&S<WOte=a?x!h?jPTqJ2mVt|LA;r<=&s z-SKsH%Zb^L7FvD4JP!oeDNyn$D~BqEIa=3AsJi;pOr&oH=vP1dVwUXIl<IuB`yPi- z|7{78pB3swsk&;J+6yCivOIR{#tpqiIR#gn{fI41vk0GYU*GYTr^X&Me-A$w+=Rri z5?_!obx_i&R#yYX<+GV(jcP7EF|qZJ_xOZ}_Wyor*Ru?cj{%L(BCa{c-4+Ar)~S#C z;L;NtotMgk2=7ERu>S}buW>!21NS#VH<2CrrrU(hPR8phPh;inN@eo!TdEqSr!)y} z)vH;F{+Le}T%}csORr6UbUi}^%jA&Eq~hZxN32f0_pq{C;xdFVNPJBK?xQ`E(lF$W z+3cE=i+k01{QR$9-2O}+;4^whzCRUGth%NZDdFw-+sd_9-NdaL{Ge3t*5n@T7gvLi zIW#(UKU)uLdtAq!eZmyeB!1=M-h{NLMFFA*rd*evGLi$mje%z;VU?5O-)@%;SbTX^ z{<{B0=4-`xL$gQ(LHBqE{_KO8l+Q(@-WRuC+P%Fr0%MaNSH2?LCeR*KxX~|@M(d>B zMSz=c53sR=neWR59V$ZK(Oafz+%K@MgWpxIgM+(<+1ww-l!Q~&3-d_dFe)JYvDj#Z z-sJ^^nu*}Wpb+>r>38JgFdi3dX8xmMg$zYyow(H^4usEq<B*Fzje(NmpiiUXo@l%H z71ID57;YtKXDae)o_Wzz;HA65A7gAh;P_W$Z1_*#6W+Kh<05=V1~p*LG;p_G&GqOZ z`KO{{YZ5ZTivhfgtA9a(9PF}RYa?Yhf8PMA&b?bkSf(%x@hT5^1zp{nC>>5sD$k$Q zmYy?^`kei=$UEx`TpptM`*IsebcxOT!QwyG=Lpk(BGR5Q!~t}Othu&($A)EY$Mv_= z@>q`^@6R_L{X>5Nj!tXf*)zXKLAs1NeB|5A-dc=1O8mE88UASzA1~Gp%{`$_Tmxki zmYMX7bDD336?Z%MwjXM(G7DIZ;0jY*#fW1%H3>;M#z&^6tfprVBed+AkMSH2C~G&w zov}+rAU{^GJW2R{^-2hXH=iP8Xi96q>!!Uu`3m>JvrL(cU-AL9@xGFjf2_JOc4QVH z_|6ZVk1{zE5u7@GF1J{loT2YTAz9<+v{fI8kZZ_SR7f&Iy$Ub1%AI-U%73?ZOb9-x z%g^wSB{s_R8aq8t_MDtT_*|~$R=nJ;>-EI01Pr&IAFt6Wqhs@W#GK<X1*n*?AYP-^ z<1{_q#>S?tt?d+ZaDKd+S7tRMH`OQFGf$#;^~P>nj=^XzcEjG=S_8GW?A&*CO4y-1 z0*`a@KTZj4y<JP6-6D;oCg1t8@u71-g`k*@aks*3gn7J%2U2~8nTfy8{^;$F{^U|m zq=@=09NbFetj)R=l%0e6!ZI!ieir5<3JUb@5KRW>Cu6AkN$qPzHASY^wVF2+Hs-lC zJrt)uEbl(X;p>0glF-mIlcl_Q!-Jg8<~pC^p>~S7+!SiLh_gluXy|79MQz@9D^C#X zQ+M&mUESIeDA^Zng`md&<ANC`+@oLV-adV11$!E3)hrni!*mJbZTr5^!txiJ1^iS) zC4hOFqYt#>dJiAj?7gndp9rN=H?zvyp&*PyC+>=V#Z*f#=1|D;5(;A(X=kVC^ItZf z1yI88$L>jz-#P>7ZhpX8XKvNF0Zch-8L+W`)MbwDxJh>wadx~~pA}vpZ!TydIvwA_ z1ji*=2^Q(-1;1Q%Z|8b6SyUh1*=)trU81*Aw(>sKx$baB?<)TZ3a&k0R-vy}`}*lM z-Ikq(Sz!}h62~V3<Y#Fd0*}|J#^0_n*mkv<qL)Ug4g^OLr%QF-kSZrSa{e%cl}>+T zYj%Sd6*4FYP||)`ZS2ulPpSJ3&hcghtKL@L)*@9cu*;i!#@hQ2;Hygxut%HFI-qER zLO!iZyuB5K*L5PnAg1RrxIqAQqRabcK<JY~1$6b2-OCJ&^^;0NN+{n${Dy*j3+Y`D z15O1@E@+rXCZn@fp5(HEvbda$wxcQ&C9rtNY946T$L0yU$gT$GAVBqY{DW;`BE@}F zpDN^e_M;e9UZ7#cRlVX?0U9f87&a+c#rDECxkh1A*Bx;9)KYDF;|ko3pEVZs|0BQp z2A7@$l+ds7V`c3$(d#pjrysvRtGcnXA4aGZ=sMbdO4zo{yg<nxN8)~Zr*sLa<iG<r zSDvaEs)a&P0gw7&PvE#q+rZ{KO0*A!B^S7&<fejxaDqXN)QvK0(Hie7MFILt<49Cl z`K@pH-#Yppq9j_`Z6XhKD5L#~^7W2pttBdPB|ot$@FacE@3*!E()G|BKrf^Bk>Z-P z$8LxDi`}u~ySw<3l7%tkP4g{XJ@Hv`ah=cZ(o-_tI}$p#OVJT3CKqsKLx7DZdDhUV zyE>Y7HqNnMzdiiZdyvf~FiH+%)gT1zK%cVx`S(d-ZRvTk+kEyk^8PaLVOTDUHLj1z za2DwA%QQeW6cpjKE4{GWp|Cp3tc|jypvUcU*D7)lGvl(5`Xp>hdM*h_l20y4$Y5^O ze#@{-m^VcX0Twxh=US_=RhASl377jPFU*#jMl!C(>r~ne0F80pBd9mTG%X)}J2A2h zy+tT80vJ3y=%yswGRs0NPb4L=hTEc)@S8U!{*O*Gpyy}X{O-w`;!*5WZO=2`VH!`i zHi$!u;yq*54k8M++Y$}ZeQ~#g)l6nd0@6V+FhH=dj|2b*jr8sW+tVz>mw$0*TalQI z`hBX613?zol|BU%_kWV1xV1?{6Z&N)x6nYEV;|V(INb*_;dh!E&z~JfP!W|`1q#01 zs*4jW%hh2?s=0Sxsg4i}dzzAO*X8`IPp`Q%o*i392%}o-dvv_|5qjh|AAjy9$h>j5 zJ@5HfFrN~bfM=WA8$CZ}r=B{I_%pS|;YR7|0;#S0>paln`BT%C02vBCMb}|Dp;`x@ z5)0FcC7JvpISR==pdr+;i;kUdQ6Dhbf!!Q|87BjWQ{>t&foifkJLq!|lyhtcQ85X3 zO4@wU9fKk(x2<k~mdlSeS=L@#x<BK-$RYZF<Pf6IfE{T$Py1yE?|YXG$bNZB(-tET zOGtKbj4ClY*c_Qes2p<?r2zBITLJ2Y3l<B@!a?_yu9{y~5oW5ouX;7<ga1(@*x!nz zIwnG7?Zul#QAHx@_(}C^Jw1sGOk8}acC3%cb3TY3FR+p?kF%~y++690-DDEVC507( zk_?*?KsIK~@aY73@;NEfkFTV8JU_PP)3VHNC3I2;`Ixr!^748$pkeh5#PV^i0@e?X zCM#l+AyhgQCnvkeFRLSd-8!wht&q8wb>~O>6M!n@j+Ub5PciX8=IIBhfLO%y%Sne$ z7!PmP{_aWOIU0KN&wNZbJ>ZitMYZ^iJ!WsdB!9=2|D45BWINCpoGy-azsD5LoDA-= znMMZMzX5jZbDH=^Z=w!&Qkx6Cuv78uU)gF1w#z8E>Us{u_^AjvJO(<(9H#T9Q7@Y& zjM5C9udT5dE8Wik^@*$gdmRfI>djr3BP-cV6O~d<{g`QrNJeP6Zts=@PN)#QI-_3L z+rY5{U;%gcMdsrFBQ$Vd0XE+#lu(dODH84MdlGumL`H9?C@Ay<2d{2C3NbRMk$0Wk z+8fbH6WA^1r}1`#hfeDA1+l7p8^>0;tnsuEx0P;tP2a8P`(h)>3*LgO`(WPUn+!*% zcV*#;++5>dC_G!_yJscl$GwjvQm?n<I0AbbJj1A*fdE1Ss8n;Qpu!r@>+#a}^O8QM zwO1ZIOQ3W!z4->h`NBci7kmiDi_4Vj_OkV;39f9rlN5;BVvLlybg4dWs*KB`y3%T9 ziee&f29W}8QFP)+{cv`6W<2{YXT8Y^QL#UyI?A^1Y>8Af7v5S7@6gl~KU-uWr~c6_ z?^TMBgFOH4)FA;b?Biw+^88m}bNI3Q2nIC5rN)Bn-qht^CdzRA7IbGo;A3T=nVGA* zpm_|iaAeHt?4auI#o-hw(^?87CHfJ`BHv+2mYZfB0wjFRQ+3@YTMPbLn`Z2Wn$ZC( zC2g)ocy<L&_EbeH*6LWLQV*s1tF4Qxl53J%MnjixsE0_Yjn`cTX|2=lTP7p;gSM|V zm)LkUoJch8xrA?%y+*AUYnGLwcbu`;r}&Gwmn^<EtgO_BVB`5XG1?Z+2uX&ns&Fkl z8i0Mt_^tF^=Ii9hrq&3C@A3(+ieAUJrXANdABiqD2C%%83;EKBh?!LPv}?XqW*viu zb!zfYJJ5)9Sm|kkiOQA=AAaF%Fl!VaEjY0r>}?cj7SM&k0FMF~0qy#>k|7QS9vWIP zQGs%6@WE)`V3z8Q9#OErKRx0t>t^@5?OJ`~*T6<5Y8yFt<T<8R_55^(<#Z<;+uXuP zHrDs0$I)W=M5)y>!JpYV95^^iF0kAaSK8~+YXJaTf=r(25FSu7cU%Xy=1`mPv*6yj zFF(CI&@C$E^5NOE{sqbixIC`<v2R+$CF;Z=@i+hCeoifXR_asG0?WBEdg8qBsOx<F zn8mR6m{{938hR*L>N%VUQ+c+GJD>ILj6ASGx`?2|he@Yqzw<#nxq7oW|3?Cgq#KC1 zml@wl0)SfZ7WzcOFqdMJFDP-btgkyzRM}s`lxP#;74<;0-#H!c4b!YW1!RfW?+}-c zTNE;v;`o+Afo@iiobR%B`B$ftSK|Q4b6Fuuq0qSiiUKcu!9$PD95`H^Z0bmYocfx4 zoWR?y@6zEcLT-lym^_X1GX?0$d`TW+{Io@Aj<5gR4P#+x$?WxK8J5}&p_YY;R(^iu zZ;y3}9q8!6ul>lU@h<$Bu!Mq$E9$c4-~{rT_`M+gpy13KJL>Fl)w&txt$Tuj!Odz< z&qsdCdKcICH2x5ao(1f)*k~mF1{ti;@ts`(q;>T^qVsD(0~0yWUt;rUu=#W34?Bze zZ^LD}8pn<ApD&bENDz|{s!%N9_&pIKUr*GhUwieIN4?8`lx{JKoguKKVHv{baUwZb z5^mJ3KjqC>;YKg?Fp-+?Sj^Ve;-rhn(~U+1#CLYoBOMd-RD;7hp(cl^)Nonoq+x*t z5pnD#M6fIc?4^hR{pqRdkfaY;;)7Q&J;ee{BXi{0WL%}D{6*MNxF>wDe^@r?`gS2F z?gG7xjw~XP{w#400#X@z?EO-?o6a#<Bq~?kJZPrfZJFu3!XDBy6{kvHDELSA1oYDG zt9t|mz&j2tn7dhC6rETXdj+NB>&?ze1i@m00^y9bZ4r82(<3Aldpnb3Yu;D~jvL;B zE;I%+2W9f{F19P*Yl;WOFEr{YE^0@m%QaFbe29+ML5^(h_a+7l3iOtZob8vT3uOkY z0%u4q{i#f#rUs6DyGYYxukp^GNI3k^;Z^L4mzqEed}{*9ccH}mXP<k<sc1%mLh!l) zo5@dSc$FY;$<**8E&1CBKn^sPT}^5i{`$N8ZahKV4OTos+KmW1+gyscz}<O7BRee8 z3!he}GQxF7)YN_ujb3K6ntp<?jRZDjPmU8aLV+dcmHl}$b+so3ElFaB$N3pbRNaww zJzY#d0;t7DWcO#)T7;Ci$t^)%eG1*5=6K?3wm!1#25!kam)|@(+px=Z-;d^Y%}N)& zY~xGZEpGE%_`b5J7&UJ9hYueT-aUTMO`80Ol$@aM^%s#j0_B)G=jVoEpZ9cn+nG&P zGCfnhP#DC9U)FkVZb_xNtKdnt3u!`EaiUN^TKpzHeSAvwspfmsk%a8~h9f&GDIxCc zr>E`~J+l4dc{e?$NIkgRu}>=<Ru`V-bmbQ}*wXMj<2aW0aFO31Qf_R_i$A8!?cxne zIdkNYn{M~&P|WK-Ziu8TZt|xvC^uBST;+D8<<U+S=8|<U%A7^BTyGE60P}Oo3B(vI z`ks<;FJ)`F8rz|ehkKC4WT0$qmN)O&J~=;YIe)cRdp1&+hhR7@Ty|t}I^aYgFlU?R zTDu3eGqny`cozo!E+^kGU~o=#tg@F1CtI5A7zET^N9o(^X}B`+feT63$u+?`O}*;g zgUWJ3oRVfB-{xT5n?mPkq4Of-?mb;UG;D2|c60(f;i#{EBFZ^D=2;YckQ0g@9;y?& z=VfPtyv;fPu4%4;lU9Ohi8qWi*QD2w?$LcuGbV`Xgth16j4`%B;CN$#j95_fS<ku2 zb(oaDEzJ?6w)S*=`TV4(NW`mD_d?70cV2eGKFu}44G$*50>#?&uv;{bU#~hpYZ>r7 zlaMD>u(Wc+`203d%W_?;`t@k1=ns)ueZq7OWVlhRlznrx&&QXg^S#_l&s&Wf?|a(q z9<gfzXHRGZ=)-2CPRmpwH%B;(m8{{k5L2{u`_<ONGy|RQ@8x2np3}6I&3Kr(x!R26 zVxJ$JTQ*!c&1=T&7|{K><kTRU;t0?XdGzve$wK`3Nw`_w`(Wx)9p)@6=d_`+TRFQ2 z`)k8ZB_j!KFjrhg^)WdLTbkuWyi*t@x1wpGP`}<)i^Ii^#(mEkK`x)G&?(0C{FxSt zV_N$aaE_yXj4lr(UZ|nuaJO_(B7jYEAR(vkO@Mw$ZPoslh|`L!Qj@~teTzRN>g<9Q z7P7R@WT)(Ss?}DPy#*_FjFeo+#$}=*8B5?$l9y|E_29^{slut*H5(dSW&G^?d#7}d zDY)9z!9i8x{IY^`J52^c+cjG>U_s!*$dmsxatUF`?X5tWH_PvRZfQUF+88i}H2*%0 z<PBpJ){guaMc62Aku5xxAOlY!h>gV*6-uMdPlZ$p7<{(Z$7_k;rySv&(LK$=5*DO0 z5<EG1Hif<+M9Fhro%@gwCB$jpoDe6X#{xY(Tu_cVe~r)0jlcPQVMd4hinKpW;aOu0 z4hVa1otwe@z#k>=bSr|QrrzmYw3+<o*X(*!GixTU6Z5_K#U<2m58cl9DU$jp)&k?b zR7hP=JH+2gNV%7AaaSaG)cJMN$MD`nOz}9(#&ee3{p@Co^*&e3RKP`XUs|6{-bO%0 zZ^g)Y_PIuliiViZ9J<Z1cqGBXVsz!LbIYlkSuq+v{LM8ybv?IheJx1~tW%y$J<iIf ziMbn1iE8d?sakoNSxnQ!YrId+@&Y~a5RnmXIfdGT(=)uu2Zu~fDAEn`b-t%3y;GUv z{WBv0Yj<3VtF;I37|HENRh;Xtx9num2MZdmxmt!8zMt;{tee*VaTzy4D=7igjwJd& z4&Vc?;(mOfzXlzBGTg9>A=G0#rsot!>Pq84RkN^C6DD`XMJK<wr?s&@FzMk&<Y<bG z-a*q*iH>IC{(jRbHVaw2*1=mZtGq3xk}hW5EIzIo_wnu)e<N1BV|%0ZNQpcgBtA-X zDmivQfX?di+ZSiT)p>5GmA)O*yU#8F#27xP4~1jn@+HN1ye8tum$Ba>;<Jx`$<NmP zG$y$xe)eAXv}e)81p)i*rTwIXMVB0(>HgP@8FX|vB$K5_YY?h`!Z{xdqoF!`#c%w2 zw<*;)ZNm}eR1>`{u@}mHtGP3d!*O>MIDoOL;`1^`4-Bm7P08b^)CXCN-MkUDyEkT= zH#?bpAdlOheByPmO-e%Go}QlBWl>!hU@QWKWBl(?DuSh*F^CVhr9s%0RzU&x`sVoU zcf)&aFvUx-zEf+GnM4Hs-3Hc}`QNP~Y5v%pQJ&kBgw~`B_UX{tZeSFQ4h$_N_&ykZ zMm~3@g<21cKbuqx*qyb_E<5O-T;3$>hK%!;gewFn>v+(>M~b!NQR<zr=~{&9D@Ep( z+^i?#goCb~sY!v&=u41f01h@d``@e#+GFB=YnXo0AsB4m=uI+{2Dlpb`anBGe5Qf- z_~d@T?3x`9Klw$bYW}%`H>mM&u7rfu@&kOW$O0AF4xVsexz)9?UbMK;64=8MU%9*B zccUYdr8!_L=3ca2-bq7Clu>wT=ZfId<9=)dYUOAuU@!Ze9)3rMRQDr{^X_&2?e1Qx zjFy!Z_8v2#u+vD6x+$a8DLw#mcK6qIE;ocN33zCzVh)${&ys^Jzk-nOxOO3xe{MW> z+H}+m&`(hF)|dDiBBb%XW7Evl73|VlCXL>tiW!17PaEn??9aAEE>!4YDjbk&D6l@N zkjhed2<kjGj=>fZ^GBnW#yebxJsr@HF8-}Xg8O^1Bw(v-)j&&1P{aOYHeu2tx#VCi zIG)e-lhHx$lxtv2(PBSYuGs*V#Y&*^pPQmnQYfN8^ddCGGb6(rufGW(u19@4y3oEK zFm)F{*4u9&@qusw;taI}_{m1;{#C3c;edq&0P_?FYOjm_{*zXc+yhZe>h!z0{D2;v z!nKy)^%ca+I}<$v>@S4=IqU#GwOXJjUaB5&<u%>CWr^oGLPWfOEXiKMZ?LKwj|Sn` z(pZDl1*nj&!KbiR*zZC-gGPjcY`{c3bU9ihk7V{Cg;Q>S?1JXIVoP&LWhL-OzvR-T z2lm0B8lhU#Z(E18V0BZdgFN&)W%>74&NcUYGFWPDAG4R0cPrXm!n{9|`2E?Jl0wOm zt9iAhuLD9t-4)IZnL@dhmz6f=-t<~mA-fHQqV>keGY|;GhC?5fQ<pCc@ac7gwjbJz zi5)wi?&q7;+hK^aFJc$C-j@9s8Hm|TX@AzX)sh<D6_4hH9KQ+?aO};#1M|@H+}+!` z)y9xbl7t$p2M4p`E#s)f-aOcuIEBl(x!E#wL-W0&qrIH0cQ*6LeoOXT-j65c(|ggA zSO5i&2_+kiwt32=hcZR`@0=Zs&elv-o@Hs|on7YlT}5U63hqwpCmO$zi9l)o7^`jw z$o-Udy$5!48@5y0Pm(qma{In5+z=<oG=L)&<2`gWZ&lPn!B;-7H+gX{iNQ#Brg=-E zn&}nWYXICF_5iOz@pG=bsAySi$Gz^+^*3VU6eyd>U*rwU6dD|=ISc`nRHpPjZb!pV zzU*|aU6bee`+7%1A#IfG`-01+++F}q{~^m<2QcqpE4}3On4XsAoZt{%#Q`-*!<ax0 zo~3@TW{ijbPSn@41Uc{an60xqZ0(`i+Ixcbr~nAw`+h$RzBX4Jt@57;>{;{$EL3)8 z7XYtZtc55nNd!8|p<}8OzY8B>ZzFd0Rx|O#jwXI16aH%^`nKImyJ~WC)Sxs50W@H4 zNPiUQ&J*Nn(V})k<g-w^dhAb>&JIkvgM-;Yp8P0AEAlUqf+lM#1$vNOC%YRxCY%t( ziJh5bw>~Q5Y4C^L$LF)|)t*;HsTeZZvigWdDgOGf1;NWB1Xt0qxnFZcYr-M<ea=&b z;(OFMLx54u9exl-2hY2?;kgHaH3RncwWBa6?hR_<{Av59f)K^2!X|R$>8k5zTK|zs z6_WMqC_zIdSQA3>migt=KYZiTCly;7pY0|y5^-7x(cWT9{qgRh;hW}<%|gRVkbTPH z!_kJF!l0ry4@$v$xoR_7;IWD@kl+k|jZrUx&Pr&wMzG55TYd^};LPw4_>4FEd<9On zAaM)8+CMb)X<$Jj2_fJbm)0|ki9gn=g>ESg^5j|O)>Io=yyAuqR%7Am%nr{vSeR-s zh-WbJ-sT$2@#+bya@fo3N$aMZ9jh@rm<BDISL}MOj*|n??+@p_KD8imi2~=Z7hT~c zdUx%oN0CB>xlVAi6@&w>bYuT@k?1^2>lhR~{FoQOgP*e;Z%4ylotvYSCI=irydy3q z_W6X~s>AhW+2!n;f8G0uVp#(C^~Y;?<F(M*Y9=V@n-sm407BaLdx=7SAkn-05%RXC zrbR0#Mk7zV20*m7`15V5b5`Tt2Mzb7UM}e=?2Oj2hJ)?D6YR0<_pID^EG)(Hdbj`V zFXPh9<5evBp01WX*dC11j++p$GS?|%)|xuTe6qq6Wlv|bYBXi?D!LzqibPg4IZ*K2 zi@^UWqlzs&d(Cf$+bp9x(dMOWUEkVQ0udv4>Z^<r=?Rn$<*jXU#M<G<_Jfi|r$BMM z)w_;sC1a9`?ls#=#Y+-Qf~u?evb>6apcF5A8zSMap{*Q}XV8oGQ_|9Z1nKDLh#1j` zWZ!1vhXW4=?2qht9fjV+gJ!zAJ+VYiM^lNpHw{tD>S4<Fw#W&CJSwWSy#wXtnvU@I zt?kfTx8%-hSWQhOe2?YvVp-Fddq+E{P};X?uDZI~Z!T?6M7-Kc%AM`IT$HSOc+1*u z9Z3<S@+yb?pktX7PgO^y+^+5(3%6>S2N;IEi6Evr_obR;Dl>m;X>m3;9n9vp3SO2_ zscpHnxjww7Gv%^}KU&8t>3HR@c@k||mhe23aMm#KQ)0Un5cMV{Ln*D)#YAH-#Q{{) z%yK?k-;kMlB^B|+X}fG%fsV2^%iZHmU&8FRs+kUX)R2?u_+Dn^_?%!}T*KV?@o2<V ze<YW=b9XWd-@zd-uzU4fYt4$q)GYpP;}_()yBxA>p)VJ!0e>ndlj+oby;VCA(s755 z(tTSqd3O5WY3bRtXh7qU#6Ip{0)NV}qv5qL8kQ6j6Z8Dux>ba9qgm`3X12&;WE3c7 z*8if~;{l$fuV~u*l-?P)40hI#)XUwS?T>n>r{tTdJqg{~(VAZhbUNI}6;i=0hML`h zh)iKYpK21So*(b@2%T=viSLXG$5ZAA5+gYup1z+`ez<7o?^UHxZ5Oq?fOi$YUC8?& zG*3s>{iy?(h&QO_`A>_5j+9iCm*1pZD|@^Bes@=z_)({sZ{XxqORkz7^}|{F*WVRG ztt>FFJh)jn-#)9o+M+Em&YEHtPAQ1zHb1PlH7>pRFN{25gP2|qcVX#PTH<MkuejF* zA;20NB{85jzyc0t{{fqsbP!w7pU%IQ*W;Kb7fZr&COkb_gvs-}n;G3LtX{PAR!pp^ z57bnV7FS|#qA?Y$SK#M(+r!dx%DN=dRdk~xUS#qkei#F@2*#Rsc*50W1ATy3(9@k! z69w1{8g|Q#k1FGMTSry8-O98RhU)P5bUi=T)|G59uyzO)<Nx3iIHs(u5y4~IIxf@- zBgg%TR#^)YL56qpBEK~?(F&gS#|c8Us$VF*%}D}42Xn9)E<{WuM<u8p<BD=_!|Izm zk|<G~g8<uU?U%IG*1b@W+FUe}6TIH-6%Kih@%QP5z68ia;Aps2M@`0#z%@bR?E<ew zVBvJ|sesF;*tZ7;0m|p7)=7`~`JURdt+Sz~MoFwCquRkJkPlz-tW*y()l+km?)fr@ zl0fLKRUtlPvsbv#mHi#b%AF;Pqjiy4EG;^&4p`h~>@>UaOmG>M39u#@U@(4%^=G3x z0fT_c;1DkX!$6Oe_>PXsi0IQmuU%vA65OjkeDCcmWu7v$@0C`Y`ef^<)M%u8$|dmn zD|APVC$oeD0PUXxc5GKShL@|n1xK<_GeU>-rZK9(XLF{DxU!>#OsC(|Iq2vM<0*7U zetMU<F*Q{!-XqI@o+*cRuwcRijMfdcMi@6$<+v$m+Z`rtMT)3fH(gpwoUwP<BPA>C z&D&gHv7=E?wS8=!u7MxV<b)HnhW%3=m<|{N1B1GGMvi$&4fNdOMvcoQ*<Xf7LkiS( zLjIfB`Hy}E3dcy$<x#Sq{{})3=}&~ruO-h=!sHL?UVia6?+EAZmsj=Rvt4iPt4|)| z4vZ~#pBt=+nG6~@3f#F7M-t<DG;!3A4sU1C$~{A)s<J*)-LUeFc4}P5%xM=qegye& z>%(7(Pd&38JU)*C$3LE(+h(I$7G1AYf7ep&USz>r$>E^$ouj<GM{avF#I=0RiwhZM zX>&#M#PW|U+GXXs<RuwLtM?{f+S05%_?xS+LHN`UrH$t%kD`~n(w=xrXq5BlZ3{J@ z&)2%0t@g)CLnlw?doWNB!J}2E+}ScR+BsT|Hf<pd9xFRxYiV|TWdE-xwj&}1p#vvZ z@r<a&?mdV5l`(5q+L@@H<qFnrOdU)h7->~=!PVo=rpr2;CsB@E7OR^Y{VZ@J&DID1 z8ZB{|97mkbAOSVg7^2boQGf1<mX5qB51!=le9A{JW~vRg9O=56A`P-0(f0DMK)9#) z8SX!6ElH$p#HyF4%-WWwXR|zqD~;IR6om1~uPYwHw^no@RmV=JIft6fpTF#)?~@<{ zmCxUte~HtjGn=R&>;0Re0mUzpER%MNsw2#fREZJC^BYvI&?)rZ0(6OF=~1kVO!w5F zfqM9=eBQb3>0MRmh+We%TX&k(sk_<uSaFygJW3Be`N)DX19P&Be>WN1C9ifTF{Q5! zmLT?18QDP~0|T9qS~clKyrCm|)FA!20^*^ldWF^Ec1H^tixK8nS=aK7o_9!4eE(41 zs=pC;p%uAVD~vK`!o_lR=|dO2GyQ@@ukcSxws#8{yiINLC5X=frM$H^;z?k#**=6( z&EqX!8Z1$&z<a2uXuFX*$Q~~OkH&l0Z-w8@8RMh;H7qDRC?r_l1E{TS93Y3IU`s&( z$S1fCbDmW@3`{~BNI_1(YE<7U?2hrrop4XCboaXdx9rS2;Ey^%asFZ)$jJ^n#)DkV zp?lO#r{p7}#Pl}7b24x}?!rL#c9;iyj88Euous9qCGfhiszZ&<bmG97A+S(^aqre) zR*5gUNhddPaGuJr-#CWfXqU2fQBLay<{I74O00gEH;BAaZ51vT%cu2Nu-4@q74gyR z4K#q0W7zU0Oi?J_C&Yctu=Js*6h8(jLsOx)CSQ=VB$2BFZL9U<T9ODILr>B{r6RzZ z>g@XF?Oka=9rA|xKC{Q4^vo5>?i)Yjv6l9TW5!8;)JIldc36;751eaH^w|DU|EatY zwfimDusD@B7upS8*}|V{zuupm_TFmJ<)*glwxl#~zt@dEtQJd#<I!9!ynw$Ym|FW| z2u*k1QdUtZQ$XZyIN)M-drlUGNZZm>c32XAWA<cOe<zUqpDYs`eE*oTcRsz}aV8OO z3qRfgJ*-Jxcd0*;_`8%qdSA3Mm@yFQq#Dg^Bz=Ja5);Rm;axOx*|#T_@oc>eQ=4+f zT&_*kQ=*UYAV;&*tfJx+hSH|QS?7Mlcdlk}ict+O&6}{vQ6KvkX`%IohVExkc7aXx zfuHfhi(<z^Y#(v1ucZ;t&p-E^)rWs@z3T5@!tHUNn#pgR#N_OtWT*xlPr}#UkyE7+ zze&BXnU|>)7dYsoepp?gEm-ON<>rK45wJ+-207_Z(5~u)0VgbZHjn#<7g-1%Y!V=w zi^xXeNgN}`X*UhE-5gKG<KO6!vKVO~%$${9DmM;$1CGbFEe55rcKPXLYiy88kY(Be zl#m*zU+dFGpp`pHMl;<NpDSdIsF`L;o-i<)_6>V)g;@U!*(&Kafa$Wl4kIOo1BkKX z2tbcks-p=m><##{L`QO|n3%cGb$Pt_G8;->B71_Lp#ne<L4qcKBWg}hiMyoF;l)KJ zfU`Ptqk+FS#3N!Y)bzXutsg0x9s;N?Lj0U50(AND-wKNk@(jUO-@Py0`&ozTLV=ox z;%BG<z%SwQ&*=il4ZNQ~@D+5~_}yP|<O4a*GpwJ&{Tjy}Kz{4J^p~msqp$*a6^@_P z%K!h$XaBEHEYT5vo?{#A8*ideP~%mA@^yRl4p=)(RSXpyz}s<}UK64+3n9meAwCBA zG_!#>U-D8@Cpj`HIuu=cNS)LL6!mX_2!hCD&dJO<eL)w>y+CCpnDN-{mE(~I@-u%P zt|fv;>u{|xlx{)ddrU8t<cnqyb<$A~2)G+e15tbqm>p25Trm)!rjBCaC8DNAiP+N6 z0ydTTzxLu}JycS{eB7I0XKKDr3liR`2C>iWZ@0lh0BxrO9w&T1Fo1rKH_3t)@|=Td z^>$LSL;(B~;8b^xK{)Mi?PW502rU?SiIPmz(g-NT{yrVadQ$EI#u{xf0@)6}&nu6E zK=cnGzrFZ;Ch>udl0pe(CpsY&@X1(xm|heDBbUShe4JqyLKL#S5}_EMyy32mmOIW~ zS|1SC;W#c_nqvGo#M!^<w5e0!yn1{Zgkh0Rp$#4C$J|kIYG+K@5f46K$g~Vok;tp1 zXL(|=<&s?1&Hyj#VAu##l`4@BB**D1&Q|i4<!kUwB?Ek088D)RFOZgEwW-w|TJ^X$ zE?7)=O2XDPTnDq?_wqV;W=3-hp<WHsH$IBh1?=lDEhp=lYLaEW>=?g+<Wk--#FMfK zQ0E94>k-22tn(wAq7Q7DH3iRBk3_uixyl*Wd-oTxs<=0KzdoFDIN9wcK1w?W5^|<s zQqxThgHSPpJN;x<?I~hbfUMK4QdNqkk4p_?&k_oS*9VFuhPp6R4o_BZzX|TnPeNY% zoyDbjJm1GUq!?dSe5R9SxZX9{r-GdVhA<%xPlQUZ>D0K>ozic*wa0;cG@O_<c566T z-?-Q|4m$Xyii>lVKd>D5;E+*e>rr!7sO%ygHn|weJ*|B2tZMj$Lx&VbPOl*6q*hDK zDqLAbx<tN*T7`QPI#}=@XAaNdt=II-xZ9UaI1j|1L3(3(h!bDC2DZU(W7rUYWfNUQ z!r~j!EdD7wFyej<k8xlBC1ic$r_Yj-ku7pDRjMbL)1YWz@FPO;Xsg5I#07+^_Fh7g zuq{pFtsn>70!gD+efC&?GmEIlHYMTh7Ueqg<vCN5HUZ=AW4-)IvqBa+weG4XsIGAf zuN3tB$W<|joKA_0+kzu<)SIg1iGYC3V(zyEQIkoZ-aX!jGgewFWEF1Bz7a)ER8n~Y zt`74`HChjua<g4tshp-~9^0t+7a!WKyXPg|P7@+ZYSNE=Zr*?YCCAjWzW{(QH8o3f zJ*A`qV<PV^XA@wEys5%{PVl0oQ0^fY@+M=HB@kQwGIjp!9+hQ4UPBXOs%_Oa^huUe z;K@rKOWi2@SH}I{)o?^axbX4$sVOQB7t+&}K;e{Br8`C$P?z>EoeSSP_Z~)OE$cUn zrszvRE3Fq%e*N{~RyXNRxWgtn6`e&~@{-znBL;ixl`*?d6dll3m;bZLIP4zBK%LSv z6H#Ct<sH50PzwljQxGJKVr3eeaw-Zx-+yRl2M1B3A<Tm8_HB^}KQi(X-I<j}!GR*h zyX3w&`~>VsOiF)jnn%sa?oi2cN)zCJ5dU)%Mkwhxgkxx;jBE%j=%+k&BJzv^aQRU< zd$w`q`(MC9;eZrDax@t4G;k|UdNg)K=&3f}(+4ir-+b%p$UHq`&8=sB5((+5?@~~b zRA}+pP6fcW`5&dxU>oJ)$mz_Nx%qJHrRfBmI-_^@syw;i00iJOW=WGWS|g`?<#j^b z%95lq-CamBDv!M0@rC^-D?%lJm*Xj;_D%LQkYNqsZg)51tBnuRd2RaNZMJ-7Mp2X- z7aq(3-#ZYl5=b@jzwU$Ug91^MvYD*357rS%Vu=jnMUrs~fu8fRfIX&BOj+FL)>Xxt zE@^86&=FFOkU2#W!rb3QQ2j3=@EN;L&k1@np)RcE%73vMVp>bHtJY@ntg9aW^QF#o z-m;|a-#I6stDE6NR_dP1pI#wD^2dt8Ww&*Rxb*u7k>8!ku6@ppB;_>gdW4S*aag5m zruA13<Fu};dw2u?$z+ujpM~u1=vCG_){NR|2H4qN_3m&qu9_>^{>)Yl*BzC@6U0#Z zK2i;iT8h8)pRsRToiNTQk#BMmqY(`pE(l`abi3b``Q^8sw#c~Pe%Ap1P&wRaezT*S z=P86A4ccl}T6^=$6VWeabSQ7fFEQ`==`2@)Z908pu^NiJM9F<dsX(zrHKwDJcRU!m zmq@0=wO#is(~A>P%qGS%>U!ywR^h7CPqMz6#>a_eT27y*>j7~l+TQbyEcf3cRE8gy zx~s36E4!0D(?`Xm<V<dzP|5JrSR^ud+h5-0fHgyL^V^DzUHF%{TFdWq^Zl3Yg06LH z^E0~%zulEUt}M2J!qf0H^QYL2b>h`rpO@u?A2;V7F*CR{kHg*5dZc@1po)hlU0te+ z2aH)Mo-8F5N2%3Ydt@2E&sJC9e>Sx!jhN-g>>k;*-pM}BTR=F>)PCapQ0r^Ngu(7G zb29rG=MKbVqz|LjvgQzNn-5iv8x(w;oCdXxN1D}O)x!mi){hN`wN+=nKm(*uJ6b_j zZkdBt4cE?rZ{Be~YKE_eEomb5AlrV7^4fPpf!G%wb~h|c$5qW`aqPzbK{hT%%Pyu& z74BX|t}?q9QuZ7<?8;NsXodd-VT66mr>kli9Mtq>9o~b?paIR6wctwmqlz*e$M|=| zSa)wrU_2N0VjU`bCMTzF$V&;<%R7Hsu9TbF8~R$F=hcKC5zMrwRjb!sI>@ULv@G5t zb+Di<V3V>iq9LDKOCP?ZdAxqO={#{@>8s791~@Q~ig>3h{2Bnfy&X+vi~8$HGB-fl zXD!Fq;>hp4e6W7kHg$82-F<1%ReV8G5Fy00&XtphI<wk5^e76Hb|2Zq?HVVq<aF*v zarRH8F;muRx-Hoax$o5HjTy-sY<$t7WEKDKZ$!rS<09L0oNMST_qWC-$N06z&H87j z&*-WR7g}93P_s_OBZKiSS5M}^ERb=#eZq{@kl1tbf&z5<Lfwr3DffA&&UTp_a<cnc z<e;vT#mT-KPDMTEp=eix{bsj8RVh=aOk7lDX&!*ytuO*Yh2&pDJt5(`Vnf-zycy?a z{s$IcXO{9XbP~1Oyer7?c_cK`=~-Mcrd%*Lxu{Zpe8kSMw76;pu`#e;DK|N7(D`y? zvmYW#874QDFZfij3#zoURngZ!D00>7hVLzMp(1yU4;;=JEzM$DY<iU^<rPK$gAgJ^ zHM;V3>1x1nq2@=G=hreO%Bd#Z1D$0AH+Tgh<L;A|Bdq7Sl~uA+16@vKtDn}jS`6*U z;!V;k-MP*2rDi5yIQ001Jv#q-Fpo6D1jLQUQ8LPEFBQ-iN-sq*V{<uyp9OsK_NGYq zHE4*6Rt>&zh_BQvUSB?eYw^ZnTZElW2`*U)hMmP*g`G~>h3>}B5Aeyi+3(FPa;+xp zQeml{)?V(=YBAWm)qa56O-8z(4D88s&=#Lu>nfOG(g4Mh6__i$9YkF%Vyi!vEShuG zr*-I%*@%i8{vS*)18|Qg&%C|6|1IFI4G>E9(pXp~>3Q839aq|^;NbTe4Rp<}@?WT) zW(aRawlyrn10sU?`0R^zvxITZ?|tocn4}C$5a{_n(2(pAa*fVPv)FF$g9Yor9JiEF zSKNIRw{u@7D~^J8f7fbN8f|%M_Ga9@1ONZ7pnf_|tCYY@Gs>4LGcHGb&Q7Jfm_;>V zJEb(Q)GzpBG<$gRQI$_k)ZczMKjA@+d{jJReNeIr=<uVQYiB1#1%N~n>T^MY9e3Bi z+>#li#=8|kbTak*=xnArdn?3JbA-vc#%xZ#tUNSMaeV*;c`hpI|Bqx^v{;&Iq&gIw zok^dY&FrEQwP%O0cbKd54y|fXUBgu?P$DIb<>Y>3*4@6V2BYuKZBRVpq)Dmj@i_Q4 zKv`GO5Ka|#E$tD@_#Fy_U^i4RmE*xTZtIh;&I7etMfFNi_b{^kd}Vm7f+Km>;imBb z@jy*&I{0g5MxCU^uxf#<@y*m&yhyLZ<HMzTrd@)d>$<|T$$nz;DRk#=zq-#(PX~{1 z10RQ`SPB<-E2St@TSLiiD~M%_ExsT@*R+W@9t9S3m`GRgf)it5rODi<Bog59`0Qox zu=`!5Ph=!#OUh@B8c26+X+%W_)BkO=_cJX?9*Bw>_5Mpd(?iGTxl9yxC>{y7%d*N* z&RqlUxDf5iQ<*6A^2hn`jgE2t15=+tIu3VbYt*-IR06-rxn5hkbqv<v)9u<vk_Dd< zE77$WO441qdL(nkY(2aZQ9j$hlH#5mzN=Q7t%_>5{2w&rM<!*d_EuGz>ZJ-<R0udb zo0&eZ5|eq-A8XXF6z*p*6svQ%6*zadUs5+x&nOM=7I-TIbxVk0&u4n6RyP^?e5cq! zBZc_GhZb2<A-&;pm2EwEpMrLupWraddSqo~)&F3kUPGL+;LO~kT?6imye)Gx{3Qw4 zh3WKkf1pTAo_W&sY-C`h-v`Yu-ZLriG<_CoCHR|dZEQRfMXih1jOXoIyo@ulQYrTj zMgg%Lb<m~8I|achW=Y3+{<~7Imf{L4z5e^l6-6Sa7Uogcs8og|s8ojpGCUZWax<M@ z=Wk2Bw@Cz0jRybv=q4DXI&QQii5$IyNu||4rZv2hY7rU`&1<wEIz#_{Ao*oyXs*T_ z1r_I0n+nw(Q*I#0!Y=p$@n4HX5cPOU_lqCI1K-Dg1G-4$>84awWnCJlRs2x3t2(;- zh3`yOIzmI+p{g1suJ+mfd-3g_ZL;ITjrF@<XILKOov&#k4?|s3=`3+3Lr&a>*^r0d zBO98JFqo_6UvNX2Ww-ogVydZi_1BIO|AX>FX`PBPF_B3qgp#&HR`$+uG%oVejQ+tU zQFZFtI@Q;ighZ4!ZPrF{f^0N(DMYFT8`~ASEHuUPl$K4IG<4-|feEUxk=1MtBl)AI zCM4uU{aWn+se(I=G+<%eacGuRiw2W(d7;qB&6`tFc(hImYK#8dclyD>L9Soqwj!#_ ztX_M}B%GY-(xrfH_>JHxSJLR1rprW8>@0(>?b+KNcF&DGSYiu#j1`rieMjNUZi~Rj z(;yddg4E&H9MIc19Kapt(HB;=oP!gd=f&>h>D6ctgOcKmX@r_O^E#)8(z5QhCGo-j zt@cfd814rQ8hot0jMmG|YOX{{0Z)SEyuaKdAqTe#)$6UXWlSveQYt;a_W4L&@*d-V z@pF4NEt!5#!O@dDiP{&00aVz#xfB{}TFMw*OD+0q^0J~ImD?j5J{iWaM(FT>m*@@l zSe!#<)5XmX$14^jq<(S|bOWMV7L_Q=Z3SEhdv$<6;cw;2Q*zGHf58P6^LAwB4I=u< z1hfrmzc+KE{>;ah2INc>`V+(S^K0IVI10(XK2xbAmrE<Y%p%_VIG7x#;A8P1U(@)f zbcJ6Sn_x+RkRkl>#?l-mi|L!d-~Yx0$vpyy9x)oo^R)-SH91fIAxOk^z!jpxE}m{a z!Dq1HK~Nz1>*Gz5a=8>@f<X_te#mff)vyPF0{yQKvhRE6V-z`^)}=#{H1y+b6Qy#I zqk&yIgh{c|ztB%?fE-NJ7qfXGxxuf}riSIW9s&bwGz2I-$FCL|X`SQv)C>R*_>;-w zizFpZG$i}_cai>s;2G+wfYhe2KgKq+)J5<sWu*_iLS6I+a{(|-?Z0qcu`)oA@RJDm zG%9>?mD;a!^4FA009P^oV|bj8o;Q<4xC$j90RC<5!9=xOWC@k1dC)I(nSNAymh9bS zCU9m=9Aq%^hZ#hV(63{JMN@t?f&nosi?_L5I(L&oe}7()TuC|Ag|YI7|N2Pve6}<& z#OQZrp7RZv3;o;n2nqY#fcYm>p!#LFgoIt;<T!+cdk_Dv*8fEp18d!^$^cX6VgEr# zdV3oqev~8lfO&E7Q?)gQ0sL_BzbRj!C-tA0;QxF7%@MW@EJ0YR{|#8Qd7N+xFiOT@ zAjw6%qZSQ$23)EzErgECY<Jd&XcitSoS6Fn8+*oo519H9fU&zlKutZa`FAt>|2&WV zzjc7>3>POl=ku=X{G>WBjLjGUP*`g32nhR@{-1EJ`nry{4ct#g-AI7~2Qd9#TN^xY z@6U9T``p7NEU@@zH{_FD`1Xas7679E>hm#GU+91;!94me=lO%N>DxAN^HcNhFzR$q zLUFabYThp9x;$@D+=)ln*9PE{sHpqjnhaSX+o=PT>plGlBVtyVPgj(nK3WX8((+$d zGA>C_5DrFM_g3CC-$nxb0nm;Bl5?-07?}U^zEuoJ&8;leNe)ONjD`ORU-iBQZf4;T zCD8cPO;#HrU?Sd301@aHiF``KwsSb|_8;E9;jsop1!{Gjf4%2TK*-4D3OwNcB-wx7 zkCSUQUv^Ja6#cIOtnQCJ0$z3@F(CZ~-25?Pbq6IT(|~tJ|La-6>~zVA6awG4zPN|0 zPw`@{_`5EX^PgRgi}j31^w^;slRSr0^l;qJ+-dt_!(<{MVXPWJ*1GirU9yYj*dIah zQ;99j`hnR@LX$-&MF61G0=$3f{EC5_v^3DKp-wXS=LCLWn>MC+DEeGfIrN|Q@Ob`z zQ4IJi!TL`!*E1MYOM?Qcpsr+he>mtr8ic$-SOI?C#&-Xj9P+lyEn=d@K)Uy<eu2#b z@8*BU>|YJ`0mSy34I!Zg^FLkk6*t88h^Q#etnO69w8-!vdasgzkV5@G7~&u`Y5c`i z*6hG9f25PY1nl}s-XK&gMGbVGf1)<BYXmGRx+;B<U>|?|nGtZU2kK`$mYhGEa8@V0 zaEjo6jzD)6JOS*I;B;**j8-$<@%9b?mLC6#BE=<NoLHYb=-E-RIk9EpUzAPiQvVeA z|Kjew<C@HZw&7jbUDk?<f<gc>6s1Zx)K!rXs(^rWrH88Y8mu5v6M9$aNK;Cr1raHs zO7Beq2mwM1J><PnmtxuHdw##~{pbCgn{(#OnRCs|HFHkRK`rp6;nCvfUxMWVjXnMW zs=T^ZTa(u5yM%9rqqX%wgK7v=+Cds9?&2rGH<fe#JkcWBi)Clu4LNF&y~R<<Y(Y;y zKShDhG98a;27Vy;b$*Dl(yn8i^R%WRVT4hv(heuFz^(kJjT85ue!jJTpv*{c!I`34 z#tt(ZBA7f<OcaLlgi6FO#{_nUUuM*v`>oeu8yP^6N}LeX{O_;VK*0XUi>={y3(1ci zb1Vf!r0WFOp{*D%dF%h-YfPO>OwJWR@t;|KIr-;T{^*$l(oY{hZ36#tT3{e)>HI*P zY&GSFar=Ly9k^z2AtAfFz0R?HQbqr35-4CLvfKM(B}pkQUDK*03E4%f7diZlCr)Jj zE5OGQ!4-L{zU5Of4b&=rP78tOcd_O>QG5U=5~nNX3PtYJimw`Mm)o_Wb}XY5hKrEr zl|a0#lpR-^Si6IcKg<W9Bzu?Apvo@rf7Co1^z>;b5`<m7-|cbi^Ia79MTjLk;li#h z0IJ)&Du>HhWNzaBzeVWg|CUL(-b@!GU9YBK`<!*H<&CFhP_)qTULdImXfxl&a~z?x zmlb+o;_;U3Ra%qMdk5RMP~Ok}KG6ac?!RuOPn-1bZQ87f5_2ltKE05%WDcI`8%HZz z7Mn318%l2T<7KgjHG{}*TOUUr9i5dE%a>StH{0lb%vjc$L8@#~dTX-$*)zHNByYh< z4J{KDttU&>F?R44fF#HgIStg(lf73z>tFA9RQDH98de&F&}g+dJleDt0WPP|?UAfV zD011e&|XehiXR|!lYqjFgs0NfWWn=}o7}hk>kkINgTl4b;vQwpGR;)bCNy8+U!4MK z=gO`VYRe#4f3bbfOG2{miM9}MO16%m5dWKsKkvoRWXcbOE#iq0$*lmh2UN{Dj<BBt z`kMMo!kp<w!DBsgR2;A5GBT2TQ_a{3AX+<?KfOWeH-TFkUwSz{zx3DS4xToX1CZ_G zd3AKWBs+0Q`=do6Gw;;L?PAt^++*3mm;BOh`g)7Q9rTkJYBS;K%g50W%lVhGa4YHB z^`}uSevfFlj|TH7DBOw+4RxLVP~=`!KEw+YgLK_Ui|SV1Qb3cF`<OZv2OSHvmHJ!H z05G+PUS)UE`xlv4r9I`p9UF(siqd?&;5gy_oO}J9vn<kf=M01$t^pmNlf*vfs+_^h z0jFD{QV6{p4!9-tS2a+Zh`@l=dkw&AFPgK56qG`%<Nnr5pk5$#KEWXC%`%@t+*e*K z)#Yi5NV3YFZv9l3;iKLWl#u~&U9x^ssjwBg_pIw+i10U|ZYBHMDv!J{k#FmZRF98x z3146g`14ktb=uqGDk9oRQ=M%SFXHtNYb$am%jQ7~hTxx60!$SAoC|M_JRgt?Ou9$6 zH)PdlK=x`N%zGM^gsX!rqI|2(q6+Mv@kqA^0AVa~$u%vt>!C)Q!}a!0iM<5D`LxLy zMM6dY#7k=-LFx5ZIM=O?5-5TbgubLG$|VS&%Y6KTImX9_0U4<4VRy4V9Vs6~rL&gT zE+t_iV`_JId_B0K!=B&hr7C}tl-^rA;&u2)y@<DbH{G=)y7W@!GEEf|^8#!0x-3sO zrv;ujwY$Mku1#Q)o0<D^&b$hBN5rIOG?61M=eWwy*A*vyS+V^hQ{F5fWRX^|JidGL z%uD!DNbA~56w_k1mDsvF;p{=xAUJjw6H~T{rizLIGn|N$vYU*0A>Xv5*FT(gbVG)H zHYz@>c=(1w_k&2-5O3J5I1xXVnv*TT3v?NTOInB@g>4B6N?XVU+lT<AC#MCPeKO7h zt>1$~TL&Y%VU|zArx^45jXoisaZ0zNzi1PZ{zaSpn>CqYisBYF$BjWuS{aWk1DD78 zoLkkr1{K9zc<wmsli#^azPtaq;&;x!C~eQsIlZZP!tN~-JE!m9atr8<sC5*RsU}3m zqCl}lY?nO)h89>`+Y=Cw<%!0&E&?5$WyDPlDS#e^H-siRb8;M=01srPp@2ecT<H_8 zH@od9R?*-nL~TFG@}gaS^9L9CwlOVeDGyM$>DY73qGQOBj;X#-MO#}pDz*%+{A&ps z<zY4u53KY27S_)xD4Lr6=qf_@^UJ{pe!zpaTi2&f=hqv#bv_MF3r>@4y~7#eovpwC zLJD3o9tbYFw<vHvY4OwOMAqONw?!(ne0{QWon+j7<B!LAU`Jo0mM43#8#U*5`!HT+ znUrd&KlVM!rTV};$NE16%}&(zxVaI>#@KPIyx=V*E#^(*3*azc4p`3FZDwE?lbz{* zQ-xBfx7R66cys6kF>4RX393K~G)xMXPvy;aUABpFez=^-+^v;ILT@3oNGT>RN>9U- z4#r5h_nacL-nmA@fIJqDzH{Sqbh=7jr`1BRk`@|asN0%mqD4Uq0==1g_rB~^Qd_5V zklt}>P{=wy>*S<Cv%GCt`dc*(c(+%jNP+szfr~k%+qL^1Y|P$eUxjuRXgRTEsT<O* zz_gw`UGLnpCxtXLV_Fw@`B%0&$BjCx%{A#T`qt_)4<>L5&9F&{nrb=rCyj9h9^T~E zrxkvIvOeBbN8`|j>kH3U1)b9kHbsYszD63;pfm9jET3dQY@L}5{j6R&o;{~i#D|{4 zEcNDfT~9s=QH5Q5HA8nT(4nMs!Bp!Bz|c?Q;*5~H0o|3r_PT3X>bii4ir<M?Y@S$< z8d)G>5AEVln>uc8Z;Rmw;ZYQ8Yhxd!Pgt5Y0-h&&&@wvCb5_D@;9XTsGQ~K{(a16< z-PMP4pOLLC^&wCmW%{?bOMq*9l6lLIZFG2v0eXviH<$biU>iya5%J~Zq`9@2n4CI- zriT1cgEpr{Mb{C$2*9D|g`fitLr@34r2<P^p4N0wt1Q9REsh2^EQ9B}6DP#9fdtBJ zUA(=`^2#f?D3(v<cAAEU_R08Vstl7;`B}8``m(ev<4$MG3hF=mdj)K&^g1pfy7=4& zQb5y8VeF1nb)P2_`pwq03HL9-o3%<XQ3YKcBBKe3sA7)@9DM=@u`jnm>fS&@fG;1s zBpDK6OH$eVR2R~<-8hC%9($5J)}<e=@49^T3yc)L-V1exf$iEechX5{SAMpXRFhNG zr!~b=pFK54?}7J5Q)d70Th*CI^KUZDfZ8)(e_Tg_;juCsnmg@Ij~(q<>@8!&tt<SB zlKsM?&J6YRUdS*}cTWMvO4uFi{8V*$e3%><Wmn=aJHyZ4=-42cz7d+>zG1R*@G{@s zD-ZH*W%Y-&Qa2hJXUgW1+QFNlP?v0cyPm;O-wn50oA)6-szXGvaVz<_JXTj5hfD|M z*(z#HIYb!|w+_T1P02%n<ao3vA?344$QL)C5W5@V<pQW_y{h~wuoju$kQ4_&**$eq zI(?$$7%P-t@|<u2#d$-4!wF$Dg~4Ek`30#?kvZJE+yn6PU;$6Fgh>J3A%XMCQ}ZM^ z9K8+qUhXw3F`l|pB?wLP&hd{~SbL2e<gBFQ{OZ^zfdu=c5L!f|q&tVb+2+DizAwhI zH?Qa}ZZ1@VYuxvKYTmpPM!$}7mg7v~M2{2W-}Y3R*_#m@;5jfK_l<<PXk;5N&cD5q zV4jmMMLe`x<*6T-KQRqf?YbyNh8P-6s9+z_g2L7TxDJb=iH)8vxhxaCR$r7zJ8POi z=A2mZm>i6&ce2)rj1m`ev^D^$Qa#@#Lz!={-U9)yeUCV->O!qVv1S*_q@xRcn~vl^ zCPgGEB}jJSB;XhBYD1iu&^3+@8Y{33x2A@0r<J}g&tCm5-@X$6o~d=c^{2I!trzJF zDN|C{Y~>gwMYN;c(uVI|X?ZYeR%k09%*IRXew!w5st~~>;vBy1H9YM0Fj?E=06-Ie z4ac88Z4|`G(l4L#k1lY$^)5VT!#21$V54GSC9<Y{G``I~X`p7tiD8idO7Clz81Qf| zQR*Iaw30#3M|p#=&Xvp0ml}aRD>a8NP`OIQV+skM(`P1Mx8h6~W6qZtXHVMQwx6H? zuInEA)=apay>64b-x46J6lSQXW084Z^BSzgPL!&bi&Wy?FyzKXk{aULD4F1xl&VQ} zj7LpQmDgK$UYV5oD|_9GBD^H9eu^QKa5`2*a2lHK<uO(2|F$Q_s9dK|MpVSG=jB{l z$6-^G$HWlRs+C%~sqm<NA&IQ*7K`b9>DKqcut8AO@Gm{h|HhB|GZX0#rjpqR&a$ng zu_t1zsX6_}^wu7=vtM#t{oq3Iou^<E`Ya*fx*FSl!d?~XV-t=Lx-h~-ak4nDZ}ddy z#90qFm-e96VO)TpQ?`CCx2g7~%w%Sdz%>#ZZ#0CBxlX>=)pI5PkFHSS0QD#a`Tfp) zmyex0FT4nA)R|12iUz_>v_3{@FpisqaMk$O-#+=`;^;MDm}g~33XeiGP5iKwl+rr! zd8pSB*%{GU%9ZDBi~{!1>`fIqRQOxt=7sBGi4<yuvX3ZI{_qlU!I05>oZ`v!U5@hl zgy^@O+&0OnKj`lJRP}XKkmaBplSaoWO%2*Ij>dI}L9yuk?GJSWBb-i8GP^Gx4QPs{ z4-qmmS<kFJ1@F3ZkxYkb9WX0*ABG1F_m9+5$v;vHp`CelY>089oKKDJ_%QutL~ZHh zP`1{{MMZxS8$7PhJ2D=x`F6WI_P^5J<0oR)ax-Lr?#w9-S0I<F8k<ON%|plI4BT(s zSp96+qBe<@Vl*~*i(bJIkM=dgeAZa0;!*9*wmCKay3P0dADn=+!sgu{6{aXF4+vXy zFi(DX_wJ&ax6dC`fd(VYdJGaS>PsITIZIW~m&pFl!oa?d*?-iXH^GuKI|Ff}=k~os zXZ^4tHx;K**kp2Fa}vZ$@-kv_3lJEm&y8GvoDy_MiQ&xZBj`JL^Sk~lLuT^qnLU!8 zMsK_fr*Pd|laHUDOTZ5O*+j=cEuu?TmT$X+lEg<4<@9<Kzc?x^AkDvB<ep*kz-eUI z;a|ENK6xKcPf5zqUeC?w{phrD$HWol+A*Lx7BMRx0z8oBvDr%6eDC9RsytZfP(4UY z%=+%!17(Qns!F=@k}&xwJ&78Xn$^b<cl?yNP3!8}yy~oHOyGdPg=hNHuMzO(_Ktxc zyvJP}|6uZo7-fnREeH2F3?_{(!L_vF@wP6sIuHz}VGOjjRzDXkt@J53(?}HEC9D}J z8_2UaHJ_2NUwro*xH>ETzi(LB4+nv|)o20ed2fI@&)bVomn|0VIX()?ut*AeWf6a~ zJd6ftVz|`pGSm0=V^-w>6y+b&&Iw4)8G*$lhv{dYZ72CjCj}0)70T5##tPWIB!s@3 zRN)+#>*Agd45EvC+t2A*5c9M1)TqZFyIcT1U#RwtasiGwKn{%x_LlF){7dT9F(t;A zXDp%8RzTf(7e_CzJ3HMR7;cM3H(Lx!WVxFC9WkqZbBH^qSWn+EG4rbEUF~NRt4BRO zR+bOf5@>_FyqvNfHtQtXsL_Ae$ZbhlMmc!QHQX89B#{mX%RG^bU|W@8Q_@FX;&<}= z(XENT^><!Vu%wDYybO;+I|cbY>@+ng4e&h({z6gih{Z2$5e}A6!^t|=y|M{Y*Y{Fm zW*Cl{-qL&66<S83SfB^o&#PqxWrf4N`4<h{lN>zm=B_wzwUG{}oxhf>;)^&Dlfokp z%45SM{Gc)hgX$P1y9T%LDPiuvr0GQ3F7ruCH-MoQliN%a;MzQHk~G%e&T|yjbR_T? zyRToAb~F22Zv8j%SsjOMX?pN-RA|4E!^0X}nJ2~K#$RJARALv2zI_ldH|u2y_&kPH zHNo}8pqgpGN({B=qWffM)s>K!2M%Z|{~g4%-GQ{9Q&hBP@gwv&SS*qAoZ0o!r=FCp ztduWeEC*Jy-ODr+tIt%defq8XMC?DmpS^xl`pOOI-@yWIXI`HF@H@2-8=K5^@iX=z zkvNN!{=@elF5Zo7`kmm`RkA)X_rX49pm{c9HhVx%Z(~t!XzXE`yQZc(Av=4$D8Z20 z@f>#MW?=htFc$w0igU1xTv5WL6wKHQ3wA<yFSS8+F)kAnl;MmD!I&}vCb`_Jos!Z0 zgNd@+n4+@8WM^u8=}ON80x`+C(tr08bjWLpokwcLeuCSx3S!1^Zy~A~GMjl#-)*p! zy=;AHNMb#IBKBT?OGLQ?+=Iw}7BVL5h?D*2_y$-#QDL;pL@e<%C-givzYZDA!0*a% z*+2(zV}SUoz<07Sc>S*Sm@Km6%$79gUyzf>KWxc%oPwxkxIP8>vZShhUBbJy-gt0T z!!6-c#3VU%tzIL}j|G|mh8}p>&6GYR7C;b;>lT8_@sHOdW$jLm$u=H~Dm@mP!=0Bt ztZQk{+?@UAGgRb91q|@eji?>Vxu+y#hKgNMS<o?SoGc5(dFLPIVJ*d7&V#)-fJ^3u z#-&jnez={57%7g5@KqwgNZiexWjxADTn1gl#NJdt$;#&&<?&?qbLuf!c)gWt@|fcy z6KXmOl-|P}()D1m0Jy)tkvpP}0)O{CSZS12=p;?|mRvnP?id@aGYl*wX1pMJ7gL9P z8)v$38U^k^f`7j<9duI>2~OtDC544|jmfg~=m5`lTw}|jn6NZ92SW|-?E7>q8eF9u zZYbG-0$0&qMTw{F$YBzAis^hoL`be2T=|2wa7a!tC>^LS{cY%#WYG`z(15fK3gw+! zJdZlU0kv?d#W@ap=t+M}kA1A(yX5<}ao;QfTkc8Ngj0NB4dwAHkSySB9v=mL$|g<7 zNpzb6=IV~pIUuTu-cgz;7JER!+olQZD?i2LDON1<GOxheAuMvL7J2{NGBl$)x;n-- z*ci5>Y4Ej};Vy;153W&IP1(Sk(7-?bcrB$`um<-?B{K!EKo0NhVMP=Q<a<4O?`J}W zfr4uS4_Tt*{?*khkZ&KH&43xA%J9|Z)V11NP`JxG^Nq>&EA5krF{+y4w~t{gRL`*y zR8O+JFRM`vYLroZcIcktU==@s?g17Gi#M+V?wM>GC5I)QG71F!cRpZm1c28VRilsl zrZ?bpc8&M@@8tQZx3@(gNrQMmti#7jB*YfEvoRT&aB-L&XlJQ@e~X3*T&-dw2-4hU zGhq4UVtm+TImfK>-9nsc{rEz1LVhuzu^*q5>w?gDt?5Eo$d0vz2?emj0u#R(j+IK_ zha-(RPWGMSw|@n&rg{Y#rC&%QYo~9@Z&$ao%XQJ!AuKg2|H9NFe+W`-XK&Rz1p#9U z)CmJ$x8X9HIE$J#W}^Va_}54!feka3tV3>};ExJ_$?VM8;gK@Wg7pXmV*xOD9(BZj z$Nn<b6h>jFwF^)baEkvCID2LnrWT_BQ5IDKSpb-NV9I}KSIBVzVEyBXAXuO@ilWi@ zcIb{~8qI(`Zh!*!zkOLKqp|NU?C2!ASumcI@6zIkWBY{|e$Lddj`&54FkE(Js1*<U ziL5Fq^D&V(BShGTbOQxzl<Jc*qHaEFxbd^uM4?j>1&o*3oA1gcl*%<8Fl&de-4v?K zITZB>W;$SBRJ6_x{q4R68`FrIM9VYa>g@K}0S-kwzd(Y8%B3|U%S3g#!FNZ*tRH7I zrFGyU*`geq$HqC}MbfCX$bAbFgg$e1MsX+-|CYa%tSES?QYpsP3}vtR6UEszA|Kil z#_>c=ZQ$)X8?U+hj!eE>8BjkrXC)7K%;)^&lWtySC{3X)ZHEj<5i1W)b|9*hnI$R= z*t0!Hsg57|ED8ZdWEhOhS5<2kIQzMU7G|p;%TBo7O66qStYuLjAPzVJe~Rz_i`Fh_ zR$=fs3h43wtC~eQ-w>$SZ)4_I1XyUIkNe)0#jr@)N9xabg<XnQwP)5VR_i|G+hi!| zXx>gGG_YmRk$bX<?0(M7(5WWeQD$srgYj*Jg<aRw4r#5^nScFH11EP*jq;?}>5}a0 zd`vmzCx@sGDo5wGIaw>=DA~&~m3>M!j}Ajro!M;vhMAhMQ5d1vwfVlGn@j`JFr|}Q zU}hMJmn^~K=hfDgs;VRURmqN=fy{9NcBw)+?whG8Wf%$3gnp%8t%(>{?HtWmqnx4h zOxyL9E3UZNNkRpOB<b725xG)2#eCfmu(NjF`}u_E<#ngBOk8JiFxb&-!8_Pk12Azm z*O#XseM9^YfEVkIL`OrN<bLzkytqZI6}p})-xt9?vn|chwc1tnET(><U5F0;YG8XD zmi{VAD+>EA66dRN<eNiHUx7Z8vKz~4vGdNZc%M!5PydHh+cH)9LP-a%5=7{ZRM(qa zR*Hz}*Z$Rdu*h|diwnfnpe}<R$ClT=qPA&m%fjJ$$b{(JjG2Ttf3avP@Z;m_tqWv7 z{A6#`!y&2)T$i+)KBjk%<L8-%h>vD+j^r$Qi&~EjGagRkdsV#B;`c#GPtGRmS3ARB zk6f0SU{4%768Fp+GpM>&OGCWCjcKBv$$vyy({*<<qtIbG_yG2kUM;d%!1bCeKPLbq zA>uoyD$F1--?`CW;+APpEOUw>FiQHZT$Q-!o<uJhe12r-bsGNnMC){W4{I#9!)p_W zD#}O}<tT6#vUd!Vz<e|^{6lEZMYC@DXUG1c>1&NuBHCh&i<g_t<7m`OgRTlYcs?5Y z&>r4@l~yMNd|kti#`=q~;`SP=LdyKK#dr(Uro%Ev*`|Qi{;s@Tl9JXEu7DK_IMUjS zyMR>*09J!AsW#UT;V<pvNDqA1QD4f<67?d=KXw;Dr&H%ahVf@*Z3-;b4!`ZskQ+Ce zhp2WHkM+}_8rt?D|6rTTv71Luwn+g4F6T~z(xFvvtPjIXE!n`SJ1EXE3KtK#aPXj0 z;BnvSI~5Ssa_zAmV5pvbLuI$Qu(h*x+8W!*HzM6MFIE-?8;|evByVB?_!dCdg5a{A zc9w@><F@-|DF^%}zgK-d@-GdxSB1eit_EY=E{>ZB0|?*r{=Hq&h!8fFn*~A(?8mNa zfG7e^!~S&==psyrAAT6tRJ%_&;kMOJ0~zGiE)AjZekDIFQniEGr_d_fZz_q~X#x28 zW57B6zT=$K8G+9gB}q*~Sr%MHPr`vvPVqWh`33r^muv^+<EKVh>@S6s+}iPiLUn?J z#<t0nPI2M1!ih~;k}Pf7{{)6EPhSsoX*5%lB%@{7I?h2pD9jq}%+Ud|OM*{4t85<R zdcg{v@+>|g*29v()m=0p8*^qJm<+3vkG~WT3k|)-AbU)3-*iMW0|-*sECGGSW&a*q z1oAazH;V&Xe=3c!sb57Z$zv-*s@p9F$k;cn`QaKOL0Fd2^Jn2~&aZa1R4y=oBoE#2 zAkTu}tz;po96se?pVXMl18y&6b%B%HMMdLywo0$rCEb?LIrbDzi}h&0*(mOTSZS}W zLVRY9R!DZppq^BL<)57lXI+<<NBjB)RTCoL_x15#WzSi%*nmDvM#iT5xsJ=mh>iYj z-9v<(5+`Io@<?sLwCU)@w6(rlHg&@U{~3wZi`|1$F#Dw8*g|}g2nH7p1~+4}3ukij z%Lmg-Ql@aVhWHxW^}{lD9<%}tNMX0)d%dbmR*xzj-`iJ}3ngtjR>?>bWt*B5W<Txm zEsAmAKMnecqciMNp4m!f1{awz?{52P3|fbST(hxaMV43=Gn}Cfq&1~kNLz<SNanIi z7uq{?XcF>i<SG!kIp5pk8~9gC3WxDX`zj@s>N&9H;MC2<RqR@^OjW!6HR^?BLq#H% zn-81mo?me%mR+x0IqTyjIL1Z=m&l>MM(<{YZ0OuC-028#RcQy@rXR7qyykJqP78{X zu{OUtn7$$!reG%nc={lL%Q%nl@Oi1#^ug4p;(A>z7=u2eXT-bA@<Jgcm$B4YXTIff zo~iQ`6E9;TIjfsp`q(>=>ee);4U%isR?OQ|#ER6yio<~sd4TTj0O2iv*O%cFN*nVP zK1z#^^oFK-gCh+kbZb=`aXd=9n;izaD3~+&K|u_$+*hCyGmB%K5$a&~69g96_NX%Q zQS;@AXI={_qMF+ZD}PZ#gSGl@fO1Rv8`FbO<;hX065o%e`3GIQ!k(l{Y9#@Y4?P1& zhS9YeqUR|+u=KfjcCvG!9X}AhOylVG*5z}s0Dnk{(4OVlB~?@vHl+D9+xZAuP{;MB z%SpJ!;B*0>GuS_TX)9Ntw{mINS36#kUeu^J#OCwsu@~0>FqrM!V+-5rKGg@O1D%br zG7m4w&fwE4_EkDYBbH>065t1xb?s3li&0aGaxwml*!$l~x&vyJ9VJp~j4V--%u#jU z4HgQXv5qsP^5ApHW=xoAcPEa5n}uB2SIoJvMUlpxWxf@6GJZE}n~1yXuO}YOTwpDg zVo5J1;R-V~XLGjPV^!mTk7znVi}w}hAD^DL?^>lT5w^%s3M7m$a<f8cX|={>sgGT* zE(ZB~1S1;&G}*hRMrLSl-#ydrBO(v03L}O*L@-<2FBF3$r$f7~(n2)dgi`RL1)(@D zU0eiMQLOh2o(<i0^MUa(Q@hH&F-9l|ZpR*bD_kUXrv2qYw6a}Izg-g6CmPH74=PV! zU+Aw97&?(-c&J|WQ;gcJN?2zj2ej@^8urC876|V?Y_1xUE!nc}!dW-GI0i;1C$WWC zMJoq}VsC`Ngk<ex_W2082BZ_K&ojkADWk%#U%~=In=gkbE6UpO?EA8=4tY%S@B%DY z!$Qbas2VQI7r<K71fXhWbyOzDHB{cEebNHWrCEJ#9er)8c9wDC&^qf_EP&Hd<$FCR z2jnE|O-b9h>{-bo{>+mwQ=7dGN)E^^re_~RRO5rP#4WF*ATfKLGmx#Yl!&PZhRz6Z z_B}%y7w!`l$bYc2N+|Hy<~zC<HX&s8BW`37F18$3N%gv1&f0^GIH%y9lqD<%9F=j8 z!*k{B(ZB?-2}0*|0{G~f?F-Y(9CgTAP{ZDD17g6$_=n4qDkKATSB^iME#<V5vM>5M z<3Jb5?ite{_;8+BCA(e|HHDq~{(p=F#w_RGh_f6h4_v!R#|_oaG)p8l*LiTnDl66= zg_s5k`jx<e7z5HNj^;4wK8<^9YA05^lNVOkA*+3ZrY0=BO!8Azk3m!kY7I6c!Rk-A zX>JuJj>*~=1>s~}fAPPK$P_o0F>yVG7;u)mMBlhsGRW88ITi$$5ow8pw9b)Zp5tMC z&1W)|=MHwX1~UfCEX@UQNp;-e%n7nTv5hbF<$%Jz<qg1jE>O4!tiMXxM8qu{=62i3 zeiU~)UXLnx9>7lY(7DB8PnonCLy2pW^reTmYoIjU3x*ApC50kek+tus84DK-js3P^ zZ||tqlF%tW6@RXbu}DW=HgT1PJA5IP*^Y<9+X{3<JIVnL$c(mx55{iw^8E~}1L;7p zfaB{C5Zq~{>F?7vXU!g(4LOGTF<F%ax>r=>y54Hw#9O>+X_~(Ix@Af^{0<ws@@nAC zYhTm6uq%P5#LsQzDkU)3y?j8N)I;Bf%oCPhc^O-m2%Fi*<+dDxB349&9>n_jDUQq9 zm)?^}v#-D0X7mn(m|9+U@JwDa^jM3*H#mBhSgIQpo408`i;altKei`Bi(V)6MyuuM zu^Yu5^MlBvsEOIi<;6t&h~ChQ9$Bd%!1n#P=$+U@=$i$W)U`!#yKe;ww&|EYwm|!{ z$1qxmhB1)^qjFy($5JJ%9&=s?C<GgyJ(#K(4ZhAZF{(+@>smm<|5;dHO4BK4RMICa zNq`K<jgIfVIZEyBdQ5~=z3o;A6dc+}HfW?h`jFDulT#h9U1wW(-t>Zv?LxMRj8pqN z8seG3QQiQb16m>>eaw5%|13_nV$?^u*)E=^I)X+`sUg%|mLx{J>p^OBdJm|5*)=Ey zndkKS0SMkHB41vI_V2(Sn_cfLroJAZU$$Ax50+vy7>N{Jv23Z+fm8Vvsp2%Eurs;4 zwnS`17B_u%k}%Dm)M{$0T5T=XM><BB{%jVcC^UK_j{hpj=SUcL^V7&^w0{(z5xha` zA=Pu3sKCq}aK7L7yMO{KO6d9XW;sL3n!Cl{s8QLzl+&y4x$$Ha_@xI0I~pF;xa^<( zY+ym=jvG-^?ei2?#>DeX1x8M$y_GWNv;eXeF`#xcnK43dN<2@BHth!{@uaOdHy3L4 zDeWe24qYh>NlmYwWx^1pwbC@8QZ2!Mm9v*JKS1MoTjW{LGb72jlQP$x#)~bcdtXNK zJo8dQ_5tkF)}9T;B8wBuT|C{|vka)H#Emu`(0C$47Paurkw=tF#;cCZ6JzIr$MqYI z@?X8?#Bldv;*IxeE7{H2R1w3JBE5szVaht>+e0WF!~MgW1Oq3&41WjTbkc(~tdrQ0 z3LRJ{-mOQHriRjeN;Kfqak(!J<$(GZDwIr60(P&X$ohRA3@^C-i2n9dgX-EVa=FZ; zUV1MD<B@|@ev_bWT-$qW0YjV_;J(o9IMp$k8=1!fQ6a1^Wy=IH28zRtNqz2box_B? z4vyY*=~`cT%Y*aRJreIo>*VbJG5nE4p^M;XzRiGdw9usJDYS@j%WYX}cW2X#%1>fG z{eKCpE%4%Gg}%jEY7?^V&N1h!8-z#A%<+;jIO!RmDurWUJPjAexNaqWXpo*eH8O)* zSY>3j*s<)w_DnI31dq}r`lO`7yMo{ZlySQ0!Wh%4H0P0T{N`T(p)2Em375M(=JB4o z3Pd9S@z2!BO=F~PVI&fITW>Sj6mJhWGH{({*zjHE#;}=u@fA6X!!>*hCtx&IY(r#b z<@|+jun3TXLprl{W$jLm76a3wcbrbMjm}8mv%PY^h!Bjsyw67gL?4p}&8g0`1?~34 z2YL9%J?fFu#^qWob*Xa2P+$^RpwV7`2oRkfq<c41OAc8omH*ZBih5jK=Z%kq=|E#p zs6$L>I}Hj{vo8tLYFk|&eO~JnX5rfPs+0!F=@jQkaPxqnVK5*szPB&k17tUFJs;Ye zzrZzZc)Am0rzzH0+{K{V8mFqNBWnlR7hsqujxKr#-|Jhd8Wlbxg|~scNs38M0#e8y z76>qze0H4!h+8nK=cwMRsL{y1KKv_7I(wd>Z}B&dbRfqJ+#4NayxFEKM*^wOpI-j; zpX-q8j=eabva>&T|2lLwDBU1cQQv1o@m9?{es)_rtazib#~#nWP2(QZ3~bM7W6P<W zW6N(VX?UO>U1}z4Q>$QecPDxLN`&7XlO>5-FNhwoeV?6m1_icGlVhpB6hg1Nlb8}~ z1sQ+4kNY5gpUpt>R3RN*_v3Jl{Bki^m~7L4g3VkcW#{rfF8qst0rq;)v}tW-?o4_3 zl8R_SgPii#g&w_f6;4}4mm(M&UkE*9{6T@lH=^tdLF_|+mio`049bsxTf--(YMYNi zQr2t~6wga_q|dEtgf#Rk*x-Jc&8A+ioLYzY8{G@;8CUs?1@Mq{JUZE}Ob3|(XIT^s zp%?#QnwWD}-5zJT{TA>s-0?+S@o_fwwMO(Oql8FJZT$!^(j*3ZlxK%9*`st|O~sh7 zx#E>H*kY|?!T^!TGIKsEE2@8(k1BKK8{7Jo&F;T5*+Rbait!&(Z!4-JQ|v8X2bS$l zh!zaeUFpeYKd*KFr~f4x)na4SL6K&l^UzmuaX8!7F{|Mn7%2XXHsbz@*bVM>x4629 zM{h_@6+wuuMamXN{-@+gn}b3?S<4F0{qFXDl~)%aWR&P9it}}Ij)pOLRY$g8fCaJ` zoZmJDtsPU?`|V8e9|j;`-n#soyyIMUEOv(*aWdgQ6OpZy2bsWtP{@_6;O~k{9vhv1 z61?rwYJb#P;Jp^@!l~Z{uj(B0W}j(M+%ThL%)>*qElx81UQo`c_4oFP2mmd<>t+0g zpun+(p(+`onMmPZc9doWR>tJ;=eB-pciF73r|!$Ky4+>55Uw=Xy#9czT45I8<@VKu zz8;5IJin_vj6W>OAHHvlQ7MNdM)nrxAbR!f;|1tG1Rctv7KM#u+iNdU3)D5C2#k{B zjA0YKmdKEVk|j#Z8D?Mvqy|nxA$*EE3Kb#>O3q}uxWGBdW^S8Brh;X*YxD0OOGv@k zajt`_Ah^C~)BDh`^}%3V={|H*ln7|%fIbV-h_-FK-~-$TbJH}EX-t^%pPvZGiMilQ z{jHq$6BLn}JNV`ehb>ke<=ndpaH&-O{c9!(d|Rb<EKOIxRkD7p@2oNh1?ffLN-!AT zD)(cM)>WaXxg-;uEVc0CUyEp~45twi*4D1Sc-}tgL8?A8=7D>c&+WKFzT#EI&4F#3 zZm;K=V5&+Pm4+65={BTj<zoOPZ{YycA-@V9wTID3Po2jv_+-z&f7kk{YjS?=pH#IP zbiUdcSpIWMFg#|6s76r_bGfCUUQ+nlvJcAw6dD4y3&dZO$vwm?pm$7>=%6DO6m@!u zC(9GbXpej64b%s^PM&vX+tMv5M3ce}#z^H-dwb}3gTe~~^!k+8?)_4*ini4U^?j>P zmSyBEFN!bJJ~%pg>d$tnStPTAwUvT3)Dq$TnzWvq99zqHrd6e~uX|MNpPhAn)*d;d z5tvZg%OcMoqQbf-Qmssx=caBd^NeVi@%wx<tW(tmhoqoybwpsYn>X|d7+-l0Bk3&= z9$~;k%FDU6a!%Gp<vG7YK0X1Zw=j>!vUd1BY<|dCNegrOZeWU(dCriAWiM;qBvRON zS4gO^IOUn{;OxakJ@z#T$r78gOQkx(?VGC{tQXm5?jXaad#e!!6n4)6Iz91PHKcxA z$@mg8<V}=6WKVWL7Yi0LfMZ!d9rlIr-+@=!-v{)-=T49q2_g>%+w|O69DNm<6r1mJ zUE_@<y}K86E%TQhIy=D?BZjPajH@-}A7|MuR&c-r9p<W-U;mT3$*jITT+72y1gW2( zd#%{yT4PX-D$1^vkwy!fZ9TmrbdD0Jc?gLbw~dJ$WE>hjHBVslFwx68Z%Hqn>H0E^ zO3ASW22h|IB75|!raY=Mo?HQ@4*yrRa5fM`Ac&C62>q+%|H~Y++Q1Xx*EQZIKMpt2 z&`;Q$3Yj)zTe00k$fU$q=fv<-gQ9Zt9qn6yazzKeJy=O#WSq<Gb^@B|tXf}7^pL() zxun%a_BWK?4()To%d5wND}lNL9Rq)pmay~7<@a4j&GGuv4tIm7kzDT-X7PJMYybv= z49r(_?$<<g#-_+L*@g(RAiPUeUpaQnw#(0_`VqqKMFWQXaLi%m0V9J@l8pq<g{Zo3 zCSqdGZo%s@d|4{#k3^7GMpS?Ap8bq=qm%N`kIv1nvT<0qLa9;GcOzcbUM<#7T(&uz zx`yYV_FB#!TUs@Am`P)C^ec}x<^U=_GCuzH;f--=Wpk@Y;RRxNTNM+`uG7@cl6`k) zEvDd`bFT2-)`#`WjtPn`Q%XmzFoPw*!vNG@R$9a}+2*Kvuz%2<f9%6*Wkh%d`+D|d z%ayMm<0X!YbUhwkrLp(G;TsEc@P{ZEzLy+u+ETrFY!gcLrEa77+0#nhP2v0^+vW7h z72wSakZ-@XKvBUi^AC8D8jpTlk8O{JRl{F2LkD%bRZYLNP>jYV=Yrr18X*9?Z)3gJ zTdX1zE}wPMi!Y!ndQj#3UPCCP=L_OqHUoSt;9GwDx>yN~KV<WzYXVRaP=$yb&j*>Z zu$Wo1t>o;`>Oe@mxk|-QmfB3DK&x$|aWzDqZ@WuFMRoBy<mC2R%lEmZ5OHUqEd+hT zKwJrky?VA!{(_mf#DVa6`=l_MEXz2MFIR`ctifLCcX}XtedX$q%d<4BRhkNc(oMa; z`p%W1u(4J)0N|wT$h$T3eTDs8^+U+o0}VKu@4|qco&uH$lkbE7JL_KBkT8t<zs)B< z@m2;X#A_+b)MBTD&O^ijqmpl3Cnz9>*jupzeEeG9Rzeb-v1r!7zHrT8@NB$qW7=Aq z#%1e3!5qnn+HXA{KWR<?au$W|wD7zdC}$(uG_*1wCtLQ4FL7Miv3hl}x=S(i1I@Pa z{QjGR$wG@*$1YJ07!E#Ut-oo|L$^@;pO7xE21#GS11zr`%*<cP)?;8HYMAd@NJFvw z`oplFCNqzk9|Gj4<B7WL9NU*$5Wt)2GXOMLu`lW^&|LAQ-{*Tz3>22C61ANFnIl%& z;O;JmM+*-15{H*7wSnYUxmW(PgV09Y`K^;yFV~2Mqf)4(*qc68?S*Os>p}^A!$48@ z^Osh!?H&w)Jy>{FVbn-t9r<cJ@+BL@eN$9oK^Lz?>v}8qnqf4P!POvdg}%+~1iD*F z?<);6dJ6!D*u?#7hX{D;#y_XC<$IUI92@-F;>$ddgPH#{6lrHf=PLJ7dq>h#<)dp@ z&!nzVh`lg~^I`hpV*hJIz{N7xH?OLDrK(BuxYvlg%ZE7~r8I0R@Rfu!_Jgl|?(IfI z+`iUm%Ufu`R2WL#Ls41&>RK=0Y2R7j{iWl+)3$p3(RfKkP)%up@5kE>dA6T)V?KxI z<ydW|Mkfq}u?)O<F<zs25e5N>o=oE|;pGjwT$e8>2Q)r?HNicINp~s0!1vEyazXOr zNVM<?I)B$?#aK&f&(_kn5*S85BFl96Q6VXe9IOuJe#@8@2vdf-?pKw3aa;?cUn9J| zb=_f5`kI`_AABB;;>JB<<2@qxvK5!G?}8jiKlP`#3cvVg01Up^Ow%4W!P<yChB;F- z*Dqb%sy}_xZ0JLga0@#r+lXL)bn<^ER8rfjViM;}m6GH3;;vn(t9V3(ntQ{xy|!}8 zYX01RJ^Y5}(Oadzln5Yksxoy%z9?zgz6$r-=n`yknDOk@O{ll-Ltv<~ZiHvIs**9) zk;$|X>*;xhVd1yG)Kq)h>UgVTSC!SKpS#c4nHVwmRQs$AmvXSr61LcaQoj2G?d{ER zs_Dm(1cg+_&n+s~raDI-+PUj~akH)rUqN9{6@%jueA7_mJXIfXwCvc#f#Lo%n4X`% zoiOdzP{)aUl0-V--?q7Wm|-ZSBE^xk;{*E{e`y_cMs!TN4cTH`Z$CB7O!H0j60^qr z^k}#EJWr~b60QQPz87skc5x5;B*r}cj9r}T4!yg9qK)q_RR|Cqyp;`_vr(G1v7KQ9 z2m5+doq){bYcJ>zO;(sQd3vR0I<NWYZ+Wm=-I4FP_6vXkI2Kfc{lNsYEE${I^KrTA zjmEa$TG75Q%K-Q%-^!s6__guOZ;fL=19|OQyglii)pn=jA3$#%7D~9e+p)8~3S~{7 zkk5WK&w*MVt7qF!d7?cHaX*m)h8n%_wSDm?9%N60-uGa-uN&|up5cFNTl=*)V!__~ zMP3A~cu%L@j|%&Lb*Xn!co^?2Slm5K9Ej;xSU1?ogTE3BfnRm$11VnR4(WO<5j)je z6)W<_2IJlq4I|g@RE_oo9q{J(+ym)y_}ASDDk=H5nsE|Rb~~xFeq@vbW^Y`zqu1qW zEua<oh1}x(vtyUI0e@@JkhZ242V}tWj?}D*=4=wYdlULy`>Dh^1*m<^n&sIQI>=wM z<|M61So2Ti!{RR$ah{OdSn#0sTLJ2d^OpQ0u=-jgo7LX}lTJSk$Yy#pIX*VndvA&- z8o(t`;e)CA(=tJ7sd9{l98tLwVnXHmR+~^D<D1Hj>~+e}DId3g8|ARETL}85%<ZEj zaX-bnzIgM6Wod9>K4bmzU@D_NIvaL%W1eJj*>14}VR0J*5a8(+UBXV*Vj+<*^d55h z3$-!|RG;-)Da?Bd1vP6*c%s004{s(H<n-w9KORgCgb!r1N-ryH7H#)H47Fy@Z>P-b z9j>c);C<Z%GYW=mo|xUT$XByB+U7#2o<FcY`?fT|z&uDxyS`-pPbX2w)C<oMcY}^F zV;u23HVQ@}?VHPn8^k;E5TwMVq(pD@>l)|#m5oWw0KU?FYeoCQ>)ZqC_B@ln3np>< z{nhAfB=>Z!Ju<nVl-}TWs+x1afli`p`K!X&^VKVr=8c4VaPPgjGG#O@;TKCzbJo!? z^x4UgMO3tdat-s(nIyZr>td?h-2V5&bzY~8J0JL9t<qZ#e?r5bCh5qUY!}rrUnr1i zGXmwIofu<_?e5d4rL|vdsT(@k1SZBp^Ep(?DlMP!PL=r;xpKs;b2jsQt#|a$XzP)^ zIXjT^N*dH6E%p+vH9%iUNfPD9d}~<PW)gQ6^cJ6Xu-)A7qa%dH5z-~?MR(n3=CLFR zt~V&XzHWl$y9cJN6Mz>2o>kgz+yB-=4OB%VmVS#a<fd5k0mun(<{56;9{RZ3OXdUF z(CT)l{BbmGUk;T{o$vGmW(J|s00|5Q$mZ7;0q^6#<kfux&P}MMecN&_nf3GEG#y~u zgQje1LSDDo|EQnrrH~M{kR5Q-y^+HIU#mJB`9(8?W8%b@GPw_C*q?DF;f1vCpvH4v zDQxzXgi{Yul!<Y`20rDmsYU&l(SKn7ZT|4wNHWpIc{N?<%|j)VWgZrwJqljUw&SY1 z^J^JD52#S!J4Y?}eSduv<t*yWCBp4fP4vs|X=^&MTbaq*3xwEwN9+EZEZuQ3Epcfs zG&B;<T~+FS9}YBn{1TKvjr+Vc&>1B9OKi0`ozv%7B^(2r_!VHOapQ<Zh;D6xNw1#* zlq<vdtHDv0^-qd6Y!Uzb9K*kb#{1IL|NH)MID6gJZoBEhu-JS-bUF+yLATFhza@a( z4)Z!}IS1V@cNF+RY>fvzR!m!@ej%z=j0DYwKwT&ezQ;Vs#N;e+*>&AxGdsTYnERM) zkj&T8`+oO@<BrZ%nK27Gq8?4z@DpY>z04jc%;-Z}6Te;a*cT2kyZYJHBa5pqV)0Ul z!2DUFRa;om7j8D`rk;c=!*U&xG2m-6?-UX){@ZVQu!Y~EJ=Sh?TU@aAW3y_{Hj`Q% z@Jk<Io02k3@E<D9jF!410B#1z)wV%JNDK_U%di1Iyqt1A<g_&3s~2I<Z3lj@=yDD? zDj@D2lmzqw0M||goTfsSPm1a_B2u50{}E%3DC=GgV!6oPafh#9<|Z1^IP{mmWH>-2 zd4Cb;-{H=_dJ!3hz-2&E(m+jvqgmtll6anl+}l3VorRY8PxSoO-+7*maKQ6$?UY4- z|LxN0sLXSRZXFe(%`M@9_i1+W@tQg=FAKTjb~4E9EK5w^#z`Ose-QUEr>T-kzOOpl zdg!FUWXKN!9eed+PwvPr?q1I~KhZ0lAh^xYen8vQvUcBC?DL!H^5GtnUVb-6m<rw| z;jA7-En#;+7<k@I4T(KuxX|(O<(0*O;TogCUTO17BR!+a0}JbH>&9K2^yKt$GiO%p z_Hf@p=#A2!jn&)nQI6~5Rt`7ohcEf(`@EIEIimq4KslNgUDIXsI{xu?PWzqLx-xIt z%DxN7zx}3gosIJ;T=N<}e0l!Fhq;dVU=zY)Gr|dtO#Do~C;uE+PwF!6q*dCQ1W#k| z4rfYIywInxZp;kL0Dc_^xXN<yxBKa}#((n7SfrU?&lb&rFrtiarsL+OCEh<9#{*e0 zqU-fa(bwFpCi$$YQg7vX&Ypq*66UX}7+As&`!|lEquVnCK;8mHf0hvwMVEu$JG>3L zQ?_iLZ+1e3KYn|6)A-H9$PEi~JykxXZ7sV$KArgIMfXH%f5t5NFC*+m2b(3LN!#89 zXg~OIkPEkk+I5R(iz5TP?h$f9MzMKlP#dP2;EW5F)atrU(iWLJ=|8k>MFc;=&0H4i zY3D2Gnx7~}rP{*$H9gX2#_g^<1QJ_TQ_@J=_o_EX8EEtv3#+}_iuk=6j@Wz>NWk81 zJMaG78OoZjv)R$l__H$t9Jygbr-3^ar=8=?2=g|JRoREhk&?a_^PHKl@l;%H%<(EM zlbeq_Zl!HZwKSXdz!85>2>n5!*yQ{DQfak#O4;Z!7Vk=|hU@jj<;HQ(v<QTB-N^w> zwtV&a2T*yxnZ9pdIfRq#&lGcB$8|)iR8?DT=XOuHXSyKYf9yeHurd%79A()WNdX*0 zIqjqOs>CDaTstjrU&zsp24<4LUMONY2iYzig;aw81KJjdQ@aZ9q=(FlatOS5<y(dA zA3L0E>=U*CNHF%$%cPFuF<-L6;H;>npkIFD+|e-tc$&s!KZS$eu8bW(fuWy(w~87b zC}<pK&GP=*{TF?*{VSUO!2%8Zpk=-zITGg&l+6TL)4pCJJSZCo^3D60#7D`mbtN>P z?mYG^&>s(%yYcm+*~wrK<fPdPn9(u7{4T(Sq=8<}5M*2E^RJhYepn}qnK8g<{!;v} zE#ztszuiT=kE=yqKCDP*e+~d$*ehmKEE1qFQ~vmNh4Odo#dA>Y_Q+EH{@`6T{V>L< z;Idj|;gwxw{~*MnTK$vbvRLrNvzi?LIonV$*!t0bPG$Q)P9=hqg>9}qD%V=iqhwm2 z1aEyh;k7nwizpa<KpBC+yE`Km`<y-SO(nCNW0+)TiMzKa<5mddSx+i1y{*bC<zD11 z+aY&ytL=dOko5-RvQCgoP1y=Bsi|zmi-4gFcbdYc6HWuwZM#>E`!=#Ea!m#xdBj}i z%?;l~Uw;&7B+AgA_%1xC2E>&4PuHP(<Z)wU%@<SqL5F{UpWZyEs?gtpxGT@!HVP&M zD%`q_GxHHFSBrCgn3zEBG>}}1NhYt(5Qa91UTg1%HY*c6mj$RcUgNi>t0fZFR|^tW z+kGMs(}xY#KGWKg>dFTY8yNS9*(8{A|HiwSmBI3*AwrSu<jhKc`BI?!EV-$Sifh0( z2m>sbNqjEXF3I(Et<jg$^1}vpKB0n-CN4h*j}J$lO2$Kry}99sbyq5YYmDwHGd1K- z=<+MQ^O{s7)5!z^$>){Sd=aPAYRh610^iEnEQ)B>$|=H4cg5N_Rbs|IQI(FNEG3;5 zhdl5R8{vcZhA8C8r1%YI#Qppbu;;`eC1yj`<0iSFm5Q<3t80rweoS`J@K>4>4DmV2 zDqE5Qny1Wh=j_18y@_M_Q)c}7HICzpNIl@UgPC0BD9ek@CfUnZJ2<yi)o2aeEBl%y z%_cXRL}yy_l#1qN*yBh|)Zv(!y80of4)rcFk(NBWA+@<7Mp$2#Sm7ph+LE7HPZ&5~ zO(G1T$&@QnnLsNZ*TSuz9@tpD#Q;SX*@|<?P{xx{)k}x{gh?7*(a`v0XZFp7k%3^w zt+TB;OzVwQUXIO72wa~0kVg+IyPiwaJfUbf&E7_Ly){pgghG2RhY_~AeciKl-R5bP z%a_L62G=Xl4E9YW`p#R|y*A29A`pva<?AbC+2C1&^-9X+p)&Hjpk=1j`7O$btvNKj zb%p6z#B`9L0FCPx)cgT^nzGkqdjGgMQvvi#I(T%w1YS{h@<ik3?O6WM!oB`E;KUsW zQG&F3109Gqi@HGDsm8@S4;m>tJ(Dci^KaU9i4v@yF4;PhHaor61}C;Atf82h;$&zn zqQhRfY;!GDZ{wkWBzozIExFaNiL`KdXzdAjkVGpVwDGYcrv%ZA?J{udCDN9Ttot>U ztyjvEH}ON85eCyGGZ8D(n+N;A%&m{)BgnZ+z;B2T^;o!@sR8#JN^kv2+L;H~e*2`_ zzgb}{LZ$Ck3$1vd>pp!z_uQZ@0>?|<O3x|rm}JfwSPV7F_UyeUB1s4k;Uzt?xA7bi zD_`Gq_8^|M_3Eb8o5#``toe@Gz8&ZGa%wr7Q2bfl)^nmY2(f01nQt>7;hR@Ta}Oxw zy_Ra5gTu)sdCaX9e@u!6U4TZ@`icMCF_`IL_{5>lnw3QvKx7+_$E~B%utN<T(Dkuv z0D6s)iDh`nMdt`F4?><&snz5icHPx}>L#yQtfn~GpI2hK5BQ<KJdDd~PlCj!So#Re z97+l?V&b(q^=c*7gXFHf_0c`Zvr8;oe{sT#*hR+o8LV}#I0<)R@DC`QrS1-AL-~`F zhf2r~;)cMUge}s4p0mt)5mYLyVkvQKIQxWL9<H|aJkaNJdoi+cOqP#!HkFc5dmWlU zN;Lw05h+J<W0cpevPxdr1&>TkAhlCBBZwom<X6ecVv|NbAg@ZMSf^R|grw)>2?Azn zjer?1GShSHhDV4K0%*(ED$Te(+e{+LCLc-_5BExunlKyTh?PO|>hG<AVk51sakpTB zg1o;nY9-^^U=GD8=eu3NuHVX^MEAxp^)%Fi(#NKOXZiDfg>i-_y&uC>%OCX}K8Q#H zT3rToDh}Yu#njWKE7jz+Oe0&DaZ4$W&zytkrOyKT<n_fs$yo+7al&*nx94n3woB6_ z!LzX_6|+L&!zHnfk~eUjSLYQacvlWCL`{^<sM(fGO2`{*3?4RE5BF2Te2y+J8qH27 zFE4sJ_uG@537)r8H+{(R)?a;5|NPVc0%Yxl0L4G#%BTW;<!DZ{sJZJ>uW6tT^d%+% z<vmd|;K|dq=2vACl?Gx<9bHW88B`K$$poGC41qzHDF8kC#hTq_dlGckHwAbQTQN;i zTYBtzP6KM;jP5<GHM(wN@=fH=cgzr5u4bOInNmgOlP$EEiKim*UehH*UiH?_JfyA! z()zL|)r73GL}|zJBQZ#;^Q`-DAK+zf{@2#HW02yCQ=WGP;5}j4Ob5pyene!;+yQW9 z+MvYo#q>u|#D?YykLQG=f#*WK)TTQx`6IP~U1Mvda_L;H2xhd(7K6)0d)=AL8@k(( zXF&FW#;=77@Oq52(w18`A0BcXxMN#1|1m^zZAne)-a3>=&#hr&aN~_Vug3tBJ`tO< zS=s9Kc99)T+Kjg)PhrHEF6TN-NVP4`xX+f%bggiOfgAm<GjcvfX<TE0fPs!o#oahB zkEfvaWA;V4pmvikWozJvB!LTvRGm~CH6@7GOWc}+3vX$?=I-%s&3So^q(*Et`H^w+ zyhW2RsMomG#H`+WXo%z{Zgg3kv??XO`B)%aa;-gxG?*?Tu@y;0M$_sM-$v*;HkfpA zNi09(3@lkdsSSFKUGMVrm~0$+JDT9N>Sw!!>q37CPG(97g`O)UJnxDp-~(=P{3pz; z24^+0Bw0$g3Ayw*JZLmBJofZrUh=WVAmDe#ei@Q{kUkEoxP89;qR`YxImv3MH7~n( z?4H-%#!-Ejfl-46Y_c+Boj2ZXdLjYwo|ekJzAIdEG{3C*GLci+Ym{5rvo9i?(QZ6~ z3bGhpQ$B7)9&@FY8h=_JPx5Z&l^Ac8LR3PtT`QSpTt}Y(w&|<0HSaf6inpCz#iD0{ zIHi%iBvn4Q;%-|yNkJRGGL;;+ZZ_rqryUEb-(vs1fT492k^bgwkXCD{KIc9jNb5wr zQ@?@K=m%Z~r)of~#rzz}QKEt8dW?<4Qf8Svl`CE|TymrUFkdopu0DQkotF!cC@2n5 zS&-^=x0#;Dh0q%0wZ>FF7r=xdq9Lsjm@Sb6av!e&xut&4u~Qz10$=_-3Je5Yq_nR^ zVoC^G$%L)p!Bosb?=^kIj1d+2W9yJthgpJKKW)NtaZG}1uVw_J-L%2hmgUywit_5K z)Y8fEWMu?tB3yFobI=xA%7tuXkUvpmyH=lEqq|&_s_!*`?V5&+&(Lz0ZRKpu@|JIv zHIpmL2R2vGJY|!K6Q0vxTfm1}W&;q)HPe1wZHO}%cyT}jxYe^SrD%Qp*9w=m^Bfz8 zeHRcb=&!frFe2VNHba(sYsB#j$>l2x%^<hwMjytNvDEln=Sk|I%@3mn9+lMpr@b$a zhkE<}*X?$tO;J~ikWq4F%a$0^MP?!tmC7<nlE`H2W0^{k7GtQCEG;A{vP4;CLPA2u zPE2-V8_SFtvwqK*y4CI8K99%mkMHmMcznO}2lIZ<dB4tUd7jt%oYy($b&&LG#pLO^ zR4aqoSgYW13mkUfIxeVMRF<D3&MnnTcEHfq=q54mk4CXyCrK4gm8G_F+FK3TFFIlL zOIh7ad`;X$;Ls*2jP2Emq`kC4vfF@RPyd@?<3BK0QVO%tDawXZFQgJ#r4UQzL%`yd zRI8oSR>|o1NZILlHE9f|);u|&zfzVT!;ghPd$f}S$~0uL9A!^VVq7Rw4DLXTg>3Y$ zxULv7+!5iOqU-R|r#^XtOS9$CW3h7s8(=g-YEYei|H2`I2^Pa}!lu=5)&`yO3ItdL zL&G2X>tMzt&qhnjGKw~U`pCl*U(%o8x;Sk^_C+)pbl?Gh)So<u<#z}2DIXZyxG1;- zqwQf9mg6NGL`qLS!b%nos^`y)`9pbC8<H@jXIA=w)R}rFjnt=FG-x49VA5L&RF|O= zf69jXo#0Hv`jSs7X`#$(uBs(HIpmU_CyMsOA%8=kF6TJEk&J%>Vx;~%{7Qv?8QS3? zUX`-40jDShp{$xLEF&{3ct$^s$hL|jaNf8(PQI&IfgNzE4{a`&34I4F*%J>7DA!gq z<aVU;2lV3jL#{}kK0LHHI(AkDGi~d5b|Nh<sd$L%iltpB2=0H->Nv|wO(XDbG~z<& z?P<mR)85JXv<_gVt^pj8MN)JOoT92+&r15~*mi;$D=K@G^>Cp$$RzZ7BauT-!eK)x zc4Xi3J*eVAW@DD&NS-)oyzes{XYw-~g9ZmGOXhl0ae;Ns{JHj4P8}W#{4N1qrBqNn z*_G^w>F~8B^hr{8vL8w%1<++xpmP@=T7|ZIlY>9<Uk-DO;|Tm1#j#hkDO+AotZFFZ zzIk7U>rY4T`aEW7#4SOlBU!_<pJtKcMLlYs4w%xL$$Fz*valHrF42z%k4p;eS&k|m z4%aPa8>c0C(@A8#-Vr{pI3t-k4GVl1iPY=ww{x7#tXGB3#Y0`OV`ZACV&+Q*l1RHK z8KpP%c&LQJ<WF_ah&x~g*rC)X=1D#kyR8T`PTIErsKx*WXy&1O9@qaPLogQPUrz=; zx4@s%--0b+yBBbWWl?+zNsT)rZpf!o$+T3IgI6C}1=`yNt%tInxXJ`IZptbe_#o-2 zH}>>y9APBqt|jYJL=<rlqK2tYRtXu1RFny!Ew$92dli?6ts*T|4W0;64d!hgf{l-O z%M@r4Fh3dCSK(hilotE*-(w*DALpnqxM%t21w&O>@Ea-*yu3rbs6_q=GAv}s)f~k` z!kA^SuDMh!uT+JPZY9Mf^X^L}2G=?%@+g}Wg8}cTz&bk^k+z0fGR0(2^(NlAJ8}sd zZV`G@VjX!SaftyVSJeuci_F!6hcs1#D;w3IR7O@HL-N*J+xnkIX#6=n<zQUmKMs3N zo8XH2<#!R-ppV^Ezz-r8Qj-bn+*Bm*tvGSg%D)@a*~RCSBe#V#uWKdJ=&evjzZDlA z<uiy>4Vk+nt2c3lA?rVv)ap20nwqtP(houUHjP?Br=f8rCn%SO49Cj~WYHA;<lx#x zR`%<W(4WLzKzMCxVxhPU4K6Cf!SRDT7m7|0_^%V$GB3yBL`N2bJVzmS^J25G{2~5q zBT_A7;4X~QYm*5bONqeZe5%9>I5=I<-u6pzrm}7AL&ny$O8Zxc0vFM5<H&kqD-BLu zug8)z;s}h7uG}6yt0GQuntezqRrNn2@};EoMp~t)%q*NOYtQQAiu3wk8=GTaf>t!f ztRfRO2C_tPJDlost(dWC#S^zutzZM@=12@r5g9Z`uXLR2k<4O$B0;PI%a<Yp-!~}A zU?=8K_Lyq@6~wWR<(a{)jkETXDXCM<nm-NAfdtNrWB%34zwEO-OT*>>|HEzs(WLe; z;v6N6*e(_aq9*65z`pv7aXur6io~?JXBpBSD<_4%x2QMhX>m<@&Nz}qbfN60^4<Vn z(hw=zHq)}9&JNR5ohI$o?^U@msEl0?4Wa0(!3GnQks-VRwP12;{o(&;(rg*|XZ;9R z#sGp`g5qyv7*0M50^|QN=UIaRmpIt?@ZBWevS;E&v5=A>$x38k*B)8s>m#~JxwOZz zR)!px%8l5uNZVv@7RfuyVD_na@nEqsa=N=F>D7O1qkXs)26?nf9A`}@PMlLIo5Q8S zj8e#BW5g0k`L0mvLVjpH*F2f`1WIK0)`$nvE$VknwYVnujONxcNu)R=r=iuspI$9n zI5M6bTuF)}QfTEkL;7Q9@>!M=3UnSituW266cYkUmFtSf0{^q`{qIdMxA)&erR{an zZmZ<Sk8DAqu7U7LwJ`4dLnLi52A!gP8?w0?3nHR3S5kC*svi+-<v{YMXFA^pc01Qu z<W+7@e*m&;8T}+^+Fo}`er-+vt<L^K$zYT4KX;^Z6B|tSZi_wW6MN9*(a8CK?l9E( znMyA7PT3vClsM$*p_Uf-;F(42&m`{H_rO1Db@F)L5JF=BY@&A1pqKmt_LO+O_&$o< z4hkZpR`ZWfe!5xEk&#y`Mk<xL&2s$H4V+PQPdOIXjZRr3+&{CR`iO^%me<*xO_bZW ztj1Y~*jH=Og|~<Y<Fy8NZBbqv)34+HH8!3wer?Nz?7hLNO>}0c6FAcYIBCJI^lI&| z;dOyj<Js>sVe3X#L96j3#~h*bF^zvC^t;y>3xDj+xGWw*C!7%WoE6eqzX`Pii};vD zA2O8Kmdk~pQ@Z0kgxc<>eG~0>)qfZ%lYI@W(Kgo+ssoMrb_|)=a1rdM2I8Cp$-DGk zeG_a4mNbge(g(KQ1$N~p*nbnI_i)u}P`gEmpQ-wZ0R4#E#(z;jiSr%HhG=P}@y&Nx zj^_mxmwaFGam2RV!^ZtbFcG^;8*e@XeKHW>j*0zNMJjt0GB<E$l5Veb>pBw783xA~ zx`CDD3X0#V$nG}cY}7vq2fCZT|1Z4%`WKON%Wks*Z?6)r5IWZnrX>@=6bCrcPx;Ga zm|*_s24sPV$W!6IMd6&#z9?|u-}4K?nQS>d8=jZ`hf4sv;8d?-;bz!h6<m85fEvh4 zFLLg$1|-n*J3OF&=u0WV1k_f+>2imKdjdaCDoKlph#XraT#z7~3;RDp|KD_^v;%(B zAU?0cvb*q%&G(j1HI={Gg*ZHYK$Z*=mVOHyn-h;3mPN(z|8P6jwI%EA*!Li^47~HU zuxe}UR;7rY@AnIigL}Q?3kp4UHm-${+?4bJNVkt_<I=%qSXUnv?CH2YZ*S&)4}*1^ zicX0;cEDalS*BfuQGpjZY^6t9`8_9^N28jwHSZ|Eub?c=7k1uNQXA<S2R;;V8~AxP zA5pjCj;SVm{gC|>YPk~D0SxLdevebvyuFa=R+DtgCi=5Y12uTlzcm5w_Uo3|Q!SjT zM+-&utONi4ur#GGYL(f{YJ6HOWKH__=r*m<VqF5~eaVa!{JjY!?1dOEGV{&M1Y9Ab zv@ZNjdQJFg-ppX#3)R=vI`9~^MMWXN>5GWSfmM2fG_wn;fqo8)oi$}1w4PZlW(5Lq zCf}?2+KlZ<d}+;=Iy=Q_8wVUXCE9|dn0x4Z8~63=O=T&<eAAHf*P|g0x(@j|?%!(| zQdCuH>D1~se@x`phTLA!zXUHI<n}kFRw2*+4{-u9Lx@EC%$I>5LPM&&3<7GjP)qbA zJ}eZ>YR{YKQh_BaC}rSEP@tb`^BU*E8Jh=)6`?cYyir4--LS9Ttj#29^^uO4#L4~% z<i<~ywr~75hJT=3Eu3H=P%mH->gTMzQz{<ru^a1u)@dZvU4JxWypvB<g0GKN&?5=x zE!?_&&5<$FvY0d$Q%8B;CpzUxQ#5daduJ*DX)K?}Cm&E%em+f<Y%z(_T3@R+l1Z)) z6YZ20Ls$l8n`-Vb<7K3r_q|)Z-uuA34a;`uk(_1j&tX8i7<!eCg(%-PDsTB%JmlHc z7{6M4JlPw_8(DVzx-WkJmi^W%d~c@<A!b^ImzlAPUu4PiKT|7RO@47^;V3%AftWfA z|3#<N)cN`?+DYR`GxO|H&9?{A1NVXjP_T#Yb2deLw`ab;Isd+RP651Y0}_OKKTUW} z{j3hq$Z4#?F-eb|gki?$JqMe(+r=(Vgl%@$Us~y!ie;ze+<{memeeDiN&y?L+GWLt zYd{{LNgK!zf*aqMwEoP46`jIXbV-_*Ii6ocO?(IP=QvsPBOYpSK;9LhV5@*&8Z|qH z%z{YFe9%1+;&W3(NIubPh>-39@;l8dvYgT0?Fu+s+c$*Rz|~aMvrZQ_;I)eIj)FmA z20=0@m|H}Q|ErR0_oycHb1wc|Kkce^IOkcrX)egm{N*VXc*jj(Fn2Pq;((5KikQ1R zeEoGx<N;vhyT>j9UjQFcoT|)%Oq)!he9r{z1?~o9ffl?Lt2V(|@6N#PesH;D%ku|G zo1M2Cz)y$TNB!z^JmGNPu~3qde+(qM+xN5o!W&1?Dp0(O=oF1T(?JTL0^{2X@bx_= ziQVh13DRyLEv~>RE7apxWENG&0E{<LFTdj<b|Fo#YRhBy-5A-1&tfPOf&E(bH@?5A z8qabBFZ-&i1zT$Ieur9il?vNL7}y>+Wp!h+37wKI^yJa%@c2Td*K4(~kqYo%F#8;% ze7YWD*{iYLx65Pt5mT3*cMC$i0w;@C2Z{53y{&c==*#5VI^?xGw|ti4<ui2E;f0<S zNn7AoUhVwqk9*U{aK9=X??2``y+hu(l9SpJ{25S@(&<lBGP$|fBsQ$ojo^t@xF-ve zW%aFsO1AI+Od$I{8Pd#ehOviU@n`=011KbNZD9F>>b}Kw2ZX-wF1slIk1%8m)0Lkv zl6*G{EaqBU_9!<o^X_VVkq{wH5804`NplJQSh6JVkMtavMD*nbP*d3Ax}!oO8*1_A z${q_CH7YCr+JSjv1F(v?2v*GqUk^rQU^`*AK;QC$^*qA1)g7+|RHyy=Z99Dk96f$d zd44DP=U3o8$=bW%j8odKZ~H|)59Z7jzVl3=YxE&<Pz~hy-6j5&GPqJ4@i%b+ic$NY zLiE!0LB!R_+xKL%wLe2ePOu~?9RTC76POlZs%#%9H%%w65}<=Hzvkx;K}%S>3BG>L z74ayzZR=N!oU#Vsd@k^6-TD((X_Jz5hk2+poHXYEH|2HsDW1fh&#L=e@S+~64tKew z<b~??(}5YG*2j#0;GvZKVnO2LAFEe^kI?*2qZLk=&pZO1RcN$ekZ=HS_B8qo=ucQo z`=41G@r?zxfX=Uoa({mPtXb6Rj|bBUYX1MolTkh!;>*g)ug0sdr|Ule*!mzfzl;jJ zxL+^fWiB5!5mq?Nz-ox}X@YT@h)A?l`yfJeDoEkP?wL4n1Uslo<n^uSIUe}lZ~70n zxKRRd3W~LD$>A31upyhQ;&m?x-fBRBoBR3xXMkwm5yM9HQ#+#9)FS1p1+GX$#I9_y zo^|ZNXln=qqCdfz=}}C`=8#znL>o8hN#r~Tg&zPf13^I#NpPIIev3FbpZ?oQ_TGey zn{h?vt0tPn2wn;zBKa4^yi>wp#;18QZi~?h9yjJyDEQ@^3K#+Sd`C8xic^4>6`$%} z{g=o?JcMyH#Oa~Xj)Lbr#K1YP8+J!syiVe5j`<>?2gnt5QH-_9&iGqZ=)^-73^Wug zfir8q);Qm`1lPyRfuR$HC=y(^NqlWkg6r2hpu4#9zw2>6Hi*G%YHEJ$#leBKqj-_h zd-t|(J@kyxaiOAR>8+#NwjNUXM1OYJ?peoCHF!oA{aL=_^J5LCce`CRYreAR#S#T4 zMeo7)daz>e!M&C-%e`EY>P0rY+R60>eLmK0N7y-`Rhr66+kS;g9E-%5ng|xPg3mEU z8sgk$)}B9w@OdtVQFtxEHB-RMgYKNg2grh3!?yAbLUVdtkP&-s0)@zbM%#1A`Qj<} zgvbyQ58W&Q1?~+faLX`W#GIy#2mb^g9Z<>P2T7||eFjpSn1Gj1Yfy*aXCZN-M5K(6 zGs$_*ZX#&&))To4D%rNb{_<kr<ORjYE(&;oDSbyA8ENtpK_0uBT;vLQ@iP+elDzs` z;tg3Q4}Ky@lcszbPsoe@eZWhD)smlS>2HFJtXt)T6)H7xUa5+U{zXgopFY}m^xgr9 z`|t}Tl&`8UBc(ZD6n1rO-2Ip7-laJZT7OGH{68xpW*AR;4{R&OLf`zN^$|KEEDk7r z*B4dkJeqUtloJ?r<rfLAQyB2=0=u63VhxXLA^8i;X|Vtx0^=O}C*%EHzdu3YfX#E# zFR3w$p%P;jM2YIBaLfY9jT<)U)L*tTHd?&t;z}dOk(8Gbk#xj4BccQabp*E>S~izI zao^I%qkK~JV)1jQB`fC(K8Vb*E*nuij!}@?4QvqD%|qPU61N>2abtQDE0P1d*rxez z_1clh-vHOeCfh<VE&!A_+Z8a8n3PE@|L)45@OhCw0QiO9*e)fnG=@vzuiJg}Xnarq z`g|D*na{?aU`m!S<FVD3KQ5Yw#4ZayrFqiWy*GkiR!YGib3NIpSRtdNQg;^J0J%P4 zq83WS@8j$D8s|6(;k&$CruwNFK;KjA`pcIqxOmcUYb{j?tvZDdsd&?1gwC>gu-tQM zf!qo4;Vu<TgI`FzWAR{U7UA|sc<j}Xe7HXiO1dmw9S)!gM9~70qzcFl8ogoh5NejV zriK~h3Fi0YK!aSSluMbB2+10+i{&en%ZA{zzTpa>Ync-L+U3I^WtBL`$8tkvoNh0} zeqT|W>xQ+~Cu6q)`8=i-S4ZT+Pjij8{GC#{j9auUPsq2D_om|^*pwm5Os7$NCQs&v zYR!`!DR_~L_mAq$n;_ccsn}I}X!s8t^KiZS=6dcosDye7XpRCZe{N}gPDhZ*Bb(kN zeHI<Sa+8ZrBn=ufEiZtI058WoO@{HuP-gC{1qgUoF94~?F>e~;xn}M_aJ)>Uuox&C z`2kXz)YP^AO)yqL2sQA$0&o{Wm<b*N!W*#pa<_jGu!_g2Xouk=ktXw?1b>#vU=-Sx zKqbCZJRKK1j5lS?K-Hyxqu{@kS~>mk8ci|i81ptA0fDN{bK|%kKL20j+|YhZ3O+MO zcr|Hc!$6!w&dobL5s}aCP9*xu0Zhv43g1^om@{Mty%)~2N%pF#dups^c@AL*M%|## z(WZ54{U<u83(Nf`H$fq5%|2djwu>uSD+T+I=a&%eNXEh{0_W>^ed^%^{z9#+<!ZP6 zD<YzcC0(DjdEI}gX7DRCCYXBl5~Xp}jxC|)qvMGU8aZ5WL;F?AL}yWHN;337{N^_= zUsz<Hgiq|)*XxIfHFGyK3^9jE^K1J?f47`2Or<4IYW%ePs!vvm`SL37PUQXSR@yyW zeMi<{K&E=w#K<ah<KqO~O~x_Xx4chp3mWjM;<U#8wr+yWeLqN2YIvB63wjY;pNm}f zQO|~m4n42t%*wxI*ci6_E%uRoIsVb0DwL#sHn>*(LD~mzDrsut&5GR_mVRlh-^0VK z=5{xiFfmy@6}rW(XxqN1)JF72PpgRphIpQVcFFN@@pF_#RM_PsxRjuzdHt?U^nu1q z)`ez0%6#-BPp+${%6|Hw>oAIn?~e+rNP6J9=5jE9*v_#h{&0>Tm!#xu!n#mWAlj`& z8}7U^C9iVkUgKiN^t;>aHT^lKwN~?+Yj?*~-6lMElpk#RXr<o4p+bwO#@3^-F3L9h zd^fv~v*p=!uQ{KTW)b0vq!1^I%$4oAe~gSAs+(S-5$bD<o62(kZ5`&Uk5_p49lPTE z%;SDEshJj?IcL-~dn#vm0d!FXwROUs)tB|`I=++GSu*3in=881`=a;Aty}k|UM$gS zwy0e>)w1WPpL~T(_1VdE;$wnTxD<KPF=8iCwdQwg-rZ5%gS9haL;dk5bCplhL~h$p z{+cVZhi$M>fDQGd6by*%-eQXOz8>fZ-Zbs5CfW?Oo~%pn=rzjfudBLi7dUL{A6#ns zX)t?a(cB%+YP*-GX4={4-Z1Q^7O4uyO=}M68XR~ww%AujiN4ySaOd-ptxdiG_)a{% zj>x+vGh*g&{%kET1*^BOexSohsiu>tW6Dbn4R=2_x3{`fl-JK#{_!zZThn_Gp54RV zkWslCmphu@;C0;C^YOG8Ii4C6l<Xtg>)a?~;HG58xn`erLsfa&jPh!xCAn}zkqLUJ zBGE+?P1?+8OTWr*n7mg%Y;wWDA{o_L$o^O|jJObYdis)kOPx;nG+e*x*i5)sb}~UJ zV&Qf7%B60+ZhiDicJM$z&mH1ST9oKU94C^l6K{79n(z1ciR@xWex;Tzt!+GKO1<p- zV7*~mD3cZ?!H|Q-_=x}j(ko^U(My=U=Xkx0b={*$jRWhVG*DRj*44ML-G=2#OGYw( zy`FWOw?Mt<)BVa?eY2%G1_Za7TlI|fG(^YHI)Mq!?KdaNq<<=ZTNmNruiBzExtN;M z=kSD%D9yJTdU+}BRN(kv8%A8iEyTuZM_XY?xZR2RKx|`pMQoS6J0&{^S&2!>DJP?% zc;fZNi7I=P_ZW%eRH_pW1nFfjzy}90q~ogW_{Qq_4_x`9F;(1MM}nL3-8~CYb7`Hw zn@w3lXer~Is0zIXh6>qxI>N3sk9wEsc<8Vvx!|=*@J-jgXA!eIvNfcYeDzb_Kh-GP zL{d~~_kX58_h}rrvjbJ}(UUs1TnQTEytgzaUZpt;Cw1IoP8Vm~<=V{<a~pZr#V)uR zg?n~ckDpr|`G&Bz#W$;j?o+$B`VKKOTTyz%awlO*P9LX2UxJ!Slgdg=zeD+560F!# zc0X=1k!Krh8DV^)uI;QUriEqqVNQ#}EWEFy;91@1eXwu$V9fceX|kp;e)<{`0JUal z*aD7|dO*46_JC|%iX(?*6?T<B7Kri78i?Ye-k5f+C6>b<`nTmy+Yx)#Xa<P9R}Jv4 zRoJxs<PFrv!-ksXDWExY%`6kx<@IBim#~;JyoNvAeC#T8A(VvD9ZA!#c(WX4g1mw4 z)U=WyJPDs@!8v+eDPy9qO+3QcZp$+888@MY5!c4)b}I#&<4zNnOJRZ^Y;!jnlf)RI zj8m;Ha~M(idD>K^+Er$2AY|Bdeyb+ds<Z1bM02tvU-sr2sP2Fvm(3&bD;{*WbS=%j zSkPb7Id#zZw@NW6&x<dr+}-Ij+>{=c;d;&M<<MB+=8P4YtKk~i+REp7S%)gjSHI$F z4!l`-K4KhJkniggQFeZ5hW7)hQ`A~-Q$>l!kmE<j0#?|D4&15RcQ`1xFLt?T=j^s& z@>@hdfo(yPGR8%1^Gg$>CWy~&>?%5WDEzX+dB<40$uTDD{w#UTtG>y*G8&$rmY#cC ze%X8iA5)16P@{$E8bD&DUNDS;rX=g5MjUJW86{gHKl)1b`7<*Lx>hjs(}J#N9{#{w zpuTnwvL-*>5|8v&!o1(*{KBe0rutK$pnE2AERU20f2T~w-cL{O>7U(g*z-pRMkRU} z?}<ewLQ)pJGu*>N*<z$83J4?Dh_~|stsk5~NFKSm;xr~jk$fY_J7Ytvp`R#9);^){ zT4<>M%gQMF8^Xh;ZU)oiV3M-`Kz4Gc+L`1&2|cO|3cGe+^U?-!dI#fRl<yGpikPLF z8T}P=$=&EFuLC@Td=vCbXYET*ilX&1lML5*v&QI|{VJFnd{zB+$%!-ij_j6<*tagO zfeJmBLzceFf~|512-(<Lm%tk$yt^aQqpaVs&dd-Xn;qJ&-3mdQ>1;G8EI9qBQZIBM z-SXAUq<q2Tp(H9F?MRc@#wq4rn6N(e7Ny<<&Iin|KdZM?*Wo%6|7X@gH10-la9EI& z7IWW-+DMSXc!loE)`g?^_@+@j=6Yrulx`dwAac#L7ndBLv$UXxhcK<z6ev^V;SCB8 zalaByMyKtm5S6)@2Oe@>dTL@UQB4f#;sGV)wH>{Yd|bbogGLX{LWexxwn7GOHXq!3 z)5Nm975kWQsfjxtL`ZlyQ@A{10M?o1SlmR)>wDp2+mJsR!h&u6ot&Wr(lpG5P~V}4 z+DFo3H2vpniFE2A=ir2ij3C>awqu@ADqa+3&S7*w_uM0Rm&2*Yac{ONIyQd@8f|Qk zSz8dyzu7si_y>r_Qid%}2%VD^nO&7x+;vw}7<0#+Xjh&R?#->Z(Ia;kdzJURylCVp ztUJ0`HFE69%=y=I@3M{l&|6*fs4MLd=2B7rhp-L5#mQ58*NY!)|K%gp-=D8)y`{An zdu<QYdONpd2fJ^GRm$Lbo;3|u`|W)TWVt=3P4aP3YY&r$n5clugx?6s+g<ur`Ok;S zEfn1Vk)-w4Q_@`Q@S1+>_JVFXRM@AyX3C-?+P!VhbQHhJAGt0TW4!lC$rv^tW_@qG zvE8#L(52$7%E1}$i&aQ+o8*e_HbVyq=b=NMnJUU=Qg^Q6cz#Alc9CY79xh2MC7;x7 zp3SA`*-~oKnU=PuRgAjO9H)bBc-xoL8HCYgmj*INU2m>YBTGNI5*ou$eFAG_ZB2P1 zMWY4{rLo#&BAnmnO+R~wlxOz`)Wljo?4xyYbKXEws#7=QKUJ>temi^K%yHqv1|rP5 zC#K`f=oRlod3Itf?m}z6rPr10rMkhh?QcnusuAuJuH!kSksrH|2@_`r2!xY0w?=f) z4lAst&IiTosvEW^y&bXdncQpVnCs$DZBo6dVrlZkBYJFtysM*2S4VGTOx0Gyv$ieB zE24X-A6$1deUOEB*R5QK+PH3bZg1wRX_)9J{#w%crN4zywRb|wrF@|=gS`<P6;@D} zihts^4a)X`o88@QYwKi~L1#>D_v&Comce_8_L@g7KeZ)y=4s4E^k}ia8o}%>8=@y| zG;JCBZ2I*J#rw}$)EA2;5}qh2O%`spnixAMnx%}*s^yR3n`gEJC=?Xj^BH{=<%-R+ zXh*?cE^${?O3vd-wOp%Lg>g-EuYJ0C-DbP@632|T_On*GhvDtnM+;yvyb$(I@ij%U zw;B<sF>3U3oa8N8t#OS1A;(7wE>=oieug~fFa|=tAn(c3D&_0zbc4o;$3YdLAD;W} zzu!83XVP>aN8Z*$GVxwRB&`d^-`_q~P0#=x)C?E;a)#&}dvZ_MGAJPj)m$8TC&uQT z>NeiwsNK7`v_d;^+qahbJEtqSkk+nW#+{aj|4}fWusJe;QEw1Zr@lID7V+Ccb?M*{ zwbK~j62$L(bbpnb9!k+lwlk|wJUHc2(-=)zqlppO8{W$CqV(@oa-QzhcCks^1C614 zdA+4f;KMn!9E;KE;u@<b{EpuzNxecx-1h$YtS}NH65#eZHY6gq=5ypmL}ab~d@xc( z1X0UhSeD-0vc$#ngtrgc#p#UT8|wJ!B^v5->T-fFa&mIIn!1`gfBo?JzJY<9+JV5c zE^=!7oLpVJ1?AMt-A;JR*~x7OMXco<=5HCJd_8^SG?o||{zX9J8w&f-s1v@<E@-)} z&Q5M<l$?gDhK{Pb+}2Y*K4-mms;SN2bwxX!J>}-?t%^dsDk%xc0$zRGP@X1EJ}z=w zO?GZq->#*hv0X<)OMSb#rn0(*qPn`$x0MQb5{UDaZDS`NCl8eCJh^!h<OGaafAdfP z+U4XDbvX^qCF*~D<aD&PHMQkV$_el3YVFvrB{%=8oag6z>gwBdcl>Zq;~(y+YiR#i zPFwefd)n$hmIF2aP)>LIkI(M-p`5OkuAbiCo(0r){BTcOU0vsEIUlr>n}-W}UV}Dn v7#D$F1V*<;p@4zsZ9ad!$MYnx<6pY;_Hjb{%xh8?h@rP+^XA=Frc3?{kNOpP literal 0 HcmV?d00001 diff --git a/doc/avatarSysMLV2/figures/Tuto_after_transfo.pdf b/doc/avatarSysMLV2/figures/Tuto_after_transfo.pdf new file mode 100644 index 0000000000000000000000000000000000000000..91de7fe256ede26fdf4177826c6ff77a96dc118e GIT binary patch literal 15513 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 literal 0 HcmV?d00001 diff --git a/doc/avatarSysMLV2/figures/Tuto_before_transfo.pdf b/doc/avatarSysMLV2/figures/Tuto_before_transfo.pdf new file mode 100644 index 0000000000000000000000000000000000000000..113daf5b65e8ed6ba32bbc8f0a0dce64c5414b8b GIT binary patch literal 10840 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 literal 0 HcmV?d00001 diff --git a/doc/avatarSysMLV2/figures/Tuto_countstate_box.pdf b/doc/avatarSysMLV2/figures/Tuto_countstate_box.pdf new file mode 100644 index 0000000000000000000000000000000000000000..38bd36c76e4b54c06a68e63298afbf582d0464d4 GIT binary patch literal 3143 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 literal 0 HcmV?d00001 diff --git a/doc/avatarSysMLV2/figures/Tuto_randomstate_box.pdf b/doc/avatarSysMLV2/figures/Tuto_randomstate_box.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b5f12233c448b4ae8e836b11c4213267f85d30fc GIT binary patch literal 3015 zcmbtWdpK0<8gF!=sT3tj?4{jA#N200xs(~?mSL2lJ!g-Z6(eS8%^HSND!FvoQqOK9 zA+_m3mt87drX<qEtw<=zwNXxq*tK11uQe`-eV+5jS<gIc&G%d1_r34?d*5%pKLVHI zU{1E6;|W*Zo$trf01^QC1>&u&0HP}>@kasxItqE>0RSL6h=ULiMxQ|f1mu81NCe_- zZ17S91_i-*c`DV5G|BEKHX!gj?JqfbFtude1D(^{2UE3~G^QHfY+jaWv{~!c1*SWH z_P7xhd19Ac1lctvJ!Y2?Cs%6?xR9G~RO_WNoi^tLe|7#{*8;*ZvpE{L+;qJzJSY(j zTS5O}{$WmGPt+|I8GDTlsH4uS+_je@jywc)6|l0x0Q4dXNaz3{vR4CSfG8B8cQgR> z#n7F&!QC$q6e6lQat6S_LdV{rzhN7cQ5yi!D?9`Qh+Kg`2oM0W$|hF;gAxSYc7!uG zP$U-EL2|$sg-8IINwKg5Xk-f}1Ncd`f(=O!bcqzes2}3l5r$+TW1Jqcqe4gG;Gx!G zfkYaD*%OA3z)k=H%fOKl8=b`gL&ZYS)6otChokfarH~93f>Hou%yUe1Sil&QW72Oq z>efG{ALDe$y<zGwGen-u4^eUB0Kvg3#BMAFRDebqj{ch~%n?^c%gL-2?`6_z+Df4@ zD|5M6Y0YI@OR2zQJ7XpM#(1Ggrmk7L_Xg8zt<tG#Mw1x48F3Q}1#^G6Q0UZ=Bx1IP z!c;l;{}u`hU}4UGUnm$fj!H6C0ss9d{SPjkg3&@#`Rgqfq34o9BdJDfK(T)S0?;j0 zBQ_KS!MqTG5UtFi+&jVoRecbh&_aVlAnfptmI={Lj7Yg4%!YzPAPH8wmfs!ecPU$3 zH`&j-|Mk*5AucaIUeuDKbMJEicd^%=g4sEYtDgEg?dr#$2V4~2QI`w=wR8S;rYKW( zZ=qA&Ge_o&jOlendI7wu%V(13c-kIpcPj|!nt%EMFZv~zx>BmN33aJ+d&94*{~DL} z?}}2EG&0QJzhe0uzmi0A->X65=Qdkp(;lunQg*cRQVR1@;h{<&14dK%yN=84tBswi zWcm8g{gQLeOE%&c(HiO$XO<piUI9OzyqY+@bERQ|vTVxs$PAnGLnbYhCK)bdNqd#+ zcEEnYh3HRFrCGkBaL-#eOum}?Jt{nF9B6Vx5F2iOnD3NO(yez>qY9^6_uGtK1?2Ng zNfP@+FV00Yj#*v4tXLcJSEP2LPHhff=l2iZkyrFP+H>@to5ect!PxcYPsQf%B|j%s zhW_XG$&ydAw9;z4?cLgLCwn~?$MxO0Ey-Zxw^w=Z{<Ofh+O)ox%G{P5JAf<Lf5KyK zr#jN^T;D&Vb4Q+91&@t0UFpTo(|93OR}Kd1I1ffP9PhrZrf524MSsnSFwHgjQTZ}o z&AtD{PIK?wVF{JL;EvRDV>NpM6?(KTQv+ezgXTer)fZy$(rTUK%XPFE8s!}Y@jY&D zMFysjMQG`v>nmE5KR(EOG8G~i4#bt_kuPxM6{!o_+<G*13th^yuRogIVyW4o*waK1 z&A#;8$&D|z%j4!UK~T!p*m7Z=JR#?c+dg$=+i{JD_d|t-`iw;cr5FF$+g`P2#>KvI z!GgpCwvvYVw4S6@9~z{#Ht}uNTcyPwH>|B=m(thJeN$;(7mGW}+<x(XqVutPQnlPp zkq_R>PSI_&&OZ<#r!~OhGG}P!h05c$MvMQL$9J4ewGz!Dirv)9_+K+y!JG*5ePL?t z%{)HSWnmReJ8ShcwpmH2%@$e3loe_7Z}d;O+L+aTXBw+3XlEe3yY|Zf`S3Z$tGaW7 zi|Sgo#KW8F6T3oL85Xru!>?;n>{6h(^cjVLcZ;XUZJQM0wE10?Z*jL;DR6UdK|z7@ zp%vNw?Hvbqg`L;RE2>zjdCFB&WVt6sfg3E(x_wmfrx9mcq<&RR?#)e4DngN1drgql z*YcWx>x+Lm(@&=}Pm`^+N_oz^H~vV{wN1wD9T)Xe75(63;$Jhvl9J`_uM)ea8tqPK z{E@z9RyNX5++=Lt@@~WK^Y~5Y8$H9_o1Yn4>n?7&?G&F>UADDapY}8+-m>J8xtUyf z%h@?;&!R$?MW53-p<<VUIIT3MsCibJcB&+3-{YlctABMqt-EW>f$99Vl7s85PL=kG z+@d*e>+(b<OEftSd>{AuF%Jh0MRzzEX3T&8aeuezv0`AR;&FIkOjOtol3r<1+V*Xa zeUEb4v+Qf@B^p_RWs2aMLW9h$E<Kuks}@Fe;wmog>D&A0&P}Glizr;<lPTdje^47D zV3AqiZn<xAKYpe{l<`z<*b}<nLkn7V>(v{245drkmQd)^c`QP`YdyD$S1QKwyTh#w zx_5?|uI4+XG?x`cDU_M{pYNF%EPtbv9a-BQx1{{f!pcee3q{BeiBDNQ+(GRe{*GT` zlj$7C5BWO+l!N5JW~D2&Gj++{Hfwg=hlfd@t&%xnMas0t*G|{KuVs0QNE=gG1@_w_ zd=(|h%)U=II@emf&TY-FA$a8O)9#sWX7kab7`%H^bSa$YySZU+wm3)I>A>Q+gyi=( zUwz8D?BjdF@J_;)%<RUJ*7BNkMHb?;aqz46!^E<q&)@FfkhTl^Xbo2M{xERXdF#YZ zr26^~w<0o?${J}#m{u5R6yFquRP{A?5sRd#a==7~=crzgVFF`J(<YDIfeS+-nGjWJ zCPIN2h5)h!nPEW!Oac%jM7n~AY918zhXo-4VxiOmg8i2*8|oXVhC{@VgoAYl6V3_> zi9#cjDNHhnPNg%<NMvIYY1vq#6NM04fCz#hf7N!FD3T7#pl{+y4uhNVs0gCsNuw9Q zpraOm&A>25p;1vKgk6AS1S3&N6EVs^U?egs49Be{TcRpw97d<0N@pC#q@%K6JVu>3 z&vN2Clq$5ff4`POW1$jY9L6Az*$;sQ;vf)Ki7lQu0>pU1G=L`rp$S&yTs3x*Y)11q ZBq>oYrHBAVR7_GB3>Kb1uy=RB{|)J#Wx4<W literal 0 HcmV?d00001 diff --git a/doc/avatarSysMLV2/figures/Tuto_receivestate_box.pdf b/doc/avatarSysMLV2/figures/Tuto_receivestate_box.pdf new file mode 100644 index 0000000000000000000000000000000000000000..f1a639b4cae237db9b6634142e8a946f6606c0a2 GIT binary patch literal 3067 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 MGS1w5wZ8}MKR_*OF#rGn literal 0 HcmV?d00001 diff --git a/doc/avatarSysMLV2/figures/Tuto_requests.fig b/doc/avatarSysMLV2/figures/Tuto_requests.fig new file mode 100644 index 0000000000..df4316d9bf --- /dev/null +++ b/doc/avatarSysMLV2/figures/Tuto_requests.fig @@ -0,0 +1,83 @@ +#FIG 3.2 Produced by xfig version 3.2.8a +Landscape +Center +Metric +A4 +100.00 +Single +-2 +1200 2 +0 32 #c4c4c4 +6 5760 1890 7470 2160 +2 2 0 1 0 17 55 -1 30 0.000 0 0 7 0 0 5 + 6840 1935 7425 1935 7425 2160 6840 2160 6840 1935 +4 0 0 50 -1 16 12 0.0000 4 195 930 5805 2115 OKrequest\001 +4 0 0 50 -1 16 12 0.0000 4 195 465 6885 2115 delay\001 +-6 +6 4275 1170 5715 1395 +6 5130 1170 5715 1395 +2 2 0 1 0 17 55 -1 30 0.000 0 0 7 0 0 5 + 5130 1170 5715 1170 5715 1395 5130 1395 5130 1170 +4 0 0 50 -1 16 12 0.0000 4 150 465 5175 1350 index\001 +-6 +4 0 0 50 -1 16 12 0.0000 4 195 720 4275 1350 Request\001 +-6 +6 3195 2745 6255 2970 +6 5445 2745 6255 2970 +2 2 0 1 0 17 55 -1 30 0.000 0 0 7 0 0 5 + 5445 2745 6255 2745 6255 2970 5445 2970 5445 2745 +4 0 0 50 -1 16 12 0.0000 4 150 675 5490 2925 channel\001 +-6 +4 0 0 50 -1 16 12 0.0000 4 195 2070 3195 2925 CommunicationRequest\001 +-6 +6 2340 3465 4500 3735 +6 3690 3465 4500 3690 +2 2 0 1 0 17 55 -1 30 0.000 0 0 7 0 0 5 + 3690 3465 4500 3465 4500 3690 3690 3690 3690 3465 +4 0 0 50 -1 16 12 0.0000 4 195 675 3735 3645 payload\001 +-6 +4 0 0 50 -1 16 12 0.0000 4 195 1170 2340 3645 SendRequest\001 +-6 +6 4995 3420 6525 3690 +4 0 0 50 -1 16 12 0.0000 4 195 1425 5040 3645 ReceiveRequest\001 +-6 +6 2340 4050 5760 4275 +6 3645 4050 5760 4275 +2 2 0 1 0 17 55 -1 30 0.000 0 0 7 0 0 5 + 3645 4050 5760 4050 5760 4275 3645 4275 3645 4050 +4 0 0 50 -1 16 12 0.0000 4 195 1890 3690 4230 requestor; request list\001 +-6 +4 0 0 50 -1 16 12 0.0000 4 195 1140 2340 4230 Request pool\001 +-6 +6 6165 4005 8595 4275 +6 7155 4005 8595 4275 +2 2 0 1 0 17 55 -1 30 0.000 0 0 7 0 0 5 + 7200 4050 8595 4050 8595 4275 7200 4275 7200 4050 +4 0 0 50 -1 16 12 0.0000 4 195 1260 7245 4230 index; payload\001 +-6 +4 0 0 50 -1 16 12 0.0000 4 195 870 6165 4230 Response\001 +-6 +2 1 0 2 15 7 55 -1 20 0.000 0 0 -1 1 0 2 + 2 1 2.00 60.00 120.00 + 4815 2700 6165 2160 +2 1 0 2 15 7 55 -1 20 0.000 0 0 7 1 0 2 + 2 1 2.00 60.00 120.00 + 7830 2700 6390 2160 +2 1 0 2 15 7 55 -1 20 0.000 0 0 7 1 0 2 + 2 1 2.00 60.00 120.00 + 5985 1935 4815 1440 +2 1 0 2 15 7 55 -1 20 0.000 0 0 7 1 0 2 + 2 1 2.00 60.00 120.00 + 3870 1935 4635 1440 +2 1 0 2 15 7 55 -1 20 0.000 0 0 7 1 0 2 + 2 1 2.00 60.00 120.00 + 3330 3465 4320 2970 +2 1 0 2 15 7 55 -1 20 0.000 0 0 7 1 0 2 + 2 1 2.00 60.00 120.00 + 5535 3465 4455 2970 +2 1 1 2 32 7 55 -1 20 6.000 0 0 -1 0 0 2 + 2385 3960 8595 3960 +4 0 0 50 -1 16 12 0.0000 4 195 1065 2880 2115 NOKrequest\001 +4 0 0 55 -1 17 10 0.0000 4 150 750 5580 1710 true guard\001 +4 0 0 50 -1 16 12 0.0000 4 195 1245 7245 2925 TrivialRequest\001 +4 0 0 55 -1 17 10 0.0000 4 150 810 3420 1665 false guard\001 diff --git a/doc/avatarSysMLV2/figures/Tuto_requests.pdf b/doc/avatarSysMLV2/figures/Tuto_requests.pdf new file mode 100644 index 0000000000000000000000000000000000000000..873704b0bee5be879d54849781e823f7462199e7 GIT binary patch literal 8352 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 EKbCCfVE_OC literal 0 HcmV?d00001 diff --git a/doc/avatarSysMLV2/figures/Tuto_sendstate_box.pdf b/doc/avatarSysMLV2/figures/Tuto_sendstate_box.pdf new file mode 100644 index 0000000000000000000000000000000000000000..804425ad81d310bc27986bea33c07b3b1b2ce6cf GIT binary patch literal 3048 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 BfVuzx literal 0 HcmV?d00001 diff --git a/doc/avatarSysMLV2/figures/Tuto_startstate_box.pdf b/doc/avatarSysMLV2/figures/Tuto_startstate_box.pdf new file mode 100644 index 0000000000000000000000000000000000000000..181cc76cbf1c3e123500b972b796060d231025e2 GIT binary patch literal 1866 zcmbtUO>7%Q6gFui=++XbKx+zAQ;`rSq28Tcd%cO=;&{_IX$W!bR4GA`*w_<iE8Anu zt}8bbIR{c#ZTUF>MUY6PC5Qv$Rw)Oh2#Tso94M+p4;84YB88T}O0);mR$*rCbsW2h z11oFS^X<;O?|tukuQ}4)vkQ8BT=Ti#7w&RiAOJjmkP8F={}Re1%}L;+P?Q4z@I89U zM1($5nu)qm948RBXAftX1Zin5KPwFjj?kD2wA4a!{LH(v-|fHn<mZu#$g#EIlQY9J z*_nVxZG7y7eIu6!y^&u2Xq)3Ed~+x`qX&OF`kJ(}>5_7cG~VZ=##2WYf?%VgIOKYt zLzzT50R6|PF+S``87VS*%@$IHx5adC-VDb~$`S+u44@aU33LH?wF^MN$2EGV-06$b zoj))*eh|e?>zlj`WR^91M}OrQVkHLPhYx2F;3HZRfo1@$m=TSjj7g8R<r+W<T?^qn zc$Go|ko+F6w|pP7cBnXG(k%vHs+S}V6P(LdkuJrtP&<zpjZU<Tk!A7Xhi$kIm?Ven zl}f+rMu+q`iiSfBEN2--2F{T<G5}L7T9qA3m?>FRd8I<@L6v8kmgtqGV`2DMZrrrA z>A@szA)zV>6d);}l>8bKzs;m#r1oWQ*uC7gEXr3TIK)ildOXy!LT<EdcYnIA{g;sg zZHvoBW5Z5|j5inSEy9SGE#g(|^06?b1T9+s*CHLDgYjN(5eC(W2wCm_y?_2g#lAGP zn8kNQPq1bbtwk@=lar>sQgI5CSXPTuOO}crCYogozK=SLWHD>lia+>}ZW<9pRGiM@ z4D+nAu8r@m7M^f6Ef)OmJjDI+^Znp^AI!}<d%?*^2L3!U?}|*v+PZds;dFs*OK)G@ z_u;6^_0j6}%dz7Fn>U;v42-^fT)T3%7=HB7v%zb<`*;7K+&Py1cK+dh<$Q3(@oOu3 z=Bv!vk9SPX&#jIv-k$yX%i`?4zY05edDrtxw{HBs<UFzU>g)M)_f`u|^~7)e4WrZG z)TUR8x8C@sbNaOV^2X1elZ+RKMyIb`xbW7~b1NG*jr)RK*JE3JCvQG=d+NtR)7ba! z)3U=cvSs_7dSh6{C_6(GB-<LSXYI1Bb+%zi-LEGM+QF>(qh;%=IL8{js(E1b2@!%5 zxi}q^?zpBC44?<f9s#%~O*3nB@^to4G)c7Vq#idsm?T?Utw<^zqo$5C-K<#d?oLq< zy%36iDELId-!8xwL1?WGT0f9f&D2sjX&uLglTjW=YeOtg&;%y{C~-pN0<zC1`M?Ay zV^CD+kYyLh*q9)8P;=K{@Bx?r>-R!G?Z}$FK9OoxgZaI53e{p_{dr3LcTkk69P9T& z$w!;72J^~v5ZIVWG(ClgHS}Wo6k@utj*MbV3vAWgTK8opXdO$VooZ>A8Zj*;AuSEp K+`M<Nhx-Tfi4Zve literal 0 HcmV?d00001 diff --git a/doc/avatarSysMLV2/figures/Tuto_state_box.pdf b/doc/avatarSysMLV2/figures/Tuto_state_box.pdf new file mode 100644 index 0000000000000000000000000000000000000000..9c808234ba4e229b2c0dfe7f3335af945e5df0cb GIT binary patch literal 2697 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 O#}~i=gW=`t4g3f4jLUie literal 0 HcmV?d00001 diff --git a/doc/avatarSysMLV2/figures/Tuto_statemachine1.pdf b/doc/avatarSysMLV2/figures/Tuto_statemachine1.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b7e2812f344c01b58abedb6160fa72d6dbb6cb4d GIT binary patch literal 11490 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 literal 0 HcmV?d00001 diff --git a/doc/avatarSysMLV2/figures/Tuto_statemachine1a.fig b/doc/avatarSysMLV2/figures/Tuto_statemachine1a.fig new file mode 100644 index 0000000000..7c90f0405b --- /dev/null +++ b/doc/avatarSysMLV2/figures/Tuto_statemachine1a.fig @@ -0,0 +1,30 @@ +#FIG 3.2 Produced by xfig version 3.2.8a +Landscape +Center +Metric +A4 +100.00 +Single +-2 +1200 2 +6 3589 2824 4005 3240 +1 3 0 3 17 7 45 -1 -1 0.000 1 0.0000 3797 3032 186 186 3797 3032 3977 2987 +4 0 17 45 -1 0 20 0.0000 4 225 165 3707 3122 1\001 +-6 +6 1969 6154 2385 6570 +1 3 0 3 17 7 45 -1 -1 0.000 1 0.0000 2177 6362 186 186 2177 6362 2357 6317 +4 0 17 45 -1 0 20 0.0000 4 225 165 2087 6452 2\001 +-6 +6 1727 9664 2143 10080 +1 3 0 3 17 7 45 -1 -1 0.000 1 0.0000 1935 9872 186 186 1935 9872 2115 9827 +4 0 17 45 -1 0 20 0.0000 4 225 165 1845 9962 3\001 +-6 +2 5 0 1 0 -1 50 -1 -1 0.000 0 0 -1 0 0 5 + 0 Tuto_statemachine1.pdf + 2025 2745 9677 2745 9677 10810 2025 10810 2025 2745 +2 4 1 3 17 7 45 -1 -1 4.000 0 0 7 0 0 5 + 8325 6480 3420 6480 3420 2655 8325 2655 8325 6480 +2 4 1 3 17 7 45 -1 -1 4.000 0 0 7 0 0 5 + 9945 9000 1845 9000 1845 6030 9945 6030 9945 9000 +2 4 1 3 17 7 45 -1 -1 4.000 0 0 7 0 0 5 + 10215 10980 10215 8685 1620 8685 1620 10980 10215 10980 diff --git a/doc/avatarSysMLV2/figures/Tuto_statemachine1a.pdf b/doc/avatarSysMLV2/figures/Tuto_statemachine1a.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c6f76d4e1e252c81cff7e5f7eaaac09f5d6fdaf4 GIT binary patch literal 15228 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 literal 0 HcmV?d00001 diff --git a/doc/avatarSysMLV2/figures/Tuto_statemachine2.pdf b/doc/avatarSysMLV2/figures/Tuto_statemachine2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..1eb93b538fb0c4ed9cdb04a37e0d2fa43619cdc1 GIT binary patch literal 7395 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 literal 0 HcmV?d00001 diff --git a/doc/avatarSysMLV2/figures/Tuto_statemachine2a.fig b/doc/avatarSysMLV2/figures/Tuto_statemachine2a.fig new file mode 100644 index 0000000000..240d773795 --- /dev/null +++ b/doc/avatarSysMLV2/figures/Tuto_statemachine2a.fig @@ -0,0 +1,24 @@ +#FIG 3.2 Produced by xfig version 3.2.8a +Landscape +Center +Metric +A4 +100.00 +Single +-2 +1200 2 +6 2149 4579 2565 4995 +1 3 0 3 17 7 45 -1 -1 0.000 1 0.0000 2357 4787 186 186 2357 4787 2537 4742 +4 0 17 45 -1 0 20 0.0000 4 225 165 2267 4877 1\001 +-6 +6 2329 7965 2745 8381 +1 3 0 3 17 7 45 -1 -1 0.000 1 0.0000 2537 8173 186 186 2537 8173 2717 8128 +4 0 17 45 -1 0 20 0.0000 4 225 165 2447 8263 2\001 +-6 +2 5 0 1 17 -1 50 -1 -1 0.000 0 0 -1 0 0 5 + 0 Tuto_statemachine2.pdf + 2250 4500 6711 4500 6711 10755 2250 10755 2250 4500 +2 4 1 3 17 7 45 -1 -1 4.000 0 0 7 0 0 5 + 6930 10800 2250 10800 2250 7875 6930 7875 6930 10800 +2 4 1 3 17 7 45 -1 -1 4.000 0 0 7 0 0 5 + 7110 8460 2025 8460 2025 4455 7110 4455 7110 8460 diff --git a/doc/avatarSysMLV2/figures/Tuto_statemachine2a.pdf b/doc/avatarSysMLV2/figures/Tuto_statemachine2a.pdf new file mode 100644 index 0000000000000000000000000000000000000000..298d0b3601b0da624a1396f2c944b3ded2e04869 GIT binary patch literal 9756 zcmeG?3piA3*Qc*iP1NzJjz(#sqQuN#V_e3yLAlSklv`tF(`;r&W;9f&Q&A_ABt=M4 zE~Ap1l6$G9a_M@8gd{?UBlr9N4mzhg=es=5|9$`WKmYR&X79b;^{(5y*4nSN-t~57 zBvrhcHfsIDuBeNs_3JHJd)PE8m%(P~VthCl)!i6XI@y@C#Q|K61G#JmHkZnU?WjI5 z#{g@?X2BR$j@cF`OVcd|{&a6%0D}u4bU>B7g+j5kF((^f{R3d|%i&-Q!H+5m!r(A$ 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 literal 0 HcmV?d00001 diff --git a/doc/avatarSysMLV2/figures/Tuto_stopstate_box.pdf b/doc/avatarSysMLV2/figures/Tuto_stopstate_box.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e3375e9b60d69444cf87ef5bd1ae596b876b6e40 GIT binary patch literal 2162 zcmbtVYfuwc7!_K4EQ8NdEspk5NeQGTyLrQ)LIMFqASO@|ie-~*9yDar-3=40;{&x? z$F|zm_k+S<t&X)?m0GbPwkSS|Iu-Rt#cG*aT1Am+>1fB^yLlMFjz7AS+08wB_kQR5 zzH`qN=+kwR39$kb9Jsan0VW4HpiSjiN(zw7pj<Z24ipeFU;qG#&f(-J20oo6N2OC{ z+CpJdr(!I}P-F$>-7G7>2Wd*RfHc+FtaYn4pDt{T{#@T0F<KS&Ug8Ve5|@ZN-+n1^ zVcE<>)${8XY333Ii?;3^mA*YTt29QxFZOcQ&|&hZy5h8^V>6lsHKLJ2!`|Y?88OOb z@rQu_5IMvMJs~Hx8ofpXS&%u;HN(qg8ac=lq@*AKUJ??A10d0+0Rl+OB)miR@P+R# zDatpMQ)Z5z<5dDB${W3dKYt8qFb0qmRJkc2(UUd`2mryy)RPS5;^4A@g5^>c2dSaG zpaeoVkmF*R6v*Xbr5u#<UubC;2R~r}s=KeqnGEf5hmiKg;n6@IMi`wTU920$Ggk%R zY``%dDlpQ*S?N@z!%P`6H3;-)X`ooz!<Z=+po$qnvO@`@N`~}a9i;WN-lLlO==n>B z!bprB6UWy^M>7>Xq6sMh0ptpQ@{gIQ0!)HZ5_Mt)!p_7_DREAwG$2`x88byT20W*U zzrl3H#|Z1kihi3_lz6a{jR=n&B)<|lf1pkfd%sQ;vOo_}EMJy9xBsh?B#?y2KdBQ0 z^{XU-1n}S6=ozKVu7En@`Ob1!(4JKCgDlEnvvWWx<wsiDNi#+_X@<J=bv~0Jd38v# zq0AUJjrMI&Bod8-WAzlHr7PUD3kg^K#BRRT{%ual%yEP7Oln?mbodIbqAz-TqdKWj z%ze|KzSP_-iK{onX@<2oV6SMFEzeb^Wh4t@Ozx30hYYEWDG@eg?Fx%k)|RC`&$gdn zcVDn~SKWSpvBoj6HM{#k$5rM?cxP{F*PCY>AGJm8+_^8WaO~~WHqVu7ecZjqA8P-Y z>w0bUh5h3{-1ym26;qb>=#5GTXK!Ddn>*(YF}p{#tj_ze{AzK_7JA{wMUzk0zgl^0 zeE#po7oA^h8nI~I&B~OpIk|t|x8LZ97>pHFVjaC5MawOt9z}#(k6#<-zQ|4Av+dHn z;<)LS>c47SC$}tKF!cC(Z*AJC<hs;JUEjaHe&V{M=ssiKp%a-$@8Z{fiZkzu?7QFn z^@gSYT;8?cy{0CNzHn2wc4R}@%BA()IU{aP_~dY-E&d{XZ*_#IIQG&NS53=<;b&Y; z(U%hhvrm4|azq!^wKFy8YPhql!maytWp79Ro~b?64-fzH&iGaHMYijCOt!V9_3kqH zIWal!l>5)>LuYq)=X<x>cGz6!_Z^(pb71z$ldF2)O^g&|5a&02Iw3D|%5~9%ChN2x zb>9_M^h(q(t5su-bIPYnH{6P{t~-1rw`8z0U$kOl)x%oh`J&-xTED#Bvt)If$+UOJ zJSXv0rE1ODrjK%DKbN))+&R2j{aZ(#Bn|8x<ZJ<5KlVSCS6`09!a|=z7HJ5&n+Mrp zh{X`0E9e>8;xWSmMQA1+3=Ie|p%mjlXy-ULn=FA24N)6Iy6p}#E2bG+LV{1{@VMa| zv@0E{S(u(I#ieqBkg5n=A;Sp~PQ>GQLTJ!|wyh;O(n;I+<&cH5e$#$z^<IXuVmKgV z7#_TUQlXG3fED;LLZOEFpbNMH7!D~6z@$&XZ~`7<{k|pC&?Wj|3MusIewa$}6bv3M z{pYC%&Lb2GXp2v-M=0gc`}<)kWk?K;AstSN;g1HRV=jg2f-K8G)3CvO&-rn-%L@C5 Yn#><8EJrdNUr9nuC^3N`BVUL83vtt}PXGV_ literal 0 HcmV?d00001 diff --git a/doc/avatarSysMLV2/figures/Tuto_texpirestate_box.pdf b/doc/avatarSysMLV2/figures/Tuto_texpirestate_box.pdf new file mode 100644 index 0000000000000000000000000000000000000000..6f8109dcd8e9929f0a33b736a26edf6e9132fc39 GIT binary patch literal 4915 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 S*CVNhRo8^d${w&bg8mN$7xT#g literal 0 HcmV?d00001 diff --git a/doc/avatarSysMLV2/figures/Tuto_tresetstate_box.pdf b/doc/avatarSysMLV2/figures/Tuto_tresetstate_box.pdf new file mode 100644 index 0000000000000000000000000000000000000000..067b925ff5fb5f5ab813232bab494885c61c7dbe GIT binary patch literal 4669 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 literal 0 HcmV?d00001 diff --git a/doc/avatarSysMLV2/figures/Tuto_tsetstate_box.pdf b/doc/avatarSysMLV2/figures/Tuto_tsetstate_box.pdf new file mode 100644 index 0000000000000000000000000000000000000000..1471ec4a09f76a1faa52c43a2eeabe9596a883b3 GIT binary patch literal 5305 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%0A5tt>4`?&3#6;ubih>?!lj z%Z^D|;`;^fkY`<4iw-$<lF8(y_9QVWBYj!6GU?6w&m`T89CRLhU=hYA>(jAj;)v|d zynqGgP=$87a1^In@r&$(vgpH|@K@Y|rV>*LAjsUX4o9QqY4C9!Bv<`%TKI&~$21Fs zw$144qu!Wj#MOcr&$m!|trY8QYilcdxeaxAe0*G(#=nj!^l@@_rX#zAom$vTWp78W zf4e{vs~?VN7<u&aX7K!EV#dMa=Xf>b<R;ldm!HINiSfn{F&JH<g!#t%s?!tlM7!~) zIeQosX&oJ%$K@Uug6FRmopDgFD=ua~+qs0zOY`hEf3od3b$S{tD_a6xu8YR_Y}fHF zof@uRJ|T+seaatSMN_M-nFf~U##UgIV{R@iEXanMJ-Wo|lsKTSuKp@4!3*pq_F#W0 z9J-PglP~T=wdg{xdR}?%I^--lH~jJBd!m(GcT(GDdT^I)ed<f%_s?<%4#$Fmg7RD5 z4Qv-oFXgkXws2ZgWUZ{MaDhjT-2RZQ4go%_BOmqm3-p>#4F%W}&OOU0Q#n!XXA=+* zu-KbqPX~_V#ejohVd0N#)Hctg)ZEg0T$nObpiy*V5aB(2OhiNk>FawTkDOLe4YJOr zQlIANJP(?(c3J&;YaBQar8G{7E#L7rajz#J`ekucXKTa`of?8*NzBEWj{2n2<w7DN z4Ud9yiCRL7^Vio$%C4X-8$=X!UY?R>)AG=+_jo_hlXA_pd(+`fRI)o(i)Xyf6dqLZ za<DclD^~|bzntr`)il)C>kjBFXMMjmcBt(R;rn;xy;bf0D81q8Dw;owZzenPvoQXL zLkZlfUae5RfdE&+q*?5L5hOuOO650}0`~g~wnV&dkPpC1$@w5qL_8R#3{zKzg5?58 zBtoDz1YmgpsXq}x2tfG+D&vX%^77y7WPr6Iq3}3kW;rZptgQl7QH8-&G+;mj(^Q1Q zWT8;`-<AHG`Y}R~5E#7w)^bc5DDVgI^ABAVLPYw30NMu*g8sU|>S}6mHLxG}hfGyN z1)zSI7Z~?b289Fs(4R7u|009J04nT{xiC$D*7-xGrUFnNf5<e{0E*&I864nC{*Y<@ zdz`8UfcB4Zsv4UAT2ECA3Q$Tv*CP=TC=8Og#V$FZC`hJVn4E__9uGKp%ja8t3!ER| d$L}N>V9P)ff=Jr3q^g#h7Dz_M<ftj=e*nPj;RXNz literal 0 HcmV?d00001 diff --git a/doc/avatarSysMLV2/figures/avatarClick.pdf b/doc/avatarSysMLV2/figures/avatarClick.pdf new file mode 100644 index 0000000000000000000000000000000000000000..13069b2b1da4a773ad82e4f1dbfa11d9b8172a16 GIT binary patch literal 68296 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 YQD_8lI^!x2FCQB}?!$+YN>aH02MEv<ga7~l literal 0 HcmV?d00001 diff --git a/doc/avatarSysMLV2/figures/avatarPopup.pdf b/doc/avatarSysMLV2/figures/avatarPopup.pdf new file mode 100644 index 0000000000000000000000000000000000000000..79d1989f92a0b34d65d8df7bbe05c6ef72603a5b GIT binary patch literal 27545 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 literal 0 HcmV?d00001 diff --git a/doc/avatarSysMLV2/figures/tp.pdf b/doc/avatarSysMLV2/figures/tp.pdf new file mode 100755 index 0000000000000000000000000000000000000000..a597c381ab3f4e1c29eb1f0084709a58101ac70f GIT binary patch literal 11970 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 F{|CuQLr4Gs literal 0 HcmV?d00001 diff --git a/src/main/java/avatartranslator/tosysmlv2/Avatar2SysML.java b/src/main/java/avatartranslator/tosysmlv2/Avatar2SysML.java index 3a8c91f953..a2bf18ae63 100644 --- a/src/main/java/avatartranslator/tosysmlv2/Avatar2SysML.java +++ b/src/main/java/avatartranslator/tosysmlv2/Avatar2SysML.java @@ -438,10 +438,10 @@ public class Avatar2SysML { if (out2in) { msg1Buf.append(indentation + "part def " + message1SYSMLname + " :> '#OutMessage', " + message2SYSMLname + " {\n"); msg2Buf.append(indentation + "part def " + message2SYSMLname + " :> '#InMessage' {\n" + - indentation + indentStep + "private part '@channel' : '#Channel' = " + channelSYSMLname + ";\n"); + indentation + indentStep + "part '@channel' redefines '@channel' = " + channelSYSMLname + ";\n"); } else { msg1Buf.append(indentation + "part def " + message1SYSMLname + " :> '#InMessage' {\n" + - indentation + indentStep + "private part '@channel' : '#Channel' = " + channelSYSMLname + ";\n"); + indentation + indentStep + "part '@channel' redefines '@channel' = " + channelSYSMLname + ";\n"); msg2Buf.append(indentation + "part def " + message2SYSMLname + " :> '#OutMessage', " + message1SYSMLname + " {\n"); } indent(1); @@ -1321,7 +1321,7 @@ public class Avatar2SysML { result.append(indentation + "'@index' = " + index + ",\n"); // signal (equivalent to channel in SysML) - result.append(indentation + "'@channel'= " + signalInfo.getName() + ",\n"); + result.append(indentation + "'@channel' = " + signalInfo.getName() + ",\n"); // delay if (max.equals("0")) { // no delay or simple delay @@ -1374,7 +1374,7 @@ public class Avatar2SysML { result.append(indentation + "'@index' = " + index + ",\n"); // setting a timer is sending a message on a dedicated "@set" channel of the timer block - result.append(indentation + "'@channel'= " + timer + ".'@set'" + ",\n"); + result.append(indentation + "'@channel' = " + timer + ".'@set'" + ",\n"); // delay if (max.equals("0")) { // no delay or simple delay @@ -1412,7 +1412,7 @@ public class Avatar2SysML { result.append(indentation + "'@index' = " + index + ",\n"); // resetting a timer is sending a message on a dedicated "@reset" channel of the timer block - result.append(indentation + "'@channel'= " + timer + ".'@reset'"); + result.append(indentation + "'@channel' = " + timer + ".'@reset'"); // delay if (max.equals("0")) { // no delay or simple delay @@ -1449,7 +1449,7 @@ public class Avatar2SysML { result.append(indentation + "'@index' = " + index + ",\n"); // signal (equivalent to channel in SysML) - result.append(indentation + "'@channel'= " + signalName); + result.append(indentation + "'@channel' = " + signalName); // delay if (max.equals("0")) // no delay or simple delay @@ -1477,7 +1477,7 @@ public class Avatar2SysML { result.append(indentation + "'@index' = " + index + ",\n"); // timer expiration is detected by receiving a message on a dedicated "@expire" channel of the timer block - result.append(indentation + "'@channel'= " + chname + ".'@expire'"); + result.append(indentation + "'@channel' = " + chname + ".'@expire'"); // delay if (max.equals("0")) // no delay or simple delay diff --git a/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLLexer.java b/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLLexer.java index 072457c47a..514604f809 100644 --- a/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLLexer.java +++ b/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLLexer.java @@ -1,4 +1,4 @@ -/* The following code was generated by JFlex 1.4.3 on 04/12/2024 12:21 */ +/* The following code was generated by JFlex 1.4.3 on 05/12/2024 12:56 */ /* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille * @@ -47,7 +47,7 @@ import avatartranslator.tosysmlv2.AvatarFromSysMLSyntax.*; /** * This class is a scanner generated by * <a href="http://www.jflex.de/">JFlex</a> 1.4.3 - * on 04/12/2024 12:21 from the specification file + * on 05/12/2024 12:56 from the specification file * <code>__AvatarFromSysMLLexer__.jflex</code> */ public class AvatarFromSysMLLexer implements java_cup.runtime.Scanner { diff --git a/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLParser.java b/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLParser.java index 4432297e8a..062d2900b6 100644 --- a/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLParser.java +++ b/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLParser.java @@ -38,7 +38,7 @@ public class AvatarFromSysMLParser extends java_cup.runtime.lr_parser { /** Production table. */ protected static final short _production_table[][] = unpackFromStrings(new String[] { - "\000\u0142\000\002\006\007\000\002\002\004\000\002\006" + + "\000\u0141\000\002\006\007\000\002\002\004\000\002\006" + "\006\000\002\007\003\000\002\007\004\000\002\010\004" + "\000\002\010\004\000\002\010\003\000\002\010\003\000" + "\002\010\003\000\002\010\003\000\002\010\003\000\002" + @@ -61,83 +61,82 @@ public class AvatarFromSysMLParser extends java_cup.runtime.lr_parser { "\044\014\000\002\045\014\000\002\045\014\000\002\046" + "\003\000\002\046\003\000\002\047\004\000\002\055\010" + "\000\002\051\004\000\002\051\005\000\002\051\005\000" + - "\002\052\012\000\002\052\010\000\002\050\004\000\002" + - "\050\005\000\002\050\005\000\002\056\011\000\002\056" + - "\011\000\002\053\004\000\002\053\004\000\002\054\007" + - "\000\002\057\004\000\002\057\004\000\002\060\007\000" + - "\002\061\004\000\002\061\004\000\002\062\003\000\002" + + "\002\052\011\000\002\050\004\000\002\050\005\000\002" + + "\050\005\000\002\056\011\000\002\056\011\000\002\053" + + "\004\000\002\053\004\000\002\054\007\000\002\057\004" + + "\000\002\057\004\000\002\060\007\000\002\061\004\000" + + "\002\061\004\000\002\062\003\000\002\062\003\000\002" + "\062\003\000\002\062\003\000\002\062\003\000\002\062" + - "\003\000\002\062\003\000\002\062\003\000\002\063\004" + - "\000\002\063\006\000\002\063\007\000\002\065\006\000" + - "\002\064\004\000\002\064\006\000\002\102\007\000\002" + - "\066\003\000\002\066\003\000\002\067\005\000\002\067" + - "\004\000\002\067\006\000\002\100\006\000\002\070\005" + - "\000\002\070\006\000\002\101\006\000\002\071\003\000" + - "\002\071\004\000\002\072\003\000\002\072\006\000\002" + - "\073\007\000\002\073\007\000\002\074\016\000\002\075" + - "\006\000\002\075\005\000\002\075\004\000\002\173\007" + - "\000\002\076\003\000\002\076\004\000\002\077\003\000" + - "\002\077\003\000\002\105\003\000\002\105\003\000\002" + + "\003\000\002\062\003\000\002\063\004\000\002\063\006" + + "\000\002\063\007\000\002\065\006\000\002\064\004\000" + + "\002\064\006\000\002\102\007\000\002\066\003\000\002" + + "\066\003\000\002\067\005\000\002\067\004\000\002\067" + + "\006\000\002\100\006\000\002\070\005\000\002\070\006" + + "\000\002\101\006\000\002\071\003\000\002\071\004\000" + + "\002\072\003\000\002\072\006\000\002\073\007\000\002" + + "\073\007\000\002\074\016\000\002\075\006\000\002\075" + + "\005\000\002\075\004\000\002\173\007\000\002\076\003" + + "\000\002\076\004\000\002\077\003\000\002\077\003\000" + + "\002\105\003\000\002\105\003\000\002\105\003\000\002" + "\105\003\000\002\105\003\000\002\105\003\000\002\105" + "\003\000\002\105\003\000\002\105\003\000\002\105\003" + - "\000\002\105\003\000\002\105\003\000\002\105\003\000" + - "\002\106\004\000\002\106\005\000\002\106\006\000\002" + - "\157\007\000\002\107\004\000\002\107\005\000\002\107" + - "\006\000\002\160\006\000\002\110\004\000\002\110\007" + - "\000\002\161\007\000\002\111\004\000\002\111\005\000" + - "\002\111\006\000\002\162\006\000\002\112\004\000\002" + - "\112\005\000\002\112\006\000\002\163\006\000\002\113" + - "\007\000\002\113\007\000\002\113\006\000\002\164\006" + - "\000\002\114\006\000\002\114\007\000\002\114\007\000" + - "\002\165\006\000\002\115\006\000\002\166\006\000\002" + - "\116\006\000\002\167\006\000\002\117\006\000\002\117" + - "\005\000\002\117\004\000\002\170\006\000\002\120\006" + - "\000\002\120\005\000\002\120\004\000\002\171\006\000" + - "\002\121\006\000\002\121\005\000\002\121\004\000\002" + - "\172\006\000\002\122\014\000\002\122\013\000\002\122" + - "\015\000\002\122\013\000\002\123\013\000\002\123\015" + - "\000\002\124\003\000\002\124\005\000\002\125\014\000" + - "\002\125\016\000\002\125\004\000\002\225\002\000\002" + + "\000\002\105\003\000\002\105\003\000\002\106\004\000" + + "\002\106\005\000\002\106\006\000\002\157\007\000\002" + + "\107\004\000\002\107\005\000\002\107\006\000\002\160" + + "\006\000\002\110\004\000\002\110\007\000\002\161\007" + + "\000\002\111\004\000\002\111\005\000\002\111\006\000" + + "\002\162\006\000\002\112\004\000\002\112\005\000\002" + + "\112\006\000\002\163\006\000\002\113\007\000\002\113" + + "\007\000\002\113\006\000\002\164\006\000\002\114\006" + + "\000\002\114\007\000\002\114\007\000\002\165\006\000" + + "\002\115\006\000\002\166\006\000\002\116\006\000\002" + + "\167\006\000\002\117\006\000\002\117\005\000\002\117" + + "\004\000\002\170\006\000\002\120\006\000\002\120\005" + + "\000\002\120\004\000\002\171\006\000\002\121\006\000" + + "\002\121\005\000\002\121\004\000\002\172\006\000\002" + + "\122\014\000\002\122\013\000\002\122\015\000\002\122" + + "\013\000\002\123\013\000\002\123\015\000\002\124\003" + + "\000\002\124\005\000\002\125\014\000\002\125\016\000" + + "\002\125\004\000\002\225\002\000\002\126\003\000\002" + "\126\003\000\002\126\003\000\002\126\003\000\002\126" + - "\003\000\002\126\003\000\002\126\003\000\002\127\003" + - "\000\002\127\005\000\002\151\004\000\002\132\005\000" + - "\002\152\004\000\002\133\005\000\002\153\004\000\002" + - "\134\005\000\002\154\004\000\002\135\005\000\002\155" + - "\004\000\002\136\005\000\002\156\004\000\002\130\003" + - "\000\002\130\005\000\002\131\003\000\002\131\003\000" + + "\003\000\002\126\003\000\002\127\003\000\002\127\005" + + "\000\002\151\004\000\002\132\005\000\002\152\004\000" + + "\002\133\005\000\002\153\004\000\002\134\005\000\002" + + "\154\004\000\002\135\005\000\002\155\004\000\002\136" + + "\005\000\002\156\004\000\002\130\003\000\002\130\005" + + "\000\002\131\003\000\002\131\003\000\002\131\003\000" + "\002\131\003\000\002\131\003\000\002\131\003\000\002" + - "\131\003\000\002\131\003\000\002\137\005\000\002\140" + - "\005\000\002\224\003\000\002\141\003\000\002\141\003" + - "\000\002\143\010\000\002\144\007\000\002\144\006\000" + - "\002\144\004\000\002\144\007\000\002\174\004\000\002" + - "\145\005\000\002\146\007\000\002\147\007\000\002\150" + - "\007\000\002\205\003\000\002\205\005\000\002\005\003" + - "\000\002\005\005\000\002\003\004\000\002\004\002\000" + - "\002\175\011\000\002\176\023\000\002\177\011\000\002" + - "\200\022\000\002\201\006\000\002\201\007\000\002\201" + - "\010\000\002\201\011\000\002\206\007\000\002\206\013" + - "\000\002\202\005\000\002\202\006\000\002\202\005\000" + - "\002\202\006\000\002\212\006\000\002\213\006\000\002" + - "\210\010\000\002\210\006\000\002\203\007\000\002\203" + - "\005\000\002\204\007\000\002\204\006\000\002\211\004" + - "\000\002\211\004\000\002\214\013\000\002\215\010\000" + - "\002\215\006\000\002\216\006\000\002\216\004\000\002" + - "\217\012\000\002\207\004\000\002\207\005\000\002\220" + - "\003\000\002\220\003\000\002\220\003\000\002\221\010" + - "\000\002\222\010\000\002\222\010\000\002\223\010\000" + - "\002\223\010\000\002\226\003\000\002\226\003\000\002" + - "\226\003\000\002\227\003\000\002\231\003\000\002\231" + - "\003\000\002\232\005\000\002\232\005\000\002\232\005" + - "\000\002\232\005\000\002\232\005\000\002\232\004\000" + - "\002\232\005\000\002\232\005\000\002\232\004\000\002" + - "\232\005\000\002\232\005\000\002\232\005\000\002\232" + + "\131\003\000\002\137\005\000\002\140\005\000\002\224" + + "\003\000\002\141\003\000\002\141\003\000\002\143\010" + + "\000\002\144\007\000\002\144\006\000\002\144\004\000" + + "\002\144\007\000\002\174\004\000\002\145\005\000\002" + + "\146\007\000\002\147\007\000\002\150\007\000\002\205" + + "\003\000\002\205\005\000\002\005\003\000\002\005\005" + + "\000\002\003\004\000\002\004\002\000\002\175\011\000" + + "\002\176\023\000\002\177\011\000\002\200\022\000\002" + + "\201\006\000\002\201\007\000\002\201\010\000\002\201" + + "\011\000\002\206\007\000\002\206\013\000\002\202\005" + + "\000\002\202\006\000\002\202\005\000\002\202\006\000" + + "\002\212\006\000\002\213\006\000\002\210\010\000\002" + + "\210\006\000\002\203\007\000\002\203\005\000\002\204" + + "\007\000\002\204\006\000\002\211\004\000\002\211\004" + + "\000\002\214\013\000\002\215\010\000\002\215\006\000" + + "\002\216\006\000\002\216\004\000\002\217\012\000\002" + + "\207\004\000\002\207\005\000\002\220\003\000\002\220" + + "\003\000\002\220\003\000\002\221\010\000\002\222\010" + + "\000\002\222\010\000\002\223\010\000\002\223\010\000" + + "\002\226\003\000\002\226\003\000\002\226\003\000\002" + + "\227\003\000\002\231\003\000\002\231\003\000\002\232" + "\005\000\002\232\005\000\002\232\005\000\002\232\005" + - "\000\002\232\003\000\002\232\003\000\002\233\003\000" + - "\002\233\005\000\002\233\005\000\002\230\004\000\002" + - "\230\005\000\002\234\004\000\002\241\003\000\002\241" + - "\005\000\002\236\003\000\002\235\003\000\002\235\003" + - "\000\002\235\003\000\002\237\004\000\002\237\005\000" + - "\002\240\004" }); + "\000\002\232\005\000\002\232\004\000\002\232\005\000" + + "\002\232\005\000\002\232\004\000\002\232\005\000\002" + + "\232\005\000\002\232\005\000\002\232\005\000\002\232" + + "\005\000\002\232\005\000\002\232\005\000\002\232\003" + + "\000\002\232\003\000\002\233\003\000\002\233\005\000" + + "\002\233\005\000\002\230\004\000\002\230\005\000\002" + + "\234\004\000\002\241\003\000\002\241\005\000\002\236" + + "\003\000\002\235\003\000\002\235\003\000\002\235\003" + + "\000\002\237\004\000\002\237\005\000\002\240\004" }); /** Access to production table. */ @Override @@ -146,7 +145,7 @@ public class AvatarFromSysMLParser extends java_cup.runtime.lr_parser { /** Parse-action table. */ protected static final short[][] _action_table = unpackFromStrings(new String[] { - "\000\u0322\000\004\261\005\001\002\000\004\002\u0324\001" + + "\000\u031e\000\004\261\005\001\002\000\004\002\u0320\001" + "\002\000\004\142\006\001\002\000\004\014\007\001\002" + "\000\016\015\031\165\020\167\041\263\047\266\014\270" + "\025\001\002\000\016\015\ufff4\165\ufff4\167\ufff4\263\ufff4" + @@ -154,26 +153,26 @@ public class AvatarFromSysMLParser extends java_cup.runtime.lr_parser { "\ufff7\263\ufff7\266\ufff7\270\ufff7\001\002\000\016\015\uffdd" + "\165\uffdd\167\uffdd\263\uffdd\266\uffdd\270\uffdd\001\002\000" + "\016\015\uffde\165\uffde\167\uffde\263\uffde\266\uffde\270\uffde" + - "\001\002\000\004\233\u0323\001\002\000\016\015\uffbe\165" + + "\001\002\000\004\233\u031f\001\002\000\016\015\uffbe\165" + "\uffbe\167\uffbe\263\uffbe\266\uffbe\270\uffbe\001\002\000\014" + - "\026\u0305\027\u0308\030\u02ff\033\u0306\034\u02fe\001\002\000" + + "\026\u0301\027\u0304\030\u02fb\033\u0302\034\u02fa\001\002\000" + "\016\015\uffc4\165\uffc4\167\uffc4\263\uffc4\266\uffc4\270\uffc4" + - "\001\002\000\004\202\u031c\001\002\000\016\015\ufffe\165" + + "\001\002\000\004\202\u0318\001\002\000\016\015\ufffe\165" + "\020\167\041\263\047\266\014\270\025\001\002\000\014" + - "\026\u0305\027\u0308\030\u02ff\033\u0306\034\u02fe\001\002\000" + + "\026\u0301\027\u0304\030\u02fb\033\u0302\034\u02fa\001\002\000" + "\016\015\uffc9\165\uffc9\167\uffc9\263\uffc9\266\uffc9\270\uffc9" + "\001\002\000\016\015\ufff9\165\ufff9\167\ufff9\263\ufff9\266" + - "\ufff9\270\ufff9\001\002\000\004\233\u0317\001\002\000\016" + + "\ufff9\270\ufff9\001\002\000\004\233\u0313\001\002\000\016" + "\015\uffca\165\uffca\167\uffca\263\uffca\266\uffca\270\uffca\001" + "\002\000\016\015\uffc3\165\uffc3\167\uffc3\263\uffc3\266\uffc3" + "\270\uffc3\001\002\000\016\015\uffc8\165\uffc8\167\uffc8\263" + "\uffc8\266\uffc8\270\uffc8\001\002\000\004\002\uffff\001\002" + "\000\016\015\uffbd\165\uffbd\167\uffbd\263\uffbd\266\uffbd\270" + - "\uffbd\001\002\000\014\026\u0305\027\u0308\030\u02ff\033\u0306" + - "\034\u02fe\001\002\000\006\014\u02f2\017\u02f1\001\002\000" + + "\uffbd\001\002\000\014\026\u0301\027\u0304\030\u02fb\033\u0302" + + "\034\u02fa\001\002\000\006\014\u02ee\017\u02ed\001\002\000" + "\016\015\ufff6\165\ufff6\167\ufff6\263\ufff6\266\ufff6\270\ufff6" + "\001\002\000\016\015\ufffa\165\ufffa\167\ufffa\263\ufffa\266" + - "\ufffa\270\ufffa\001\002\000\006\165\310\266\u02e1\001\002" + + "\ufffa\270\ufffa\001\002\000\006\165\310\263\u02e1\001\002" + "\000\004\014\u02da\001\002\000\004\020\u02bf\001\002\000" + "\020\015\164\146\172\165\157\172\163\216\154\263\201" + "\271\155\001\002\000\004\015\152\001\002\000\016\015" + @@ -198,8 +197,8 @@ public class AvatarFromSysMLParser extends java_cup.runtime.lr_parser { "\uffc6\270\uffc6\001\002\000\004\053\101\001\002\000\004" + "\012\102\001\002\000\014\026\uffd9\027\uffd9\030\uffd9\033" + "\uffd9\034\uffd9\001\002\000\004\142\110\001\002\000\020" + - "\015\uffab\146\uffab\165\uffab\172\uffab\216\uffab\263\uffab\271" + - "\uffab\001\002\000\004\142\uffed\001\002\000\004\142\uffee" + + "\015\uffac\146\uffac\165\uffac\172\uffac\216\uffac\263\uffac\271" + + "\uffac\001\002\000\004\142\uffed\001\002\000\004\142\uffee" + "\001\002\000\004\023\113\001\002\000\010\017\uffeb\021" + "\111\023\uffeb\001\002\000\004\142\110\001\002\000\006" + "\017\uffea\023\uffea\001\002\000\004\142\110\001\002\000" + @@ -218,70 +217,70 @@ public class AvatarFromSysMLParser extends java_cup.runtime.lr_parser { "\002\000\010\054\142\055\144\142\143\001\002\000\012" + "\054\uffef\055\uffef\101\uffef\142\uffef\001\002\000\004\014" + "\151\001\002\000\004\016\147\001\002\000\004\016\145" + - "\001\002\000\004\142\146\001\002\000\006\014\uffb2\017" + - "\uffb2\001\002\000\004\055\150\001\002\000\006\014\uffb1" + - "\017\uffb1\001\002\000\006\165\uffbb\266\uffbb\001\002\000" + - "\004\002\001\001\002\000\020\015\uff99\146\uff99\165\uff99" + - "\172\uff99\216\uff99\263\uff99\271\uff99\001\002\000\004\311" + - "\u02bb\001\002\000\004\165\u02b7\001\002\000\020\015\uffa3" + - "\146\uffa3\165\uffa3\172\uffa3\216\uffa3\263\uffa3\271\uffa3\001" + - "\002\000\004\142\u02b4\001\002\000\020\015\uffa4\146\uffa4" + - "\165\uffa4\172\uffa4\216\uffa4\263\uffa4\271\uffa4\001\002\000" + - "\010\017\u02ad\024\u02ae\203\u02ac\001\002\000\020\015\uffa7" + - "\146\uffa7\165\uffa7\172\uffa7\216\uffa7\263\uffa7\271\uffa7\001" + - "\002\000\004\142\u02a9\001\002\000\026\015\uffad\146\uffad" + - "\165\uffad\167\uffad\172\uffad\216\uffad\263\uffad\266\uffad\270" + - "\uffad\271\uffad\001\002\000\004\014\u029e\001\002\000\020" + - "\015\u029c\146\172\165\157\172\163\216\154\263\201\271" + - "\155\001\002\000\020\015\uffa6\146\uffa6\165\uffa6\172\uffa6" + - "\216\uffa6\263\uffa6\271\uffa6\001\002\000\026\015\uffac\146" + - "\uffac\165\uffac\167\uffac\172\uffac\216\uffac\263\uffac\266\uffac" + - "\270\uffac\271\uffac\001\002\000\020\015\uff9a\146\uff9a\165" + - "\uff9a\172\uff9a\216\uff9a\263\uff9a\271\uff9a\001\002\000\004" + - "\142\u0299\001\002\000\020\015\uffa5\146\uffa5\165\uffa5\172" + - "\uffa5\216\uffa5\263\uffa5\271\uffa5\001\002\000\006\014\334" + + "\001\002\000\004\142\146\001\002\000\006\014\uffb3\017" + + "\uffb3\001\002\000\004\055\150\001\002\000\006\014\uffb2" + + "\017\uffb2\001\002\000\006\165\uffbb\263\uffbb\001\002\000" + + "\004\002\001\001\002\000\020\015\uff9a\146\uff9a\165\uff9a" + + "\172\uff9a\216\uff9a\263\uff9a\271\uff9a\001\002\000\004\311" + + "\u02bb\001\002\000\004\165\u02b7\001\002\000\020\015\uffa4" + + "\146\uffa4\165\uffa4\172\uffa4\216\uffa4\263\uffa4\271\uffa4\001" + + "\002\000\004\142\u02b4\001\002\000\020\015\uffa5\146\uffa5" + + "\165\uffa5\172\uffa5\216\uffa5\263\uffa5\271\uffa5\001\002\000" + + "\010\017\u02ae\024\u02ad\203\u02ac\001\002\000\020\015\uffa8" + + "\146\uffa8\165\uffa8\172\uffa8\216\uffa8\263\uffa8\271\uffa8\001" + + "\002\000\004\142\u02a9\001\002\000\026\015\uffae\146\uffae" + + "\165\uffae\167\uffae\172\uffae\216\uffae\263\uffae\266\uffae\270" + + "\uffae\271\uffae\001\002\000\004\014\u029e\001\002\000\020" + + "\015\uffa7\146\uffa7\165\uffa7\172\uffa7\216\uffa7\263\uffa7\271" + + "\uffa7\001\002\000\020\015\u029c\146\172\165\157\172\163" + + "\216\154\263\201\271\155\001\002\000\026\015\uffad\146" + + "\uffad\165\uffad\167\uffad\172\uffad\216\uffad\263\uffad\266\uffad" + + "\270\uffad\271\uffad\001\002\000\020\015\uff9b\146\uff9b\165" + + "\uff9b\172\uff9b\216\uff9b\263\uff9b\271\uff9b\001\002\000\004" + + "\142\u0299\001\002\000\020\015\uffa6\146\uffa6\165\uffa6\172" + + "\uffa6\216\uffa6\263\uffa6\271\uffa6\001\002\000\006\014\334" + "\017\333\001\002\000\006\014\306\017\305\001\002\000" + - "\020\015\uffa8\146\uffa8\165\uffa8\172\uffa8\216\uffa8\263\uffa8" + - "\271\uffa8\001\002\000\006\017\222\024\223\001\002\000" + - "\020\015\uffa2\146\uffa2\165\uffa2\172\uffa2\216\uffa2\263\uffa2" + - "\271\uffa2\001\002\000\004\142\202\001\002\000\004\020" + + "\020\015\uffa9\146\uffa9\165\uffa9\172\uffa9\216\uffa9\263\uffa9" + + "\271\uffa9\001\002\000\006\017\222\024\223\001\002\000" + + "\020\015\uffa3\146\uffa3\165\uffa3\172\uffa3\216\uffa3\263\uffa3" + + "\271\uffa3\001\002\000\004\142\202\001\002\000\004\020" + "\203\001\002\000\012\056\206\057\204\102\205\134\207" + "\001\002\000\004\017\221\001\002\000\004\014\104\001" + "\002\000\004\017\220\001\002\000\004\023\210\001\002" + "\000\004\134\211\001\002\000\004\012\212\001\002\000" + "\004\032\213\001\002\000\004\023\214\001\002\000\004" + "\305\215\001\002\000\004\013\216\001\002\000\004\017" + - "\217\001\002\000\020\015\uff8b\146\uff8b\165\uff8b\172\uff8b" + - "\216\uff8b\263\uff8b\271\uff8b\001\002\000\020\015\uff8c\146" + - "\uff8c\165\uff8c\172\uff8c\216\uff8c\263\uff8c\271\uff8c\001\002" + - "\000\020\015\uff8d\146\uff8d\165\uff8d\172\uff8d\216\uff8d\263" + - "\uff8d\271\uff8d\001\002\000\020\015\uff9d\146\uff9d\165\uff9d" + - "\172\uff9d\216\uff9d\263\uff9d\271\uff9d\001\002\000\016\004" + + "\217\001\002\000\020\015\uff8c\146\uff8c\165\uff8c\172\uff8c" + + "\216\uff8c\263\uff8c\271\uff8c\001\002\000\020\015\uff8d\146" + + "\uff8d\165\uff8d\172\uff8d\216\uff8d\263\uff8d\271\uff8d\001\002" + + "\000\020\015\uff8e\146\uff8e\165\uff8e\172\uff8e\216\uff8e\263" + + "\uff8e\271\uff8e\001\002\000\020\015\uff9e\146\uff9e\165\uff9e" + + "\172\uff9e\216\uff9e\263\uff9e\271\uff9e\001\002\000\016\004" + "\225\005\227\012\231\142\226\252\234\340\224\001\002" + "\000\016\004\225\005\227\012\231\142\226\252\234\340" + - "\224\001\002\000\044\011\ufed0\013\ufed0\016\ufed0\017\ufed0" + - "\025\ufed0\156\ufed0\256\ufed0\337\ufed0\340\ufed0\341\ufed0\342" + - "\ufed0\343\ufed0\344\ufed0\345\ufed0\346\ufed0\347\ufed0\350\ufed0" + - "\001\002\000\050\011\ufece\013\ufece\016\ufece\017\ufece\021" + - "\273\022\274\025\ufece\156\ufece\256\ufece\337\ufece\340\ufece" + - "\341\ufece\342\ufece\343\ufece\344\ufece\345\ufece\346\ufece\347" + - "\ufece\350\ufece\001\002\000\044\011\ufecf\013\ufecf\016\ufecf" + - "\017\ufecf\025\ufecf\156\ufecf\256\ufecf\337\ufecf\340\ufecf\341" + - "\ufecf\342\ufecf\343\ufecf\344\ufecf\345\ufecf\346\ufecf\347\ufecf" + - "\350\ufecf\001\002\000\044\011\ufee1\013\ufee1\016\ufee1\017" + - "\ufee1\025\ufee1\156\ufee1\256\ufee1\337\ufee1\340\ufee1\341\ufee1" + - "\342\ufee1\343\ufee1\344\ufee1\345\ufee1\346\ufee1\347\ufee1\350" + - "\ufee1\001\002\000\016\004\225\005\227\012\231\142\226" + - "\252\234\340\224\001\002\000\036\011\243\017\270\156" + - "\236\256\251\337\244\340\237\341\240\342\246\343\241" + - "\344\242\345\250\346\245\347\252\350\247\001\002\000" + - "\044\011\ufee2\013\ufee2\016\ufee2\017\ufee2\025\ufee2\156\ufee2" + - "\256\ufee2\337\ufee2\340\ufee2\341\ufee2\342\ufee2\343\ufee2\344" + - "\ufee2\345\ufee2\346\ufee2\347\ufee2\350\ufee2\001\002\000\016" + + "\224\001\002\000\044\011\ufed1\013\ufed1\016\ufed1\017\ufed1" + + "\025\ufed1\156\ufed1\256\ufed1\337\ufed1\340\ufed1\341\ufed1\342" + + "\ufed1\343\ufed1\344\ufed1\345\ufed1\346\ufed1\347\ufed1\350\ufed1" + + "\001\002\000\050\011\ufecf\013\ufecf\016\ufecf\017\ufecf\021" + + "\273\022\274\025\ufecf\156\ufecf\256\ufecf\337\ufecf\340\ufecf" + + "\341\ufecf\342\ufecf\343\ufecf\344\ufecf\345\ufecf\346\ufecf\347" + + "\ufecf\350\ufecf\001\002\000\044\011\ufed0\013\ufed0\016\ufed0" + + "\017\ufed0\025\ufed0\156\ufed0\256\ufed0\337\ufed0\340\ufed0\341" + + "\ufed0\342\ufed0\343\ufed0\344\ufed0\345\ufed0\346\ufed0\347\ufed0" + + "\350\ufed0\001\002\000\044\011\ufee2\013\ufee2\016\ufee2\017" + + "\ufee2\025\ufee2\156\ufee2\256\ufee2\337\ufee2\340\ufee2\341\ufee2" + + "\342\ufee2\343\ufee2\344\ufee2\345\ufee2\346\ufee2\347\ufee2\350" + + "\ufee2\001\002\000\016\004\225\005\227\012\231\142\226" + + "\252\234\340\224\001\002\000\036\011\244\017\270\156" + + "\237\256\251\337\243\340\236\341\240\342\245\343\241" + + "\344\242\345\250\346\246\347\252\350\247\001\002\000" + + "\044\011\ufee3\013\ufee3\016\ufee3\017\ufee3\025\ufee3\156\ufee3" + + "\256\ufee3\337\ufee3\340\ufee3\341\ufee3\342\ufee3\343\ufee3\344" + + "\ufee3\345\ufee3\346\ufee3\347\ufee3\350\ufee3\001\002\000\016" + "\004\225\005\227\012\231\142\226\252\234\340\224\001" + - "\002\000\044\011\243\013\ufed8\016\ufed8\017\ufed8\025\ufed8" + - "\156\ufed8\256\ufed8\337\244\340\237\341\240\342\246\343" + - "\241\344\242\345\250\346\245\347\252\350\247\001\002" + + "\002\000\044\011\244\013\ufed9\016\ufed9\017\ufed9\025\ufed9" + + "\156\ufed9\256\ufed9\337\243\340\236\341\240\342\245\343" + + "\241\344\242\345\250\346\246\347\252\350\247\001\002" + "\000\016\004\225\005\227\012\231\142\226\252\234\340" + "\224\001\002\000\016\004\225\005\227\012\231\142\226" + "\252\234\340\224\001\002\000\016\004\225\005\227\012" + @@ -298,444 +297,444 @@ public class AvatarFromSysMLParser extends java_cup.runtime.lr_parser { "\226\252\234\340\224\001\002\000\016\004\225\005\227" + "\012\231\142\226\252\234\340\224\001\002\000\016\004" + "\225\005\227\012\231\142\226\252\234\340\224\001\002" + - "\000\034\011\ufed5\013\ufed5\016\ufed5\017\ufed5\025\ufed5\156" + - "\ufed5\256\ufed5\337\244\340\237\341\240\342\246\343\241" + - "\344\ufed5\001\002\000\044\011\243\013\ufeda\016\ufeda\017" + - "\ufeda\025\ufeda\156\236\256\ufeda\337\244\340\237\341\240" + - "\342\246\343\241\344\242\345\250\346\245\347\252\350" + - "\247\001\002\000\034\011\ufed7\013\ufed7\016\ufed7\017\ufed7" + - "\025\ufed7\156\ufed7\256\ufed7\337\244\340\237\341\240\342" + - "\246\343\241\344\ufed7\001\002\000\034\011\ufed4\013\ufed4" + - "\016\ufed4\017\ufed4\025\ufed4\156\ufed4\256\ufed4\337\244\340" + - "\237\341\240\342\246\343\241\344\ufed4\001\002\000\044" + + "\000\034\011\ufed6\013\ufed6\016\ufed6\017\ufed6\025\ufed6\156" + + "\ufed6\256\ufed6\337\243\340\236\341\240\342\245\343\241" + + "\344\ufed6\001\002\000\044\011\244\013\ufedb\016\ufedb\017" + + "\ufedb\025\ufedb\156\237\256\ufedb\337\243\340\236\341\240" + + "\342\245\343\241\344\242\345\250\346\246\347\252\350" + + "\247\001\002\000\034\011\ufed8\013\ufed8\016\ufed8\017\ufed8" + + "\025\ufed8\156\ufed8\256\ufed8\337\243\340\236\341\240\342" + + "\245\343\241\344\ufed8\001\002\000\034\011\ufed5\013\ufed5" + + "\016\ufed5\017\ufed5\025\ufed5\156\ufed5\256\ufed5\337\243\340" + + "\236\341\240\342\245\343\241\344\ufed5\001\002\000\034" + + "\011\ufed7\013\ufed7\016\ufed7\017\ufed7\025\ufed7\156\ufed7\256" + + "\ufed7\337\243\340\236\341\240\342\245\343\241\344\ufed7" + + "\001\002\000\044\011\ufede\013\ufede\016\ufede\017\ufede\025" + + "\ufede\156\ufede\256\ufede\337\ufede\340\ufede\341\ufede\342\ufede" + + "\343\ufede\344\ufede\345\ufede\346\ufede\347\ufede\350\ufede\001" + + "\002\000\044\011\ufed4\013\ufed4\016\ufed4\017\ufed4\025\ufed4" + + "\156\ufed4\256\ufed4\337\243\340\236\341\240\342\245\343" + + "\241\344\ufed4\345\250\346\246\347\252\350\247\001\002" + + "\000\044\011\ufee1\013\ufee1\016\ufee1\017\ufee1\025\ufee1\156" + + "\ufee1\256\ufee1\337\ufee1\340\ufee1\341\240\342\245\343\241" + + "\344\ufee1\345\ufee1\346\ufee1\347\ufee1\350\ufee1\001\002\000" + + "\044\011\ufed3\013\ufed3\016\ufed3\017\ufed3\025\ufed3\156\ufed3" + + "\256\ufed3\337\243\340\236\341\240\342\245\343\241\344" + + "\ufed3\345\250\346\246\347\252\350\247\001\002\000\044" + "\011\ufedd\013\ufedd\016\ufedd\017\ufedd\025\ufedd\156\ufedd\256" + "\ufedd\337\ufedd\340\ufedd\341\ufedd\342\ufedd\343\ufedd\344\ufedd" + - "\345\ufedd\346\ufedd\347\ufedd\350\ufedd\001\002\000\034\011" + - "\ufed6\013\ufed6\016\ufed6\017\ufed6\025\ufed6\156\ufed6\256\ufed6" + - "\337\244\340\237\341\240\342\246\343\241\344\ufed6\001" + - "\002\000\044\011\ufee0\013\ufee0\016\ufee0\017\ufee0\025\ufee0" + - "\156\ufee0\256\ufee0\337\ufee0\340\ufee0\341\240\342\246\343" + - "\241\344\ufee0\345\ufee0\346\ufee0\347\ufee0\350\ufee0\001\002" + - "\000\044\011\ufed3\013\ufed3\016\ufed3\017\ufed3\025\ufed3\156" + - "\ufed3\256\ufed3\337\244\340\237\341\240\342\246\343\241" + - "\344\ufed3\345\250\346\245\347\252\350\247\001\002\000" + - "\044\011\ufed2\013\ufed2\016\ufed2\017\ufed2\025\ufed2\156\ufed2" + - "\256\ufed2\337\244\340\237\341\240\342\246\343\241\344" + - "\ufed2\345\250\346\245\347\252\350\247\001\002\000\044" + - "\011\ufedc\013\ufedc\016\ufedc\017\ufedc\025\ufedc\156\ufedc\256" + - "\ufedc\337\ufedc\340\ufedc\341\ufedc\342\ufedc\343\ufedc\344\ufedc" + - "\345\ufedc\346\ufedc\347\ufedc\350\ufedc\001\002\000\044\011" + - "\ufede\013\ufede\016\ufede\017\ufede\025\ufede\156\ufede\256\ufede" + - "\337\ufede\340\ufede\341\ufede\342\ufede\343\ufede\344\ufede\345" + - "\ufede\346\ufede\347\ufede\350\ufede\001\002\000\044\011\ufedf" + - "\013\ufedf\016\ufedf\017\ufedf\025\ufedf\156\ufedf\256\ufedf\337" + - "\ufedf\340\ufedf\341\240\342\246\343\241\344\ufedf\345\ufedf" + - "\346\ufedf\347\ufedf\350\ufedf\001\002\000\044\011\243\013" + - "\ufed9\016\ufed9\017\ufed9\025\ufed9\156\ufed9\256\ufed9\337\244" + - "\340\237\341\240\342\246\343\241\344\242\345\250\346" + - "\245\347\252\350\247\001\002\000\020\015\uff9c\146\uff9c" + - "\165\uff9c\172\uff9c\216\uff9c\263\uff9c\271\uff9c\001\002\000" + - "\036\011\243\013\272\156\236\256\251\337\244\340\237" + - "\341\240\342\246\343\241\344\242\345\250\346\245\347" + - "\252\350\247\001\002\000\044\011\ufed1\013\ufed1\016\ufed1" + - "\017\ufed1\025\ufed1\156\ufed1\256\ufed1\337\ufed1\340\ufed1\341" + - "\ufed1\342\ufed1\343\ufed1\344\ufed1\345\ufed1\346\ufed1\347\ufed1" + - "\350\ufed1\001\002\000\004\142\uff0f\001\002\000\004\142" + - "\226\001\002\000\044\011\ufecd\013\ufecd\016\ufecd\017\ufecd" + - "\025\ufecd\156\ufecd\256\ufecd\337\ufecd\340\ufecd\341\ufecd\342" + - "\ufecd\343\ufecd\344\ufecd\345\ufecd\346\ufecd\347\ufecd\350\ufecd" + - "\001\002\000\044\011\ufecc\013\ufecc\016\ufecc\017\ufecc\025" + - "\ufecc\156\ufecc\256\ufecc\337\ufecc\340\ufecc\341\ufecc\342\ufecc" + - "\343\ufecc\344\ufecc\345\ufecc\346\ufecc\347\ufecc\350\ufecc\001" + - "\002\000\004\142\300\001\002\000\050\011\uff12\013\uff12" + - "\016\uff12\017\uff12\022\uff12\024\uff12\025\uff12\156\uff12\256" + - "\uff12\337\uff12\340\uff12\341\uff12\342\uff12\343\uff12\344\uff12" + - "\345\uff12\346\uff12\347\uff12\350\uff12\001\002\000\050\011" + - "\uff10\013\uff10\016\uff10\017\uff10\022\302\024\uff10\025\uff10" + - "\156\uff10\256\uff10\337\uff10\340\uff10\341\uff10\342\uff10\343" + - "\uff10\344\uff10\345\uff10\346\uff10\347\uff10\350\uff10\001\002" + - "\000\004\142\303\001\002\000\050\011\uff11\013\uff11\016" + - "\uff11\017\uff11\022\uff11\024\uff11\025\uff11\156\uff11\256\uff11" + - "\337\uff11\340\uff11\341\uff11\342\uff11\343\uff11\344\uff11\345" + - "\uff11\346\uff11\347\uff11\350\uff11\001\002\000\044\011\ufedb" + - "\013\ufedb\016\ufedb\017\ufedb\025\ufedb\156\ufedb\256\ufedb\337" + - "\ufedb\340\ufedb\341\ufedb\342\ufedb\343\ufedb\344\ufedb\345\ufedb" + - "\346\ufedb\347\ufedb\350\ufedb\001\002\000\020\015\uff97\146" + - "\uff97\165\uff97\172\uff97\216\uff97\263\uff97\271\uff97\001\002" + + "\345\ufedd\346\ufedd\347\ufedd\350\ufedd\001\002\000\044\011" + + "\ufedf\013\ufedf\016\ufedf\017\ufedf\025\ufedf\156\ufedf\256\ufedf" + + "\337\ufedf\340\ufedf\341\ufedf\342\ufedf\343\ufedf\344\ufedf\345" + + "\ufedf\346\ufedf\347\ufedf\350\ufedf\001\002\000\044\011\244" + + "\013\ufeda\016\ufeda\017\ufeda\025\ufeda\156\ufeda\256\ufeda\337" + + "\243\340\236\341\240\342\245\343\241\344\242\345\250" + + "\346\246\347\252\350\247\001\002\000\044\011\ufee0\013" + + "\ufee0\016\ufee0\017\ufee0\025\ufee0\156\ufee0\256\ufee0\337\ufee0" + + "\340\ufee0\341\240\342\245\343\241\344\ufee0\345\ufee0\346" + + "\ufee0\347\ufee0\350\ufee0\001\002\000\020\015\uff9d\146\uff9d" + + "\165\uff9d\172\uff9d\216\uff9d\263\uff9d\271\uff9d\001\002\000" + + "\036\011\244\013\272\156\237\256\251\337\243\340\236" + + "\341\240\342\245\343\241\344\242\345\250\346\246\347" + + "\252\350\247\001\002\000\044\011\ufed2\013\ufed2\016\ufed2" + + "\017\ufed2\025\ufed2\156\ufed2\256\ufed2\337\ufed2\340\ufed2\341" + + "\ufed2\342\ufed2\343\ufed2\344\ufed2\345\ufed2\346\ufed2\347\ufed2" + + "\350\ufed2\001\002\000\004\142\uff10\001\002\000\004\142" + + "\226\001\002\000\044\011\ufece\013\ufece\016\ufece\017\ufece" + + "\025\ufece\156\ufece\256\ufece\337\ufece\340\ufece\341\ufece\342" + + "\ufece\343\ufece\344\ufece\345\ufece\346\ufece\347\ufece\350\ufece" + + "\001\002\000\044\011\ufecd\013\ufecd\016\ufecd\017\ufecd\025" + + "\ufecd\156\ufecd\256\ufecd\337\ufecd\340\ufecd\341\ufecd\342\ufecd" + + "\343\ufecd\344\ufecd\345\ufecd\346\ufecd\347\ufecd\350\ufecd\001" + + "\002\000\004\142\300\001\002\000\050\011\uff13\013\uff13" + + "\016\uff13\017\uff13\022\uff13\024\uff13\025\uff13\156\uff13\256" + + "\uff13\337\uff13\340\uff13\341\uff13\342\uff13\343\uff13\344\uff13" + + "\345\uff13\346\uff13\347\uff13\350\uff13\001\002\000\050\011" + + "\uff11\013\uff11\016\uff11\017\uff11\022\302\024\uff11\025\uff11" + + "\156\uff11\256\uff11\337\uff11\340\uff11\341\uff11\342\uff11\343" + + "\uff11\344\uff11\345\uff11\346\uff11\347\uff11\350\uff11\001\002" + + "\000\004\142\303\001\002\000\050\011\uff12\013\uff12\016" + + "\uff12\017\uff12\022\uff12\024\uff12\025\uff12\156\uff12\256\uff12" + + "\337\uff12\340\uff12\341\uff12\342\uff12\343\uff12\344\uff12\345" + + "\uff12\346\uff12\347\uff12\350\uff12\001\002\000\044\011\ufedc" + + "\013\ufedc\016\ufedc\017\ufedc\025\ufedc\156\ufedc\256\ufedc\337" + + "\ufedc\340\ufedc\341\ufedc\342\ufedc\343\ufedc\344\ufedc\345\ufedc" + + "\346\ufedc\347\ufedc\350\ufedc\001\002\000\020\015\uff98\146" + + "\uff98\165\uff98\172\uff98\216\uff98\263\uff98\271\uff98\001\002" + "\000\006\015\311\165\310\001\002\000\004\015\332\001" + - "\002\000\004\142\324\001\002\000\020\015\uff98\146\uff98" + - "\165\uff98\172\uff98\216\uff98\263\uff98\271\uff98\001\002\000" + - "\010\015\uffe6\165\310\266\uffe6\001\002\000\010\017\uffe2" + + "\002\000\004\142\324\001\002\000\020\015\uff99\146\uff99" + + "\165\uff99\172\uff99\216\uff99\263\uff99\271\uff99\001\002\000" + + "\010\015\uffe6\165\310\263\uffe6\001\002\000\010\017\uffe2" + "\024\315\203\314\001\002\000\004\024\321\001\002\000" + "\016\004\225\005\227\012\231\142\226\252\234\340\224" + "\001\002\000\004\017\317\001\002\000\012\015\uffe4\165" + - "\uffe4\266\uffe4\302\uffe4\001\002\000\036\011\243\017\uffe1" + - "\156\236\256\251\337\244\340\237\341\240\342\246\343" + - "\241\344\242\345\250\346\245\347\252\350\247\001\002" + + "\uffe4\263\uffe4\302\uffe4\001\002\000\036\011\244\017\uffe1" + + "\156\237\256\251\337\243\340\236\341\240\342\245\343" + + "\241\344\242\345\250\346\246\347\252\350\247\001\002" + "\000\016\004\225\005\227\012\231\142\226\252\234\340" + - "\224\001\002\000\036\011\243\017\uffe0\156\236\256\251" + - "\337\244\340\237\341\240\342\246\343\241\344\242\345" + - "\250\346\245\347\252\350\247\001\002\000\006\015\uffe5" + - "\266\uffe5\001\002\000\004\020\325\001\002\000\010\075" + + "\224\001\002\000\036\011\244\017\uffe0\156\237\256\251" + + "\337\243\340\236\341\240\342\245\343\241\344\242\345" + + "\250\346\246\347\252\350\247\001\002\000\006\015\uffe5" + + "\263\uffe5\001\002\000\004\020\325\001\002\000\010\075" + "\331\076\330\142\327\001\002\000\010\017\uffe3\024\uffe3" + "\203\uffe3\001\002\000\010\017\ufff1\024\ufff1\203\ufff1\001" + "\002\000\010\017\ufff3\024\ufff3\203\ufff3\001\002\000\010" + - "\017\ufff2\024\ufff2\203\ufff2\001\002\000\020\015\uff96\146" + - "\uff96\165\uff96\172\uff96\216\uff96\263\uff96\271\uff96\001\002" + - "\000\020\015\uff88\146\uff88\165\uff88\172\uff88\216\uff88\263" + - "\uff88\271\uff88\001\002\000\014\015\354\213\364\217\335" + - "\311\367\320\375\001\002\000\004\146\u0295\001\002\000" + - "\004\014\u0276\001\002\000\014\015\uff7d\213\uff7d\217\uff7d" + - "\311\uff7d\320\uff7d\001\002\000\014\015\uff78\213\uff78\217" + - "\uff78\311\uff78\320\uff78\001\002\000\006\014\u0272\017\u0271" + - "\001\002\000\014\015\uff80\213\uff80\217\uff80\311\uff80\320" + - "\uff80\001\002\000\004\014\u0251\001\002\000\006\014\u024d" + - "\017\u024c\001\002\000\014\015\uff84\213\uff84\217\uff84\311" + - "\uff84\320\uff84\001\002\000\006\207\u01de\315\u01e0\001\002" + - "\000\014\015\uff79\213\uff79\217\uff79\311\uff79\320\uff79\001" + - "\002\000\014\015\uff81\213\uff81\217\uff81\311\uff81\320\uff81" + - "\001\002\000\014\015\uff82\213\uff82\217\uff82\311\uff82\320" + - "\uff82\001\002\000\014\015\uff7a\213\uff7a\217\uff7a\311\uff7a" + - "\320\uff7a\001\002\000\006\014\u01c3\017\u01c2\001\002\000" + - "\020\015\uff89\146\uff89\165\uff89\172\uff89\216\uff89\263\uff89" + - "\271\uff89\001\002\000\014\015\uff77\213\uff77\217\uff77\311" + - "\uff77\320\uff77\001\002\000\006\014\u01be\017\u01bd\001\002" + + "\017\ufff2\024\ufff2\203\ufff2\001\002\000\020\015\uff97\146" + + "\uff97\165\uff97\172\uff97\216\uff97\263\uff97\271\uff97\001\002" + + "\000\020\015\uff89\146\uff89\165\uff89\172\uff89\216\uff89\263" + + "\uff89\271\uff89\001\002\000\014\015\355\213\364\217\335" + + "\311\367\320\376\001\002\000\004\146\u0295\001\002\000" + + "\004\014\u0276\001\002\000\014\015\uff7e\213\uff7e\217\uff7e" + + "\311\uff7e\320\uff7e\001\002\000\014\015\uff79\213\uff79\217" + + "\uff79\311\uff79\320\uff79\001\002\000\006\014\u0272\017\u0271" + + "\001\002\000\014\015\uff81\213\uff81\217\uff81\311\uff81\320" + + "\uff81\001\002\000\004\014\u0251\001\002\000\006\014\u024d" + + "\017\u024c\001\002\000\014\015\uff85\213\uff85\217\uff85\311" + + "\uff85\320\uff85\001\002\000\006\207\u01de\315\u01e0\001\002" + + "\000\014\015\uff7a\213\uff7a\217\uff7a\311\uff7a\320\uff7a\001" + + "\002\000\014\015\uff82\213\uff82\217\uff82\311\uff82\320\uff82" + + "\001\002\000\014\015\uff83\213\uff83\217\uff83\311\uff83\320" + + "\uff83\001\002\000\014\015\uff7b\213\uff7b\217\uff7b\311\uff7b" + + "\320\uff7b\001\002\000\006\014\u01c3\017\u01c2\001\002\000" + + "\006\014\u01be\017\u01bd\001\002\000\020\015\uff8a\146\uff8a" + + "\165\uff8a\172\uff8a\216\uff8a\263\uff8a\271\uff8a\001\002\000" + + "\014\015\uff78\213\uff78\217\uff78\311\uff78\320\uff78\001\002" + "\000\004\015\u01bc\001\002\000\006\014\u01b8\017\u01b7\001" + - "\002\000\006\017\u01b2\023\u01b3\001\002\000\004\014\u01af" + - "\001\002\000\014\015\uff86\213\364\217\335\311\367\320" + - "\375\001\002\000\004\146\u01aa\001\002\000\014\015\uff7b" + - "\213\uff7b\217\uff7b\311\uff7b\320\uff7b\001\002\000\014\015" + - "\uff7e\213\uff7e\217\uff7e\311\uff7e\320\uff7e\001\002\000\004" + - "\142\u019e\001\002\000\014\015\uff83\213\uff83\217\uff83\311" + - "\uff83\320\uff83\001\002\000\014\015\uff7f\213\uff7f\217\uff7f" + - "\311\uff7f\320\uff7f\001\002\000\006\014\u019a\017\u0199\001" + + "\002\000\004\014\u01b4\001\002\000\006\017\u01af\023\u01b0" + + "\001\002\000\014\015\uff87\213\364\217\335\311\367\320" + + "\376\001\002\000\004\146\u01aa\001\002\000\014\015\uff7c" + + "\213\uff7c\217\uff7c\311\uff7c\320\uff7c\001\002\000\014\015" + + "\uff7f\213\uff7f\217\uff7f\311\uff7f\320\uff7f\001\002\000\004" + + "\142\u019e\001\002\000\014\015\uff84\213\uff84\217\uff84\311" + + "\uff84\320\uff84\001\002\000\014\015\uff80\213\uff80\217\uff80" + + "\311\uff80\320\uff80\001\002\000\006\014\u019a\017\u0199\001" + "\002\000\004\014\u0196\001\002\000\006\014\u0108\017\u0107" + - "\001\002\000\004\020\377\001\002\000\014\015\uff7c\213" + - "\uff7c\217\uff7c\311\uff7c\320\uff7c\001\002\000\004\116\u0100" + + "\001\002\000\014\015\uff7d\213\uff7d\217\uff7d\311\uff7d\320" + + "\uff7d\001\002\000\004\020\377\001\002\000\004\116\u0100" + "\001\002\000\004\222\u0101\001\002\000\004\142\u0102\001" + - "\002\000\010\207\uff06\231\u0103\315\uff06\001\002\000\004" + + "\002\000\010\207\uff07\231\u0103\315\uff07\001\002\000\004" + "\040\u0104\001\002\000\004\011\u0105\001\002\000\004\004" + - "\u0106\001\002\000\006\207\uff05\315\uff05\001\002\000\014" + - "\015\uff4d\213\uff4d\217\uff4d\311\uff4d\320\uff4d\001\002\000" + + "\u0106\001\002\000\006\207\uff06\315\uff06\001\002\000\014" + + "\015\uff4e\213\uff4e\217\uff4e\311\uff4e\320\uff4e\001\002\000" + "\006\015\u010a\172\u010b\001\002\000\004\015\u0195\001\002" + - "\000\014\015\uff4e\213\uff4e\217\uff4e\311\uff4e\320\uff4e\001" + + "\000\014\015\uff4f\213\uff4f\217\uff4f\311\uff4f\320\uff4f\001" + "\002\000\004\036\u010c\001\002\000\004\272\u010d\001\002" + "\000\004\036\u010e\001\002\000\004\023\u010f\001\002\000" + - "\004\014\u0110\001\002\000\024\012\u0111\066\uff40\067\uff40" + - "\070\uff40\071\uff40\126\uff40\127\uff40\130\uff40\231\uff40\001" + - "\002\000\022\066\uff40\067\uff40\070\uff40\071\uff40\126\uff40" + - "\127\uff40\130\uff40\231\uff40\001\002\000\004\015\u018f\001" + + "\004\014\u0110\001\002\000\024\012\u0111\066\uff41\067\uff41" + + "\070\uff41\071\uff41\126\uff41\127\uff41\130\uff41\231\uff41\001" + + "\002\000\022\066\uff41\067\uff41\070\uff41\071\uff41\126\uff41" + + "\127\uff41\130\uff41\231\uff41\001\002\000\004\015\u018f\001" + "\002\000\022\066\u0125\067\u0119\070\u0118\071\u011c\126\u0124" + - "\127\u0120\130\u0116\231\u011a\001\002\000\012\013\uff3d\015" + - "\uff3d\016\uff3d\211\uff3d\001\002\000\012\040\u0130\041\u0134" + + "\127\u0122\130\u0116\231\u011a\001\002\000\012\013\uff3e\015" + + "\uff3e\016\uff3e\211\uff3e\001\002\000\012\040\u0131\041\u0134" + "\042\u012b\043\u0132\001\002\000\004\012\u018c\001\002\000" + - "\012\040\u0130\041\u0134\042\u012b\043\u0132\001\002\000\004" + - "\012\u0189\001\002\000\012\013\uff39\015\uff39\016\uff39\211" + - "\uff39\001\002\000\016\004\225\005\227\012\231\142\226" + - "\252\234\340\224\001\002\000\012\040\u0130\041\u0134\042" + + "\012\040\u0131\041\u0134\042\u012b\043\u0132\001\002\000\004" + + "\012\u0189\001\002\000\012\013\uff3a\015\uff3a\016\uff3a\211" + + "\uff3a\001\002\000\016\004\225\005\227\012\231\142\226" + + "\252\234\340\224\001\002\000\012\040\u0131\041\u0134\042" + "\u012b\043\u0132\001\002\000\004\012\u017a\001\002\000\012" + - "\013\uff3c\015\uff3c\016\uff3c\211\uff3c\001\002\000\012\040" + - "\u0130\041\u0134\042\u012b\043\u0132\001\002\000\012\040\u0130" + - "\041\u0134\042\u012b\043\u0132\001\002\000\004\012\u0175\001" + - "\002\000\010\013\uff41\015\uff41\016\uff41\001\002\000\012" + - "\013\uff3b\015\uff3b\016\uff3b\211\uff3b\001\002\000\012\013" + - "\uff3f\015\uff3f\016\uff3f\211\uff3f\001\002\000\004\012\u0174" + - "\001\002\000\004\012\u0173\001\002\000\012\013\uff3a\015" + - "\uff3a\016\uff3a\211\uff3a\001\002\000\012\013\uff3e\015\uff3e" + - "\016\uff3e\211\uff3e\001\002\000\012\040\u0130\041\u0134\042" + - "\u012b\043\u0132\001\002\000\006\013\uff29\016\uff29\001\002" + - "\000\006\013\uff26\016\uff26\001\002\000\004\023\u0172\001" + - "\002\000\006\013\uff2a\016\uff2a\001\002\000\004\013\u0171" + - "\001\002\000\006\013\uff2c\016\u016f\001\002\000\006\131" + - "\u014a\142\u014b\001\002\000\004\023\u0148\001\002\000\006" + - "\013\uff27\016\uff27\001\002\000\004\023\u0142\001\002\000" + - "\006\013\uff24\016\uff24\001\002\000\004\023\uff21\001\002" + - "\000\006\013\uff25\016\uff25\001\002\000\004\023\u0138\001" + - "\002\000\006\013\uff28\016\uff28\001\002\000\020\004\225" + + "\013\uff3d\015\uff3d\016\uff3d\211\uff3d\001\002\000\012\040" + + "\u0131\041\u0134\042\u012b\043\u0132\001\002\000\012\040\u0131" + + "\041\u0134\042\u012b\043\u0132\001\002\000\010\013\uff42\015" + + "\uff42\016\uff42\001\002\000\012\013\uff3c\015\uff3c\016\uff3c" + + "\211\uff3c\001\002\000\004\012\u0175\001\002\000\012\013" + + "\uff40\015\uff40\016\uff40\211\uff40\001\002\000\004\012\u0174" + + "\001\002\000\004\012\u0173\001\002\000\012\013\uff3b\015" + + "\uff3b\016\uff3b\211\uff3b\001\002\000\012\013\uff3f\015\uff3f" + + "\016\uff3f\211\uff3f\001\002\000\012\040\u0131\041\u0134\042" + + "\u012b\043\u0132\001\002\000\006\013\uff2a\016\uff2a\001\002" + + "\000\006\013\uff27\016\uff27\001\002\000\004\023\u0172\001" + + "\002\000\006\013\uff2b\016\uff2b\001\002\000\004\013\u0171" + + "\001\002\000\006\013\uff2d\016\u016f\001\002\000\006\131" + + "\u014a\142\u014b\001\002\000\006\013\uff28\016\uff28\001\002" + + "\000\004\023\u0148\001\002\000\004\023\u0142\001\002\000" + + "\006\013\uff25\016\uff25\001\002\000\004\023\uff22\001\002" + + "\000\006\013\uff26\016\uff26\001\002\000\004\023\u0138\001" + + "\002\000\006\013\uff29\016\uff29\001\002\000\020\004\225" + "\005\227\012\231\074\u013a\142\226\252\234\340\224\001" + - "\002\000\006\013\uff22\016\uff22\001\002\000\004\012\u013d" + - "\001\002\000\006\013\uff1f\016\uff1f\001\002\000\040\011" + - "\243\013\uff20\016\uff20\156\236\256\251\337\244\340\237" + - "\341\240\342\246\343\241\344\242\345\250\346\245\347" + + "\002\000\006\013\uff23\016\uff23\001\002\000\004\012\u013d" + + "\001\002\000\006\013\uff20\016\uff20\001\002\000\040\011" + + "\244\013\uff21\016\uff21\156\237\256\251\337\243\340\236" + + "\341\240\342\245\343\241\344\242\345\250\346\246\347" + "\252\350\247\001\002\000\016\004\225\005\227\012\231" + - "\142\226\252\234\340\224\001\002\000\036\011\243\016" + - "\u013f\156\236\256\251\337\244\340\237\341\240\342\246" + - "\343\241\344\242\345\250\346\245\347\252\350\247\001" + + "\142\226\252\234\340\224\001\002\000\036\011\244\016" + + "\u013f\156\237\256\251\337\243\340\236\341\240\342\245" + + "\343\241\344\242\345\250\346\246\347\252\350\247\001" + "\002\000\016\004\225\005\227\012\231\142\226\252\234" + - "\340\224\001\002\000\036\011\243\013\u0141\156\236\256" + - "\251\337\244\340\237\341\240\342\246\343\241\344\242" + - "\345\250\346\245\347\252\350\247\001\002\000\006\013" + - "\uff1e\016\uff1e\001\002\000\004\142\u0143\001\002\000\010" + - "\013\uff18\016\uff18\021\u0144\001\002\000\010\135\u0145\136" + - "\u0147\137\u0146\001\002\000\006\013\uff17\016\uff17\001\002" + - "\000\006\013\uff15\016\uff15\001\002\000\006\013\uff16\016" + - "\uff16\001\002\000\004\004\u0149\001\002\000\006\013\uff23" + - "\016\uff23\001\002\000\004\012\u016b\001\002\000\010\012" + - "\u014c\013\uff1b\016\uff1b\001\002\000\020\004\225\005\227" + + "\340\224\001\002\000\036\011\244\013\u0141\156\237\256" + + "\251\337\243\340\236\341\240\342\245\343\241\344\242" + + "\345\250\346\246\347\252\350\247\001\002\000\006\013" + + "\uff1f\016\uff1f\001\002\000\004\142\u0143\001\002\000\010" + + "\013\uff19\016\uff19\021\u0144\001\002\000\010\135\u0145\136" + + "\u0147\137\u0146\001\002\000\006\013\uff18\016\uff18\001\002" + + "\000\006\013\uff16\016\uff16\001\002\000\006\013\uff17\016" + + "\uff17\001\002\000\004\004\u0149\001\002\000\006\013\uff24" + + "\016\uff24\001\002\000\004\012\u016b\001\002\000\010\012" + + "\u014c\013\uff1c\016\uff1c\001\002\000\020\004\225\005\227" + "\012\231\013\u0153\142\u014f\252\234\340\224\001\002\000" + - "\006\013\uff14\016\uff14\001\002\000\020\004\225\005\227" + - "\012\231\013\u0160\142\u015d\252\234\340\224\001\002\000" + - "\050\011\ufece\012\u0159\013\ufece\016\ufece\017\ufece\021\273" + - "\022\274\156\ufece\256\ufece\337\ufece\340\ufece\341\ufece\342" + - "\ufece\343\ufece\344\ufece\345\ufece\346\ufece\347\ufece\350\ufece" + - "\001\002\000\042\011\ufee1\013\ufee4\016\ufee4\017\ufee4\156" + - "\ufee1\256\ufee1\337\ufee1\340\ufee1\341\ufee1\342\ufee1\343\ufee1" + - "\344\ufee1\345\ufee1\346\ufee1\347\ufee1\350\ufee1\001\002\000" + - "\006\013\u0157\016\u0156\001\002\000\034\011\243\156\236" + - "\256\251\337\244\340\237\341\240\342\246\343\241\344" + - "\242\345\250\346\245\347\252\350\247\001\002\000\006" + - "\013\uff1c\016\uff1c\001\002\000\042\011\ufee2\013\ufee5\016" + - "\ufee5\017\ufee5\156\ufee2\256\ufee2\337\ufee2\340\ufee2\341\ufee2" + - "\342\ufee2\343\ufee2\344\ufee2\345\ufee2\346\ufee2\347\ufee2\350" + - "\ufee2\001\002\000\010\013\ufee6\016\ufee6\017\ufee6\001\002" + + "\020\004\225\005\227\012\231\013\u0160\142\u015c\252\234" + + "\340\224\001\002\000\006\013\uff15\016\uff15\001\002\000" + + "\050\011\ufecf\012\u0159\013\ufecf\016\ufecf\017\ufecf\021\273" + + "\022\274\156\ufecf\256\ufecf\337\ufecf\340\ufecf\341\ufecf\342" + + "\ufecf\343\ufecf\344\ufecf\345\ufecf\346\ufecf\347\ufecf\350\ufecf" + + "\001\002\000\042\011\ufee2\013\ufee5\016\ufee5\017\ufee5\156" + + "\ufee2\256\ufee2\337\ufee2\340\ufee2\341\ufee2\342\ufee2\343\ufee2" + + "\344\ufee2\345\ufee2\346\ufee2\347\ufee2\350\ufee2\001\002\000" + + "\006\013\u0157\016\u0156\001\002\000\034\011\244\156\237" + + "\256\251\337\243\340\236\341\240\342\245\343\241\344" + + "\242\345\250\346\246\347\252\350\247\001\002\000\006" + + "\013\uff1d\016\uff1d\001\002\000\042\011\ufee3\013\ufee6\016" + + "\ufee6\017\ufee6\156\ufee3\256\ufee3\337\ufee3\340\ufee3\341\ufee3" + + "\342\ufee3\343\ufee3\344\ufee3\345\ufee3\346\ufee3\347\ufee3\350" + + "\ufee3\001\002\000\010\013\ufee7\016\ufee7\017\ufee7\001\002" + "\000\016\004\225\005\227\012\231\142\u014f\252\234\340" + - "\224\001\002\000\006\013\uff1d\016\uff1d\001\002\000\006" + - "\013\uff13\016\uff13\001\002\000\020\004\ufec9\005\ufec9\012" + - "\ufec9\013\ufec9\142\ufec9\252\ufec9\340\ufec9\001\002\000\016" + - "\004\225\005\227\012\231\142\u015d\252\234\340\224\001" + - "\002\000\004\013\u0168\001\002\000\006\013\ufec8\016\u0166" + - "\001\002\000\046\011\ufece\012\u0164\013\ufece\016\ufece\021" + - "\273\022\274\156\ufece\256\ufece\337\ufece\340\ufece\341\ufece" + - "\342\ufece\343\ufece\344\ufece\345\ufece\346\ufece\347\ufece\350" + - "\ufece\001\002\000\040\011\ufee1\013\ufec4\016\ufec4\156\ufee1" + - "\256\ufee1\337\ufee1\340\ufee1\341\ufee1\342\ufee1\343\ufee1\344" + - "\ufee1\345\ufee1\346\ufee1\347\ufee1\350\ufee1\001\002\000\004" + - "\013\u0163\001\002\000\010\013\ufecb\016\ufecb\017\ufecb\001" + - "\002\000\040\011\ufee2\013\ufec5\016\ufec5\156\ufee2\256\ufee2" + - "\337\ufee2\340\ufee2\341\ufee2\342\ufee2\343\ufee2\344\ufee2\345" + - "\ufee2\346\ufee2\347\ufee2\350\ufee2\001\002\000\006\013\ufec3" + - "\016\ufec3\001\002\000\010\013\ufeca\016\ufeca\017\ufeca\001" + - "\002\000\020\004\ufec9\005\ufec9\012\ufec9\013\ufec0\142\ufec9" + - "\252\ufec9\340\ufec9\001\002\000\016\004\225\005\227\012" + - "\231\142\u015d\252\234\340\224\001\002\000\016\004\ufec6" + - "\005\ufec6\012\ufec6\142\ufec6\252\ufec6\340\ufec6\001\002\000" + - "\004\013\ufec7\001\002\000\006\013\ufec2\016\ufec2\001\002" + - "\000\004\013\u016a\001\002\000\006\013\ufec1\016\ufec1\001" + + "\224\001\002\000\006\013\uff1e\016\uff1e\001\002\000\006" + + "\013\uff14\016\uff14\001\002\000\020\004\ufeca\005\ufeca\012" + + "\ufeca\013\ufeca\142\ufeca\252\ufeca\340\ufeca\001\002\000\016" + + "\004\225\005\227\012\231\142\u015c\252\234\340\224\001" + + "\002\000\004\013\u0168\001\002\000\046\011\ufecf\012\u0167" + + "\013\ufecf\016\ufecf\021\273\022\274\156\ufecf\256\ufecf\337" + + "\ufecf\340\ufecf\341\ufecf\342\ufecf\343\ufecf\344\ufecf\345\ufecf" + + "\346\ufecf\347\ufecf\350\ufecf\001\002\000\006\013\ufec9\016" + + "\u0164\001\002\000\040\011\ufee2\013\ufec5\016\ufec5\156\ufee2" + + "\256\ufee2\337\ufee2\340\ufee2\341\ufee2\342\ufee2\343\ufee2\344" + + "\ufee2\345\ufee2\346\ufee2\347\ufee2\350\ufee2\001\002\000\004" + + "\013\u0163\001\002\000\010\013\ufecc\016\ufecc\017\ufecc\001" + + "\002\000\040\011\ufee3\013\ufec6\016\ufec6\156\ufee3\256\ufee3" + + "\337\ufee3\340\ufee3\341\ufee3\342\ufee3\343\ufee3\344\ufee3\345" + + "\ufee3\346\ufee3\347\ufee3\350\ufee3\001\002\000\006\013\ufec4" + + "\016\ufec4\001\002\000\010\013\ufecb\016\ufecb\017\ufecb\001" + + "\002\000\016\004\ufec7\005\ufec7\012\ufec7\142\ufec7\252\ufec7" + + "\340\ufec7\001\002\000\016\004\225\005\227\012\231\142" + + "\u015c\252\234\340\224\001\002\000\004\013\ufec8\001\002" + + "\000\020\004\ufeca\005\ufeca\012\ufeca\013\ufec1\142\ufeca\252" + + "\ufeca\340\ufeca\001\002\000\006\013\ufec3\016\ufec3\001\002" + + "\000\004\013\u016a\001\002\000\006\013\ufec2\016\ufec2\001" + "\002\000\016\004\225\005\227\012\231\142\226\252\234" + - "\340\224\001\002\000\036\011\243\013\ufee3\156\236\256" + - "\251\337\244\340\237\341\240\342\246\343\241\344\242" + - "\345\250\346\245\347\252\350\247\001\002\000\004\013" + - "\u016e\001\002\000\006\013\uff1a\016\uff1a\001\002\000\012" + - "\040\u0130\041\u0134\042\u012b\043\u0132\001\002\000\004\013" + - "\uff2b\001\002\000\012\013\uff30\015\uff30\016\uff30\211\uff30" + - "\001\002\000\006\131\uff19\142\uff19\001\002\000\012\040" + - "\uff37\041\uff37\042\uff37\043\uff37\001\002\000\012\040\uff31" + - "\041\uff31\042\uff31\043\uff31\001\002\000\012\040\uff2f\041" + - "\uff2f\042\uff2f\043\uff2f\001\002\000\004\013\u0177\001\002" + - "\000\012\013\uff2e\015\uff2e\016\uff2e\211\uff2e\001\002\000" + - "\004\013\u0179\001\002\000\012\013\uff34\015\uff34\016\uff34" + - "\211\uff34\001\002\000\012\040\uff33\041\uff33\042\uff33\043" + - "\uff33\001\002\000\004\013\u017c\001\002\000\012\013\uff38" + - "\015\uff38\016\uff38\211\uff38\001\002\000\036\011\243\025" + - "\u017e\156\236\256\251\337\244\340\237\341\240\342\246" + - "\343\241\344\242\345\250\346\245\347\252\350\247\001" + + "\340\224\001\002\000\036\011\244\013\ufee4\156\237\256" + + "\251\337\243\340\236\341\240\342\245\343\241\344\242" + + "\345\250\346\246\347\252\350\247\001\002\000\004\013" + + "\u016e\001\002\000\006\013\uff1b\016\uff1b\001\002\000\012" + + "\040\u0131\041\u0134\042\u012b\043\u0132\001\002\000\004\013" + + "\uff2c\001\002\000\012\013\uff31\015\uff31\016\uff31\211\uff31" + + "\001\002\000\006\131\uff1a\142\uff1a\001\002\000\012\040" + + "\uff38\041\uff38\042\uff38\043\uff38\001\002\000\012\040\uff32" + + "\041\uff32\042\uff32\043\uff32\001\002\000\012\040\uff30\041" + + "\uff30\042\uff30\043\uff30\001\002\000\004\013\u0177\001\002" + + "\000\012\013\uff2f\015\uff2f\016\uff2f\211\uff2f\001\002\000" + + "\004\013\u0179\001\002\000\012\013\uff35\015\uff35\016\uff35" + + "\211\uff35\001\002\000\012\040\uff34\041\uff34\042\uff34\043" + + "\uff34\001\002\000\004\013\u017c\001\002\000\012\013\uff39" + + "\015\uff39\016\uff39\211\uff39\001\002\000\036\011\244\025" + + "\u017e\156\237\256\251\337\243\340\236\341\240\342\245" + + "\343\241\344\242\345\250\346\246\347\252\350\247\001" + "\002\000\020\066\u0125\067\u0119\070\u0118\071\u011c\126\u0124" + - "\127\u0120\130\u0116\001\002\000\004\211\u0180\001\002\000" + + "\127\u0122\130\u0116\001\002\000\004\211\u0180\001\002\000" + "\004\065\u0181\001\002\000\004\012\u0182\001\002\000\006" + - "\004\u0184\040\u0183\001\002\000\004\023\u0186\001\002\000" + - "\004\013\u0185\001\002\000\010\013\uff43\015\uff43\016\uff43" + - "\001\002\000\004\004\u0187\001\002\000\004\013\u0188\001" + - "\002\000\010\013\uff42\015\uff42\016\uff42\001\002\000\012" + - "\040\uff35\041\uff35\042\uff35\043\uff35\001\002\000\004\013" + - "\u018b\001\002\000\012\013\uff36\015\uff36\016\uff36\211\uff36" + - "\001\002\000\012\040\uff2d\041\uff2d\042\uff2d\043\uff2d\001" + - "\002\000\004\013\u018e\001\002\000\012\013\uff32\015\uff32" + - "\016\uff32\211\uff32\001\002\000\004\017\u0190\001\002\000" + - "\006\015\uff47\146\uff47\001\002\000\004\013\u0192\001\002" + + "\004\u0183\040\u0184\001\002\000\004\013\u0188\001\002\000" + + "\004\023\u0185\001\002\000\004\004\u0186\001\002\000\004" + + "\013\u0187\001\002\000\010\013\uff43\015\uff43\016\uff43\001" + + "\002\000\010\013\uff44\015\uff44\016\uff44\001\002\000\012" + + "\040\uff36\041\uff36\042\uff36\043\uff36\001\002\000\004\013" + + "\u018b\001\002\000\012\013\uff37\015\uff37\016\uff37\211\uff37" + + "\001\002\000\012\040\uff2e\041\uff2e\042\uff2e\043\uff2e\001" + + "\002\000\004\013\u018e\001\002\000\012\013\uff33\015\uff33" + + "\016\uff33\211\uff33\001\002\000\004\017\u0190\001\002\000" + + "\006\015\uff48\146\uff48\001\002\000\004\013\u0192\001\002" + "\000\004\015\u0193\001\002\000\004\017\u0194\001\002\000" + - "\006\015\uff46\146\uff46\001\002\000\014\015\uff4f\213\uff4f" + - "\217\uff4f\311\uff4f\320\uff4f\001\002\000\004\172\u010b\001" + - "\002\000\004\015\u0198\001\002\000\014\015\uff5b\213\uff5b" + - "\217\uff5b\311\uff5b\320\uff5b\001\002\000\014\015\uff51\213" + - "\uff51\217\uff51\311\uff51\320\uff51\001\002\000\006\015\u019c" + + "\006\015\uff47\146\uff47\001\002\000\014\015\uff50\213\uff50" + + "\217\uff50\311\uff50\320\uff50\001\002\000\004\172\u010b\001" + + "\002\000\004\015\u0198\001\002\000\014\015\uff5c\213\uff5c" + + "\217\uff5c\311\uff5c\320\uff5c\001\002\000\014\015\uff52\213" + + "\uff52\217\uff52\311\uff52\320\uff52\001\002\000\006\015\u019c" + "\172\u010b\001\002\000\004\015\u019d\001\002\000\014\015" + - "\uff52\213\uff52\217\uff52\311\uff52\320\uff52\001\002\000\014" + - "\015\uff53\213\uff53\217\uff53\311\uff53\320\uff53\001\002\000" + - "\004\020\u019f\001\002\000\026\105\u01a2\110\u01a4\111\u01a1" + - "\112\u01a3\113\u01a7\114\u01a9\115\u01a5\123\u01a6\124\u01a0\125" + - "\u01a8\001\002\000\006\014\uff50\017\uff50\001\002\000\006" + - "\014\uff64\017\uff64\001\002\000\006\014\uff6f\017\uff6f\001" + - "\002\000\004\014\uff60\001\002\000\006\014\uff68\017\uff68" + - "\001\002\000\004\014\uff58\001\002\000\006\014\uff54\017" + - "\uff54\001\002\000\004\014\uff5c\001\002\000\006\014\uff4c" + - "\017\uff4c\001\002\000\004\014\uff5a\001\002\000\004\142" + + "\uff53\213\uff53\217\uff53\311\uff53\320\uff53\001\002\000\014" + + "\015\uff54\213\uff54\217\uff54\311\uff54\320\uff54\001\002\000" + + "\004\020\u019f\001\002\000\026\105\u01a2\110\u01a3\111\u01a1" + + "\112\u01a4\113\u01a7\114\u01a9\115\u01a5\123\u01a6\124\u01a0\125" + + "\u01a8\001\002\000\006\014\uff51\017\uff51\001\002\000\006" + + "\014\uff65\017\uff65\001\002\000\006\014\uff70\017\uff70\001" + + "\002\000\006\014\uff69\017\uff69\001\002\000\004\014\uff61" + + "\001\002\000\004\014\uff59\001\002\000\006\014\uff55\017" + + "\uff55\001\002\000\004\014\uff5d\001\002\000\006\014\uff4d" + + "\017\uff4d\001\002\000\004\014\uff5b\001\002\000\004\142" + "\u01ab\001\002\000\004\020\u01ac\001\002\000\004\107\u01ad" + - "\001\002\000\006\014\uff73\017\uff73\001\002\000\004\015" + - "\uff85\001\002\000\004\172\u010b\001\002\000\004\015\u01b1" + - "\001\002\000\014\015\uff59\213\uff59\217\uff59\311\uff59\320" + - "\uff59\001\002\000\014\015\uff6e\213\uff6e\217\uff6e\311\uff6e" + - "\320\uff6e\001\002\000\004\106\u01b4\001\002\000\004\014" + - "\u01b5\001\002\000\004\015\u01b6\001\002\000\014\015\uff6d" + - "\213\uff6d\217\uff6d\311\uff6d\320\uff6d\001\002\000\014\015" + - "\uff6b\213\uff6b\217\uff6b\311\uff6b\320\uff6b\001\002\000\006" + + "\001\002\000\006\014\uff74\017\uff74\001\002\000\004\015" + + "\uff86\001\002\000\014\015\uff6f\213\uff6f\217\uff6f\311\uff6f" + + "\320\uff6f\001\002\000\004\106\u01b1\001\002\000\004\014" + + "\u01b2\001\002\000\004\015\u01b3\001\002\000\014\015\uff6e" + + "\213\uff6e\217\uff6e\311\uff6e\320\uff6e\001\002\000\004\172" + + "\u010b\001\002\000\004\015\u01b6\001\002\000\014\015\uff5a" + + "\213\uff5a\217\uff5a\311\uff5a\320\uff5a\001\002\000\014\015" + + "\uff6c\213\uff6c\217\uff6c\311\uff6c\320\uff6c\001\002\000\006" + "\015\u01ba\172\u010b\001\002\000\004\015\u01bb\001\002\000" + - "\014\015\uff6a\213\uff6a\217\uff6a\311\uff6a\320\uff6a\001\002" + - "\000\014\015\uff69\213\uff69\217\uff69\311\uff69\320\uff69\001" + - "\002\000\020\015\uff8a\146\uff8a\165\uff8a\172\uff8a\216\uff8a" + - "\263\uff8a\271\uff8a\001\002\000\014\015\uff55\213\uff55\217" + - "\uff55\311\uff55\320\uff55\001\002\000\006\015\u01c0\172\u010b" + - "\001\002\000\004\015\u01c1\001\002\000\014\015\uff56\213" + - "\uff56\217\uff56\311\uff56\320\uff56\001\002\000\014\015\uff57" + - "\213\uff57\217\uff57\311\uff57\320\uff57\001\002\000\014\015" + - "\uff72\213\uff72\217\uff72\311\uff72\320\uff72\001\002\000\006" + - "\015\u01c4\172\u01c6\001\002\000\014\015\uff71\213\uff71\217" + - "\uff71\311\uff71\320\uff71\001\002\000\004\015\u01dd\001\002" + + "\014\015\uff6b\213\uff6b\217\uff6b\311\uff6b\320\uff6b\001\002" + + "\000\014\015\uff6a\213\uff6a\217\uff6a\311\uff6a\320\uff6a\001" + + "\002\000\020\015\uff8b\146\uff8b\165\uff8b\172\uff8b\216\uff8b" + + "\263\uff8b\271\uff8b\001\002\000\014\015\uff56\213\uff56\217" + + "\uff56\311\uff56\320\uff56\001\002\000\006\015\u01c0\172\u010b" + + "\001\002\000\004\015\u01c1\001\002\000\014\015\uff57\213" + + "\uff57\217\uff57\311\uff57\320\uff57\001\002\000\014\015\uff58" + + "\213\uff58\217\uff58\311\uff58\320\uff58\001\002\000\014\015" + + "\uff73\213\uff73\217\uff73\311\uff73\320\uff73\001\002\000\006" + + "\015\u01c4\172\u01c6\001\002\000\014\015\uff72\213\uff72\217" + + "\uff72\311\uff72\320\uff72\001\002\000\004\015\u01dd\001\002" + "\000\004\035\u01c7\001\002\000\004\272\u01c8\001\002\000" + "\004\035\u01c9\001\002\000\004\023\u01ca\001\002\000\004" + - "\014\u01cb\001\002\000\026\012\u01cc\066\uff40\067\uff40\070" + - "\uff40\071\uff40\126\uff40\127\uff40\130\uff40\231\uff40\336\u01ce" + - "\001\002\000\024\013\u01d5\066\uff40\067\uff40\070\uff40\071" + - "\uff40\126\uff40\127\uff40\130\uff40\231\uff40\001\002\000\004" + + "\014\u01cb\001\002\000\026\012\u01cc\066\uff41\067\uff41\070" + + "\uff41\071\uff41\126\uff41\127\uff41\130\uff41\231\uff41\336\u01ce" + + "\001\002\000\024\013\u01d5\066\uff41\067\uff41\070\uff41\071" + + "\uff41\126\uff41\127\uff41\130\uff41\231\uff41\001\002\000\004" + "\015\u01d1\001\002\000\004\015\u01cf\001\002\000\004\017" + - "\u01d0\001\002\000\004\015\uff4a\001\002\000\004\017\u01d2" + - "\001\002\000\004\015\uff48\001\002\000\004\013\u01da\001" + - "\002\000\006\013\uff45\016\u01d8\001\002\000\004\015\u01d6" + - "\001\002\000\004\017\u01d7\001\002\000\004\015\uff4b\001" + - "\002\000\022\066\uff40\067\uff40\070\uff40\071\uff40\126\uff40" + - "\127\uff40\130\uff40\231\uff40\001\002\000\004\013\uff44\001" + + "\u01d0\001\002\000\004\015\uff4b\001\002\000\004\017\u01d2" + + "\001\002\000\004\015\uff49\001\002\000\004\013\u01da\001" + + "\002\000\006\013\uff46\016\u01d8\001\002\000\004\015\u01d6" + + "\001\002\000\004\017\u01d7\001\002\000\004\015\uff4c\001" + + "\002\000\022\066\uff41\067\uff41\070\uff41\071\uff41\126\uff41" + + "\127\uff41\130\uff41\231\uff41\001\002\000\004\013\uff45\001" + "\002\000\004\015\u01db\001\002\000\004\017\u01dc\001\002" + - "\000\004\015\uff49\001\002\000\014\015\uff70\213\uff70\217" + - "\uff70\311\uff70\320\uff70\001\002\000\004\146\u0248\001\002" + + "\000\004\015\uff4a\001\002\000\014\015\uff71\213\uff71\217" + + "\uff71\311\uff71\320\uff71\001\002\000\004\146\u0248\001\002" + "\000\004\014\u0224\001\002\000\004\142\u021f\001\002\000" + "\004\014\u0205\001\002\000\004\315\u01e3\001\002\000\004" + "\142\u01e4\001\002\000\006\014\u01e6\017\u01e5\001\002\000" + - "\014\015\uff09\213\uff09\217\uff09\311\uff09\320\uff09\001\002" + + "\014\015\uff0a\213\uff0a\217\uff0a\311\uff0a\320\uff0a\001\002" + "\000\004\165\u01e8\001\002\000\004\017\u0203\001\002\000" + "\012\007\u01f1\140\u01ee\141\u01ef\142\u01f0\001\002\000\004" + "\015\u01ed\001\002\000\004\017\ufeed\001\002\000\004\017" + - "\ufeec\001\002\000\004\017\ufeee\001\002\000\014\015\uff07" + - "\213\uff07\217\uff07\311\uff07\320\uff07\001\002\000\004\020" + + "\ufeee\001\002\000\004\017\ufeef\001\002\000\014\015\uff08" + + "\213\uff08\217\uff08\311\uff08\320\uff08\001\002\000\004\020" + "\u01ff\001\002\000\004\020\u01fa\001\002\000\004\020\u01f6" + "\001\002\000\004\020\u01f2\001\002\000\004\077\u01f3\001" + "\002\000\004\023\u01f4\001\002\000\004\006\u01f5\001\002" + - "\000\004\017\ufee8\001\002\000\004\077\u01f7\001\002\000" + + "\000\004\017\ufee9\001\002\000\004\077\u01f7\001\002\000" + "\004\023\u01f8\001\002\000\004\006\u01f9\001\002\000\004" + - "\017\ufee7\001\002\000\004\100\u01fb\001\002\000\004\023" + + "\017\ufee8\001\002\000\004\100\u01fb\001\002\000\004\023" + "\u01fc\001\002\000\006\004\u01fe\010\u01fd\001\002\000\004" + - "\017\ufeea\001\002\000\004\017\ufee9\001\002\000\004\077" + + "\017\ufeeb\001\002\000\004\017\ufeea\001\002\000\004\077" + "\u0200\001\002\000\004\023\u0201\001\002\000\004\006\u0202" + - "\001\002\000\004\017\ufeeb\001\002\000\006\015\ufef0\165" + - "\u01e8\001\002\000\004\015\ufeef\001\002\000\006\015\u0207" + + "\001\002\000\004\017\ufeec\001\002\000\006\015\ufef1\165" + + "\u01e8\001\002\000\004\015\ufef0\001\002\000\006\015\u0207" + "\222\u0208\001\002\000\004\015\u021e\001\002\000\004\315" + - "\uff04\001\002\000\004\046\u0209\001\002\000\004\017\u020a" + + "\uff05\001\002\000\004\046\u0209\001\002\000\004\017\u020a" + "\001\002\000\004\315\u020b\001\002\000\010\047\u020d\146" + - "\u020f\161\u0210\001\002\000\004\015\ufefd\001\002\000\004" + + "\u020f\161\u0210\001\002\000\004\015\ufefe\001\002\000\004" + "\017\u021d\001\002\000\004\315\u0219\001\002\000\004\023" + - "\u0215\001\002\000\004\142\uff0f\001\002\000\004\024\u0212" + + "\u0215\001\002\000\004\142\uff10\001\002\000\004\024\u0212" + "\001\002\000\016\004\225\005\227\012\231\142\u014f\252" + "\234\340\224\001\002\000\004\017\u0214\001\002\000\004" + - "\315\ufefa\001\002\000\004\142\u0216\001\002\000\004\012" + - "\u0159\001\002\000\004\017\u0218\001\002\000\004\315\ufef9" + + "\315\ufefb\001\002\000\004\142\u0216\001\002\000\004\012" + + "\u0159\001\002\000\004\017\u0218\001\002\000\004\315\ufefa" + "\001\002\000\010\047\u021b\146\u020f\161\u0210\001\002\000" + - "\004\015\ufefb\001\002\000\004\017\u021c\001\002\000\004" + - "\015\ufefc\001\002\000\004\015\ufefe\001\002\000\004\315" + - "\uff03\001\002\000\006\014\u0221\017\u0220\001\002\000\014" + - "\015\uff0a\213\uff0a\217\uff0a\311\uff0a\320\uff0a\001\002\000" + + "\004\015\ufefc\001\002\000\004\017\u021c\001\002\000\004" + + "\015\ufefd\001\002\000\004\015\ufeff\001\002\000\004\315" + + "\uff04\001\002\000\006\014\u0221\017\u0220\001\002\000\014" + + "\015\uff0b\213\uff0b\217\uff0b\311\uff0b\320\uff0b\001\002\000" + "\004\165\u01e8\001\002\000\004\015\u0223\001\002\000\014" + - "\015\uff08\213\uff08\217\uff08\311\uff08\320\uff08\001\002\000" + - "\010\015\u0228\222\u022a\242\u0225\001\002\000\004\072\u0240" + - "\001\002\000\004\222\u022a\001\002\000\004\242\u0225\001" + - "\002\000\004\315\uff02\001\002\000\004\015\u023d\001\002" + - "\000\004\046\u022b\001\002\000\004\017\u022c\001\002\000" + - "\004\315\u022d\001\002\000\006\047\u023b\161\u0233\001\002" + - "\000\004\315\u0230\001\002\000\006\015\ufef4\242\ufef4\001" + - "\002\000\006\047\u0232\161\u0233\001\002\000\006\015\ufef2" + - "\242\ufef2\001\002\000\004\017\u023a\001\002\000\004\142" + - "\uff0f\001\002\000\004\024\u0235\001\002\000\004\072\u0236" + - "\001\002\000\004\021\u0237\001\002\000\004\142\u0238\001" + - "\002\000\004\017\u0239\001\002\000\004\315\ufef1\001\002" + - "\000\006\015\ufef3\242\ufef3\001\002\000\004\017\u023c\001" + - "\002\000\006\015\ufef5\242\ufef5\001\002\000\004\315\uff01" + - "\001\002\000\004\015\ufef7\001\002\000\004\015\ufef8\001" + - "\002\000\004\020\u0241\001\002\000\004\142\u0242\001\002" + - "\000\004\023\u0243\001\002\000\004\042\u0244\001\002\000" + - "\004\157\u0245\001\002\000\004\142\u0246\001\002\000\004" + - "\017\u0247\001\002\000\006\015\ufef6\222\ufef6\001\002\000" + + "\015\uff09\213\uff09\217\uff09\311\uff09\320\uff09\001\002\000" + + "\010\015\u0228\222\u0229\242\u0226\001\002\000\004\222\u0229" + + "\001\002\000\004\072\u023f\001\002\000\004\242\u0226\001" + + "\002\000\004\315\uff03\001\002\000\004\046\u022c\001\002" + + "\000\004\015\u022b\001\002\000\004\315\uff02\001\002\000" + + "\004\017\u022d\001\002\000\004\315\u022e\001\002\000\006" + + "\047\u023c\161\u0234\001\002\000\004\315\u0231\001\002\000" + + "\006\015\ufef5\242\ufef5\001\002\000\006\047\u0233\161\u0234" + + "\001\002\000\006\015\ufef3\242\ufef3\001\002\000\004\017" + + "\u023b\001\002\000\004\142\uff10\001\002\000\004\024\u0236" + + "\001\002\000\004\072\u0237\001\002\000\004\021\u0238\001" + + "\002\000\004\142\u0239\001\002\000\004\017\u023a\001\002" + + "\000\004\315\ufef2\001\002\000\006\015\ufef4\242\ufef4\001" + + "\002\000\004\017\u023d\001\002\000\006\015\ufef6\242\ufef6" + + "\001\002\000\004\015\ufef8\001\002\000\004\020\u0240\001" + + "\002\000\004\142\u0241\001\002\000\004\023\u0242\001\002" + + "\000\004\042\u0243\001\002\000\004\157\u0244\001\002\000" + + "\004\142\u0245\001\002\000\004\017\u0246\001\002\000\006" + + "\015\ufef7\222\ufef7\001\002\000\004\015\ufef9\001\002\000" + "\004\020\u0249\001\002\000\006\120\u024a\121\u024b\001\002" + - "\000\004\014\ufeff\001\002\000\004\014\uff00\001\002\000" + - "\014\015\uff67\213\uff67\217\uff67\311\uff67\320\uff67\001\002" + + "\000\004\014\uff00\001\002\000\004\014\uff01\001\002\000" + + "\014\015\uff68\213\uff68\217\uff68\311\uff68\320\uff68\001\002" + "\000\006\015\u024f\172\u010b\001\002\000\004\015\u0250\001" + - "\002\000\014\015\uff66\213\uff66\217\uff66\311\uff66\320\uff66" + - "\001\002\000\014\015\uff65\213\uff65\217\uff65\311\uff65\320" + - "\uff65\001\002\000\006\146\u0252\172\u010b\001\002\000\004" + + "\002\000\014\015\uff67\213\uff67\217\uff67\311\uff67\320\uff67" + + "\001\002\000\014\015\uff66\213\uff66\217\uff66\311\uff66\320" + + "\uff66\001\002\000\006\146\u0252\172\u010b\001\002\000\004" + "\037\u025a\001\002\000\004\146\u0252\001\002\000\006\015" + "\u0256\172\u010b\001\002\000\004\015\u0257\001\002\000\014" + - "\015\uff61\213\uff61\217\uff61\311\uff61\320\uff61\001\002\000" + - "\014\015\uff63\213\uff63\217\uff63\311\uff63\320\uff63\001\002" + - "\000\004\015\u0259\001\002\000\014\015\uff62\213\uff62\217" + - "\uff62\311\uff62\320\uff62\001\002\000\004\272\u025b\001\002" + + "\015\uff62\213\uff62\217\uff62\311\uff62\320\uff62\001\002\000" + + "\014\015\uff64\213\uff64\217\uff64\311\uff64\320\uff64\001\002" + + "\000\004\015\u0259\001\002\000\014\015\uff63\213\uff63\217" + + "\uff63\311\uff63\320\uff63\001\002\000\004\272\u025b\001\002" + "\000\004\037\u025c\001\002\000\004\014\u025d\001\002\000" + "\004\222\u025f\001\002\000\004\015\u0270\001\002\000\004" + "\046\u0260\001\002\000\004\017\u0261\001\002\000\004\315" + - "\u0262\001\002\000\004\161\u0263\001\002\000\004\142\uff0f" + + "\u0262\001\002\000\004\161\u0263\001\002\000\004\142\uff10" + "\001\002\000\004\024\u0265\001\002\000\004\074\u0266\001" + "\002\000\004\012\u0267\001\002\000\016\004\225\005\227" + "\012\231\142\226\252\234\340\224\001\002\000\036\011" + - "\243\016\u0269\156\236\256\251\337\244\340\237\341\240" + - "\342\246\343\241\344\242\345\250\346\245\347\252\350" + + "\244\016\u0269\156\237\256\251\337\243\340\236\341\240" + + "\342\245\343\241\344\242\345\250\346\246\347\252\350" + "\247\001\002\000\016\004\225\005\227\012\231\142\226" + - "\252\234\340\224\001\002\000\036\011\243\013\u026b\156" + - "\236\256\251\337\244\340\237\341\240\342\246\343\241" + - "\344\242\345\250\346\245\347\252\350\247\001\002\000" + + "\252\234\340\224\001\002\000\036\011\244\013\u026b\156" + + "\237\256\251\337\243\340\236\341\240\342\245\343\241" + + "\344\242\345\250\346\246\347\252\350\247\001\002\000" + "\004\017\u026c\001\002\000\004\315\u026d\001\002\000\004" + "\047\u026e\001\002\000\004\017\u026f\001\002\000\004\015" + - "\uff0d\001\002\000\006\015\uff0e\172\uff0e\001\002\000\014" + - "\015\uff76\213\uff76\217\uff76\311\uff76\320\uff76\001\002\000" + + "\uff0e\001\002\000\006\015\uff0f\172\uff0f\001\002\000\014" + + "\015\uff77\213\uff77\217\uff77\311\uff77\320\uff77\001\002\000" + "\006\015\u0274\172\u010b\001\002\000\004\015\u0275\001\002" + - "\000\014\015\uff75\213\uff75\217\uff75\311\uff75\320\uff75\001" + - "\002\000\014\015\uff74\213\uff74\217\uff74\311\uff74\320\uff74" + - "\001\002\000\006\146\u0277\172\u010b\001\002\000\004\037" + - "\u027f\001\002\000\006\015\u027d\172\u010b\001\002\000\004" + - "\146\u0277\001\002\000\004\015\u027b\001\002\000\014\015" + - "\uff5e\213\uff5e\217\uff5e\311\uff5e\320\uff5e\001\002\000\004" + - "\015\u027e\001\002\000\014\015\uff5f\213\uff5f\217\uff5f\311" + - "\uff5f\320\uff5f\001\002\000\014\015\uff5d\213\uff5d\217\uff5d" + - "\311\uff5d\320\uff5d\001\002\000\004\272\u0280\001\002\000" + - "\004\037\u0281\001\002\000\004\014\u0282\001\002\000\004" + - "\222\u0284\001\002\000\004\015\u0294\001\002\000\004\046" + - "\u0285\001\002\000\004\017\u0286\001\002\000\004\315\u0287" + - "\001\002\000\004\161\u0288\001\002\000\004\142\uff0f\001" + - "\002\000\004\024\u028a\001\002\000\004\142\u028b\001\002" + - "\000\004\021\u028c\001\002\000\004\045\u028d\001\002\000" + - "\004\012\u028e\001\002\000\004\013\u028f\001\002\000\004" + - "\017\u0290\001\002\000\004\315\u0291\001\002\000\004\047" + - "\u0292\001\002\000\004\017\u0293\001\002\000\004\015\uff0b" + - "\001\002\000\006\015\uff0c\172\uff0c\001\002\000\004\142" + + "\000\014\015\uff76\213\uff76\217\uff76\311\uff76\320\uff76\001" + + "\002\000\014\015\uff75\213\uff75\217\uff75\311\uff75\320\uff75" + + "\001\002\000\006\146\u0278\172\u010b\001\002\000\006\015" + + "\u0293\172\u010b\001\002\000\004\037\u027c\001\002\000\004" + + "\146\u0278\001\002\000\004\015\u027b\001\002\000\014\015" + + "\uff5f\213\uff5f\217\uff5f\311\uff5f\320\uff5f\001\002\000\004" + + "\272\u027d\001\002\000\004\037\u027e\001\002\000\004\014" + + "\u027f\001\002\000\004\222\u0281\001\002\000\004\015\u0291" + + "\001\002\000\004\046\u0282\001\002\000\004\017\u0283\001" + + "\002\000\004\315\u0284\001\002\000\004\161\u0285\001\002" + + "\000\004\142\uff10\001\002\000\004\024\u0287\001\002\000" + + "\004\142\u0288\001\002\000\004\021\u0289\001\002\000\004" + + "\045\u028a\001\002\000\004\012\u028b\001\002\000\004\013" + + "\u028c\001\002\000\004\017\u028d\001\002\000\004\315\u028e" + + "\001\002\000\004\047\u028f\001\002\000\004\017\u0290\001" + + "\002\000\004\015\uff0c\001\002\000\006\015\uff0d\172\uff0d" + + "\001\002\000\004\015\u0294\001\002\000\014\015\uff60\213" + + "\uff60\217\uff60\311\uff60\320\uff60\001\002\000\014\015\uff5e" + + "\213\uff5e\217\uff5e\311\uff5e\320\uff5e\001\002\000\004\142" + "\u0296\001\002\000\004\020\u0297\001\002\000\004\106\u0298" + - "\001\002\000\006\017\uff6c\023\uff6c\001\002\000\004\020" + - "\u029a\001\002\000\004\103\u029b\001\002\000\006\014\uff95" + - "\017\uff95\001\002\000\026\015\uffaa\146\uffaa\165\uffaa\167" + - "\uffaa\172\uffaa\216\uffaa\263\uffaa\266\uffaa\270\uffaa\271\uffaa" + - "\001\002\000\026\015\uffa9\146\uffa9\165\uffa9\167\uffa9\172" + - "\uffa9\216\uffa9\263\uffa9\266\uffa9\270\uffa9\271\uffa9\001\002" + - "\000\010\015\u02a2\165\310\302\u02a0\001\002\000\004\015" + - "\u02a8\001\002\000\004\020\u02a5\001\002\000\010\015\uff91" + - "\165\310\302\u02a0\001\002\000\020\015\uff94\146\uff94\165" + - "\uff94\172\uff94\216\uff94\263\uff94\271\uff94\001\002\000\010" + - "\015\uff8f\165\uff8f\302\uff8f\001\002\000\004\015\uff90\001" + + "\001\002\000\006\017\uff6d\023\uff6d\001\002\000\004\020" + + "\u029a\001\002\000\004\103\u029b\001\002\000\006\014\uff96" + + "\017\uff96\001\002\000\026\015\uffab\146\uffab\165\uffab\167" + + "\uffab\172\uffab\216\uffab\263\uffab\266\uffab\270\uffab\271\uffab" + + "\001\002\000\026\015\uffaa\146\uffaa\165\uffaa\167\uffaa\172" + + "\uffaa\216\uffaa\263\uffaa\266\uffaa\270\uffaa\271\uffaa\001\002" + + "\000\010\015\u02a1\165\310\302\u02a0\001\002\000\004\015" + + "\u02a8\001\002\000\004\020\u02a5\001\002\000\020\015\uff95" + + "\146\uff95\165\uff95\172\uff95\216\uff95\263\uff95\271\uff95\001" + + "\002\000\010\015\uff92\165\310\302\u02a0\001\002\000\010" + + "\015\uff90\165\uff90\302\uff90\001\002\000\004\015\uff91\001" + "\002\000\010\075\331\076\330\142\327\001\002\000\004" + - "\017\u02a7\001\002\000\010\015\uff8e\165\uff8e\302\uff8e\001" + - "\002\000\020\015\uff93\146\uff93\165\uff93\172\uff93\216\uff93" + - "\263\uff93\271\uff93\001\002\000\004\020\u02aa\001\002\000" + - "\004\104\u02ab\001\002\000\004\014\uff92\001\002\000\004" + - "\024\u02b1\001\002\000\020\015\uffa1\146\uffa1\165\uffa1\172" + - "\uffa1\216\uffa1\263\uffa1\271\uffa1\001\002\000\016\004\225" + - "\005\227\012\231\142\226\252\234\340\224\001\002\000" + - "\036\011\243\017\u02b0\156\236\256\251\337\244\340\237" + - "\341\240\342\246\343\241\344\242\345\250\346\245\347" + - "\252\350\247\001\002\000\020\015\uffa0\146\uffa0\165\uffa0" + - "\172\uffa0\216\uffa0\263\uffa0\271\uffa0\001\002\000\016\004" + + "\017\u02a7\001\002\000\010\015\uff8f\165\uff8f\302\uff8f\001" + + "\002\000\020\015\uff94\146\uff94\165\uff94\172\uff94\216\uff94" + + "\263\uff94\271\uff94\001\002\000\004\020\u02aa\001\002\000" + + "\004\104\u02ab\001\002\000\004\014\uff93\001\002\000\004" + + "\024\u02b1\001\002\000\016\004\225\005\227\012\231\142" + + "\226\252\234\340\224\001\002\000\020\015\uffa2\146\uffa2" + + "\165\uffa2\172\uffa2\216\uffa2\263\uffa2\271\uffa2\001\002\000" + + "\036\011\244\017\u02b0\156\237\256\251\337\243\340\236" + + "\341\240\342\245\343\241\344\242\345\250\346\246\347" + + "\252\350\247\001\002\000\020\015\uffa1\146\uffa1\165\uffa1" + + "\172\uffa1\216\uffa1\263\uffa1\271\uffa1\001\002\000\016\004" + "\225\005\227\012\231\142\226\252\234\340\224\001\002" + - "\000\036\011\243\017\u02b3\156\236\256\251\337\244\340" + - "\237\341\240\342\246\343\241\344\242\345\250\346\245" + - "\347\252\350\247\001\002\000\020\015\uff9f\146\uff9f\165" + - "\uff9f\172\uff9f\216\uff9f\263\uff9f\271\uff9f\001\002\000\004" + + "\000\036\011\244\017\u02b3\156\237\256\251\337\243\340" + + "\236\341\240\342\245\343\241\344\242\345\250\346\246" + + "\347\252\350\247\001\002\000\020\015\uffa0\146\uffa0\165" + + "\uffa0\172\uffa0\216\uffa0\263\uffa0\271\uffa0\001\002\000\004" + "\020\u02b5\001\002\000\010\075\331\076\330\142\327\001" + - "\002\000\010\017\uff9e\024\uff9e\203\uff9e\001\002\000\004" + + "\002\000\010\017\uff9f\024\uff9f\203\uff9f\001\002\000\004" + "\142\u02b8\001\002\000\004\020\u02b9\001\002\000\010\075" + - "\331\076\330\142\327\001\002\000\006\017\uff9b\024\uff9b" + + "\331\076\330\142\327\001\002\000\006\017\uff9c\024\uff9c" + "\001\002\000\004\122\u02bc\001\002\000\004\020\u02bd\001" + - "\002\000\004\117\u02be\001\002\000\006\014\uff87\017\uff87" + + "\002\000\004\117\u02be\001\002\000\006\014\uff88\017\uff88" + "\001\002\000\006\063\u02c1\064\u02c0\001\002\000\004\166" + "\u02ce\001\002\000\004\166\u02c2\001\002\000\004\142\u02c3" + "\001\002\000\006\021\u02c4\023\u02c5\001\002\000\004\142" + @@ -755,54 +754,52 @@ public class AvatarFromSysMLParser extends java_cup.runtime.lr_parser { "\001\002\000\006\015\u02dc\165\310\001\002\000\004\015" + "\u02dd\001\002\000\016\015\uffe8\165\uffe8\167\uffe8\263\uffe8" + "\266\uffe8\270\uffe8\001\002\000\016\015\uffe9\165\uffe9\167" + - "\uffe9\263\uffe9\266\uffe9\270\uffe9\001\002\000\004\266\u02e1" + + "\uffe9\263\uffe9\266\uffe9\270\uffe9\001\002\000\004\263\u02e1" + "\001\002\000\016\015\uffbc\165\uffbc\167\uffbc\263\uffbc\266" + - "\uffbc\270\uffbc\001\002\000\006\015\u02ed\165\310\001\002" + - "\000\004\263\u02e2\001\002\000\004\043\u02e3\001\002\000" + - "\006\020\u02e5\023\u02e4\001\002\000\004\142\u02ea\001\002" + - "\000\004\056\u02e6\001\002\000\004\023\u02e7\001\002\000" + - "\004\142\u02e8\001\002\000\004\017\u02e9\001\002\000\006" + - "\015\uffb7\165\uffb7\001\002\000\004\017\u02eb\001\002\000" + - "\006\015\uffb6\165\uffb6\001\002\000\004\015\u02ee\001\002" + - "\000\016\015\uffba\165\uffba\167\uffba\263\uffba\266\uffba\270" + - "\uffba\001\002\000\016\015\uffb9\165\uffb9\167\uffb9\263\uffb9" + - "\266\uffb9\270\uffb9\001\002\000\004\015\u02f0\001\002\000" + - "\016\015\uffb8\165\uffb8\167\uffb8\263\uffb8\266\uffb8\270\uffb8" + - "\001\002\000\016\015\uffb5\165\uffb5\167\uffb5\263\uffb5\266" + - "\uffb5\270\uffb5\001\002\000\006\015\u02f5\165\u02f3\001\002" + - "\000\004\142\u02f9\001\002\000\016\015\uffb3\165\uffb3\167" + - "\uffb3\263\uffb3\266\uffb3\270\uffb3\001\002\000\016\015\uffb4" + - "\165\uffb4\167\uffb4\263\uffb4\266\uffb4\270\uffb4\001\002\000" + - "\006\015\u02f8\165\u02f3\001\002\000\016\015\uffaf\165\uffaf" + - "\167\uffaf\263\uffaf\266\uffaf\270\uffaf\001\002\000\016\015" + - "\uffb0\165\uffb0\167\uffb0\263\uffb0\266\uffb0\270\uffb0\001\002" + - "\000\004\272\u02fa\001\002\000\004\142\u02fb\001\002\000" + - "\004\017\u02fc\001\002\000\006\015\uffae\165\uffae\001\002" + - "\000\006\013\uffd2\016\uffd2\001\002\000\004\023\u0315\001" + - "\002\000\004\023\u0313\001\002\000\006\013\uffd3\016\uffd3" + - "\001\002\000\004\013\u0311\001\002\000\006\013\uffd0\016" + - "\uffd0\001\002\000\006\013\uffd6\016\u030f\001\002\000\006" + - "\013\uffd1\016\uffd1\001\002\000\004\023\u030d\001\002\000" + - "\004\023\u030b\001\002\000\006\013\uffd4\016\uffd4\001\002" + - "\000\004\023\u0309\001\002\000\004\004\u030a\001\002\000" + - "\006\013\uffcc\016\uffcc\001\002\000\004\142\u030c\001\002" + - "\000\006\013\uffcf\016\uffcf\001\002\000\004\005\u030e\001" + - "\002\000\006\013\uffcb\016\uffcb\001\002\000\014\026\u0305" + - "\027\u0308\030\u02ff\033\u0306\034\u02fe\001\002\000\004\013" + - "\uffd5\001\002\000\004\017\u0312\001\002\000\016\015\uffdc" + - "\165\uffdc\167\uffdc\263\uffdc\266\uffdc\270\uffdc\001\002\000" + - "\004\005\u0314\001\002\000\006\013\uffcd\016\uffcd\001\002" + - "\000\004\142\u0316\001\002\000\006\013\uffce\016\uffce\001" + - "\002\000\016\015\ufffb\165\ufffb\167\ufffb\263\ufffb\266\ufffb" + - "\270\ufffb\001\002\000\004\013\u0319\001\002\000\004\017" + - "\u031a\001\002\000\016\015\uffd8\165\uffd8\167\uffd8\263\uffd8" + - "\266\uffd8\270\uffd8\001\002\000\004\015\ufffd\001\002\000" + - "\004\142\u031d\001\002\000\006\307\137\335\141\001\002" + - "\000\004\101\u031f\001\002\000\004\014\uffe7\001\002\000" + - "\004\013\u0321\001\002\000\004\017\u0322\001\002\000\016" + - "\015\uffda\165\uffda\167\uffda\263\uffda\266\uffda\270\uffda\001" + - "\002\000\016\015\ufffc\165\ufffc\167\ufffc\263\ufffc\266\ufffc" + - "\270\ufffc\001\002\000\004\002\000\001\002" }); + "\uffbc\270\uffbc\001\002\000\006\015\u02e9\165\310\001\002" + + "\000\004\043\u02e2\001\002\000\004\272\u02e3\001\002\000" + + "\004\043\u02e4\001\002\000\004\023\u02e5\001\002\000\004" + + "\142\u02e6\001\002\000\004\017\u02e7\001\002\000\006\015" + + "\uffb7\165\uffb7\001\002\000\004\015\u02ea\001\002\000\016" + + "\015\uffba\165\uffba\167\uffba\263\uffba\266\uffba\270\uffba\001" + + "\002\000\016\015\uffb9\165\uffb9\167\uffb9\263\uffb9\266\uffb9" + + "\270\uffb9\001\002\000\004\015\u02ec\001\002\000\016\015" + + "\uffb8\165\uffb8\167\uffb8\263\uffb8\266\uffb8\270\uffb8\001\002" + + "\000\016\015\uffb6\165\uffb6\167\uffb6\263\uffb6\266\uffb6\270" + + "\uffb6\001\002\000\006\015\u02f1\165\u02ef\001\002\000\004" + + "\142\u02f5\001\002\000\016\015\uffb4\165\uffb4\167\uffb4\263" + + "\uffb4\266\uffb4\270\uffb4\001\002\000\016\015\uffb5\165\uffb5" + + "\167\uffb5\263\uffb5\266\uffb5\270\uffb5\001\002\000\006\015" + + "\u02f4\165\u02ef\001\002\000\016\015\uffb0\165\uffb0\167\uffb0" + + "\263\uffb0\266\uffb0\270\uffb0\001\002\000\016\015\uffb1\165" + + "\uffb1\167\uffb1\263\uffb1\266\uffb1\270\uffb1\001\002\000\004" + + "\272\u02f6\001\002\000\004\142\u02f7\001\002\000\004\017" + + "\u02f8\001\002\000\006\015\uffaf\165\uffaf\001\002\000\006" + + "\013\uffd2\016\uffd2\001\002\000\004\023\u0311\001\002\000" + + "\004\023\u030f\001\002\000\006\013\uffd3\016\uffd3\001\002" + + "\000\004\013\u030d\001\002\000\006\013\uffd0\016\uffd0\001" + + "\002\000\006\013\uffd6\016\u030b\001\002\000\006\013\uffd1" + + "\016\uffd1\001\002\000\004\023\u0309\001\002\000\004\023" + + "\u0307\001\002\000\006\013\uffd4\016\uffd4\001\002\000\004" + + "\023\u0305\001\002\000\004\004\u0306\001\002\000\006\013" + + "\uffcc\016\uffcc\001\002\000\004\142\u0308\001\002\000\006" + + "\013\uffcf\016\uffcf\001\002\000\004\005\u030a\001\002\000" + + "\006\013\uffcb\016\uffcb\001\002\000\014\026\u0301\027\u0304" + + "\030\u02fb\033\u0302\034\u02fa\001\002\000\004\013\uffd5\001" + + "\002\000\004\017\u030e\001\002\000\016\015\uffdc\165\uffdc" + + "\167\uffdc\263\uffdc\266\uffdc\270\uffdc\001\002\000\004\005" + + "\u0310\001\002\000\006\013\uffcd\016\uffcd\001\002\000\004" + + "\142\u0312\001\002\000\006\013\uffce\016\uffce\001\002\000" + + "\016\015\ufffb\165\ufffb\167\ufffb\263\ufffb\266\ufffb\270\ufffb" + + "\001\002\000\004\013\u0315\001\002\000\004\017\u0316\001" + + "\002\000\016\015\uffd8\165\uffd8\167\uffd8\263\uffd8\266\uffd8" + + "\270\uffd8\001\002\000\004\015\ufffd\001\002\000\004\142" + + "\u0319\001\002\000\006\307\137\335\141\001\002\000\004" + + "\101\u031b\001\002\000\004\014\uffe7\001\002\000\004\013" + + "\u031d\001\002\000\004\017\u031e\001\002\000\016\015\uffda" + + "\165\uffda\167\uffda\263\uffda\266\uffda\270\uffda\001\002\000" + + "\016\015\ufffc\165\ufffc\167\ufffc\263\ufffc\266\ufffc\270\ufffc" + + "\001\002\000\004\002\000\001\002" }); /** Access to parse-action table. */ @Override @@ -811,30 +808,30 @@ public class AvatarFromSysMLParser extends java_cup.runtime.lr_parser { /** <code>reduce_goto</code> table. */ protected static final short[][] _reduce_table = unpackFromStrings(new String[] { - "\000\u0322\000\004\006\003\001\001\000\002\001\001\000" + + "\000\u031e\000\004\006\003\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\066\007\042\010\020" + "\013\007\015\035\016\037\021\023\022\044\023\012\024" + "\011\034\032\035\015\036\021\037\045\040\025\041\022" + "\042\027\043\010\044\016\045\026\046\034\047\014\050" + "\031\055\036\056\033\057\043\060\041\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + - "\001\000\002\001\001\000\002\001\001\000\020\025\u031f" + - "\026\u0302\027\u0306\030\u02ff\031\u02fc\032\u0303\033\u0301\001" + - "\001\000\002\001\001\000\002\001\001\000\066\007\u031a" + + "\001\000\002\001\001\000\002\001\001\000\020\025\u031b" + + "\026\u02fe\027\u0302\030\u02fb\031\u02f8\032\u02ff\033\u02fd\001" + + "\001\000\002\001\001\000\002\001\001\000\066\007\u0316" + "\010\020\013\007\015\035\016\037\021\023\022\044\023" + "\012\024\011\034\032\035\015\036\021\037\045\040\025" + "\041\022\042\027\043\010\044\016\045\026\046\034\047" + "\014\050\031\055\036\056\033\057\043\060\041\001\001" + - "\000\020\025\u0317\026\u0302\027\u0306\030\u02ff\031\u02fc\032" + - "\u0303\033\u0301\001\001\000\002\001\001\000\002\001\001" + + "\000\020\025\u0313\026\u02fe\027\u0302\030\u02fb\031\u02f8\032" + + "\u02ff\033\u02fd\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\020" + - "\025\u0300\026\u0302\027\u0306\030\u02ff\031\u02fc\032\u0303\033" + - "\u0301\001\001\000\002\001\001\000\002\001\001\000\002" + + "\025\u02fc\026\u02fe\027\u0302\030\u02fb\031\u02f8\032\u02ff\033" + + "\u02fd\001\001\000\002\001\001\000\002\001\001\000\002" + "\001\001\000\014\017\u02dd\020\311\051\u02de\052\u02df\103" + "\312\001\001\000\002\001\001\000\002\001\001\000\044" + - "\057\177\060\041\061\167\062\165\063\175\064\161\065" + - "\160\066\166\067\170\070\152\073\172\074\157\075\155" + + "\057\177\060\041\061\167\062\166\063\175\064\161\065" + + "\160\066\165\067\170\070\152\073\172\074\157\075\155" + "\100\174\101\164\102\176\173\173\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + @@ -862,10 +859,10 @@ public class AvatarFromSysMLParser extends java_cup.runtime.lr_parser { "\000\002\001\001\000\002\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + - "\001\000\044\057\177\060\041\061\u029c\062\165\063\175" + - "\064\161\065\160\066\166\067\170\070\152\073\172\074" + - "\157\075\155\100\174\101\164\102\176\173\173\001\001" + - "\000\002\001\001\000\002\001\001\000\002\001\001\000" + + "\001\000\002\001\001\000\044\057\177\060\041\061\u029c" + + "\062\166\063\175\064\161\065\160\066\165\067\170\070" + + "\152\073\172\074\157\075\155\100\174\101\164\102\176" + + "\173\173\001\001\000\002\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + @@ -908,9 +905,9 @@ public class AvatarFromSysMLParser extends java_cup.runtime.lr_parser { "\001\001\000\002\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\074\076\356" + "\077\362\105\344\106\341\107\350\110\347\111\370\112" + - "\365\113\336\114\375\115\364\116\351\117\346\120\337" + - "\121\354\157\340\160\352\161\360\162\357\163\343\164" + - "\342\165\335\166\372\167\361\170\355\171\371\172\373" + + "\365\113\336\114\374\115\364\116\351\117\346\120\337" + + "\121\355\157\340\160\352\161\361\162\357\163\343\164" + + "\342\165\335\166\372\167\360\170\353\171\371\172\373" + "\201\367\206\345\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + @@ -920,9 +917,9 @@ public class AvatarFromSysMLParser extends java_cup.runtime.lr_parser { "\001\001\000\002\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\074\076\u01ad" + "\077\362\105\344\106\341\107\350\110\347\111\370\112" + - "\365\113\336\114\375\115\364\116\351\117\346\120\337" + - "\121\354\157\340\160\352\161\360\162\357\163\343\164" + - "\342\165\335\166\372\167\361\170\355\171\371\172\373" + + "\365\113\336\114\374\115\364\116\351\117\346\120\337" + + "\121\355\157\340\160\352\161\361\162\357\163\343\164" + + "\342\165\335\166\372\167\360\170\353\171\371\172\373" + "\201\367\206\345\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + @@ -934,25 +931,25 @@ public class AvatarFromSysMLParser extends java_cup.runtime.lr_parser { "\000\002\001\001\000\002\001\001\000\002\001\001\000" + "\002\001\001\000\006\125\u0111\225\u0112\001\001\000\006" + "\125\u0190\225\u0112\001\001\000\002\001\001\000\034\126" + - "\u0120\127\u0122\132\u0126\133\u0113\134\u011c\135\u0121\136\u0125" + + "\u011f\127\u0122\132\u0126\133\u0113\134\u011c\135\u0120\136\u0125" + "\151\u011a\152\u0116\153\u011d\154\u0114\155\u0127\156\u011e\001" + "\001\000\002\001\001\000\030\130\u018c\131\u012d\137\u012b" + - "\140\u0128\144\u0130\145\u0136\146\u0129\147\u0134\150\u0132\174" + + "\140\u0128\144\u012f\145\u0136\146\u0129\147\u0134\150\u0132\174" + "\u012e\224\u0135\001\001\000\002\001\001\000\030\130\u0189" + - "\131\u012d\137\u012b\140\u0128\144\u0130\145\u0136\146\u0129\147" + + "\131\u012d\137\u012b\140\u0128\144\u012f\145\u0136\146\u0129\147" + "\u0134\150\u0132\174\u012e\224\u0135\001\001\000\002\001\001" + "\000\002\001\001\000\010\231\u017c\232\232\233\227\001" + - "\001\000\030\130\u017a\131\u012d\137\u012b\140\u0128\144\u0130" + + "\001\000\030\130\u017a\131\u012d\137\u012b\140\u0128\144\u012f" + "\145\u0136\146\u0129\147\u0134\150\u0132\174\u012e\224\u0135\001" + "\001\000\002\001\001\000\002\001\001\000\030\130\u0177" + - "\131\u012d\137\u012b\140\u0128\144\u0130\145\u0136\146\u0129\147" + + "\131\u012d\137\u012b\140\u0128\144\u012f\145\u0136\146\u0129\147" + "\u0134\150\u0132\174\u012e\224\u0135\001\001\000\030\130\u0175" + - "\131\u012d\137\u012b\140\u0128\144\u0130\145\u0136\146\u0129\147" + + "\131\u012d\137\u012b\140\u0128\144\u012f\145\u0136\146\u0129\147" + "\u0134\150\u0132\174\u012e\224\u0135\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + "\001\001\000\030\130\u012c\131\u012d\137\u012b\140\u0128\144" + - "\u0130\145\u0136\146\u0129\147\u0134\150\u0132\174\u012e\224\u0135" + + "\u012f\145\u0136\146\u0129\147\u0134\150\u0132\174\u012e\224\u0135" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + @@ -966,31 +963,31 @@ public class AvatarFromSysMLParser extends java_cup.runtime.lr_parser { "\001\001\000\002\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\020\205\u0150\226" + - "\u014c\230\u0154\231\u0151\232\u0153\233\u014f\234\u014d\001\001" + - "\000\002\001\001\000\022\231\u0151\232\u0160\233\u015d\234" + - "\u0159\235\u015b\237\u0161\240\u015a\241\u015e\001\001\000\002" + + "\u014d\230\u0154\231\u0151\232\u0153\233\u014f\234\u014c\001\001" + + "\000\022\231\u0151\232\u0160\233\u015d\234\u0159\235\u015c\237" + + "\u0161\240\u015a\241\u015e\001\001\000\002\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\016\226\u0157\230\u0154\231\u0151\232\u0153\233\u014f\234" + - "\u014d\001\001\000\002\001\001\000\002\001\001\000\002" + + "\u014c\001\001\000\002\001\001\000\002\001\001\000\002" + "\001\001\000\022\231\u0151\232\u0160\233\u015d\234\u0159\235" + - "\u015b\237\u0161\240\u015a\241\u0168\001\001\000\002\001\001" + - "\000\004\236\u0164\001\001\000\002\001\001\000\002\001" + + "\u015c\237\u0161\240\u015a\241\u0168\001\001\000\002\001\001" + + "\000\002\001\001\000\004\236\u0164\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + - "\022\231\u0151\232\u0160\233\u015d\234\u0159\235\u015b\237\u0161" + - "\240\u015a\241\u0166\001\001\000\002\001\001\000\002\001" + + "\022\231\u0151\232\u0160\233\u015d\234\u0159\235\u015c\237\u0161" + + "\240\u015a\241\u0165\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\012\227\u016c\231\u016b\232\232\233\227\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\030" + - "\130\u016f\131\u012d\137\u012b\140\u0128\144\u0130\145\u0136\146" + + "\130\u016f\131\u012d\137\u012b\140\u0128\144\u012f\145\u0136\146" + "\u0129\147\u0134\150\u0132\174\u012e\224\u0135\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + "\001\001\000\034\126\u017e\127\u0122\132\u0126\133\u0113\134" + - "\u011c\135\u0121\136\u0125\151\u011a\152\u0116\153\u011d\154\u0114" + + "\u011c\135\u0120\136\u0125\151\u011a\152\u0116\153\u011d\154\u0114" + "\155\u0127\156\u011e\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + @@ -1006,9 +1003,9 @@ public class AvatarFromSysMLParser extends java_cup.runtime.lr_parser { "\001\001\000\002\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + - "\002\001\001\000\002\001\001\000\004\123\u01af\001\001" + - "\000\002\001\001\000\002\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + + "\001\000\004\123\u01b4\001\001\000\002\001\001\000\002" + "\001\001\000\002\001\001\000\004\123\u01b8\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + "\001\001\000\002\001\001\000\004\123\u01be\001\001\000" + @@ -1026,7 +1023,7 @@ public class AvatarFromSysMLParser extends java_cup.runtime.lr_parser { "\001\001\000\002\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\014\207\u01e8\220\u01e6\221\u01eb\222" + - "\u01e9\223\u01ea\001\001\000\002\001\001\000\002\001\001" + + "\u01ea\223\u01e9\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + @@ -1035,27 +1032,27 @@ public class AvatarFromSysMLParser extends java_cup.runtime.lr_parser { "\002\001\001\000\002\001\001\000\002\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + - "\000\014\207\u0203\220\u01e6\221\u01eb\222\u01e9\223\u01ea\001" + + "\000\014\207\u0203\220\u01e6\221\u01eb\222\u01ea\223\u01e9\001" + "\001\000\002\001\001\000\004\210\u0205\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + "\001\000\004\203\u020b\001\001\000\004\204\u020d\001\001" + "\000\002\001\001\000\002\001\001\000\004\203\u0219\001" + "\001\000\002\001\001\000\006\003\u0210\004\276\001\001" + "\000\002\001\001\000\016\226\u0212\230\u0154\231\u0151\232" + - "\u0153\233\u014f\234\u014d\001\001\000\002\001\001\000\002" + - "\001\001\000\006\230\u0216\234\u014d\001\001\000\002\001" + + "\u0153\233\u014f\234\u014c\001\001\000\002\001\001\000\002" + + "\001\001\000\006\230\u0216\234\u014c\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\004\204\u020d" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\014\207\u0221\220\u01e6\221\u01eb\222" + - "\u01e9\223\u01ea\001\001\000\002\001\001\000\002\001\001" + - "\000\010\211\u0228\214\u0225\215\u0226\001\001\000\002\001" + - "\001\000\004\215\u023e\001\001\000\004\214\u023d\001\001" + + "\u01ea\223\u01e9\001\001\000\002\001\001\000\002\001\001" + + "\000\010\211\u0229\214\u0224\215\u0226\001\001\000\004\215" + + "\u0246\001\001\000\002\001\001\000\004\214\u023d\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + - "\002\001\001\000\006\216\u022e\217\u022d\001\001\000\002" + - "\001\001\000\006\216\u0230\217\u022d\001\001\000\002\001" + + "\002\001\001\000\002\001\001\000\006\216\u022f\217\u022e" + + "\001\001\000\002\001\001\000\006\216\u0231\217\u022e\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + - "\000\006\003\u0233\004\276\001\001\000\002\001\001\000" + + "\000\002\001\001\000\006\003\u0234\004\276\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + @@ -1078,13 +1075,13 @@ public class AvatarFromSysMLParser extends java_cup.runtime.lr_parser { "\000\002\001\001\000\002\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\004" + "\123\u0272\001\001\000\002\001\001\000\002\001\001\000" + - "\002\001\001\000\006\123\u0278\177\u0277\001\001\000\002" + - "\001\001\000\004\123\u027b\001\001\000\004\177\u0279\001" + + "\002\001\001\000\006\123\u0278\177\u0276\001\001\000\004" + + "\123\u0291\001\001\000\002\001\001\000\004\177\u0279\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + - "\000\002\001\001\000\002\001\001\000\002\001\001\000" + - "\002\001\001\000\002\001\001\000\004\200\u0282\001\001" + - "\000\002\001\001\000\002\001\001\000\002\001\001\000" + - "\002\001\001\000\002\001\001\000\006\003\u0288\004\276" + + "\000\002\001\001\000\002\001\001\000\004\200\u027f\001" + + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + + "\000\002\001\001\000\002\001\001\000\006\003\u0285\004" + + "\276\001\001\000\002\001\001\000\002\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + @@ -1092,13 +1089,13 @@ public class AvatarFromSysMLParser extends java_cup.runtime.lr_parser { "\001\001\000\002\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\012\020\u02a2\071" + - "\u029e\072\u02a0\103\312\001\001\000\002\001\001\000\002" + - "\001\001\000\012\020\u02a2\071\u02a3\072\u02a0\103\312\001" + - "\001\000\002\001\001\000\002\001\001\000\002\001\001" + + "\u029e\072\u02a1\103\312\001\001\000\002\001\001\000\002" + + "\001\001\000\002\001\001\000\012\020\u02a2\071\u02a3\072" + + "\u02a1\103\312\001\001\000\002\001\001\000\002\001\001" + "\000\004\002\u02a5\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + - "\000\002\001\001\000\002\001\001\000\002\001\001\000" + - "\010\231\u02ae\232\232\233\227\001\001\000\002\001\001" + + "\000\002\001\001\000\002\001\001\000\010\231\u02ae\232" + + "\232\233\227\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\010\231\u02b1\232\232\233\227\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\004\002\u02b5\001\001\000\002\001\001\000\002\001" + @@ -1114,31 +1111,30 @@ public class AvatarFromSysMLParser extends java_cup.runtime.lr_parser { "\001\001\000\002\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\010\017\u02da" + "\020\311\103\312\001\001\000\002\001\001\000\002\001" + - "\001\000\002\001\001\000\004\052\u02ee\001\001\000\002" + - "\001\001\000\010\017\u02eb\020\311\103\312\001\001\000" + + "\001\000\002\001\001\000\004\052\u02ea\001\001\000\002" + + "\001\001\000\010\017\u02e7\020\311\103\312\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + - "\002\001\001\000\002\001\001\000\002\001\001\000\002" + - "\001\001\000\006\053\u02f3\054\u02f5\001\001\000\002\001" + - "\001\000\002\001\001\000\002\001\001\000\006\053\u02f6" + - "\054\u02f5\001\001\000\002\001\001\000\002\001\001\000" + + "\006\053\u02ef\054\u02f1\001\001\000\002\001\001\000\002" + + "\001\001\000\002\001\001\000\006\053\u02f2\054\u02f1\001" + + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + + "\001\001\000\002\001\001\000\020\025\u030b\026\u02fe\027" + + "\u0302\030\u02fb\031\u02f8\032\u02ff\033\u02fd\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + - "\001\000\002\001\001\000\002\001\001\000\020\025\u030f" + - "\026\u0302\027\u0306\030\u02ff\031\u02fc\032\u0303\033\u0301\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + + "\002\001\001\000\002\001\001\000\002\001\001\000\004" + + "\011\u0319\001\001\000\002\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + - "\001\001\000\002\001\001\000\002\001\001\000\002\001" + - "\001\000\004\011\u031d\001\001\000\002\001\001\000\002" + - "\001\001\000\002\001\001\000\002\001\001\000\002\001" + - "\001\000\002\001\001\000\002\001\001" }); + "\001\001\000\002\001\001" }); /** Access to <code>reduce_goto</code> table. */ @Override @@ -2635,37 +2631,12 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 74: // messageChannel ::= PRIVATE PART CHANNEL_F COLON CHANNEL_T EQUAL IDENT SEMICOLON - { - Object RESULT =null; - Location pxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-7)).xleft; - Location pxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-7)).xright; - Object p = CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-7).<Object>value(); - Location chxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1)).xleft; - Location chxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1)).xright; - Ident ch = CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1).<Ident>value(); - - if (messageChannelParam != null) // duplicate - addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, - "in-message channel has already been set", messageChannelParam)); - else { // message param is not set - getChannel(ch.getAvatarName()); - theChannel.setInProfile((StxInMessage)theStructure); - ((StxInMessage)theStructure).setChannel(theChannel); - messageChannelParam = pxleft; // now it is - } - - CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("messageChannel",40, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-7), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); - } - return CUP$AvatarFromSysMLParser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 75: // messageChannel ::= PRIVATE PART CHANNEL_F EQUAL IDENT SEMICOLON + case 74: // messageChannel ::= PART CHANNEL_F REDEFINES CHANNEL_F EQUAL IDENT SEMICOLON { Object RESULT =null; - Location pxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-5)).xleft; - Location pxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-5)).xright; - Object p = CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-5).<Object>value(); + Location pxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-6)).xleft; + Location pxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-6)).xright; + Object p = CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-6).<Object>value(); Location chxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1)).xleft; Location chxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1)).xright; Ident ch = CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1).<Ident>value(); @@ -2680,12 +2651,12 @@ class CUP$AvatarFromSysMLParser$actions { messageChannelParam = pxleft; // now it is } - CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("messageChannel",40, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-5), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); + CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("messageChannel",40, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-6), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 76: // outMessageDecl ::= outMessageDeclBegin SEMICOLON + case 75: // outMessageDecl ::= outMessageDeclBegin SEMICOLON { Object RESULT =null; Location bxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -2699,7 +2670,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 77: // outMessageDecl ::= outMessageDeclBegin LBRAC RBRAC + case 76: // outMessageDecl ::= outMessageDeclBegin LBRAC RBRAC { Object RESULT =null; Location bxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -2713,7 +2684,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 78: // outMessageDecl ::= outMessageDeclBegin LBRAC outMessageDeclBODY + case 77: // outMessageDecl ::= outMessageDeclBegin LBRAC outMessageDeclBODY { Object RESULT =null; @@ -2722,7 +2693,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 79: // outMessageDeclBegin ::= PART DEF IDENT specializes OUTMESSAGE_T COMMA IDENT + case 78: // outMessageDeclBegin ::= PART DEF IDENT specializes OUTMESSAGE_T COMMA IDENT { Object RESULT =null; Location pxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-6)).xleft; @@ -2751,7 +2722,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 80: // outMessageDeclBegin ::= PART DEF IDENT specializes IDENT COMMA OUTMESSAGE_T + case 79: // outMessageDeclBegin ::= PART DEF IDENT specializes IDENT COMMA OUTMESSAGE_T { Object RESULT =null; Location pxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-6)).xleft; @@ -2779,7 +2750,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 81: // outMessageDeclBODY ::= redefineField RBRAC + case 80: // outMessageDeclBODY ::= redefineField RBRAC { Object RESULT =null; Location bxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -2793,7 +2764,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 82: // outMessageDeclBODY ::= redefineField outMessageDeclBODY + case 81: // outMessageDeclBODY ::= redefineField outMessageDeclBODY { Object RESULT =null; @@ -2802,7 +2773,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 83: // redefineField ::= ATTRIBUTE IDENT REDEFINES IDENT SEMICOLON + case 82: // redefineField ::= ATTRIBUTE IDENT REDEFINES IDENT SEMICOLON { Object RESULT =null; Location axleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4)).xleft; @@ -2826,7 +2797,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 84: // blockDecl ::= blockDeclBegin RBRAC + case 83: // blockDecl ::= blockDeclBegin RBRAC { Object RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -2838,7 +2809,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 85: // blockDecl ::= blockDeclBegin blockDeclBODY + case 84: // blockDecl ::= blockDeclBegin blockDeclBODY { Object RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -2850,7 +2821,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 86: // blockDeclBegin ::= PART IDENT COLON AVBLOCK_T LBRAC + case 85: // blockDeclBegin ::= PART IDENT COLON AVBLOCK_T LBRAC { Object RESULT =null; Location pxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4)).xleft; @@ -2878,7 +2849,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 87: // blockDeclBODY ::= blockItem RBRAC + case 86: // blockDeclBODY ::= blockItem RBRAC { Object RESULT =null; @@ -2887,7 +2858,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 88: // blockDeclBODY ::= blockItem blockDeclBODY + case 87: // blockDeclBODY ::= blockItem blockDeclBODY { Object RESULT =null; @@ -2896,7 +2867,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 89: // blockItem ::= attributeDecl + case 88: // blockItem ::= attributeDecl { Object RESULT =null; @@ -2905,7 +2876,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 90: // blockItem ::= constantDecl + case 89: // blockItem ::= constantDecl { Object RESULT =null; @@ -2914,7 +2885,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 91: // blockItem ::= methodDecl + case 90: // blockItem ::= methodDecl { Object RESULT =null; @@ -2923,7 +2894,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 92: // blockItem ::= signalDecl + case 91: // blockItem ::= signalDecl { Object RESULT =null; @@ -2932,7 +2903,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 93: // blockItem ::= timerDecl + case 92: // blockItem ::= timerDecl { Object RESULT =null; @@ -2941,7 +2912,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 94: // blockItem ::= stateMachine + case 93: // blockItem ::= stateMachine { Object RESULT =null; @@ -2950,7 +2921,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 95: // blockItem ::= blockDecl + case 94: // blockItem ::= blockDecl { Object RESULT =null; @@ -2959,7 +2930,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 96: // attributeDecl ::= attributeDeclHEADER SEMICOLON + case 95: // attributeDecl ::= attributeDeclHEADER SEMICOLON { Object RESULT =null; Location qxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -2973,7 +2944,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 97: // attributeDecl ::= attributeDeclHEADER GETS iexpr SEMICOLON + case 96: // attributeDecl ::= attributeDeclHEADER GETS iexpr SEMICOLON { Object RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1)).xleft; @@ -2991,7 +2962,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 98: // attributeDecl ::= attributeDeclHEADER DEFAULT GETS iexpr SEMICOLON + case 97: // attributeDecl ::= attributeDeclHEADER DEFAULT GETS iexpr SEMICOLON { Object RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1)).xleft; @@ -3010,7 +2981,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 99: // attributeDeclHEADER ::= ATTRIBUTE IDENT COLON typeIdent + case 98: // attributeDeclHEADER ::= ATTRIBUTE IDENT COLON typeIdent { Object RESULT =null; Location axleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-3)).xleft; @@ -3050,7 +3021,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 100: // constantDecl ::= constantDeclHEADER SEMICOLON + case 99: // constantDecl ::= constantDeclHEADER SEMICOLON { Object RESULT =null; Location qxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -3064,7 +3035,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 101: // constantDecl ::= constantDeclHEADER GETS iexpr SEMICOLON + case 100: // constantDecl ::= constantDeclHEADER GETS iexpr SEMICOLON { Object RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1)).xleft; @@ -3082,7 +3053,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 102: // constantDeclHEADER ::= READONLY ATTRIBUTE IDENT COLON typeIdent + case 101: // constantDeclHEADER ::= READONLY ATTRIBUTE IDENT COLON typeIdent { Object RESULT =null; Location rxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4)).xleft; @@ -3122,7 +3093,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 103: // methodDecl ::= voidMethodDecl + case 102: // methodDecl ::= voidMethodDecl { Object RESULT =null; @@ -3131,7 +3102,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 104: // methodDecl ::= calcMethodDecl + case 103: // methodDecl ::= calcMethodDecl { Object RESULT =null; @@ -3140,7 +3111,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 105: // voidMethodDecl ::= voidMethodDeclBegin LBRAC RBRAC + case 104: // voidMethodDecl ::= voidMethodDeclBegin LBRAC RBRAC { Object RESULT =null; Location bxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -3154,7 +3125,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 106: // voidMethodDecl ::= voidMethodDeclBegin SEMICOLON + case 105: // voidMethodDecl ::= voidMethodDeclBegin SEMICOLON { Object RESULT =null; Location bxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -3168,7 +3139,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 107: // voidMethodDecl ::= voidMethodDeclBegin LBRAC fieldDecls RBRAC + case 106: // voidMethodDecl ::= voidMethodDeclBegin LBRAC fieldDecls RBRAC { Object RESULT =null; Location bxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -3182,7 +3153,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 108: // voidMethodDeclBegin ::= ACTION IDENT COLON AVVOIDMETHOD_T + case 107: // voidMethodDeclBegin ::= ACTION IDENT COLON AVVOIDMETHOD_T { Object RESULT =null; Location axleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-3)).xleft; @@ -3219,7 +3190,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 109: // calcMethodDecl ::= calcMethodDeclBegin LBRAC RBRAC + case 108: // calcMethodDecl ::= calcMethodDeclBegin LBRAC RBRAC { Object RESULT =null; Location bxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -3233,7 +3204,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 110: // calcMethodDecl ::= calcMethodDeclBegin LBRAC calcMethodItems RBRAC + case 109: // calcMethodDecl ::= calcMethodDeclBegin LBRAC calcMethodItems RBRAC { Object RESULT =null; Location bxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -3247,7 +3218,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 111: // calcMethodDeclBegin ::= CALC IDENT COLON AVCALCMETHOD_T + case 110: // calcMethodDeclBegin ::= CALC IDENT COLON AVCALCMETHOD_T { Object RESULT =null; Location cxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-3)).xleft; @@ -3284,7 +3255,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 112: // calcMethodItems ::= calcMethodItem + case 111: // calcMethodItems ::= calcMethodItem { Object RESULT =null; @@ -3293,7 +3264,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 113: // calcMethodItems ::= calcMethodItem calcMethodItems + case 112: // calcMethodItems ::= calcMethodItem calcMethodItems { Object RESULT =null; @@ -3302,7 +3273,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 114: // calcMethodItem ::= fieldDecl + case 113: // calcMethodItem ::= fieldDecl { Object RESULT =null; @@ -3311,7 +3282,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 115: // calcMethodItem ::= RETURN COLON typeIdent SEMICOLON + case 114: // calcMethodItem ::= RETURN COLON typeIdent SEMICOLON { Object RESULT =null; Location tpxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1)).xleft; @@ -3325,7 +3296,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 116: // signalDecl ::= PART IDENT COLON FIFO_T SEMICOLON + case 115: // signalDecl ::= PART IDENT COLON FIFO_T SEMICOLON { Object RESULT =null; Location pxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4)).xleft; @@ -3364,7 +3335,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 117: // signalDecl ::= PART IDENT COLON CHANNEL_T SEMICOLON + case 116: // signalDecl ::= PART IDENT COLON CHANNEL_T SEMICOLON { Object RESULT =null; Location pxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4)).xleft; @@ -3403,7 +3374,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 118: // timerDecl ::= PART IDENT COLON AVTIMER_T EQUAL AVTIMER_T LPAR BLOCK_F EQUAL SELF RPAR SEMICOLON + case 117: // timerDecl ::= PART IDENT COLON AVTIMER_T EQUAL AVTIMER_T LPAR BLOCK_F EQUAL SELF RPAR SEMICOLON { Object RESULT =null; Location pxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-11)).xleft; @@ -3439,7 +3410,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 119: // stateMachine ::= stateMachineBegin LBRAC stateMachineItems RBRAC + case 118: // stateMachine ::= stateMachineBegin LBRAC stateMachineItems RBRAC { Object RESULT =null; @@ -3451,7 +3422,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 120: // stateMachine ::= stateMachineBegin LBRAC RBRAC + case 119: // stateMachine ::= stateMachineBegin LBRAC RBRAC { Object RESULT =null; @@ -3463,7 +3434,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 121: // stateMachine ::= stateMachineBegin SEMICOLON + case 120: // stateMachine ::= stateMachineBegin SEMICOLON { Object RESULT =null; @@ -3475,7 +3446,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 122: // stateMachineBegin ::= EXHIBIT STATE STATEMACHINE COLON AVSTATEMACHINE_T + case 121: // stateMachineBegin ::= EXHIBIT STATE STATEMACHINE COLON AVSTATEMACHINE_T { Object RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4)).xleft; @@ -3495,7 +3466,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 123: // stateMachineItems ::= stateMachineItem + case 122: // stateMachineItems ::= stateMachineItem { Object RESULT =null; @@ -3504,7 +3475,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 124: // stateMachineItems ::= stateMachineItem stateMachineItems + case 123: // stateMachineItems ::= stateMachineItem stateMachineItems { Object RESULT =null; @@ -3513,7 +3484,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 125: // stateMachineItem ::= state + case 124: // stateMachineItem ::= state { Object RESULT =null; @@ -3522,7 +3493,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 126: // stateMachineItem ::= transition + case 125: // stateMachineItem ::= transition { Object RESULT =null; @@ -3531,7 +3502,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 127: // state ::= standardState + case 126: // state ::= standardState { Object RESULT =null; @@ -3540,7 +3511,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 128: // state ::= stopState + case 127: // state ::= stopState { Object RESULT =null; @@ -3549,7 +3520,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 129: // state ::= startState + case 128: // state ::= startState { Object RESULT =null; @@ -3558,7 +3529,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 130: // state ::= sendState + case 129: // state ::= sendState { Object RESULT =null; @@ -3567,7 +3538,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 131: // state ::= receiveState + case 130: // state ::= receiveState { Object RESULT =null; @@ -3576,7 +3547,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 132: // state ::= randomState + case 131: // state ::= randomState { Object RESULT =null; @@ -3585,7 +3556,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 133: // state ::= countState + case 132: // state ::= countState { Object RESULT =null; @@ -3594,7 +3565,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 134: // state ::= presendState + case 133: // state ::= presendState { Object RESULT =null; @@ -3603,7 +3574,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 135: // state ::= prereceiveState + case 134: // state ::= prereceiveState { Object RESULT =null; @@ -3612,7 +3583,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 136: // state ::= setTimerState + case 135: // state ::= setTimerState { Object RESULT =null; @@ -3621,7 +3592,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 137: // state ::= resetTimerState + case 136: // state ::= resetTimerState { Object RESULT =null; @@ -3630,7 +3601,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 138: // state ::= expireTimerState + case 137: // state ::= expireTimerState { Object RESULT =null; @@ -3639,7 +3610,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 139: // startState ::= startStateBegin SEMICOLON + case 138: // startState ::= startStateBegin SEMICOLON { Object RESULT =null; Location bxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1)).xleft; @@ -3657,7 +3628,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 140: // startState ::= startStateBegin LBRAC RBRAC + case 139: // startState ::= startStateBegin LBRAC RBRAC { Object RESULT =null; Location bxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2)).xleft; @@ -3675,7 +3646,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 141: // startState ::= startStateBegin LBRAC requestParam RBRAC + case 140: // startState ::= startStateBegin LBRAC requestParam RBRAC { Object RESULT =null; Location qxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -3689,7 +3660,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 142: // startStateBegin ::= ENTRY ACTION IDENT COLON AVSTARTSTATE_T + case 141: // startStateBegin ::= ENTRY ACTION IDENT COLON AVSTARTSTATE_T { Object RESULT =null; Location zxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4)).xleft; @@ -3717,7 +3688,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 143: // standardState ::= standardStateBegin SEMICOLON + case 142: // standardState ::= standardStateBegin SEMICOLON { Object RESULT =null; Location bxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1)).xleft; @@ -3735,7 +3706,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 144: // standardState ::= standardStateBegin LBRAC RBRAC + case 143: // standardState ::= standardStateBegin LBRAC RBRAC { Object RESULT =null; Location bxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2)).xleft; @@ -3753,7 +3724,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 145: // standardState ::= standardStateBegin LBRAC poolParam RBRAC + case 144: // standardState ::= standardStateBegin LBRAC poolParam RBRAC { Object RESULT =null; Location qxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -3767,7 +3738,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 146: // standardStateBegin ::= STATE IDENT COLON AVSTANDARDSTATE_T + case 145: // standardStateBegin ::= STATE IDENT COLON AVSTANDARDSTATE_T { Object RESULT =null; Location zxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-3)).xleft; @@ -3796,7 +3767,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 147: // stopState ::= stopStateBegin SEMICOLON + case 146: // stopState ::= stopStateBegin SEMICOLON { Object RESULT =null; Location qxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -3810,7 +3781,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 148: // stopState ::= stopStateBegin EQUAL AVSTOPSTATE_T LBRAC RBRAC + case 147: // stopState ::= stopStateBegin EQUAL AVSTOPSTATE_T LBRAC RBRAC { Object RESULT =null; Location qxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -3824,7 +3795,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 149: // stopStateBegin ::= EXIT ACTION IDENT COLON AVSTOPSTATE_T + case 148: // stopStateBegin ::= EXIT ACTION IDENT COLON AVSTOPSTATE_T { Object RESULT =null; Location zxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4)).xleft; @@ -3851,7 +3822,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 150: // sendState ::= sendStateBegin SEMICOLON + case 149: // sendState ::= sendStateBegin SEMICOLON { Object RESULT =null; Location bxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1)).xleft; @@ -3869,7 +3840,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 151: // sendState ::= sendStateBegin LBRAC RBRAC + case 150: // sendState ::= sendStateBegin LBRAC RBRAC { Object RESULT =null; Location qxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -3883,7 +3854,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 152: // sendState ::= sendStateBegin LBRAC requestParam RBRAC + case 151: // sendState ::= sendStateBegin LBRAC requestParam RBRAC { Object RESULT =null; Location qxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -3897,7 +3868,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 153: // sendStateBegin ::= STATE IDENT COLON AVSENDSTATE_T + case 152: // sendStateBegin ::= STATE IDENT COLON AVSENDSTATE_T { Object RESULT =null; Location zxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-3)).xleft; @@ -3925,7 +3896,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 154: // receiveState ::= receiveStateBegin SEMICOLON + case 153: // receiveState ::= receiveStateBegin SEMICOLON { Object RESULT =null; Location bxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1)).xleft; @@ -3943,7 +3914,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 155: // receiveState ::= receiveStateBegin LBRAC RBRAC + case 154: // receiveState ::= receiveStateBegin LBRAC RBRAC { Object RESULT =null; Location bxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2)).xleft; @@ -3961,7 +3932,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 156: // receiveState ::= receiveStateBegin LBRAC requestParam RBRAC + case 155: // receiveState ::= receiveStateBegin LBRAC requestParam RBRAC { Object RESULT =null; Location qxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -3975,7 +3946,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 157: // receiveStateBegin ::= STATE IDENT COLON AVRECEIVESTATE_T + case 156: // receiveStateBegin ::= STATE IDENT COLON AVRECEIVESTATE_T { Object RESULT =null; Location zxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-3)).xleft; @@ -4003,7 +3974,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 158: // randomState ::= randomStateBegin LBRAC randomAction requestParam RBRAC + case 157: // randomState ::= randomStateBegin LBRAC randomAction requestParam RBRAC { Object RESULT =null; Location qxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -4017,7 +3988,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 159: // randomState ::= randomStateBegin LBRAC requestParam randomAction RBRAC + case 158: // randomState ::= randomStateBegin LBRAC requestParam randomAction RBRAC { Object RESULT =null; Location qxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -4031,7 +4002,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 160: // randomState ::= randomStateBegin LBRAC randomAction RBRAC + case 159: // randomState ::= randomStateBegin LBRAC randomAction RBRAC { Object RESULT =null; Location bxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-3)).xleft; @@ -4049,7 +4020,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 161: // randomStateBegin ::= STATE IDENT COLON AVRANDOMSTATE_T + case 160: // randomStateBegin ::= STATE IDENT COLON AVRANDOMSTATE_T { Object RESULT =null; Location zxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-3)).xleft; @@ -4077,7 +4048,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 162: // countState ::= countStateBegin LBRAC countAction RBRAC + case 161: // countState ::= countStateBegin LBRAC countAction RBRAC { Object RESULT =null; Location bxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-3)).xleft; @@ -4095,7 +4066,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 163: // countState ::= countStateBegin LBRAC requestParam countAction RBRAC + case 162: // countState ::= countStateBegin LBRAC requestParam countAction RBRAC { Object RESULT =null; Location qxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -4109,7 +4080,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 164: // countState ::= countStateBegin LBRAC countAction requestParam RBRAC + case 163: // countState ::= countStateBegin LBRAC countAction requestParam RBRAC { Object RESULT =null; Location qxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -4123,7 +4094,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 165: // countStateBegin ::= STATE IDENT COLON AVCOUNTSTATE_T + case 164: // countStateBegin ::= STATE IDENT COLON AVCOUNTSTATE_T { Object RESULT =null; Location zxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-3)).xleft; @@ -4151,7 +4122,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 166: // presendState ::= presendStateBegin LBRAC requestParam RBRAC + case 165: // presendState ::= presendStateBegin LBRAC requestParam RBRAC { Object RESULT =null; Location qxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -4165,7 +4136,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 167: // presendStateBegin ::= STATE IDENT COLON AVPRESENDSTATE_T + case 166: // presendStateBegin ::= STATE IDENT COLON AVPRESENDSTATE_T { Object RESULT =null; Location zxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-3)).xleft; @@ -4193,7 +4164,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 168: // prereceiveState ::= prereceiveStateBegin LBRAC requestParam RBRAC + case 167: // prereceiveState ::= prereceiveStateBegin LBRAC requestParam RBRAC { Object RESULT =null; Location qxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -4207,7 +4178,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 169: // prereceiveStateBegin ::= STATE IDENT COLON AVPRERECEIVESTATE_T + case 168: // prereceiveStateBegin ::= STATE IDENT COLON AVPRERECEIVESTATE_T { Object RESULT =null; Location zxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-3)).xleft; @@ -4235,7 +4206,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 170: // setTimerState ::= setTimerStateBegin LBRAC requestParam RBRAC + case 169: // setTimerState ::= setTimerStateBegin LBRAC requestParam RBRAC { Object RESULT =null; Location qxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -4249,7 +4220,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 171: // setTimerState ::= setTimerStateBegin LBRAC RBRAC + case 170: // setTimerState ::= setTimerStateBegin LBRAC RBRAC { Object RESULT =null; Location bxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2)).xleft; @@ -4267,7 +4238,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 172: // setTimerState ::= setTimerStateBegin SEMICOLON + case 171: // setTimerState ::= setTimerStateBegin SEMICOLON { Object RESULT =null; Location bxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1)).xleft; @@ -4285,7 +4256,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 173: // setTimerStateBegin ::= STATE IDENT COLON AVSETTIMERSTATE_T + case 172: // setTimerStateBegin ::= STATE IDENT COLON AVSETTIMERSTATE_T { Object RESULT =null; Location zxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-3)).xleft; @@ -4313,7 +4284,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 174: // resetTimerState ::= resetTimerStateBegin LBRAC requestParam RBRAC + case 173: // resetTimerState ::= resetTimerStateBegin LBRAC requestParam RBRAC { Object RESULT =null; Location qxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -4327,7 +4298,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 175: // resetTimerState ::= resetTimerStateBegin LBRAC RBRAC + case 174: // resetTimerState ::= resetTimerStateBegin LBRAC RBRAC { Object RESULT =null; Location bxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2)).xleft; @@ -4345,7 +4316,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 176: // resetTimerState ::= resetTimerStateBegin SEMICOLON + case 175: // resetTimerState ::= resetTimerStateBegin SEMICOLON { Object RESULT =null; Location bxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1)).xleft; @@ -4363,7 +4334,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 177: // resetTimerStateBegin ::= STATE IDENT COLON AVRESETTIMERSTATE_T + case 176: // resetTimerStateBegin ::= STATE IDENT COLON AVRESETTIMERSTATE_T { Object RESULT =null; Location zxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-3)).xleft; @@ -4391,7 +4362,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 178: // expireTimerState ::= expireTimerStateBegin LBRAC requestParam RBRAC + case 177: // expireTimerState ::= expireTimerStateBegin LBRAC requestParam RBRAC { Object RESULT =null; Location qxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -4405,7 +4376,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 179: // expireTimerState ::= expireTimerStateBegin LBRAC RBRAC + case 178: // expireTimerState ::= expireTimerStateBegin LBRAC RBRAC { Object RESULT =null; Location bxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2)).xleft; @@ -4423,7 +4394,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 180: // expireTimerState ::= expireTimerStateBegin SEMICOLON + case 179: // expireTimerState ::= expireTimerStateBegin SEMICOLON { Object RESULT =null; Location bxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1)).xleft; @@ -4441,7 +4412,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 181: // expireTimerStateBegin ::= STATE IDENT COLON AVEXPIRETIMERSTATE_T + case 180: // expireTimerStateBegin ::= STATE IDENT COLON AVEXPIRETIMERSTATE_T { Object RESULT =null; Location zxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-3)).xleft; @@ -4469,7 +4440,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 182: // poolParam ::= CALC POOL_F REDEFINES POOL_F EQUAL LBRAC LPAR RPAR RBRAC SEMICOLON + case 181: // poolParam ::= CALC POOL_F REDEFINES POOL_F EQUAL LBRAC LPAR RPAR RBRAC SEMICOLON { Object RESULT =null; @@ -4478,7 +4449,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 183: // poolParam ::= CALC POOL_F REDEFINES POOL_F EQUAL LBRAC NULL RBRAC SEMICOLON + case 182: // poolParam ::= CALC POOL_F REDEFINES POOL_F EQUAL LBRAC NULL RBRAC SEMICOLON { Object RESULT =null; @@ -4487,7 +4458,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 184: // poolParam ::= CALC POOL_F REDEFINES POOL_F EQUAL LBRAC LPAR requestList RPAR RBRAC SEMICOLON + case 183: // poolParam ::= CALC POOL_F REDEFINES POOL_F EQUAL LBRAC LPAR requestList RPAR RBRAC SEMICOLON { Object RESULT =null; @@ -4496,7 +4467,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 185: // poolParam ::= CALC POOL_F REDEFINES POOL_F EQUAL LBRAC request RBRAC SEMICOLON + case 184: // poolParam ::= CALC POOL_F REDEFINES POOL_F EQUAL LBRAC request RBRAC SEMICOLON { Object RESULT =null; @@ -4505,7 +4476,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 186: // requestParam ::= CALC REQUEST_F REDEFINES REQUEST_F EQUAL LBRAC request RBRAC SEMICOLON + case 185: // requestParam ::= CALC REQUEST_F REDEFINES REQUEST_F EQUAL LBRAC request RBRAC SEMICOLON { Object RESULT =null; @@ -4514,7 +4485,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 187: // requestParam ::= CALC REQUEST_F REDEFINES REQUEST_F EQUAL LBRAC LPAR request RPAR RBRAC SEMICOLON + case 186: // requestParam ::= CALC REQUEST_F REDEFINES REQUEST_F EQUAL LBRAC LPAR request RPAR RBRAC SEMICOLON { Object RESULT =null; @@ -4523,7 +4494,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 188: // requestList ::= request + case 187: // requestList ::= request { Object RESULT =null; @@ -4532,7 +4503,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 189: // requestList ::= request COMMA requestList + case 188: // requestList ::= request COMMA requestList { Object RESULT =null; @@ -4541,7 +4512,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 190: // request ::= dummy IF iexpr QUEST simpleRequest ELSE NOKREQUEST_T LPAR INT RPAR + case 189: // request ::= dummy IF iexpr QUEST simpleRequest ELSE NOKREQUEST_T LPAR INT RPAR { Object RESULT =null; Location ixleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-8)).xleft; @@ -4576,7 +4547,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 191: // request ::= dummy IF iexpr QUEST simpleRequest ELSE NOKREQUEST_T LPAR INDEX_F EQUAL INT RPAR + case 190: // request ::= dummy IF iexpr QUEST simpleRequest ELSE NOKREQUEST_T LPAR INDEX_F EQUAL INT RPAR { Object RESULT =null; Location ixleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-10)).xleft; @@ -4611,7 +4582,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 192: // request ::= dummy simpleRequest + case 191: // request ::= dummy simpleRequest { Object RESULT =null; Location ixleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -4629,7 +4600,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 193: // dummy ::= + case 192: // dummy ::= { Object RESULT =null; @@ -4651,7 +4622,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 194: // simpleRequest ::= trivialRequest + case 193: // simpleRequest ::= trivialRequest { Object RESULT =null; @@ -4660,7 +4631,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 195: // simpleRequest ::= sendRequest + case 194: // simpleRequest ::= sendRequest { Object RESULT =null; @@ -4669,7 +4640,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 196: // simpleRequest ::= receiveRequest + case 195: // simpleRequest ::= receiveRequest { Object RESULT =null; @@ -4678,7 +4649,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 197: // simpleRequest ::= setTimerRequest + case 196: // simpleRequest ::= setTimerRequest { Object RESULT =null; @@ -4687,7 +4658,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 198: // simpleRequest ::= resetTimerRequest + case 197: // simpleRequest ::= resetTimerRequest { Object RESULT =null; @@ -4696,7 +4667,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 199: // simpleRequest ::= expireTimerRequest + case 198: // simpleRequest ::= expireTimerRequest { Object RESULT =null; @@ -4705,7 +4676,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 200: // trivialRequest ::= IMMEDIATEREQUEST_U + case 199: // trivialRequest ::= IMMEDIATEREQUEST_U { Object RESULT =null; Location ixleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -4724,7 +4695,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 201: // trivialRequest ::= trivialRequestBegin requestArgs RPAR + case 200: // trivialRequest ::= trivialRequestBegin requestArgs RPAR { Object RESULT =null; @@ -4733,7 +4704,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 202: // trivialRequestBegin ::= TRIVIALREQUEST_T LPAR + case 201: // trivialRequestBegin ::= TRIVIALREQUEST_T LPAR { Object RESULT =null; @@ -4746,7 +4717,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 203: // sendRequest ::= sendRequestBegin requestArgs RPAR + case 202: // sendRequest ::= sendRequestBegin requestArgs RPAR { Object RESULT =null; @@ -4755,7 +4726,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 204: // sendRequestBegin ::= SENDREQUEST_T LPAR + case 203: // sendRequestBegin ::= SENDREQUEST_T LPAR { Object RESULT =null; @@ -4768,7 +4739,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 205: // receiveRequest ::= receiveRequestBegin requestArgs RPAR + case 204: // receiveRequest ::= receiveRequestBegin requestArgs RPAR { Object RESULT =null; @@ -4777,7 +4748,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 206: // receiveRequestBegin ::= RECEIVEREQUEST_T LPAR + case 205: // receiveRequestBegin ::= RECEIVEREQUEST_T LPAR { Object RESULT =null; @@ -4790,7 +4761,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 207: // setTimerRequest ::= setTimerRequestBegin requestArgs RPAR + case 206: // setTimerRequest ::= setTimerRequestBegin requestArgs RPAR { Object RESULT =null; @@ -4799,7 +4770,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 208: // setTimerRequestBegin ::= SETTIMERREQUEST_T LPAR + case 207: // setTimerRequestBegin ::= SETTIMERREQUEST_T LPAR { Object RESULT =null; @@ -4812,7 +4783,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 209: // resetTimerRequest ::= resetTimerRequestBegin requestArgs RPAR + case 208: // resetTimerRequest ::= resetTimerRequestBegin requestArgs RPAR { Object RESULT =null; @@ -4821,7 +4792,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 210: // resetTimerRequestBegin ::= RESETTIMERREQUEST_T LPAR + case 209: // resetTimerRequestBegin ::= RESETTIMERREQUEST_T LPAR { Object RESULT =null; @@ -4834,7 +4805,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 211: // expireTimerRequest ::= expireTimerRequestBegin requestArgs RPAR + case 210: // expireTimerRequest ::= expireTimerRequestBegin requestArgs RPAR { Object RESULT =null; @@ -4843,7 +4814,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 212: // expireTimerRequestBegin ::= EXPIRETIMERREQUEST_T LPAR + case 211: // expireTimerRequestBegin ::= EXPIRETIMERREQUEST_T LPAR { Object RESULT =null; @@ -4856,7 +4827,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 213: // requestArgs ::= requestArg + case 212: // requestArgs ::= requestArg { Object RESULT =null; @@ -4865,7 +4836,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 214: // requestArgs ::= requestArg COMMA requestArgs + case 213: // requestArgs ::= requestArg COMMA requestArgs { Object RESULT =null; @@ -4874,7 +4845,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 215: // requestArg ::= indexParam + case 214: // requestArg ::= indexParam { Object RESULT =null; @@ -4883,7 +4854,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 216: // requestArg ::= delayParam + case 215: // requestArg ::= delayParam { Object RESULT =null; @@ -4892,7 +4863,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 217: // requestArg ::= channelParam + case 216: // requestArg ::= channelParam { Object RESULT =null; @@ -4901,7 +4872,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 218: // requestArg ::= payloadParam + case 217: // requestArg ::= payloadParam { Object RESULT =null; @@ -4910,7 +4881,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 219: // requestArg ::= settimerParam + case 218: // requestArg ::= settimerParam { Object RESULT =null; @@ -4919,7 +4890,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 220: // requestArg ::= resettimerParam + case 219: // requestArg ::= resettimerParam { Object RESULT =null; @@ -4928,7 +4899,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 221: // requestArg ::= expiretimerParam + case 220: // requestArg ::= expiretimerParam { Object RESULT =null; @@ -4937,7 +4908,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 222: // indexParam ::= INDEX_F EQUAL INT + case 221: // indexParam ::= INDEX_F EQUAL INT { Object RESULT =null; Location fxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2)).xleft; @@ -4959,7 +4930,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 223: // delayParam ::= delayKeyword EQUAL delayExpr + case 222: // delayParam ::= delayKeyword EQUAL delayExpr { Object RESULT =null; @@ -4968,7 +4939,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 224: // delayKeyword ::= DELAY_F + case 223: // delayKeyword ::= DELAY_F { Object RESULT =null; Location dxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -4989,7 +4960,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 225: // delayExpr ::= iexpr + case 224: // delayExpr ::= iexpr { Object RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -5001,7 +4972,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 226: // delayExpr ::= delayRandomExpr + case 225: // delayExpr ::= delayRandomExpr { Object RESULT =null; @@ -5010,7 +4981,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 227: // delayRandomExpr ::= BOUNDRANDOM_U LPAR iexpr COMMA iexpr RPAR + case 226: // delayRandomExpr ::= BOUNDRANDOM_U LPAR iexpr COMMA iexpr RPAR { Object RESULT =null; Location ixleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-3)).xleft; @@ -5030,7 +5001,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 228: // payloadParam ::= payloadParamBegin IDENT LPAR termList RPAR + case 227: // payloadParam ::= payloadParamBegin IDENT LPAR termList RPAR { Object RESULT =null; Location bxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4)).xleft; @@ -5050,7 +5021,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 229: // payloadParam ::= payloadParamBegin IDENT LPAR RPAR + case 228: // payloadParam ::= payloadParamBegin IDENT LPAR RPAR { Object RESULT =null; Location bxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-3)).xleft; @@ -5070,7 +5041,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 230: // payloadParam ::= payloadParamBegin IDENT + case 229: // payloadParam ::= payloadParamBegin IDENT { Object RESULT =null; Location bxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1)).xleft; @@ -5090,7 +5061,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 231: // payloadParam ::= payloadParamBegin TIMERSETMSG_T LPAR stxExpr RPAR + case 230: // payloadParam ::= payloadParamBegin TIMERSETMSG_T LPAR stxExpr RPAR { Object RESULT =null; Location bxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4)).xleft; @@ -5114,7 +5085,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 232: // payloadParamBegin ::= PAYLOAD_F EQUAL + case 231: // payloadParamBegin ::= PAYLOAD_F EQUAL { Object RESULT =null; Location pxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1)).xleft; @@ -5136,7 +5107,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 233: // channelParam ::= CHANNEL_F EQUAL IDENT + case 232: // channelParam ::= CHANNEL_F EQUAL IDENT { Object RESULT =null; Location cxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2)).xleft; @@ -5165,7 +5136,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 234: // settimerParam ::= CHANNEL_F EQUAL IDENT POINT SET_TM + case 233: // settimerParam ::= CHANNEL_F EQUAL IDENT POINT SET_TM { Object RESULT =null; Location cxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4)).xleft; @@ -5190,7 +5161,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 235: // resettimerParam ::= CHANNEL_F EQUAL IDENT POINT RESET_TM + case 234: // resettimerParam ::= CHANNEL_F EQUAL IDENT POINT RESET_TM { Object RESULT =null; Location cxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4)).xleft; @@ -5215,7 +5186,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 236: // expiretimerParam ::= CHANNEL_F EQUAL IDENT POINT EXPIRE_TM + case 235: // expiretimerParam ::= CHANNEL_F EQUAL IDENT POINT EXPIRE_TM { Object RESULT =null; Location cxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4)).xleft; @@ -5240,7 +5211,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 237: // termList ::= stxRvalue + case 236: // termList ::= stxRvalue { Object RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -5252,7 +5223,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 238: // termList ::= termList COMMA stxRvalue + case 237: // termList ::= termList COMMA stxRvalue { Object RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -5264,7 +5235,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 239: // fulllIdent ::= IDENT + case 238: // fulllIdent ::= IDENT { String RESULT =null; Location idxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -5276,7 +5247,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 240: // fulllIdent ::= fulllIdent FOURPOINTS IDENT + case 239: // fulllIdent ::= fulllIdent FOURPOINTS IDENT { String RESULT =null; Location idxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -5288,7 +5259,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 241: // fullIdent ::= fullIdentInit fulllIdent + case 240: // fullIdent ::= fullIdentInit fulllIdent { String RESULT =null; @@ -5300,7 +5271,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 242: // fullIdentInit ::= + case 241: // fullIdentInit ::= { String RESULT =null; @@ -5311,7 +5282,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 243: // randomAction ::= ACTION STATEACTION_F REDEFINES STATEACTION_F LBRAC randomParam RBRAC + case 242: // randomAction ::= ACTION STATEACTION_F REDEFINES STATEACTION_F LBRAC randomParam RBRAC { Object RESULT =null; @@ -5320,7 +5291,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 244: // randomParam ::= FIRST START_U SEMICOLON THEN ASSIGN fullIdent GETS BOUNDRANDOM_U LPAR iexpr COMMA iexpr RPAR SEMICOLON THEN DONE_U SEMICOLON + case 243: // randomParam ::= FIRST START_U SEMICOLON THEN ASSIGN fullIdent GETS BOUNDRANDOM_U LPAR iexpr COMMA iexpr RPAR SEMICOLON THEN DONE_U SEMICOLON { Object RESULT =null; Location idxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-11)).xleft; @@ -5342,7 +5313,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 245: // countAction ::= ACTION STATEACTION_F REDEFINES STATEACTION_F LBRAC countParam RBRAC + case 244: // countAction ::= ACTION STATEACTION_F REDEFINES STATEACTION_F LBRAC countParam RBRAC { Object RESULT =null; @@ -5351,7 +5322,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 246: // countParam ::= FIRST START_U SEMICOLON THEN ASSIGN fullIdent GETS IDENT POINT AMOUNT_U LPAR RPAR SEMICOLON THEN DONE_U SEMICOLON + case 245: // countParam ::= FIRST START_U SEMICOLON THEN ASSIGN fullIdent GETS IDENT POINT AMOUNT_U LPAR RPAR SEMICOLON THEN DONE_U SEMICOLON { Object RESULT =null; Location tidxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-10)).xleft; @@ -5370,7 +5341,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 247: // transition ::= transitionBegin THEN IDENT SEMICOLON + case 246: // transition ::= transitionBegin THEN IDENT SEMICOLON { Object RESULT =null; Location txleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-3)).xleft; @@ -5395,7 +5366,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 248: // transition ::= transitionBegin doActions THEN IDENT SEMICOLON + case 247: // transition ::= transitionBegin doActions THEN IDENT SEMICOLON { Object RESULT =null; Location txleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4)).xleft; @@ -5420,7 +5391,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 249: // transition ::= transitionBegin THEN IDENT LBRAC transitionLabels RBRAC + case 248: // transition ::= transitionBegin THEN IDENT LBRAC transitionLabels RBRAC { Object RESULT =null; Location txleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-5)).xleft; @@ -5447,7 +5418,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 250: // transition ::= transitionBegin doActions THEN IDENT LBRAC transitionLabels RBRAC + case 249: // transition ::= transitionBegin doActions THEN IDENT LBRAC transitionLabels RBRAC { Object RESULT =null; Location txleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-6)).xleft; @@ -5474,7 +5445,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 251: // transitionBegin ::= TRANSITION COLON AVTRANSITION_T FIRST IDENT + case 250: // transitionBegin ::= TRANSITION COLON AVTRANSITION_T FIRST IDENT { Object RESULT =null; Location txleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4)).xleft; @@ -5499,7 +5470,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 252: // transitionBegin ::= TRANSITION COLON AVTRANSITION_T FIRST IDENT IF INDEX_F EQ INT + case 251: // transitionBegin ::= TRANSITION COLON AVTRANSITION_T FIRST IDENT IF INDEX_F EQ INT { Object RESULT =null; Location txleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-8)).xleft; @@ -5527,7 +5498,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 253: // doActions ::= transitionActionBegin LBRAC RBRAC + case 252: // doActions ::= transitionActionBegin LBRAC RBRAC { Object RESULT =null; @@ -5536,7 +5507,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 254: // doActions ::= transitionActionBegin LBRAC transitionAction RBRAC + case 253: // doActions ::= transitionActionBegin LBRAC transitionAction RBRAC { Object RESULT =null; @@ -5548,7 +5519,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 255: // doActions ::= receiveActionBegin LBRAC RBRAC + case 254: // doActions ::= receiveActionBegin LBRAC RBRAC { Object RESULT =null; @@ -5557,7 +5528,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 256: // doActions ::= receiveActionBegin LBRAC receiveAction RBRAC + case 255: // doActions ::= receiveActionBegin LBRAC receiveAction RBRAC { Object RESULT =null; @@ -5569,7 +5540,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 257: // transitionActionBegin ::= DO ACTION COLON TRANSITIONACTION_T + case 256: // transitionActionBegin ::= DO ACTION COLON TRANSITIONACTION_T { Object RESULT =null; @@ -5580,7 +5551,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 258: // receiveActionBegin ::= DO ACTION COLON RECEIVEACTION_T + case 257: // receiveActionBegin ::= DO ACTION COLON RECEIVEACTION_T { Object RESULT =null; @@ -5591,7 +5562,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 259: // transitionAction ::= FIRST START_U SEMICOLON THEN DONE_U SEMICOLON + case 258: // transitionAction ::= FIRST START_U SEMICOLON THEN DONE_U SEMICOLON { Object RESULT =null; @@ -5600,7 +5571,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 260: // transitionAction ::= FIRST START_U SEMICOLON actionSeq + case 259: // transitionAction ::= FIRST START_U SEMICOLON actionSeq { Object RESULT =null; @@ -5609,7 +5580,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 261: // actionSeq ::= THEN act THEN DONE_U SEMICOLON + case 260: // actionSeq ::= THEN act THEN DONE_U SEMICOLON { Object RESULT =null; @@ -5618,7 +5589,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 262: // actionSeq ::= THEN act actionSeq + case 261: // actionSeq ::= THEN act actionSeq { Object RESULT =null; @@ -5627,7 +5598,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 263: // act ::= ASSIGN fullIdent GETS stxRvalue SEMICOLON + case 262: // act ::= ASSIGN fullIdent GETS stxRvalue SEMICOLON { Object RESULT =null; Location axleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4)).xleft; @@ -5650,7 +5621,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 264: // act ::= ACTION EQUAL stxCall SEMICOLON + case 263: // act ::= ACTION EQUAL stxCall SEMICOLON { Object RESULT =null; Location axleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-3)).xleft; @@ -5670,7 +5641,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 265: // receiveAction ::= messageLine receiveAssigns + case 264: // receiveAction ::= messageLine receiveAssigns { Object RESULT =null; @@ -5679,7 +5650,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 266: // receiveAction ::= receiveAssigns messageLine + case 265: // receiveAction ::= receiveAssigns messageLine { Object RESULT =null; @@ -5688,7 +5659,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 267: // messageLine ::= ITEM MSG_U COLON IDENT EQUAL PAYLOAD_F AS IDENT SEMICOLON + case 266: // messageLine ::= ITEM MSG_U COLON IDENT EQUAL PAYLOAD_F AS IDENT SEMICOLON { Object RESULT =null; @@ -5697,7 +5668,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 268: // receiveAssigns ::= FIRST START_U SEMICOLON THEN DONE_U SEMICOLON + case 267: // receiveAssigns ::= FIRST START_U SEMICOLON THEN DONE_U SEMICOLON { Object RESULT =null; @@ -5706,7 +5677,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 269: // receiveAssigns ::= FIRST START_U SEMICOLON receiveAssignSeq + case 268: // receiveAssigns ::= FIRST START_U SEMICOLON receiveAssignSeq { Object RESULT =null; @@ -5715,7 +5686,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 270: // receiveAssignSeq ::= receiveAssign THEN DONE_U SEMICOLON + case 269: // receiveAssignSeq ::= receiveAssign THEN DONE_U SEMICOLON { Object RESULT =null; @@ -5724,7 +5695,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 271: // receiveAssignSeq ::= receiveAssign receiveAssignSeq + case 270: // receiveAssignSeq ::= receiveAssign receiveAssignSeq { Object RESULT =null; @@ -5733,7 +5704,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 272: // receiveAssign ::= THEN ASSIGN fullIdent GETS MSG_U POINT IDENT SEMICOLON + case 271: // receiveAssign ::= THEN ASSIGN fullIdent GETS MSG_U POINT IDENT SEMICOLON { Object RESULT =null; Location txleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-7)).xleft; @@ -5757,7 +5728,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 273: // transitionLabels ::= transitionLabel SEMICOLON + case 272: // transitionLabels ::= transitionLabel SEMICOLON { Object RESULT =null; @@ -5766,7 +5737,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 274: // transitionLabels ::= transitionLabel SEMICOLON transitionLabels + case 273: // transitionLabels ::= transitionLabel SEMICOLON transitionLabels { Object RESULT =null; @@ -5775,7 +5746,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 275: // transitionLabel ::= distributionLabel + case 274: // transitionLabel ::= distributionLabel { Object RESULT =null; @@ -5784,7 +5755,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 276: // transitionLabel ::= weightLabel + case 275: // transitionLabel ::= weightLabel { Object RESULT =null; @@ -5793,7 +5764,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 277: // transitionLabel ::= extraLabel + case 276: // transitionLabel ::= extraLabel { Object RESULT =null; @@ -5802,7 +5773,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 278: // distributionLabel ::= ATTRIBUTE DISTRIBUTION_A COLON STRING_T EQUAL STRING + case 277: // distributionLabel ::= ATTRIBUTE DISTRIBUTION_A COLON STRING_T EQUAL STRING { Object RESULT =null; Location axleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-5)).xleft; @@ -5825,7 +5796,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 279: // weightLabel ::= ATTRIBUTE WEIGHT_A COLON REAL_T EQUAL REAL + case 278: // weightLabel ::= ATTRIBUTE WEIGHT_A COLON REAL_T EQUAL REAL { Object RESULT =null; Location axleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-5)).xleft; @@ -5848,7 +5819,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 280: // weightLabel ::= ATTRIBUTE WEIGHT_A COLON REAL_T EQUAL INT + case 279: // weightLabel ::= ATTRIBUTE WEIGHT_A COLON REAL_T EQUAL INT { Object RESULT =null; Location axleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-5)).xleft; @@ -5871,7 +5842,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 281: // extraLabel ::= ATTRIBUTE ANYNAME COLON STRING_T EQUAL STRING + case 280: // extraLabel ::= ATTRIBUTE ANYNAME COLON STRING_T EQUAL STRING { Object RESULT =null; Location nxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4)).xleft; @@ -5890,7 +5861,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 282: // extraLabel ::= ATTRIBUTE IDENT COLON STRING_T EQUAL STRING + case 281: // extraLabel ::= ATTRIBUTE IDENT COLON STRING_T EQUAL STRING { Object RESULT =null; Location nxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4)).xleft; @@ -5909,7 +5880,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 283: // stxRvalue ::= stxCall + case 282: // stxRvalue ::= stxCall { StxTerm RESULT =null; Location cxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -5921,7 +5892,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 284: // stxRvalue ::= expr + case 283: // stxRvalue ::= expr { StxTerm RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -5933,7 +5904,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 285: // stxRvalue ::= complexIdent + case 284: // stxRvalue ::= complexIdent { StxTerm RESULT =null; Location ixleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -5945,7 +5916,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 286: // stxExpr ::= iexpr + case 285: // stxExpr ::= iexpr { StxExpr RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -5957,7 +5928,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 287: // iexpr ::= expr + case 286: // iexpr ::= expr { String RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -5969,7 +5940,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 288: // iexpr ::= complexIdent + case 287: // iexpr ::= complexIdent { String RESULT =null; Location ixleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -5981,7 +5952,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 289: // expr ::= iexpr PLUS iexpr + case 288: // expr ::= iexpr PLUS iexpr { String RESULT =null; Location lxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2)).xleft; @@ -5996,7 +5967,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 290: // expr ::= iexpr MINUS iexpr + case 289: // expr ::= iexpr MINUS iexpr { String RESULT =null; Location lxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2)).xleft; @@ -6011,7 +5982,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 291: // expr ::= iexpr MULT iexpr + case 290: // expr ::= iexpr MULT iexpr { String RESULT =null; Location lxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2)).xleft; @@ -6026,7 +5997,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 292: // expr ::= iexpr DIV iexpr + case 291: // expr ::= iexpr DIV iexpr { String RESULT =null; Location lxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2)).xleft; @@ -6041,7 +6012,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 293: // expr ::= iexpr MOD iexpr + case 292: // expr ::= iexpr MOD iexpr { String RESULT =null; Location lxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2)).xleft; @@ -6056,7 +6027,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 294: // expr ::= MINUS iexpr + case 293: // expr ::= MINUS iexpr { String RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -6068,7 +6039,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 295: // expr ::= iexpr OR iexpr + case 294: // expr ::= iexpr OR iexpr { String RESULT =null; Location lxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2)).xleft; @@ -6083,7 +6054,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 296: // expr ::= iexpr AND iexpr + case 295: // expr ::= iexpr AND iexpr { String RESULT =null; Location lxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2)).xleft; @@ -6098,7 +6069,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 297: // expr ::= NOT iexpr + case 296: // expr ::= NOT iexpr { String RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -6110,7 +6081,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 298: // expr ::= iexpr LT iexpr + case 297: // expr ::= iexpr LT iexpr { String RESULT =null; Location lxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2)).xleft; @@ -6125,7 +6096,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 299: // expr ::= iexpr GT iexpr + case 298: // expr ::= iexpr GT iexpr { String RESULT =null; Location lxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2)).xleft; @@ -6139,6 +6110,21 @@ class CUP$AvatarFromSysMLParser$actions { } return CUP$AvatarFromSysMLParser$result; + /*. . . . . . . . . . . . . . . . . . . .*/ + case 299: // expr ::= iexpr LEQ iexpr + { + String RESULT =null; + Location lxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2)).xleft; + Location lxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2)).xright; + String l = CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2).<String>value(); + Location rxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; + Location rxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xright; + String r = CUP$AvatarFromSysMLParser$stack.peek().<String>value(); + RESULT = l + " <= " + r; + CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("expr",152, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); + } + return CUP$AvatarFromSysMLParser$result; + /* . . . . . .*/ default: throw new Exception( @@ -6161,22 +6147,7 @@ class CUP$AvatarFromSysMLParser$actions { switch (CUP$AvatarFromSysMLParser$act_num) { /*. . . . . . . . . . . . . . . . . . . .*/ - case 300: // expr ::= iexpr LEQ iexpr - { - String RESULT =null; - Location lxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2)).xleft; - Location lxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2)).xright; - String l = CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2).<String>value(); - Location rxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; - Location rxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xright; - String r = CUP$AvatarFromSysMLParser$stack.peek().<String>value(); - RESULT = l + " <= " + r; - CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("expr",152, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); - } - return CUP$AvatarFromSysMLParser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 301: // expr ::= iexpr GEQ iexpr + case 300: // expr ::= iexpr GEQ iexpr { String RESULT =null; Location lxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2)).xleft; @@ -6191,7 +6162,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 302: // expr ::= iexpr EQ iexpr + case 301: // expr ::= iexpr EQ iexpr { String RESULT =null; Location lxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2)).xleft; @@ -6206,7 +6177,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 303: // expr ::= iexpr DIF iexpr + case 302: // expr ::= iexpr DIF iexpr { String RESULT =null; Location lxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2)).xleft; @@ -6221,7 +6192,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 304: // expr ::= LPAR iexpr RPAR + case 303: // expr ::= LPAR iexpr RPAR { String RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1)).xleft; @@ -6233,7 +6204,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 305: // expr ::= INT + case 304: // expr ::= INT { String RESULT =null; Location ixleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -6245,7 +6216,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 306: // expr ::= BOOL + case 305: // expr ::= BOOL { String RESULT =null; Location bxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -6257,7 +6228,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 307: // complexIdent ::= IDENT + case 306: // complexIdent ::= IDENT { String RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -6269,7 +6240,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 308: // complexIdent ::= IDENT FOURPOINTS complexIdent + case 307: // complexIdent ::= IDENT FOURPOINTS complexIdent { String RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2)).xleft; @@ -6284,7 +6255,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 309: // complexIdent ::= IDENT POINT fullIdent + case 308: // complexIdent ::= IDENT POINT fullIdent { String RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2)).xleft; @@ -6299,7 +6270,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 310: // stxCall ::= stxCallBegin RPAR + case 309: // stxCall ::= stxCallBegin RPAR { StxCall RESULT =null; Location bxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1)).xleft; @@ -6317,7 +6288,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 311: // stxCall ::= stxCallBegin stxCallParams RPAR + case 310: // stxCall ::= stxCallBegin stxCallParams RPAR { StxCall RESULT =null; Location bxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2)).xleft; @@ -6338,7 +6309,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 312: // stxCallBegin ::= IDENT LPAR + case 311: // stxCallBegin ::= IDENT LPAR { Object RESULT =null; Location ixleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1)).xleft; @@ -6353,7 +6324,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 313: // stxCallParams ::= stxCallParam + case 312: // stxCallParams ::= stxCallParam { Object RESULT =null; @@ -6362,7 +6333,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 314: // stxCallParams ::= stxCallParam comma stxCallParams + case 313: // stxCallParams ::= stxCallParam comma stxCallParams { Object RESULT =null; @@ -6371,7 +6342,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 315: // comma ::= COMMA + case 314: // comma ::= COMMA { Object RESULT =null; exprStringAcc.append(", "); @@ -6380,7 +6351,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 316: // stxCallParam ::= expr + case 315: // stxCallParam ::= expr { Object RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -6392,7 +6363,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 317: // stxCallParam ::= complexIdent + case 316: // stxCallParam ::= complexIdent { Object RESULT =null; Location ixleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -6408,7 +6379,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 318: // stxCallParam ::= call + case 317: // stxCallParam ::= call { Object RESULT =null; @@ -6417,7 +6388,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 319: // call ::= callBegin RPAR + case 318: // call ::= callBegin RPAR { Object RESULT =null; exprStringAcc.append(")"); @@ -6426,7 +6397,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 320: // call ::= stxCallBegin stxCallParams RPAR + case 319: // call ::= stxCallBegin stxCallParams RPAR { Object RESULT =null; Location lxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1)).xleft; @@ -6438,7 +6409,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 321: // callBegin ::= IDENT LPAR + case 320: // callBegin ::= IDENT LPAR { Object RESULT =null; Location ixleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1)).xleft; diff --git a/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jcup b/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jcup index 73eb151229..e9571c6695 100644 --- a/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jcup +++ b/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jcup @@ -863,18 +863,7 @@ inMessageDeclBODY ::= | fieldDecls messageChannel RBRAC ; messageChannel ::= - PRIVATE:p PART CHANNEL_F COLON CHANNEL_T EQUAL IDENT:ch SEMICOLON {: - if (messageChannelParam != null) // duplicate - addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, - "in-message channel has already been set", messageChannelParam)); - else { // message param is not set - getChannel(ch.getAvatarName()); - theChannel.setInProfile((StxInMessage)theStructure); - ((StxInMessage)theStructure).setChannel(theChannel); - messageChannelParam = pxleft; // now it is - } - :} - | PRIVATE:p PART CHANNEL_F EQUAL IDENT:ch SEMICOLON {: + PART:p CHANNEL_F REDEFINES CHANNEL_F EQUAL IDENT:ch SEMICOLON {: if (messageChannelParam != null) // duplicate addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "in-message channel has already been set", messageChannelParam)); diff --git a/ttool/src/test/resources/cli/models/avSysML_AttrTimerNameClashL.sysml b/ttool/src/test/resources/cli/models/avSysML_AttrTimerNameClashL.sysml index 413c33c739..1caa8f3f58 100644 --- a/ttool/src/test/resources/cli/models/avSysML_AttrTimerNameClashL.sysml +++ b/ttool/src/test/resources/cli/models/avSysML_AttrTimerNameClashL.sysml @@ -23,7 +23,7 @@ package AvatarInstance { // Message of signal '@blk:B0'.'@sig:in0'............ part def '@MSG:B0.in0' :> '#InMessage' { - private part '@channel' : '#Channel' = '@syn:B0.in0<B1_0.out1'; + part '@channel' redefines '@channel' = '@syn:B0.in0<B1_0.out1'; attribute 'x' : Integer; attribute 'p' : '@dt:Point'; attribute 'b' : Boolean; @@ -43,7 +43,7 @@ package AvatarInstance { // Message of signal '@blk:B1_0'.'@sig:in1'............ part def '@MSG:B1_0.in1' :> '#InMessage' { - private part '@channel' : '#Channel' = '@syn:B0.out0>B1_0.in1'; + part '@channel' redefines '@channel' = '@syn:B0.out0>B1_0.in1'; attribute 'x' : Integer; attribute 'p' : '@dt:Point'; attribute 'b' : Boolean; diff --git a/ttool/src/test/resources/cli/models/avSysML_DupChParamSndPayloadErrE.sysml b/ttool/src/test/resources/cli/models/avSysML_DupChParamSndPayloadErrE.sysml index 16aeca137c..19e89014bd 100644 --- a/ttool/src/test/resources/cli/models/avSysML_DupChParamSndPayloadErrE.sysml +++ b/ttool/src/test/resources/cli/models/avSysML_DupChParamSndPayloadErrE.sysml @@ -23,7 +23,7 @@ package AvatarInstance { // Message of signal '@blk:B0'.'@sig:in0'............ part def '@MSG:B0.in0' :> '#InMessage' { - private part '@channel' : '#Channel' = '@syn:B0.in0<B1.out1'; + part '@channel' redefines '@channel' = '@syn:B0.in0<B1.out1'; attribute 'x' : Integer; attribute 'p' : '@dt:Point'; attribute 'b' : Boolean; @@ -43,7 +43,7 @@ package AvatarInstance { // Message of signal '@blk:B1'.'@sig:in1'............ part def '@MSG:B1.in1' :> '#InMessage' { - private part '@channel' : '#Channel' = '@syn:B0.out0>B1.in1'; + part '@channel' redefines '@channel' = '@syn:B0.out0>B1.in1'; attribute 'x' : Integer; attribute 'p' : '@dt:Point'; attribute 'b' : Boolean; diff --git a/ttool/src/test/resources/cli/models/avSysML_badFieldNameErr4.sysml b/ttool/src/test/resources/cli/models/avSysML_badFieldNameErr4.sysml index 6fb86be3c7..a3c0f52859 100644 --- a/ttool/src/test/resources/cli/models/avSysML_badFieldNameErr4.sysml +++ b/ttool/src/test/resources/cli/models/avSysML_badFieldNameErr4.sysml @@ -23,7 +23,7 @@ package AvatarInstance { // Message of signal '@blk:B0'.'@sig:in0'............ part def '@MSG:B0.in0' :> '#InMessage' { - private part '@channel' : '#Channel' = '@syn:B0.in0<B1.out1'; + part '@channel' redefines '@channel' = '@syn:B0.in0<B1.out1'; attribute 'x' : Integer; attribute 'p' : '@dt:Point'; attribute 'b' : Boolean; @@ -43,7 +43,7 @@ package AvatarInstance { // Message of signal '@blk:B1'.'@sig:in1'............ part def '@MSG:B1.in1' :> '#InMessage' { - private part '@channel' : '#Channel' = '@syn:B0.out0>B1.in1'; + part '@channel' redefines '@channel' = '@syn:B0.out0>B1.in1'; attribute 'x' : Integer; attribute 'p' : '@dt:Point'; attribute 'b' : Boolean; diff --git a/ttool/src/test/resources/cli/models/avSysML_dupAttrDeclK.sysml b/ttool/src/test/resources/cli/models/avSysML_dupAttrDeclK.sysml index 2105351536..05b65fe9fa 100644 --- a/ttool/src/test/resources/cli/models/avSysML_dupAttrDeclK.sysml +++ b/ttool/src/test/resources/cli/models/avSysML_dupAttrDeclK.sysml @@ -23,7 +23,7 @@ package AvatarInstance { // Message of signal '@blk:B0'.'@sig:in0'............ part def '@MSG:B0.in0' :> '#InMessage' { - private part '@channel' : '#Channel' = '@syn:B0.in0<B1_0.out1'; + part '@channel' redefines '@channel' = '@syn:B0.in0<B1_0.out1'; attribute 'x' : Integer; attribute 'p' : '@dt:Point'; attribute 'b' : Boolean; @@ -43,7 +43,7 @@ package AvatarInstance { // Message of signal '@blk:B1_0'.'@sig:in1'............ part def '@MSG:B1_0.in1' :> '#InMessage' { - private part '@channel' : '#Channel' = '@syn:B0.out0>B1_0.in1'; + part '@channel' redefines '@channel' = '@syn:B0.out0>B1_0.in1'; attribute 'x' : Integer; attribute 'p' : '@dt:Point'; attribute 'b' : Boolean; diff --git a/ttool/src/test/resources/cli/models/avSysML_missingAttrDeclErr6.sysml b/ttool/src/test/resources/cli/models/avSysML_missingAttrDeclErr6.sysml index b156aa968c..a16c919d2e 100644 --- a/ttool/src/test/resources/cli/models/avSysML_missingAttrDeclErr6.sysml +++ b/ttool/src/test/resources/cli/models/avSysML_missingAttrDeclErr6.sysml @@ -23,7 +23,7 @@ package AvatarInstance { // Message of signal '@blk:B0'.'@sig:in0'............ part def '@MSG:B0.in0' :> '#InMessage' { - private part '@channel' : '#Channel' = '@syn:B0.in0<B1.out1'; + part '@channel' redefines '@channel' = '@syn:B0.in0<B1.out1'; attribute 'x' : Integer; attribute 'p' : '@dt:Point'; attribute 'b' : Boolean; @@ -43,7 +43,7 @@ package AvatarInstance { // Message of signal '@blk:B1'.'@sig:in1'............ part def '@MSG:B1.in1' :> '#InMessage' { - private part '@channel' : '#Channel' = '@syn:B0.out0>B1.in1'; + part '@channel' redefines '@channel' = '@syn:B0.out0>B1.in1'; attribute 'x' : Integer; attribute 'p' : '@dt:Point'; attribute 'b' : Boolean; diff --git a/ttool/src/test/resources/cli/models/avSysML_missingBlockBindErrH.sysml b/ttool/src/test/resources/cli/models/avSysML_missingBlockBindErrH.sysml index f1c1cfb8dc..ede6c9e951 100644 --- a/ttool/src/test/resources/cli/models/avSysML_missingBlockBindErrH.sysml +++ b/ttool/src/test/resources/cli/models/avSysML_missingBlockBindErrH.sysml @@ -23,7 +23,7 @@ package AvatarInstance { // Message of signal '@blk:B0'.'@sig:in0'............ part def '@MSG:B0.in0' :> '#InMessage' { - private part '@channel' : '#Channel' = '@syn:B0.in0<B1_0.out1'; + part '@channel' redefines '@channel' = '@syn:B0.in0<B1_0.out1'; attribute 'x' : Integer; attribute 'p' : '@dt:Point'; attribute 'b' : Boolean; @@ -43,7 +43,7 @@ package AvatarInstance { // Message of signal '@blk:B1_0'.'@sig:in1'............ part def '@MSG:B1_0.in1' :> '#InMessage' { - private part '@channel' : '#Channel' = '@syn:B0.out0>B1_0.in1'; + part '@channel' redefines '@channel' = '@syn:B0.out0>B1_0.in1'; attribute 'x' : Integer; attribute 'p' : '@dt:Point'; attribute 'b' : Boolean; diff --git a/ttool/src/test/resources/cli/models/avSysML_missingBlockErr3.sysml b/ttool/src/test/resources/cli/models/avSysML_missingBlockErr3.sysml index e24ea58788..fd603ec0d3 100644 --- a/ttool/src/test/resources/cli/models/avSysML_missingBlockErr3.sysml +++ b/ttool/src/test/resources/cli/models/avSysML_missingBlockErr3.sysml @@ -23,7 +23,7 @@ package AvatarInstance { // Message of signal '@blk:B0'.'@sig:in0'............ part def '@MSG:B0.in0' :> '#InMessage' { - private part '@channel' : '#Channel' = '@syn:B0.in0<B1.out1'; + part '@channel' redefines '@channel' = '@syn:B0.in0<B1.out1'; attribute 'x' : Integer; attribute 'p' : '@dt:Point'; attribute 'b' : Boolean; @@ -43,7 +43,7 @@ package AvatarInstance { // Message of signal '@blk:B1'.'@sig:in1'............ part def '@MSG:B1.in1' :> '#InMessage' { - private part '@channel' : '#Channel' = '@syn:B0.out0>B1.in1'; + part '@channel' redefines '@channel' = '@syn:B0.out0>B1.in1'; attribute 'x' : Integer; attribute 'p' : '@dt:Point'; attribute 'b' : Boolean; diff --git a/ttool/src/test/resources/cli/models/avSysML_missingBlockErrG.sysml b/ttool/src/test/resources/cli/models/avSysML_missingBlockErrG.sysml index 734445d8f0..bc20d0361c 100644 --- a/ttool/src/test/resources/cli/models/avSysML_missingBlockErrG.sysml +++ b/ttool/src/test/resources/cli/models/avSysML_missingBlockErrG.sysml @@ -23,7 +23,7 @@ package AvatarInstance { // Message of signal '@blk:B0'.'@sig:in0'............ part def '@MSG:B0.in0' :> '#InMessage' { - private part '@channel' : '#Channel' = '@syn:B0.in0<B1.out1'; + part '@channel' redefines '@channel' = '@syn:B0.in0<B1.out1'; attribute 'x' : Integer; attribute 'p' : '@dt:Point'; attribute 'b' : Boolean; @@ -43,7 +43,7 @@ package AvatarInstance { // Message of signal '@blk:B1'.'@sig:in1'............ part def '@MSG:B1.in1' :> '#InMessage' { - private part '@channel' : '#Channel' = '@syn:B0.out0>B1.in1'; + part '@channel' redefines '@channel' = '@syn:B0.out0>B1.in1'; attribute 'x' : Integer; attribute 'p' : '@dt:Point'; attribute 'b' : Boolean; diff --git a/ttool/src/test/resources/cli/models/avSysML_missingChanInSndErrB.sysml b/ttool/src/test/resources/cli/models/avSysML_missingChanInSndErrB.sysml index 78ec201879..9f7974ea6b 100644 --- a/ttool/src/test/resources/cli/models/avSysML_missingChanInSndErrB.sysml +++ b/ttool/src/test/resources/cli/models/avSysML_missingChanInSndErrB.sysml @@ -23,7 +23,7 @@ package AvatarInstance { // Message of signal '@blk:B0'.'@sig:in0'............ part def '@MSG:B0.in0' :> '#InMessage' { - private part '@channel' : '#Channel' = '@syn:B0.in0<B1.out1'; + part '@channel' redefines '@channel' = '@syn:B0.in0<B1.out1'; attribute 'x' : Integer; attribute 'p' : '@dt:Point'; attribute 'b' : Boolean; @@ -43,7 +43,7 @@ package AvatarInstance { // Message of signal '@blk:B1'.'@sig:in1'............ part def '@MSG:B1.in1' :> '#InMessage' { - private part '@channel' : '#Channel' = '@syn:B0.out0>B1.in1'; + part '@channel' redefines '@channel' = '@syn:B0.out0>B1.in1'; attribute 'x' : Integer; attribute 'p' : '@dt:Point'; attribute 'b' : Boolean; diff --git a/ttool/src/test/resources/cli/models/avSysML_missingDatatypeDeclErrF.sysml b/ttool/src/test/resources/cli/models/avSysML_missingDatatypeDeclErrF.sysml index bf664651c7..638d6fee65 100644 --- a/ttool/src/test/resources/cli/models/avSysML_missingDatatypeDeclErrF.sysml +++ b/ttool/src/test/resources/cli/models/avSysML_missingDatatypeDeclErrF.sysml @@ -23,7 +23,7 @@ package AvatarInstance { // Message of signal '@blk:B0'.'@sig:in0'............ part def '@MSG:B0.in0' :> '#InMessage' { - private part '@channel' : '#Channel' = '@syn:B0.in0<B1.out1'; + part '@channel' redefines '@channel' = '@syn:B0.in0<B1.out1'; attribute 'x' : Integer; attribute 'p' : '@dt:Point'; attribute 'b' : Boolean; @@ -43,7 +43,7 @@ package AvatarInstance { // Message of signal '@blk:B1'.'@sig:in1'............ part def '@MSG:B1.in1' :> '#InMessage' { - private part '@channel' : '#Channel' = '@syn:B0.out0>B1.in1'; + part '@channel' redefines '@channel' = '@syn:B0.out0>B1.in1'; attribute 'x' : Integer; attribute 'p' : '@dt:Point'; attribute 'b' : Boolean; diff --git a/ttool/src/test/resources/cli/models/avSysML_missingMethDeclErr8.sysml b/ttool/src/test/resources/cli/models/avSysML_missingMethDeclErr8.sysml index 78115a78df..a8f3a2ef48 100644 --- a/ttool/src/test/resources/cli/models/avSysML_missingMethDeclErr8.sysml +++ b/ttool/src/test/resources/cli/models/avSysML_missingMethDeclErr8.sysml @@ -23,7 +23,7 @@ package AvatarInstance { // Message of signal '@blk:B0'.'@sig:in0'............ part def '@MSG:B0.in0' :> '#InMessage' { - private part '@channel' : '#Channel' = '@syn:B0.in0<B1.out1'; + part '@channel' redefines '@channel' = '@syn:B0.in0<B1.out1'; attribute 'x' : Integer; attribute 'p' : '@dt:Point'; attribute 'b' : Boolean; @@ -43,7 +43,7 @@ package AvatarInstance { // Message of signal '@blk:B1'.'@sig:in1'............ part def '@MSG:B1.in1' :> '#InMessage' { - private part '@channel' : '#Channel' = '@syn:B0.out0>B1.in1'; + part '@channel' redefines '@channel' = '@syn:B0.out0>B1.in1'; attribute 'x' : Integer; attribute 'p' : '@dt:Point'; attribute 'b' : Boolean; diff --git a/ttool/src/test/resources/cli/models/avSysML_missingOutMsgErr7.sysml b/ttool/src/test/resources/cli/models/avSysML_missingOutMsgErr7.sysml index ad09d36eaa..bf46ec6cf5 100644 --- a/ttool/src/test/resources/cli/models/avSysML_missingOutMsgErr7.sysml +++ b/ttool/src/test/resources/cli/models/avSysML_missingOutMsgErr7.sysml @@ -23,7 +23,7 @@ package AvatarInstance { // Message of signal '@blk:B0'.'@sig:in0'............ part def '@MSG:B0.in0' :> '#InMessage' { - private part '@channel' : '#Channel' = '@syn:B0.in0<B1.out1'; + part '@channel' redefines '@channel' = '@syn:B0.in0<B1.out1'; attribute 'x' : Integer; attribute 'p' : '@dt:Point'; attribute 'b' : Boolean; @@ -43,7 +43,7 @@ package AvatarInstance { // Message of signal '@blk:B1'.'@sig:in1'............ part def '@MSG:B1.in1' :> '#InMessage' { - private part '@channel' : '#Channel' = '@syn:B0.out0>B1.in1'; + part '@channel' redefines '@channel' = '@syn:B0.out0>B1.in1'; attribute 'x' : Integer; attribute 'p' : '@dt:Point'; attribute 'b' : Boolean; diff --git a/ttool/src/test/resources/cli/models/avSysML_missingParamSndPayloadErrD.sysml b/ttool/src/test/resources/cli/models/avSysML_missingParamSndPayloadErrD.sysml index a5363dd249..46f2d33581 100644 --- a/ttool/src/test/resources/cli/models/avSysML_missingParamSndPayloadErrD.sysml +++ b/ttool/src/test/resources/cli/models/avSysML_missingParamSndPayloadErrD.sysml @@ -23,7 +23,7 @@ package AvatarInstance { // Message of signal '@blk:B0'.'@sig:in0'............ part def '@MSG:B0.in0' :> '#InMessage' { - private part '@channel' : '#Channel' = '@syn:B0.in0<B1.out1'; + part '@channel' redefines '@channel' = '@syn:B0.in0<B1.out1'; attribute 'x' : Integer; attribute 'p' : '@dt:Point'; attribute 'b' : Boolean; @@ -43,7 +43,7 @@ package AvatarInstance { // Message of signal '@blk:B1'.'@sig:in1'............ part def '@MSG:B1.in1' :> '#InMessage' { - private part '@channel' : '#Channel' = '@syn:B0.out0>B1.in1'; + part '@channel' redefines '@channel' = '@syn:B0.out0>B1.in1'; attribute 'x' : Integer; attribute 'p' : '@dt:Point'; attribute 'b' : Boolean; diff --git a/ttool/src/test/resources/cli/models/avSysML_missingSignalBindingErr5.sysml b/ttool/src/test/resources/cli/models/avSysML_missingSignalBindingErr5.sysml index 97b86a27e0..321b89f9cd 100644 --- a/ttool/src/test/resources/cli/models/avSysML_missingSignalBindingErr5.sysml +++ b/ttool/src/test/resources/cli/models/avSysML_missingSignalBindingErr5.sysml @@ -23,7 +23,7 @@ package AvatarInstance { // Message of signal '@blk:B0'.'@sig:in0'............ part def '@MSG:B0.in0' :> '#InMessage' { - private part '@channel' : '#Channel' = '@syn:B0.in0<B1.out1'; + part '@channel' redefines '@channel' = '@syn:B0.in0<B1.out1'; attribute 'x' : Integer; attribute 'p' : '@dt:Point'; attribute 'b' : Boolean; @@ -43,7 +43,7 @@ package AvatarInstance { // Message of signal '@blk:B1'.'@sig:in1'............ part def '@MSG:B1.in1' :> '#InMessage' { - private part '@channel' : '#Channel' = '@syn:B0.out0>B1.in1'; + part '@channel' redefines '@channel' = '@syn:B0.out0>B1.in1'; attribute 'x' : Integer; attribute 'p' : '@dt:Point'; attribute 'b' : Boolean; diff --git a/ttool/src/test/resources/cli/models/avSysML_missingSndPayloadN.sysml b/ttool/src/test/resources/cli/models/avSysML_missingSndPayloadN.sysml index 3ef7113877..bb2f88120f 100644 --- a/ttool/src/test/resources/cli/models/avSysML_missingSndPayloadN.sysml +++ b/ttool/src/test/resources/cli/models/avSysML_missingSndPayloadN.sysml @@ -23,7 +23,7 @@ package AvatarInstance { // Message of signal '@blk:B0'.'@sig:in0'............ part def '@MSG:B0.in0' :> '#InMessage' { - private part '@channel' : '#Channel' = '@syn:B0.in0<B1_0.out1'; + part '@channel' redefines '@channel' = '@syn:B0.in0<B1_0.out1'; attribute 'x' : Integer; attribute 'p' : '@dt:Point'; attribute 'b' : Boolean; @@ -43,7 +43,7 @@ package AvatarInstance { // Message of signal '@blk:B1_0'.'@sig:in1'............ part def '@MSG:B1_0.in1' :> '#InMessage' { - private part '@channel' : '#Channel' = '@syn:B0.out0>B1_0.in1'; + part '@channel' redefines '@channel' = '@syn:B0.out0>B1_0.in1'; attribute 'x' : Integer; attribute 'p' : '@dt:Point'; attribute 'b' : Boolean; diff --git a/ttool/src/test/resources/cli/models/avSysML_missingStateErrA.sysml b/ttool/src/test/resources/cli/models/avSysML_missingStateErrA.sysml index a4ed2c4122..1c8a2e12ff 100644 --- a/ttool/src/test/resources/cli/models/avSysML_missingStateErrA.sysml +++ b/ttool/src/test/resources/cli/models/avSysML_missingStateErrA.sysml @@ -23,7 +23,7 @@ package AvatarInstance { // Message of signal '@blk:B0'.'@sig:in0'............ part def '@MSG:B0.in0' :> '#InMessage' { - private part '@channel' : '#Channel' = '@syn:B0.in0<B1.out1'; + part '@channel' redefines '@channel' = '@syn:B0.in0<B1.out1'; attribute 'x' : Integer; attribute 'p' : '@dt:Point'; attribute 'b' : Boolean; @@ -43,7 +43,7 @@ package AvatarInstance { // Message of signal '@blk:B1'.'@sig:in1'............ part def '@MSG:B1.in1' :> '#InMessage' { - private part '@channel' : '#Channel' = '@syn:B0.out0>B1.in1'; + part '@channel' redefines '@channel' = '@syn:B0.out0>B1.in1'; attribute 'x' : Integer; attribute 'p' : '@dt:Point'; attribute 'b' : Boolean; diff --git a/ttool/src/test/resources/cli/models/avSysML_missingStateMachineErr9.sysml b/ttool/src/test/resources/cli/models/avSysML_missingStateMachineErr9.sysml index ddfb7bef81..ff047fce38 100644 --- a/ttool/src/test/resources/cli/models/avSysML_missingStateMachineErr9.sysml +++ b/ttool/src/test/resources/cli/models/avSysML_missingStateMachineErr9.sysml @@ -23,7 +23,7 @@ package AvatarInstance { // Message of signal '@blk:B0'.'@sig:in0'............ part def '@MSG:B0.in0' :> '#InMessage' { - private part '@channel' : '#Channel' = '@syn:B0.in0<B1.out1'; + part '@channel' redefines '@channel' = '@syn:B0.in0<B1.out1'; attribute 'x' : Integer; attribute 'p' : '@dt:Point'; attribute 'b' : Boolean; @@ -43,7 +43,7 @@ package AvatarInstance { // Message of signal '@blk:B1'.'@sig:in1'............ part def '@MSG:B1.in1' :> '#InMessage' { - private part '@channel' : '#Channel' = '@syn:B0.out0>B1.in1'; + part '@channel' redefines '@channel' = '@syn:B0.out0>B1.in1'; attribute 'x' : Integer; attribute 'p' : '@dt:Point'; attribute 'b' : Boolean; diff --git a/ttool/src/test/resources/cli/models/avSysML_missingTimerDeclErrI.sysml b/ttool/src/test/resources/cli/models/avSysML_missingTimerDeclErrI.sysml index cfd10b6bc5..a89ebf3358 100644 --- a/ttool/src/test/resources/cli/models/avSysML_missingTimerDeclErrI.sysml +++ b/ttool/src/test/resources/cli/models/avSysML_missingTimerDeclErrI.sysml @@ -23,7 +23,7 @@ package AvatarInstance { // Message of signal '@blk:B0'.'@sig:in0'............ part def '@MSG:B0.in0' :> '#InMessage' { - private part '@channel' : '#Channel' = '@syn:B0.in0<B1_0.out1'; + part '@channel' redefines '@channel' = '@syn:B0.in0<B1_0.out1'; attribute 'x' : Integer; attribute 'p' : '@dt:Point'; attribute 'b' : Boolean; @@ -43,7 +43,7 @@ package AvatarInstance { // Message of signal '@blk:B1_0'.'@sig:in1'............ part def '@MSG:B1_0.in1' :> '#InMessage' { - private part '@channel' : '#Channel' = '@syn:B0.out0>B1_0.in1'; + part '@channel' redefines '@channel' = '@syn:B0.out0>B1_0.in1'; attribute 'x' : Integer; attribute 'p' : '@dt:Point'; attribute 'b' : Boolean; diff --git a/ttool/src/test/resources/cli/models/avSysML_missingTimerOnTransErrJ.sysml b/ttool/src/test/resources/cli/models/avSysML_missingTimerOnTransErrJ.sysml index c2ba85139f..f91318e3cd 100644 --- a/ttool/src/test/resources/cli/models/avSysML_missingTimerOnTransErrJ.sysml +++ b/ttool/src/test/resources/cli/models/avSysML_missingTimerOnTransErrJ.sysml @@ -23,7 +23,7 @@ package AvatarInstance { // Message of signal '@blk:B0'.'@sig:in0'............ part def '@MSG:B0.in0' :> '#InMessage' { - private part '@channel' : '#Channel' = '@syn:B0.in0<B1_0.out1'; + part '@channel' redefines '@channel' = '@syn:B0.in0<B1_0.out1'; attribute 'x' : Integer; attribute 'p' : '@dt:Point'; attribute 'b' : Boolean; @@ -43,7 +43,7 @@ package AvatarInstance { // Message of signal '@blk:B1_0'.'@sig:in1'............ part def '@MSG:B1_0.in1' :> '#InMessage' { - private part '@channel' : '#Channel' = '@syn:B0.out0>B1_0.in1'; + part '@channel' redefines '@channel' = '@syn:B0.out0>B1_0.in1'; attribute 'x' : Integer; attribute 'p' : '@dt:Point'; attribute 'b' : Boolean; diff --git a/ttool/src/test/resources/cli/models/avSysML_missingTransDeclErrC.sysml b/ttool/src/test/resources/cli/models/avSysML_missingTransDeclErrC.sysml index 31e014a861..f10f6af72e 100644 --- a/ttool/src/test/resources/cli/models/avSysML_missingTransDeclErrC.sysml +++ b/ttool/src/test/resources/cli/models/avSysML_missingTransDeclErrC.sysml @@ -23,7 +23,7 @@ package AvatarInstance { // Message of signal '@blk:B0'.'@sig:in0'............ part def '@MSG:B0.in0' :> '#InMessage' { - private part '@channel' : '#Channel' = '@syn:B0.in0<B1.out1'; + part '@channel' redefines '@channel' = '@syn:B0.in0<B1.out1'; attribute 'x' : Integer; attribute 'p' : '@dt:Point'; attribute 'b' : Boolean; @@ -43,7 +43,7 @@ package AvatarInstance { // Message of signal '@blk:B1'.'@sig:in1'............ part def '@MSG:B1.in1' :> '#InMessage' { - private part '@channel' : '#Channel' = '@syn:B0.out0>B1.in1'; + part '@channel' redefines '@channel' = '@syn:B0.out0>B1.in1'; attribute 'x' : Integer; attribute 'p' : '@dt:Point'; attribute 'b' : Boolean; diff --git a/ttool/src/test/resources/cli/models/avSysML_missingTransRecvPayloadM.sysml b/ttool/src/test/resources/cli/models/avSysML_missingTransRecvPayloadM.sysml index 6ece923ffb..c3a6a8d6b3 100644 --- a/ttool/src/test/resources/cli/models/avSysML_missingTransRecvPayloadM.sysml +++ b/ttool/src/test/resources/cli/models/avSysML_missingTransRecvPayloadM.sysml @@ -23,7 +23,7 @@ package AvatarInstance { // Message of signal '@blk:B0'.'@sig:in0'............ part def '@MSG:B0.in0' :> '#InMessage' { - private part '@channel' : '#Channel' = '@syn:B0.in0<B1_0.out1'; + part '@channel' redefines '@channel' = '@syn:B0.in0<B1_0.out1'; attribute 'x' : Integer; attribute 'p' : '@dt:Point'; attribute 'b' : Boolean; @@ -43,7 +43,7 @@ package AvatarInstance { // Message of signal '@blk:B1_0'.'@sig:in1'............ part def '@MSG:B1_0.in1' :> '#InMessage' { - private part '@channel' : '#Channel' = '@syn:B0.out0>B1_0.in1'; + part '@channel' redefines '@channel' = '@syn:B0.out0>B1_0.in1'; attribute 'x' : Integer; attribute 'p' : '@dt:Point'; attribute 'b' : Boolean; diff --git a/ttool/src/test/resources/cli/models/avSysML_original.sysml b/ttool/src/test/resources/cli/models/avSysML_original.sysml index 42bc73ad4e..cdd177a87b 100644 --- a/ttool/src/test/resources/cli/models/avSysML_original.sysml +++ b/ttool/src/test/resources/cli/models/avSysML_original.sysml @@ -16,7 +16,7 @@ package AvatarInstance { // Message of signal '@blk:B0'.'@sig:in0'............ part def '@MSG:B0.in0' :> '#InMessage' { - private part '@channel' : '#Channel' = '@nbf:B0.in0<B2.out2'; + part '@channel' redefines '@channel' = '@nbf:B0.in0<B2.out2'; attribute 'x' : Integer; attribute 'b' : Boolean; } @@ -37,7 +37,7 @@ package AvatarInstance { // Message of signal '@blk:B1'.'@sig:in1'............ part def '@MSG:B1.in1' :> '#InMessage' { - private part '@channel' : '#Channel' = '@syn:B0.out0>B1.in1'; + part '@channel' redefines '@channel' = '@syn:B0.out0>B1.in1'; attribute 'x' : Integer; attribute 'b' : Boolean; } diff --git a/ttool/src/test/resources/cli/models/avSysML_originalRealNames.sysml b/ttool/src/test/resources/cli/models/avSysML_originalRealNames.sysml index 48f112cab5..d2e2292287 100644 --- a/ttool/src/test/resources/cli/models/avSysML_originalRealNames.sysml +++ b/ttool/src/test/resources/cli/models/avSysML_originalRealNames.sysml @@ -16,7 +16,7 @@ package AvatarInstance { // Message of signal B0.in0............ part def msg_in0 :> '#InMessage' { - private part '@channel' : '#Channel' = fifo_in0_out2; + part '@channel' redefines '@channel' = fifo_in0_out2; attribute x : Integer; attribute b : Boolean; } @@ -37,7 +37,7 @@ package AvatarInstance { // Message of signal B1.in1............ part def msg_in1 :> '#InMessage' { - private part '@channel' : '#Channel' = sync_out0_in1; + part '@channel' redefines '@channel' = sync_out0_in1; attribute x : Integer; attribute b : Boolean; } diff --git a/ttool/src/test/resources/cli/models/avSysML_syntaxErr1.sysml b/ttool/src/test/resources/cli/models/avSysML_syntaxErr1.sysml index 1f3301e53d..3dbd45100b 100644 --- a/ttool/src/test/resources/cli/models/avSysML_syntaxErr1.sysml +++ b/ttool/src/test/resources/cli/models/avSysML_syntaxErr1.sysml @@ -23,7 +23,7 @@ package AvatarInstance { // Message of signal '@blk:B0'.'@sig:in0'............ part def '@MSG:B0.in0' :> '#InMessage' { - private part '@channel' : '#Channel' = '@syn:B0.in0<B1.out1'; + part '@channel' redefines '@channel' = '@syn:B0.in0<B1.out1'; attribute 'x' : Integer; attribute 'p' : '@dt:Point'; attribute 'b' : Boolean; @@ -43,7 +43,7 @@ package AvatarInstance { // Message of signal '@blk:B1'.'@sig:in1'............ part def '@MSG:B1.in1' :> '#InMessage' { - private part '@channel' : '#Channel' = '@syn:B0.out0>B1.in1'; + part '@channel' redefines '@channel' = '@syn:B0.out0>B1.in1'; attribute 'x' : Integer; attribute 'p' : '@dt:Point'; attribute 'b' : Boolean; diff --git a/ttool/src/test/resources/cli/models/avSysML_syntaxErr2.sysml b/ttool/src/test/resources/cli/models/avSysML_syntaxErr2.sysml index 7bdcccae36..6f8fff71ae 100644 --- a/ttool/src/test/resources/cli/models/avSysML_syntaxErr2.sysml +++ b/ttool/src/test/resources/cli/models/avSysML_syntaxErr2.sysml @@ -23,7 +23,7 @@ package AvatarInstance { // Message of signal '@blk:B0'.'@sig:in0'............ part def '@MSG:B0.in0' :> '#InMessage' { - private part '@channel' : '#Channel' = '@syn:B0.in0<B1.out1'; + part '@channel' redefines '@channel' = '@syn:B0.in0<B1.out1'; attribute 'x' : Integer; attribute 'p' : '@dt:Point'; attribute 'b' : Boolean; @@ -43,7 +43,7 @@ package AvatarInstance { // Message of signal '@blk:B1'.'@sig:in1'............ part def '@MSG:B1.in1' :> '#InMessage' { - private part '@channel' : '#Channel' = '@syn:B0.out0>B1.in1'; + part '@channel' redefines '@channel' = '@syn:B0.out0>B1.in1'; attribute 'x' : Integer; attribute 'p' : '@dt:Point'; attribute 'b' : Boolean; diff --git a/ttool/src/test/resources/cli/models/avSysML_timer.sysml b/ttool/src/test/resources/cli/models/avSysML_timer.sysml index 3a635c5e38..11c0de002c 100644 --- a/ttool/src/test/resources/cli/models/avSysML_timer.sysml +++ b/ttool/src/test/resources/cli/models/avSysML_timer.sysml @@ -23,7 +23,7 @@ package AvatarInstance { // Message of signal '@blk:B0'.'@sig:in0'............ part def '@MSG:B0.in0' :> '#InMessage' { - private part '@channel' : '#Channel' = '@syn:B0.in0<B1_0.out1'; + part '@channel' redefines '@channel' = '@syn:B0.in0<B1_0.out1'; attribute 'x' : Integer; attribute 'p' : '@dt:Point'; attribute 'b' : Boolean; @@ -43,7 +43,7 @@ package AvatarInstance { // Message of signal '@blk:B1_0'.'@sig:in1'............ part def '@MSG:B1_0.in1' :> '#InMessage' { - private part '@channel' : '#Channel' = '@syn:B0.out0>B1_0.in1'; + part '@channel' redefines '@channel' = '@syn:B0.out0>B1_0.in1'; attribute 'x' : Integer; attribute 'p' : '@dt:Point'; attribute 'b' : Boolean; diff --git a/ttool/src/test/resources/cli/models/avSysML_timerRealNames.sysml b/ttool/src/test/resources/cli/models/avSysML_timerRealNames.sysml index 78eb4e49e3..37a3b54563 100644 --- a/ttool/src/test/resources/cli/models/avSysML_timerRealNames.sysml +++ b/ttool/src/test/resources/cli/models/avSysML_timerRealNames.sysml @@ -23,7 +23,7 @@ package AvatarInstance { // Message of signal B0.in0............ part def msg_in0 :> '#InMessage' { - private part '@channel' : '#Channel' = sync_in0_out1; + part '@channel' redefines '@channel' = sync_in0_out1; attribute x : Integer; attribute p : Point; attribute b : Boolean; @@ -43,7 +43,7 @@ package AvatarInstance { // Message of signal B1_0.in1............ part def msg_in1 :> '#InMessage' { - private part '@channel' : '#Channel' = sync_out0_in1; + part '@channel' redefines '@channel' = sync_out0_in1; attribute x : Integer; attribute p : Point; attribute b : Boolean; -- GitLab