Mercurial > cgi-bin > hgwebdir.cgi > VMS > 0__Writings > kshalle
changeset 100:eb146c5c05a8
maintenance -- DSLDI slides, VMS__Full_conf_paper_2.tex update, etc..
line diff
1.1 Binary file 0__Papers/Holistic_Model/Perf_Tune/europar2013_submission_22.pdf has changed
2.1 Binary file 0__Papers/Holistic_Model/Perf_Tune__long_version_for_TACO/latex/Holistic_Perf_Tuning.pdf has changed
3.1 Binary file 0__Papers/Holistic_Model/Perf_Tune__long_version_for_TACO/latex/Holistic_Perf_Tuning__single_column_format.pdf has changed
4.1 Binary file 0__Papers/Ideas/VoteBucks/latex/continuous_voting.pdf has changed
5.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 5.2 +++ b/0__Papers/Ideas/VoteBucks/latex/continuous_voting.tex Sat Aug 03 19:24:22 2013 -0700 5.3 @@ -0,0 +1,392 @@ 5.4 +%&latex 5.5 +\documentclass{article} 5.6 + 5.7 +\begin{document} 5.8 + 5.9 +%+Title 5.10 +\title{Toward a True Democracy: Continuous Voting} 5.11 +\author{Sean Halle} 5.12 +\date{} 5.13 +\maketitle 5.14 +%-Title 5.15 + 5.16 +%+Abstract 5.17 +\begin{abstract} 5.18 + 5.19 + Democracy rests on the principle that representatives carry out the will of the people governed, yet the centuries old system of periodic voting provides only weak feedback from the people to the representative, allowing governments to move in directions at odds with the majority of the people for sustained periods of time. We propose a continuous feedback system that puts the onus on the representative to actively solicit input from the populace and continuously engage with them in order to remain in office. This encourages stronger feedback from the people governed, applying force to the representative to carry out their wishes. The system includes a mechanism for establishing timely topics and effectively weighting their relative importance to each voter. It then records whether a voter approves or disapproves of the representative's statements and voting on those topics. The system tracks the weighted average approval of the representative and places limits on the duration the average can remain negative before the representative is removed from office. This places the onus on the representative to reach out to the populace, to interact with them in a meaningful way, and convince them to actively update their ratings, all of which strengthen feedback from the people to drive the actions of the representative. 5.20 + 5.21 +\end{abstract} 5.22 +%-Abstract 5.23 + 5.24 +%+Contents 5.25 +%\tableofcontents 5.26 +%-Contents 5.27 + 5.28 + 5.29 + 5.30 + 5.31 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 5.32 +% 5.33 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 5.34 + 5.35 +\section{Motivation and Overview} 5.36 +Democracy rests on the principle that government should carry out the will of the people 5.37 +governed. However, in many democracies, few believe 5.38 +this principle is carried out in practice. Indeed, many voters feel that their voice goes unheard. The 5.39 +behaviors of representatives often disproportionately reflect the desires of a few who have disproportionate influence, due to a variety of factors. Thus, modern democracies fall short of their ideal, of 5.40 +governance according to the will of the majority of the people. 5.41 + 5.42 +To mitigate this, we propose tightening feedback from the governed, with a continuous voting system that will clearly communicate the will of the people and at the same time force the representative to comply with it. The system we propose has three aspects: first, it makes the actions of a representative readily available to the people; second, it clearly and quantitatively communicates the reactions of the people back to the 5.43 +representative, letting them know definitively what the people want the representative to do; third it removes from office any representative 5.44 +who fails to effectively accomplish the wishes of the constituency. 5.45 + 5.46 +Altogether, the aspects will give voters an easy way to learn what their representative is doing, then respond to that. The implementation should organize the wealth of possible topics, in such a way that the most relevant rise to the top. It should also inform about in-progress work and up-coming activities such as legislation being drafted that the representative is involved with, and up-coming votes on bills. 5.47 + 5.48 + Based on this information, the voter needs a simple mechanism to rate the representative on each topic, which communicates their relative strength of feeling. One means provides a fixed total of `emotion' tokens, which the voter divides among the topics they care about, in proportion to their level of feeling. For example, with 100 tokens, they may assign 50 to their strongest topic, 25 to the next, and 5 each to five more topics. They also state wether that is a positive feeling, meaning approval, or a negative one, meaning disapproval. For up-coming votes, they can even pre-assign a change in tokens, based on the way the representative votes. For example `+5 to topic X if they vote yes, -5 if no'. 5.49 + 5.50 +The system then adds up the tokens across all voters, creating a sum for each topic, and an overall sum. The representatives and the people can query the system about the sums, in order to learn the net desires of the constituents. For example, they can discover which topics have the most emotion assigned to them, and the net sum on those. A positive sum says the representative is perceived to be succeeding in doing what the constituents want on that topic. Queries can also be made to discover the highest net sum topics, both positive and negative, which gives clear indication of what the representative is doing well versus what they need to improve on. 5.51 + 5.52 +With a clear directive, the representative knows what the people want. If their net sum is comfortably positive, they continue their current path. However, if the net sum is close to going negative or is already negative, they must engage the constituents, in order to improve the net sum. They may choose to try to convince the constituents to change their minds on the topics, or else try to convince them that the representative has, indeed modified their behaviors, and to please update the ratings. 5.53 + 5.54 + The representative is allowed to have a negative sum for a maximum period of time, after which they lose the office. This gives them a chance to modify their behaviors, then show the people that their wishes have been heard and followed. The period of time that the sum can remain negative depends upon the office. For example, Governor or President may have a longer span than a member of the legislature, due to the intention that the office be a leader, which often involves making unpopular decisions that end up being in the best interest over the long term. 5.55 + 5.56 + 5.57 + 5.58 + 5.59 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 5.60 +% 5.61 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 5.62 + 5.63 +\section{Visions of Results from Use of the System} 5.64 + 5.65 +It is anticipated that non-profits and partisan sites will spring up that have dedicated people who watch 5.66 +the system, read the pending bills, and write up summaries and recommendations for voters. The recommendations may include links that connect directly to the text of pending bills. For example, a recommendation written on a particular bill may 5.67 +include links to the token-assigning page for a particular representative, which lets voters easily tell their representative how they want the representative to vote on the bill. 5.68 + 5.69 +One anticipated effect will be to diffuse the power of narrow-interest groups and to reduce the influence of campaign 5.70 +contributions. Political ads may still run when important legislation is being debated. However, accurate and easy searching of the actual comments of a constituent's own representative, along with the efficiency of the internet at disseminating analyses, that are then tied by the system directly to 5.71 +the token-assigning pages, will diminish the influence such ads have on the representatives. In addition, such ads aren't tied to a representative, but rather to an issue, so the representative gains nothing from the financer of the ad. Rather, the ad has to influence the people, who then direct the representative, which comes closer to the democratic ideal. Although narrow interests may help a particular candidate get elected, their influence will quickly diminish as the representative is forced to 5.72 +listen to the will of the people or be removed. 5.73 + 5.74 +The mechanism we propose is web-centric, which may raise concerns about voter access, especially for poorer or less educated voters. However, the web 5.75 +has reached most homes in the country, and essentially every library. We see establishing a voter center in 5.76 +every library, which is government funded and has trained personnel who help anyone who is a registered 5.77 +voter to participate in the system. Only modest funds would be required to ensure that every community, regardless of 5.78 +economic status, has a library, with such a center. 5.79 + 5.80 +As an example, if adopted at the federal level, the proposed system will require changes in the process that congress follows. In particular, bills will 5.81 +have to be written in electronic form with tags on each paragraph indicating which issues are touched 5.82 +upon in that paragraph. The bills will have to be submitted electronically at the time they are introduced. 5.83 + 5.84 +In addition, the congressional record or an equivalent would be put into electronic form, with 5.85 +each of its paragraphs tagged with which issues it touches upon. The record would be linked 5.86 +to the web site, allowing quick and easy searches for statements made by each representative, grouped by particular issue. 5.87 +The proposed system would also change the rules for when elections are held and for terms in 5.88 +office. Hence, federal adoption would require a constitutional amendment. 5.89 + 5.90 + 5.91 + 5.92 + 5.93 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 5.94 +% 5.95 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 5.96 + 5.97 +\section{Usage of the Web Site} 5.98 +We anticipate that the voter will interact with the system via a web site, where they will research their representative'’s 5.99 +behavior and then assign their emotion tokens in order to influence that behavior. The site will provide a number of views into the actions and 5.100 +statements of a representative. It enables the voter to focus on only the issues they care about and only 5.101 +on the related statements and actions made by their own representative about those issues. 5.102 + 5.103 +The research views are linked to 5.104 +token assigning views. That way, the voter may easily navigate back and forth between research and token assignment. 5.105 + 5.106 +We propose that a voter be given a number of screens organized into sets. With one set of screens they can research legislation that is pending, focusing on the parts that pertains to 5.107 +issues the voter cares about. With another set they can view how their representative voted on past bills, as well as 5.108 +see the text or video of the remarks the representative made during debate on the bill, but filtered so that only remarks relevant to issues of interest are shown. Another set of screens pertains to suggesting new issues not currently listed that are of interest to the voter. Finally, a set 5.109 +of screens is provided for assigning approval versus disapproval to their representative, on each 5.110 +issue, and allotting emotion tokens among the issues, to show how strongly the voter feels about each. 5.111 + 5.112 + 5.113 + 5.114 + 5.115 +\subsection{Researching Bills} 5.116 +To research legislation of interest, voters have a number of screens available: 5.117 + 5.118 +\begin{itemize} 5.119 +\item List of completed bills related to a particular issue: for each issue, the voter can get a screen that 5.120 +shows all bills related to that issue and how each of their representatives voted on that bill. It also 5.121 +shows what percentage of the paragraphs in the bill are tagged with that issue. A link next to 5.122 +each bill goes to a screen that lists all sections of the bill that were tagged as discussing that issue. 5.123 +The voter can then read what that bill said regarding that issue. Each representative is listed next 5.124 +to the name of the bill. The representative’s name is a link to the transcript of what the representative said on the floor during debate of the bill, and to a digitized video of that representative 5.125 +making those remarks on the floor. 5.126 + 5.127 +\item List of the sections of a given bill, either pending or already voted on, that relates to a given issue: 5.128 +A voter can filter the text of a bill to only show the paragraphs tagged with an issue they are interested in. The voter can then read what that bill said regarding that issue. 5.129 + 5.130 +\item List of all bills that have been introduced but not yet voted on: This screen can be filtered to only 5.131 +show bills related to a set of issues the voter cares about. The list will arrange itself according to 5.132 +issue, then according to status – whether still being authored, or in committee, or on the floor. A 5.133 +voter can click on any bill in the list to see the sections relating to each issue. A voter can also 5.134 +filter pending bills according to what percentage of their text relates to a given list of issues important to that voter. 5.135 + 5.136 +\item Creating an e-mail notification filter: The voter can create a filter by choosing issues of importance 5.137 +to them. When a bill is introduced that has more than a certain percentage of its paragraphs 5.138 +tagged with one of the issues, then an e-mail notification is sent to the voter with a link to the bill. 5.139 + 5.140 +\item When viewing a bill, a link to that bill’'s entry on the token allocation page: When a voter views a 5.141 +pending bill and decides they want to tell their representative how to vote on it, they click on the 5.142 +link, which takes them directly to that bill’'s entry on the token allocation page. 5.143 +\end{itemize} 5.144 + 5.145 +\subsection{Researching Representatives} 5.146 +To discover where their representative stands on an issue, the voter has a number of screens available: 5.147 + 5.148 +\begin{itemize} 5.149 +\item List of the voter'’s representatives: with the voter’s own total sum for each and a graph of the representative’s' overall total moving-average 5.150 + 5.151 +\item list of their representatives, with the voter’s own total for each representative and a filtered list of 5.152 +bills, with links for each bill to how that rep voted on that bill, transcripts of remarks the rep made 5.153 +on the floor, and video of the rep delivering those remarks. 5.154 +\item for each issue, for each rep, a voter can get a screen that shows all bills that have at least some 5.155 +portion of their text related to that issue (and shows the percentage of the text related to that 5.156 +issue), and how that rep voted on each of those bills. A link next to each bill goes to a screen that 5.157 +lists all sections of the bill that were tagged as discussing that issue. The voter can then read what 5.158 +that bill said regarding that issue. The screen also has a link to a transcript of what the represen- 5.159 +tative said on the floor during debate of the bill, and a link to a digitized video of that representa- 5.160 +tive making their remarks on the floor. 5.161 +\item A list of bills the representative has authored, co-authored, or endorsed. 5.162 +\item A list of bills currently before the representative in committee. 5.163 +\item A list of ammendments the representative has authored. 5.164 + 5.165 + 5.166 +\item a list of all representatives in congress and the executive branch, with current total net votes for 5.167 +each, and the current moving average net total for each. A voter can check-mark representatives 5.168 +that they want included in a summary screen 5.169 + 5.170 +\item a summary screen that shows all check-marked reps, with graph of each’ moving average and links 5.171 +to summary screens for each representative. 5.172 +\item a screen for each state, with that state’s representatives, a graph of the net total emotion tokens for 5.173 +each representative, and a line to where on the state map is their constituency 5.174 +\item a summary screen for a given representative that shows a state map, where on the map their con- 5.175 +stituency is, a statement from the rep of their position overall, and a list of the issues. The voter 5.176 +can click on each issue to get a statement from the rep of where they stand on it. 5.177 +\end{itemize} 5.178 + 5.179 + 5.180 +\subsection{Suggesting New Issues} 5.181 +The screens used to suggest new issues to add to the list: 5.182 + 5.183 +\begin{itemize} 5.184 +\item List of suggestions that are pending inclusion in the official list: the first screen has suggestions 5.185 +that are pending. The voter votes on which of these they want to see make the final list. 5.186 +\item the second screen of the new issues process has a text box where the voter can type in, free-flow, 5.187 +one issue. The voter is allowed to suggest three issues per week. New issues are posted once per 5.188 +month to the first screen, and once per month to the official list that appears on the vote screens. 5.189 +(The GAO is responsible for reading the suggestions and choosing what goes into the pending list) 5.190 +\end{itemize} 5.191 + 5.192 +\subsection{Assigning Emotion Tokens} 5.193 +These screens are used by voters to make their will known to their representatives: 5.194 + 5.195 +\begin{itemize} 5.196 +\item List of issues, for a given representative: The screen shows all of the current issues with thumbs up, 5.197 +don’t care, and thumbs down radio button next to each. There is also a box showing the emotion tokens assigned to that issue. At the top of the page is the weighted average of tokens assigned, and 5.198 +how many emotion tokens remain available. 5.199 +\item List of pending bills: Shows all pending bills with a place to enter how the voter wishes their representatives to vote on the bill and how strongly they feel, from 1 to 5. This screen allows clicking 5.200 +on each bill, which takes the viewer to the research screens described above. 5.201 +\end{itemize} 5.202 + 5.203 + 5.204 +\subsection{Viewing Vote Status, for Use by Representatives and Voters Alike} 5.205 +Both the representative and the voter can check to see how the representative is doing. These screens are 5.206 +the representative'’s lifeline, telling them the will of the voters and whether they are in danger of losing 5.207 +office: 5.208 +\begin{itemize} 5.209 +\item Will of the voters on pending bills: shows each pending bill and both the simple percentage of how 5.210 +many voters chose yes vs no, plus the weighted percentage that shows how strongly each voter felt. 5.211 +\item Moving average of a Representative: shows the weighted average for a given representative, 5.212 +starting when they took office. It allows zooming, shows the grace period, and highlights how 5.213 +much of the grace period is below 50\%. An alert may be set on this screen that will send an e- 5.214 +mail message when the average drops below 50\%, and when more than a certain number of days in 5.215 +the grace period have been below 50\%. 5.216 +\end{itemize} 5.217 + 5.218 + 5.219 + 5.220 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 5.221 +% 5.222 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 5.223 +\section{The Processes within the System} 5.224 + 5.225 +The system has five processes, one has already been described in detail: the process for researching a representative's behaviors and assigning tokens to affect those behaviors. 5.226 + 5.227 +The four remaining are: a process for having new issues adopted and outdated issues removed; 5.228 +a process for electing and removing representatives; a process for bills that governs how they are authored, debated, and tagged for search; and a process for running the web site at the center of the system, such that it is available, verifiable, and secure. 5.229 + 5.230 +\subsection{Adopting New Issues and Removing Outdated Issues} 5.231 + 5.232 +The GAO, or a specially created non-partisan, politically insulated body, is in charge of the maintenance and logistics of the web-sites. This managing-body also sets the list of issues, updating it once per month. The web-sites provide a mechanism for voters to suggest new issues they would like to see added to the list. The managing-body receives new-issue suggestions, sorts them, and picks the most popular ones. They replace the issue that got the fewest emotion tokens assigned to it with the top suggestion. 5.233 + 5.234 +In rare cases, more than one issue is removed, or more than one is added. The rules to determine when will be codified after experience with using such a system in smaller test settings. 5.235 + 5.236 +Only suggestions from voters can cause an issues to be listed. The wording of one of the suggestions 5.237 +must be adopted verbatim. The rules to determine which one is adopted will be decided after more experience using such a system in test settings. 5.238 + 5.239 +Representatives have no input into adoption of issues. The 5.240 +rules will be chosen in such a way that the potential for partisan influence is minimized. 5.241 +Suggestions go through a two-stage system. First suggestions are sorted, and the text of one of a 5.242 +group is chosen to represent that group. That is then posted on the first of the two pages that voters use 5.243 +to suggest new categories. On the first page, voters pick which of the pending suggestions they like. 5.244 +Then if they still want, on the second page they can write and send their own suggestion. 5.245 + 5.246 + 5.247 + 5.248 +\subsection{Removing a Representative from Office and Electing a Replacement} 5.249 +Each office has a maximum time-span that a representative can hold that office. The exact time-span will 5.250 +be decided after more scrutiny. To illustrate possible time-spans, President may be 8 years, senate 20 5.251 +years, house representative 10 years. 5.252 + 5.253 +A representative is removed from office if their net average vote stays negative for too long. A 5.254 +moving average window is used to determine their net average vote on each day. The number of consecutive days that average has remained negative is counted. When the count reaches the limit for 5.255 +that office, then the representative becomes lame duck and a vote is called to elect a replacement. 5.256 + 5.257 +The width of moving average window is chosen to be responsive to changes in the representative’s 5.258 +actions and resulting voter satisfaction, but to eliminate the “peak-detect” effect. If the average votes on 5.259 +a single day goes positive, that should not reset the counter. At the same time, the representative needs 5.260 +to be encouraged to respond to the average, knowing that a change in their actions can indeed pull up the 5.261 +average in time to keep them in office. 5.262 + 5.263 +That suggests that the window should be shorter than the limit. As a suggestion, one-fifth of the limit might be a suitable window size. With this setting, one will know 5.264 +after four-fifths of the limit whether it looks like the representative has a chance to remain in office. 5.265 + 5.266 +Replacement voting is done electronically, via the web pages, and by mail (postage is guaranteed when 5.267 +mailed to a vote-place POBox, but must be sent in person, with a signature, at the post office). Votes to 5.268 +replace a candidate begin the day the candidate becomes lame duck and continue for a fixed number of 5.269 +days. 5.270 + 5.271 +This allows time for campaigning, but eliminates manipulation of polling places, as the voting is 5.272 +spread out. A public library shall be available in every community, with web access and assistance to any 5.273 +person wishing to vote. This shall receive guaranteed funding, as stated in the constitutional amendment that establishes this system of voting. 5.274 + 5.275 +The number of days of voting will be decided after experience using the system in tests. As an 5.276 +example, two months may be a reasonable time span. Ample time has already been given to prepare 5.277 +campaigns, during the last fifth of the grace period. 5.278 + 5.279 +\subsection{How Bills Are Authored, Introduced, Linked, and Tagged} 5.280 +Each representative has a listing of bills: 5.281 +\begin{itemize} 5.282 +\item that have been introduced 5.283 +\item that are in a committee that representative sits on 5.284 +\item that are currently on the floor for debate 5.285 +\item that have been called for a vote 5.286 +\end{itemize} 5.287 +A representative can enter a statement on any bill, if they want, at any point after it is introduced. 5.288 +The statement will then be visible to the other representatives and to the voters, via the web-pages. 5.289 + 5.290 +Each bill is tagged with statements each representative made on it during debate about the bill. 5.291 +All remarks on a bill that a representative makes during debate are recorded verbatim. No alteration 5.292 +of these remarks is allowed, for any reason (currently, the congressional record can be modified after the 5.293 +fact). 5.294 + 5.295 +Remarks are recorded in two ways. While they are being spoken on the floor, a stenographer 5.296 +enters them, in real-time, into the web-site, and they are linked to the bill and made available in all the 5.297 +various web-pages. In addition, audio and video of the representative delivering the remarks are recorded 5.298 +into the web-sites and linked, in real-time, to the various web-pages. 5.299 + 5.300 +Three stenographers enter transcripts, and the system automatically matches the streams from the three, choosing two that match. At 5.301 +places in the text where all three differ, all three versions are included on the web-site (thus obviating the 5.302 +need for revisions after-the-fact). 5.303 + 5.304 +All bills are introduced electronically. They are submitted to the system and thus made available in 5.305 +tagged format for browsing before going into committee. This allows voter feedback to reach representatives who sit on the committee that is considering a given bill. 5.306 + 5.307 +Each paragraph of the text of a bill is tagged as addressing one or more of the issues current on the 5.308 +day the bill is submitted. 5.309 +An open-source tool is provided to all representatives with which they author, tag, view, and submit 5.310 +legislation. 5.311 + 5.312 +The distributed web-sites are the official record of the legislation, and the process of introducing an amendment is made via electronic submission to site. The site has a "holding pen" for submissions, which are verified by voice communication with the representative who submitted. 5.313 + 5.314 +The GAO verifies each tagging of each paragraph. This may take some time, so the tagging that the 5.315 +author chooses is used until it is either verified or altered by the GAO. All tags must be verified before a 5.316 +bill can be voted on. This may have the side effect of tending to reduce somewhat the size of the text of 5.317 +bills. 5.318 + 5.319 +When a bill is altered during committee, the alterations are also tagged by the authors. When an 5.320 +amendment is proposed during committee or during debate on the floor, each paragraph of the amendment is tagged by the author of the amendment. Each such amendment must be submitted electronically 5.321 +before it is introduced in committee or on the floor. 5.322 + 5.323 +When debate is done and a vote called for, it is done electronically, by voting on the text that is in the 5.324 +web-site. 5.325 + 5.326 + 5.327 + 5.328 + 5.329 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 5.330 +% 5.331 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 5.332 +\subsection{Operation of the Site} 5.333 + 5.334 +We propose to implement such a voting system via the web. It must be secure, have a human-verifiable backup to recover if compromised, and be accessible to all segments of the population, specifically those without ready computer access, or training. 5.335 + 5.336 +\subsubsection{Security of the Site} 5.337 + 5.338 +An important issue is security, both for protecting privacy and preventing vote tampering. We propose a system of distributed copies of the site that uses a quorum to detect faulty copies. The system relies on humans and a paper trail to decide which copies are faulty and repair them from good copies. 5.339 + 5.340 +site that also has information on the actions of each representative, and a mechanism to suggest new issues to include in the list. It is a one-stop shop for political activity. The voter has a link to each of their representative’s remarks on the floor in both text form and in digital recordings of the remarks being delivered. The voter also has a link to each bill the has authored or sponsored, indexed by issue. The voter can follow the activity of their representative in one window-pane, while updating their emotion token allocation in another. This strong feedback will increase the responsiveness of representatives to what their electorate wants. Campaign contributions will have much less influence because they can only help get the representative into office. After that there will be no mistaking what the people want, the representative must follow the will of the people or be removed. 5.341 + 5.342 + 5.343 +\subsubsection{Ensuring Correctness and Security} 5.344 +Voter identification can be done in several ways: finger-print reader, social-security “smart” card, password, or all three together. The site is a distributed set of redundant, secure, copies. The program code is the same for all of the copies and is open-source. A distributed quorum system is used to detect and eliminate corruptions of individual copies. Each copy is administered separately, with separate local passwords and people in charge. 5.345 + 5.346 +When a discrepancy between copies is detected, the people in charge are alerted and talk via phone to decide which of the copies is non-corrupted. They use the non-corrupted copies to correct the corrupted ones. The copies continually send check-messages to each other, in order to detect discrepancies. 5.347 + 5.348 +As soon as a discrepancy is detected on any of the copies, all are alerted and go off-line. Only after voice communication and human decision of which copies are non-corrupt, and correction of the corrupt ones are the copies manually put back on-line. 5.349 + 5.350 +The people in charge can collectively decide how to view the corruption and decide whether there is a security breach and how to deal with that. The copies are run by people that both parties nominate via senate and house committees. These committees have equal numbers of both democrat and republican members. 5.351 + 5.352 +Each copy keeps a paper-trail of each bit of information on bills and/or representatives that is added to the site. Each copy keeps a paper trail of total emotion tokens positive and negative for each representative for each day, but not how each individual allotted their emotion tokens (that would be too much paper). Individuals may print out their emotion token allocation. 5.353 + 5.354 +The information-to-print is passed among the copies, each copy generating a code from the previous copy'’s code plus its own private key, then re-encoding the information with the new code. This way, only the original copy knows the contents of the information. The other copies don'’t know the original copy'’s key, so they don’'t know the voter’s' allocation, so they are unable to decide whether to “accidentally” give a wrong encoding so-as to disqualify the information. 5.355 + 5.356 +The information is passed in a fixed ring pattern. The originating copy encodes an identifier with its private key. Assuming no copies know the private key of any of the other copies, only the original copy knows where the information originated. If, say, one copy shares its private keys illegally, the most that can be discovered is that none of the copies sharing keys originated the information. 5.357 + 5.358 +During later verification, if the rogue copies attempt to tamper, or “accidentally” mis-encode, then the quorum system will still retrieve the correct original information. 5.359 + 5.360 +When all the copies have finished, the final code is printed at the top of the page. When the page is fed back into a copy after a crash or disaster or discovery of hacking, the copy passes the information around again, to generate a new code from the information on the page. The new code must match the code printed on the page. 5.361 + 5.362 +This prevents people from altering the information after the fact. Each day, each copy prints the previous day'’s private key into a locked, secure box. The box requires multiple keys; one person from each copy has a physical key. In the case of disaster or hacking, the secure box of each copy is opened, requiring the presence of one person from each of the copies, and the private keys are retrieved. 5.363 + 5.364 +For paper verification, an open-source program chooses the voters to be sampled, according to established statistical techniques. People from each copy verify that the choices satisfy randomness properties. Two thirds of the copies must agree that the statistics are random. 5.365 + 5.366 +To verify identity electronically, each registered voter is given a smart social-security card that contains a secure micro-controller that contains their private key. The memory of this controller is designed such that it cannot be read externally. 5.367 + 5.368 +Established public-private key encryption schemes are used to ensure that votes can only be cast electronically while in physical possession of the card. The micro-controller inside the card performs the encryption process so that the key is never exposed. Once it is written into the micro-controller, the private key is deleted from the main memory of the computer that generated it, and is never saved on hard-disk. Only the paired public key is saved, linked to the social security number and last name of the voter. 5.369 + 5.370 +When a voter prints out their emotion token allocation, the code also includes encryption with their private key, performed by the micro-controller in their social-security smart-card. The code must first be decrypted with the voter’s public key, which is only known to the site-copies in the system. The resulting code is then compared to the code generated during the passing of the information among the copies. This is an additional safeguard against 3rd parties attempting to forge vote print outs, and against changing the information after the fact. 5.371 + 5.372 + 5.373 + 5.374 + 5.375 + 5.376 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 5.377 +% 5.378 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 5.379 + 5.380 +\section{Conclusion} 5.381 +We have proposed a system of continuous voting that links the actions of representatives to voters’ feelings about those actions. It makes the will of the voters clear and forces the representatives to act according to that will. The system provides quick and easy access to a representative’'s record, as well as access to pending legislation, allowing voters to pro-actively discover up-coming bills of interest and let their representative know how to vote on them. 5.382 + 5.383 +If the representative ignores the will of the voters for too long they are removed from office. However a grace period provides balance. It gives the representatives room to cut deals and the opportunity to defy the voters on issues they feel morally or intellectually compelled on. 5.384 + 5.385 +The net effect is to diffuse the power of narrow-interest groups and reduce the influence of campaign contributions. Political ads will still run when important legislation is on the floor, but transparency provided by the proposed site and the speed of the internet at disseminating analyses and linking directly to the voting site will diminish the influence of such ads. More importantly, such ads don’t benefit any candidate, so the representative is not beholden to the financer of the ad. 5.386 + 5.387 +%+Bibliography 5.388 +%\begin{thebibliography}{99} 5.389 +%\bibitem{Label1} ... 5.390 +%\end{thebibliography} 5.391 +%-Bibliography 5.392 + 5.393 +\end{document} 5.394 + 5.395 +
6.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 6.2 +++ b/0__Papers/PRT/PRT__formal_def/figures/PR__system_level_activity.svg Sat Aug 03 19:24:22 2013 -0700 6.3 @@ -0,0 +1,2923 @@ 6.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 6.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 6.6 + 6.7 +<svg 6.8 + xmlns:dc="http://purl.org/dc/elements/1.1/" 6.9 + xmlns:cc="http://creativecommons.org/ns#" 6.10 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 6.11 + xmlns:svg="http://www.w3.org/2000/svg" 6.12 + xmlns="http://www.w3.org/2000/svg" 6.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 6.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 6.15 + width="744.09448819" 6.16 + height="1052.3622047" 6.17 + id="svg2" 6.18 + sodipodi:version="0.32" 6.19 + inkscape:version="0.48.2 r9819" 6.20 + sodipodi:docname="PR__system_level_activity.svg" 6.21 + inkscape:output_extension="org.inkscape.output.svg.inkscape" 6.22 + version="1.1"> 6.23 + <defs 6.24 + id="defs4"> 6.25 + <marker 6.26 + inkscape:stockid="Arrow2Mend" 6.27 + orient="auto" 6.28 + refY="0.0" 6.29 + refX="0.0" 6.30 + id="Arrow2Mend" 6.31 + style="overflow:visible;"> 6.32 + <path 6.33 + id="path4008" 6.34 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 6.35 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 6.36 + transform="scale(0.6) rotate(180) translate(0,0)" /> 6.37 + </marker> 6.38 + <inkscape:perspective 6.39 + sodipodi:type="inkscape:persp3d" 6.40 + inkscape:vp_x="0 : 526.18109 : 1" 6.41 + inkscape:vp_y="0 : 1000 : 0" 6.42 + inkscape:vp_z="744.09448 : 526.18109 : 1" 6.43 + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" 6.44 + id="perspective10" /> 6.45 + <inkscape:perspective 6.46 + id="perspective12172" 6.47 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 6.48 + inkscape:vp_z="1 : 0.5 : 1" 6.49 + inkscape:vp_y="0 : 1000 : 0" 6.50 + inkscape:vp_x="0 : 0.5 : 1" 6.51 + sodipodi:type="inkscape:persp3d" /> 6.52 + <inkscape:perspective 6.53 + id="perspective12937" 6.54 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 6.55 + inkscape:vp_z="1 : 0.5 : 1" 6.56 + inkscape:vp_y="0 : 1000 : 0" 6.57 + inkscape:vp_x="0 : 0.5 : 1" 6.58 + sodipodi:type="inkscape:persp3d" /> 6.59 + </defs> 6.60 + <sodipodi:namedview 6.61 + id="base" 6.62 + pagecolor="#ffffff" 6.63 + bordercolor="#666666" 6.64 + borderopacity="1.0" 6.65 + gridtolerance="10000" 6.66 + guidetolerance="10" 6.67 + objecttolerance="10" 6.68 + inkscape:pageopacity="0.0" 6.69 + inkscape:pageshadow="2" 6.70 + inkscape:zoom="1.4897651" 6.71 + inkscape:cx="290.73583" 6.72 + inkscape:cy="795.84567" 6.73 + inkscape:document-units="px" 6.74 + inkscape:current-layer="layer1" 6.75 + showgrid="false" 6.76 + inkscape:window-width="1600" 6.77 + inkscape:window-height="848" 6.78 + inkscape:window-x="-8" 6.79 + inkscape:window-y="-8" 6.80 + inkscape:window-maximized="1" /> 6.81 + <metadata 6.82 + id="metadata7"> 6.83 + <rdf:RDF> 6.84 + <cc:Work 6.85 + rdf:about=""> 6.86 + <dc:format>image/svg+xml</dc:format> 6.87 + <dc:type 6.88 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 6.89 + <dc:title></dc:title> 6.90 + </cc:Work> 6.91 + </rdf:RDF> 6.92 + </metadata> 6.93 + <g 6.94 + inkscape:label="Layer 1" 6.95 + inkscape:groupmode="layer" 6.96 + id="layer1"> 6.97 + <text 6.98 + sodipodi:linespacing="100%" 6.99 + id="text12979" 6.100 + y="515.76575" 6.101 + x="326.92542" 6.102 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.103 + xml:space="preserve"><tspan 6.104 + y="515.76575" 6.105 + x="326.92542" 6.106 + id="tspan12981" 6.107 + sodipodi:role="line" 6.108 + style="text-align:center;text-anchor:middle">Master</tspan><tspan 6.109 + y="524.20056" 6.110 + x="326.92542" 6.111 + sodipodi:role="line" 6.112 + id="tspan3291" 6.113 + style="font-size:8px;text-align:center;text-anchor:middle">(runtime system)</tspan><tspan 6.114 + y="532.2005" 6.115 + x="326.92542" 6.116 + sodipodi:role="line" 6.117 + style="font-size:8px;text-align:center;text-anchor:middle" 6.118 + id="tspan8409">on core 1</tspan></text> 6.119 + <g 6.120 + id="g9336" 6.121 + transform="translate(44.002789,114)"> 6.122 + <rect 6.123 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 6.124 + id="rect3293" 6.125 + width="65.276405" 6.126 + height="37.165791" 6.127 + x="346.40247" 6.128 + y="389.58255" /> 6.129 + <text 6.130 + sodipodi:linespacing="100%" 6.131 + id="text3295" 6.132 + y="400.15268" 6.133 + x="379.00162" 6.134 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.135 + xml:space="preserve"><tspan 6.136 + id="tspan3301" 6.137 + y="400.15268" 6.138 + x="379.00162" 6.139 + sodipodi:role="line" 6.140 + style="text-align:center;text-anchor:middle;fill:#008000">Seed VP</tspan><tspan 6.141 + y="408.58746" 6.142 + x="379.00162" 6.143 + sodipodi:role="line" 6.144 + style="font-size:8px;text-align:center;text-anchor:middle;fill:#008000" 6.145 + id="tspan9389">(created at</tspan><tspan 6.146 + y="416.58746" 6.147 + x="379.00162" 6.148 + sodipodi:role="line" 6.149 + style="font-size:8px;text-align:center;text-anchor:middle;fill:#008000" 6.150 + id="tspan9391">app startup,</tspan><tspan 6.151 + y="424.58746" 6.152 + x="379.00162" 6.153 + sodipodi:role="line" 6.154 + style="font-size:8px;text-align:center;text-anchor:middle;fill:#008000" 6.155 + id="tspan9744">on core 1)</tspan></text> 6.156 + </g> 6.157 + <text 6.158 + xml:space="preserve" 6.159 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.160 + x="517.16797" 6.161 + y="467.42465" 6.162 + id="text3318-1" 6.163 + sodipodi:linespacing="100%"><tspan 6.164 + style="text-align:center;text-anchor:middle;fill:#008000" 6.165 + sodipodi:role="line" 6.166 + x="517.16797" 6.167 + y="467.42465" 6.168 + id="tspan3322-5">Application Code</tspan></text> 6.169 + <text 6.170 + sodipodi:linespacing="100%" 6.171 + id="text3376" 6.172 + y="541.42468" 6.173 + x="517.16797" 6.174 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.175 + xml:space="preserve"><tspan 6.176 + id="tspan3378" 6.177 + y="541.42468" 6.178 + x="517.16797" 6.179 + sodipodi:role="line" 6.180 + style="text-align:center;text-anchor:middle;fill:#008000">Seed_Fn</tspan></text> 6.181 + <text 6.182 + xml:space="preserve" 6.183 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.184 + x="517.16797" 6.185 + y="761.42468" 6.186 + id="text3380" 6.187 + sodipodi:linespacing="100%"><tspan 6.188 + style="text-align:center;text-anchor:middle;fill:#008000" 6.189 + sodipodi:role="line" 6.190 + x="517.16797" 6.191 + y="761.42468" 6.192 + id="tspan3382">Work_Fn</tspan></text> 6.193 + <text 6.194 + sodipodi:linespacing="100%" 6.195 + id="text3388" 6.196 + y="467.42465" 6.197 + x="604.63812" 6.198 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.199 + xml:space="preserve"><tspan 6.200 + id="tspan3390" 6.201 + y="467.42465" 6.202 + x="606.14203" 6.203 + sodipodi:role="line" 6.204 + style="text-align:center;text-anchor:middle;fill:#800000">Language </tspan><tspan 6.205 + y="477.42465" 6.206 + x="604.63812" 6.207 + sodipodi:role="line" 6.208 + style="text-align:center;text-anchor:middle;fill:#800000" 6.209 + id="tspan5106">Wrapper-Lib</tspan><tspan 6.210 + y="487.42465" 6.211 + x="604.63812" 6.212 + sodipodi:role="line" 6.213 + style="text-align:center;text-anchor:middle;fill:#800000" 6.214 + id="tspan3392">Code</tspan></text> 6.215 + <text 6.216 + xml:space="preserve" 6.217 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.218 + x="669.16797" 6.219 + y="467.42465" 6.220 + id="text3394" 6.221 + sodipodi:linespacing="100%"><tspan 6.222 + style="text-align:center;text-anchor:middle;fill:#000080" 6.223 + sodipodi:role="line" 6.224 + x="669.16797" 6.225 + y="467.42465" 6.226 + id="tspan3396">Proto-Runtime</tspan><tspan 6.227 + style="text-align:center;text-anchor:middle;fill:#000080" 6.228 + sodipodi:role="line" 6.229 + x="669.16797" 6.230 + y="477.42465" 6.231 + id="tspan4998">Primitive</tspan><tspan 6.232 + id="tspan3398" 6.233 + style="text-align:center;text-anchor:middle;fill:#000080" 6.234 + sodipodi:role="line" 6.235 + x="669.16797" 6.236 + y="487.42465">Code</tspan></text> 6.237 + <text 6.238 + xml:space="preserve" 6.239 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.240 + x="137.31689" 6.241 + y="573.42468" 6.242 + id="text3412" 6.243 + sodipodi:linespacing="100%"><tspan 6.244 + style="text-align:center;text-anchor:middle;fill:#800000" 6.245 + sodipodi:role="line" 6.246 + x="137.31689" 6.247 + y="573.42468" 6.248 + id="tspan3414">Lang Handler</tspan><tspan 6.249 + style="text-align:center;text-anchor:middle;fill:#800000" 6.250 + sodipodi:role="line" 6.251 + x="137.31689" 6.252 + y="583.42468" 6.253 + id="tspan3422">for create VP</tspan></text> 6.254 + <text 6.255 + xml:space="preserve" 6.256 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.257 + x="137.68066" 6.258 + y="621.42468" 6.259 + id="text3444" 6.260 + sodipodi:linespacing="100%"><tspan 6.261 + style="text-align:center;text-anchor:middle;fill:#800000" 6.262 + sodipodi:role="line" 6.263 + x="137.68066" 6.264 + y="621.42468" 6.265 + id="tspan3450">Assigner Fn</tspan></text> 6.266 + <text 6.267 + xml:space="preserve" 6.268 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.269 + x="327.16797" 6.270 + y="469.42465" 6.271 + id="text3456" 6.272 + sodipodi:linespacing="100%"><tspan 6.273 + style="text-align:center;text-anchor:middle" 6.274 + sodipodi:role="line" 6.275 + x="328.67188" 6.276 + y="469.42465" 6.277 + id="tspan3458">Instances of </tspan><tspan 6.278 + style="text-align:center;text-anchor:middle" 6.279 + sodipodi:role="line" 6.280 + x="327.16797" 6.281 + y="479.42465" 6.282 + id="tspan8405">runtime system</tspan><tspan 6.283 + style="font-size:8px;text-align:center;text-anchor:middle" 6.284 + sodipodi:role="line" 6.285 + x="327.16797" 6.286 + y="487.85944" 6.287 + id="tspan9383">(data structs</tspan><tspan 6.288 + style="font-size:8px;text-align:center;text-anchor:middle" 6.289 + sodipodi:role="line" 6.290 + x="327.16797" 6.291 + y="495.85944" 6.292 + id="tspan9385">on heap)</tspan><tspan 6.293 + id="tspan3460" 6.294 + style="text-align:center;text-anchor:middle" 6.295 + sodipodi:role="line" 6.296 + x="327.16797" 6.297 + y="503.85944" /></text> 6.298 + <text 6.299 + sodipodi:linespacing="100%" 6.300 + id="text3462" 6.301 + y="467.42465" 6.302 + x="423.16797" 6.303 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.304 + xml:space="preserve"><tspan 6.305 + id="tspan3464" 6.306 + y="467.42465" 6.307 + x="423.16797" 6.308 + sodipodi:role="line" 6.309 + style="text-align:center;text-anchor:middle">Instances of</tspan><tspan 6.310 + y="477.42465" 6.311 + x="423.16797" 6.312 + sodipodi:role="line" 6.313 + style="text-align:center;text-anchor:middle" 6.314 + id="tspan3468">Virtual Processors</tspan><tspan 6.315 + y="485.85944" 6.316 + x="423.16797" 6.317 + sodipodi:role="line" 6.318 + style="font-size:8px;text-align:center;text-anchor:middle" 6.319 + id="tspan3466">(data structs</tspan><tspan 6.320 + y="493.85944" 6.321 + x="423.16797" 6.322 + sodipodi:role="line" 6.323 + style="font-size:8px;text-align:center;text-anchor:middle" 6.324 + id="tspan9387">on heap)</tspan></text> 6.325 + <path 6.326 + inkscape:connector-curvature="0" 6.327 + id="path4796" 6.328 + d="m 457.32649,538.02605 c 38.42351,0 38.42351,0 38.42351,0" 6.329 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999996, 2.99999996;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 6.330 + <text 6.331 + xml:space="preserve" 6.332 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.333 + x="604.78461" 6.334 + y="535.42468" 6.335 + id="text4988" 6.336 + sodipodi:linespacing="100%"><tspan 6.337 + style="text-align:center;text-anchor:middle;fill:#800000" 6.338 + sodipodi:role="line" 6.339 + x="604.78461" 6.340 + y="535.42468" 6.341 + id="tspan4990">create VP</tspan><tspan 6.342 + style="text-align:center;text-anchor:middle;fill:#800000" 6.343 + sodipodi:role="line" 6.344 + x="604.78461" 6.345 + y="545.42468" 6.346 + id="tspan5104">wrapper Fn</tspan></text> 6.347 + <text 6.348 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)" 6.349 + xml:space="preserve" 6.350 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.351 + x="640.93384" 6.352 + y="566.94653" 6.353 + id="text5064" 6.354 + sodipodi:linespacing="100%"><tspan 6.355 + style="font-size:8px;text-align:center;text-anchor:middle" 6.356 + sodipodi:role="line" 6.357 + x="640.93384" 6.358 + y="566.94653" 6.359 + id="tspan5066">Call to dyn lib</tspan></text> 6.360 + <path 6.361 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000003, 3.00000003;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 6.362 + d="m 291.99816,538.02605 c -63.44071,0 -63.44071,0 -63.44071,0" 6.363 + id="path5068" 6.364 + inkscape:connector-curvature="0" /> 6.365 + <text 6.366 + sodipodi:linespacing="100%" 6.367 + id="text5070" 6.368 + y="574.53986" 6.369 + x="148.45142" 6.370 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.371 + xml:space="preserve" 6.372 + transform="matrix(0.97994281,-0.19927893,0.19927893,0.97994281,0,0)"><tspan 6.373 + id="tspan5072" 6.374 + y="574.53986" 6.375 + x="148.45142" 6.376 + sodipodi:role="line" 6.377 + style="font-size:8px;text-align:center;text-anchor:middle">Top Level Fn</tspan></text> 6.378 + <text 6.379 + transform="matrix(0.97994281,-0.19927893,0.19927893,0.97994281,0,0)" 6.380 + xml:space="preserve" 6.381 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.382 + x="368.35757" 6.383 + y="617.21826" 6.384 + id="text5074" 6.385 + sodipodi:linespacing="100%"><tspan 6.386 + style="font-size:8px;text-align:center;text-anchor:middle" 6.387 + sodipodi:role="line" 6.388 + x="368.35757" 6.389 + y="617.21826" 6.390 + id="tspan5076">Top Level Fn</tspan></text> 6.391 + <text 6.392 + sodipodi:linespacing="100%" 6.393 + id="text5078" 6.394 + y="833.20477" 6.395 + x="326.47617" 6.396 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.397 + xml:space="preserve" 6.398 + transform="matrix(0.97994281,-0.19927893,0.19927893,0.97994281,0,0)"><tspan 6.399 + id="tspan5080" 6.400 + y="833.20477" 6.401 + x="326.47617" 6.402 + sodipodi:role="line" 6.403 + style="font-size:8px;text-align:center;text-anchor:middle">Top Level Fn</tspan></text> 6.404 + <path 6.405 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999996, 2.99999996;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 6.406 + d="m 458.9835,758.02605 c 36.7665,0 36.7665,0 36.7665,0" 6.407 + id="path5082" 6.408 + inkscape:connector-curvature="0" /> 6.409 + <path 6.410 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 6.411 + d="m 514.02904,544.01894 c 0,5.6572 0,5.6572 0,5.6572" 6.412 + id="path5092" 6.413 + inkscape:connector-curvature="0" 6.414 + sodipodi:nodetypes="cc" /> 6.415 + <path 6.416 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 6.417 + d="m 514.24714,550.02605 c 85.56237,0 85.56237,0 85.56237,0" 6.418 + id="path5094" 6.419 + inkscape:connector-curvature="0" /> 6.420 + <path 6.421 + inkscape:connector-curvature="0" 6.422 + id="path5096" 6.423 + d="m 602.77166,658.02605 c -88.41298,0 -88.41298,0 -88.41298,0" 6.424 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 6.425 + <path 6.426 + sodipodi:nodetypes="cc" 6.427 + inkscape:connector-curvature="0" 6.428 + id="path5140" 6.429 + d="m 514.02904,658.31987 c 0,26.21842 0,26.21842 0,26.21842" 6.430 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 6.431 + <path 6.432 + inkscape:connector-curvature="0" 6.433 + id="path5142" 6.434 + d="m 514.2471,684.02605 c 87.58783,0 87.58783,0 87.58783,0" 6.435 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 6.436 + <text 6.437 + sodipodi:linespacing="100%" 6.438 + id="text5157" 6.439 + y="670.71179" 6.440 + x="604.78461" 6.441 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.442 + xml:space="preserve"><tspan 6.443 + id="tspan5161" 6.444 + y="670.71179" 6.445 + x="604.78461" 6.446 + sodipodi:role="line" 6.447 + style="text-align:center;text-anchor:middle;fill:#800000">end VP</tspan><tspan 6.448 + y="680.71179" 6.449 + x="604.78461" 6.450 + sodipodi:role="line" 6.451 + style="text-align:center;text-anchor:middle;fill:#800000" 6.452 + id="tspan5207">wrapper Fn</tspan></text> 6.453 + <path 6.454 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 6.455 + d="m 602.26584,690.02605 c 63.99676,0 63.99676,0 63.99676,0" 6.456 + id="path5165" 6.457 + inkscape:connector-curvature="0" /> 6.458 + <path 6.459 + sodipodi:nodetypes="cc" 6.460 + inkscape:connector-curvature="0" 6.461 + id="path5179" 6.462 + d="m 514.02904,764.01895 c 0,5.6572 0,5.6572 0,5.6572" 6.463 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 6.464 + <path 6.465 + sodipodi:nodetypes="cc" 6.466 + inkscape:connector-curvature="0" 6.467 + id="path5209" 6.468 + d="m 602.02904,682.31985 c 0,7.35629 0,7.35629 0,7.35629" 6.469 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 6.470 + <text 6.471 + xml:space="preserve" 6.472 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.473 + x="497.16797" 6.474 + y="399.42468" 6.475 + id="text5211" 6.476 + sodipodi:linespacing="100%"><tspan 6.477 + style="text-align:center;text-anchor:middle" 6.478 + sodipodi:role="line" 6.479 + x="497.16797" 6.480 + y="399.42468" 6.481 + id="tspan5215" /></text> 6.482 + <path 6.483 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 6.484 + d="m 602.02904,550.21843 c 0,19.4577 0,19.4577 0,19.4577" 6.485 + id="path5217" 6.486 + inkscape:connector-curvature="0" 6.487 + sodipodi:nodetypes="cc" /> 6.488 + <path 6.489 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 6.490 + d="m 602.24714,570.02605 c 64.71029,0 64.71029,0 64.71029,0" 6.491 + id="path5219" 6.492 + inkscape:connector-curvature="0" /> 6.493 + <path 6.494 + inkscape:connector-curvature="0" 6.495 + id="path5221" 6.496 + d="m 666.85635,654.02605 c -65.78483,0 -65.78483,0 -65.78483,0" 6.497 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 6.498 + <path 6.499 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 6.500 + d="m 668.02904,568.63925 c 0,13.68455 0,13.68455 0,13.68455" 6.501 + id="path5223" 6.502 + inkscape:connector-curvature="0" 6.503 + sodipodi:nodetypes="cc" /> 6.504 + <path 6.505 + sodipodi:nodetypes="cc" 6.506 + inkscape:connector-curvature="0" 6.507 + id="path5229" 6.508 + d="m 602.02904,653.22687 c 0,5.5885 0,5.5885 0,5.5885" 6.509 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 6.510 + <path 6.511 + sodipodi:nodetypes="cc" 6.512 + inkscape:connector-curvature="0" 6.513 + id="path5235" 6.514 + d="m 668.02904,640.63925 c 0,13.68455 0,13.68455 0,13.68455" 6.515 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 6.516 + <text 6.517 + sodipodi:linespacing="100%" 6.518 + id="text5239" 6.519 + y="887.21881" 6.520 + x="75.689163" 6.521 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.522 + xml:space="preserve" 6.523 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 6.524 + id="tspan5241" 6.525 + y="887.21881" 6.526 + x="75.689163" 6.527 + sodipodi:role="line" 6.528 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan><tspan 6.529 + y="895.21881" 6.530 + x="75.689163" 6.531 + sodipodi:role="line" 6.532 + style="font-size:8px;text-align:center;text-anchor:middle" 6.533 + id="tspan5243">and switch</tspan><tspan 6.534 + y="903.21881" 6.535 + x="75.689163" 6.536 + sodipodi:role="line" 6.537 + style="font-size:8px;text-align:center;text-anchor:middle" 6.538 + id="tspan5245">to runtime</tspan></text> 6.539 + <path 6.540 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 6.541 + d="m 271.03421,642.02605 c 193.92439,0 193.92439,0 193.92439,0" 6.542 + id="path5247" 6.543 + inkscape:connector-curvature="0" /> 6.544 + <text 6.545 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 6.546 + xml:space="preserve" 6.547 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.548 + x="45.084938" 6.549 + y="918.83185" 6.550 + id="text5249" 6.551 + sodipodi:linespacing="100%"><tspan 6.552 + id="tspan5255" 6.553 + style="font-size:8px;text-align:center;text-anchor:middle" 6.554 + sodipodi:role="line" 6.555 + x="45.084938" 6.556 + y="918.83185">return</tspan><tspan 6.557 + style="font-size:8px;text-align:center;text-anchor:middle" 6.558 + sodipodi:role="line" 6.559 + x="45.084938" 6.560 + y="926.83185" 6.561 + id="tspan5261">from</tspan><tspan 6.562 + style="font-size:8px;text-align:center;text-anchor:middle" 6.563 + sodipodi:role="line" 6.564 + x="45.084938" 6.565 + y="934.83185" 6.566 + id="tspan5263">suspend</tspan></text> 6.567 + <text 6.568 + sodipodi:linespacing="100%" 6.569 + id="text5345" 6.570 + y="557.42468" 6.571 + x="667.38037" 6.572 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.573 + xml:space="preserve"><tspan 6.574 + id="tspan5349" 6.575 + y="557.42468" 6.576 + x="667.38037" 6.577 + sodipodi:role="line" 6.578 + style="text-align:center;text-anchor:middle;fill:#000080">PR primitive Fn</tspan><tspan 6.579 + y="567.42468" 6.580 + x="667.38037" 6.581 + sodipodi:role="line" 6.582 + style="text-align:center;text-anchor:middle;fill:#000080" 6.583 + id="tspan5353">to send request</tspan></text> 6.584 + <text 6.585 + sodipodi:linespacing="100%" 6.586 + id="text5355" 6.587 + y="554.71265" 6.588 + x="556.00226" 6.589 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.590 + xml:space="preserve" 6.591 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 6.592 + id="tspan5357" 6.593 + y="554.71265" 6.594 + x="556.00226" 6.595 + sodipodi:role="line" 6.596 + style="font-size:8px;text-align:center;text-anchor:middle">normal call</tspan></text> 6.597 + <path 6.598 + sodipodi:nodetypes="cc" 6.599 + inkscape:connector-curvature="0" 6.600 + id="path5359" 6.601 + d="m 668.02904,689.28283 c 0,13.68455 0,13.68455 0,13.68455" 6.602 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 6.603 + <text 6.604 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 6.605 + xml:space="preserve" 6.606 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.607 + x="-4.9486814" 6.608 + y="973.39014" 6.609 + id="text5363" 6.610 + sodipodi:linespacing="100%"><tspan 6.611 + style="font-size:8px;text-align:center;text-anchor:middle" 6.612 + sodipodi:role="line" 6.613 + x="-4.9486814" 6.614 + y="973.39014" 6.615 + id="tspan5365">suspend</tspan><tspan 6.616 + id="tspan5367" 6.617 + style="font-size:8px;text-align:center;text-anchor:middle" 6.618 + sodipodi:role="line" 6.619 + x="-4.9486814" 6.620 + y="981.39014">and switch</tspan><tspan 6.621 + id="tspan5369" 6.622 + style="font-size:8px;text-align:center;text-anchor:middle" 6.623 + sodipodi:role="line" 6.624 + x="-4.9486814" 6.625 + y="989.39014">to runtime</tspan></text> 6.626 + <text 6.627 + sodipodi:linespacing="100%" 6.628 + id="text5371" 6.629 + y="755.42468" 6.630 + x="604.59662" 6.631 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.632 + xml:space="preserve"><tspan 6.633 + id="tspan5373" 6.634 + y="755.42468" 6.635 + x="604.59662" 6.636 + sodipodi:role="line" 6.637 + style="text-align:center;text-anchor:middle;fill:#800000">Mutex Acquire</tspan><tspan 6.638 + id="tspan5375" 6.639 + y="765.42468" 6.640 + x="604.59662" 6.641 + sodipodi:role="line" 6.642 + style="text-align:center;text-anchor:middle;fill:#800000">wrapper Fn</tspan></text> 6.643 + <path 6.644 + inkscape:connector-curvature="0" 6.645 + id="path5379" 6.646 + d="m 514.24714,770.02605 c 85.56237,0 85.56237,0 85.56237,0" 6.647 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 6.648 + <path 6.649 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 6.650 + d="m 602.77166,870.02605 c -88.41298,0 -88.41298,0 -88.41298,0" 6.651 + id="path5381" 6.652 + inkscape:connector-curvature="0" /> 6.653 + <text 6.654 + xml:space="preserve" 6.655 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.656 + x="604.78461" 6.657 + y="882.71179" 6.658 + id="text5387" 6.659 + sodipodi:linespacing="100%"><tspan 6.660 + style="text-align:center;text-anchor:middle;fill:#800000" 6.661 + sodipodi:role="line" 6.662 + x="604.78461" 6.663 + y="882.71179" 6.664 + id="tspan5389">end VP</tspan><tspan 6.665 + id="tspan5391" 6.666 + style="text-align:center;text-anchor:middle;fill:#800000" 6.667 + sodipodi:role="line" 6.668 + x="604.78461" 6.669 + y="892.71179">wrapper Fn</tspan></text> 6.670 + <path 6.671 + inkscape:connector-curvature="0" 6.672 + id="path5393" 6.673 + d="m 602.289,902.02605 c 65.24023,0 65.24023,0 65.24023,0" 6.674 + style="fill:none;stroke:#000000;stroke-width:0.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 6.675 + <path 6.676 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 6.677 + d="m 602.02904,894.31985 c 0,7.35629 0,7.35629 0,7.35629" 6.678 + id="path5401" 6.679 + inkscape:connector-curvature="0" 6.680 + sodipodi:nodetypes="cc" /> 6.681 + <path 6.682 + sodipodi:nodetypes="cc" 6.683 + inkscape:connector-curvature="0" 6.684 + id="path5403" 6.685 + d="m 602.02904,770.21843 c 0,19.4577 0,19.4577 0,19.4577" 6.686 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 6.687 + <path 6.688 + inkscape:connector-curvature="0" 6.689 + id="path5405" 6.690 + d="m 602.6148,790.02605 c 64.1779,0 64.1779,0 64.1779,0" 6.691 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 6.692 + <path 6.693 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 6.694 + d="m 668.13452,866.02605 c -67.06305,0 -67.06305,0 -67.06305,0" 6.695 + id="path5407" 6.696 + inkscape:connector-curvature="0" /> 6.697 + <path 6.698 + sodipodi:nodetypes="cc" 6.699 + inkscape:connector-curvature="0" 6.700 + id="path5409" 6.701 + d="m 668.02904,788.63925 c 0,13.68455 0,13.68455 0,13.68455" 6.702 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 6.703 + <path 6.704 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 6.705 + d="m 602.02904,865.22687 c 0,5.5885 0,5.5885 0,5.5885" 6.706 + id="path5411" 6.707 + inkscape:connector-curvature="0" 6.708 + sodipodi:nodetypes="cc" /> 6.709 + <path 6.710 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 6.711 + d="m 668.02904,852.63925 c 0,13.68455 0,13.68455 0,13.68455" 6.712 + id="path5417" 6.713 + inkscape:connector-curvature="0" 6.714 + sodipodi:nodetypes="cc" /> 6.715 + <text 6.716 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 6.717 + xml:space="preserve" 6.718 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.719 + x="-74.503059" 6.720 + y="1045.2394" 6.721 + id="text5421" 6.722 + sodipodi:linespacing="100%"><tspan 6.723 + style="font-size:8px;text-align:center;text-anchor:middle" 6.724 + sodipodi:role="line" 6.725 + x="-74.503059" 6.726 + y="1045.2394" 6.727 + id="tspan5423">suspend</tspan><tspan 6.728 + id="tspan5425" 6.729 + style="font-size:8px;text-align:center;text-anchor:middle" 6.730 + sodipodi:role="line" 6.731 + x="-74.503059" 6.732 + y="1053.2394">and switch</tspan><tspan 6.733 + id="tspan5427" 6.734 + style="font-size:8px;text-align:center;text-anchor:middle" 6.735 + sodipodi:role="line" 6.736 + x="-74.503059" 6.737 + y="1061.2394">to runtime</tspan></text> 6.738 + <text 6.739 + sodipodi:linespacing="100%" 6.740 + id="text5431" 6.741 + y="1071.1506" 6.742 + x="-102.37076" 6.743 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.744 + xml:space="preserve" 6.745 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 6.746 + y="1071.1506" 6.747 + x="-102.37076" 6.748 + sodipodi:role="line" 6.749 + style="font-size:8px;text-align:center;text-anchor:middle" 6.750 + id="tspan5433">return</tspan><tspan 6.751 + id="tspan5435" 6.752 + y="1079.1506" 6.753 + x="-102.37076" 6.754 + sodipodi:role="line" 6.755 + style="font-size:8px;text-align:center;text-anchor:middle">from</tspan><tspan 6.756 + id="tspan5437" 6.757 + y="1087.1506" 6.758 + x="-102.37076" 6.759 + sodipodi:role="line" 6.760 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan></text> 6.761 + <text 6.762 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 6.763 + xml:space="preserve" 6.764 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.765 + x="556.96783" 6.766 + y="774.71014" 6.767 + id="text5445" 6.768 + sodipodi:linespacing="100%"><tspan 6.769 + style="font-size:8px;text-align:center;text-anchor:middle" 6.770 + sodipodi:role="line" 6.771 + x="556.96783" 6.772 + y="774.71014" 6.773 + id="tspan5447">normal call</tspan></text> 6.774 + <path 6.775 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 6.776 + d="m 668.02904,901.28283 c 0,13.68455 0,13.68455 0,13.68455" 6.777 + id="path5449" 6.778 + inkscape:connector-curvature="0" 6.779 + sodipodi:nodetypes="cc" /> 6.780 + <text 6.781 + sodipodi:linespacing="100%" 6.782 + id="text5453" 6.783 + y="1128.538" 6.784 + x="-152.3584" 6.785 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.786 + xml:space="preserve" 6.787 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 6.788 + id="tspan5455" 6.789 + y="1128.538" 6.790 + x="-152.3584" 6.791 + sodipodi:role="line" 6.792 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan><tspan 6.793 + y="1136.538" 6.794 + x="-152.3584" 6.795 + sodipodi:role="line" 6.796 + style="font-size:8px;text-align:center;text-anchor:middle" 6.797 + id="tspan5457">and switch</tspan><tspan 6.798 + y="1144.538" 6.799 + x="-152.3584" 6.800 + sodipodi:role="line" 6.801 + style="font-size:8px;text-align:center;text-anchor:middle" 6.802 + id="tspan5459">to runtime</tspan></text> 6.803 + <path 6.804 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 6.805 + d="m 514.02904,870.31987 c 0,26.21842 0,26.21842 0,26.21842" 6.806 + id="path5461" 6.807 + inkscape:connector-curvature="0" 6.808 + sodipodi:nodetypes="cc" /> 6.809 + <path 6.810 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 6.811 + d="m 514.2471,896.02605 c 87.58783,0 87.58783,0 87.58783,0" 6.812 + id="path5463" 6.813 + inkscape:connector-curvature="0" /> 6.814 + <text 6.815 + sodipodi:linespacing="100%" 6.816 + id="text5465" 6.817 + y="688.71033" 6.818 + x="556.59009" 6.819 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.820 + xml:space="preserve" 6.821 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 6.822 + id="tspan5467" 6.823 + y="688.71033" 6.824 + x="556.59009" 6.825 + sodipodi:role="line" 6.826 + style="font-size:8px;text-align:center;text-anchor:middle">normal call</tspan></text> 6.827 + <text 6.828 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 6.829 + xml:space="preserve" 6.830 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.831 + x="557.52142" 6.832 + y="900.70972" 6.833 + id="text5469" 6.834 + sodipodi:linespacing="100%"><tspan 6.835 + style="font-size:8px;text-align:center;text-anchor:middle" 6.836 + sodipodi:role="line" 6.837 + x="557.52142" 6.838 + y="900.70972" 6.839 + id="tspan5471">normal call</tspan></text> 6.840 + <g 6.841 + transform="matrix(1,0,0,0.71130685,-16,282.52913)" 6.842 + id="g8395"> 6.843 + <rect 6.844 + y="313.58255" 6.845 + x="310.40247" 6.846 + height="52.250008" 6.847 + width="65.276405" 6.848 + id="rect8397" 6.849 + style="fill:none;stroke:#000000;stroke-width:1.28076112;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 6.850 + </g> 6.851 + <path 6.852 + sodipodi:nodetypes="cc" 6.853 + inkscape:connector-curvature="0" 6.854 + id="path9273" 6.855 + d="m 514.02904,658.31987 c 0,26.21842 0,26.21842 0,26.21842" 6.856 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 6.857 + <path 6.858 + sodipodi:nodetypes="cc" 6.859 + inkscape:connector-curvature="0" 6.860 + id="path9275" 6.861 + d="m 476.02904,544.79398 c 0,35.61575 0,35.61575 0,35.61575" 6.862 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:none" /> 6.863 + <path 6.864 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 6.865 + d="m 468.24715,580.02605 c 13.34137,0 13.34137,0 13.34137,0" 6.866 + id="path9277" 6.867 + inkscape:connector-curvature="0" /> 6.868 + <path 6.869 + inkscape:connector-curvature="0" 6.870 + id="path9279" 6.871 + d="m 481.57781,642.02605 c -13.14022,0 -13.14022,0 -13.14022,0" 6.872 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 6.873 + <path 6.874 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" 6.875 + d="m 476.02904,642.3113 c 0,57.40944 0,57.40944 0,57.40944" 6.876 + id="path9281" 6.877 + inkscape:connector-curvature="0" 6.878 + sodipodi:nodetypes="cc" /> 6.879 + <path 6.880 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 6.881 + d="m 481.57781,701.27417 c -13.14022,0 -13.14022,0 -13.14022,0" 6.882 + id="path9283" 6.883 + inkscape:connector-curvature="0" /> 6.884 + <text 6.885 + transform="matrix(-0.01875541,0.9998241,-0.9998241,-0.01875541,0,0)" 6.886 + xml:space="preserve" 6.887 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.888 + x="615.90454" 6.889 + y="-469.42978" 6.890 + id="text9285" 6.891 + sodipodi:linespacing="100%"><tspan 6.892 + style="text-align:center;text-anchor:middle;fill:#008000" 6.893 + sodipodi:role="line" 6.894 + x="615.90454" 6.895 + y="-469.42978" 6.896 + id="tspan9287">Timeline of SeedVP</tspan></text> 6.897 + <text 6.898 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 6.899 + xml:space="preserve" 6.900 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.901 + x="486.10849" 6.902 + y="579.01941" 6.903 + id="text9289" 6.904 + sodipodi:linespacing="100%"><tspan 6.905 + style="font-size:8px;text-align:start;text-anchor:start" 6.906 + sodipodi:role="line" 6.907 + x="486.10849" 6.908 + y="579.01941" 6.909 + id="tspan9291">suspend</tspan></text> 6.910 + <text 6.911 + sodipodi:linespacing="100%" 6.912 + id="text9293" 6.913 + y="643.01886" 6.914 + x="486.38965" 6.915 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.916 + xml:space="preserve" 6.917 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 6.918 + id="tspan9295" 6.919 + y="643.01886" 6.920 + x="486.38965" 6.921 + sodipodi:role="line" 6.922 + style="font-size:8px;text-align:start;text-anchor:start">resume</tspan></text> 6.923 + <text 6.924 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 6.925 + xml:space="preserve" 6.926 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.927 + x="486.64105" 6.928 + y="700.22437" 6.929 + id="text9297" 6.930 + sodipodi:linespacing="100%"><tspan 6.931 + style="font-size:8px;text-align:start;text-anchor:start" 6.932 + sodipodi:role="line" 6.933 + x="486.64105" 6.934 + y="700.22437" 6.935 + id="tspan9299">end</tspan></text> 6.936 + <text 6.937 + sodipodi:linespacing="100%" 6.938 + id="text9301" 6.939 + y="467.42465" 6.940 + x="63.167969" 6.941 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.942 + xml:space="preserve"><tspan 6.943 + id="tspan9303" 6.944 + y="467.42465" 6.945 + x="63.167969" 6.946 + sodipodi:role="line" 6.947 + style="text-align:center;text-anchor:middle;fill:#000080">Proto-Runtime</tspan><tspan 6.948 + id="tspan9305" 6.949 + y="477.42465" 6.950 + x="63.167969" 6.951 + sodipodi:role="line" 6.952 + style="text-align:center;text-anchor:middle;fill:#000080">Primitive</tspan><tspan 6.953 + y="487.42465" 6.954 + x="63.167969" 6.955 + sodipodi:role="line" 6.956 + style="text-align:center;text-anchor:middle;fill:#000080" 6.957 + id="tspan9307">Code</tspan></text> 6.958 + <text 6.959 + xml:space="preserve" 6.960 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.961 + x="65.380371" 6.962 + y="585.42468" 6.963 + id="text9309" 6.964 + sodipodi:linespacing="100%"><tspan 6.965 + id="tspan9313" 6.966 + style="text-align:center;text-anchor:middle;fill:#000080" 6.967 + sodipodi:role="line" 6.968 + x="65.380371" 6.969 + y="585.42468">PR primitive Fn</tspan><tspan 6.970 + style="text-align:center;text-anchor:middle;fill:#000080" 6.971 + sodipodi:role="line" 6.972 + x="65.380371" 6.973 + y="595.42468" 6.974 + id="tspan9317">to create VP</tspan></text> 6.975 + <path 6.976 + inkscape:connector-curvature="0" 6.977 + id="path9321" 6.978 + d="m 101.87628,587.85467 c 83.54552,12.98474 93.01032,9.74762 154.91834,33.79457 83.60123,32.47325 132.79902,111.74825 132.79902,111.74825" 6.979 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000006, 3.00000006;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 6.980 + sodipodi:nodetypes="csc" /> 6.981 + <g 6.982 + id="g9341" 6.983 + transform="translate(44.002789,336)"> 6.984 + <rect 6.985 + y="389.58255" 6.986 + x="346.40247" 6.987 + height="37.165791" 6.988 + width="65.276405" 6.989 + id="rect9343" 6.990 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 6.991 + <text 6.992 + xml:space="preserve" 6.993 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.994 + x="379.35806" 6.995 + y="400.72159" 6.996 + id="text9345" 6.997 + sodipodi:linespacing="100%"><tspan 6.998 + style="text-align:center;text-anchor:middle;fill:#008000" 6.999 + sodipodi:role="line" 6.1000 + x="379.35806" 6.1001 + y="400.72159" 6.1002 + id="tspan9347">VP 1</tspan><tspan 6.1003 + style="font-size:8px;text-align:center;text-anchor:middle;fill:#008000" 6.1004 + sodipodi:role="line" 6.1005 + x="379.35806" 6.1006 + y="409.15637" 6.1007 + id="tspan9349">(created by</tspan><tspan 6.1008 + style="font-size:8px;text-align:center;text-anchor:middle;fill:#008000" 6.1009 + sodipodi:role="line" 6.1010 + x="379.35806" 6.1011 + y="417.15637" 6.1012 + id="tspan9355">application,</tspan><tspan 6.1013 + style="font-size:8px;text-align:center;text-anchor:middle;fill:#008000" 6.1014 + sodipodi:role="line" 6.1015 + x="379.35806" 6.1016 + y="425.15637" 6.1017 + id="tspan9746">on core 2)</tspan></text> 6.1018 + </g> 6.1019 + <g 6.1020 + transform="translate(44.002789,370)" 6.1021 + id="g9371" /> 6.1022 + <text 6.1023 + xml:space="preserve" 6.1024 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.1025 + x="202.41257" 6.1026 + y="541.42468" 6.1027 + id="text9512" 6.1028 + sodipodi:linespacing="100%"><tspan 6.1029 + style="text-align:center;text-anchor:middle;fill:#000080" 6.1030 + sodipodi:role="line" 6.1031 + x="202.41257" 6.1032 + y="541.42468" 6.1033 + id="tspan9514">Master Fn</tspan></text> 6.1034 + <path 6.1035 + sodipodi:nodetypes="cc" 6.1036 + inkscape:connector-curvature="0" 6.1037 + id="path9522" 6.1038 + d="m 205.27805,580.31985 c 0,7.35629 0,7.35629 0,7.35629" 6.1039 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 6.1040 + <path 6.1041 + inkscape:connector-curvature="0" 6.1042 + id="path9524" 6.1043 + d="m 205.05995,586.02605 c -67.19099,0 -67.19099,0 -67.19099,0" 6.1044 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 6.1045 + <path 6.1046 + sodipodi:nodetypes="cc" 6.1047 + inkscape:connector-curvature="0" 6.1048 + id="path9548" 6.1049 + d="m 137.27805,585.85824 c 0,11.43122 0,11.43122 0,11.43122" 6.1050 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 6.1051 + <path 6.1052 + inkscape:connector-curvature="0" 6.1053 + id="path9550" 6.1054 + d="m 137.57123,598.02605 c -69.22157,0 -69.22157,0 -69.22157,0" 6.1055 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 6.1056 + <path 6.1057 + sodipodi:nodetypes="cc" 6.1058 + inkscape:connector-curvature="0" 6.1059 + id="path9554" 6.1060 + d="m 205.27805,636.63925 c 0,4.54718 0,4.54718 0,4.54718" 6.1061 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 6.1062 + <text 6.1063 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 6.1064 + xml:space="preserve" 6.1065 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.1066 + x="-300.35513" 6.1067 + y="609.46997" 6.1068 + id="text9566" 6.1069 + sodipodi:linespacing="100%"><tspan 6.1070 + style="font-size:8px;text-align:center;text-anchor:middle" 6.1071 + sodipodi:role="line" 6.1072 + x="-300.35513" 6.1073 + y="609.46997" 6.1074 + id="tspan9568">suspend</tspan><tspan 6.1075 + id="tspan9570" 6.1076 + style="font-size:8px;text-align:center;text-anchor:middle" 6.1077 + sodipodi:role="line" 6.1078 + x="-300.35513" 6.1079 + y="617.46997">and switch</tspan><tspan 6.1080 + id="tspan9572" 6.1081 + style="font-size:8px;text-align:center;text-anchor:middle" 6.1082 + sodipodi:role="line" 6.1083 + x="-300.35513" 6.1084 + y="625.46997">to app VP</tspan></text> 6.1085 + <path 6.1086 + sodipodi:nodetypes="cc" 6.1087 + inkscape:connector-curvature="0" 6.1088 + id="path9614" 6.1089 + d="m 205.27805,580.31985 c 0,7.35629 0,7.35629 0,7.35629" 6.1090 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 6.1091 + <path 6.1092 + sodipodi:nodetypes="cc" 6.1093 + inkscape:connector-curvature="0" 6.1094 + id="path9616" 6.1095 + d="m 205.27805,580.31985 c 0,7.35629 0,7.35629 0,7.35629" 6.1096 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 6.1097 + <path 6.1098 + inkscape:connector-curvature="0" 6.1099 + id="path9648" 6.1100 + d="m 468.24715,545.42364 c 13.34137,0 13.34137,0 13.34137,0" 6.1101 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 6.1102 + <text 6.1103 + sodipodi:linespacing="100%" 6.1104 + id="text9654" 6.1105 + y="547.021" 6.1106 + x="485.96786" 6.1107 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.1108 + xml:space="preserve" 6.1109 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 6.1110 + id="tspan9656" 6.1111 + y="547.021" 6.1112 + x="485.96786" 6.1113 + sodipodi:role="line" 6.1114 + style="font-size:8px;text-align:start;text-anchor:start">start</tspan></text> 6.1115 + <path 6.1116 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:none" 6.1117 + d="m 476.02904,764.79398 c 0,35.61575 0,35.61575 0,35.61575" 6.1118 + id="path9658" 6.1119 + inkscape:connector-curvature="0" 6.1120 + sodipodi:nodetypes="cc" /> 6.1121 + <path 6.1122 + inkscape:connector-curvature="0" 6.1123 + id="path9660" 6.1124 + d="m 468.24715,800.02605 c 13.34137,0 13.34137,0 13.34137,0" 6.1125 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 6.1126 + <path 6.1127 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 6.1128 + d="m 481.57781,854.02605 c -13.14022,0 -13.14022,0 -13.14022,0" 6.1129 + id="path9662" 6.1130 + inkscape:connector-curvature="0" /> 6.1131 + <text 6.1132 + sodipodi:linespacing="100%" 6.1133 + id="text9668" 6.1134 + y="-467.51968" 6.1135 + x="833.97864" 6.1136 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.1137 + xml:space="preserve" 6.1138 + transform="matrix(-0.01875541,0.9998241,-0.9998241,-0.01875541,0,0)"><tspan 6.1139 + y="-467.51968" 6.1140 + x="833.97864" 6.1141 + sodipodi:role="line" 6.1142 + style="text-align:center;text-anchor:middle;fill:#008000" 6.1143 + id="tspan9740">Timeline of VP 1</tspan></text> 6.1144 + <text 6.1145 + sodipodi:linespacing="100%" 6.1146 + id="text9672" 6.1147 + y="799.01776" 6.1148 + x="487.07419" 6.1149 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.1150 + xml:space="preserve" 6.1151 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 6.1152 + id="tspan9674" 6.1153 + y="799.01776" 6.1154 + x="487.07419" 6.1155 + sodipodi:role="line" 6.1156 + style="font-size:8px;text-align:start;text-anchor:start">suspend</tspan></text> 6.1157 + <text 6.1158 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 6.1159 + xml:space="preserve" 6.1160 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.1161 + x="487.32007" 6.1162 + y="855.01727" 6.1163 + id="text9676" 6.1164 + sodipodi:linespacing="100%"><tspan 6.1165 + style="font-size:8px;text-align:start;text-anchor:start" 6.1166 + sodipodi:role="line" 6.1167 + x="487.32007" 6.1168 + y="855.01727" 6.1169 + id="tspan9678">resume</tspan></text> 6.1170 + <path 6.1171 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 6.1172 + d="m 468.24715,765.42364 c 13.34137,0 13.34137,0 13.34137,0" 6.1173 + id="path9684" 6.1174 + inkscape:connector-curvature="0" /> 6.1175 + <text 6.1176 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 6.1177 + xml:space="preserve" 6.1178 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.1179 + x="486.93356" 6.1180 + y="767.01935" 6.1181 + id="text9686" 6.1182 + sodipodi:linespacing="100%"><tspan 6.1183 + style="font-size:8px;text-align:start;text-anchor:start" 6.1184 + sodipodi:role="line" 6.1185 + x="486.93356" 6.1186 + y="767.01935" 6.1187 + id="tspan9688">start</tspan></text> 6.1188 + <path 6.1189 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:none" 6.1190 + d="m 266.02904,579.4311 c 0,61.88904 0,61.88904 0,61.88904" 6.1191 + id="path9690" 6.1192 + inkscape:connector-curvature="0" 6.1193 + sodipodi:nodetypes="cc" /> 6.1194 + <path 6.1195 + inkscape:connector-curvature="0" 6.1196 + id="path9692" 6.1197 + d="m 258.24715,580.02605 c 13.34137,0 13.34137,0 13.34137,0" 6.1198 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 6.1199 + <path 6.1200 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 6.1201 + d="m 271.57781,642.02605 c -13.14022,0 -13.14022,0 -13.14022,0" 6.1202 + id="path9694" 6.1203 + inkscape:connector-curvature="0" /> 6.1204 + <text 6.1205 + sodipodi:linespacing="100%" 6.1206 + id="text9700" 6.1207 + y="-276.31772" 6.1208 + x="625.34003" 6.1209 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.1210 + xml:space="preserve" 6.1211 + transform="matrix(0.00239328,0.99999714,-0.99999714,0.00239328,0,0)"><tspan 6.1212 + y="-276.31772" 6.1213 + x="625.34003" 6.1214 + sodipodi:role="line" 6.1215 + style="text-align:center;text-anchor:middle;fill:#000080" 6.1216 + id="tspan9736">Timeline of Master on core 1</tspan></text> 6.1217 + <text 6.1218 + sodipodi:linespacing="100%" 6.1219 + id="text9704" 6.1220 + y="642.12531" 6.1221 + x="262.08206" 6.1222 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.1223 + xml:space="preserve" 6.1224 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 6.1225 + id="tspan9706" 6.1226 + y="642.12531" 6.1227 + x="262.08206" 6.1228 + sodipodi:role="line" 6.1229 + style="font-size:8px;text-align:end;text-anchor:end">suspend</tspan></text> 6.1230 + <text 6.1231 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 6.1232 + xml:space="preserve" 6.1233 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.1234 + x="259.36166" 6.1235 + y="582.12573" 6.1236 + id="text9708" 6.1237 + sodipodi:linespacing="100%"><tspan 6.1238 + style="font-size:8px;text-align:end;text-anchor:end" 6.1239 + sodipodi:role="line" 6.1240 + x="259.36166" 6.1241 + y="582.12573" 6.1242 + id="tspan9710">resume</tspan></text> 6.1243 + <path 6.1244 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 6.1245 + d="m 258.24715,545.42364 c 13.34137,0 13.34137,0 13.34137,0" 6.1246 + id="path9716" 6.1247 + inkscape:connector-curvature="0" /> 6.1248 + <text 6.1249 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 6.1250 + xml:space="preserve" 6.1251 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.1252 + x="258.41916" 6.1253 + y="548.09222" 6.1254 + id="text9718" 6.1255 + sodipodi:linespacing="100%"><tspan 6.1256 + style="font-size:8px;text-align:end;text-anchor:end" 6.1257 + sodipodi:role="line" 6.1258 + x="258.41916" 6.1259 + y="548.09222" 6.1260 + id="tspan9720">start</tspan></text> 6.1261 + <path 6.1262 + sodipodi:nodetypes="cc" 6.1263 + inkscape:connector-curvature="0" 6.1264 + id="path9722" 6.1265 + d="m 266.02904,699.43112 c 0,10.33165 0,10.33165 0,10.33165" 6.1266 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" /> 6.1267 + <path 6.1268 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 6.1269 + d="m 258.24715,700.02605 c 13.34137,0 13.34137,0 13.34137,0" 6.1270 + id="path9724" 6.1271 + inkscape:connector-curvature="0" /> 6.1272 + <text 6.1273 + sodipodi:linespacing="100%" 6.1274 + id="text9936" 6.1275 + y="786.9176" 6.1276 + x="644.57471" 6.1277 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.1278 + xml:space="preserve" 6.1279 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)"><tspan 6.1280 + id="tspan9938" 6.1281 + y="786.9176" 6.1282 + x="644.57471" 6.1283 + sodipodi:role="line" 6.1284 + style="font-size:8px;text-align:center;text-anchor:middle">Call to dyn lib</tspan></text> 6.1285 + <text 6.1286 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)" 6.1287 + xml:space="preserve" 6.1288 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.1289 + x="646.42737" 6.1290 + y="898.90509" 6.1291 + id="text9940" 6.1292 + sodipodi:linespacing="100%"><tspan 6.1293 + style="font-size:8px;text-align:center;text-anchor:middle" 6.1294 + sodipodi:role="line" 6.1295 + x="646.42737" 6.1296 + y="898.90509" 6.1297 + id="tspan9942">Call to dyn lib</tspan></text> 6.1298 + <text 6.1299 + sodipodi:linespacing="100%" 6.1300 + id="text9944" 6.1301 + y="686.93219" 6.1302 + x="642.91998" 6.1303 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.1304 + xml:space="preserve" 6.1305 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)"><tspan 6.1306 + id="tspan9946" 6.1307 + y="686.93219" 6.1308 + x="642.91998" 6.1309 + sodipodi:role="line" 6.1310 + style="font-size:8px;text-align:center;text-anchor:middle">Call to dyn lib</tspan></text> 6.1311 + <text 6.1312 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)" 6.1313 + xml:space="preserve" 6.1314 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.1315 + x="115.47029" 6.1316 + y="603.64581" 6.1317 + id="text9948" 6.1318 + sodipodi:linespacing="100%"><tspan 6.1319 + style="font-size:8px;text-align:center;text-anchor:middle" 6.1320 + sodipodi:role="line" 6.1321 + x="115.47029" 6.1322 + y="603.64581" 6.1323 + id="tspan9950">call to dyn lib</tspan></text> 6.1324 + <path 6.1325 + inkscape:connector-curvature="0" 6.1326 + id="path9952" 6.1327 + d="m 701.67453,642.02605 c -669.895225,0 -669.895225,0 -669.895225,0" 6.1328 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" /> 6.1329 + <path 6.1330 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" 6.1331 + d="m 701.67453,579.52981 c -669.895225,0 -669.895225,0 -669.895225,0" 6.1332 + id="path9954" 6.1333 + inkscape:connector-curvature="0" /> 6.1334 + <text 6.1335 + xml:space="preserve" 6.1336 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.1337 + x="326.92542" 6.1338 + y="739.76575" 6.1339 + id="text9956" 6.1340 + sodipodi:linespacing="100%"><tspan 6.1341 + style="text-align:center;text-anchor:middle" 6.1342 + sodipodi:role="line" 6.1343 + id="tspan9958" 6.1344 + x="326.92542" 6.1345 + y="739.76575">Master</tspan><tspan 6.1346 + style="font-size:8px;text-align:center;text-anchor:middle" 6.1347 + id="tspan9960" 6.1348 + sodipodi:role="line" 6.1349 + x="326.92542" 6.1350 + y="748.2005">(runtime system)</tspan><tspan 6.1351 + id="tspan9962" 6.1352 + style="font-size:8px;text-align:center;text-anchor:middle" 6.1353 + sodipodi:role="line" 6.1354 + x="326.92542" 6.1355 + y="756.2005">on core 2</tspan></text> 6.1356 + <path 6.1357 + inkscape:connector-curvature="0" 6.1358 + id="path9970" 6.1359 + d="m 291.99816,758.02605 c -63.44071,0 -63.44071,0 -63.44071,0" 6.1360 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000003, 3.00000003;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 6.1361 + <g 6.1362 + id="g9972" 6.1363 + transform="matrix(1,0,0,0.71130685,-16,504.52913)"> 6.1364 + <rect 6.1365 + style="fill:none;stroke:#000000;stroke-width:1.28076112;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 6.1366 + id="rect9974" 6.1367 + width="65.276405" 6.1368 + height="52.250008" 6.1369 + x="310.40247" 6.1370 + y="313.58255" /> 6.1371 + </g> 6.1372 + <text 6.1373 + sodipodi:linespacing="100%" 6.1374 + id="text9982" 6.1375 + y="761.42468" 6.1376 + x="202.41257" 6.1377 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.1378 + xml:space="preserve"><tspan 6.1379 + id="tspan9984" 6.1380 + y="761.42468" 6.1381 + x="202.41257" 6.1382 + sodipodi:role="line" 6.1383 + style="text-align:center;text-anchor:middle;fill:#000080">Master Fn</tspan></text> 6.1384 + <path 6.1385 + sodipodi:nodetypes="cc" 6.1386 + inkscape:connector-curvature="0" 6.1387 + id="path10010" 6.1388 + d="m 266.02904,799.43113 c 0,54.93536 0,54.93536 0,54.93536" 6.1389 + style="fill:none;stroke:#000000;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:none" /> 6.1390 + <path 6.1391 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 6.1392 + d="m 258.24715,800.02605 c 13.34137,0 13.34137,0 13.34137,0" 6.1393 + id="path10012" 6.1394 + inkscape:connector-curvature="0" /> 6.1395 + <path 6.1396 + inkscape:connector-curvature="0" 6.1397 + id="path10014" 6.1398 + d="m 271.57781,854.02605 c -13.14022,0 -13.14022,0 -13.14022,0" 6.1399 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 6.1400 + <text 6.1401 + transform="matrix(0.00962718,0.99995366,-0.99995366,0.00962718,0,0)" 6.1402 + xml:space="preserve" 6.1403 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.1404 + x="837.37762" 6.1405 + y="-273.75269" 6.1406 + id="text10018" 6.1407 + sodipodi:linespacing="100%"><tspan 6.1408 + id="tspan10020" 6.1409 + style="text-align:center;text-anchor:middle;fill:#000080" 6.1410 + sodipodi:role="line" 6.1411 + x="837.37762" 6.1412 + y="-273.75269">Timeline of Master on core 2</tspan></text> 6.1413 + <path 6.1414 + inkscape:connector-curvature="0" 6.1415 + id="path10030" 6.1416 + d="m 258.24715,765.42364 c 13.34137,0 13.34137,0 13.34137,0" 6.1417 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 6.1418 + <path 6.1419 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000002, 3.00000002;stroke-dashoffset:0" 6.1420 + d="m 205.27805,543.45805 c 0,3.23577 0,3.23577 0,3.23577" 6.1421 + id="path10054" 6.1422 + inkscape:connector-curvature="0" 6.1423 + sodipodi:nodetypes="cc" /> 6.1424 + <path 6.1425 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" 6.1426 + d="m 701.67453,854.02605 c -669.895225,0 -669.895225,0 -669.895225,0" 6.1427 + id="path10056" 6.1428 + inkscape:connector-curvature="0" /> 6.1429 + <path 6.1430 + inkscape:connector-curvature="0" 6.1431 + id="path10058" 6.1432 + d="m 701.67453,799.52981 c -669.895225,0 -669.895225,0 -669.895225,0" 6.1433 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" /> 6.1434 + <text 6.1435 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 6.1436 + xml:space="preserve" 6.1437 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.1438 + x="-248.43199" 6.1439 + y="551.17401" 6.1440 + id="text10062" 6.1441 + sodipodi:linespacing="100%"><tspan 6.1442 + id="tspan10068" 6.1443 + style="font-size:8px;text-align:center;text-anchor:middle" 6.1444 + sodipodi:role="line" 6.1445 + x="-248.43199" 6.1446 + y="551.17401">return from</tspan><tspan 6.1447 + style="font-size:8px;text-align:center;text-anchor:middle" 6.1448 + sodipodi:role="line" 6.1449 + x="-248.43199" 6.1450 + y="559.17401" 6.1451 + id="tspan10074">suspend</tspan></text> 6.1452 + <path 6.1453 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" 6.1454 + d="m 701.67453,700.02605 c -669.895225,0 -669.895225,0 -669.895225,0" 6.1455 + id="path10076" 6.1456 + inkscape:connector-curvature="0" /> 6.1457 + <text 6.1458 + xml:space="preserve" 6.1459 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.1460 + x="667.38037" 6.1461 + y="677.42468" 6.1462 + id="text10082" 6.1463 + sodipodi:linespacing="100%"><tspan 6.1464 + style="text-align:center;text-anchor:middle;fill:#000080" 6.1465 + sodipodi:role="line" 6.1466 + x="667.38037" 6.1467 + y="677.42468" 6.1468 + id="tspan10084">PR primitive Fn</tspan><tspan 6.1469 + id="tspan10086" 6.1470 + style="text-align:center;text-anchor:middle;fill:#000080" 6.1471 + sodipodi:role="line" 6.1472 + x="667.38037" 6.1473 + y="687.42468">to send request</tspan></text> 6.1474 + <text 6.1475 + sodipodi:linespacing="100%" 6.1476 + id="text10088" 6.1477 + y="777.42468" 6.1478 + x="667.38037" 6.1479 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.1480 + xml:space="preserve"><tspan 6.1481 + id="tspan10090" 6.1482 + y="777.42468" 6.1483 + x="667.38037" 6.1484 + sodipodi:role="line" 6.1485 + style="text-align:center;text-anchor:middle;fill:#000080">PR primitive Fn</tspan><tspan 6.1486 + y="787.42468" 6.1487 + x="667.38037" 6.1488 + sodipodi:role="line" 6.1489 + style="text-align:center;text-anchor:middle;fill:#000080" 6.1490 + id="tspan10092">to send request</tspan></text> 6.1491 + <text 6.1492 + xml:space="preserve" 6.1493 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.1494 + x="667.38037" 6.1495 + y="889.42468" 6.1496 + id="text10094" 6.1497 + sodipodi:linespacing="100%"><tspan 6.1498 + style="text-align:center;text-anchor:middle;fill:#000080" 6.1499 + sodipodi:role="line" 6.1500 + x="667.38037" 6.1501 + y="889.42468" 6.1502 + id="tspan10096">PR primitive Fn</tspan><tspan 6.1503 + id="tspan10098" 6.1504 + style="text-align:center;text-anchor:middle;fill:#000080" 6.1505 + sodipodi:role="line" 6.1506 + x="667.38037" 6.1507 + y="899.42468">to send request</tspan></text> 6.1508 + <path 6.1509 + sodipodi:nodetypes="cc" 6.1510 + inkscape:connector-curvature="0" 6.1511 + id="path10100" 6.1512 + d="m 476.02904,854.3113 c 0,57.40944 0,57.40944 0,57.40944" 6.1513 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" /> 6.1514 + <path 6.1515 + inkscape:connector-curvature="0" 6.1516 + id="path10102" 6.1517 + d="m 481.57781,913.27417 c -13.14022,0 -13.14022,0 -13.14022,0" 6.1518 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 6.1519 + <text 6.1520 + sodipodi:linespacing="100%" 6.1521 + id="text10104" 6.1522 + y="912.22235" 6.1523 + x="487.57166" 6.1524 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.1525 + xml:space="preserve" 6.1526 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 6.1527 + id="tspan10106" 6.1528 + y="912.22235" 6.1529 + x="487.57166" 6.1530 + sodipodi:role="line" 6.1531 + style="font-size:8px;text-align:start;text-anchor:start">end</tspan></text> 6.1532 + <path 6.1533 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" 6.1534 + d="m 266.02904,911.43112 c 0,10.33165 0,10.33165 0,10.33165" 6.1535 + id="path10108" 6.1536 + inkscape:connector-curvature="0" 6.1537 + sodipodi:nodetypes="cc" /> 6.1538 + <path 6.1539 + inkscape:connector-curvature="0" 6.1540 + id="path10110" 6.1541 + d="m 258.24715,912.02605 c 13.34137,0 13.34137,0 13.34137,0" 6.1542 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 6.1543 + <path 6.1544 + inkscape:connector-curvature="0" 6.1545 + id="path10116" 6.1546 + d="m 701.67453,912.02605 c -669.895225,0 -669.895225,0 -669.895225,0" 6.1547 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" /> 6.1548 + <text 6.1549 + sodipodi:linespacing="100%" 6.1550 + id="text10118" 6.1551 + y="702.12524" 6.1552 + x="259.88855" 6.1553 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.1554 + xml:space="preserve" 6.1555 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 6.1556 + id="tspan10120" 6.1557 + y="702.12524" 6.1558 + x="259.88855" 6.1559 + sodipodi:role="line" 6.1560 + style="font-size:8px;text-align:end;text-anchor:end">resume</tspan></text> 6.1561 + <text 6.1562 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 6.1563 + xml:space="preserve" 6.1564 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.1565 + x="260.32755" 6.1566 + y="802.12433" 6.1567 + id="text10122" 6.1568 + sodipodi:linespacing="100%"><tspan 6.1569 + style="font-size:8px;text-align:end;text-anchor:end" 6.1570 + sodipodi:role="line" 6.1571 + x="260.32755" 6.1572 + y="802.12433" 6.1573 + id="tspan10124">resume</tspan></text> 6.1574 + <text 6.1575 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 6.1576 + xml:space="preserve" 6.1577 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.1578 + x="263.01257" 6.1579 + y="854.12366" 6.1580 + id="text10126" 6.1581 + sodipodi:linespacing="100%"><tspan 6.1582 + style="font-size:8px;text-align:end;text-anchor:end" 6.1583 + sodipodi:role="line" 6.1584 + x="263.01257" 6.1585 + y="854.12366" 6.1586 + id="tspan10128">suspend</tspan></text> 6.1587 + <text 6.1588 + sodipodi:linespacing="100%" 6.1589 + id="text10130" 6.1590 + y="768.09064" 6.1591 + x="259.38495" 6.1592 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.1593 + xml:space="preserve" 6.1594 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 6.1595 + id="tspan10132" 6.1596 + y="768.09064" 6.1597 + x="259.38495" 6.1598 + sodipodi:role="line" 6.1599 + style="font-size:8px;text-align:end;text-anchor:end">start</tspan></text> 6.1600 + <text 6.1601 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 6.1602 + xml:space="preserve" 6.1603 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.1604 + x="260.81906" 6.1605 + y="914.12299" 6.1606 + id="text10134" 6.1607 + sodipodi:linespacing="100%"><tspan 6.1608 + style="font-size:8px;text-align:end;text-anchor:end" 6.1609 + sodipodi:role="line" 6.1610 + x="260.81906" 6.1611 + y="914.12299" 6.1612 + id="tspan10136">resume</tspan></text> 6.1613 + <text 6.1614 + xml:space="preserve" 6.1615 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.1616 + x="136.99219" 6.1617 + y="467.42465" 6.1618 + id="text10146" 6.1619 + sodipodi:linespacing="100%"><tspan 6.1620 + style="text-align:center;text-anchor:middle;fill:#800000" 6.1621 + sodipodi:role="line" 6.1622 + x="138.49609" 6.1623 + y="467.42465" 6.1624 + id="tspan10148">Language </tspan><tspan 6.1625 + id="tspan10150" 6.1626 + style="text-align:center;text-anchor:middle;fill:#800000" 6.1627 + sodipodi:role="line" 6.1628 + x="136.99219" 6.1629 + y="477.42465">Plugin</tspan><tspan 6.1630 + id="tspan10152" 6.1631 + style="text-align:center;text-anchor:middle;fill:#800000" 6.1632 + sodipodi:role="line" 6.1633 + x="136.99219" 6.1634 + y="487.42465">Code</tspan></text> 6.1635 + <text 6.1636 + xml:space="preserve" 6.1637 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.1638 + x="203.16797" 6.1639 + y="467.42465" 6.1640 + id="text10154" 6.1641 + sodipodi:linespacing="100%"><tspan 6.1642 + style="text-align:center;text-anchor:middle;fill:#000080" 6.1643 + sodipodi:role="line" 6.1644 + x="203.16797" 6.1645 + y="467.42465" 6.1646 + id="tspan10156">Proto-Runtime</tspan><tspan 6.1647 + style="text-align:center;text-anchor:middle;fill:#000080" 6.1648 + sodipodi:role="line" 6.1649 + x="203.16797" 6.1650 + y="477.42465" 6.1651 + id="tspan10158">Master</tspan><tspan 6.1652 + id="tspan10160" 6.1653 + style="text-align:center;text-anchor:middle;fill:#000080" 6.1654 + sodipodi:role="line" 6.1655 + x="203.16797" 6.1656 + y="487.42465">Code</tspan></text> 6.1657 + <path 6.1658 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 6.1659 + d="m 205.05995,586.02605 c -67.19099,0 -67.19099,0 -67.19099,0" 6.1660 + id="path10162" 6.1661 + inkscape:connector-curvature="0" /> 6.1662 + <path 6.1663 + inkscape:connector-curvature="0" 6.1664 + id="path10164" 6.1665 + d="m 137.04459,636.02605 c 67.19099,0 67.19099,0 67.19099,0" 6.1666 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 6.1667 + <path 6.1668 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 6.1669 + d="m 67.525286,610.02605 c 69.221574,0 69.221574,0 69.221574,0" 6.1670 + id="path10166" 6.1671 + inkscape:connector-curvature="0" /> 6.1672 + <path 6.1673 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 6.1674 + d="m 67.27805,597.85824 c 0,13.94668 0,13.94668 0,13.94668" 6.1675 + id="path10168" 6.1676 + inkscape:connector-curvature="0" 6.1677 + sodipodi:nodetypes="cc" /> 6.1678 + <path 6.1679 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 6.1680 + d="m 137.04459,612.02605 c 67.19099,0 67.19099,0 67.19099,0" 6.1681 + id="path10172" 6.1682 + inkscape:connector-curvature="0" /> 6.1683 + <path 6.1684 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 6.1685 + d="m 205.27805,612.63926 c 0,11.23237 0,11.23237 0,11.23237" 6.1686 + id="path10174" 6.1687 + inkscape:connector-curvature="0" 6.1688 + sodipodi:nodetypes="cc" /> 6.1689 + <path 6.1690 + inkscape:connector-curvature="0" 6.1691 + id="path10176" 6.1692 + d="m 205.05995,624.02605 c -67.19099,0 -67.19099,0 -67.19099,0" 6.1693 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 6.1694 + <text 6.1695 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)" 6.1696 + xml:space="preserve" 6.1697 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.1698 + x="191.85561" 6.1699 + y="626.38348" 6.1700 + id="text10178" 6.1701 + sodipodi:linespacing="100%"><tspan 6.1702 + style="font-size:7px;text-align:center;text-anchor:middle" 6.1703 + sodipodi:role="line" 6.1704 + x="191.85561" 6.1705 + y="626.38348" 6.1706 + id="tspan10180">call via Ptr to Dyn Lib Fn</tspan></text> 6.1707 + <path 6.1708 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 6.1709 + d="m 137.27805,623.85824 c 0,11.43122 0,11.43122 0,11.43122" 6.1710 + id="path10182" 6.1711 + inkscape:connector-curvature="0" 6.1712 + sodipodi:nodetypes="cc" /> 6.1713 + <text 6.1714 + sodipodi:linespacing="100%" 6.1715 + id="text10184" 6.1716 + y="588.38867" 6.1717 + x="191.22707" 6.1718 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.1719 + xml:space="preserve" 6.1720 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)"><tspan 6.1721 + id="tspan10186" 6.1722 + y="588.38867" 6.1723 + x="191.22707" 6.1724 + sodipodi:role="line" 6.1725 + style="font-size:7px;text-align:center;text-anchor:middle">call via Ptr to Dyn Lib Fn</tspan></text> 6.1726 + <text 6.1727 + sodipodi:linespacing="100%" 6.1728 + id="text10188" 6.1729 + y="791.42468" 6.1730 + x="137.31689" 6.1731 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.1732 + xml:space="preserve"><tspan 6.1733 + id="tspan10190" 6.1734 + y="791.42468" 6.1735 + x="137.31689" 6.1736 + sodipodi:role="line" 6.1737 + style="text-align:center;text-anchor:middle;fill:#800000">Lang Handler</tspan><tspan 6.1738 + id="tspan10192" 6.1739 + y="801.42468" 6.1740 + x="137.31689" 6.1741 + sodipodi:role="line" 6.1742 + style="text-align:center;text-anchor:middle;fill:#800000">for acq Mutex</tspan></text> 6.1743 + <path 6.1744 + sodipodi:nodetypes="cc" 6.1745 + inkscape:connector-curvature="0" 6.1746 + id="path10230" 6.1747 + d="m 205.27805,763.45805 c 0,3.23576 0,3.23576 0,3.23576" 6.1748 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 6.1749 + <path 6.1750 + inkscape:connector-curvature="0" 6.1751 + id="path4879" 6.1752 + d="m 465.78297,700.02605 c -193.92439,0 -193.92439,0 -193.92439,0" 6.1753 + style="fill:none;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 6.1754 + <path 6.1755 + inkscape:connector-curvature="0" 6.1756 + id="path5395" 6.1757 + d="m 466.19516,580.02605 c -193.92439,0 -193.92439,0 -193.92439,0" 6.1758 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 6.1759 + <path 6.1760 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 6.1761 + d="m 466.19516,800.02605 c -193.92439,0 -193.92439,0 -193.92439,0" 6.1762 + id="path5397" 6.1763 + inkscape:connector-curvature="0" /> 6.1764 + <path 6.1765 + inkscape:connector-curvature="0" 6.1766 + id="path5399" 6.1767 + d="m 466.19516,912.02605 c -193.92439,0 -193.92439,0 -193.92439,0" 6.1768 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 6.1769 + <path 6.1770 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 6.1771 + d="m 271.03421,854.02605 c 193.92439,0 193.92439,0 193.92439,0" 6.1772 + id="path5402" 6.1773 + inkscape:connector-curvature="0" /> 6.1774 + <text 6.1775 + sodipodi:linespacing="100%" 6.1776 + id="text5410" 6.1777 + y="833.42468" 6.1778 + x="137.68066" 6.1779 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.1780 + xml:space="preserve"><tspan 6.1781 + id="tspan5412" 6.1782 + y="833.42468" 6.1783 + x="137.68066" 6.1784 + sodipodi:role="line" 6.1785 + style="text-align:center;text-anchor:middle;fill:#800000">Assigner Fn</tspan></text> 6.1786 + <path 6.1787 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 6.1788 + d="m 205.27805,800.31985 c 0,7.35629 0,7.35629 0,7.35629" 6.1789 + id="path5420" 6.1790 + inkscape:connector-curvature="0" 6.1791 + sodipodi:nodetypes="cc" /> 6.1792 + <path 6.1793 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 6.1794 + d="m 205.05995,806.02605 c -67.19099,0 -67.19099,0 -67.19099,0" 6.1795 + id="path5422" 6.1796 + inkscape:connector-curvature="0" /> 6.1797 + <path 6.1798 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 6.1799 + d="m 137.27805,805.85824 c 0,11.43122 0,11.43122 0,11.43122" 6.1800 + id="path5424" 6.1801 + inkscape:connector-curvature="0" 6.1802 + sodipodi:nodetypes="cc" /> 6.1803 + <path 6.1804 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 6.1805 + d="m 205.27805,848.63925 c 0,4.54718 0,4.54718 0,4.54718" 6.1806 + id="path5428" 6.1807 + inkscape:connector-curvature="0" 6.1808 + sodipodi:nodetypes="cc" /> 6.1809 + <text 6.1810 + sodipodi:linespacing="100%" 6.1811 + id="text5430" 6.1812 + y="761.78809" 6.1813 + x="-447.8111" 6.1814 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.1815 + xml:space="preserve" 6.1816 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 6.1817 + id="tspan5432" 6.1818 + y="761.78809" 6.1819 + x="-447.8111" 6.1820 + sodipodi:role="line" 6.1821 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan><tspan 6.1822 + y="769.78809" 6.1823 + x="-447.8111" 6.1824 + sodipodi:role="line" 6.1825 + style="font-size:8px;text-align:center;text-anchor:middle" 6.1826 + id="tspan5434">and switch</tspan><tspan 6.1827 + y="777.78809" 6.1828 + x="-447.8111" 6.1829 + sodipodi:role="line" 6.1830 + style="font-size:8px;text-align:center;text-anchor:middle" 6.1831 + id="tspan5436">to app VP</tspan></text> 6.1832 + <path 6.1833 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 6.1834 + d="m 205.27805,800.31985 c 0,7.35629 0,7.35629 0,7.35629" 6.1835 + id="path5438" 6.1836 + inkscape:connector-curvature="0" 6.1837 + sodipodi:nodetypes="cc" /> 6.1838 + <path 6.1839 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 6.1840 + d="m 205.27805,800.31985 c 0,7.35629 0,7.35629 0,7.35629" 6.1841 + id="path5440" 6.1842 + inkscape:connector-curvature="0" 6.1843 + sodipodi:nodetypes="cc" /> 6.1844 + <text 6.1845 + sodipodi:linespacing="100%" 6.1846 + id="text5446" 6.1847 + y="709.24017" 6.1848 + x="-401.45242" 6.1849 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.1850 + xml:space="preserve" 6.1851 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 6.1852 + y="709.24017" 6.1853 + x="-401.45242" 6.1854 + sodipodi:role="line" 6.1855 + style="font-size:8px;text-align:center;text-anchor:middle" 6.1856 + id="tspan5448">return from</tspan><tspan 6.1857 + id="tspan5450" 6.1858 + y="717.24017" 6.1859 + x="-401.45242" 6.1860 + sodipodi:role="line" 6.1861 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan></text> 6.1862 + <path 6.1863 + inkscape:connector-curvature="0" 6.1864 + id="path5452" 6.1865 + d="m 205.05995,806.02605 c -67.19099,0 -67.19099,0 -67.19099,0" 6.1866 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 6.1867 + <path 6.1868 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 6.1869 + d="m 137.04459,848.02605 c 67.19099,0 67.19099,0 67.19099,0" 6.1870 + id="path5454" 6.1871 + inkscape:connector-curvature="0" /> 6.1872 + <path 6.1873 + inkscape:connector-curvature="0" 6.1874 + id="path5460" 6.1875 + d="m 137.04459,820.02605 c 67.19099,0 67.19099,0 67.19099,0" 6.1876 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 6.1877 + <path 6.1878 + sodipodi:nodetypes="cc" 6.1879 + inkscape:connector-curvature="0" 6.1880 + id="path5462" 6.1881 + d="m 205.27805,820.63927 c 0,14.88618 0,14.88618 0,14.88618" 6.1882 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 6.1883 + <path 6.1884 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 6.1885 + d="m 205.05995,836.02605 c -67.19099,0 -67.19099,0 -67.19099,0" 6.1886 + id="path5464" 6.1887 + inkscape:connector-curvature="0" /> 6.1888 + <text 6.1889 + sodipodi:linespacing="100%" 6.1890 + id="text5466" 6.1891 + y="838.35522" 6.1892 + x="195.36256" 6.1893 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.1894 + xml:space="preserve" 6.1895 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)"><tspan 6.1896 + id="tspan5468" 6.1897 + y="838.35522" 6.1898 + x="195.36256" 6.1899 + sodipodi:role="line" 6.1900 + style="font-size:7px;text-align:center;text-anchor:middle">call via Ptr to Dyn Lib Fn</tspan></text> 6.1901 + <path 6.1902 + sodipodi:nodetypes="cc" 6.1903 + inkscape:connector-curvature="0" 6.1904 + id="path5470" 6.1905 + d="m 137.27805,835.85824 c 0,11.43122 0,11.43122 0,11.43122" 6.1906 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 6.1907 + <text 6.1908 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)" 6.1909 + xml:space="preserve" 6.1910 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.1911 + x="194.86635" 6.1912 + y="808.35907" 6.1913 + id="text5472" 6.1914 + sodipodi:linespacing="100%"><tspan 6.1915 + style="font-size:7px;text-align:center;text-anchor:middle" 6.1916 + sodipodi:role="line" 6.1917 + x="194.86635" 6.1918 + y="808.35907" 6.1919 + id="tspan5474">call via Ptr to Dyn Lib Fn</tspan></text> 6.1920 + <text 6.1921 + sodipodi:linespacing="100%" 6.1922 + id="text5476" 6.1923 + y="713.48187" 6.1924 + x="-172.78647" 6.1925 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.1926 + xml:space="preserve" 6.1927 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 6.1928 + y="713.48187" 6.1929 + x="-172.78647" 6.1930 + sodipodi:role="line" 6.1931 + style="font-size:18px;text-align:center;text-anchor:middle" 6.1932 + id="tspan5482">core 1</tspan></text> 6.1933 + <text 6.1934 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 6.1935 + xml:space="preserve" 6.1936 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.1937 + x="-321.0329" 6.1938 + y="865.03326" 6.1939 + id="text5488" 6.1940 + sodipodi:linespacing="100%"><tspan 6.1941 + id="tspan5490" 6.1942 + style="font-size:18px;text-align:center;text-anchor:middle" 6.1943 + sodipodi:role="line" 6.1944 + x="-321.0329" 6.1945 + y="865.03326">core 2</tspan></text> 6.1946 + <path 6.1947 + sodipodi:nodetypes="cc" 6.1948 + inkscape:connector-curvature="0" 6.1949 + id="path5492" 6.1950 + d="m 205.27805,914.31985 c 0,7.35629 0,7.35629 0,7.35629" 6.1951 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 6.1952 + <path 6.1953 + sodipodi:nodetypes="cc" 6.1954 + inkscape:connector-curvature="0" 6.1955 + id="path5494" 6.1956 + d="m 205.27805,914.31985 c 0,7.35629 0,7.35629 0,7.35629" 6.1957 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 6.1958 + <path 6.1959 + sodipodi:nodetypes="cc" 6.1960 + inkscape:connector-curvature="0" 6.1961 + id="path5496" 6.1962 + d="m 205.27805,914.31985 c 0,7.35629 0,7.35629 0,7.35629" 6.1963 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 6.1964 + <text 6.1965 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 6.1966 + xml:space="preserve" 6.1967 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.1968 + x="-480.74414" 6.1969 + y="791.14636" 6.1970 + id="text5498" 6.1971 + sodipodi:linespacing="100%"><tspan 6.1972 + id="tspan5500" 6.1973 + style="font-size:8px;text-align:center;text-anchor:middle" 6.1974 + sodipodi:role="line" 6.1975 + x="-480.74414" 6.1976 + y="791.14636">return from</tspan><tspan 6.1977 + style="font-size:8px;text-align:center;text-anchor:middle" 6.1978 + sodipodi:role="line" 6.1979 + x="-480.74414" 6.1980 + y="799.14636" 6.1981 + id="tspan5502">suspend</tspan></text> 6.1982 + <path 6.1983 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 6.1984 + d="m 205.27805,700.31985 c 0,7.35629 0,7.35629 0,7.35629" 6.1985 + id="path5504" 6.1986 + inkscape:connector-curvature="0" 6.1987 + sodipodi:nodetypes="cc" /> 6.1988 + <path 6.1989 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 6.1990 + d="m 205.27805,700.31985 c 0,7.35629 0,7.35629 0,7.35629" 6.1991 + id="path5506" 6.1992 + inkscape:connector-curvature="0" 6.1993 + sodipodi:nodetypes="cc" /> 6.1994 + <path 6.1995 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 6.1996 + d="m 205.27805,700.31985 c 0,7.35629 0,7.35629 0,7.35629" 6.1997 + id="path5508" 6.1998 + inkscape:connector-curvature="0" 6.1999 + sodipodi:nodetypes="cc" /> 6.2000 + <text 6.2001 + sodipodi:linespacing="100%" 6.2002 + id="text5510" 6.2003 + y="637.39264" 6.2004 + x="-331.89792" 6.2005 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.2006 + xml:space="preserve" 6.2007 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 6.2008 + y="637.39264" 6.2009 + x="-331.89792" 6.2010 + sodipodi:role="line" 6.2011 + style="font-size:8px;text-align:center;text-anchor:middle" 6.2012 + id="tspan5512">return from</tspan><tspan 6.2013 + id="tspan5514" 6.2014 + y="645.39264" 6.2015 + x="-331.89792" 6.2016 + sodipodi:role="line" 6.2017 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan></text> 6.2018 + <path 6.2019 + inkscape:connector-curvature="0" 6.2020 + id="path5516" 6.2021 + d="m 271.03421,766.02605 c 193.92439,0 193.92439,0 193.92439,0" 6.2022 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 6.2023 + <path 6.2024 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 6.2025 + d="m 271.03421,546.02605 c 193.92439,0 193.92439,0 193.92439,0" 6.2026 + id="path5518" 6.2027 + inkscape:connector-curvature="0" /> 6.2028 + <text 6.2029 + xml:space="preserve" 6.2030 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.2031 + x="326.92542" 6.2032 + y="155.76575" 6.2033 + id="text3329" 6.2034 + sodipodi:linespacing="100%"><tspan 6.2035 + style="text-align:center;text-anchor:middle" 6.2036 + sodipodi:role="line" 6.2037 + id="tspan3331" 6.2038 + x="326.92542" 6.2039 + y="155.76575">PR OS thread</tspan><tspan 6.2040 + id="tspan3335" 6.2041 + style="font-size:8px;text-align:center;text-anchor:middle" 6.2042 + sodipodi:role="line" 6.2043 + x="326.92542" 6.2044 + y="164.20053">(core1)</tspan></text> 6.2045 + <g 6.2046 + transform="translate(44.002789,-346)" 6.2047 + id="g3337"> 6.2048 + <rect 6.2049 + y="389.58255" 6.2050 + x="346.40247" 6.2051 + height="37.165791" 6.2052 + width="65.276405" 6.2053 + id="rect3339" 6.2054 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 6.2055 + <text 6.2056 + xml:space="preserve" 6.2057 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.2058 + x="379.00162" 6.2059 + y="400.15268" 6.2060 + id="text3341" 6.2061 + sodipodi:linespacing="100%"><tspan 6.2062 + id="tspan3349" 6.2063 + style="font-size:8px;text-align:center;text-anchor:middle;fill:#008000" 6.2064 + sodipodi:role="line" 6.2065 + x="379.00162" 6.2066 + y="400.15268"><tspan 6.2067 + id="tspan3641" 6.2068 + style="font-size:10px;text-align:center;text-anchor:middle;fill:#008000">Main </tspan>OS thread</tspan></text> 6.2069 + </g> 6.2070 + <text 6.2071 + xml:space="preserve" 6.2072 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.2073 + x="517.16797" 6.2074 + y="81.424683" 6.2075 + id="text3351" 6.2076 + sodipodi:linespacing="100%"><tspan 6.2077 + style="text-align:center;text-anchor:middle;fill:#008000" 6.2078 + sodipodi:role="line" 6.2079 + x="517.16797" 6.2080 + y="81.424683" 6.2081 + id="tspan3353">main</tspan></text> 6.2082 + <text 6.2083 + sodipodi:linespacing="100%" 6.2084 + id="text3355" 6.2085 + y="273.42468" 6.2086 + x="137.31689" 6.2087 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.2088 + xml:space="preserve"><tspan 6.2089 + id="tspan3357" 6.2090 + y="273.42468" 6.2091 + x="137.31689" 6.2092 + sodipodi:role="line" 6.2093 + style="text-align:center;text-anchor:middle;fill:#800000">Lang Handler</tspan><tspan 6.2094 + id="tspan3359" 6.2095 + y="283.42468" 6.2096 + x="137.31689" 6.2097 + sodipodi:role="line" 6.2098 + style="text-align:center;text-anchor:middle;fill:#800000">for create VP</tspan></text> 6.2099 + <text 6.2100 + sodipodi:linespacing="100%" 6.2101 + id="text3361" 6.2102 + y="321.42468" 6.2103 + x="137.68066" 6.2104 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.2105 + xml:space="preserve"><tspan 6.2106 + id="tspan3363" 6.2107 + y="321.42468" 6.2108 + x="137.68066" 6.2109 + sodipodi:role="line" 6.2110 + style="text-align:center;text-anchor:middle;fill:#800000">Assigner Fn</tspan></text> 6.2111 + <path 6.2112 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999996, 2.99999996;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 6.2113 + d="m 457.32649,78.02605 c 38.42351,0 38.42351,0 38.42351,0" 6.2114 + id="path3365" 6.2115 + inkscape:connector-curvature="0" /> 6.2116 + <text 6.2117 + sodipodi:linespacing="100%" 6.2118 + id="text3367" 6.2119 + y="63.424683" 6.2120 + x="604.78461" 6.2121 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.2122 + xml:space="preserve"><tspan 6.2123 + id="tspan3371" 6.2124 + y="63.424683" 6.2125 + x="604.78461" 6.2126 + sodipodi:role="line" 6.2127 + style="text-align:center;text-anchor:middle;fill:#800000">PR_start()</tspan></text> 6.2128 + <text 6.2129 + sodipodi:linespacing="100%" 6.2130 + id="text3373" 6.2131 + y="107.0096" 6.2132 + x="633.32379" 6.2133 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.2134 + xml:space="preserve" 6.2135 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)"><tspan 6.2136 + id="tspan3375" 6.2137 + y="107.0096" 6.2138 + x="633.32379" 6.2139 + sodipodi:role="line" 6.2140 + style="font-size:8px;text-align:center;text-anchor:middle">Call to dyn lib</tspan></text> 6.2141 + <path 6.2142 + inkscape:connector-curvature="0" 6.2143 + id="path3377" 6.2144 + d="m 291.99816,238.02605 c -63.44071,0 -63.44071,0 -63.44071,0" 6.2145 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000003, 3.00000003;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 6.2146 + <text 6.2147 + transform="matrix(0.97994281,-0.19927893,0.19927893,0.97994281,0,0)" 6.2148 + xml:space="preserve" 6.2149 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.2150 + x="208.23512" 6.2151 + y="280.55707" 6.2152 + id="text3379" 6.2153 + sodipodi:linespacing="100%"><tspan 6.2154 + style="font-size:8px;text-align:center;text-anchor:middle" 6.2155 + sodipodi:role="line" 6.2156 + x="208.23512" 6.2157 + y="280.55707" 6.2158 + id="tspan3381">Top Level Fn</tspan></text> 6.2159 + <text 6.2160 + sodipodi:linespacing="100%" 6.2161 + id="text3383" 6.2162 + y="166.44456" 6.2163 + x="460.02557" 6.2164 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.2165 + xml:space="preserve" 6.2166 + transform="matrix(0.97994281,-0.19927893,0.19927893,0.97994281,0,0)"><tspan 6.2167 + id="tspan3385" 6.2168 + y="166.44456" 6.2169 + x="460.02557" 6.2170 + sodipodi:role="line" 6.2171 + style="font-size:8px;text-align:center;text-anchor:middle">birth Fn</tspan></text> 6.2172 + <path 6.2173 + sodipodi:nodetypes="cc" 6.2174 + inkscape:connector-curvature="0" 6.2175 + id="path3387" 6.2176 + d="m 514.02904,84.01894 c 0,5.6572 0,5.6572 0,5.6572" 6.2177 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 6.2178 + <path 6.2179 + inkscape:connector-curvature="0" 6.2180 + id="path3389" 6.2181 + d="m 514.24714,90.02605 c 85.56237,0 85.56237,0 85.56237,0" 6.2182 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 6.2183 + <path 6.2184 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 6.2185 + d="m 602.77166,358.02605 c -88.41298,0 -88.41298,0 -88.41298,0" 6.2186 + id="path3391" 6.2187 + inkscape:connector-curvature="0" /> 6.2188 + <path 6.2189 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 6.2190 + d="m 514.02904,358.31987 c 0,26.21842 0,26.21842 0,26.21842" 6.2191 + id="path3393" 6.2192 + inkscape:connector-curvature="0" 6.2193 + sodipodi:nodetypes="cc" /> 6.2194 + <path 6.2195 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 6.2196 + d="m 514.2471,384.02605 c 87.58783,0 87.58783,0 87.58783,0" 6.2197 + id="path3395" 6.2198 + inkscape:connector-curvature="0" /> 6.2199 + <text 6.2200 + xml:space="preserve" 6.2201 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.2202 + x="604.78461" 6.2203 + y="370.71179" 6.2204 + id="text3397" 6.2205 + sodipodi:linespacing="100%"><tspan 6.2206 + style="text-align:center;text-anchor:middle;fill:#800000" 6.2207 + sodipodi:role="line" 6.2208 + x="604.78461" 6.2209 + y="370.71179" 6.2210 + id="tspan3399">end VP</tspan><tspan 6.2211 + id="tspan3401" 6.2212 + style="text-align:center;text-anchor:middle;fill:#800000" 6.2213 + sodipodi:role="line" 6.2214 + x="604.78461" 6.2215 + y="380.71179">wrapper Fn</tspan></text> 6.2216 + <path 6.2217 + inkscape:connector-curvature="0" 6.2218 + id="path3403" 6.2219 + d="m 602.26584,390.02605 c 63.99676,0 63.99676,0 63.99676,0" 6.2220 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 6.2221 + <path 6.2222 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 6.2223 + d="m 602.02904,382.31985 c 0,7.35629 0,7.35629 0,7.35629" 6.2224 + id="path3405" 6.2225 + inkscape:connector-curvature="0" 6.2226 + sodipodi:nodetypes="cc" /> 6.2227 + <path 6.2228 + sodipodi:nodetypes="cc" 6.2229 + inkscape:connector-curvature="0" 6.2230 + id="path3407" 6.2231 + d="m 602.02904,90.21843 c 0,19.4577 0,19.4577 0,19.4577" 6.2232 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 6.2233 + <path 6.2234 + inkscape:connector-curvature="0" 6.2235 + id="path3409" 6.2236 + d="m 602.24714,110.02605 c 64.71029,0 64.71029,0 64.71029,0" 6.2237 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 6.2238 + <path 6.2239 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 6.2240 + d="m 666.85635,354.02605 c -65.78483,0 -65.78483,0 -65.78483,0" 6.2241 + id="path3411" 6.2242 + inkscape:connector-curvature="0" /> 6.2243 + <path 6.2244 + sodipodi:nodetypes="cc" 6.2245 + inkscape:connector-curvature="0" 6.2246 + id="path3413" 6.2247 + d="m 668.02904,108.63925 c 0,13.68455 0,13.68455 0,13.68455" 6.2248 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 6.2249 + <path 6.2250 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 6.2251 + d="m 602.02904,353.22687 c 0,5.5885 0,5.5885 0,5.5885" 6.2252 + id="path3415" 6.2253 + inkscape:connector-curvature="0" 6.2254 + sodipodi:nodetypes="cc" /> 6.2255 + <path 6.2256 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 6.2257 + d="m 668.02904,340.63925 c 0,13.68455 0,13.68455 0,13.68455" 6.2258 + id="path3417" 6.2259 + inkscape:connector-curvature="0" 6.2260 + sodipodi:nodetypes="cc" /> 6.2261 + <text 6.2262 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 6.2263 + xml:space="preserve" 6.2264 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.2265 + x="395.64081" 6.2266 + y="556.71735" 6.2267 + id="text3419" 6.2268 + sodipodi:linespacing="100%"><tspan 6.2269 + style="font-size:8px;text-align:center;text-anchor:middle" 6.2270 + sodipodi:role="line" 6.2271 + x="395.64081" 6.2272 + y="556.71735" 6.2273 + id="tspan3421">suspend</tspan><tspan 6.2274 + id="tspan3423" 6.2275 + style="font-size:8px;text-align:center;text-anchor:middle" 6.2276 + sodipodi:role="line" 6.2277 + x="395.64081" 6.2278 + y="564.71735">and switch</tspan><tspan 6.2279 + id="tspan3425" 6.2280 + style="font-size:8px;text-align:center;text-anchor:middle" 6.2281 + sodipodi:role="line" 6.2282 + x="395.64081" 6.2283 + y="572.71735">to runtime</tspan></text> 6.2284 + <path 6.2285 + inkscape:connector-curvature="0" 6.2286 + id="path3427" 6.2287 + d="m 271.03421,342.02605 c 193.92439,0 193.92439,0 193.92439,0" 6.2288 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 6.2289 + <text 6.2290 + sodipodi:linespacing="100%" 6.2291 + id="text3429" 6.2292 + y="703.28741" 6.2293 + x="253.74896" 6.2294 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.2295 + xml:space="preserve" 6.2296 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 6.2297 + y="703.28741" 6.2298 + x="253.74896" 6.2299 + sodipodi:role="line" 6.2300 + style="font-size:8px;text-align:center;text-anchor:middle" 6.2301 + id="tspan3431">return</tspan><tspan 6.2302 + id="tspan3433" 6.2303 + y="711.28741" 6.2304 + x="253.74896" 6.2305 + sodipodi:role="line" 6.2306 + style="font-size:8px;text-align:center;text-anchor:middle">from</tspan><tspan 6.2307 + id="tspan3435" 6.2308 + y="719.28741" 6.2309 + x="253.74896" 6.2310 + sodipodi:role="line" 6.2311 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan></text> 6.2312 + <text 6.2313 + xml:space="preserve" 6.2314 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.2315 + x="601.38037" 6.2316 + y="83.424683" 6.2317 + id="text3437" 6.2318 + sodipodi:linespacing="100%"><tspan 6.2319 + id="tspan3441" 6.2320 + style="text-align:center;text-anchor:middle;fill:#000080" 6.2321 + sodipodi:role="line" 6.2322 + x="601.38037" 6.2323 + y="83.424683">PR__start()</tspan></text> 6.2324 + <text 6.2325 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 6.2326 + xml:space="preserve" 6.2327 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.2328 + x="553.98218" 6.2329 + y="94.71698" 6.2330 + id="text3443" 6.2331 + sodipodi:linespacing="100%"><tspan 6.2332 + style="font-size:8px;text-align:center;text-anchor:middle" 6.2333 + sodipodi:role="line" 6.2334 + x="553.98218" 6.2335 + y="94.71698" 6.2336 + id="tspan3445">normal call</tspan></text> 6.2337 + <path 6.2338 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 6.2339 + d="m 668.02904,389.28283 c 0,13.68455 0,13.68455 0,13.68455" 6.2340 + id="path3447" 6.2341 + inkscape:connector-curvature="0" 6.2342 + sodipodi:nodetypes="cc" /> 6.2343 + <text 6.2344 + sodipodi:linespacing="100%" 6.2345 + id="text3449" 6.2346 + y="757.8457" 6.2347 + x="203.71536" 6.2348 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.2349 + xml:space="preserve" 6.2350 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 6.2351 + id="tspan3451" 6.2352 + y="757.8457" 6.2353 + x="203.71536" 6.2354 + sodipodi:role="line" 6.2355 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan><tspan 6.2356 + y="765.8457" 6.2357 + x="203.71536" 6.2358 + sodipodi:role="line" 6.2359 + style="font-size:8px;text-align:center;text-anchor:middle" 6.2360 + id="tspan3453">and switch</tspan><tspan 6.2361 + y="773.8457" 6.2362 + x="203.71536" 6.2363 + sodipodi:role="line" 6.2364 + style="font-size:8px;text-align:center;text-anchor:middle" 6.2365 + id="tspan3455">to runtime</tspan></text> 6.2366 + <text 6.2367 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 6.2368 + xml:space="preserve" 6.2369 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.2370 + x="555.27264" 6.2371 + y="388.71307" 6.2372 + id="text3457" 6.2373 + sodipodi:linespacing="100%"><tspan 6.2374 + style="font-size:8px;text-align:center;text-anchor:middle" 6.2375 + sodipodi:role="line" 6.2376 + x="555.27264" 6.2377 + y="388.71307" 6.2378 + id="tspan3459">normal call</tspan></text> 6.2379 + <g 6.2380 + id="g3461" 6.2381 + transform="matrix(1,0,0,0.71130685,-16,-77.47087)"> 6.2382 + <rect 6.2383 + style="fill:none;stroke:#000000;stroke-width:1.28076112;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 6.2384 + id="rect3463" 6.2385 + width="65.276405" 6.2386 + height="52.250008" 6.2387 + x="310.40247" 6.2388 + y="313.58255" /> 6.2389 + </g> 6.2390 + <path 6.2391 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 6.2392 + d="m 514.02904,358.31987 c 0,26.21842 0,26.21842 0,26.21842" 6.2393 + id="path3465" 6.2394 + inkscape:connector-curvature="0" 6.2395 + sodipodi:nodetypes="cc" /> 6.2396 + <path 6.2397 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:none" 6.2398 + d="m 476.02904,84.79398 c 0,35.61575 0,35.61575 0,35.61575" 6.2399 + id="path3467" 6.2400 + inkscape:connector-curvature="0" 6.2401 + sodipodi:nodetypes="cc" /> 6.2402 + <path 6.2403 + inkscape:connector-curvature="0" 6.2404 + id="path3469" 6.2405 + d="m 468.24715,120.02605 c 13.34137,0 13.34137,0 13.34137,0" 6.2406 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 6.2407 + <path 6.2408 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 6.2409 + d="m 481.57781,342.02605 c -13.14022,0 -13.14022,0 -13.14022,0" 6.2410 + id="path3471" 6.2411 + inkscape:connector-curvature="0" /> 6.2412 + <path 6.2413 + sodipodi:nodetypes="cc" 6.2414 + inkscape:connector-curvature="0" 6.2415 + id="path3473" 6.2416 + d="m 476.02904,342.3113 c 0,57.40944 0,57.40944 0,57.40944" 6.2417 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" /> 6.2418 + <path 6.2419 + inkscape:connector-curvature="0" 6.2420 + id="path3475" 6.2421 + d="m 481.57781,401.27417 c -13.14022,0 -13.14022,0 -13.14022,0" 6.2422 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 6.2423 + <text 6.2424 + sodipodi:linespacing="100%" 6.2425 + id="text3477" 6.2426 + y="-463.80295" 6.2427 + x="315.95734" 6.2428 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.2429 + xml:space="preserve" 6.2430 + transform="matrix(-0.01875541,0.9998241,-0.9998241,-0.01875541,0,0)"><tspan 6.2431 + id="tspan3479" 6.2432 + y="-463.80295" 6.2433 + x="315.95734" 6.2434 + sodipodi:role="line" 6.2435 + style="text-align:center;text-anchor:middle;fill:#008000">Timeline of SeedVP</tspan></text> 6.2436 + <text 6.2437 + sodipodi:linespacing="100%" 6.2438 + id="text3481" 6.2439 + y="119.02372" 6.2440 + x="484.08911" 6.2441 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.2442 + xml:space="preserve" 6.2443 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 6.2444 + id="tspan3483" 6.2445 + y="119.02372" 6.2446 + x="484.08911" 6.2447 + sodipodi:role="line" 6.2448 + style="font-size:8px;text-align:start;text-anchor:start">suspend</tspan></text> 6.2449 + <text 6.2450 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 6.2451 + xml:space="preserve" 6.2452 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.2453 + x="485.07266" 6.2454 + y="343.02161" 6.2455 + id="text3485" 6.2456 + sodipodi:linespacing="100%"><tspan 6.2457 + style="font-size:8px;text-align:start;text-anchor:start" 6.2458 + sodipodi:role="line" 6.2459 + x="485.07266" 6.2460 + y="343.02161" 6.2461 + id="tspan3487">resume</tspan></text> 6.2462 + <text 6.2463 + sodipodi:linespacing="100%" 6.2464 + id="text3489" 6.2465 + y="400.22711" 6.2466 + x="485.32407" 6.2467 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.2468 + xml:space="preserve" 6.2469 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 6.2470 + id="tspan3491" 6.2471 + y="400.22711" 6.2472 + x="485.32407" 6.2473 + sodipodi:role="line" 6.2474 + style="font-size:8px;text-align:start;text-anchor:start">end</tspan></text> 6.2475 + <text 6.2476 + sodipodi:linespacing="100%" 6.2477 + id="text3493" 6.2478 + y="285.42468" 6.2479 + x="65.380371" 6.2480 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.2481 + xml:space="preserve"><tspan 6.2482 + y="285.42468" 6.2483 + x="65.380371" 6.2484 + sodipodi:role="line" 6.2485 + style="text-align:center;text-anchor:middle;fill:#000080" 6.2486 + id="tspan3495">PR primitive Fn</tspan><tspan 6.2487 + id="tspan3497" 6.2488 + y="295.42468" 6.2489 + x="65.380371" 6.2490 + sodipodi:role="line" 6.2491 + style="text-align:center;text-anchor:middle;fill:#000080">to create VP</tspan></text> 6.2492 + <text 6.2493 + sodipodi:linespacing="100%" 6.2494 + id="text3499" 6.2495 + y="241.42468" 6.2496 + x="202.41257" 6.2497 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.2498 + xml:space="preserve"><tspan 6.2499 + id="tspan3501" 6.2500 + y="241.42468" 6.2501 + x="202.41257" 6.2502 + sodipodi:role="line" 6.2503 + style="text-align:center;text-anchor:middle;fill:#000080">Master Fn</tspan></text> 6.2504 + <path 6.2505 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 6.2506 + d="m 205.27805,280.31985 c 0,7.35629 0,7.35629 0,7.35629" 6.2507 + id="path3503" 6.2508 + inkscape:connector-curvature="0" 6.2509 + sodipodi:nodetypes="cc" /> 6.2510 + <path 6.2511 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 6.2512 + d="m 205.05995,286.02605 c -67.19099,0 -67.19099,0 -67.19099,0" 6.2513 + id="path3505" 6.2514 + inkscape:connector-curvature="0" /> 6.2515 + <path 6.2516 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 6.2517 + d="m 137.27805,285.85824 c 0,11.43122 0,11.43122 0,11.43122" 6.2518 + id="path3507" 6.2519 + inkscape:connector-curvature="0" 6.2520 + sodipodi:nodetypes="cc" /> 6.2521 + <path 6.2522 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 6.2523 + d="m 137.57123,298.02605 c -69.22157,0 -69.22157,0 -69.22157,0" 6.2524 + id="path3509" 6.2525 + inkscape:connector-curvature="0" /> 6.2526 + <path 6.2527 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 6.2528 + d="m 205.27805,336.63925 c 0,4.54718 0,4.54718 0,4.54718" 6.2529 + id="path3511" 6.2530 + inkscape:connector-curvature="0" 6.2531 + sodipodi:nodetypes="cc" /> 6.2532 + <text 6.2533 + sodipodi:linespacing="100%" 6.2534 + id="text3513" 6.2535 + y="393.92554" 6.2536 + x="-91.691048" 6.2537 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.2538 + xml:space="preserve" 6.2539 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 6.2540 + id="tspan3515" 6.2541 + y="393.92554" 6.2542 + x="-91.691048" 6.2543 + sodipodi:role="line" 6.2544 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan><tspan 6.2545 + y="401.92554" 6.2546 + x="-91.691048" 6.2547 + sodipodi:role="line" 6.2548 + style="font-size:8px;text-align:center;text-anchor:middle" 6.2549 + id="tspan3517">and switch</tspan><tspan 6.2550 + y="409.92554" 6.2551 + x="-91.691048" 6.2552 + sodipodi:role="line" 6.2553 + style="font-size:8px;text-align:center;text-anchor:middle" 6.2554 + id="tspan3519">to app VP</tspan></text> 6.2555 + <path 6.2556 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 6.2557 + d="m 205.27805,280.31985 c 0,7.35629 0,7.35629 0,7.35629" 6.2558 + id="path3521" 6.2559 + inkscape:connector-curvature="0" 6.2560 + sodipodi:nodetypes="cc" /> 6.2561 + <path 6.2562 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 6.2563 + d="m 205.27805,280.31985 c 0,7.35629 0,7.35629 0,7.35629" 6.2564 + id="path3523" 6.2565 + inkscape:connector-curvature="0" 6.2566 + sodipodi:nodetypes="cc" /> 6.2567 + <path 6.2568 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 6.2569 + d="m 468.24715,85.42364 c 13.34137,0 13.34137,0 13.34137,0" 6.2570 + id="path3525" 6.2571 + inkscape:connector-curvature="0" /> 6.2572 + <text 6.2573 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 6.2574 + xml:space="preserve" 6.2575 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.2576 + x="483.94849" 6.2577 + y="87.025322" 6.2578 + id="text3527" 6.2579 + sodipodi:linespacing="100%"><tspan 6.2580 + style="font-size:8px;text-align:start;text-anchor:start" 6.2581 + sodipodi:role="line" 6.2582 + x="483.94849" 6.2583 + y="87.025322" 6.2584 + id="tspan3529">start</tspan></text> 6.2585 + <path 6.2586 + sodipodi:nodetypes="cc" 6.2587 + inkscape:connector-curvature="0" 6.2588 + id="path3531" 6.2589 + d="m 266.02904,279.4311 c 0,61.88904 0,61.88904 0,61.88904" 6.2590 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:none" /> 6.2591 + <path 6.2592 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 6.2593 + d="m 258.24715,280.02605 c 13.34137,0 13.34137,0 13.34137,0" 6.2594 + id="path3533" 6.2595 + inkscape:connector-curvature="0" /> 6.2596 + <path 6.2597 + inkscape:connector-curvature="0" 6.2598 + id="path3535" 6.2599 + d="m 271.57781,342.02605 c -13.14022,0 -13.14022,0 -13.14022,0" 6.2600 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 6.2601 + <text 6.2602 + transform="matrix(0.00239328,0.99999714,-0.99999714,0.00239328,0,0)" 6.2603 + xml:space="preserve" 6.2604 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.2605 + x="325.34094" 6.2606 + y="-277.03549" 6.2607 + id="text3537" 6.2608 + sodipodi:linespacing="100%"><tspan 6.2609 + id="tspan3539" 6.2610 + style="text-align:center;text-anchor:middle;fill:#000080" 6.2611 + sodipodi:role="line" 6.2612 + x="325.34094" 6.2613 + y="-277.03549">Timeline of Master on core 1</tspan></text> 6.2614 + <text 6.2615 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 6.2616 + xml:space="preserve" 6.2617 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.2618 + x="260.76508" 6.2619 + y="342.12805" 6.2620 + id="text3541" 6.2621 + sodipodi:linespacing="100%"><tspan 6.2622 + style="font-size:8px;text-align:end;text-anchor:end" 6.2623 + sodipodi:role="line" 6.2624 + x="260.76508" 6.2625 + y="342.12805" 6.2626 + id="tspan3543">suspend</tspan></text> 6.2627 + <text 6.2628 + sodipodi:linespacing="100%" 6.2629 + id="text3545" 6.2630 + y="282.12848" 6.2631 + x="258.04468" 6.2632 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.2633 + xml:space="preserve" 6.2634 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 6.2635 + id="tspan3547" 6.2636 + y="282.12848" 6.2637 + x="258.04468" 6.2638 + sodipodi:role="line" 6.2639 + style="font-size:8px;text-align:end;text-anchor:end">resume</tspan></text> 6.2640 + <path 6.2641 + inkscape:connector-curvature="0" 6.2642 + id="path3549" 6.2643 + d="m 258.24715,245.42364 c 13.34137,0 13.34137,0 13.34137,0" 6.2644 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 6.2645 + <text 6.2646 + sodipodi:linespacing="100%" 6.2647 + id="text3551" 6.2648 + y="248.09499" 6.2649 + x="257.10217" 6.2650 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.2651 + xml:space="preserve" 6.2652 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 6.2653 + id="tspan3553" 6.2654 + y="248.09499" 6.2655 + x="257.10217" 6.2656 + sodipodi:role="line" 6.2657 + style="font-size:8px;text-align:end;text-anchor:end">start</tspan></text> 6.2658 + <path 6.2659 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" 6.2660 + d="m 266.02904,399.43112 c 0,10.33165 0,10.33165 0,10.33165" 6.2661 + id="path3555" 6.2662 + inkscape:connector-curvature="0" 6.2663 + sodipodi:nodetypes="cc" /> 6.2664 + <path 6.2665 + inkscape:connector-curvature="0" 6.2666 + id="path3557" 6.2667 + d="m 258.24715,400.02605 c 13.34137,0 13.34137,0 13.34137,0" 6.2668 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 6.2669 + <text 6.2670 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)" 6.2671 + xml:space="preserve" 6.2672 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.2673 + x="637.95691" 6.2674 + y="386.97339" 6.2675 + id="text3559" 6.2676 + sodipodi:linespacing="100%"><tspan 6.2677 + style="font-size:8px;text-align:center;text-anchor:middle" 6.2678 + sodipodi:role="line" 6.2679 + x="637.95691" 6.2680 + y="386.97339" 6.2681 + id="tspan3561">Call to dyn lib</tspan></text> 6.2682 + <text 6.2683 + sodipodi:linespacing="100%" 6.2684 + id="text3563" 6.2685 + y="303.68701" 6.2686 + x="110.50755" 6.2687 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.2688 + xml:space="preserve" 6.2689 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)"><tspan 6.2690 + id="tspan3565" 6.2691 + y="303.68701" 6.2692 + x="110.50755" 6.2693 + sodipodi:role="line" 6.2694 + style="font-size:8px;text-align:center;text-anchor:middle">call to dyn lib</tspan></text> 6.2695 + <path 6.2696 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" 6.2697 + d="m 701.67453,342.02605 c -669.895225,0 -669.895225,0 -669.895225,0" 6.2698 + id="path3567" 6.2699 + inkscape:connector-curvature="0" /> 6.2700 + <path 6.2701 + inkscape:connector-curvature="0" 6.2702 + id="path3569" 6.2703 + d="m 701.67453,279.52981 c -669.895225,0 -669.895225,0 -669.895225,0" 6.2704 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" /> 6.2705 + <path 6.2706 + sodipodi:nodetypes="cc" 6.2707 + inkscape:connector-curvature="0" 6.2708 + id="path3571" 6.2709 + d="m 205.27805,243.45805 c 0,3.23577 0,3.23577 0,3.23577" 6.2710 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000002, 3.00000002;stroke-dashoffset:0" /> 6.2711 + <text 6.2712 + sodipodi:linespacing="100%" 6.2713 + id="text3573" 6.2714 + y="335.62958" 6.2715 + x="-39.767914" 6.2716 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.2717 + xml:space="preserve" 6.2718 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 6.2719 + y="335.62958" 6.2720 + x="-39.767914" 6.2721 + sodipodi:role="line" 6.2722 + style="font-size:8px;text-align:center;text-anchor:middle" 6.2723 + id="tspan3575">return from</tspan><tspan 6.2724 + id="tspan3577" 6.2725 + y="343.62958" 6.2726 + x="-39.767914" 6.2727 + sodipodi:role="line" 6.2728 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan></text> 6.2729 + <path 6.2730 + inkscape:connector-curvature="0" 6.2731 + id="path3579" 6.2732 + d="m 701.67453,400.02605 c -669.895225,0 -669.895225,0 -669.895225,0" 6.2733 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" /> 6.2734 + <text 6.2735 + sodipodi:linespacing="100%" 6.2736 + id="text3581" 6.2737 + y="377.42468" 6.2738 + x="667.38037" 6.2739 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.2740 + xml:space="preserve"><tspan 6.2741 + id="tspan3583" 6.2742 + y="377.42468" 6.2743 + x="667.38037" 6.2744 + sodipodi:role="line" 6.2745 + style="text-align:center;text-anchor:middle;fill:#000080">PR primitive Fn</tspan><tspan 6.2746 + y="387.42468" 6.2747 + x="667.38037" 6.2748 + sodipodi:role="line" 6.2749 + style="text-align:center;text-anchor:middle;fill:#000080" 6.2750 + id="tspan3585">to send request</tspan></text> 6.2751 + <text 6.2752 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 6.2753 + xml:space="preserve" 6.2754 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.2755 + x="258.57156" 6.2756 + y="402.12799" 6.2757 + id="text3587" 6.2758 + sodipodi:linespacing="100%"><tspan 6.2759 + style="font-size:8px;text-align:end;text-anchor:end" 6.2760 + sodipodi:role="line" 6.2761 + x="258.57156" 6.2762 + y="402.12799" 6.2763 + id="tspan3589">resume</tspan></text> 6.2764 + <path 6.2765 + inkscape:connector-curvature="0" 6.2766 + id="path3591" 6.2767 + d="m 205.05995,286.02605 c -67.19099,0 -67.19099,0 -67.19099,0" 6.2768 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 6.2769 + <path 6.2770 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 6.2771 + d="m 137.04459,336.02605 c 67.19099,0 67.19099,0 67.19099,0" 6.2772 + id="path3593" 6.2773 + inkscape:connector-curvature="0" /> 6.2774 + <path 6.2775 + inkscape:connector-curvature="0" 6.2776 + id="path3595" 6.2777 + d="m 67.525286,310.02605 c 69.221574,0 69.221574,0 69.221574,0" 6.2778 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 6.2779 + <path 6.2780 + sodipodi:nodetypes="cc" 6.2781 + inkscape:connector-curvature="0" 6.2782 + id="path3597" 6.2783 + d="m 67.27805,297.85824 c 0,13.94668 0,13.94668 0,13.94668" 6.2784 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 6.2785 + <path 6.2786 + inkscape:connector-curvature="0" 6.2787 + id="path3599" 6.2788 + d="m 137.04459,312.02605 c 67.19099,0 67.19099,0 67.19099,0" 6.2789 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 6.2790 + <path 6.2791 + sodipodi:nodetypes="cc" 6.2792 + inkscape:connector-curvature="0" 6.2793 + id="path3601" 6.2794 + d="m 205.27805,312.63926 c 0,11.23237 0,11.23237 0,11.23237" 6.2795 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 6.2796 + <path 6.2797 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 6.2798 + d="m 205.05995,324.02605 c -67.19099,0 -67.19099,0 -67.19099,0" 6.2799 + id="path3603" 6.2800 + inkscape:connector-curvature="0" /> 6.2801 + <text 6.2802 + sodipodi:linespacing="100%" 6.2803 + id="text3605" 6.2804 + y="326.42468" 6.2805 + x="186.89299" 6.2806 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.2807 + xml:space="preserve" 6.2808 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)"><tspan 6.2809 + id="tspan3607" 6.2810 + y="326.42468" 6.2811 + x="186.89299" 6.2812 + sodipodi:role="line" 6.2813 + style="font-size:7px;text-align:center;text-anchor:middle">call via Ptr to Dyn Lib Fn</tspan></text> 6.2814 + <path 6.2815 + sodipodi:nodetypes="cc" 6.2816 + inkscape:connector-curvature="0" 6.2817 + id="path3609" 6.2818 + d="m 137.27805,323.85824 c 0,11.43122 0,11.43122 0,11.43122" 6.2819 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 6.2820 + <text 6.2821 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)" 6.2822 + xml:space="preserve" 6.2823 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.2824 + x="186.26445" 6.2825 + y="288.42987" 6.2826 + id="text3611" 6.2827 + sodipodi:linespacing="100%"><tspan 6.2828 + style="font-size:7px;text-align:center;text-anchor:middle" 6.2829 + sodipodi:role="line" 6.2830 + x="186.26445" 6.2831 + y="288.42987" 6.2832 + id="tspan3613">call via Ptr to Dyn Lib Fn</tspan></text> 6.2833 + <path 6.2834 + style="fill:none;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 6.2835 + d="m 465.78297,400.02605 c -193.92439,0 -193.92439,0 -193.92439,0" 6.2836 + id="path3615" 6.2837 + inkscape:connector-curvature="0" /> 6.2838 + <path 6.2839 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 6.2840 + d="m 466.19516,280.02605 c -193.92439,0 -193.92439,0 -193.92439,0" 6.2841 + id="path3617" 6.2842 + inkscape:connector-curvature="0" /> 6.2843 + <text 6.2844 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 6.2845 + xml:space="preserve" 6.2846 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.2847 + x="35.877613" 6.2848 + y="497.93744" 6.2849 + id="text3619" 6.2850 + sodipodi:linespacing="100%"><tspan 6.2851 + id="tspan3621" 6.2852 + style="font-size:18px;text-align:center;text-anchor:middle" 6.2853 + sodipodi:role="line" 6.2854 + x="35.877613" 6.2855 + y="497.93744">core 1</tspan></text> 6.2856 + <path 6.2857 + sodipodi:nodetypes="cc" 6.2858 + inkscape:connector-curvature="0" 6.2859 + id="path3623" 6.2860 + d="m 205.27805,400.31985 c 0,7.35629 0,7.35629 0,7.35629" 6.2861 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 6.2862 + <path 6.2863 + sodipodi:nodetypes="cc" 6.2864 + inkscape:connector-curvature="0" 6.2865 + id="path3625" 6.2866 + d="m 205.27805,400.31985 c 0,7.35629 0,7.35629 0,7.35629" 6.2867 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 6.2868 + <path 6.2869 + sodipodi:nodetypes="cc" 6.2870 + inkscape:connector-curvature="0" 6.2871 + id="path3627" 6.2872 + d="m 205.27805,400.31985 c 0,7.35629 0,7.35629 0,7.35629" 6.2873 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 6.2874 + <text 6.2875 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 6.2876 + xml:space="preserve" 6.2877 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.2878 + x="-123.23382" 6.2879 + y="421.84821" 6.2880 + id="text3629" 6.2881 + sodipodi:linespacing="100%"><tspan 6.2882 + id="tspan3631" 6.2883 + style="font-size:8px;text-align:center;text-anchor:middle" 6.2884 + sodipodi:role="line" 6.2885 + x="-123.23382" 6.2886 + y="421.84821">return from</tspan><tspan 6.2887 + style="font-size:8px;text-align:center;text-anchor:middle" 6.2888 + sodipodi:role="line" 6.2889 + x="-123.23382" 6.2890 + y="429.84821" 6.2891 + id="tspan3633">suspend</tspan></text> 6.2892 + <path 6.2893 + inkscape:connector-curvature="0" 6.2894 + id="path3635" 6.2895 + d="m 271.03421,246.02605 c 193.92439,0 193.92439,0 193.92439,0" 6.2896 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 6.2897 + <text 6.2898 + sodipodi:linespacing="100%" 6.2899 + id="text4289" 6.2900 + y="155.76575" 6.2901 + x="426.92542" 6.2902 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 6.2903 + xml:space="preserve"><tspan 6.2904 + y="155.76575" 6.2905 + x="426.92542" 6.2906 + id="tspan4291" 6.2907 + sodipodi:role="line" 6.2908 + style="text-align:center;text-anchor:middle">PR OS thread</tspan><tspan 6.2909 + y="164.20053" 6.2910 + x="426.92542" 6.2911 + sodipodi:role="line" 6.2912 + style="font-size:8px;text-align:center;text-anchor:middle" 6.2913 + id="tspan4295">(core 2)</tspan></text> 6.2914 + <g 6.2915 + transform="matrix(1,0,0,0.71130685,84,-77.47087)" 6.2916 + id="g4297"> 6.2917 + <rect 6.2918 + y="313.58255" 6.2919 + x="310.40247" 6.2920 + height="52.250008" 6.2921 + width="65.276405" 6.2922 + id="rect4299" 6.2923 + style="fill:none;stroke:#000000;stroke-width:1.28076112;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 6.2924 + </g> 6.2925 + </g> 6.2926 +</svg>
7.1 Binary file 0__Papers/PRT/PRT__formal_def/figures/PR__timeline_dual.pdf has changed
8.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 8.2 +++ b/0__Papers/PRT/PRT__formal_def/figures/PR__timeline_dual.svg Sat Aug 03 19:24:22 2013 -0700 8.3 @@ -0,0 +1,446 @@ 8.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 8.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 8.6 + 8.7 +<svg 8.8 + xmlns:dc="http://purl.org/dc/elements/1.1/" 8.9 + xmlns:cc="http://creativecommons.org/ns#" 8.10 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 8.11 + xmlns:svg="http://www.w3.org/2000/svg" 8.12 + xmlns="http://www.w3.org/2000/svg" 8.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 8.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 8.15 + width="744.09448819" 8.16 + height="1052.3622047" 8.17 + id="svg2" 8.18 + sodipodi:version="0.32" 8.19 + inkscape:version="0.48.2 r9819" 8.20 + sodipodi:docname="PR__timeline_dual.svg" 8.21 + inkscape:output_extension="org.inkscape.output.svg.inkscape" 8.22 + version="1.1"> 8.23 + <defs 8.24 + id="defs4"> 8.25 + <marker 8.26 + inkscape:stockid="Arrow2Mend" 8.27 + orient="auto" 8.28 + refY="0.0" 8.29 + refX="0.0" 8.30 + id="Arrow2Mend" 8.31 + style="overflow:visible;"> 8.32 + <path 8.33 + id="path4008" 8.34 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 8.35 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 8.36 + transform="scale(0.6) rotate(180) translate(0,0)" /> 8.37 + </marker> 8.38 + <inkscape:perspective 8.39 + sodipodi:type="inkscape:persp3d" 8.40 + inkscape:vp_x="0 : 526.18109 : 1" 8.41 + inkscape:vp_y="0 : 1000 : 0" 8.42 + inkscape:vp_z="744.09448 : 526.18109 : 1" 8.43 + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" 8.44 + id="perspective10" /> 8.45 + <inkscape:perspective 8.46 + id="perspective11923" 8.47 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 8.48 + inkscape:vp_z="1 : 0.5 : 1" 8.49 + inkscape:vp_y="0 : 1000 : 0" 8.50 + inkscape:vp_x="0 : 0.5 : 1" 8.51 + sodipodi:type="inkscape:persp3d" /> 8.52 + </defs> 8.53 + <sodipodi:namedview 8.54 + id="base" 8.55 + pagecolor="#ffffff" 8.56 + bordercolor="#666666" 8.57 + borderopacity="1.0" 8.58 + gridtolerance="10000" 8.59 + guidetolerance="10" 8.60 + objecttolerance="10" 8.61 + inkscape:pageopacity="0.0" 8.62 + inkscape:pageshadow="2" 8.63 + inkscape:zoom="1.3364318" 8.64 + inkscape:cx="331.64634" 8.65 + inkscape:cy="648.10677" 8.66 + inkscape:document-units="px" 8.67 + inkscape:current-layer="layer1" 8.68 + showgrid="false" 8.69 + inkscape:window-width="1317" 8.70 + inkscape:window-height="878" 8.71 + inkscape:window-x="7" 8.72 + inkscape:window-y="1" 8.73 + inkscape:window-maximized="0" /> 8.74 + <metadata 8.75 + id="metadata7"> 8.76 + <rdf:RDF> 8.77 + <cc:Work 8.78 + rdf:about=""> 8.79 + <dc:format>image/svg+xml</dc:format> 8.80 + <dc:type 8.81 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 8.82 + <dc:title /> 8.83 + </cc:Work> 8.84 + </rdf:RDF> 8.85 + </metadata> 8.86 + <g 8.87 + inkscape:label="Layer 1" 8.88 + inkscape:groupmode="layer" 8.89 + id="layer1"> 8.90 + <path 8.91 + id="path7353" 8.92 + d="m 196.98465,281.37498 c 69.82336,0 69.82336,0 69.82336,0" 8.93 + style="fill:#800000;stroke:#800000;stroke-width:1.80000007;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 8.94 + inkscape:connector-curvature="0" /> 8.95 + <g 8.96 + transform="translate(-32,-120)" 8.97 + id="g7355" 8.98 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none"> 8.99 + <path 8.100 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" 8.101 + d="m 298.82881,392.82004 c 0,19.38279 0,19.38279 0,19.38279" 8.102 + id="path7357" 8.103 + inkscape:connector-curvature="0" /> 8.104 + <text 8.105 + sodipodi:linespacing="100%" 8.106 + id="text7359" 8.107 + y="376.52615" 8.108 + x="298.7023" 8.109 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 8.110 + xml:space="preserve"><tspan 8.111 + y="376.52615" 8.112 + x="298.7023" 8.113 + id="tspan7361" 8.114 + sodipodi:role="line" 8.115 + style="font-size:10px;text-align:center;text-anchor:middle">Suspend</tspan><tspan 8.116 + y="385.74353" 8.117 + x="298.7023" 8.118 + sodipodi:role="line" 8.119 + id="tspan7363" 8.120 + style="font-size:9px;text-align:center;text-anchor:middle">(Point 2.S)</tspan></text> 8.121 + </g> 8.122 + <g 8.123 + transform="translate(-60,-120)" 8.124 + id="g7365" 8.125 + style="stroke-width:1.8;stroke-miterlimit:4;stroke-dasharray:none"> 8.126 + <path 8.127 + style="fill:none;stroke:#000000;stroke-width:1.8;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" 8.128 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 8.129 + id="path7367" 8.130 + inkscape:connector-curvature="0" /> 8.131 + <text 8.132 + sodipodi:linespacing="100%" 8.133 + id="text7369" 8.134 + y="376.52615" 8.135 + x="378.7023" 8.136 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 8.137 + xml:space="preserve"><tspan 8.138 + y="376.52615" 8.139 + x="380.20621" 8.140 + id="tspan7371" 8.141 + sodipodi:role="line" 8.142 + style="font-size:9px;text-align:center;text-anchor:middle"><tspan 8.143 + style="font-size:10px" 8.144 + id="tspan8087">Resume </tspan></tspan><tspan 8.145 + y="385.74353" 8.146 + x="378.7023" 8.147 + sodipodi:role="line" 8.148 + id="tspan7373" 8.149 + style="font-size:9px;text-align:center;text-anchor:middle">(Point 2.R)</tspan></text> 8.150 + </g> 8.151 + <text 8.152 + sodipodi:linespacing="100%" 8.153 + id="text7375" 8.154 + y="285.27441" 8.155 + x="352.7023" 8.156 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 8.157 + xml:space="preserve"><tspan 8.158 + y="285.27441" 8.159 + x="352.7023" 8.160 + sodipodi:role="line" 8.161 + id="tspan7379">Timeline B</tspan></text> 8.162 + <path 8.163 + inkscape:connector-curvature="0" 8.164 + style="fill:none;stroke:#800000;stroke-width:1.80000000000000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none" 8.165 + d="m 320.08408,281.37498 c 27.45405,0 27.45405,0 27.45405,0" 8.166 + id="path7387" /> 8.167 + <path 8.168 + id="path8089" 8.169 + d="m 195.41471,317.37498 c 151.68424,0 151.68424,0 151.68424,0" 8.170 + style="fill:#000000;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 8.171 + inkscape:connector-curvature="0" /> 8.172 + <text 8.173 + xml:space="preserve" 8.174 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 8.175 + x="352.7023" 8.176 + y="320.02267" 8.177 + id="text8091" 8.178 + sodipodi:linespacing="100%"><tspan 8.179 + id="tspan8093" 8.180 + sodipodi:role="line" 8.181 + x="352.7023" 8.182 + y="320.02267">Physical time</tspan></text> 8.183 + <path 8.184 + inkscape:connector-curvature="0" 8.185 + style="fill:none;stroke:#422fac;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 8.186 + d="m 195.92204,221.37498 c 33.06652,0 33.06652,0 33.06652,0" 8.187 + id="path8095" /> 8.188 + <g 8.189 + id="g8097" 8.190 + transform="translate(-70,-180)" 8.191 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none"> 8.192 + <path 8.193 + inkscape:connector-curvature="0" 8.194 + id="path8099" 8.195 + d="m 298.82881,392.82004 c 0,19.38279 0,19.38279 0,19.38279" 8.196 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> 8.197 + <text 8.198 + xml:space="preserve" 8.199 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 8.200 + x="298.7023" 8.201 + y="376.52615" 8.202 + id="text8101" 8.203 + sodipodi:linespacing="100%"><tspan 8.204 + style="font-size:10px;text-align:center;text-anchor:middle" 8.205 + sodipodi:role="line" 8.206 + id="tspan8103" 8.207 + x="298.7023" 8.208 + y="376.52615">Suspend</tspan><tspan 8.209 + style="font-size:9px;text-align:center;text-anchor:middle" 8.210 + id="tspan8105" 8.211 + sodipodi:role="line" 8.212 + x="298.7023" 8.213 + y="385.74353">(Point 1.S)</tspan></text> 8.214 + </g> 8.215 + <g 8.216 + id="g8107" 8.217 + transform="translate(-60,-180)" 8.218 + style="stroke-width:1.8;stroke-miterlimit:4;stroke-dasharray:none"> 8.219 + <path 8.220 + inkscape:connector-curvature="0" 8.221 + id="path8109" 8.222 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 8.223 + style="fill:none;stroke:#000000;stroke-width:1.8;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" /> 8.224 + <text 8.225 + xml:space="preserve" 8.226 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 8.227 + x="378.7023" 8.228 + y="376.52615" 8.229 + id="text8111" 8.230 + sodipodi:linespacing="100%"><tspan 8.231 + style="font-size:9px;text-align:center;text-anchor:middle" 8.232 + sodipodi:role="line" 8.233 + id="tspan8113" 8.234 + x="380.20621" 8.235 + y="376.52615"><tspan 8.236 + id="tspan8115" 8.237 + style="font-size:10px">Resume </tspan></tspan><tspan 8.238 + style="font-size:9px;text-align:center;text-anchor:middle" 8.239 + id="tspan8117" 8.240 + sodipodi:role="line" 8.241 + x="378.7023" 8.242 + y="385.74353">(Point 1.R)</tspan></text> 8.243 + </g> 8.244 + <text 8.245 + xml:space="preserve" 8.246 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 8.247 + x="352.7023" 8.248 + y="225.27441" 8.249 + id="text8119" 8.250 + sodipodi:linespacing="100%"><tspan 8.251 + id="tspan8121" 8.252 + sodipodi:role="line" 8.253 + x="352.7023" 8.254 + y="225.27441">Timeline A</tspan></text> 8.255 + <path 8.256 + id="path8123" 8.257 + d="m 320.08408,221.37498 c 27.45405,0 27.45405,0 27.45405,0" 8.258 + style="fill:none;stroke:#422fac;stroke-width:1.8;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none" 8.259 + inkscape:connector-curvature="0" /> 8.260 + <path 8.261 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999998, 2.99999998;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 8.262 + d="m 292.57011,280.15667 c 1.60737,-35.06333 -0.1867,-13.69014 2.41106,-33.11537 1.74808,-13.07166 19.28851,-14.93437 19.28851,-14.93437" 8.263 + id="path8125" 8.264 + inkscape:connector-curvature="0" 8.265 + sodipodi:nodetypes="csc" /> 8.266 + <path 8.267 + sodipodi:nodetypes="csc" 8.268 + inkscape:connector-curvature="0" 8.269 + id="path5550" 8.270 + d="m 239.09804,401.95213 c 23.67157,4.34238 9.24233,-0.50438 22.35648,6.51358 8.8248,4.72253 10.08233,52.10878 10.08233,52.10878" 8.271 + style="fill:none;stroke:#000000;stroke-width:0.99999982;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000004, 3.00000004;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 8.272 + <path 8.273 + inkscape:connector-curvature="0" 8.274 + style="fill:#800000;stroke:#800000;stroke-width:1.80000007;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 8.275 + d="m 196.98465,461.37498 c 69.82336,0 69.82336,0 69.82336,0" 8.276 + id="path5552" /> 8.277 + <g 8.278 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 8.279 + id="g5554" 8.280 + transform="translate(-32,60)"> 8.281 + <path 8.282 + inkscape:connector-curvature="0" 8.283 + id="path5556" 8.284 + d="m 298.82881,392.82004 c 0,19.38279 0,19.38279 0,19.38279" 8.285 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> 8.286 + <text 8.287 + xml:space="preserve" 8.288 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 8.289 + x="298.7023" 8.290 + y="376.52615" 8.291 + id="text5558" 8.292 + sodipodi:linespacing="100%"><tspan 8.293 + style="font-size:10px;text-align:center;text-anchor:middle" 8.294 + sodipodi:role="line" 8.295 + id="tspan5560" 8.296 + x="298.7023" 8.297 + y="376.52615">Suspend</tspan><tspan 8.298 + style="font-size:9px;text-align:center;text-anchor:middle" 8.299 + id="tspan5562" 8.300 + sodipodi:role="line" 8.301 + x="298.7023" 8.302 + y="385.74353">(Point 2.S)</tspan></text> 8.303 + </g> 8.304 + <g 8.305 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 8.306 + id="g5564" 8.307 + transform="translate(-60,60)"> 8.308 + <path 8.309 + inkscape:connector-curvature="0" 8.310 + id="path5566" 8.311 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 8.312 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> 8.313 + <text 8.314 + xml:space="preserve" 8.315 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 8.316 + x="378.7023" 8.317 + y="376.52615" 8.318 + id="text5568" 8.319 + sodipodi:linespacing="100%"><tspan 8.320 + style="font-size:9px;text-align:center;text-anchor:middle" 8.321 + sodipodi:role="line" 8.322 + id="tspan5570" 8.323 + x="380.20621" 8.324 + y="376.52615"><tspan 8.325 + id="tspan5572" 8.326 + style="font-size:10px">Resume </tspan></tspan><tspan 8.327 + style="font-size:9px;text-align:center;text-anchor:middle" 8.328 + id="tspan5574" 8.329 + sodipodi:role="line" 8.330 + x="378.7023" 8.331 + y="385.74353">(Point 2.R)</tspan></text> 8.332 + </g> 8.333 + <text 8.334 + xml:space="preserve" 8.335 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 8.336 + x="352.7023" 8.337 + y="465.27441" 8.338 + id="text5576" 8.339 + sodipodi:linespacing="100%"><tspan 8.340 + id="tspan5578" 8.341 + sodipodi:role="line" 8.342 + x="352.7023" 8.343 + y="465.27441">Timeline B</tspan></text> 8.344 + <path 8.345 + id="path5580" 8.346 + d="m 320.08408,461.37498 c 27.45405,0 27.45405,0 27.45405,0" 8.347 + style="fill:none;stroke:#800000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 8.348 + inkscape:connector-curvature="0" /> 8.349 + <path 8.350 + inkscape:connector-curvature="0" 8.351 + style="fill:#000000;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 8.352 + d="m 195.41471,497.37498 c 151.68424,0 151.68424,0 151.68424,0" 8.353 + id="path5582" /> 8.354 + <text 8.355 + sodipodi:linespacing="100%" 8.356 + id="text5584" 8.357 + y="500.02267" 8.358 + x="352.7023" 8.359 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 8.360 + xml:space="preserve"><tspan 8.361 + y="500.02267" 8.362 + x="352.7023" 8.363 + sodipodi:role="line" 8.364 + id="tspan5586">Physical time</tspan></text> 8.365 + <path 8.366 + id="path5588" 8.367 + d="m 195.92204,401.37498 c 33.06652,0 33.06652,0 33.06652,0" 8.368 + style="fill:none;stroke:#422fac;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 8.369 + inkscape:connector-curvature="0" /> 8.370 + <g 8.371 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 8.372 + transform="translate(-70,0)" 8.373 + id="g5590"> 8.374 + <path 8.375 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" 8.376 + d="m 298.82881,392.82004 c 0,19.38279 0,19.38279 0,19.38279" 8.377 + id="path5592" 8.378 + inkscape:connector-curvature="0" /> 8.379 + <text 8.380 + sodipodi:linespacing="100%" 8.381 + id="text5594" 8.382 + y="376.52615" 8.383 + x="298.7023" 8.384 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 8.385 + xml:space="preserve"><tspan 8.386 + y="376.52615" 8.387 + x="298.7023" 8.388 + id="tspan5596" 8.389 + sodipodi:role="line" 8.390 + style="font-size:10px;text-align:center;text-anchor:middle">Suspend</tspan><tspan 8.391 + y="385.74353" 8.392 + x="298.7023" 8.393 + sodipodi:role="line" 8.394 + id="tspan5598" 8.395 + style="font-size:9px;text-align:center;text-anchor:middle">(Point 1.S)</tspan></text> 8.396 + </g> 8.397 + <g 8.398 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 8.399 + transform="translate(-60,0)" 8.400 + id="g5600"> 8.401 + <path 8.402 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" 8.403 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 8.404 + id="path5602" 8.405 + inkscape:connector-curvature="0" /> 8.406 + <text 8.407 + sodipodi:linespacing="100%" 8.408 + id="text5604" 8.409 + y="376.52615" 8.410 + x="378.7023" 8.411 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 8.412 + xml:space="preserve"><tspan 8.413 + y="376.52615" 8.414 + x="380.20621" 8.415 + id="tspan5606" 8.416 + sodipodi:role="line" 8.417 + style="font-size:9px;text-align:center;text-anchor:middle"><tspan 8.418 + style="font-size:10px" 8.419 + id="tspan5608">Resume </tspan></tspan><tspan 8.420 + y="385.74353" 8.421 + x="378.7023" 8.422 + sodipodi:role="line" 8.423 + id="tspan5610" 8.424 + style="font-size:9px;text-align:center;text-anchor:middle">(Point 1.R)</tspan></text> 8.425 + </g> 8.426 + <text 8.427 + sodipodi:linespacing="100%" 8.428 + id="text5612" 8.429 + y="405.27441" 8.430 + x="352.7023" 8.431 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 8.432 + xml:space="preserve"><tspan 8.433 + y="405.27441" 8.434 + x="352.7023" 8.435 + sodipodi:role="line" 8.436 + id="tspan5614">Timeline A</tspan></text> 8.437 + <path 8.438 + inkscape:connector-curvature="0" 8.439 + style="fill:none;stroke:#422fac;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 8.440 + d="m 320.08408,401.37498 c 27.45405,0 27.45405,0 27.45405,0" 8.441 + id="path5616" /> 8.442 + <path 8.443 + sodipodi:nodetypes="csc" 8.444 + inkscape:connector-curvature="0" 8.445 + id="path5618" 8.446 + d="m 292.57011,460.15667 c 1.60737,-35.06333 -0.1867,-13.69014 2.41106,-33.11537 1.74808,-13.07166 19.28851,-14.93437 19.28851,-14.93437" 8.447 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999998, 2.99999998;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 8.448 + </g> 8.449 +</svg>
9.1 Binary file 0__Papers/PRT/PRT__formal_def/figures/PR__timeline_dual_2nd.pdf has changed
10.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 10.2 +++ b/0__Papers/PRT/PRT__formal_def/figures/PR__timeline_dual_2nd.svg Sat Aug 03 19:24:22 2013 -0700 10.3 @@ -0,0 +1,545 @@ 10.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 10.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 10.6 + 10.7 +<svg 10.8 + xmlns:dc="http://purl.org/dc/elements/1.1/" 10.9 + xmlns:cc="http://creativecommons.org/ns#" 10.10 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 10.11 + xmlns:svg="http://www.w3.org/2000/svg" 10.12 + xmlns="http://www.w3.org/2000/svg" 10.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 10.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 10.15 + width="744.09448819" 10.16 + height="1052.3622047" 10.17 + id="svg2" 10.18 + sodipodi:version="0.32" 10.19 + inkscape:version="0.48.2 r9819" 10.20 + sodipodi:docname="PR__timeline_dual_2nd.svg" 10.21 + inkscape:output_extension="org.inkscape.output.svg.inkscape" 10.22 + version="1.1"> 10.23 + <defs 10.24 + id="defs4"> 10.25 + <marker 10.26 + inkscape:stockid="Arrow2Mend" 10.27 + orient="auto" 10.28 + refY="0.0" 10.29 + refX="0.0" 10.30 + id="Arrow2Mend" 10.31 + style="overflow:visible;"> 10.32 + <path 10.33 + id="path4008" 10.34 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 10.35 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 10.36 + transform="scale(0.6) rotate(180) translate(0,0)" /> 10.37 + </marker> 10.38 + <inkscape:perspective 10.39 + sodipodi:type="inkscape:persp3d" 10.40 + inkscape:vp_x="0 : 526.18109 : 1" 10.41 + inkscape:vp_y="0 : 1000 : 0" 10.42 + inkscape:vp_z="744.09448 : 526.18109 : 1" 10.43 + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" 10.44 + id="perspective10" /> 10.45 + <inkscape:perspective 10.46 + id="perspective11923" 10.47 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 10.48 + inkscape:vp_z="1 : 0.5 : 1" 10.49 + inkscape:vp_y="0 : 1000 : 0" 10.50 + inkscape:vp_x="0 : 0.5 : 1" 10.51 + sodipodi:type="inkscape:persp3d" /> 10.52 + </defs> 10.53 + <sodipodi:namedview 10.54 + id="base" 10.55 + pagecolor="#ffffff" 10.56 + bordercolor="#666666" 10.57 + borderopacity="1.0" 10.58 + gridtolerance="10000" 10.59 + guidetolerance="10" 10.60 + objecttolerance="10" 10.61 + inkscape:pageopacity="0.0" 10.62 + inkscape:pageshadow="2" 10.63 + inkscape:zoom="1.3364318" 10.64 + inkscape:cx="214.9176" 10.65 + inkscape:cy="608.45761" 10.66 + inkscape:document-units="px" 10.67 + inkscape:current-layer="layer1" 10.68 + showgrid="false" 10.69 + inkscape:window-width="1317" 10.70 + inkscape:window-height="878" 10.71 + inkscape:window-x="7" 10.72 + inkscape:window-y="1" 10.73 + inkscape:window-maximized="0" /> 10.74 + <metadata 10.75 + id="metadata7"> 10.76 + <rdf:RDF> 10.77 + <cc:Work 10.78 + rdf:about=""> 10.79 + <dc:format>image/svg+xml</dc:format> 10.80 + <dc:type 10.81 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 10.82 + <dc:title></dc:title> 10.83 + </cc:Work> 10.84 + </rdf:RDF> 10.85 + </metadata> 10.86 + <g 10.87 + inkscape:label="Layer 1" 10.88 + inkscape:groupmode="layer" 10.89 + id="layer1"> 10.90 + <path 10.91 + id="path7353" 10.92 + d="m 196.98465,281.37498 c 69.82336,0 69.82336,0 69.82336,0" 10.93 + style="fill:#800000;stroke:#800000;stroke-width:1.80000007;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 10.94 + inkscape:connector-curvature="0" /> 10.95 + <g 10.96 + transform="translate(-32,-120)" 10.97 + id="g7355" 10.98 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none"> 10.99 + <path 10.100 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" 10.101 + d="m 298.82881,392.82004 c 0,19.38279 0,19.38279 0,19.38279" 10.102 + id="path7357" 10.103 + inkscape:connector-curvature="0" /> 10.104 + <text 10.105 + sodipodi:linespacing="100%" 10.106 + id="text7359" 10.107 + y="376.52615" 10.108 + x="298.7023" 10.109 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 10.110 + xml:space="preserve"><tspan 10.111 + y="376.52615" 10.112 + x="298.7023" 10.113 + id="tspan7361" 10.114 + sodipodi:role="line" 10.115 + style="font-size:10px;text-align:center;text-anchor:middle">Suspend</tspan><tspan 10.116 + y="385.74353" 10.117 + x="298.7023" 10.118 + sodipodi:role="line" 10.119 + id="tspan7363" 10.120 + style="font-size:9px;text-align:center;text-anchor:middle">(Point 2.S)</tspan></text> 10.121 + </g> 10.122 + <g 10.123 + transform="translate(-60,-120)" 10.124 + id="g7365" 10.125 + style="stroke-width:1.8;stroke-miterlimit:4;stroke-dasharray:none"> 10.126 + <path 10.127 + style="fill:none;stroke:#000000;stroke-width:1.8;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" 10.128 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 10.129 + id="path7367" 10.130 + inkscape:connector-curvature="0" /> 10.131 + <text 10.132 + sodipodi:linespacing="100%" 10.133 + id="text7369" 10.134 + y="376.52615" 10.135 + x="378.7023" 10.136 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 10.137 + xml:space="preserve"><tspan 10.138 + y="376.52615" 10.139 + x="380.20621" 10.140 + id="tspan7371" 10.141 + sodipodi:role="line" 10.142 + style="font-size:9px;text-align:center;text-anchor:middle"><tspan 10.143 + style="font-size:10px" 10.144 + id="tspan8087">Resume </tspan></tspan><tspan 10.145 + y="385.74353" 10.146 + x="378.7023" 10.147 + sodipodi:role="line" 10.148 + id="tspan7373" 10.149 + style="font-size:9px;text-align:center;text-anchor:middle">(Point 2.R)</tspan></text> 10.150 + </g> 10.151 + <text 10.152 + sodipodi:linespacing="100%" 10.153 + id="text7375" 10.154 + y="285.27441" 10.155 + x="352.7023" 10.156 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 10.157 + xml:space="preserve"><tspan 10.158 + y="285.27441" 10.159 + x="352.7023" 10.160 + sodipodi:role="line" 10.161 + id="tspan7379">Timeline B</tspan></text> 10.162 + <path 10.163 + inkscape:connector-curvature="0" 10.164 + style="fill:none;stroke:#800000;stroke-width:1.80000000000000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none" 10.165 + d="m 320.08408,281.37498 c 27.45405,0 27.45405,0 27.45405,0" 10.166 + id="path7387" /> 10.167 + <path 10.168 + id="path8089" 10.169 + d="m 195.41471,317.37498 c 151.68424,0 151.68424,0 151.68424,0" 10.170 + style="fill:#000000;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 10.171 + inkscape:connector-curvature="0" /> 10.172 + <text 10.173 + xml:space="preserve" 10.174 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 10.175 + x="352.7023" 10.176 + y="320.02267" 10.177 + id="text8091" 10.178 + sodipodi:linespacing="100%"><tspan 10.179 + id="tspan8093" 10.180 + sodipodi:role="line" 10.181 + x="352.7023" 10.182 + y="320.02267">Physical time</tspan></text> 10.183 + <path 10.184 + inkscape:connector-curvature="0" 10.185 + style="fill:none;stroke:#422fac;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 10.186 + d="m 195.92204,221.37498 c 33.06652,0 33.06652,0 33.06652,0" 10.187 + id="path8095" /> 10.188 + <g 10.189 + id="g8097" 10.190 + transform="translate(-70,-180)" 10.191 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none"> 10.192 + <path 10.193 + inkscape:connector-curvature="0" 10.194 + id="path8099" 10.195 + d="m 298.82881,392.82004 c 0,19.38279 0,19.38279 0,19.38279" 10.196 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> 10.197 + <text 10.198 + xml:space="preserve" 10.199 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 10.200 + x="298.7023" 10.201 + y="376.52615" 10.202 + id="text8101" 10.203 + sodipodi:linespacing="100%"><tspan 10.204 + style="font-size:10px;text-align:center;text-anchor:middle" 10.205 + sodipodi:role="line" 10.206 + id="tspan8103" 10.207 + x="298.7023" 10.208 + y="376.52615">Suspend</tspan><tspan 10.209 + style="font-size:9px;text-align:center;text-anchor:middle" 10.210 + id="tspan8105" 10.211 + sodipodi:role="line" 10.212 + x="298.7023" 10.213 + y="385.74353">(Point 1.S)</tspan></text> 10.214 + </g> 10.215 + <g 10.216 + id="g8107" 10.217 + transform="translate(-60,-180)" 10.218 + style="stroke-width:1.8;stroke-miterlimit:4;stroke-dasharray:none"> 10.219 + <path 10.220 + inkscape:connector-curvature="0" 10.221 + id="path8109" 10.222 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 10.223 + style="fill:none;stroke:#000000;stroke-width:1.8;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" /> 10.224 + <text 10.225 + xml:space="preserve" 10.226 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 10.227 + x="378.7023" 10.228 + y="376.52615" 10.229 + id="text8111" 10.230 + sodipodi:linespacing="100%"><tspan 10.231 + style="font-size:9px;text-align:center;text-anchor:middle" 10.232 + sodipodi:role="line" 10.233 + id="tspan8113" 10.234 + x="380.20621" 10.235 + y="376.52615"><tspan 10.236 + id="tspan8115" 10.237 + style="font-size:10px">Resume </tspan></tspan><tspan 10.238 + style="font-size:9px;text-align:center;text-anchor:middle" 10.239 + id="tspan8117" 10.240 + sodipodi:role="line" 10.241 + x="378.7023" 10.242 + y="385.74353">(Point 1.R)</tspan></text> 10.243 + </g> 10.244 + <text 10.245 + xml:space="preserve" 10.246 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 10.247 + x="352.7023" 10.248 + y="225.27441" 10.249 + id="text8119" 10.250 + sodipodi:linespacing="100%"><tspan 10.251 + id="tspan8121" 10.252 + sodipodi:role="line" 10.253 + x="352.7023" 10.254 + y="225.27441">Timeline A</tspan></text> 10.255 + <path 10.256 + id="path8123" 10.257 + d="m 320.08408,221.37498 c 27.45405,0 27.45405,0 27.45405,0" 10.258 + style="fill:none;stroke:#422fac;stroke-width:1.8;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none" 10.259 + inkscape:connector-curvature="0" /> 10.260 + <path 10.261 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999998, 2.99999998;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 10.262 + d="m 292.57011,280.15667 c 1.60737,-35.06333 -0.1867,-13.69014 2.41106,-33.11537 1.74808,-13.07166 19.28851,-14.93437 19.28851,-14.93437" 10.263 + id="path8125" 10.264 + inkscape:connector-curvature="0" 10.265 + sodipodi:nodetypes="csc" /> 10.266 + <path 10.267 + inkscape:connector-curvature="0" 10.268 + style="fill:#800000;stroke:#800000;stroke-width:1.80000007;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 10.269 + d="m 246.98465,423.37498 c 69.82336,0 69.82336,0 69.82336,0" 10.270 + id="path10381" /> 10.271 + <g 10.272 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 10.273 + id="g10393" 10.274 + transform="translate(-60,22)"> 10.275 + <path 10.276 + inkscape:connector-curvature="0" 10.277 + id="path10395" 10.278 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 10.279 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> 10.280 + <text 10.281 + xml:space="preserve" 10.282 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 10.283 + x="378.7023" 10.284 + y="390.52615" 10.285 + id="text10397" 10.286 + sodipodi:linespacing="100%"><tspan 10.287 + style="font-size:9px;text-align:center;text-anchor:middle" 10.288 + id="tspan10403" 10.289 + sodipodi:role="line" 10.290 + x="378.7023" 10.291 + y="390.52615">Tied Point</tspan></text> 10.292 + </g> 10.293 + <text 10.294 + xml:space="preserve" 10.295 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 10.296 + x="352.7023" 10.297 + y="427.27441" 10.298 + id="text10405" 10.299 + sodipodi:linespacing="100%"><tspan 10.300 + id="tspan10407" 10.301 + sodipodi:role="line" 10.302 + x="352.7023" 10.303 + y="427.27441">Timeline B</tspan></text> 10.304 + <path 10.305 + id="path10409" 10.306 + d="m 320.08408,423.37498 c 27.45405,0 27.45405,0 27.45405,0" 10.307 + style="fill:none;stroke:#800000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 10.308 + inkscape:connector-curvature="0" /> 10.309 + <path 10.310 + id="path10411" 10.311 + d="m 283.92204,381.37498 c 33.06652,0 33.06652,0 33.06652,0" 10.312 + style="fill:none;stroke:#422fac;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 10.313 + inkscape:connector-curvature="0" /> 10.314 + <g 10.315 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 10.316 + transform="translate(-60,-20)" 10.317 + id="g10423"> 10.318 + <path 10.319 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" 10.320 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 10.321 + id="path10425" 10.322 + inkscape:connector-curvature="0" /> 10.323 + <text 10.324 + sodipodi:linespacing="100%" 10.325 + id="text10427" 10.326 + y="388.52615" 10.327 + x="378.7023" 10.328 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 10.329 + xml:space="preserve"><tspan 10.330 + y="388.52615" 10.331 + x="378.7023" 10.332 + sodipodi:role="line" 10.333 + id="tspan10433" 10.334 + style="font-size:9px;text-align:center;text-anchor:middle">Tied Point</tspan></text> 10.335 + </g> 10.336 + <text 10.337 + sodipodi:linespacing="100%" 10.338 + id="text10435" 10.339 + y="385.27441" 10.340 + x="352.7023" 10.341 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 10.342 + xml:space="preserve"><tspan 10.343 + y="385.27441" 10.344 + x="352.7023" 10.345 + sodipodi:role="line" 10.346 + id="tspan10437">Timeline A</tspan></text> 10.347 + <path 10.348 + inkscape:connector-curvature="0" 10.349 + style="fill:none;stroke:#422fac;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 10.350 + d="m 320.08408,381.37498 c 27.45405,0 27.45405,0 27.45405,0" 10.351 + id="path10439" /> 10.352 + <path 10.353 + style="fill:none;stroke:#000000;stroke-width:1.29999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.89999986,3.89999986;stroke-dashoffset:0" 10.354 + d="m 318.92887,395.30966 c 0,24.40348 0,24.40348 0,24.40348" 10.355 + id="path10425-2" 10.356 + inkscape:connector-curvature="0" /> 10.357 + <path 10.358 + inkscape:connector-curvature="0" 10.359 + style="fill:#800000;stroke:#800000;stroke-width:1.80000007;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 10.360 + d="m 196.98465,549.37498 c 69.82336,0 69.82336,0 69.82336,0" 10.361 + id="path10981" /> 10.362 + <g 10.363 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 10.364 + id="g10983" 10.365 + transform="translate(-32,148)"> 10.366 + <path 10.367 + inkscape:connector-curvature="0" 10.368 + id="path10985" 10.369 + d="m 298.82881,392.82004 c 0,19.38279 0,19.38279 0,19.38279" 10.370 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> 10.371 + </g> 10.372 + <g 10.373 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 10.374 + id="g10993" 10.375 + transform="translate(-60,148)"> 10.376 + <path 10.377 + inkscape:connector-curvature="0" 10.378 + id="path10995" 10.379 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 10.380 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> 10.381 + </g> 10.382 + <text 10.383 + xml:space="preserve" 10.384 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 10.385 + x="352.7023" 10.386 + y="553.27441" 10.387 + id="text11005" 10.388 + sodipodi:linespacing="100%"><tspan 10.389 + id="tspan11007" 10.390 + sodipodi:role="line" 10.391 + x="352.7023" 10.392 + y="553.27441">Timeline B</tspan></text> 10.393 + <path 10.394 + id="path11009" 10.395 + d="m 320.08408,549.37498 c 27.45405,0 27.45405,0 27.45405,0" 10.396 + style="fill:none;stroke:#800000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 10.397 + inkscape:connector-curvature="0" /> 10.398 + <path 10.399 + id="path11011" 10.400 + d="m 195.92204,489.37498 c 33.06652,0 33.06652,0 33.06652,0" 10.401 + style="fill:none;stroke:#422fac;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 10.402 + inkscape:connector-curvature="0" /> 10.403 + <g 10.404 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 10.405 + transform="translate(-70,88)" 10.406 + id="g11013"> 10.407 + <path 10.408 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" 10.409 + d="m 298.82881,392.82004 c 0,19.38279 0,19.38279 0,19.38279" 10.410 + id="path11015" 10.411 + inkscape:connector-curvature="0" /> 10.412 + <text 10.413 + sodipodi:linespacing="100%" 10.414 + id="text11017" 10.415 + y="376.52615" 10.416 + x="298.7023" 10.417 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 10.418 + xml:space="preserve"><tspan 10.419 + y="376.52615" 10.420 + x="298.7023" 10.421 + id="tspan11019" 10.422 + sodipodi:role="line" 10.423 + style="font-size:10px;text-align:center;text-anchor:middle">Suspend</tspan><tspan 10.424 + y="385.74353" 10.425 + x="298.7023" 10.426 + sodipodi:role="line" 10.427 + id="tspan11021" 10.428 + style="font-size:9px;text-align:center;text-anchor:middle">(Point 1.S)</tspan></text> 10.429 + </g> 10.430 + <g 10.431 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 10.432 + transform="translate(-60,88)" 10.433 + id="g11023"> 10.434 + <path 10.435 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" 10.436 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 10.437 + id="path11025" 10.438 + inkscape:connector-curvature="0" /> 10.439 + <text 10.440 + sodipodi:linespacing="100%" 10.441 + id="text11027" 10.442 + y="376.52615" 10.443 + x="378.7023" 10.444 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 10.445 + xml:space="preserve"><tspan 10.446 + y="376.52615" 10.447 + x="380.20621" 10.448 + id="tspan11029" 10.449 + sodipodi:role="line" 10.450 + style="font-size:9px;text-align:center;text-anchor:middle"><tspan 10.451 + style="font-size:10px" 10.452 + id="tspan11031">Resume </tspan></tspan><tspan 10.453 + y="385.74353" 10.454 + x="378.7023" 10.455 + sodipodi:role="line" 10.456 + id="tspan11033" 10.457 + style="font-size:9px;text-align:center;text-anchor:middle">(Point 1.R)</tspan></text> 10.458 + </g> 10.459 + <text 10.460 + sodipodi:linespacing="100%" 10.461 + id="text11035" 10.462 + y="493.27441" 10.463 + x="352.7023" 10.464 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 10.465 + xml:space="preserve"><tspan 10.466 + y="493.27441" 10.467 + x="352.7023" 10.468 + sodipodi:role="line" 10.469 + id="tspan11037">Timeline A</tspan></text> 10.470 + <path 10.471 + inkscape:connector-curvature="0" 10.472 + style="fill:none;stroke:#422fac;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 10.473 + d="m 320.08408,489.37498 c 27.45405,0 27.45405,0 27.45405,0" 10.474 + id="path11039" /> 10.475 + <path 10.476 + sodipodi:nodetypes="cc" 10.477 + inkscape:connector-curvature="0" 10.478 + id="path11041" 10.479 + d="m 248.40878,545.16363 c 79.41657,-49.15176 5.94823,-3.26189 82.39224,-51.8417" 10.480 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999999, 2.99999999;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 10.481 + <path 10.482 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000003, 3.00000003;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 10.483 + d="m 329.77257,501.82974 c -70.11936,42.79661 -5.25188,2.84014 -72.74667,45.13875" 10.484 + id="path11043" 10.485 + inkscape:connector-curvature="0" 10.486 + sodipodi:nodetypes="cc" /> 10.487 + <text 10.488 + xml:space="preserve" 10.489 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 10.490 + x="-20.52177" 10.491 + y="592.72888" 10.492 + id="text11049" 10.493 + sodipodi:linespacing="100%" 10.494 + transform="matrix(0.85476126,-0.51902138,0.51902138,0.85476126,0,0)"><tspan 10.495 + id="tspan11051" 10.496 + sodipodi:role="line" 10.497 + x="-20.52177" 10.498 + y="592.72888">visible</tspan></text> 10.499 + <text 10.500 + transform="matrix(0.85476126,-0.51902138,0.51902138,0.85476126,0,0)" 10.501 + sodipodi:linespacing="100%" 10.502 + id="text11053" 10.503 + y="607.87146" 10.504 + x="-10.997777" 10.505 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 10.506 + xml:space="preserve"><tspan 10.507 + y="607.87146" 10.508 + x="-10.997777" 10.509 + sodipodi:role="line" 10.510 + id="tspan11055">NOT visible</tspan></text> 10.511 + <path 10.512 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000008, 3.00000008;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 10.513 + d="m 331.48246,541.42226 c -109.48644,-45.60627 -8.20044,-3.02659 -113.5888,-48.10218" 10.514 + id="path11057" 10.515 + inkscape:connector-curvature="0" 10.516 + sodipodi:nodetypes="cc" /> 10.517 + <path 10.518 + sodipodi:nodetypes="cc" 10.519 + inkscape:connector-curvature="0" 10.520 + id="path11059" 10.521 + d="m 218.69167,501.82968 c 107.30304,43.503 8.03691,2.88702 111.32359,45.8838" 10.522 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000006, 3.00000006;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 10.523 + <text 10.524 + transform="matrix(0.92037595,0.39103467,-0.39103467,0.92037595,0,0)" 10.525 + sodipodi:linespacing="100%" 10.526 + id="text11061" 10.527 + y="382.84756" 10.528 + x="402.31476" 10.529 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 10.530 + xml:space="preserve"><tspan 10.531 + y="382.84756" 10.532 + x="402.31476" 10.533 + sodipodi:role="line" 10.534 + id="tspan11063">visible</tspan></text> 10.535 + <text 10.536 + xml:space="preserve" 10.537 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 10.538 + x="408.54758" 10.539 + y="366.66327" 10.540 + id="text11065" 10.541 + sodipodi:linespacing="100%" 10.542 + transform="matrix(0.9201572,0.39154913,-0.39154913,0.9201572,0,0)"><tspan 10.543 + id="tspan11067" 10.544 + sodipodi:role="line" 10.545 + x="408.54758" 10.546 + y="366.66327">NOT visible</tspan></text> 10.547 + </g> 10.548 +</svg>
11.1 Binary file 0__Papers/PRT/PRT__formal_def/figures/PR__timeline_single.pdf has changed
12.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 12.2 +++ b/0__Papers/PRT/PRT__formal_def/figures/PR__timeline_single.svg Sat Aug 03 19:24:22 2013 -0700 12.3 @@ -0,0 +1,306 @@ 12.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 12.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 12.6 + 12.7 +<svg 12.8 + xmlns:dc="http://purl.org/dc/elements/1.1/" 12.9 + xmlns:cc="http://creativecommons.org/ns#" 12.10 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 12.11 + xmlns:svg="http://www.w3.org/2000/svg" 12.12 + xmlns="http://www.w3.org/2000/svg" 12.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 12.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 12.15 + width="744.09448819" 12.16 + height="1052.3622047" 12.17 + id="svg2" 12.18 + sodipodi:version="0.32" 12.19 + inkscape:version="0.48.2 r9819" 12.20 + sodipodi:docname="PR__timeline_single.svg" 12.21 + inkscape:output_extension="org.inkscape.output.svg.inkscape" 12.22 + version="1.1"> 12.23 + <defs 12.24 + id="defs4"> 12.25 + <marker 12.26 + inkscape:stockid="Arrow2Mend" 12.27 + orient="auto" 12.28 + refY="0.0" 12.29 + refX="0.0" 12.30 + id="Arrow2Mend" 12.31 + style="overflow:visible;"> 12.32 + <path 12.33 + id="path4008" 12.34 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 12.35 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 12.36 + transform="scale(0.6) rotate(180) translate(0,0)" /> 12.37 + </marker> 12.38 + <inkscape:perspective 12.39 + sodipodi:type="inkscape:persp3d" 12.40 + inkscape:vp_x="0 : 526.18109 : 1" 12.41 + inkscape:vp_y="0 : 1000 : 0" 12.42 + inkscape:vp_z="744.09448 : 526.18109 : 1" 12.43 + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" 12.44 + id="perspective10" /> 12.45 + <inkscape:perspective 12.46 + id="perspective11923" 12.47 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 12.48 + inkscape:vp_z="1 : 0.5 : 1" 12.49 + inkscape:vp_y="0 : 1000 : 0" 12.50 + inkscape:vp_x="0 : 0.5 : 1" 12.51 + sodipodi:type="inkscape:persp3d" /> 12.52 + </defs> 12.53 + <sodipodi:namedview 12.54 + id="base" 12.55 + pagecolor="#ffffff" 12.56 + bordercolor="#666666" 12.57 + borderopacity="1.0" 12.58 + gridtolerance="10000" 12.59 + guidetolerance="10" 12.60 + objecttolerance="10" 12.61 + inkscape:pageopacity="0.0" 12.62 + inkscape:pageshadow="2" 12.63 + inkscape:zoom="3.5576235" 12.64 + inkscape:cx="283.87197" 12.65 + inkscape:cy="706.58767" 12.66 + inkscape:document-units="px" 12.67 + inkscape:current-layer="layer1" 12.68 + showgrid="false" 12.69 + inkscape:window-width="1600" 12.70 + inkscape:window-height="848" 12.71 + inkscape:window-x="-8" 12.72 + inkscape:window-y="-8" 12.73 + inkscape:window-maximized="0" /> 12.74 + <metadata 12.75 + id="metadata7"> 12.76 + <rdf:RDF> 12.77 + <cc:Work 12.78 + rdf:about=""> 12.79 + <dc:format>image/svg+xml</dc:format> 12.80 + <dc:type 12.81 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 12.82 + <dc:title /> 12.83 + </cc:Work> 12.84 + </rdf:RDF> 12.85 + </metadata> 12.86 + <g 12.87 + inkscape:label="Layer 1" 12.88 + inkscape:groupmode="layer" 12.89 + id="layer1"> 12.90 + <path 12.91 + id="path8089" 12.92 + d="m 195.41471,257.37498 c 151.68424,0 151.68424,0 151.68424,0" 12.93 + style="fill:#000000;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 12.94 + inkscape:connector-curvature="0" /> 12.95 + <text 12.96 + xml:space="preserve" 12.97 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.98 + x="352.7023" 12.99 + y="260.77094" 12.100 + id="text8091" 12.101 + sodipodi:linespacing="100%"><tspan 12.102 + id="tspan8093" 12.103 + sodipodi:role="line" 12.104 + x="352.7023" 12.105 + y="260.77094">Physical time</tspan></text> 12.106 + <path 12.107 + inkscape:connector-curvature="0" 12.108 + style="fill:none;stroke:#422fac;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 12.109 + d="m 195.92204,221.37498 c 33.06652,0 33.06652,0 33.06652,0" 12.110 + id="path8095" /> 12.111 + <g 12.112 + id="g8097" 12.113 + transform="translate(-70,-180)" 12.114 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none"> 12.115 + <path 12.116 + inkscape:connector-curvature="0" 12.117 + id="path8099" 12.118 + d="m 298.82881,392.82004 c 0,19.38279 0,19.38279 0,19.38279" 12.119 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> 12.120 + <text 12.121 + xml:space="preserve" 12.122 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.123 + x="298.7023" 12.124 + y="376.52615" 12.125 + id="text8101" 12.126 + sodipodi:linespacing="100%"><tspan 12.127 + style="font-size:10px;text-align:center;text-anchor:middle" 12.128 + sodipodi:role="line" 12.129 + id="tspan8103" 12.130 + x="298.7023" 12.131 + y="376.52615">Suspend</tspan><tspan 12.132 + style="font-size:9px;text-align:center;text-anchor:middle" 12.133 + id="tspan8105" 12.134 + sodipodi:role="line" 12.135 + x="298.7023" 12.136 + y="385.74353">(Point 1.S)</tspan></text> 12.137 + </g> 12.138 + <g 12.139 + id="g8107" 12.140 + transform="translate(-60,-180)" 12.141 + style="stroke-width:1.8;stroke-miterlimit:4;stroke-dasharray:none"> 12.142 + <path 12.143 + inkscape:connector-curvature="0" 12.144 + id="path8109" 12.145 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 12.146 + style="fill:none;stroke:#000000;stroke-width:1.8;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" /> 12.147 + <text 12.148 + xml:space="preserve" 12.149 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS;stroke-width:1.8;stroke-miterlimit:4;stroke-dasharray:none" 12.150 + x="378.7023" 12.151 + y="376.52615" 12.152 + id="text8111" 12.153 + sodipodi:linespacing="100%"><tspan 12.154 + style="font-size:9px;text-align:center;text-anchor:middle;stroke-width:1.8;stroke-miterlimit:4;stroke-dasharray:none" 12.155 + sodipodi:role="line" 12.156 + id="tspan8113" 12.157 + x="380.20621" 12.158 + y="376.52615"><tspan 12.159 + id="tspan8115" 12.160 + style="font-size:10px;stroke-width:1.8;stroke-miterlimit:4;stroke-dasharray:none">Resume </tspan></tspan><tspan 12.161 + style="font-size:9px;text-align:center;text-anchor:middle;stroke-width:1.8;stroke-miterlimit:4;stroke-dasharray:none" 12.162 + id="tspan8117" 12.163 + sodipodi:role="line" 12.164 + x="378.7023" 12.165 + y="385.74353">(Point 1.R)</tspan></text> 12.166 + </g> 12.167 + <text 12.168 + xml:space="preserve" 12.169 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.170 + x="352.7023" 12.171 + y="224.52615" 12.172 + id="text8119" 12.173 + sodipodi:linespacing="100%"><tspan 12.174 + id="tspan8121" 12.175 + sodipodi:role="line" 12.176 + x="352.7023" 12.177 + y="224.52615">Timeline A</tspan></text> 12.178 + <path 12.179 + id="path8123" 12.180 + d="m 320.08408,221.37498 c 27.45405,0 27.45405,0 27.45405,0" 12.181 + style="fill:none;stroke:#422fac;stroke-width:1.8;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none" 12.182 + inkscape:connector-curvature="0" /> 12.183 + <path 12.184 + inkscape:connector-curvature="0" 12.185 + style="fill:#000000;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 12.186 + d="m 195.41471,377.37498 c 151.68424,0 151.68424,0 151.68424,0" 12.187 + id="path5836" /> 12.188 + <text 12.189 + sodipodi:linespacing="100%" 12.190 + id="text5838" 12.191 + y="380.77094" 12.192 + x="352.7023" 12.193 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.194 + xml:space="preserve"><tspan 12.195 + y="380.77094" 12.196 + x="352.7023" 12.197 + sodipodi:role="line" 12.198 + id="tspan5840">Physical time</tspan></text> 12.199 + <path 12.200 + id="path5842" 12.201 + d="m 195.92204,341.37498 c 33.06652,0 33.06652,0 33.06652,0" 12.202 + style="fill:none;stroke:#422fac;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 12.203 + inkscape:connector-curvature="0" /> 12.204 + <g 12.205 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 12.206 + transform="translate(-70,-60)" 12.207 + id="g5844"> 12.208 + <path 12.209 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" 12.210 + d="m 298.82881,392.82004 c 0,19.38279 0,19.38279 0,19.38279" 12.211 + id="path5846" 12.212 + inkscape:connector-curvature="0" /> 12.213 + <text 12.214 + sodipodi:linespacing="100%" 12.215 + id="text5848" 12.216 + y="376.52615" 12.217 + x="298.7023" 12.218 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.219 + xml:space="preserve"><tspan 12.220 + y="376.52615" 12.221 + x="298.7023" 12.222 + id="tspan5850" 12.223 + sodipodi:role="line" 12.224 + style="font-size:10px;text-align:center;text-anchor:middle">Suspend</tspan><tspan 12.225 + y="385.74353" 12.226 + x="298.7023" 12.227 + sodipodi:role="line" 12.228 + id="tspan5852" 12.229 + style="font-size:9px;text-align:center;text-anchor:middle">(Point 1.S)</tspan></text> 12.230 + </g> 12.231 + <g 12.232 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 12.233 + transform="translate(-60,-60)" 12.234 + id="g5854"> 12.235 + <path 12.236 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" 12.237 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 12.238 + id="path5856" 12.239 + inkscape:connector-curvature="0" /> 12.240 + <text 12.241 + sodipodi:linespacing="100%" 12.242 + id="text5858" 12.243 + y="376.52615" 12.244 + x="378.7023" 12.245 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.246 + xml:space="preserve"><tspan 12.247 + y="376.52615" 12.248 + x="380.20621" 12.249 + id="tspan5860" 12.250 + sodipodi:role="line" 12.251 + style="font-size:9px;text-align:center;text-anchor:middle"><tspan 12.252 + style="font-size:10px" 12.253 + id="tspan5862">Resume </tspan></tspan><tspan 12.254 + y="385.74353" 12.255 + x="378.7023" 12.256 + sodipodi:role="line" 12.257 + id="tspan5864" 12.258 + style="font-size:9px;text-align:center;text-anchor:middle">(Point 1.R)</tspan></text> 12.259 + </g> 12.260 + <text 12.261 + sodipodi:linespacing="100%" 12.262 + id="text5866" 12.263 + y="344.52615" 12.264 + x="352.7023" 12.265 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.266 + xml:space="preserve"><tspan 12.267 + y="344.52615" 12.268 + x="352.7023" 12.269 + sodipodi:role="line" 12.270 + id="tspan5868">Timeline A</tspan></text> 12.271 + <path 12.272 + inkscape:connector-curvature="0" 12.273 + style="fill:none;stroke:#422fac;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 12.274 + d="m 320.08408,341.37498 c 27.45405,0 27.45405,0 27.45405,0" 12.275 + id="path5870" /> 12.276 + <path 12.277 + style="fill:none;stroke:#000000;stroke-width:1.8;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.6,1.8;stroke-dashoffset:0" 12.278 + d="m 248.81439,338.09818 c 0,9.22856 0,9.22856 0,9.22856" 12.279 + id="path5846-1" 12.280 + inkscape:connector-curvature="0" /> 12.281 + <path 12.282 + inkscape:connector-curvature="0" 12.283 + id="path6664" 12.284 + d="m 266.81439,338.09818 c 0,9.22856 0,9.22856 0,9.22856" 12.285 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.6, 1.8;stroke-dashoffset:0" /> 12.286 + <path 12.287 + inkscape:connector-curvature="0" 12.288 + style="fill:none;stroke:#999999;stroke-width:1.79999994999999990;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none;opacity:0.53539822999999997" 12.289 + d="m 249.92204,341.37498 c 16.089,0 16.089,0 16.089,0" 12.290 + id="path6666" /> 12.291 + <text 12.292 + xml:space="preserve" 12.293 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.294 + x="244.7023" 12.295 + y="356.52615" 12.296 + id="text6668" 12.297 + sodipodi:linespacing="100%"><tspan 12.298 + sodipodi:role="line" 12.299 + x="244.7023" 12.300 + y="356.52615" 12.301 + style="font-size:8px;fill:#999999" 12.302 + id="tspan6674">Hidden</tspan><tspan 12.303 + sodipodi:role="line" 12.304 + x="244.7023" 12.305 + y="364.52615" 12.306 + id="tspan6672" 12.307 + style="font-size:8px;fill:#999999">meta-comm</tspan></text> 12.308 + </g> 12.309 +</svg>
13.1 Binary file 0__Papers/PRT/PRT__formal_def/figures/PR__timeline_sync_def.pdf has changed
14.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 14.2 +++ b/0__Papers/PRT/PRT__formal_def/figures/PR__timeline_sync_def.svg Sat Aug 03 19:24:22 2013 -0700 14.3 @@ -0,0 +1,498 @@ 14.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 14.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 14.6 + 14.7 +<svg 14.8 + xmlns:dc="http://purl.org/dc/elements/1.1/" 14.9 + xmlns:cc="http://creativecommons.org/ns#" 14.10 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 14.11 + xmlns:svg="http://www.w3.org/2000/svg" 14.12 + xmlns="http://www.w3.org/2000/svg" 14.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 14.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 14.15 + width="744.09448819" 14.16 + height="1052.3622047" 14.17 + id="svg2" 14.18 + sodipodi:version="0.32" 14.19 + inkscape:version="0.48.2 r9819" 14.20 + sodipodi:docname="PR__timeline_sync_def.svg" 14.21 + inkscape:output_extension="org.inkscape.output.svg.inkscape" 14.22 + version="1.1"> 14.23 + <defs 14.24 + id="defs4"> 14.25 + <marker 14.26 + inkscape:stockid="Arrow2Mstart" 14.27 + orient="auto" 14.28 + refY="0.0" 14.29 + refX="0.0" 14.30 + id="Arrow2Mstart" 14.31 + style="overflow:visible"> 14.32 + <path 14.33 + id="path3961" 14.34 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round" 14.35 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 14.36 + transform="scale(0.6) translate(0,0)" /> 14.37 + </marker> 14.38 + <marker 14.39 + inkscape:stockid="Arrow2Mend" 14.40 + orient="auto" 14.41 + refY="0.0" 14.42 + refX="0.0" 14.43 + id="Arrow2Mend" 14.44 + style="overflow:visible;"> 14.45 + <path 14.46 + id="path4008" 14.47 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 14.48 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 14.49 + transform="scale(0.6) rotate(180) translate(0,0)" /> 14.50 + </marker> 14.51 + <inkscape:perspective 14.52 + sodipodi:type="inkscape:persp3d" 14.53 + inkscape:vp_x="0 : 526.18109 : 1" 14.54 + inkscape:vp_y="0 : 1000 : 0" 14.55 + inkscape:vp_z="744.09448 : 526.18109 : 1" 14.56 + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" 14.57 + id="perspective10" /> 14.58 + <inkscape:perspective 14.59 + id="perspective11923" 14.60 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 14.61 + inkscape:vp_z="1 : 0.5 : 1" 14.62 + inkscape:vp_y="0 : 1000 : 0" 14.63 + inkscape:vp_x="0 : 0.5 : 1" 14.64 + sodipodi:type="inkscape:persp3d" /> 14.65 + </defs> 14.66 + <sodipodi:namedview 14.67 + id="base" 14.68 + pagecolor="#ffffff" 14.69 + bordercolor="#666666" 14.70 + borderopacity="1.0" 14.71 + gridtolerance="10000" 14.72 + guidetolerance="10" 14.73 + objecttolerance="10" 14.74 + inkscape:pageopacity="0.0" 14.75 + inkscape:pageshadow="2" 14.76 + inkscape:zoom="2.0363696" 14.77 + inkscape:cx="138.31068" 14.78 + inkscape:cy="659.21141" 14.79 + inkscape:document-units="px" 14.80 + inkscape:current-layer="layer1" 14.81 + showgrid="false" 14.82 + inkscape:window-width="1600" 14.83 + inkscape:window-height="848" 14.84 + inkscape:window-x="-8" 14.85 + inkscape:window-y="-8" 14.86 + inkscape:window-maximized="1" /> 14.87 + <metadata 14.88 + id="metadata7"> 14.89 + <rdf:RDF> 14.90 + <cc:Work 14.91 + rdf:about=""> 14.92 + <dc:format>image/svg+xml</dc:format> 14.93 + <dc:type 14.94 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 14.95 + <dc:title></dc:title> 14.96 + </cc:Work> 14.97 + </rdf:RDF> 14.98 + </metadata> 14.99 + <g 14.100 + inkscape:label="Layer 1" 14.101 + inkscape:groupmode="layer" 14.102 + id="layer1"> 14.103 + <g 14.104 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 14.105 + id="g10393" 14.106 + transform="translate(-60,22)"> 14.107 + <path 14.108 + inkscape:connector-curvature="0" 14.109 + id="path10395" 14.110 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 14.111 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> 14.112 + </g> 14.113 + <text 14.114 + xml:space="preserve" 14.115 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.116 + x="374.7023" 14.117 + y="427.27441" 14.118 + id="text10405" 14.119 + sodipodi:linespacing="100%"><tspan 14.120 + id="tspan10407" 14.121 + sodipodi:role="line" 14.122 + x="374.7023" 14.123 + y="427.27441">Timeline B</tspan></text> 14.124 + <path 14.125 + id="path10409" 14.126 + d="m 320.08409,423.37498 c 48.88494,0 48.88494,0 48.88494,0" 14.127 + style="fill:none;stroke:#800000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 14.128 + inkscape:connector-curvature="0" /> 14.129 + <path 14.130 + id="path10411" 14.131 + d="m 283.92204,381.37498 c 33.06652,0 33.06652,0 33.06652,0" 14.132 + style="fill:none;stroke:#422fac;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 14.133 + inkscape:connector-curvature="0" /> 14.134 + <g 14.135 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 14.136 + transform="translate(-60,-20)" 14.137 + id="g10423"> 14.138 + <path 14.139 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" 14.140 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 14.141 + id="path10425" 14.142 + inkscape:connector-curvature="0" /> 14.143 + <text 14.144 + sodipodi:linespacing="100%" 14.145 + id="text10427" 14.146 + y="380.52615" 14.147 + x="378.7023" 14.148 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.149 + xml:space="preserve"><tspan 14.150 + y="380.52615" 14.151 + x="378.7023" 14.152 + sodipodi:role="line" 14.153 + id="tspan10433" 14.154 + style="font-size:9px;text-align:center;text-anchor:middle">Sync</tspan><tspan 14.155 + y="389.52615" 14.156 + x="378.7023" 14.157 + sodipodi:role="line" 14.158 + style="font-size:9px;text-align:center;text-anchor:middle" 14.159 + id="tspan11167">Point</tspan></text> 14.160 + </g> 14.161 + <text 14.162 + sodipodi:linespacing="100%" 14.163 + id="text10435" 14.164 + y="385.27441" 14.165 + x="374.7023" 14.166 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.167 + xml:space="preserve"><tspan 14.168 + y="385.27441" 14.169 + x="374.7023" 14.170 + sodipodi:role="line" 14.171 + id="tspan10437">Timeline A</tspan></text> 14.172 + <path 14.173 + inkscape:connector-curvature="0" 14.174 + style="fill:none;stroke:#422fac;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 14.175 + d="m 320.08409,381.37498 c 48.88494,0 48.88494,0 48.88494,0" 14.176 + id="path10439" /> 14.177 + <path 14.178 + style="fill:none;stroke:#000000;stroke-width:1.29999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.89999986,3.89999986;stroke-dashoffset:0" 14.179 + d="m 318.92887,395.30966 c 0,24.40348 0,24.40348 0,24.40348" 14.180 + id="path10425-2" 14.181 + inkscape:connector-curvature="0" /> 14.182 + <path 14.183 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000004, 3.00000004;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 14.184 + d="m 294.31645,382.21359 c 34.40952,37.45034 2.57725,2.48534 35.69881,39.49989" 14.185 + id="path11081" 14.186 + inkscape:connector-curvature="0" 14.187 + sodipodi:nodetypes="cc" /> 14.188 + <text 14.189 + sodipodi:linespacing="100%" 14.190 + id="text11017-7" 14.191 + y="380.07288" 14.192 + x="289.94116" 14.193 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.194 + xml:space="preserve"><tspan 14.195 + y="380.07288" 14.196 + x="289.94116" 14.197 + sodipodi:role="line" 14.198 + id="tspan11021-1" 14.199 + style="font-size:10px;text-align:center;text-anchor:middle">write</tspan></text> 14.200 + <text 14.201 + xml:space="preserve" 14.202 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.203 + x="331.94116" 14.204 + y="432.07288" 14.205 + id="text11111" 14.206 + sodipodi:linespacing="100%"><tspan 14.207 + style="font-size:10px;text-align:center;text-anchor:middle" 14.208 + id="tspan11113" 14.209 + sodipodi:role="line" 14.210 + x="331.94116" 14.211 + y="432.07288">read</tspan></text> 14.212 + <g 14.213 + transform="translate(-60,122)" 14.214 + id="g11117" 14.215 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none"> 14.216 + <path 14.217 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" 14.218 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 14.219 + id="path11119" 14.220 + inkscape:connector-curvature="0" /> 14.221 + </g> 14.222 + <text 14.223 + sodipodi:linespacing="100%" 14.224 + id="text11121" 14.225 + y="527.27441" 14.226 + x="394.7023" 14.227 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.228 + xml:space="preserve"><tspan 14.229 + y="527.27441" 14.230 + x="394.7023" 14.231 + sodipodi:role="line" 14.232 + id="tspan11123">Timeline B</tspan></text> 14.233 + <path 14.234 + inkscape:connector-curvature="0" 14.235 + style="fill:none;stroke:#800000;stroke-width:1.80000007;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 14.236 + d="m 320.08412,523.37498 c 70.34044,0 70.34044,0 70.34044,0" 14.237 + id="path11125" /> 14.238 + <path 14.239 + inkscape:connector-curvature="0" 14.240 + style="fill:none;stroke:#422fac;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 14.241 + d="m 283.92204,481.37498 c 33.06652,0 33.06652,0 33.06652,0" 14.242 + id="path11127" /> 14.243 + <g 14.244 + id="g11129" 14.245 + transform="translate(-60,80)" 14.246 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none"> 14.247 + <path 14.248 + inkscape:connector-curvature="0" 14.249 + id="path11131" 14.250 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 14.251 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> 14.252 + <text 14.253 + xml:space="preserve" 14.254 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.255 + x="378.7023" 14.256 + y="380.52615" 14.257 + id="text11133" 14.258 + sodipodi:linespacing="100%"><tspan 14.259 + style="font-size:9px;text-align:center;text-anchor:middle" 14.260 + id="tspan11135" 14.261 + sodipodi:role="line" 14.262 + x="378.7023" 14.263 + y="380.52615">Sync</tspan><tspan 14.264 + style="font-size:9px;text-align:center;text-anchor:middle" 14.265 + sodipodi:role="line" 14.266 + x="378.7023" 14.267 + y="389.52615" 14.268 + id="tspan11165">Point</tspan></text> 14.269 + </g> 14.270 + <text 14.271 + xml:space="preserve" 14.272 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.273 + x="394.7023" 14.274 + y="485.27441" 14.275 + id="text11137" 14.276 + sodipodi:linespacing="100%"><tspan 14.277 + id="tspan11139" 14.278 + sodipodi:role="line" 14.279 + x="394.7023" 14.280 + y="485.27441">Timeline A</tspan></text> 14.281 + <path 14.282 + id="path11141" 14.283 + d="m 320.08412,481.37498 c 70.34044,0 70.34044,0 70.34044,0" 14.284 + style="fill:none;stroke:#422fac;stroke-width:1.80000007;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 14.285 + inkscape:connector-curvature="0" /> 14.286 + <path 14.287 + inkscape:connector-curvature="0" 14.288 + id="path11143" 14.289 + d="m 318.92887,495.30966 c 0,24.40348 0,24.40348 0,24.40348" 14.290 + style="fill:none;stroke:#000000;stroke-width:1.29999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.89999986, 3.89999986;stroke-dashoffset:0" /> 14.291 + <path 14.292 + sodipodi:nodetypes="cc" 14.293 + inkscape:connector-curvature="0" 14.294 + id="path11145" 14.295 + d="m 294.31645,482.21359 c 34.40952,37.45034 2.57725,2.48534 35.69881,39.49989" 14.296 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000004, 3.00000004;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 14.297 + <text 14.298 + xml:space="preserve" 14.299 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.300 + x="291.94116" 14.301 + y="480.07288" 14.302 + id="text11147" 14.303 + sodipodi:linespacing="100%"><tspan 14.304 + style="font-size:10px;text-align:center;text-anchor:middle" 14.305 + id="tspan11149" 14.306 + sodipodi:role="line" 14.307 + x="291.94116" 14.308 + y="480.07288">write</tspan></text> 14.309 + <text 14.310 + sodipodi:linespacing="100%" 14.311 + id="text11151" 14.312 + y="532.07288" 14.313 + x="331.94116" 14.314 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.315 + xml:space="preserve"><tspan 14.316 + y="532.07288" 14.317 + x="331.94116" 14.318 + sodipodi:role="line" 14.319 + id="tspan11153" 14.320 + style="font-size:10px;text-align:center;text-anchor:middle">read</tspan></text> 14.321 + <g 14.322 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 14.323 + transform="translate(-26,80)" 14.324 + id="g11155"> 14.325 + <path 14.326 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" 14.327 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 14.328 + id="path11157" 14.329 + inkscape:connector-curvature="0" /> 14.330 + <text 14.331 + sodipodi:linespacing="100%" 14.332 + id="text11159" 14.333 + y="380.52615" 14.334 + x="378.7023" 14.335 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.336 + xml:space="preserve"><tspan 14.337 + y="380.52615" 14.338 + x="378.7023" 14.339 + sodipodi:role="line" 14.340 + id="tspan11161" 14.341 + style="font-size:9px;text-align:center;text-anchor:middle">Sync</tspan><tspan 14.342 + y="389.52615" 14.343 + x="378.7023" 14.344 + sodipodi:role="line" 14.345 + style="font-size:9px;text-align:center;text-anchor:middle" 14.346 + id="tspan11163">Point</tspan></text> 14.347 + </g> 14.348 + <text 14.349 + sodipodi:linespacing="100%" 14.350 + id="text11169" 14.351 + y="480.07288" 14.352 + x="369.94116" 14.353 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.354 + xml:space="preserve"><tspan 14.355 + y="480.07288" 14.356 + x="369.94116" 14.357 + sodipodi:role="line" 14.358 + id="tspan11171" 14.359 + style="font-size:10px;text-align:center;text-anchor:middle">write</tspan></text> 14.360 + <path 14.361 + style="fill:#ff0000;stroke:#ff0000;stroke-width:0.99999994000000003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000004000000020, 3.00000004000000020;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 14.362 + d="m 370.40555,482.21359 c -34.40952,37.45034 -2.57725,2.48534 -35.69881,39.49989" 14.363 + id="path11173" 14.364 + inkscape:connector-curvature="0" 14.365 + sodipodi:nodetypes="cc" /> 14.366 + <text 14.367 + xml:space="preserve" 14.368 + style="font-size:18.11628723000000100px;font-style:normal;font-weight:bold;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:#ff0000;font-family:Sans;-inkscape-font-specification:Sans Bold" 14.369 + x="254.37491" 14.370 + y="686.63239" 14.371 + id="text11175" 14.372 + sodipodi:linespacing="125%" 14.373 + transform="scale(1.3547877,0.73812303)"><tspan 14.374 + sodipodi:role="line" 14.375 + id="tspan11177" 14.376 + x="254.37491" 14.377 + y="686.63239">X</tspan></text> 14.378 + <path 14.379 + inkscape:connector-curvature="0" 14.380 + style="fill:none;stroke:#800000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 14.381 + d="m 258.91945,423.37498 c 58.04959,0 58.04959,0 58.04959,0" 14.382 + id="path11275" /> 14.383 + <path 14.384 + id="path11459" 14.385 + d="m 258.91945,523.37498 c 58.04959,0 58.04959,0 58.04959,0" 14.386 + style="fill:none;stroke:#800000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 14.387 + inkscape:connector-curvature="0" /> 14.388 + <g 14.389 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 14.390 + id="g11557" 14.391 + transform="translate(-26,122)"> 14.392 + <path 14.393 + inkscape:connector-curvature="0" 14.394 + id="path11559" 14.395 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 14.396 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> 14.397 + </g> 14.398 + <path 14.399 + style="fill:none;stroke:#000000;stroke-width:1.29999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.89999986, 3.89999986;stroke-dashoffset:0" 14.400 + d="m 352.92887,495.30966 c 0,24.40348 0,24.40348 0,24.40348" 14.401 + id="path11561" 14.402 + inkscape:connector-curvature="0" /> 14.403 + <text 14.404 + sodipodi:linespacing="100%" 14.405 + id="text11625" 14.406 + y="327.27441" 14.407 + x="374.7023" 14.408 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.409 + xml:space="preserve"><tspan 14.410 + y="327.27441" 14.411 + x="374.7023" 14.412 + sodipodi:role="line" 14.413 + id="tspan11627">Timeline B</tspan></text> 14.414 + <path 14.415 + inkscape:connector-curvature="0" 14.416 + style="fill:none;stroke:#800000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 14.417 + d="m 258.20925,323.37498 c 110.75976,0 110.75976,0 110.75976,0" 14.418 + id="path11629" /> 14.419 + <text 14.420 + xml:space="preserve" 14.421 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.422 + x="374.7023" 14.423 + y="285.27441" 14.424 + id="text11643" 14.425 + sodipodi:linespacing="100%"><tspan 14.426 + id="tspan11645" 14.427 + sodipodi:role="line" 14.428 + x="374.7023" 14.429 + y="285.27441">Timeline A</tspan></text> 14.430 + <path 14.431 + id="path11647" 14.432 + d="m 280.79847,281.37498 c 88.17054,0 88.17054,0 88.17054,0" 14.433 + style="fill:none;stroke:#422fac;stroke-width:1.79999983;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 14.434 + inkscape:connector-curvature="0" /> 14.435 + <text 14.436 + xml:space="preserve" 14.437 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.438 + x="289.94116" 14.439 + y="280.07288" 14.440 + id="text11653" 14.441 + sodipodi:linespacing="100%"><tspan 14.442 + style="font-size:10px;text-align:center;text-anchor:middle" 14.443 + id="tspan11655" 14.444 + sodipodi:role="line" 14.445 + x="289.94116" 14.446 + y="280.07288">write</tspan></text> 14.447 + <text 14.448 + sodipodi:linespacing="100%" 14.449 + id="text11657" 14.450 + y="332.07288" 14.451 + x="299.94116" 14.452 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.453 + xml:space="preserve"><tspan 14.454 + y="332.07288" 14.455 + x="299.94116" 14.456 + sodipodi:role="line" 14.457 + id="tspan11659" 14.458 + style="font-size:10px;text-align:center;text-anchor:middle">read</tspan></text> 14.459 + <text 14.460 + xml:space="preserve" 14.461 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.462 + x="319.94116" 14.463 + y="280.07288" 14.464 + id="text11663" 14.465 + sodipodi:linespacing="100%"><tspan 14.466 + style="font-size:10px;text-align:center;text-anchor:middle" 14.467 + id="tspan11665" 14.468 + sodipodi:role="line" 14.469 + x="319.94116" 14.470 + y="280.07288">read</tspan></text> 14.471 + <text 14.472 + sodipodi:linespacing="100%" 14.473 + id="text11667" 14.474 + y="332.07288" 14.475 + x="331.94116" 14.476 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.477 + xml:space="preserve"><tspan 14.478 + y="332.07288" 14.479 + x="331.94116" 14.480 + sodipodi:role="line" 14.481 + id="tspan11669" 14.482 + style="font-size:10px;text-align:center;text-anchor:middle">write</tspan></text> 14.483 + <path 14.484 + id="path3158" 14.485 + d="m 278.54842,303.37498 c 74.42058,0 74.42058,0 74.42058,0" 14.486 + style="fill:#000000;stroke:#000000;stroke-width:1.79999994999999990;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:5.39999986000000030, 5.39999986000000030;marker-end:url(#Arrow2Mend);marker-start:url(#Arrow2Mstart);stroke-dashoffset:0" 14.487 + inkscape:connector-curvature="0" /> 14.488 + <text 14.489 + xml:space="preserve" 14.490 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.491 + x="315.94116" 14.492 + y="300.07288" 14.493 + id="text4380" 14.494 + sodipodi:linespacing="100%"><tspan 14.495 + style="font-size:10px;text-align:center;text-anchor:middle" 14.496 + id="tspan4382" 14.497 + sodipodi:role="line" 14.498 + x="315.94116" 14.499 + y="300.07288">shift relative to each other</tspan></text> 14.500 + </g> 14.501 +</svg>
15.1 Binary file 0__Papers/PRT/PRT__formal_def/figures/PR__timeline_tie_point_ordering.pdf has changed
16.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 16.2 +++ b/0__Papers/PRT/PRT__formal_def/figures/PR__timeline_tie_point_ordering.svg Sat Aug 03 19:24:22 2013 -0700 16.3 @@ -0,0 +1,369 @@ 16.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 16.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 16.6 + 16.7 +<svg 16.8 + xmlns:dc="http://purl.org/dc/elements/1.1/" 16.9 + xmlns:cc="http://creativecommons.org/ns#" 16.10 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 16.11 + xmlns:svg="http://www.w3.org/2000/svg" 16.12 + xmlns="http://www.w3.org/2000/svg" 16.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 16.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 16.15 + width="744.09448819" 16.16 + height="1052.3622047" 16.17 + id="svg2" 16.18 + sodipodi:version="0.32" 16.19 + inkscape:version="0.48.2 r9819" 16.20 + sodipodi:docname="PR__timeline_tie_point_ordering.svg" 16.21 + inkscape:output_extension="org.inkscape.output.svg.inkscape" 16.22 + version="1.1"> 16.23 + <defs 16.24 + id="defs4"> 16.25 + <marker 16.26 + inkscape:stockid="Arrow2Mend" 16.27 + orient="auto" 16.28 + refY="0.0" 16.29 + refX="0.0" 16.30 + id="Arrow2Mend" 16.31 + style="overflow:visible;"> 16.32 + <path 16.33 + id="path4008" 16.34 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 16.35 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 16.36 + transform="scale(0.6) rotate(180) translate(0,0)" /> 16.37 + </marker> 16.38 + <inkscape:perspective 16.39 + sodipodi:type="inkscape:persp3d" 16.40 + inkscape:vp_x="0 : 526.18109 : 1" 16.41 + inkscape:vp_y="0 : 1000 : 0" 16.42 + inkscape:vp_z="744.09448 : 526.18109 : 1" 16.43 + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" 16.44 + id="perspective10" /> 16.45 + <inkscape:perspective 16.46 + id="perspective11923" 16.47 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 16.48 + inkscape:vp_z="1 : 0.5 : 1" 16.49 + inkscape:vp_y="0 : 1000 : 0" 16.50 + inkscape:vp_x="0 : 0.5 : 1" 16.51 + sodipodi:type="inkscape:persp3d" /> 16.52 + </defs> 16.53 + <sodipodi:namedview 16.54 + id="base" 16.55 + pagecolor="#ffffff" 16.56 + bordercolor="#666666" 16.57 + borderopacity="1.0" 16.58 + gridtolerance="10000" 16.59 + guidetolerance="10" 16.60 + objecttolerance="10" 16.61 + inkscape:pageopacity="0.0" 16.62 + inkscape:pageshadow="2" 16.63 + inkscape:zoom="1.3364318" 16.64 + inkscape:cx="214.9176" 16.65 + inkscape:cy="550.40126" 16.66 + inkscape:document-units="px" 16.67 + inkscape:current-layer="layer1" 16.68 + showgrid="false" 16.69 + inkscape:window-width="1317" 16.70 + inkscape:window-height="832" 16.71 + inkscape:window-x="7" 16.72 + inkscape:window-y="0" 16.73 + inkscape:window-maximized="0" /> 16.74 + <metadata 16.75 + id="metadata7"> 16.76 + <rdf:RDF> 16.77 + <cc:Work 16.78 + rdf:about=""> 16.79 + <dc:format>image/svg+xml</dc:format> 16.80 + <dc:type 16.81 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 16.82 + <dc:title /> 16.83 + </cc:Work> 16.84 + </rdf:RDF> 16.85 + </metadata> 16.86 + <g 16.87 + inkscape:label="Layer 1" 16.88 + inkscape:groupmode="layer" 16.89 + id="layer1"> 16.90 + <path 16.91 + inkscape:connector-curvature="0" 16.92 + style="fill:#800000;stroke:#800000;stroke-width:1.80000007;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 16.93 + d="m 246.98465,423.37498 c 69.82336,0 69.82336,0 69.82336,0" 16.94 + id="path10381" /> 16.95 + <g 16.96 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 16.97 + id="g10393" 16.98 + transform="translate(-60,22)"> 16.99 + <path 16.100 + inkscape:connector-curvature="0" 16.101 + id="path10395" 16.102 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 16.103 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> 16.104 + <text 16.105 + xml:space="preserve" 16.106 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 16.107 + x="378.7023" 16.108 + y="390.52615" 16.109 + id="text10397" 16.110 + sodipodi:linespacing="100%"><tspan 16.111 + style="font-size:9px;text-align:center;text-anchor:middle" 16.112 + id="tspan10403" 16.113 + sodipodi:role="line" 16.114 + x="378.7023" 16.115 + y="390.52615">Tied Point</tspan></text> 16.116 + </g> 16.117 + <text 16.118 + xml:space="preserve" 16.119 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 16.120 + x="352.7023" 16.121 + y="427.27441" 16.122 + id="text10405" 16.123 + sodipodi:linespacing="100%"><tspan 16.124 + id="tspan10407" 16.125 + sodipodi:role="line" 16.126 + x="352.7023" 16.127 + y="427.27441">Timeline B</tspan></text> 16.128 + <path 16.129 + id="path10409" 16.130 + d="m 320.08408,423.37498 c 27.45405,0 27.45405,0 27.45405,0" 16.131 + style="fill:none;stroke:#800000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 16.132 + inkscape:connector-curvature="0" /> 16.133 + <path 16.134 + id="path10411" 16.135 + d="m 283.92204,381.37498 c 33.06652,0 33.06652,0 33.06652,0" 16.136 + style="fill:none;stroke:#422fac;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 16.137 + inkscape:connector-curvature="0" /> 16.138 + <g 16.139 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 16.140 + transform="translate(-60,-20)" 16.141 + id="g10423"> 16.142 + <path 16.143 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" 16.144 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 16.145 + id="path10425" 16.146 + inkscape:connector-curvature="0" /> 16.147 + <text 16.148 + sodipodi:linespacing="100%" 16.149 + id="text10427" 16.150 + y="388.52615" 16.151 + x="378.7023" 16.152 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 16.153 + xml:space="preserve"><tspan 16.154 + y="388.52615" 16.155 + x="378.7023" 16.156 + sodipodi:role="line" 16.157 + id="tspan10433" 16.158 + style="font-size:9px;text-align:center;text-anchor:middle">Tied Point</tspan></text> 16.159 + </g> 16.160 + <text 16.161 + sodipodi:linespacing="100%" 16.162 + id="text10435" 16.163 + y="385.27441" 16.164 + x="352.7023" 16.165 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 16.166 + xml:space="preserve"><tspan 16.167 + y="385.27441" 16.168 + x="352.7023" 16.169 + sodipodi:role="line" 16.170 + id="tspan10437">Timeline A</tspan></text> 16.171 + <path 16.172 + inkscape:connector-curvature="0" 16.173 + style="fill:none;stroke:#422fac;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 16.174 + d="m 320.08408,381.37498 c 27.45405,0 27.45405,0 27.45405,0" 16.175 + id="path10439" /> 16.176 + <path 16.177 + style="fill:none;stroke:#000000;stroke-width:1.29999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.89999986,3.89999986;stroke-dashoffset:0" 16.178 + d="m 318.92887,395.30966 c 0,24.40348 0,24.40348 0,24.40348" 16.179 + id="path10425-2" 16.180 + inkscape:connector-curvature="0" /> 16.181 + <path 16.182 + inkscape:connector-curvature="0" 16.183 + style="fill:#800000;stroke:#800000;stroke-width:1.80000007;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 16.184 + d="m 196.98465,549.37498 c 69.82336,0 69.82336,0 69.82336,0" 16.185 + id="path10981" /> 16.186 + <g 16.187 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 16.188 + id="g10983" 16.189 + transform="translate(-32,148)"> 16.190 + <path 16.191 + inkscape:connector-curvature="0" 16.192 + id="path10985" 16.193 + d="m 298.82881,392.82004 c 0,19.38279 0,19.38279 0,19.38279" 16.194 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> 16.195 + </g> 16.196 + <g 16.197 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 16.198 + id="g10993" 16.199 + transform="translate(-60,148)"> 16.200 + <path 16.201 + inkscape:connector-curvature="0" 16.202 + id="path10995" 16.203 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 16.204 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> 16.205 + </g> 16.206 + <text 16.207 + xml:space="preserve" 16.208 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 16.209 + x="352.7023" 16.210 + y="553.27441" 16.211 + id="text11005" 16.212 + sodipodi:linespacing="100%"><tspan 16.213 + id="tspan11007" 16.214 + sodipodi:role="line" 16.215 + x="352.7023" 16.216 + y="553.27441">Timeline B</tspan></text> 16.217 + <path 16.218 + id="path11009" 16.219 + d="m 320.08408,549.37498 c 27.45405,0 27.45405,0 27.45405,0" 16.220 + style="fill:none;stroke:#800000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 16.221 + inkscape:connector-curvature="0" /> 16.222 + <path 16.223 + id="path11011" 16.224 + d="m 195.92204,489.37498 c 33.06652,0 33.06652,0 33.06652,0" 16.225 + style="fill:none;stroke:#422fac;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 16.226 + inkscape:connector-curvature="0" /> 16.227 + <g 16.228 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 16.229 + transform="translate(-70,88)" 16.230 + id="g11013"> 16.231 + <path 16.232 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" 16.233 + d="m 298.82881,392.82004 c 0,19.38279 0,19.38279 0,19.38279" 16.234 + id="path11015" 16.235 + inkscape:connector-curvature="0" /> 16.236 + <text 16.237 + sodipodi:linespacing="100%" 16.238 + id="text11017" 16.239 + y="376.52615" 16.240 + x="298.7023" 16.241 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 16.242 + xml:space="preserve"><tspan 16.243 + y="376.52615" 16.244 + x="298.7023" 16.245 + id="tspan11019" 16.246 + sodipodi:role="line" 16.247 + style="font-size:10px;text-align:center;text-anchor:middle">Suspend</tspan><tspan 16.248 + y="385.74353" 16.249 + x="298.7023" 16.250 + sodipodi:role="line" 16.251 + id="tspan11021" 16.252 + style="font-size:9px;text-align:center;text-anchor:middle">(Point 1.S)</tspan></text> 16.253 + </g> 16.254 + <g 16.255 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 16.256 + transform="translate(-60,88)" 16.257 + id="g11023"> 16.258 + <path 16.259 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" 16.260 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 16.261 + id="path11025" 16.262 + inkscape:connector-curvature="0" /> 16.263 + <text 16.264 + sodipodi:linespacing="100%" 16.265 + id="text11027" 16.266 + y="376.52615" 16.267 + x="378.7023" 16.268 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 16.269 + xml:space="preserve"><tspan 16.270 + y="376.52615" 16.271 + x="380.20621" 16.272 + id="tspan11029" 16.273 + sodipodi:role="line" 16.274 + style="font-size:9px;text-align:center;text-anchor:middle"><tspan 16.275 + style="font-size:10px" 16.276 + id="tspan11031">Resume </tspan></tspan><tspan 16.277 + y="385.74353" 16.278 + x="378.7023" 16.279 + sodipodi:role="line" 16.280 + id="tspan11033" 16.281 + style="font-size:9px;text-align:center;text-anchor:middle">(Point 1.R)</tspan></text> 16.282 + </g> 16.283 + <text 16.284 + sodipodi:linespacing="100%" 16.285 + id="text11035" 16.286 + y="493.27441" 16.287 + x="352.7023" 16.288 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 16.289 + xml:space="preserve"><tspan 16.290 + y="493.27441" 16.291 + x="352.7023" 16.292 + sodipodi:role="line" 16.293 + id="tspan11037">Timeline A</tspan></text> 16.294 + <path 16.295 + inkscape:connector-curvature="0" 16.296 + style="fill:none;stroke:#422fac;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 16.297 + d="m 320.08408,489.37498 c 27.45405,0 27.45405,0 27.45405,0" 16.298 + id="path11039" /> 16.299 + <path 16.300 + sodipodi:nodetypes="cc" 16.301 + inkscape:connector-curvature="0" 16.302 + id="path11041" 16.303 + d="m 248.40878,545.16363 c 79.41657,-49.15176 5.94823,-3.26189 82.39224,-51.8417" 16.304 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999999, 2.99999999;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 16.305 + <path 16.306 + style="fill:#ff0000;stroke:#ff0000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000003, 3.00000003;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 16.307 + d="m 333.77257,501.82974 c -70.11936,42.79661 -5.25188,2.84014 -72.74667,45.13875" 16.308 + id="path11043" 16.309 + inkscape:connector-curvature="0" 16.310 + sodipodi:nodetypes="cc" /> 16.311 + <text 16.312 + xml:space="preserve" 16.313 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 16.314 + x="-20.52177" 16.315 + y="592.72888" 16.316 + id="text11049" 16.317 + sodipodi:linespacing="100%" 16.318 + transform="matrix(0.85476126,-0.51902138,0.51902138,0.85476126,0,0)"><tspan 16.319 + id="tspan11051" 16.320 + sodipodi:role="line" 16.321 + x="-20.52177" 16.322 + y="592.72888">visible</tspan></text> 16.323 + <text 16.324 + transform="matrix(0.85476126,-0.51902138,0.51902138,0.85476126,0,0)" 16.325 + sodipodi:linespacing="100%" 16.326 + id="text11053" 16.327 + y="609.94751" 16.328 + x="-7.578732" 16.329 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 16.330 + xml:space="preserve"><tspan 16.331 + y="609.94751" 16.332 + x="-7.578732" 16.333 + sodipodi:role="line" 16.334 + id="tspan11055">NOT visible</tspan></text> 16.335 + <path 16.336 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000008, 3.00000008;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 16.337 + d="m 319.48246,543.42226 c -109.48644,-45.60627 -8.20044,-3.02659 -113.5888,-48.10218" 16.338 + id="path11057" 16.339 + inkscape:connector-curvature="0" 16.340 + sodipodi:nodetypes="cc" /> 16.341 + <path 16.342 + sodipodi:nodetypes="cc" 16.343 + inkscape:connector-curvature="0" 16.344 + id="path11059" 16.345 + d="m 218.69167,493.82968 c 107.30304,43.503 8.03691,2.88702 111.32359,45.8838" 16.346 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000006, 3.00000006;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 16.347 + <text 16.348 + transform="matrix(0.92037595,0.39103467,-0.39103467,0.92037595,0,0)" 16.349 + sodipodi:linespacing="100%" 16.350 + id="text11061" 16.351 + y="363.98227" 16.352 + x="416.02991" 16.353 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 16.354 + xml:space="preserve"><tspan 16.355 + y="363.98227" 16.356 + x="416.02991" 16.357 + sodipodi:role="line" 16.358 + id="tspan11063">visible</tspan></text> 16.359 + <text 16.360 + xml:space="preserve" 16.361 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 16.362 + x="374.53223" 16.363 + y="404.16913" 16.364 + id="text11065" 16.365 + sodipodi:linespacing="100%" 16.366 + transform="matrix(0.93857354,0.34507928,-0.34507928,0.93857354,0,0)"><tspan 16.367 + id="tspan11067" 16.368 + sodipodi:role="line" 16.369 + x="374.53223" 16.370 + y="404.16913">NOT visible</tspan></text> 16.371 + </g> 16.372 +</svg>
17.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 17.2 +++ b/0__Papers/PRT/PRT__formal_def/figures/PR__timeline_tie_point_ordering_2.svg Sat Aug 03 19:24:22 2013 -0700 17.3 @@ -0,0 +1,324 @@ 17.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 17.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 17.6 + 17.7 +<svg 17.8 + xmlns:dc="http://purl.org/dc/elements/1.1/" 17.9 + xmlns:cc="http://creativecommons.org/ns#" 17.10 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 17.11 + xmlns:svg="http://www.w3.org/2000/svg" 17.12 + xmlns="http://www.w3.org/2000/svg" 17.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 17.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 17.15 + width="744.09448819" 17.16 + height="1052.3622047" 17.17 + id="svg2" 17.18 + sodipodi:version="0.32" 17.19 + inkscape:version="0.48.2 r9819" 17.20 + sodipodi:docname="PR__timeline_tie_point_ordering.svg" 17.21 + inkscape:output_extension="org.inkscape.output.svg.inkscape" 17.22 + version="1.1"> 17.23 + <defs 17.24 + id="defs4"> 17.25 + <marker 17.26 + inkscape:stockid="Arrow2Mend" 17.27 + orient="auto" 17.28 + refY="0.0" 17.29 + refX="0.0" 17.30 + id="Arrow2Mend" 17.31 + style="overflow:visible;"> 17.32 + <path 17.33 + id="path4008" 17.34 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 17.35 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 17.36 + transform="scale(0.6) rotate(180) translate(0,0)" /> 17.37 + </marker> 17.38 + <inkscape:perspective 17.39 + sodipodi:type="inkscape:persp3d" 17.40 + inkscape:vp_x="0 : 526.18109 : 1" 17.41 + inkscape:vp_y="0 : 1000 : 0" 17.42 + inkscape:vp_z="744.09448 : 526.18109 : 1" 17.43 + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" 17.44 + id="perspective10" /> 17.45 + <inkscape:perspective 17.46 + id="perspective11923" 17.47 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 17.48 + inkscape:vp_z="1 : 0.5 : 1" 17.49 + inkscape:vp_y="0 : 1000 : 0" 17.50 + inkscape:vp_x="0 : 0.5 : 1" 17.51 + sodipodi:type="inkscape:persp3d" /> 17.52 + </defs> 17.53 + <sodipodi:namedview 17.54 + id="base" 17.55 + pagecolor="#ffffff" 17.56 + bordercolor="#666666" 17.57 + borderopacity="1.0" 17.58 + gridtolerance="10000" 17.59 + guidetolerance="10" 17.60 + objecttolerance="10" 17.61 + inkscape:pageopacity="0.0" 17.62 + inkscape:pageshadow="2" 17.63 + inkscape:zoom="1.3364318" 17.64 + inkscape:cx="214.9176" 17.65 + inkscape:cy="550.40126" 17.66 + inkscape:document-units="px" 17.67 + inkscape:current-layer="g4513" 17.68 + showgrid="false" 17.69 + inkscape:window-width="1317" 17.70 + inkscape:window-height="832" 17.71 + inkscape:window-x="7" 17.72 + inkscape:window-y="0" 17.73 + inkscape:window-maximized="0" /> 17.74 + <metadata 17.75 + id="metadata7"> 17.76 + <rdf:RDF> 17.77 + <cc:Work 17.78 + rdf:about=""> 17.79 + <dc:format>image/svg+xml</dc:format> 17.80 + <dc:type 17.81 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 17.82 + <dc:title></dc:title> 17.83 + </cc:Work> 17.84 + </rdf:RDF> 17.85 + </metadata> 17.86 + <g 17.87 + inkscape:label="Layer 1" 17.88 + inkscape:groupmode="layer" 17.89 + id="layer1"> 17.90 + <path 17.91 + inkscape:connector-curvature="0" 17.92 + style="fill:#800000;stroke:#800000;stroke-width:1.80000007;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 17.93 + d="m 193.90177,549.37498 c 80.90624,0 80.90624,0 80.90624,0" 17.94 + id="path10981" /> 17.95 + <g 17.96 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 17.97 + id="g10983" 17.98 + transform="translate(-24,148)"> 17.99 + <path 17.100 + inkscape:connector-curvature="0" 17.101 + id="path10985" 17.102 + d="m 298.82881,392.82004 c 0,19.38279 0,19.38279 0,19.38279" 17.103 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> 17.104 + </g> 17.105 + <g 17.106 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 17.107 + id="g10993" 17.108 + transform="translate(-38,148)"> 17.109 + <path 17.110 + inkscape:connector-curvature="0" 17.111 + id="path10995" 17.112 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 17.113 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> 17.114 + </g> 17.115 + <text 17.116 + xml:space="preserve" 17.117 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 17.118 + x="374.7023" 17.119 + y="551.79181" 17.120 + id="text11005" 17.121 + sodipodi:linespacing="100%"><tspan 17.122 + id="tspan11007" 17.123 + sodipodi:role="line" 17.124 + x="374.7023" 17.125 + y="551.79181">Timeline B</tspan></text> 17.126 + <path 17.127 + id="path11009" 17.128 + d="m 342.08408,549.37498 c 27.45405,0 27.45405,0 27.45405,0" 17.129 + style="fill:none;stroke:#800000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 17.130 + inkscape:connector-curvature="0" /> 17.131 + <path 17.132 + id="path11011" 17.133 + d="m 195.92204,489.37498 c 33.06652,0 33.06652,0 33.06652,0" 17.134 + style="fill:none;stroke:#422fac;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 17.135 + inkscape:connector-curvature="0" /> 17.136 + <g 17.137 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 17.138 + transform="translate(-70,88)" 17.139 + id="g11013"> 17.140 + <path 17.141 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" 17.142 + d="m 298.82881,392.82004 c 0,19.38279 0,19.38279 0,19.38279" 17.143 + id="path11015" 17.144 + inkscape:connector-curvature="0" /> 17.145 + <text 17.146 + sodipodi:linespacing="100%" 17.147 + id="text11017" 17.148 + y="376.52615" 17.149 + x="298.7023" 17.150 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 17.151 + xml:space="preserve"><tspan 17.152 + y="376.52615" 17.153 + x="298.7023" 17.154 + id="tspan11019" 17.155 + sodipodi:role="line" 17.156 + style="font-size:10px;text-align:center;text-anchor:middle">Suspend</tspan><tspan 17.157 + y="385.74353" 17.158 + x="298.7023" 17.159 + sodipodi:role="line" 17.160 + id="tspan11021" 17.161 + style="font-size:9px;text-align:center;text-anchor:middle">(Point A1.S)</tspan></text> 17.162 + </g> 17.163 + <g 17.164 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 17.165 + transform="translate(-60,88)" 17.166 + id="g11023"> 17.167 + <path 17.168 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" 17.169 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 17.170 + id="path11025" 17.171 + inkscape:connector-curvature="0" /> 17.172 + <text 17.173 + sodipodi:linespacing="100%" 17.174 + id="text11027" 17.175 + y="376.52615" 17.176 + x="378.7023" 17.177 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 17.178 + xml:space="preserve"><tspan 17.179 + y="376.52615" 17.180 + x="380.20621" 17.181 + id="tspan11029" 17.182 + sodipodi:role="line" 17.183 + style="font-size:9px;text-align:center;text-anchor:middle"><tspan 17.184 + style="font-size:10px" 17.185 + id="tspan11031">Resume </tspan></tspan><tspan 17.186 + y="385.74353" 17.187 + x="378.7023" 17.188 + sodipodi:role="line" 17.189 + id="tspan11033" 17.190 + style="font-size:9px;text-align:center;text-anchor:middle">(Point A1.R)</tspan></text> 17.191 + </g> 17.192 + <text 17.193 + sodipodi:linespacing="100%" 17.194 + id="text11035" 17.195 + y="493.27441" 17.196 + x="376.7023" 17.197 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 17.198 + xml:space="preserve"><tspan 17.199 + y="493.27441" 17.200 + x="376.7023" 17.201 + sodipodi:role="line" 17.202 + id="tspan11037">Timeline A</tspan></text> 17.203 + <path 17.204 + inkscape:connector-curvature="0" 17.205 + style="fill:none;stroke:#422fac;stroke-width:1.80000007;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 17.206 + d="m 320.08409,489.37498 c 50.17059,0 50.17059,0 50.17059,0" 17.207 + id="path11039" /> 17.208 + <path 17.209 + sodipodi:nodetypes="cc" 17.210 + inkscape:connector-curvature="0" 17.211 + id="path11041" 17.212 + d="m 248.40878,545.16363 c 79.41657,-49.15176 5.94823,-3.26189 82.39224,-51.8417" 17.213 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999999, 2.99999999;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 17.214 + <path 17.215 + style="fill:#ff0000;stroke:#ff0000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000003, 3.00000003;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 17.216 + d="m 333.77257,501.82974 c -70.11936,42.79661 -5.25188,2.84014 -72.74667,45.13875" 17.217 + id="path11043" 17.218 + inkscape:connector-curvature="0" 17.219 + sodipodi:nodetypes="cc" /> 17.220 + <text 17.221 + xml:space="preserve" 17.222 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 17.223 + x="-20.52177" 17.224 + y="592.72888" 17.225 + id="text11049" 17.226 + sodipodi:linespacing="100%" 17.227 + transform="matrix(0.85476126,-0.51902138,0.51902138,0.85476126,0,0)"><tspan 17.228 + id="tspan11051" 17.229 + sodipodi:role="line" 17.230 + x="-20.52177" 17.231 + y="592.72888">visible</tspan></text> 17.232 + <text 17.233 + transform="matrix(0.85476126,-0.51902138,0.51902138,0.85476126,0,0)" 17.234 + sodipodi:linespacing="100%" 17.235 + id="text11053" 17.236 + y="609.94751" 17.237 + x="-7.578732" 17.238 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 17.239 + xml:space="preserve"><tspan 17.240 + y="609.94751" 17.241 + x="-7.578732" 17.242 + sodipodi:role="line" 17.243 + id="tspan11055">NOT visible</tspan></text> 17.244 + <path 17.245 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.0000001, 3.0000001;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 17.246 + d="M 344.17507,545.66706 C 211.03802,497.93301 334.20322,542.49927 206.0495,495.32066" 17.247 + id="path11057" 17.248 + inkscape:connector-curvature="0" 17.249 + sodipodi:nodetypes="cc" /> 17.250 + <path 17.251 + sodipodi:nodetypes="cc" 17.252 + inkscape:connector-curvature="0" 17.253 + id="path11059" 17.254 + d="m 218.69167,493.82967 c 130.23301,47.05017 9.75435,3.12242 135.11273,49.6251" 17.255 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000003, 3.00000003;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 17.256 + <text 17.257 + transform="matrix(0.92037595,0.39103467,-0.39103467,0.92037595,0,0)" 17.258 + sodipodi:linespacing="100%" 17.259 + id="text11061" 17.260 + y="363.98227" 17.261 + x="416.02991" 17.262 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 17.263 + xml:space="preserve"><tspan 17.264 + y="363.98227" 17.265 + x="416.02991" 17.266 + sodipodi:role="line" 17.267 + id="tspan11063">visible</tspan></text> 17.268 + <text 17.269 + xml:space="preserve" 17.270 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 17.271 + x="374.53223" 17.272 + y="404.16913" 17.273 + id="text11065" 17.274 + sodipodi:linespacing="100%" 17.275 + transform="matrix(0.93857354,0.34507928,-0.34507928,0.93857354,0,0)"><tspan 17.276 + id="tspan11067" 17.277 + sodipodi:role="line" 17.278 + x="374.53223" 17.279 + y="404.16913">NOT visible</tspan></text> 17.280 + <g 17.281 + id="g4503" 17.282 + transform="translate(-22,190)" 17.283 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none"> 17.284 + <text 17.285 + xml:space="preserve" 17.286 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 17.287 + x="298.7023" 17.288 + y="376.52615" 17.289 + id="text4507" 17.290 + sodipodi:linespacing="100%"><tspan 17.291 + style="font-size:10px;text-align:center;text-anchor:middle" 17.292 + sodipodi:role="line" 17.293 + id="tspan4509" 17.294 + x="298.7023" 17.295 + y="376.52615">Suspend</tspan><tspan 17.296 + style="font-size:9px;text-align:center;text-anchor:middle" 17.297 + id="tspan4511" 17.298 + sodipodi:role="line" 17.299 + x="298.7023" 17.300 + y="385.74353">(Point B1.S)</tspan></text> 17.301 + </g> 17.302 + <g 17.303 + id="g4513" 17.304 + transform="translate(-38,190)" 17.305 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none"> 17.306 + <text 17.307 + xml:space="preserve" 17.308 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 17.309 + x="378.7023" 17.310 + y="376.52615" 17.311 + id="text4517" 17.312 + sodipodi:linespacing="100%"><tspan 17.313 + style="font-size:9px;text-align:center;text-anchor:middle" 17.314 + sodipodi:role="line" 17.315 + id="tspan4519" 17.316 + x="380.20621" 17.317 + y="376.52615"><tspan 17.318 + id="tspan4521" 17.319 + style="font-size:10px">Resume </tspan></tspan><tspan 17.320 + style="font-size:9px;text-align:center;text-anchor:middle" 17.321 + id="tspan4523" 17.322 + sodipodi:role="line" 17.323 + x="378.7023" 17.324 + y="385.74353">(Point B1.R)</tspan></text> 17.325 + </g> 17.326 + </g> 17.327 +</svg>
18.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 18.2 +++ b/0__Papers/PRT/PRT__formal_def/figures/PR__what_runtime_does.svg Sat Aug 03 19:24:22 2013 -0700 18.3 @@ -0,0 +1,2211 @@ 18.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 18.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 18.6 + 18.7 +<svg 18.8 + xmlns:dc="http://purl.org/dc/elements/1.1/" 18.9 + xmlns:cc="http://creativecommons.org/ns#" 18.10 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 18.11 + xmlns:svg="http://www.w3.org/2000/svg" 18.12 + xmlns="http://www.w3.org/2000/svg" 18.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 18.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 18.15 + width="744.09448819" 18.16 + height="1052.3622047" 18.17 + id="svg2" 18.18 + sodipodi:version="0.32" 18.19 + inkscape:version="0.48.2 r9819" 18.20 + sodipodi:docname="PR__what_runtime_does.svg" 18.21 + inkscape:output_extension="org.inkscape.output.svg.inkscape" 18.22 + version="1.1"> 18.23 + <defs 18.24 + id="defs4"> 18.25 + <marker 18.26 + inkscape:stockid="Arrow2Mstart" 18.27 + orient="auto" 18.28 + refY="0.0" 18.29 + refX="0.0" 18.30 + id="Arrow2Mstart" 18.31 + style="overflow:visible"> 18.32 + <path 18.33 + id="path4534" 18.34 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round" 18.35 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 18.36 + transform="scale(0.6) translate(0,0)" /> 18.37 + </marker> 18.38 + <marker 18.39 + inkscape:stockid="Arrow2Mend" 18.40 + orient="auto" 18.41 + refY="0.0" 18.42 + refX="0.0" 18.43 + id="Arrow2Mend" 18.44 + style="overflow:visible;"> 18.45 + <path 18.46 + id="path4008" 18.47 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 18.48 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 18.49 + transform="scale(0.6) rotate(180) translate(0,0)" /> 18.50 + </marker> 18.51 + <inkscape:perspective 18.52 + sodipodi:type="inkscape:persp3d" 18.53 + inkscape:vp_x="0 : 526.18109 : 1" 18.54 + inkscape:vp_y="0 : 1000 : 0" 18.55 + inkscape:vp_z="744.09448 : 526.18109 : 1" 18.56 + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" 18.57 + id="perspective10" /> 18.58 + <inkscape:perspective 18.59 + id="perspective12172" 18.60 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 18.61 + inkscape:vp_z="1 : 0.5 : 1" 18.62 + inkscape:vp_y="0 : 1000 : 0" 18.63 + inkscape:vp_x="0 : 0.5 : 1" 18.64 + sodipodi:type="inkscape:persp3d" /> 18.65 + <inkscape:perspective 18.66 + id="perspective12937" 18.67 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 18.68 + inkscape:vp_z="1 : 0.5 : 1" 18.69 + inkscape:vp_y="0 : 1000 : 0" 18.70 + inkscape:vp_x="0 : 0.5 : 1" 18.71 + sodipodi:type="inkscape:persp3d" /> 18.72 + </defs> 18.73 + <sodipodi:namedview 18.74 + id="base" 18.75 + pagecolor="#ffffff" 18.76 + bordercolor="#666666" 18.77 + borderopacity="1.0" 18.78 + gridtolerance="10000" 18.79 + guidetolerance="10" 18.80 + objecttolerance="10" 18.81 + inkscape:pageopacity="0.0" 18.82 + inkscape:pageshadow="2" 18.83 + inkscape:zoom="1.05" 18.84 + inkscape:cx="142.1644" 18.85 + inkscape:cy="472.51234" 18.86 + inkscape:document-units="px" 18.87 + inkscape:current-layer="layer1" 18.88 + showgrid="false" 18.89 + inkscape:window-width="1600" 18.90 + inkscape:window-height="848" 18.91 + inkscape:window-x="-8" 18.92 + inkscape:window-y="-8" 18.93 + inkscape:window-maximized="1" /> 18.94 + <metadata 18.95 + id="metadata7"> 18.96 + <rdf:RDF> 18.97 + <cc:Work 18.98 + rdf:about=""> 18.99 + <dc:format>image/svg+xml</dc:format> 18.100 + <dc:type 18.101 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 18.102 + <dc:title></dc:title> 18.103 + </cc:Work> 18.104 + </rdf:RDF> 18.105 + </metadata> 18.106 + <g 18.107 + inkscape:label="Layer 1" 18.108 + inkscape:groupmode="layer" 18.109 + id="layer1"> 18.110 + <text 18.111 + sodipodi:linespacing="100%" 18.112 + id="text12979" 18.113 + y="353.76575" 18.114 + x="326.92542" 18.115 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.116 + xml:space="preserve"><tspan 18.117 + y="353.76575" 18.118 + x="326.92542" 18.119 + id="tspan12981" 18.120 + sodipodi:role="line" 18.121 + style="text-align:center;text-anchor:middle">Master</tspan><tspan 18.122 + y="362.20053" 18.123 + x="326.92542" 18.124 + sodipodi:role="line" 18.125 + id="tspan3291" 18.126 + style="font-size:8px;text-align:center;text-anchor:middle">(runtime system)</tspan><tspan 18.127 + y="370.20053" 18.128 + x="326.92542" 18.129 + sodipodi:role="line" 18.130 + style="font-size:8px;text-align:center;text-anchor:middle" 18.131 + id="tspan8409">on core 1</tspan></text> 18.132 + <g 18.133 + id="g9336" 18.134 + transform="translate(44.002789,-48)"> 18.135 + <rect 18.136 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 18.137 + id="rect3293" 18.138 + width="65.276405" 18.139 + height="37.165791" 18.140 + x="346.40247" 18.141 + y="389.58255" /> 18.142 + <text 18.143 + sodipodi:linespacing="100%" 18.144 + id="text3295" 18.145 + y="400.15268" 18.146 + x="379.00162" 18.147 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.148 + xml:space="preserve"><tspan 18.149 + id="tspan3301" 18.150 + y="400.15268" 18.151 + x="379.00162" 18.152 + sodipodi:role="line" 18.153 + style="text-align:center;text-anchor:middle;fill:#008000">Seed VP</tspan><tspan 18.154 + y="408.58746" 18.155 + x="379.00162" 18.156 + sodipodi:role="line" 18.157 + style="font-size:8px;text-align:center;text-anchor:middle;fill:#008000" 18.158 + id="tspan9389">(created at</tspan><tspan 18.159 + y="416.58746" 18.160 + x="379.00162" 18.161 + sodipodi:role="line" 18.162 + style="font-size:8px;text-align:center;text-anchor:middle;fill:#008000" 18.163 + id="tspan9391">app startup,</tspan><tspan 18.164 + y="424.58746" 18.165 + x="379.00162" 18.166 + sodipodi:role="line" 18.167 + style="font-size:8px;text-align:center;text-anchor:middle;fill:#008000" 18.168 + id="tspan9744">on core 1)</tspan></text> 18.169 + </g> 18.170 + <text 18.171 + xml:space="preserve" 18.172 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.173 + x="517.16797" 18.174 + y="307.42465" 18.175 + id="text3318-1" 18.176 + sodipodi:linespacing="100%"><tspan 18.177 + style="text-align:center;text-anchor:middle;fill:#008000" 18.178 + sodipodi:role="line" 18.179 + x="517.16797" 18.180 + y="307.42465" 18.181 + id="tspan3322-5">Application Code</tspan></text> 18.182 + <text 18.183 + sodipodi:linespacing="100%" 18.184 + id="text3376" 18.185 + y="379.42465" 18.186 + x="517.16797" 18.187 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.188 + xml:space="preserve"><tspan 18.189 + id="tspan3378" 18.190 + y="379.42465" 18.191 + x="517.16797" 18.192 + sodipodi:role="line" 18.193 + style="text-align:center;text-anchor:middle;fill:#008000">Seed_Fn</tspan></text> 18.194 + <text 18.195 + xml:space="preserve" 18.196 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.197 + x="517.16797" 18.198 + y="599.42468" 18.199 + id="text3380" 18.200 + sodipodi:linespacing="100%"><tspan 18.201 + style="text-align:center;text-anchor:middle;fill:#008000" 18.202 + sodipodi:role="line" 18.203 + x="517.16797" 18.204 + y="599.42468" 18.205 + id="tspan3382">Work_Fn</tspan></text> 18.206 + <text 18.207 + sodipodi:linespacing="100%" 18.208 + id="text3388" 18.209 + y="307.42465" 18.210 + x="604.63812" 18.211 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.212 + xml:space="preserve"><tspan 18.213 + id="tspan3390" 18.214 + y="307.42465" 18.215 + x="606.14203" 18.216 + sodipodi:role="line" 18.217 + style="text-align:center;text-anchor:middle;fill:#800000">Language </tspan><tspan 18.218 + y="317.42465" 18.219 + x="604.63812" 18.220 + sodipodi:role="line" 18.221 + style="text-align:center;text-anchor:middle;fill:#800000" 18.222 + id="tspan5106">Wrapper-Lib</tspan><tspan 18.223 + y="327.42465" 18.224 + x="604.63812" 18.225 + sodipodi:role="line" 18.226 + style="text-align:center;text-anchor:middle;fill:#800000" 18.227 + id="tspan3392">Code</tspan></text> 18.228 + <text 18.229 + xml:space="preserve" 18.230 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.231 + x="669.16797" 18.232 + y="307.42465" 18.233 + id="text3394" 18.234 + sodipodi:linespacing="100%"><tspan 18.235 + style="text-align:center;text-anchor:middle;fill:#000080" 18.236 + sodipodi:role="line" 18.237 + x="669.16797" 18.238 + y="307.42465" 18.239 + id="tspan3396">Proto-Runtime</tspan><tspan 18.240 + style="text-align:center;text-anchor:middle;fill:#000080" 18.241 + sodipodi:role="line" 18.242 + x="669.16797" 18.243 + y="317.42465" 18.244 + id="tspan4998">Primitive</tspan><tspan 18.245 + id="tspan3398" 18.246 + style="text-align:center;text-anchor:middle;fill:#000080" 18.247 + sodipodi:role="line" 18.248 + x="669.16797" 18.249 + y="327.42465">Code</tspan></text> 18.250 + <text 18.251 + xml:space="preserve" 18.252 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.253 + x="137.31689" 18.254 + y="411.42465" 18.255 + id="text3412" 18.256 + sodipodi:linespacing="100%"><tspan 18.257 + style="text-align:center;text-anchor:middle;fill:#800000" 18.258 + sodipodi:role="line" 18.259 + x="137.31689" 18.260 + y="411.42465" 18.261 + id="tspan3414">Lang Handler</tspan><tspan 18.262 + style="text-align:center;text-anchor:middle;fill:#800000" 18.263 + sodipodi:role="line" 18.264 + x="137.31689" 18.265 + y="421.42465" 18.266 + id="tspan3422">for create VP</tspan></text> 18.267 + <text 18.268 + xml:space="preserve" 18.269 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.270 + x="137.68066" 18.271 + y="459.42468" 18.272 + id="text3444" 18.273 + sodipodi:linespacing="100%"><tspan 18.274 + style="text-align:center;text-anchor:middle;fill:#800000" 18.275 + sodipodi:role="line" 18.276 + x="137.68066" 18.277 + y="459.42468" 18.278 + id="tspan3450">Assigner Fn</tspan></text> 18.279 + <text 18.280 + xml:space="preserve" 18.281 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.282 + x="327.16797" 18.283 + y="309.42465" 18.284 + id="text3456" 18.285 + sodipodi:linespacing="100%"><tspan 18.286 + style="text-align:center;text-anchor:middle" 18.287 + sodipodi:role="line" 18.288 + x="328.67188" 18.289 + y="309.42465" 18.290 + id="tspan3458">Instances of </tspan><tspan 18.291 + style="text-align:center;text-anchor:middle" 18.292 + sodipodi:role="line" 18.293 + x="327.16797" 18.294 + y="319.42465" 18.295 + id="tspan8405">runtime system</tspan><tspan 18.296 + style="font-size:8px;text-align:center;text-anchor:middle" 18.297 + sodipodi:role="line" 18.298 + x="327.16797" 18.299 + y="327.85944" 18.300 + id="tspan9383">(data structs</tspan><tspan 18.301 + style="font-size:8px;text-align:center;text-anchor:middle" 18.302 + sodipodi:role="line" 18.303 + x="327.16797" 18.304 + y="335.85944" 18.305 + id="tspan9385">on heap)</tspan><tspan 18.306 + id="tspan3460" 18.307 + style="text-align:center;text-anchor:middle" 18.308 + sodipodi:role="line" 18.309 + x="327.16797" 18.310 + y="343.85944" /></text> 18.311 + <text 18.312 + sodipodi:linespacing="100%" 18.313 + id="text3462" 18.314 + y="307.42465" 18.315 + x="423.16797" 18.316 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.317 + xml:space="preserve"><tspan 18.318 + id="tspan3464" 18.319 + y="307.42465" 18.320 + x="423.16797" 18.321 + sodipodi:role="line" 18.322 + style="text-align:center;text-anchor:middle">Instances of</tspan><tspan 18.323 + y="317.42465" 18.324 + x="423.16797" 18.325 + sodipodi:role="line" 18.326 + style="text-align:center;text-anchor:middle" 18.327 + id="tspan3468">Virtual Processors</tspan><tspan 18.328 + y="325.85944" 18.329 + x="423.16797" 18.330 + sodipodi:role="line" 18.331 + style="font-size:8px;text-align:center;text-anchor:middle" 18.332 + id="tspan3466">(data structs</tspan><tspan 18.333 + y="333.85944" 18.334 + x="423.16797" 18.335 + sodipodi:role="line" 18.336 + style="font-size:8px;text-align:center;text-anchor:middle" 18.337 + id="tspan9387">on heap)</tspan></text> 18.338 + <path 18.339 + inkscape:connector-curvature="0" 18.340 + id="path4796" 18.341 + d="m 457.32649,376.02605 c 38.42351,0 38.42351,0 38.42351,0" 18.342 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999996, 2.99999996;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 18.343 + <text 18.344 + xml:space="preserve" 18.345 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.346 + x="604.78461" 18.347 + y="373.42465" 18.348 + id="text4988" 18.349 + sodipodi:linespacing="100%"><tspan 18.350 + style="text-align:center;text-anchor:middle;fill:#800000" 18.351 + sodipodi:role="line" 18.352 + x="604.78461" 18.353 + y="373.42465" 18.354 + id="tspan4990">create VP</tspan><tspan 18.355 + style="text-align:center;text-anchor:middle;fill:#800000" 18.356 + sodipodi:role="line" 18.357 + x="604.78461" 18.358 + y="383.42465" 18.359 + id="tspan5104">wrapper Fn</tspan></text> 18.360 + <text 18.361 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)" 18.362 + xml:space="preserve" 18.363 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.364 + x="638.25385" 18.365 + y="404.96878" 18.366 + id="text5064" 18.367 + sodipodi:linespacing="100%"><tspan 18.368 + style="font-size:8px;text-align:center;text-anchor:middle" 18.369 + sodipodi:role="line" 18.370 + x="638.25385" 18.371 + y="404.96878" 18.372 + id="tspan5066">Call to dyn lib</tspan></text> 18.373 + <path 18.374 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000003, 3.00000003;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 18.375 + d="m 291.99816,376.02605 c -63.44071,0 -63.44071,0 -63.44071,0" 18.376 + id="path5068" 18.377 + inkscape:connector-curvature="0" /> 18.378 + <text 18.379 + sodipodi:linespacing="100%" 18.380 + id="text5070" 18.381 + y="415.78891" 18.382 + x="180.73463" 18.383 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.384 + xml:space="preserve" 18.385 + transform="matrix(0.97994281,-0.19927893,0.19927893,0.97994281,0,0)"><tspan 18.386 + id="tspan5072" 18.387 + y="415.78891" 18.388 + x="180.73463" 18.389 + sodipodi:role="line" 18.390 + style="font-size:8px;text-align:center;text-anchor:middle">Top Level Fn</tspan></text> 18.391 + <text 18.392 + transform="matrix(0.97994281,-0.19927893,0.19927893,0.97994281,0,0)" 18.393 + xml:space="preserve" 18.394 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.395 + x="400.64069" 18.396 + y="458.46729" 18.397 + id="text5074" 18.398 + sodipodi:linespacing="100%"><tspan 18.399 + style="font-size:8px;text-align:center;text-anchor:middle" 18.400 + sodipodi:role="line" 18.401 + x="400.64069" 18.402 + y="458.46729" 18.403 + id="tspan5076">Top Level Fn</tspan></text> 18.404 + <text 18.405 + sodipodi:linespacing="100%" 18.406 + id="text5078" 18.407 + y="674.45374" 18.408 + x="358.75928" 18.409 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.410 + xml:space="preserve" 18.411 + transform="matrix(0.97994281,-0.19927893,0.19927893,0.97994281,0,0)"><tspan 18.412 + id="tspan5080" 18.413 + y="674.45374" 18.414 + x="358.75928" 18.415 + sodipodi:role="line" 18.416 + style="font-size:8px;text-align:center;text-anchor:middle">Top Level Fn</tspan></text> 18.417 + <path 18.418 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999996, 2.99999996;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 18.419 + d="m 458.9835,596.02605 c 36.7665,0 36.7665,0 36.7665,0" 18.420 + id="path5082" 18.421 + inkscape:connector-curvature="0" /> 18.422 + <path 18.423 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 18.424 + d="m 514.02904,382.01894 c 0,5.6572 0,5.6572 0,5.6572" 18.425 + id="path5092" 18.426 + inkscape:connector-curvature="0" 18.427 + sodipodi:nodetypes="cc" /> 18.428 + <path 18.429 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 18.430 + d="m 514.24714,388.02605 c 85.56237,0 85.56237,0 85.56237,0" 18.431 + id="path5094" 18.432 + inkscape:connector-curvature="0" /> 18.433 + <path 18.434 + inkscape:connector-curvature="0" 18.435 + id="path5096" 18.436 + d="m 602.77166,496.02605 c -88.41298,0 -88.41298,0 -88.41298,0" 18.437 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 18.438 + <path 18.439 + sodipodi:nodetypes="cc" 18.440 + inkscape:connector-curvature="0" 18.441 + id="path5140" 18.442 + d="m 514.02904,496.31987 c 0,26.21842 0,26.21842 0,26.21842" 18.443 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 18.444 + <path 18.445 + inkscape:connector-curvature="0" 18.446 + id="path5142" 18.447 + d="m 514.2471,522.02605 c 87.58783,0 87.58783,0 87.58783,0" 18.448 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 18.449 + <text 18.450 + sodipodi:linespacing="100%" 18.451 + id="text5157" 18.452 + y="508.71182" 18.453 + x="604.78461" 18.454 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.455 + xml:space="preserve"><tspan 18.456 + id="tspan5161" 18.457 + y="508.71182" 18.458 + x="604.78461" 18.459 + sodipodi:role="line" 18.460 + style="text-align:center;text-anchor:middle;fill:#800000">end VP</tspan><tspan 18.461 + y="518.71179" 18.462 + x="604.78461" 18.463 + sodipodi:role="line" 18.464 + style="text-align:center;text-anchor:middle;fill:#800000" 18.465 + id="tspan5207">wrapper Fn</tspan></text> 18.466 + <path 18.467 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 18.468 + d="m 602.26584,528.02605 c 63.99676,0 63.99676,0 63.99676,0" 18.469 + id="path5165" 18.470 + inkscape:connector-curvature="0" /> 18.471 + <path 18.472 + sodipodi:nodetypes="cc" 18.473 + inkscape:connector-curvature="0" 18.474 + id="path5179" 18.475 + d="m 514.02904,602.01895 c 0,5.6572 0,5.6572 0,5.6572" 18.476 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 18.477 + <path 18.478 + sodipodi:nodetypes="cc" 18.479 + inkscape:connector-curvature="0" 18.480 + id="path5209" 18.481 + d="m 602.02904,520.31985 c 0,7.35629 0,7.35629 0,7.35629" 18.482 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 18.483 + <text 18.484 + xml:space="preserve" 18.485 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.486 + x="497.16797" 18.487 + y="399.42468" 18.488 + id="text5211" 18.489 + sodipodi:linespacing="100%"><tspan 18.490 + style="text-align:center;text-anchor:middle" 18.491 + sodipodi:role="line" 18.492 + x="497.16797" 18.493 + y="399.42468" 18.494 + id="tspan5215" /></text> 18.495 + <path 18.496 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 18.497 + d="m 602.02904,388.21843 c 0,19.4577 0,19.4577 0,19.4577" 18.498 + id="path5217" 18.499 + inkscape:connector-curvature="0" 18.500 + sodipodi:nodetypes="cc" /> 18.501 + <path 18.502 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 18.503 + d="m 602.24714,408.02605 c 64.71029,0 64.71029,0 64.71029,0" 18.504 + id="path5219" 18.505 + inkscape:connector-curvature="0" /> 18.506 + <path 18.507 + inkscape:connector-curvature="0" 18.508 + id="path5221" 18.509 + d="m 666.85635,492.02605 c -65.78483,0 -65.78483,0 -65.78483,0" 18.510 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 18.511 + <path 18.512 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 18.513 + d="m 668.02904,406.63925 c 0,13.68455 0,13.68455 0,13.68455" 18.514 + id="path5223" 18.515 + inkscape:connector-curvature="0" 18.516 + sodipodi:nodetypes="cc" /> 18.517 + <path 18.518 + sodipodi:nodetypes="cc" 18.519 + inkscape:connector-curvature="0" 18.520 + id="path5229" 18.521 + d="m 602.02904,491.22687 c 0,5.5885 0,5.5885 0,5.5885" 18.522 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 18.523 + <path 18.524 + sodipodi:nodetypes="cc" 18.525 + inkscape:connector-curvature="0" 18.526 + id="path5235" 18.527 + d="m 668.02904,478.63925 c 0,13.68455 0,13.68455 0,13.68455" 18.528 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 18.529 + <text 18.530 + sodipodi:linespacing="100%" 18.531 + id="text5239" 18.532 + y="770.82495" 18.533 + x="188.36783" 18.534 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.535 + xml:space="preserve" 18.536 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 18.537 + id="tspan5241" 18.538 + y="770.82495" 18.539 + x="188.36783" 18.540 + sodipodi:role="line" 18.541 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan><tspan 18.542 + y="778.82495" 18.543 + x="188.36783" 18.544 + sodipodi:role="line" 18.545 + style="font-size:8px;text-align:center;text-anchor:middle" 18.546 + id="tspan5243">and switch</tspan><tspan 18.547 + y="786.82495" 18.548 + x="188.36783" 18.549 + sodipodi:role="line" 18.550 + style="font-size:8px;text-align:center;text-anchor:middle" 18.551 + id="tspan5245">to runtime</tspan></text> 18.552 + <path 18.553 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 18.554 + d="m 271.03421,480.02605 c 193.92439,0 193.92439,0 193.92439,0" 18.555 + id="path5247" 18.556 + inkscape:connector-curvature="0" /> 18.557 + <text 18.558 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 18.559 + xml:space="preserve" 18.560 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.561 + x="157.7636" 18.562 + y="802.43799" 18.563 + id="text5249" 18.564 + sodipodi:linespacing="100%"><tspan 18.565 + id="tspan5255" 18.566 + style="font-size:8px;text-align:center;text-anchor:middle" 18.567 + sodipodi:role="line" 18.568 + x="157.7636" 18.569 + y="802.43799">return</tspan><tspan 18.570 + style="font-size:8px;text-align:center;text-anchor:middle" 18.571 + sodipodi:role="line" 18.572 + x="157.7636" 18.573 + y="810.43799" 18.574 + id="tspan5261">from</tspan><tspan 18.575 + style="font-size:8px;text-align:center;text-anchor:middle" 18.576 + sodipodi:role="line" 18.577 + x="157.7636" 18.578 + y="818.43799" 18.579 + id="tspan5263">suspend</tspan></text> 18.580 + <text 18.581 + sodipodi:linespacing="100%" 18.582 + id="text5345" 18.583 + y="395.42465" 18.584 + x="667.38037" 18.585 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.586 + xml:space="preserve"><tspan 18.587 + id="tspan5349" 18.588 + y="395.42465" 18.589 + x="667.38037" 18.590 + sodipodi:role="line" 18.591 + style="text-align:center;text-anchor:middle;fill:#000080">PR primitive Fn</tspan><tspan 18.592 + y="405.42465" 18.593 + x="667.38037" 18.594 + sodipodi:role="line" 18.595 + style="text-align:center;text-anchor:middle;fill:#000080" 18.596 + id="tspan5353">to send request</tspan></text> 18.597 + <text 18.598 + sodipodi:linespacing="100%" 18.599 + id="text5355" 18.600 + y="392.71429" 18.601 + x="555.29077" 18.602 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.603 + xml:space="preserve" 18.604 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 18.605 + id="tspan5357" 18.606 + y="392.71429" 18.607 + x="555.29077" 18.608 + sodipodi:role="line" 18.609 + style="font-size:8px;text-align:center;text-anchor:middle">normal call</tspan></text> 18.610 + <path 18.611 + sodipodi:nodetypes="cc" 18.612 + inkscape:connector-curvature="0" 18.613 + id="path5359" 18.614 + d="m 668.02904,527.28283 c 0,13.68455 0,13.68455 0,13.68455" 18.615 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 18.616 + <text 18.617 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 18.618 + xml:space="preserve" 18.619 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.620 + x="107.72998" 18.621 + y="856.99628" 18.622 + id="text5363" 18.623 + sodipodi:linespacing="100%"><tspan 18.624 + style="font-size:8px;text-align:center;text-anchor:middle" 18.625 + sodipodi:role="line" 18.626 + x="107.72998" 18.627 + y="856.99628" 18.628 + id="tspan5365">suspend</tspan><tspan 18.629 + id="tspan5367" 18.630 + style="font-size:8px;text-align:center;text-anchor:middle" 18.631 + sodipodi:role="line" 18.632 + x="107.72998" 18.633 + y="864.99628">and switch</tspan><tspan 18.634 + id="tspan5369" 18.635 + style="font-size:8px;text-align:center;text-anchor:middle" 18.636 + sodipodi:role="line" 18.637 + x="107.72998" 18.638 + y="872.99628">to runtime</tspan></text> 18.639 + <text 18.640 + sodipodi:linespacing="100%" 18.641 + id="text5371" 18.642 + y="593.42468" 18.643 + x="604.59662" 18.644 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.645 + xml:space="preserve"><tspan 18.646 + id="tspan5373" 18.647 + y="593.42468" 18.648 + x="604.59662" 18.649 + sodipodi:role="line" 18.650 + style="text-align:center;text-anchor:middle;fill:#800000">Mutex Acquire</tspan><tspan 18.651 + id="tspan5375" 18.652 + y="603.42468" 18.653 + x="604.59662" 18.654 + sodipodi:role="line" 18.655 + style="text-align:center;text-anchor:middle;fill:#800000">wrapper Fn</tspan></text> 18.656 + <path 18.657 + inkscape:connector-curvature="0" 18.658 + id="path5379" 18.659 + d="m 514.24714,608.02605 c 85.56237,0 85.56237,0 85.56237,0" 18.660 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 18.661 + <path 18.662 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 18.663 + d="m 602.77166,708.02605 c -88.41298,0 -88.41298,0 -88.41298,0" 18.664 + id="path5381" 18.665 + inkscape:connector-curvature="0" /> 18.666 + <text 18.667 + xml:space="preserve" 18.668 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.669 + x="604.78461" 18.670 + y="720.71179" 18.671 + id="text5387" 18.672 + sodipodi:linespacing="100%"><tspan 18.673 + style="text-align:center;text-anchor:middle;fill:#800000" 18.674 + sodipodi:role="line" 18.675 + x="604.78461" 18.676 + y="720.71179" 18.677 + id="tspan5389">end VP</tspan><tspan 18.678 + id="tspan5391" 18.679 + style="text-align:center;text-anchor:middle;fill:#800000" 18.680 + sodipodi:role="line" 18.681 + x="604.78461" 18.682 + y="730.71179">wrapper Fn</tspan></text> 18.683 + <path 18.684 + inkscape:connector-curvature="0" 18.685 + id="path5393" 18.686 + d="m 602.289,740.02605 c 65.24023,0 65.24023,0 65.24023,0" 18.687 + style="fill:none;stroke:#000000;stroke-width:0.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 18.688 + <path 18.689 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 18.690 + d="m 602.02904,732.31985 c 0,7.35629 0,7.35629 0,7.35629" 18.691 + id="path5401" 18.692 + inkscape:connector-curvature="0" 18.693 + sodipodi:nodetypes="cc" /> 18.694 + <path 18.695 + sodipodi:nodetypes="cc" 18.696 + inkscape:connector-curvature="0" 18.697 + id="path5403" 18.698 + d="m 602.02904,608.21843 c 0,19.4577 0,19.4577 0,19.4577" 18.699 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 18.700 + <path 18.701 + inkscape:connector-curvature="0" 18.702 + id="path5405" 18.703 + d="m 602.6148,628.02605 c 64.1779,0 64.1779,0 64.1779,0" 18.704 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 18.705 + <path 18.706 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 18.707 + d="m 668.13452,704.02605 c -67.06305,0 -67.06305,0 -67.06305,0" 18.708 + id="path5407" 18.709 + inkscape:connector-curvature="0" /> 18.710 + <path 18.711 + sodipodi:nodetypes="cc" 18.712 + inkscape:connector-curvature="0" 18.713 + id="path5409" 18.714 + d="m 668.02904,626.63925 c 0,13.68455 0,13.68455 0,13.68455" 18.715 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 18.716 + <path 18.717 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 18.718 + d="m 602.02904,703.22687 c 0,5.5885 0,5.5885 0,5.5885" 18.719 + id="path5411" 18.720 + inkscape:connector-curvature="0" 18.721 + sodipodi:nodetypes="cc" /> 18.722 + <path 18.723 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 18.724 + d="m 668.02904,690.63925 c 0,13.68455 0,13.68455 0,13.68455" 18.725 + id="path5417" 18.726 + inkscape:connector-curvature="0" 18.727 + sodipodi:nodetypes="cc" /> 18.728 + <text 18.729 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 18.730 + xml:space="preserve" 18.731 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.732 + x="38.175541" 18.733 + y="928.84552" 18.734 + id="text5421" 18.735 + sodipodi:linespacing="100%"><tspan 18.736 + style="font-size:8px;text-align:center;text-anchor:middle" 18.737 + sodipodi:role="line" 18.738 + x="38.175541" 18.739 + y="928.84552" 18.740 + id="tspan5423">suspend</tspan><tspan 18.741 + id="tspan5425" 18.742 + style="font-size:8px;text-align:center;text-anchor:middle" 18.743 + sodipodi:role="line" 18.744 + x="38.175541" 18.745 + y="936.84552">and switch</tspan><tspan 18.746 + id="tspan5427" 18.747 + style="font-size:8px;text-align:center;text-anchor:middle" 18.748 + sodipodi:role="line" 18.749 + x="38.175541" 18.750 + y="944.84552">to runtime</tspan></text> 18.751 + <text 18.752 + sodipodi:linespacing="100%" 18.753 + id="text5431" 18.754 + y="954.75671" 18.755 + x="10.307833" 18.756 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.757 + xml:space="preserve" 18.758 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 18.759 + y="954.75671" 18.760 + x="10.307833" 18.761 + sodipodi:role="line" 18.762 + style="font-size:8px;text-align:center;text-anchor:middle" 18.763 + id="tspan5433">return</tspan><tspan 18.764 + id="tspan5435" 18.765 + y="962.75671" 18.766 + x="10.307833" 18.767 + sodipodi:role="line" 18.768 + style="font-size:8px;text-align:center;text-anchor:middle">from</tspan><tspan 18.769 + id="tspan5437" 18.770 + y="970.75671" 18.771 + x="10.307833" 18.772 + sodipodi:role="line" 18.773 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan></text> 18.774 + <text 18.775 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 18.776 + xml:space="preserve" 18.777 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.778 + x="556.25635" 18.779 + y="612.71143" 18.780 + id="text5445" 18.781 + sodipodi:linespacing="100%"><tspan 18.782 + style="font-size:8px;text-align:center;text-anchor:middle" 18.783 + sodipodi:role="line" 18.784 + x="556.25635" 18.785 + y="612.71143" 18.786 + id="tspan5447">normal call</tspan></text> 18.787 + <path 18.788 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 18.789 + d="m 668.02904,739.28283 c 0,13.68455 0,13.68455 0,13.68455" 18.790 + id="path5449" 18.791 + inkscape:connector-curvature="0" 18.792 + sodipodi:nodetypes="cc" /> 18.793 + <text 18.794 + sodipodi:linespacing="100%" 18.795 + id="text5453" 18.796 + y="1012.1439" 18.797 + x="-39.679813" 18.798 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.799 + xml:space="preserve" 18.800 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 18.801 + id="tspan5455" 18.802 + y="1012.1439" 18.803 + x="-39.679813" 18.804 + sodipodi:role="line" 18.805 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan><tspan 18.806 + y="1020.1439" 18.807 + x="-39.679813" 18.808 + sodipodi:role="line" 18.809 + style="font-size:8px;text-align:center;text-anchor:middle" 18.810 + id="tspan5457">and switch</tspan><tspan 18.811 + y="1028.144" 18.812 + x="-39.679813" 18.813 + sodipodi:role="line" 18.814 + style="font-size:8px;text-align:center;text-anchor:middle" 18.815 + id="tspan5459">to runtime</tspan></text> 18.816 + <path 18.817 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 18.818 + d="m 514.02904,708.31987 c 0,26.21842 0,26.21842 0,26.21842" 18.819 + id="path5461" 18.820 + inkscape:connector-curvature="0" 18.821 + sodipodi:nodetypes="cc" /> 18.822 + <path 18.823 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 18.824 + d="m 514.2471,734.02605 c 87.58783,0 87.58783,0 87.58783,0" 18.825 + id="path5463" 18.826 + inkscape:connector-curvature="0" /> 18.827 + <text 18.828 + sodipodi:linespacing="100%" 18.829 + id="text5465" 18.830 + y="526.71161" 18.831 + x="555.8786" 18.832 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.833 + xml:space="preserve" 18.834 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 18.835 + id="tspan5467" 18.836 + y="526.71161" 18.837 + x="555.8786" 18.838 + sodipodi:role="line" 18.839 + style="font-size:8px;text-align:center;text-anchor:middle">normal call</tspan></text> 18.840 + <text 18.841 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 18.842 + xml:space="preserve" 18.843 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.844 + x="556.80994" 18.845 + y="738.711" 18.846 + id="text5469" 18.847 + sodipodi:linespacing="100%"><tspan 18.848 + style="font-size:8px;text-align:center;text-anchor:middle" 18.849 + sodipodi:role="line" 18.850 + x="556.80994" 18.851 + y="738.711" 18.852 + id="tspan5471">normal call</tspan></text> 18.853 + <g 18.854 + transform="matrix(1,0,0,0.71130685,-16,120.52913)" 18.855 + id="g8395"> 18.856 + <rect 18.857 + y="313.58255" 18.858 + x="310.40247" 18.859 + height="52.250008" 18.860 + width="65.276405" 18.861 + id="rect8397" 18.862 + style="fill:none;stroke:#000000;stroke-width:1.28076112;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 18.863 + </g> 18.864 + <path 18.865 + sodipodi:nodetypes="cc" 18.866 + inkscape:connector-curvature="0" 18.867 + id="path9273" 18.868 + d="m 514.02904,496.31987 c 0,26.21842 0,26.21842 0,26.21842" 18.869 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 18.870 + <path 18.871 + sodipodi:nodetypes="cc" 18.872 + inkscape:connector-curvature="0" 18.873 + id="path9275" 18.874 + d="m 476.02904,382.79398 c 0,35.61575 0,35.61575 0,35.61575" 18.875 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:none" /> 18.876 + <path 18.877 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 18.878 + d="m 468.24715,418.02605 c 13.34137,0 13.34137,0 13.34137,0" 18.879 + id="path9277" 18.880 + inkscape:connector-curvature="0" /> 18.881 + <path 18.882 + inkscape:connector-curvature="0" 18.883 + id="path9279" 18.884 + d="m 481.57781,480.02605 c -13.14022,0 -13.14022,0 -13.14022,0" 18.885 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 18.886 + <path 18.887 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" 18.888 + d="m 476.02904,480.3113 c 0,57.40944 0,57.40944 0,57.40944" 18.889 + id="path9281" 18.890 + inkscape:connector-curvature="0" 18.891 + sodipodi:nodetypes="cc" /> 18.892 + <path 18.893 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 18.894 + d="m 481.57781,539.27417 c -13.14022,0 -13.14022,0 -13.14022,0" 18.895 + id="path9283" 18.896 + inkscape:connector-curvature="0" /> 18.897 + <text 18.898 + transform="matrix(-0.01875541,0.9998241,-0.9998241,-0.01875541,0,0)" 18.899 + xml:space="preserve" 18.900 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.901 + x="453.93332" 18.902 + y="-466.39136" 18.903 + id="text9285" 18.904 + sodipodi:linespacing="100%"><tspan 18.905 + style="text-align:center;text-anchor:middle;fill:#008000" 18.906 + sodipodi:role="line" 18.907 + x="453.93332" 18.908 + y="-466.39136" 18.909 + id="tspan9287">Timeline of SeedVP</tspan></text> 18.910 + <text 18.911 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 18.912 + xml:space="preserve" 18.913 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.914 + x="485.39722" 18.915 + y="417.02103" 18.916 + id="text9289" 18.917 + sodipodi:linespacing="100%"><tspan 18.918 + style="font-size:8px;text-align:start;text-anchor:start" 18.919 + sodipodi:role="line" 18.920 + x="485.39722" 18.921 + y="417.02103" 18.922 + id="tspan9291">suspend</tspan></text> 18.923 + <text 18.924 + sodipodi:linespacing="100%" 18.925 + id="text9293" 18.926 + y="481.02048" 18.927 + x="485.67838" 18.928 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.929 + xml:space="preserve" 18.930 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 18.931 + id="tspan9295" 18.932 + y="481.02048" 18.933 + x="485.67838" 18.934 + sodipodi:role="line" 18.935 + style="font-size:8px;text-align:start;text-anchor:start">resume</tspan></text> 18.936 + <text 18.937 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 18.938 + xml:space="preserve" 18.939 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.940 + x="485.92978" 18.941 + y="538.22565" 18.942 + id="text9297" 18.943 + sodipodi:linespacing="100%"><tspan 18.944 + style="font-size:8px;text-align:start;text-anchor:start" 18.945 + sodipodi:role="line" 18.946 + x="485.92978" 18.947 + y="538.22565" 18.948 + id="tspan9299">end</tspan></text> 18.949 + <text 18.950 + sodipodi:linespacing="100%" 18.951 + id="text9301" 18.952 + y="307.42465" 18.953 + x="63.167969" 18.954 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.955 + xml:space="preserve"><tspan 18.956 + id="tspan9303" 18.957 + y="307.42465" 18.958 + x="63.167969" 18.959 + sodipodi:role="line" 18.960 + style="text-align:center;text-anchor:middle;fill:#000080">Proto-Runtime</tspan><tspan 18.961 + id="tspan9305" 18.962 + y="317.42465" 18.963 + x="63.167969" 18.964 + sodipodi:role="line" 18.965 + style="text-align:center;text-anchor:middle;fill:#000080">Primitive</tspan><tspan 18.966 + y="327.42465" 18.967 + x="63.167969" 18.968 + sodipodi:role="line" 18.969 + style="text-align:center;text-anchor:middle;fill:#000080" 18.970 + id="tspan9307">Code</tspan></text> 18.971 + <text 18.972 + xml:space="preserve" 18.973 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.974 + x="65.380371" 18.975 + y="423.42465" 18.976 + id="text9309" 18.977 + sodipodi:linespacing="100%"><tspan 18.978 + id="tspan9313" 18.979 + style="text-align:center;text-anchor:middle;fill:#000080" 18.980 + sodipodi:role="line" 18.981 + x="65.380371" 18.982 + y="423.42465">PR primitive Fn</tspan><tspan 18.983 + style="text-align:center;text-anchor:middle;fill:#000080" 18.984 + sodipodi:role="line" 18.985 + x="65.380371" 18.986 + y="433.42465" 18.987 + id="tspan9317">to create VP</tspan></text> 18.988 + <path 18.989 + inkscape:connector-curvature="0" 18.990 + id="path9321" 18.991 + d="m 101.87628,425.85467 c 83.54552,12.98474 93.01032,9.74762 154.91834,33.79457 83.60123,32.47325 132.79902,111.74825 132.79902,111.74825" 18.992 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000006, 3.00000006;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 18.993 + sodipodi:nodetypes="csc" /> 18.994 + <g 18.995 + id="g9341" 18.996 + transform="translate(44.002789,174)"> 18.997 + <rect 18.998 + y="389.58255" 18.999 + x="346.40247" 18.1000 + height="37.165791" 18.1001 + width="65.276405" 18.1002 + id="rect9343" 18.1003 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 18.1004 + <text 18.1005 + xml:space="preserve" 18.1006 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.1007 + x="379.35806" 18.1008 + y="400.72159" 18.1009 + id="text9345" 18.1010 + sodipodi:linespacing="100%"><tspan 18.1011 + style="text-align:center;text-anchor:middle;fill:#008000" 18.1012 + sodipodi:role="line" 18.1013 + x="379.35806" 18.1014 + y="400.72159" 18.1015 + id="tspan9347">VP 1</tspan><tspan 18.1016 + style="font-size:8px;text-align:center;text-anchor:middle;fill:#008000" 18.1017 + sodipodi:role="line" 18.1018 + x="379.35806" 18.1019 + y="409.15637" 18.1020 + id="tspan9349">(created by</tspan><tspan 18.1021 + style="font-size:8px;text-align:center;text-anchor:middle;fill:#008000" 18.1022 + sodipodi:role="line" 18.1023 + x="379.35806" 18.1024 + y="417.15637" 18.1025 + id="tspan9355">application,</tspan><tspan 18.1026 + style="font-size:8px;text-align:center;text-anchor:middle;fill:#008000" 18.1027 + sodipodi:role="line" 18.1028 + x="379.35806" 18.1029 + y="425.15637" 18.1030 + id="tspan9746">on core 2)</tspan></text> 18.1031 + </g> 18.1032 + <g 18.1033 + transform="translate(44.002789,370)" 18.1034 + id="g9371" /> 18.1035 + <text 18.1036 + xml:space="preserve" 18.1037 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.1038 + x="202.41257" 18.1039 + y="379.42465" 18.1040 + id="text9512" 18.1041 + sodipodi:linespacing="100%"><tspan 18.1042 + style="text-align:center;text-anchor:middle;fill:#000080" 18.1043 + sodipodi:role="line" 18.1044 + x="202.41257" 18.1045 + y="379.42465" 18.1046 + id="tspan9514">Master Fn</tspan></text> 18.1047 + <path 18.1048 + sodipodi:nodetypes="cc" 18.1049 + inkscape:connector-curvature="0" 18.1050 + id="path9522" 18.1051 + d="m 205.27805,418.31985 c 0,7.35629 0,7.35629 0,7.35629" 18.1052 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 18.1053 + <path 18.1054 + inkscape:connector-curvature="0" 18.1055 + id="path9524" 18.1056 + d="m 205.05995,424.02605 c -67.19099,0 -67.19099,0 -67.19099,0" 18.1057 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 18.1058 + <path 18.1059 + sodipodi:nodetypes="cc" 18.1060 + inkscape:connector-curvature="0" 18.1061 + id="path9548" 18.1062 + d="m 137.27805,423.85824 c 0,11.43122 0,11.43122 0,11.43122" 18.1063 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 18.1064 + <path 18.1065 + inkscape:connector-curvature="0" 18.1066 + id="path9550" 18.1067 + d="m 137.57123,436.02605 c -69.22157,0 -69.22157,0 -69.22157,0" 18.1068 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 18.1069 + <path 18.1070 + sodipodi:nodetypes="cc" 18.1071 + inkscape:connector-curvature="0" 18.1072 + id="path9554" 18.1073 + d="m 205.27805,474.63925 c 0,4.54718 0,4.54718 0,4.54718" 18.1074 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 18.1075 + <text 18.1076 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 18.1077 + xml:space="preserve" 18.1078 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.1079 + x="-187.67645" 18.1080 + y="493.07611" 18.1081 + id="text9566" 18.1082 + sodipodi:linespacing="100%"><tspan 18.1083 + style="font-size:8px;text-align:center;text-anchor:middle" 18.1084 + sodipodi:role="line" 18.1085 + x="-187.67645" 18.1086 + y="493.07611" 18.1087 + id="tspan9568">suspend</tspan><tspan 18.1088 + id="tspan9570" 18.1089 + style="font-size:8px;text-align:center;text-anchor:middle" 18.1090 + sodipodi:role="line" 18.1091 + x="-187.67645" 18.1092 + y="501.07611">and switch</tspan><tspan 18.1093 + id="tspan9572" 18.1094 + style="font-size:8px;text-align:center;text-anchor:middle" 18.1095 + sodipodi:role="line" 18.1096 + x="-187.67645" 18.1097 + y="509.07611">to app VP</tspan></text> 18.1098 + <path 18.1099 + sodipodi:nodetypes="cc" 18.1100 + inkscape:connector-curvature="0" 18.1101 + id="path9614" 18.1102 + d="m 205.27805,418.31985 c 0,7.35629 0,7.35629 0,7.35629" 18.1103 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 18.1104 + <path 18.1105 + sodipodi:nodetypes="cc" 18.1106 + inkscape:connector-curvature="0" 18.1107 + id="path9616" 18.1108 + d="m 205.27805,418.31985 c 0,7.35629 0,7.35629 0,7.35629" 18.1109 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 18.1110 + <path 18.1111 + inkscape:connector-curvature="0" 18.1112 + id="path9648" 18.1113 + d="m 468.24715,383.42364 c 13.34137,0 13.34137,0 13.34137,0" 18.1114 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 18.1115 + <text 18.1116 + sodipodi:linespacing="100%" 18.1117 + id="text9654" 18.1118 + y="385.02261" 18.1119 + x="485.25659" 18.1120 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.1121 + xml:space="preserve" 18.1122 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 18.1123 + id="tspan9656" 18.1124 + y="385.02261" 18.1125 + x="485.25659" 18.1126 + sodipodi:role="line" 18.1127 + style="font-size:8px;text-align:start;text-anchor:start">start</tspan></text> 18.1128 + <path 18.1129 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:none" 18.1130 + d="m 476.02904,602.79398 c 0,35.61575 0,35.61575 0,35.61575" 18.1131 + id="path9658" 18.1132 + inkscape:connector-curvature="0" 18.1133 + sodipodi:nodetypes="cc" /> 18.1134 + <path 18.1135 + inkscape:connector-curvature="0" 18.1136 + id="path9660" 18.1137 + d="m 468.24715,638.02605 c 13.34137,0 13.34137,0 13.34137,0" 18.1138 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 18.1139 + <path 18.1140 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 18.1141 + d="m 481.57781,692.02605 c -13.14022,0 -13.14022,0 -13.14022,0" 18.1142 + id="path9662" 18.1143 + inkscape:connector-curvature="0" /> 18.1144 + <text 18.1145 + sodipodi:linespacing="100%" 18.1146 + id="text9668" 18.1147 + y="-464.48126" 18.1148 + x="672.00745" 18.1149 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.1150 + xml:space="preserve" 18.1151 + transform="matrix(-0.01875541,0.9998241,-0.9998241,-0.01875541,0,0)"><tspan 18.1152 + y="-464.48126" 18.1153 + x="672.00745" 18.1154 + sodipodi:role="line" 18.1155 + style="text-align:center;text-anchor:middle;fill:#008000" 18.1156 + id="tspan9740">Timeline of VP 1</tspan></text> 18.1157 + <text 18.1158 + sodipodi:linespacing="100%" 18.1159 + id="text9672" 18.1160 + y="637.01904" 18.1161 + x="486.36292" 18.1162 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.1163 + xml:space="preserve" 18.1164 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 18.1165 + id="tspan9674" 18.1166 + y="637.01904" 18.1167 + x="486.36292" 18.1168 + sodipodi:role="line" 18.1169 + style="font-size:8px;text-align:start;text-anchor:start">suspend</tspan></text> 18.1170 + <text 18.1171 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 18.1172 + xml:space="preserve" 18.1173 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.1174 + x="486.6088" 18.1175 + y="693.01855" 18.1176 + id="text9676" 18.1177 + sodipodi:linespacing="100%"><tspan 18.1178 + style="font-size:8px;text-align:start;text-anchor:start" 18.1179 + sodipodi:role="line" 18.1180 + x="486.6088" 18.1181 + y="693.01855" 18.1182 + id="tspan9678">resume</tspan></text> 18.1183 + <path 18.1184 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 18.1185 + d="m 468.24715,603.42364 c 13.34137,0 13.34137,0 13.34137,0" 18.1186 + id="path9684" 18.1187 + inkscape:connector-curvature="0" /> 18.1188 + <text 18.1189 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 18.1190 + xml:space="preserve" 18.1191 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.1192 + x="486.22229" 18.1193 + y="605.02063" 18.1194 + id="text9686" 18.1195 + sodipodi:linespacing="100%"><tspan 18.1196 + style="font-size:8px;text-align:start;text-anchor:start" 18.1197 + sodipodi:role="line" 18.1198 + x="486.22229" 18.1199 + y="605.02063" 18.1200 + id="tspan9688">start</tspan></text> 18.1201 + <path 18.1202 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:none" 18.1203 + d="m 266.02904,417.4311 c 0,61.88904 0,61.88904 0,61.88904" 18.1204 + id="path9690" 18.1205 + inkscape:connector-curvature="0" 18.1206 + sodipodi:nodetypes="cc" /> 18.1207 + <path 18.1208 + inkscape:connector-curvature="0" 18.1209 + id="path9692" 18.1210 + d="m 258.24715,418.02605 c 13.34137,0 13.34137,0 13.34137,0" 18.1211 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 18.1212 + <path 18.1213 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 18.1214 + d="m 271.57781,480.02605 c -13.14022,0 -13.14022,0 -13.14022,0" 18.1215 + id="path9694" 18.1216 + inkscape:connector-curvature="0" /> 18.1217 + <text 18.1218 + sodipodi:linespacing="100%" 18.1219 + id="text9700" 18.1220 + y="-276.70538" 18.1221 + x="463.34042" 18.1222 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.1223 + xml:space="preserve" 18.1224 + transform="matrix(0.00239328,0.99999714,-0.99999714,0.00239328,0,0)"><tspan 18.1225 + y="-276.70538" 18.1226 + x="463.34042" 18.1227 + sodipodi:role="line" 18.1228 + style="text-align:center;text-anchor:middle;fill:#000080" 18.1229 + id="tspan9736">Timeline of Master on core 1</tspan></text> 18.1230 + <text 18.1231 + sodipodi:linespacing="100%" 18.1232 + id="text9704" 18.1233 + y="480.12692" 18.1234 + x="261.37079" 18.1235 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.1236 + xml:space="preserve" 18.1237 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 18.1238 + id="tspan9706" 18.1239 + y="480.12692" 18.1240 + x="261.37079" 18.1241 + sodipodi:role="line" 18.1242 + style="font-size:8px;text-align:end;text-anchor:end">suspend</tspan></text> 18.1243 + <text 18.1244 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 18.1245 + xml:space="preserve" 18.1246 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.1247 + x="258.65039" 18.1248 + y="420.12738" 18.1249 + id="text9708" 18.1250 + sodipodi:linespacing="100%"><tspan 18.1251 + style="font-size:8px;text-align:end;text-anchor:end" 18.1252 + sodipodi:role="line" 18.1253 + x="258.65039" 18.1254 + y="420.12738" 18.1255 + id="tspan9710">resume</tspan></text> 18.1256 + <path 18.1257 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 18.1258 + d="m 258.24715,383.42364 c 13.34137,0 13.34137,0 13.34137,0" 18.1259 + id="path9716" 18.1260 + inkscape:connector-curvature="0" /> 18.1261 + <text 18.1262 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 18.1263 + xml:space="preserve" 18.1264 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.1265 + x="257.70789" 18.1266 + y="386.09387" 18.1267 + id="text9718" 18.1268 + sodipodi:linespacing="100%"><tspan 18.1269 + style="font-size:8px;text-align:end;text-anchor:end" 18.1270 + sodipodi:role="line" 18.1271 + x="257.70789" 18.1272 + y="386.09387" 18.1273 + id="tspan9720">start</tspan></text> 18.1274 + <path 18.1275 + sodipodi:nodetypes="cc" 18.1276 + inkscape:connector-curvature="0" 18.1277 + id="path9722" 18.1278 + d="m 266.02904,537.43112 c 0,10.33165 0,10.33165 0,10.33165" 18.1279 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" /> 18.1280 + <path 18.1281 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 18.1282 + d="m 258.24715,538.02605 c 13.34137,0 13.34137,0 13.34137,0" 18.1283 + id="path9724" 18.1284 + inkscape:connector-curvature="0" /> 18.1285 + <text 18.1286 + sodipodi:linespacing="100%" 18.1287 + id="text9936" 18.1288 + y="624.93951" 18.1289 + x="641.89471" 18.1290 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.1291 + xml:space="preserve" 18.1292 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)"><tspan 18.1293 + id="tspan9938" 18.1294 + y="624.93951" 18.1295 + x="641.89471" 18.1296 + sodipodi:role="line" 18.1297 + style="font-size:8px;text-align:center;text-anchor:middle">Call to dyn lib</tspan></text> 18.1298 + <text 18.1299 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)" 18.1300 + xml:space="preserve" 18.1301 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.1302 + x="643.74738" 18.1303 + y="736.927" 18.1304 + id="text9940" 18.1305 + sodipodi:linespacing="100%"><tspan 18.1306 + style="font-size:8px;text-align:center;text-anchor:middle" 18.1307 + sodipodi:role="line" 18.1308 + x="643.74738" 18.1309 + y="736.927" 18.1310 + id="tspan9942">Call to dyn lib</tspan></text> 18.1311 + <text 18.1312 + sodipodi:linespacing="100%" 18.1313 + id="text9944" 18.1314 + y="524.9541" 18.1315 + x="640.23999" 18.1316 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.1317 + xml:space="preserve" 18.1318 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)"><tspan 18.1319 + id="tspan9946" 18.1320 + y="524.9541" 18.1321 + x="640.23999" 18.1322 + sodipodi:role="line" 18.1323 + style="font-size:8px;text-align:center;text-anchor:middle">Call to dyn lib</tspan></text> 18.1324 + <text 18.1325 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)" 18.1326 + xml:space="preserve" 18.1327 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.1328 + x="112.79035" 18.1329 + y="441.66806" 18.1330 + id="text9948" 18.1331 + sodipodi:linespacing="100%"><tspan 18.1332 + style="font-size:8px;text-align:center;text-anchor:middle" 18.1333 + sodipodi:role="line" 18.1334 + x="112.79035" 18.1335 + y="441.66806" 18.1336 + id="tspan9950">call to dyn lib</tspan></text> 18.1337 + <path 18.1338 + inkscape:connector-curvature="0" 18.1339 + id="path9952" 18.1340 + d="m 701.67453,480.02605 c -669.895225,0 -669.895225,0 -669.895225,0" 18.1341 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" /> 18.1342 + <path 18.1343 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" 18.1344 + d="m 701.67453,417.52981 c -669.895225,0 -669.895225,0 -669.895225,0" 18.1345 + id="path9954" 18.1346 + inkscape:connector-curvature="0" /> 18.1347 + <text 18.1348 + xml:space="preserve" 18.1349 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.1350 + x="326.92542" 18.1351 + y="577.76575" 18.1352 + id="text9956" 18.1353 + sodipodi:linespacing="100%"><tspan 18.1354 + style="text-align:center;text-anchor:middle" 18.1355 + sodipodi:role="line" 18.1356 + id="tspan9958" 18.1357 + x="326.92542" 18.1358 + y="577.76575">Master</tspan><tspan 18.1359 + style="font-size:8px;text-align:center;text-anchor:middle" 18.1360 + id="tspan9960" 18.1361 + sodipodi:role="line" 18.1362 + x="326.92542" 18.1363 + y="586.2005">(runtime system)</tspan><tspan 18.1364 + id="tspan9962" 18.1365 + style="font-size:8px;text-align:center;text-anchor:middle" 18.1366 + sodipodi:role="line" 18.1367 + x="326.92542" 18.1368 + y="594.2005">on core 2</tspan></text> 18.1369 + <path 18.1370 + inkscape:connector-curvature="0" 18.1371 + id="path9970" 18.1372 + d="m 291.99816,596.02605 c -63.44071,0 -63.44071,0 -63.44071,0" 18.1373 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000003, 3.00000003;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 18.1374 + <g 18.1375 + id="g9972" 18.1376 + transform="matrix(1,0,0,0.71130685,-16,342.52913)"> 18.1377 + <rect 18.1378 + style="fill:none;stroke:#000000;stroke-width:1.28076112;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 18.1379 + id="rect9974" 18.1380 + width="65.276405" 18.1381 + height="52.250008" 18.1382 + x="310.40247" 18.1383 + y="313.58255" /> 18.1384 + </g> 18.1385 + <text 18.1386 + sodipodi:linespacing="100%" 18.1387 + id="text9982" 18.1388 + y="599.42468" 18.1389 + x="202.41257" 18.1390 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.1391 + xml:space="preserve"><tspan 18.1392 + id="tspan9984" 18.1393 + y="599.42468" 18.1394 + x="202.41257" 18.1395 + sodipodi:role="line" 18.1396 + style="text-align:center;text-anchor:middle;fill:#000080">Master Fn</tspan></text> 18.1397 + <path 18.1398 + sodipodi:nodetypes="cc" 18.1399 + inkscape:connector-curvature="0" 18.1400 + id="path10010" 18.1401 + d="m 266.02904,637.43113 c 0,54.93536 0,54.93536 0,54.93536" 18.1402 + style="fill:none;stroke:#000000;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:none" /> 18.1403 + <path 18.1404 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 18.1405 + d="m 258.24715,638.02605 c 13.34137,0 13.34137,0 13.34137,0" 18.1406 + id="path10012" 18.1407 + inkscape:connector-curvature="0" /> 18.1408 + <path 18.1409 + inkscape:connector-curvature="0" 18.1410 + id="path10014" 18.1411 + d="m 271.57781,692.02605 c -13.14022,0 -13.14022,0 -13.14022,0" 18.1412 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 18.1413 + <text 18.1414 + transform="matrix(0.00962718,0.99995366,-0.99995366,0.00962718,0,0)" 18.1415 + xml:space="preserve" 18.1416 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.1417 + x="675.3847" 18.1418 + y="-275.31226" 18.1419 + id="text10018" 18.1420 + sodipodi:linespacing="100%"><tspan 18.1421 + id="tspan10020" 18.1422 + style="text-align:center;text-anchor:middle;fill:#000080" 18.1423 + sodipodi:role="line" 18.1424 + x="675.3847" 18.1425 + y="-275.31226">Timeline of Master on core 2</tspan></text> 18.1426 + <path 18.1427 + inkscape:connector-curvature="0" 18.1428 + id="path10030" 18.1429 + d="m 258.24715,603.42364 c 13.34137,0 13.34137,0 13.34137,0" 18.1430 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 18.1431 + <path 18.1432 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000002, 3.00000002;stroke-dashoffset:0" 18.1433 + d="m 205.27805,381.45805 c 0,3.23577 0,3.23577 0,3.23577" 18.1434 + id="path10054" 18.1435 + inkscape:connector-curvature="0" 18.1436 + sodipodi:nodetypes="cc" /> 18.1437 + <path 18.1438 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" 18.1439 + d="m 701.67453,692.02605 c -669.895225,0 -669.895225,0 -669.895225,0" 18.1440 + id="path10056" 18.1441 + inkscape:connector-curvature="0" /> 18.1442 + <path 18.1443 + inkscape:connector-curvature="0" 18.1444 + id="path10058" 18.1445 + d="m 701.67453,637.52981 c -669.895225,0 -669.895225,0 -669.895225,0" 18.1446 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" /> 18.1447 + <text 18.1448 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 18.1449 + xml:space="preserve" 18.1450 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.1451 + x="-135.75337" 18.1452 + y="434.7803" 18.1453 + id="text10062" 18.1454 + sodipodi:linespacing="100%"><tspan 18.1455 + id="tspan10068" 18.1456 + style="font-size:8px;text-align:center;text-anchor:middle" 18.1457 + sodipodi:role="line" 18.1458 + x="-135.75337" 18.1459 + y="434.7803">return from</tspan><tspan 18.1460 + style="font-size:8px;text-align:center;text-anchor:middle" 18.1461 + sodipodi:role="line" 18.1462 + x="-135.75337" 18.1463 + y="442.7803" 18.1464 + id="tspan10074">suspend</tspan></text> 18.1465 + <path 18.1466 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" 18.1467 + d="m 701.67453,538.02605 c -669.895225,0 -669.895225,0 -669.895225,0" 18.1468 + id="path10076" 18.1469 + inkscape:connector-curvature="0" /> 18.1470 + <text 18.1471 + xml:space="preserve" 18.1472 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.1473 + x="667.38037" 18.1474 + y="515.42468" 18.1475 + id="text10082" 18.1476 + sodipodi:linespacing="100%"><tspan 18.1477 + style="text-align:center;text-anchor:middle;fill:#000080" 18.1478 + sodipodi:role="line" 18.1479 + x="667.38037" 18.1480 + y="515.42468" 18.1481 + id="tspan10084">PR primitive Fn</tspan><tspan 18.1482 + id="tspan10086" 18.1483 + style="text-align:center;text-anchor:middle;fill:#000080" 18.1484 + sodipodi:role="line" 18.1485 + x="667.38037" 18.1486 + y="525.42468">to send request</tspan></text> 18.1487 + <text 18.1488 + sodipodi:linespacing="100%" 18.1489 + id="text10088" 18.1490 + y="615.42468" 18.1491 + x="667.38037" 18.1492 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.1493 + xml:space="preserve"><tspan 18.1494 + id="tspan10090" 18.1495 + y="615.42468" 18.1496 + x="667.38037" 18.1497 + sodipodi:role="line" 18.1498 + style="text-align:center;text-anchor:middle;fill:#000080">PR primitive Fn</tspan><tspan 18.1499 + y="625.42468" 18.1500 + x="667.38037" 18.1501 + sodipodi:role="line" 18.1502 + style="text-align:center;text-anchor:middle;fill:#000080" 18.1503 + id="tspan10092">to send request</tspan></text> 18.1504 + <text 18.1505 + xml:space="preserve" 18.1506 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.1507 + x="667.38037" 18.1508 + y="727.42468" 18.1509 + id="text10094" 18.1510 + sodipodi:linespacing="100%"><tspan 18.1511 + style="text-align:center;text-anchor:middle;fill:#000080" 18.1512 + sodipodi:role="line" 18.1513 + x="667.38037" 18.1514 + y="727.42468" 18.1515 + id="tspan10096">PR primitive Fn</tspan><tspan 18.1516 + id="tspan10098" 18.1517 + style="text-align:center;text-anchor:middle;fill:#000080" 18.1518 + sodipodi:role="line" 18.1519 + x="667.38037" 18.1520 + y="737.42468">to send request</tspan></text> 18.1521 + <path 18.1522 + sodipodi:nodetypes="cc" 18.1523 + inkscape:connector-curvature="0" 18.1524 + id="path10100" 18.1525 + d="m 476.02904,692.3113 c 0,57.40944 0,57.40944 0,57.40944" 18.1526 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" /> 18.1527 + <path 18.1528 + inkscape:connector-curvature="0" 18.1529 + id="path10102" 18.1530 + d="m 481.57781,751.27417 c -13.14022,0 -13.14022,0 -13.14022,0" 18.1531 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 18.1532 + <text 18.1533 + sodipodi:linespacing="100%" 18.1534 + id="text10104" 18.1535 + y="750.22363" 18.1536 + x="486.86038" 18.1537 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.1538 + xml:space="preserve" 18.1539 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 18.1540 + id="tspan10106" 18.1541 + y="750.22363" 18.1542 + x="486.86038" 18.1543 + sodipodi:role="line" 18.1544 + style="font-size:8px;text-align:start;text-anchor:start">end</tspan></text> 18.1545 + <path 18.1546 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" 18.1547 + d="m 266.02904,749.43112 c 0,10.33165 0,10.33165 0,10.33165" 18.1548 + id="path10108" 18.1549 + inkscape:connector-curvature="0" 18.1550 + sodipodi:nodetypes="cc" /> 18.1551 + <path 18.1552 + inkscape:connector-curvature="0" 18.1553 + id="path10110" 18.1554 + d="m 258.24715,750.02605 c 13.34137,0 13.34137,0 13.34137,0" 18.1555 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 18.1556 + <path 18.1557 + inkscape:connector-curvature="0" 18.1558 + id="path10116" 18.1559 + d="m 701.67453,750.02605 c -669.895225,0 -669.895225,0 -669.895225,0" 18.1560 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" /> 18.1561 + <text 18.1562 + sodipodi:linespacing="100%" 18.1563 + id="text10118" 18.1564 + y="540.12653" 18.1565 + x="259.17728" 18.1566 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.1567 + xml:space="preserve" 18.1568 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 18.1569 + id="tspan10120" 18.1570 + y="540.12653" 18.1571 + x="259.17728" 18.1572 + sodipodi:role="line" 18.1573 + style="font-size:8px;text-align:end;text-anchor:end">resume</tspan></text> 18.1574 + <text 18.1575 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 18.1576 + xml:space="preserve" 18.1577 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.1578 + x="259.61627" 18.1579 + y="640.12561" 18.1580 + id="text10122" 18.1581 + sodipodi:linespacing="100%"><tspan 18.1582 + style="font-size:8px;text-align:end;text-anchor:end" 18.1583 + sodipodi:role="line" 18.1584 + x="259.61627" 18.1585 + y="640.12561" 18.1586 + id="tspan10124">resume</tspan></text> 18.1587 + <text 18.1588 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 18.1589 + xml:space="preserve" 18.1590 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.1591 + x="262.3013" 18.1592 + y="692.12494" 18.1593 + id="text10126" 18.1594 + sodipodi:linespacing="100%"><tspan 18.1595 + style="font-size:8px;text-align:end;text-anchor:end" 18.1596 + sodipodi:role="line" 18.1597 + x="262.3013" 18.1598 + y="692.12494" 18.1599 + id="tspan10128">suspend</tspan></text> 18.1600 + <text 18.1601 + sodipodi:linespacing="100%" 18.1602 + id="text10130" 18.1603 + y="606.09192" 18.1604 + x="258.67368" 18.1605 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.1606 + xml:space="preserve" 18.1607 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 18.1608 + id="tspan10132" 18.1609 + y="606.09192" 18.1610 + x="258.67368" 18.1611 + sodipodi:role="line" 18.1612 + style="font-size:8px;text-align:end;text-anchor:end">start</tspan></text> 18.1613 + <text 18.1614 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 18.1615 + xml:space="preserve" 18.1616 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.1617 + x="260.10779" 18.1618 + y="752.12427" 18.1619 + id="text10134" 18.1620 + sodipodi:linespacing="100%"><tspan 18.1621 + style="font-size:8px;text-align:end;text-anchor:end" 18.1622 + sodipodi:role="line" 18.1623 + x="260.10779" 18.1624 + y="752.12427" 18.1625 + id="tspan10136">resume</tspan></text> 18.1626 + <text 18.1627 + xml:space="preserve" 18.1628 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.1629 + x="136.99219" 18.1630 + y="307.42465" 18.1631 + id="text10146" 18.1632 + sodipodi:linespacing="100%"><tspan 18.1633 + style="text-align:center;text-anchor:middle;fill:#800000" 18.1634 + sodipodi:role="line" 18.1635 + x="138.49609" 18.1636 + y="307.42465" 18.1637 + id="tspan10148">Language </tspan><tspan 18.1638 + id="tspan10150" 18.1639 + style="text-align:center;text-anchor:middle;fill:#800000" 18.1640 + sodipodi:role="line" 18.1641 + x="136.99219" 18.1642 + y="317.42465">Plugin</tspan><tspan 18.1643 + id="tspan10152" 18.1644 + style="text-align:center;text-anchor:middle;fill:#800000" 18.1645 + sodipodi:role="line" 18.1646 + x="136.99219" 18.1647 + y="327.42465">Code</tspan></text> 18.1648 + <text 18.1649 + xml:space="preserve" 18.1650 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.1651 + x="203.16797" 18.1652 + y="307.42465" 18.1653 + id="text10154" 18.1654 + sodipodi:linespacing="100%"><tspan 18.1655 + style="text-align:center;text-anchor:middle;fill:#000080" 18.1656 + sodipodi:role="line" 18.1657 + x="203.16797" 18.1658 + y="307.42465" 18.1659 + id="tspan10156">Proto-Runtime</tspan><tspan 18.1660 + style="text-align:center;text-anchor:middle;fill:#000080" 18.1661 + sodipodi:role="line" 18.1662 + x="203.16797" 18.1663 + y="317.42465" 18.1664 + id="tspan10158">Master</tspan><tspan 18.1665 + id="tspan10160" 18.1666 + style="text-align:center;text-anchor:middle;fill:#000080" 18.1667 + sodipodi:role="line" 18.1668 + x="203.16797" 18.1669 + y="327.42465">Code</tspan></text> 18.1670 + <path 18.1671 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 18.1672 + d="m 205.05995,424.02605 c -67.19099,0 -67.19099,0 -67.19099,0" 18.1673 + id="path10162" 18.1674 + inkscape:connector-curvature="0" /> 18.1675 + <path 18.1676 + inkscape:connector-curvature="0" 18.1677 + id="path10164" 18.1678 + d="m 137.04459,474.02605 c 67.19099,0 67.19099,0 67.19099,0" 18.1679 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 18.1680 + <path 18.1681 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 18.1682 + d="m 67.525286,448.02605 c 69.221574,0 69.221574,0 69.221574,0" 18.1683 + id="path10166" 18.1684 + inkscape:connector-curvature="0" /> 18.1685 + <path 18.1686 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 18.1687 + d="m 67.27805,435.85824 c 0,13.94668 0,13.94668 0,13.94668" 18.1688 + id="path10168" 18.1689 + inkscape:connector-curvature="0" 18.1690 + sodipodi:nodetypes="cc" /> 18.1691 + <path 18.1692 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 18.1693 + d="m 137.04459,450.02605 c 67.19099,0 67.19099,0 67.19099,0" 18.1694 + id="path10172" 18.1695 + inkscape:connector-curvature="0" /> 18.1696 + <path 18.1697 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 18.1698 + d="m 205.27805,450.63926 c 0,11.23237 0,11.23237 0,11.23237" 18.1699 + id="path10174" 18.1700 + inkscape:connector-curvature="0" 18.1701 + sodipodi:nodetypes="cc" /> 18.1702 + <path 18.1703 + inkscape:connector-curvature="0" 18.1704 + id="path10176" 18.1705 + d="m 205.05995,462.02605 c -67.19099,0 -67.19099,0 -67.19099,0" 18.1706 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 18.1707 + <text 18.1708 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)" 18.1709 + xml:space="preserve" 18.1710 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.1711 + x="189.17583" 18.1712 + y="464.4057" 18.1713 + id="text10178" 18.1714 + sodipodi:linespacing="100%"><tspan 18.1715 + style="font-size:7px;text-align:center;text-anchor:middle" 18.1716 + sodipodi:role="line" 18.1717 + x="189.17583" 18.1718 + y="464.4057" 18.1719 + id="tspan10180">call via Ptr to Dyn Lib Fn</tspan></text> 18.1720 + <path 18.1721 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 18.1722 + d="m 137.27805,461.85824 c 0,11.43122 0,11.43122 0,11.43122" 18.1723 + id="path10182" 18.1724 + inkscape:connector-curvature="0" 18.1725 + sodipodi:nodetypes="cc" /> 18.1726 + <text 18.1727 + sodipodi:linespacing="100%" 18.1728 + id="text10184" 18.1729 + y="426.41092" 18.1730 + x="188.54729" 18.1731 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.1732 + xml:space="preserve" 18.1733 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)"><tspan 18.1734 + id="tspan10186" 18.1735 + y="426.41092" 18.1736 + x="188.54729" 18.1737 + sodipodi:role="line" 18.1738 + style="font-size:7px;text-align:center;text-anchor:middle">call via Ptr to Dyn Lib Fn</tspan></text> 18.1739 + <text 18.1740 + sodipodi:linespacing="100%" 18.1741 + id="text10188" 18.1742 + y="629.42468" 18.1743 + x="137.31689" 18.1744 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.1745 + xml:space="preserve"><tspan 18.1746 + id="tspan10190" 18.1747 + y="629.42468" 18.1748 + x="137.31689" 18.1749 + sodipodi:role="line" 18.1750 + style="text-align:center;text-anchor:middle;fill:#800000">Lang Handler</tspan><tspan 18.1751 + id="tspan10192" 18.1752 + y="639.42468" 18.1753 + x="137.31689" 18.1754 + sodipodi:role="line" 18.1755 + style="text-align:center;text-anchor:middle;fill:#800000">for acq Mutex</tspan></text> 18.1756 + <path 18.1757 + sodipodi:nodetypes="cc" 18.1758 + inkscape:connector-curvature="0" 18.1759 + id="path10230" 18.1760 + d="m 205.27805,601.45805 c 0,3.23576 0,3.23576 0,3.23576" 18.1761 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 18.1762 + <path 18.1763 + inkscape:connector-curvature="0" 18.1764 + id="path4879" 18.1765 + d="m 465.78297,538.02605 c -193.92439,0 -193.92439,0 -193.92439,0" 18.1766 + style="fill:none;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 18.1767 + <path 18.1768 + inkscape:connector-curvature="0" 18.1769 + id="path5395" 18.1770 + d="m 466.19516,418.02605 c -193.92439,0 -193.92439,0 -193.92439,0" 18.1771 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 18.1772 + <path 18.1773 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 18.1774 + d="m 466.19516,638.02605 c -193.92439,0 -193.92439,0 -193.92439,0" 18.1775 + id="path5397" 18.1776 + inkscape:connector-curvature="0" /> 18.1777 + <path 18.1778 + inkscape:connector-curvature="0" 18.1779 + id="path5399" 18.1780 + d="m 466.19516,750.02605 c -193.92439,0 -193.92439,0 -193.92439,0" 18.1781 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 18.1782 + <path 18.1783 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 18.1784 + d="m 271.03421,692.02605 c 193.92439,0 193.92439,0 193.92439,0" 18.1785 + id="path5402" 18.1786 + inkscape:connector-curvature="0" /> 18.1787 + <text 18.1788 + sodipodi:linespacing="100%" 18.1789 + id="text5410" 18.1790 + y="671.42468" 18.1791 + x="137.68066" 18.1792 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.1793 + xml:space="preserve"><tspan 18.1794 + id="tspan5412" 18.1795 + y="671.42468" 18.1796 + x="137.68066" 18.1797 + sodipodi:role="line" 18.1798 + style="text-align:center;text-anchor:middle;fill:#800000">Assigner Fn</tspan></text> 18.1799 + <path 18.1800 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 18.1801 + d="m 205.27805,638.31985 c 0,7.35629 0,7.35629 0,7.35629" 18.1802 + id="path5420" 18.1803 + inkscape:connector-curvature="0" 18.1804 + sodipodi:nodetypes="cc" /> 18.1805 + <path 18.1806 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 18.1807 + d="m 205.05995,644.02605 c -67.19099,0 -67.19099,0 -67.19099,0" 18.1808 + id="path5422" 18.1809 + inkscape:connector-curvature="0" /> 18.1810 + <path 18.1811 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 18.1812 + d="m 137.27805,643.85824 c 0,11.43122 0,11.43122 0,11.43122" 18.1813 + id="path5424" 18.1814 + inkscape:connector-curvature="0" 18.1815 + sodipodi:nodetypes="cc" /> 18.1816 + <path 18.1817 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 18.1818 + d="m 205.27805,686.63925 c 0,4.54718 0,4.54718 0,4.54718" 18.1819 + id="path5428" 18.1820 + inkscape:connector-curvature="0" 18.1821 + sodipodi:nodetypes="cc" /> 18.1822 + <text 18.1823 + sodipodi:linespacing="100%" 18.1824 + id="text5430" 18.1825 + y="645.39423" 18.1826 + x="-335.13254" 18.1827 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.1828 + xml:space="preserve" 18.1829 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 18.1830 + id="tspan5432" 18.1831 + y="645.39423" 18.1832 + x="-335.13254" 18.1833 + sodipodi:role="line" 18.1834 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan><tspan 18.1835 + y="653.39423" 18.1836 + x="-335.13254" 18.1837 + sodipodi:role="line" 18.1838 + style="font-size:8px;text-align:center;text-anchor:middle" 18.1839 + id="tspan5434">and switch</tspan><tspan 18.1840 + y="661.39423" 18.1841 + x="-335.13254" 18.1842 + sodipodi:role="line" 18.1843 + style="font-size:8px;text-align:center;text-anchor:middle" 18.1844 + id="tspan5436">to app VP</tspan></text> 18.1845 + <path 18.1846 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 18.1847 + d="m 205.27805,638.31985 c 0,7.35629 0,7.35629 0,7.35629" 18.1848 + id="path5438" 18.1849 + inkscape:connector-curvature="0" 18.1850 + sodipodi:nodetypes="cc" /> 18.1851 + <path 18.1852 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 18.1853 + d="m 205.27805,638.31985 c 0,7.35629 0,7.35629 0,7.35629" 18.1854 + id="path5440" 18.1855 + inkscape:connector-curvature="0" 18.1856 + sodipodi:nodetypes="cc" /> 18.1857 + <text 18.1858 + sodipodi:linespacing="100%" 18.1859 + id="text5446" 18.1860 + y="592.84631" 18.1861 + x="-288.77386" 18.1862 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.1863 + xml:space="preserve" 18.1864 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 18.1865 + y="592.84631" 18.1866 + x="-288.77386" 18.1867 + sodipodi:role="line" 18.1868 + style="font-size:8px;text-align:center;text-anchor:middle" 18.1869 + id="tspan5448">return from</tspan><tspan 18.1870 + id="tspan5450" 18.1871 + y="600.84631" 18.1872 + x="-288.77386" 18.1873 + sodipodi:role="line" 18.1874 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan></text> 18.1875 + <path 18.1876 + inkscape:connector-curvature="0" 18.1877 + id="path5452" 18.1878 + d="m 205.05995,644.02605 c -67.19099,0 -67.19099,0 -67.19099,0" 18.1879 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 18.1880 + <path 18.1881 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 18.1882 + d="m 137.04459,686.02605 c 67.19099,0 67.19099,0 67.19099,0" 18.1883 + id="path5454" 18.1884 + inkscape:connector-curvature="0" /> 18.1885 + <path 18.1886 + inkscape:connector-curvature="0" 18.1887 + id="path5460" 18.1888 + d="m 137.04459,658.02605 c 67.19099,0 67.19099,0 67.19099,0" 18.1889 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 18.1890 + <path 18.1891 + sodipodi:nodetypes="cc" 18.1892 + inkscape:connector-curvature="0" 18.1893 + id="path5462" 18.1894 + d="m 205.27805,658.63927 c 0,14.88618 0,14.88618 0,14.88618" 18.1895 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 18.1896 + <path 18.1897 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 18.1898 + d="m 205.05995,674.02605 c -67.19099,0 -67.19099,0 -67.19099,0" 18.1899 + id="path5464" 18.1900 + inkscape:connector-curvature="0" /> 18.1901 + <text 18.1902 + sodipodi:linespacing="100%" 18.1903 + id="text5466" 18.1904 + y="676.37714" 18.1905 + x="192.68279" 18.1906 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.1907 + xml:space="preserve" 18.1908 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)"><tspan 18.1909 + id="tspan5468" 18.1910 + y="676.37714" 18.1911 + x="192.68279" 18.1912 + sodipodi:role="line" 18.1913 + style="font-size:7px;text-align:center;text-anchor:middle">call via Ptr to Dyn Lib Fn</tspan></text> 18.1914 + <path 18.1915 + sodipodi:nodetypes="cc" 18.1916 + inkscape:connector-curvature="0" 18.1917 + id="path5470" 18.1918 + d="m 137.27805,673.85824 c 0,11.43122 0,11.43122 0,11.43122" 18.1919 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 18.1920 + <text 18.1921 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)" 18.1922 + xml:space="preserve" 18.1923 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.1924 + x="192.18657" 18.1925 + y="646.38098" 18.1926 + id="text5472" 18.1927 + sodipodi:linespacing="100%"><tspan 18.1928 + style="font-size:7px;text-align:center;text-anchor:middle" 18.1929 + sodipodi:role="line" 18.1930 + x="192.18657" 18.1931 + y="646.38098" 18.1932 + id="tspan5474">call via Ptr to Dyn Lib Fn</tspan></text> 18.1933 + <text 18.1934 + sodipodi:linespacing="100%" 18.1935 + id="text5476" 18.1936 + y="597.08801" 18.1937 + x="-60.107929" 18.1938 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.1939 + xml:space="preserve" 18.1940 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 18.1941 + y="597.08801" 18.1942 + x="-60.107929" 18.1943 + sodipodi:role="line" 18.1944 + style="font-size:18px;text-align:center;text-anchor:middle" 18.1945 + id="tspan5482">core 1</tspan></text> 18.1946 + <text 18.1947 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 18.1948 + xml:space="preserve" 18.1949 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.1950 + x="-208.35422" 18.1951 + y="748.6394" 18.1952 + id="text5488" 18.1953 + sodipodi:linespacing="100%"><tspan 18.1954 + id="tspan5490" 18.1955 + style="font-size:18px;text-align:center;text-anchor:middle" 18.1956 + sodipodi:role="line" 18.1957 + x="-208.35422" 18.1958 + y="748.6394">core 2</tspan></text> 18.1959 + <path 18.1960 + sodipodi:nodetypes="cc" 18.1961 + inkscape:connector-curvature="0" 18.1962 + id="path5492" 18.1963 + d="m 205.27805,752.31985 c 0,7.35629 0,7.35629 0,7.35629" 18.1964 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 18.1965 + <path 18.1966 + sodipodi:nodetypes="cc" 18.1967 + inkscape:connector-curvature="0" 18.1968 + id="path5494" 18.1969 + d="m 205.27805,752.31985 c 0,7.35629 0,7.35629 0,7.35629" 18.1970 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 18.1971 + <path 18.1972 + sodipodi:nodetypes="cc" 18.1973 + inkscape:connector-curvature="0" 18.1974 + id="path5496" 18.1975 + d="m 205.27805,752.31985 c 0,7.35629 0,7.35629 0,7.35629" 18.1976 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 18.1977 + <text 18.1978 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 18.1979 + xml:space="preserve" 18.1980 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.1981 + x="-368.06558" 18.1982 + y="674.7525" 18.1983 + id="text5498" 18.1984 + sodipodi:linespacing="100%"><tspan 18.1985 + id="tspan5500" 18.1986 + style="font-size:8px;text-align:center;text-anchor:middle" 18.1987 + sodipodi:role="line" 18.1988 + x="-368.06558" 18.1989 + y="674.7525">return from</tspan><tspan 18.1990 + style="font-size:8px;text-align:center;text-anchor:middle" 18.1991 + sodipodi:role="line" 18.1992 + x="-368.06558" 18.1993 + y="682.7525" 18.1994 + id="tspan5502">suspend</tspan></text> 18.1995 + <path 18.1996 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 18.1997 + d="m 205.27805,538.31985 c 0,7.35629 0,7.35629 0,7.35629" 18.1998 + id="path5504" 18.1999 + inkscape:connector-curvature="0" 18.2000 + sodipodi:nodetypes="cc" /> 18.2001 + <path 18.2002 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 18.2003 + d="m 205.27805,538.31985 c 0,7.35629 0,7.35629 0,7.35629" 18.2004 + id="path5506" 18.2005 + inkscape:connector-curvature="0" 18.2006 + sodipodi:nodetypes="cc" /> 18.2007 + <path 18.2008 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 18.2009 + d="m 205.27805,538.31985 c 0,7.35629 0,7.35629 0,7.35629" 18.2010 + id="path5508" 18.2011 + inkscape:connector-curvature="0" 18.2012 + sodipodi:nodetypes="cc" /> 18.2013 + <text 18.2014 + sodipodi:linespacing="100%" 18.2015 + id="text5510" 18.2016 + y="520.99878" 18.2017 + x="-219.21922" 18.2018 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 18.2019 + xml:space="preserve" 18.2020 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 18.2021 + y="520.99878" 18.2022 + x="-219.21922" 18.2023 + sodipodi:role="line" 18.2024 + style="font-size:8px;text-align:center;text-anchor:middle" 18.2025 + id="tspan5512">return from</tspan><tspan 18.2026 + id="tspan5514" 18.2027 + y="528.99878" 18.2028 + x="-219.21922" 18.2029 + sodipodi:role="line" 18.2030 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan></text> 18.2031 + <path 18.2032 + inkscape:connector-curvature="0" 18.2033 + id="path5516" 18.2034 + d="m 271.03421,604.02605 c 193.92439,0 193.92439,0 193.92439,0" 18.2035 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 18.2036 + <path 18.2037 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 18.2038 + d="m 271.03421,384.02605 c 193.92439,0 193.92439,0 193.92439,0" 18.2039 + id="path5518" 18.2040 + inkscape:connector-curvature="0" /> 18.2041 + <path 18.2042 + sodipodi:type="arc" 18.2043 + style="fill:none;stroke:#000000;stroke-width:3.17508554;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 18.2044 + id="path4107" 18.2045 + sodipodi:cx="-177.61905" 18.2046 + sodipodi:cy="432.36218" 18.2047 + sodipodi:rx="21.428572" 18.2048 + sodipodi:ry="21.904762" 18.2049 + d="m -156.19048,432.36218 a 21.428572,21.904762 0 1 1 -42.85714,0 21.428572,21.904762 0 1 1 42.85714,0 z" 18.2050 + transform="matrix(0.46666667,0,0,0.47826088,-94.15873,438.15169)" /> 18.2051 + <path 18.2052 + transform="matrix(0.46666667,0,0,0.47826088,-94.15873,478.15169)" 18.2053 + d="m -156.19048,432.36218 a 21.428572,21.904762 0 1 1 -42.85714,0 21.428572,21.904762 0 1 1 42.85714,0 z" 18.2054 + sodipodi:ry="21.904762" 18.2055 + sodipodi:rx="21.428572" 18.2056 + sodipodi:cy="432.36218" 18.2057 + sodipodi:cx="-177.61905" 18.2058 + id="path4109" 18.2059 + style="fill:none;stroke:#000000;stroke-width:3.17508554;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 18.2060 + sodipodi:type="arc" /> 18.2061 + <path 18.2062 + sodipodi:type="arc" 18.2063 + style="fill:none;stroke:#000000;stroke-width:3.17508554;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 18.2064 + id="path4111" 18.2065 + sodipodi:cx="-177.61905" 18.2066 + sodipodi:cy="432.36218" 18.2067 + sodipodi:rx="21.428572" 18.2068 + sodipodi:ry="21.904762" 18.2069 + d="m -156.19048,432.36218 a 21.428572,21.904762 0 1 1 -42.85714,0 21.428572,21.904762 0 1 1 42.85714,0 z" 18.2070 + transform="matrix(0.46666667,0,0,0.47826088,-54.15873,478.15169)" /> 18.2071 + <path 18.2072 + transform="matrix(0.46666667,0,0,0.47826088,-134.15873,478.15169)" 18.2073 + d="m -156.19048,432.36218 a 21.428572,21.904762 0 1 1 -42.85714,0 21.428572,21.904762 0 1 1 42.85714,0 z" 18.2074 + sodipodi:ry="21.904762" 18.2075 + sodipodi:rx="21.428572" 18.2076 + sodipodi:cy="432.36218" 18.2077 + sodipodi:cx="-177.61905" 18.2078 + id="path4113" 18.2079 + style="fill:none;stroke:#000000;stroke-width:3.17508554;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 18.2080 + sodipodi:type="arc" /> 18.2081 + <path 18.2082 + sodipodi:type="arc" 18.2083 + style="fill:none;stroke:#000000;stroke-width:3.17508554;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 18.2084 + id="path4115" 18.2085 + sodipodi:cx="-177.61905" 18.2086 + sodipodi:cy="432.36218" 18.2087 + sodipodi:rx="21.428572" 18.2088 + sodipodi:ry="21.904762" 18.2089 + d="m -156.19048,432.36218 a 21.428572,21.904762 0 1 1 -42.85714,0 21.428572,21.904762 0 1 1 42.85714,0 z" 18.2090 + transform="matrix(0.46666667,0,0,0.47826088,-174.15873,478.15169)" /> 18.2091 + <path 18.2092 + transform="matrix(0.46666667,0,0,0.47826088,-134.15873,438.15169)" 18.2093 + d="m -156.19048,432.36218 a 21.428572,21.904762 0 1 1 -42.85714,0 21.428572,21.904762 0 1 1 42.85714,0 z" 18.2094 + sodipodi:ry="21.904762" 18.2095 + sodipodi:rx="21.428572" 18.2096 + sodipodi:cy="432.36218" 18.2097 + sodipodi:cx="-177.61905" 18.2098 + id="path4117" 18.2099 + style="fill:none;stroke:#000000;stroke-width:3.17508554;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 18.2100 + sodipodi:type="arc" /> 18.2101 + <path 18.2102 + style="fill:none;stroke:#000000;stroke-width:1.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 18.2103 + d="m -200.95238,433.31456 c -11.42857,21.90477 -11.42857,21.90477 -11.42857,21.90477" 18.2104 + id="path4121" 18.2105 + inkscape:connector-curvature="0" /> 18.2106 + <path 18.2107 + inkscape:connector-curvature="0" 18.2108 + id="path4305" 18.2109 + d="m -192.50586,433.31456 c 11.42857,21.90477 11.42857,21.90477 11.42857,21.90477" 18.2110 + style="fill:none;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" /> 18.2111 + <path 18.2112 + inkscape:connector-curvature="0" 18.2113 + id="path4307" 18.2114 + d="m -225.71428,651.40978 c -26.50192,23.74125 -26.50192,23.74125 -26.50192,23.74125" 18.2115 + style="fill:none;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" /> 18.2116 + <path 18.2117 + style="fill:none;stroke:#000000;stroke-width:1.20000017;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 18.2118 + d="m -217.42015,655.21934 c -0.30787,19.83147 -0.30787,19.83147 -0.30787,19.83147" 18.2119 + id="path4309" 18.2120 + inkscape:connector-curvature="0" /> 18.2121 + <path 18.2122 + style="fill:none;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 18.2123 + d="m -168.4046,651.40978 c 26.50192,23.74125 26.50192,23.74125 26.50192,23.74125" 18.2124 + id="path4311" 18.2125 + inkscape:connector-curvature="0" /> 18.2126 + <path 18.2127 + inkscape:connector-curvature="0" 18.2128 + id="path4313" 18.2129 + d="m -176.69873,655.21934 c 0.30787,19.83147 0.30787,19.83147 0.30787,19.83147" 18.2130 + style="fill:none;stroke:#000000;stroke-width:1.20000017;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" /> 18.2131 + <path 18.2132 + transform="matrix(0.46666667,0,0,0.47826088,-94.15873,258.15169)" 18.2133 + d="m -156.19048,432.36218 a 21.428572,21.904762 0 1 1 -42.85714,0 21.428572,21.904762 0 1 1 42.85714,0 z" 18.2134 + sodipodi:ry="21.904762" 18.2135 + sodipodi:rx="21.428572" 18.2136 + sodipodi:cy="432.36218" 18.2137 + sodipodi:cx="-177.61905" 18.2138 + id="path4315" 18.2139 + style="fill:none;stroke:#000000;stroke-width:3.17508554;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 18.2140 + sodipodi:type="arc" /> 18.2141 + <path 18.2142 + sodipodi:type="arc" 18.2143 + style="fill:none;stroke:#000000;stroke-width:3.17508554;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 18.2144 + id="path4317" 18.2145 + sodipodi:cx="-177.61905" 18.2146 + sodipodi:cy="432.36218" 18.2147 + sodipodi:rx="21.428572" 18.2148 + sodipodi:ry="21.904762" 18.2149 + d="m -156.19048,432.36218 a 21.428572,21.904762 0 1 1 -42.85714,0 21.428572,21.904762 0 1 1 42.85714,0 z" 18.2150 + transform="matrix(0.46666667,0,0,0.47826088,-134.15873,258.15169)" /> 18.2151 + <path 18.2152 + transform="matrix(0.46666667,0,0,0.47826088,-114.15873,298.15169)" 18.2153 + d="m -156.19048,432.36218 a 21.428572,21.904762 0 1 1 -42.85714,0 21.428572,21.904762 0 1 1 42.85714,0 z" 18.2154 + sodipodi:ry="21.904762" 18.2155 + sodipodi:rx="21.428572" 18.2156 + sodipodi:cy="432.36218" 18.2157 + sodipodi:cx="-177.61905" 18.2158 + id="path4319" 18.2159 + style="fill:none;stroke:#000000;stroke-width:3.17508554;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 18.2160 + sodipodi:type="arc" /> 18.2161 + <path 18.2162 + inkscape:connector-curvature="0" 18.2163 + id="path4321" 18.2164 + d="M -200.95238,496.03367 C -212.38095,474.1289 -212.38095,474.1289 -212.38095,474.1289" 18.2165 + style="fill:none;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow2Mstart);marker-end:none" /> 18.2166 + <path 18.2167 + style="fill:none;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow2Mstart);marker-end:none" 18.2168 + d="m -192.50586,496.03367 c 11.42857,-21.90477 11.42857,-21.90477 11.42857,-21.90477" 18.2169 + id="path4323" 18.2170 + inkscape:connector-curvature="0" /> 18.2171 + <path 18.2172 + style="fill:none;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 18.2173 + d="M -225.71428,716.04005 C -252.2162,692.2988 -252.2162,692.2988 -252.2162,692.2988" 18.2174 + id="path4953" 18.2175 + inkscape:connector-curvature="0" /> 18.2176 + <path 18.2177 + inkscape:connector-curvature="0" 18.2178 + id="path4955" 18.2179 + d="m -217.42015,712.23049 c -0.30787,-19.83147 -0.30787,-19.83147 -0.30787,-19.83147" 18.2180 + style="fill:none;stroke:#000000;stroke-width:1.20000017;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" /> 18.2181 + <path 18.2182 + inkscape:connector-curvature="0" 18.2183 + id="path4957" 18.2184 + d="m -168.4046,716.04005 c 26.50192,-23.74125 26.50192,-23.74125 26.50192,-23.74125" 18.2185 + style="fill:none;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" /> 18.2186 + <path 18.2187 + style="fill:none;stroke:#000000;stroke-width:1.20000017;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 18.2188 + d="m -176.69873,712.23049 c 0.30787,-19.83147 0.30787,-19.83147 0.30787,-19.83147" 18.2189 + id="path4959" 18.2190 + inkscape:connector-curvature="0" /> 18.2191 + <path 18.2192 + sodipodi:nodetypes="ccc" 18.2193 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 18.2194 + d="m -197.36182,516.33087 c -13.85073,9.59482 -52.96579,-1.16125 -54.75298,-45.56715 0.82351,-52.26625 16.71934,-80.84752 48.43875,-56.61916" 18.2195 + id="path4961" 18.2196 + inkscape:connector-curvature="0" /> 18.2197 + <path 18.2198 + style="fill:none;stroke:#000000;stroke-width:1.20000017;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 18.2199 + d="m -196.69873,395.21934 c 0.30787,19.83147 0.30787,19.83147 0.30787,19.83147" 18.2200 + id="path4963" 18.2201 + inkscape:connector-curvature="0" /> 18.2202 + <g 18.2203 + id="g4965" 18.2204 + transform="matrix(0.33573247,0,0,0.33475494,-311.95371,310.77262)"> 18.2205 + <rect 18.2206 + style="fill:none;stroke:#000000;stroke-width:3.22208095;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 18.2207 + id="rect4967" 18.2208 + width="65.276405" 18.2209 + height="52.250008" 18.2210 + x="310.40247" 18.2211 + y="313.58255" /> 18.2212 + </g> 18.2213 + </g> 18.2214 +</svg>
19.1 Binary file 0__Papers/PRT/PRT__formal_def/figures/Portability_stack_combined.pdf has changed
20.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 20.2 +++ b/0__Papers/PRT/PRT__formal_def/figures/Portability_stack_combined.svg Sat Aug 03 19:24:22 2013 -0700 20.3 @@ -0,0 +1,2691 @@ 20.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 20.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 20.6 + 20.7 +<svg 20.8 + xmlns:dc="http://purl.org/dc/elements/1.1/" 20.9 + xmlns:cc="http://creativecommons.org/ns#" 20.10 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 20.11 + xmlns:svg="http://www.w3.org/2000/svg" 20.12 + xmlns="http://www.w3.org/2000/svg" 20.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 20.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 20.15 + width="744.09448819" 20.16 + height="1052.3622047" 20.17 + id="svg2" 20.18 + version="1.1" 20.19 + inkscape:version="0.48.1 " 20.20 + sodipodi:docname="Portability_stack_combined.svg"> 20.21 + <defs 20.22 + id="defs4"> 20.23 + <marker 20.24 + inkscape:stockid="Arrow2Mend" 20.25 + orient="auto" 20.26 + refY="0.0" 20.27 + refX="0.0" 20.28 + id="Arrow2Mend" 20.29 + style="overflow:visible;"> 20.30 + <path 20.31 + id="path12287" 20.32 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 20.33 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 20.34 + transform="scale(0.6) rotate(180) translate(0,0)" /> 20.35 + </marker> 20.36 + <marker 20.37 + inkscape:stockid="Arrow1Mend" 20.38 + orient="auto" 20.39 + refY="0.0" 20.40 + refX="0.0" 20.41 + id="Arrow1Mend" 20.42 + style="overflow:visible;"> 20.43 + <path 20.44 + id="path12269" 20.45 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 20.46 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" 20.47 + transform="scale(0.4) rotate(180) translate(10,0)" /> 20.48 + </marker> 20.49 + </defs> 20.50 + <sodipodi:namedview 20.51 + id="base" 20.52 + pagecolor="#ffffff" 20.53 + bordercolor="#666666" 20.54 + borderopacity="1.0" 20.55 + inkscape:pageopacity="0.0" 20.56 + inkscape:pageshadow="2" 20.57 + inkscape:zoom="2.34" 20.58 + inkscape:cx="402.79936" 20.59 + inkscape:cy="516.17556" 20.60 + inkscape:document-units="px" 20.61 + inkscape:current-layer="layer1" 20.62 + showgrid="false" 20.63 + inkscape:window-width="1600" 20.64 + inkscape:window-height="848" 20.65 + inkscape:window-x="-8" 20.66 + inkscape:window-y="-8" 20.67 + inkscape:window-maximized="1" /> 20.68 + <metadata 20.69 + id="metadata7"> 20.70 + <rdf:RDF> 20.71 + <cc:Work 20.72 + rdf:about=""> 20.73 + <dc:format>image/svg+xml</dc:format> 20.74 + <dc:type 20.75 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 20.76 + <dc:title /> 20.77 + </cc:Work> 20.78 + </rdf:RDF> 20.79 + </metadata> 20.80 + <g 20.81 + inkscape:label="Layer 1" 20.82 + inkscape:groupmode="layer" 20.83 + id="layer1"> 20.84 + <path 20.85 + inkscape:connector-curvature="0" 20.86 + id="2" 20.87 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.88 + d="m 328.84735,601.52932 -0.33945,0 -1.77003,-5.30122 0.7274,0 1.23662,3.85381 1.16384,-3.85381 0.70317,0 -1.72155,5.30122 z" /> 20.89 + <path 20.90 + inkscape:connector-curvature="0" 20.91 + id="3" 20.92 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.93 + d="m 334.69087,601.45696 -0.55766,-3.34721 -1.04263,3.41957 -0.16972,0 -1.06688,-3.41957 -0.53343,3.34721 -0.63042,0 0.89713,-5.22886 0.26672,0 1.13961,3.81761 1.06687,-3.81761 0.29096,0 0.96988,5.22886 -0.63043,0 z" /> 20.94 + <path 20.95 + inkscape:connector-curvature="0" 20.96 + id="4" 20.97 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.98 + d="m 335.63652,601.22177 0,0 0.21822,-0.65137 0,0 0,0 c 0.12123,0.0905 0.29096,0.16284 0.46069,0.23522 l 0,0 0,0 c 0.19397,0.0723 0.33945,0.0905 0.48494,0.0905 l 0,0 0,0 c 0.26671,0 0.46068,-0.0723 0.63041,-0.2171 l 0,0 0,0 c 0.14548,-0.16285 0.21823,-0.34378 0.21823,-0.57898 l 0,0 0,0 c 0,-0.18093 -0.0242,-0.34377 -0.12123,-0.48851 l 0,0 0,0 c -0.097,-0.16283 -0.29096,-0.32568 -0.65468,-0.50661 l 0,0 -0.38795,-0.19902 0,0 0,0 c -0.3152,-0.16284 -0.55768,-0.36186 -0.67891,-0.57897 l 0,0 0,0 c -0.12124,-0.23522 -0.19397,-0.5066 -0.19397,-0.83228 l 0,0 0,0 c 0,-0.37995 0.12123,-0.70562 0.38795,-0.95891 l 0,0 0,0 c 0.24246,-0.27142 0.58191,-0.39806 0.96988,-0.39806 l 0,0 0,0 c 0.53343,0 0.87288,0.10858 1.06686,0.28949 l 0,0 -0.16973,0.61517 0,0 0,0 c -0.0727,-0.0723 -0.21822,-0.1267 -0.38795,-0.19902 l 0,0 0,0 c -0.16973,-0.0544 -0.33945,-0.0905 -0.48493,-0.0905 l 0,0 0,0 c -0.24248,0 -0.41222,0.0723 -0.53345,0.19903 l 0,0 0,0 c -0.12122,0.14474 -0.19397,0.32567 -0.19397,0.54279 l 0,0 0,0 c 0,0.1267 0.0242,0.25331 0.0727,0.36187 l 0,0 0,0 c 0.0485,0.10858 0.097,0.19902 0.19397,0.27139 l 0,0 0,0 c 0.0727,0.0723 0.24247,0.18091 0.48495,0.30758 l 0,0 0.41218,0.19902 0,0 0,0 c 0.31522,0.18092 0.53343,0.37995 0.65467,0.61515 l 0,0 0,0 c 0.12125,0.23522 0.19398,0.52471 0.19398,0.88656 l 0,0 0,0 c 0,0.39805 -0.14548,0.72373 -0.43645,0.99511 l 0,0 0,0 c -0.26672,0.2714 -0.65466,0.41613 -1.11536,0.41613 l 0,0 0,0 c -0.43644,0 -0.80015,-0.10857 -1.0911,-0.32564 z" /> 20.99 + <path 20.100 + inkscape:connector-curvature="0" 20.101 + id="5" 20.102 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.103 + d="m 302.22417,590.2936 0,0 c 0,-0.0904 0.0242,-0.16282 0.0727,-0.2352 0.0485,-0.0723 0.12123,-0.1267 0.21821,-0.16284 0.097,-0.0362 0.19399,-0.0543 0.31522,-0.0543 l 0,0 0,0.45232 -0.60618,0 z" /> 20.104 + <path 20.105 + inkscape:connector-curvature="0" 20.106 + id="6" 20.107 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.108 + d="m 302.83035,589.84127 59.40509,0 0,0.45233 0,0.47042 -59.40509,0 0,-0.47042 0,-0.45233 z" /> 20.109 + <path 20.110 + inkscape:connector-curvature="0" 20.111 + id="7" 20.112 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.113 + d="m 362.23544,589.84127 0,0 c 0.12124,0 0.21823,0.0181 0.31521,0.0544 0.097,0.0362 0.16973,0.0905 0.21823,0.16284 0.0485,0.0723 0.097,0.14474 0.097,0.2352 l 0,0 0,0 -0.63042,0 0,-0.45233 z" /> 20.114 + <path 20.115 + inkscape:connector-curvature="0" 20.116 + id="8" 20.117 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.118 + d="m 362.86586,590.2936 0,23.26755 -0.63042,0 -0.58192,0 0,-23.26755 0.58192,0 0.63042,0 z" /> 20.119 + <path 20.120 + inkscape:connector-curvature="0" 20.121 + id="9" 20.122 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.123 + d="m 362.86586,613.56115 0,0 c 0,0.0905 -0.0485,0.16282 -0.097,0.23519 -0.0485,0.0723 -0.12123,0.1267 -0.21823,0.16285 -0.097,0.0362 -0.19397,0.0723 -0.31521,0.0723 l 0,0 0,-0.47041 0.63042,0 z" /> 20.124 + <path 20.125 + inkscape:connector-curvature="0" 20.126 + id="10" 20.127 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.128 + d="m 362.23544,614.03156 -59.40509,0 0,-0.47041 0,-0.45234 59.40509,0 0,0.45234 0,0.47041 z" /> 20.129 + <path 20.130 + inkscape:connector-curvature="0" 20.131 + id="11" 20.132 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.133 + d="m 302.83035,614.03156 0,0 c -0.12123,0 -0.21822,-0.0361 -0.31522,-0.0723 -0.097,-0.0362 -0.16971,-0.0905 -0.21821,-0.16285 -0.0485,-0.0723 -0.0727,-0.14473 -0.0727,-0.23519 l 0,0 0.60618,0 0,0.4704 z" /> 20.134 + <path 20.135 + inkscape:connector-curvature="0" 20.136 + id="12" 20.137 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.138 + d="m 302.22417,613.56115 0,-23.26755 0.60618,0 0.63042,0 0,23.26755 -0.63042,0 -0.60618,0 z" /> 20.139 + <path 20.140 + inkscape:connector-curvature="0" 20.141 + id="13" 20.142 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.143 + d="m 320.06994,612.6384 0,-2.24352 -1.81851,0 0,2.24352 -0.58193,0 0,-4.64989 0.58193,0 0,1.86358 1.81851,0 0,-1.86358 0.58193,0 0,4.64989 -0.58193,0 z" /> 20.144 + <path 20.145 + inkscape:connector-curvature="0" 20.146 + id="14" 20.147 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.148 + d="m 323.2463,612.25845 0,0 0,0 c -0.21822,0.28949 -0.55768,0.45232 -1.01836,0.45232 l 0,0 0,0 c -0.24249,0 -0.4607,-0.10858 -0.63044,-0.28948 l 0,0 0,0 c -0.16973,-0.19903 -0.26671,-0.43424 -0.26671,-0.72373 l 0,0 0,0 c 0,-0.34375 0.14548,-0.63324 0.4122,-0.88655 l 0,0 0,0 c 0.26671,-0.23519 0.63043,-0.34375 1.04261,-0.34375 l 0,0 0,0 c 0.12125,0 0.26673,0.0181 0.41222,0.0723 l 0,0 0,0 c 0,-0.5428 -0.21824,-0.81418 -0.67892,-0.81418 l 0,0 0,0 c -0.33946,0 -0.60618,0.0905 -0.80015,0.30758 l 0,0 -0.21823,-0.52469 0,0 0,0 c 0.097,-0.0905 0.24247,-0.18093 0.4122,-0.23522 l 0,0 0,0 c 0.19397,-0.0723 0.3637,-0.10858 0.53343,-0.10858 l 0,0 0,0 c 0.4607,0 0.80015,0.10858 0.96988,0.34378 l 0,0 0,0 c 0.19397,0.23522 0.31522,0.59706 0.31522,1.08558 l 0,0 0,1.21222 0,0 0,0 c 0,0.28948 0.0727,0.48851 0.24246,0.59706 l 0,0 0,0.28949 0,0 0,0 c -0.24246,0 -0.41219,-0.0181 -0.50919,-0.0905 l 0,0 0,0 c -0.12122,-0.0723 -0.19397,-0.19902 -0.21822,-0.34376 z m -0.0485,-1.2846 0,0 0,0 c -0.16974,-0.0362 -0.29097,-0.0723 -0.36372,-0.0723 l 0,0 0,0 c -0.29095,0 -0.50918,0.0904 -0.67891,0.2352 l 0,0 0,0 c -0.19397,0.16284 -0.26672,0.34378 -0.26672,0.56088 l 0,0 0,0 c 0,0.36187 0.16973,0.52469 0.55768,0.52469 l 0,0 0,0 c 0.29097,0 0.53343,-0.14473 0.75167,-0.43422 l 0,-0.81419 z" /> 20.149 + <path 20.150 + inkscape:connector-curvature="0" 20.151 + id="15" 20.152 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.153 + d="m 326.25293,609.834 0,0 0,0 c -0.12124,-0.0905 -0.24247,-0.14475 -0.3637,-0.14475 l 0,0 0,0 c -0.16974,0 -0.33947,0.0905 -0.48494,0.28949 l 0,0 0,0 c -0.14548,0.19901 -0.21823,0.43423 -0.21823,0.72372 l 0,0 0,1.93594 -0.55768,0 0,-3.40146 0.55768,0 0,0.54277 0,0 0,0 c 0.19398,-0.41615 0.50918,-0.61517 0.8729,-0.61517 l 0,0 0,0 c 0.097,0 0.24247,0.0181 0.43643,0.0544 l -0.24246,0.61517 z" /> 20.154 + <path 20.155 + inkscape:connector-curvature="0" 20.156 + id="16" 20.157 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.158 + d="m 328.84735,612.6384 0,0 0,-0.25329 0,0 0,0 c -0.19396,0.21709 -0.4607,0.30757 -0.82438,0.30757 l 0,0 0,0 c -0.38796,0 -0.70316,-0.14474 -0.94565,-0.45232 l 0,0 0,0 c -0.24246,-0.30758 -0.3637,-0.70562 -0.3637,-1.21223 l 0,0 0,0 c 0,-0.5066 0.12124,-0.94084 0.4122,-1.3027 l 0,0 0,0 c 0.26672,-0.37996 0.60617,-0.56089 0.99413,-0.56089 l 0,0 0,0 c 0.3152,0 0.55769,0.0905 0.7274,0.25331 l 0,0 0,-1.5741 0.55768,0 0,4.79465 -0.55768,0 z m 0,-2.60538 0,0 0,0 c -0.12123,-0.23522 -0.3152,-0.34377 -0.55768,-0.34377 l 0,0 0,0 c -0.3152,0 -0.53343,0.1267 -0.7274,0.36186 l 0,0 0,0 c -0.19398,0.2352 -0.26671,0.54279 -0.26671,0.92274 l 0,0 0,0 c 0,0.81418 0.33945,1.23031 1.01836,1.23031 l 0,0 0,0 c 0.0727,0 0.19398,-0.0362 0.31522,-0.0905 l 0,0 0,0 c 0.12123,-0.0723 0.19398,-0.1267 0.21821,-0.19902 l 0,-1.88167 z" /> 20.159 + <path 20.160 + inkscape:connector-curvature="0" 20.161 + id="17" 20.162 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.163 + d="m 333.04208,612.71077 -0.14547,0 -0.89715,-2.31589 -0.89715,2.31589 -0.14546,0 -1.11537,-3.49194 0.60617,0 0.65466,2.24354 0.80017,-2.24354 0.14548,0 0.84865,2.24354 0.7274,-2.24354 0.53343,0 -1.11536,3.49194 z" /> 20.164 + <path 20.165 + inkscape:connector-curvature="0" 20.166 + id="18" 20.167 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.168 + d="m 336.36392,612.25845 0,0 0,0 c -0.21822,0.28949 -0.55768,0.45232 -1.01838,0.45232 l 0,0 0,0 c -0.24247,0 -0.46069,-0.10858 -0.63042,-0.28948 l 0,0 0,0 c -0.19398,-0.19903 -0.26671,-0.43424 -0.26671,-0.72373 l 0,0 0,0 c 0,-0.34375 0.12123,-0.63324 0.41219,-0.88655 l 0,0 0,0 c 0.26672,-0.23519 0.63044,-0.34375 1.04262,-0.34375 l 0,0 0,0 c 0.12123,0 0.26673,0.0181 0.41221,0.0723 l 0,0 0,0 c 0,-0.5428 -0.24248,-0.81418 -0.67891,-0.81418 l 0,0 0,0 c -0.33947,0 -0.60618,0.0905 -0.80017,0.30758 l 0,0 -0.24246,-0.52469 0,0 0,0 c 0.12123,-0.0905 0.26671,-0.18093 0.43645,-0.23522 l 0,0 0,0 c 0.19396,-0.0723 0.3637,-0.10858 0.53343,-0.10858 l 0,0 0,0 c 0.46068,0 0.77591,0.10858 0.99413,0.34378 l 0,0 0,0 c 0.19397,0.23522 0.3152,0.59706 0.3152,1.08558 l 0,0 0,1.21222 0,0 0,0 c 0,0.28948 0.0727,0.48851 0.24248,0.59706 l 0,0 0,0.28949 0,0 0,0 c -0.24248,0 -0.41221,-0.0181 -0.5092,-0.0905 l 0,0 0,0 c -0.12123,-0.0723 -0.19396,-0.19902 -0.24246,-0.34376 z m -0.0485,-1.2846 0,0 0,0 c -0.16973,-0.0362 -0.29098,-0.0723 -0.36371,-0.0723 l 0,0 0,0 c -0.29095,0 -0.50918,0.0904 -0.70317,0.2352 l 0,0 0,0 c -0.16971,0.16284 -0.24246,0.34378 -0.24246,0.56088 l 0,0 0,0 c 0,0.36187 0.16973,0.52469 0.55768,0.52469 l 0,0 0,0 c 0.29097,0 0.53343,-0.14473 0.75166,-0.43422 l 0,-0.81419 z" /> 20.169 + <path 20.170 + inkscape:connector-curvature="0" 20.171 + id="19" 20.172 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.173 + d="m 339.39479,609.834 0,0 0,0 c -0.12123,-0.0905 -0.24246,-0.14475 -0.3637,-0.14475 l 0,0 0,0 c -0.19398,0 -0.36371,0.0905 -0.50919,0.28949 l 0,0 0,0 c -0.14547,0.19901 -0.21822,0.43423 -0.21822,0.72372 l 0,0 0,1.93594 -0.53343,0 0,-3.40146 0.53343,0 0,0.54277 0,0 0,0 c 0.19398,-0.41615 0.50918,-0.61517 0.89713,-0.61517 l 0,0 0,0 c 0.097,0 0.24247,0.0181 0.43645,0.0544 l -0.24247,0.61517 z" /> 20.174 + <path 20.175 + inkscape:connector-curvature="0" 20.176 + id="20" 20.177 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.178 + d="m 342.64389,611.01003 0,0 -2.25497,0 0,0 0,0 c 0,0.39805 0.12124,0.68753 0.3152,0.90466 l 0,0 0,0 c 0.16974,0.18091 0.38797,0.28947 0.67892,0.28947 l 0,0 0,0 c 0.31521,0 0.58193,-0.10857 0.7759,-0.30755 l 0,0 0.24248,0.43421 0,0 0,0 c -0.0727,0.0905 -0.21823,0.18093 -0.38795,0.23522 l 0,0 0,0 c -0.21823,0.0904 -0.4607,0.14473 -0.75166,0.14473 l 0,0 0,0 c -0.38795,0 -0.70315,-0.14473 -0.99414,-0.43424 l 0,0 0,0 c -0.29094,-0.32566 -0.46068,-0.7599 -0.46068,-1.28459 l 0,0 0,0 c 0,-0.56088 0.16974,-1.0132 0.48493,-1.37507 l 0,0 0,0 c 0.26674,-0.30757 0.60619,-0.45233 0.99414,-0.45233 l 0,0 0,0 c 0.43644,0 0.77589,0.14476 1.04261,0.41615 l 0,0 0,0 c 0.24248,0.2714 0.36372,0.61517 0.36372,1.04939 l 0,0 0,0 c 0,0.14474 -0.0242,0.25332 -0.0485,0.37995 z m -1.33358,-1.32078 0,0 0,0 c -0.24247,0 -0.4607,0.0905 -0.63044,0.25328 l 0,0 0,0 c -0.14546,0.18095 -0.24246,0.37998 -0.2667,0.61517 l 0,0 1.72153,0 0,0 0,0 c 0,-0.23519 -0.0727,-0.43422 -0.21821,-0.59706 l 0,0 0,0 c -0.14549,-0.18093 -0.33947,-0.27139 -0.60618,-0.27139 z" /> 20.179 + <path 20.180 + inkscape:connector-curvature="0" 20.181 + id="21" 20.182 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.183 + d="m 344.85036,612.6384 0,0 0,-0.12669 1.33358,-2.22544 0,0 0,0 c 0.26672,-0.4704 0.4122,-0.88655 0.4122,-1.21223 l 0,0 0,0 c 0,-0.41611 -0.21823,-0.63325 -0.67891,-0.63325 l 0,0 0,0 c -0.14549,0 -0.29097,0.0362 -0.43645,0.12669 l 0,0 0,0 c -0.12123,0.0905 -0.24247,0.19902 -0.29097,0.34377 l 0,0 -0.38795,-0.34377 0,0 0,0 c 0.0728,-0.19902 0.19399,-0.36186 0.38795,-0.48851 l 0,0 0,0 c 0.19399,-0.12669 0.43645,-0.18093 0.70317,-0.18093 l 0,0 0,0 c 0.4122,0 0.72741,0.10858 0.96988,0.30758 l 0,0 0,0 c 0.21821,0.19902 0.33946,0.50661 0.33946,0.86847 l 0,0 0,0 c 0,0.36187 -0.1455,0.81418 -0.46069,1.33888 l 0,0 -0.94564,1.66455 1.67305,0 0,0.56088 -2.61868,0 z" /> 20.184 + <path 20.185 + inkscape:connector-curvature="0" 20.186 + id="22" 20.187 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.188 + d="m 303.36378,606.39634 58.36248,0.34376 0,0.43423 0,0.43423 -58.36248,-0.34378 0,-0.43423 0,-0.43421 z" /> 20.189 + <path 20.190 + inkscape:connector-curvature="0" 20.191 + id="23" 20.192 + style="fill:#008066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.193 + d="m 217.38401,539.83236 0,0 0,0 c 0,-0.74179 0.19397,-1.37506 0.53343,-1.88165 l 0,0 0,0 c 0.33945,-0.50662 0.80015,-0.75991 1.38207,-0.75991 l 0,0 0,0 c 0.65468,0 1.16386,0.23521 1.52756,0.70562 l 0,0 0,0 c 0.3637,0.47043 0.53343,1.12177 0.53343,1.93594 l 0,0 0,0 c 0,0.86846 -0.16973,1.53792 -0.53343,2.02642 l 0,0 0,0 c -0.3637,0.47042 -0.87288,0.72371 -1.52756,0.72371 l 0,0 0,0 c -0.60617,0 -1.04262,-0.25329 -1.40632,-0.778 l 0,0 0,0 c -0.33946,-0.50661 -0.50918,-1.15794 -0.50918,-1.97213 z m 0.70315,0 0,0 0,0 c 0,0.59708 0.097,1.10368 0.29096,1.50172 l 0,0 0,0 c 0.21822,0.39804 0.53344,0.59706 0.92139,0.59706 l 0,0 0,0 c 0.43644,0 0.77591,-0.18091 1.01838,-0.54278 l 0,0 0,0 c 0.24246,-0.36186 0.3637,-0.88656 0.3637,-1.556 l 0,0 0,0 c 0,-1.32077 -0.46069,-1.99021 -1.38208,-1.99021 l 0,0 0,0 c -0.4122,0 -0.70317,0.18092 -0.92139,0.54278 l 0,0 0,0 c -0.19398,0.36186 -0.29096,0.85037 -0.29096,1.44743 z" /> 20.194 + <path 20.195 + inkscape:connector-curvature="0" 20.196 + id="24" 20.197 + style="fill:#008066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.198 + d="m 222.69408,542.27492 0,0 0,1.71883 -0.63041,0 0,-5.30125 0.63041,0 0,0.30758 0,0 0,0 c 0.21823,-0.25329 0.50918,-0.37995 0.84865,-0.37995 l 0,0 0,0 c 0.48495,0 0.84865,0.16284 1.13961,0.50661 l 0,0 0,0 c 0.26672,0.34376 0.4122,0.81418 0.4122,1.46555 l 0,0 0,0 c 0,0.57897 -0.14548,1.04937 -0.4122,1.41123 l 0,0 0,0 c -0.29096,0.37996 -0.67891,0.56089 -1.1881,0.56089 l 0,0 0,0 c -0.14548,0 -0.31521,-0.0362 -0.48494,-0.0904 l 0,0 0,0 c -0.16974,-0.0542 -0.26672,-0.1267 -0.31522,-0.19901 z m 0,-2.76823 0,0 0,2.20734 0,0 0,0 c 0.0242,0.0723 0.12125,0.1267 0.24248,0.19902 l 0,0 0,0 c 0.12124,0.0544 0.24247,0.0723 0.3637,0.0723 l 0,0 0,0 c 0.7759,0 1.13962,-0.47041 1.13962,-1.41123 l 0,0 0,0 c 0,-0.48853 -0.097,-0.83228 -0.24247,-1.04939 l 0,0 0,0 c -0.19398,-0.21713 -0.48495,-0.32569 -0.89715,-0.32569 l 0,0 0,0 c -0.0728,0 -0.19398,0.0181 -0.31521,0.0905 l 0,0 0,0 c -0.12124,0.0723 -0.21822,0.14475 -0.29097,0.21712 z" /> 20.199 + <path 20.200 + inkscape:connector-curvature="0" 20.201 + id="25" 20.202 + style="fill:#008066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.203 + d="m 228.70733,540.64655 0,0 -2.52167,0 0,0 0,0 c 0,0.45231 0.12123,0.79609 0.33944,1.03131 l 0,0 0,0 c 0.19399,0.2171 0.4607,0.30756 0.7759,0.30756 l 0,0 0,0 c 0.33947,0 0.65468,-0.10858 0.8729,-0.32566 l 0,0 0.26672,0.48851 0,0 0,0 c -0.097,0.0905 -0.24247,0.18093 -0.43645,0.27138 l 0,0 0,0 c -0.24247,0.0905 -0.53343,0.14476 -0.82438,0.14476 l 0,0 0,0 c -0.43645,0 -0.8244,-0.16285 -1.11538,-0.48851 l 0,0 0,0 c -0.36369,-0.36187 -0.53342,-0.85038 -0.53342,-1.44744 l 0,0 0,0 c 0,-0.63326 0.19397,-1.12177 0.53342,-1.50172 l 0,0 0,0 c 0.31523,-0.34377 0.67893,-0.50661 1.11538,-0.50661 l 0,0 0,0 c 0.50918,0 0.89713,0.14475 1.16384,0.45232 l 0,0 0,0 c 0.29097,0.30761 0.4122,0.66945 0.4122,1.15797 l 0,0 0,0 c 0,0.16282 0,0.28947 -0.0485,0.41613 z m -1.50331,-1.44745 0,0 0,0 c -0.26672,0 -0.50918,0.0905 -0.67892,0.2895 l 0,0 0,0 c -0.19396,0.18092 -0.29095,0.39804 -0.3152,0.66945 l 0,0 1.93975,0 0,0 0,0 c 0,-0.27141 -0.0727,-0.48853 -0.24247,-0.66945 l 0,0 0,0 c -0.16971,-0.19902 -0.41219,-0.2895 -0.70316,-0.2895 z" /> 20.204 + <path 20.205 + inkscape:connector-curvature="0" 20.206 + id="26" 20.207 + style="fill:#008066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.208 + d="m 231.54423,542.49203 0,0 0,-2.22544 0,0 0,0 c 0,-0.39803 -0.0485,-0.66943 -0.16972,-0.83227 l 0,0 0,0 c -0.097,-0.16282 -0.29097,-0.23522 -0.55768,-0.23522 l 0,0 0,0 c -0.14549,0 -0.29097,0.0362 -0.43645,0.1267 l 0,0 0,0 c -0.14548,0.0905 -0.26672,0.21711 -0.33947,0.34375 l 0,0 0,2.82251 -0.63041,0 0,-3.79953 0.43645,0 0.19396,0.48851 0,0 0,0 c 0.19399,-0.37995 0.5092,-0.56088 0.96988,-0.56088 l 0,0 0,0 c 0.77592,0 1.16387,0.50661 1.16387,1.50172 l 0,0 0,2.37018 -0.63043,0 z" /> 20.209 + <path 20.210 + inkscape:connector-curvature="0" 20.211 + id="27" 20.212 + style="fill:#008066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.213 + d="m 236.6846,542.49203 -0.53344,-3.32909 -1.04263,3.40147 -0.16973,0 -1.0911,-3.40147 -0.53343,3.32909 -0.63043,0 0.89713,-5.21078 0.29098,0 1.1396,3.79954 1.06686,-3.79954 0.26672,0 0.96988,5.21078 -0.63041,0 z" /> 20.214 + <path 20.215 + inkscape:connector-curvature="0" 20.216 + id="28" 20.217 + style="fill:#008066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.218 + d="m 238.47886,540.48371 0,0 0,2.00832 -0.65467,0 0,-5.21078 0,0 0,0 c 0.5092,-0.0181 0.80017,-0.0362 0.89715,-0.0362 l 0,0 0,0 c 1.40633,0 2.08525,0.5066 2.08525,1.51979 l 0,0 0,0 c 0,1.15796 -0.60619,1.75502 -1.84278,1.75502 l 0,0 0,0 c -0.0727,0 -0.21822,-0.0181 -0.48495,-0.0362 z m 0,-2.55109 0,0 0,1.89974 0,0 0,0 c 0.29098,0.0362 0.43646,0.0362 0.43646,0.0362 l 0,0 0,0 c 0.82439,0 1.2366,-0.32567 1.2366,-1.01321 l 0,0 0,0 c 0,-0.65135 -0.43646,-0.95893 -1.30935,-0.95893 l 0,0 0,0 c -0.097,0 -0.19398,0 -0.36371,0.0362 z" /> 20.219 + <path 20.220 + inkscape:connector-curvature="0" 20.221 + id="29" 20.222 + style="fill:#008066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.223 + d="m 243.06155,539.97712 1.13961,0 0,0.50659 -1.13961,0 0,1.23032 -0.4607,0 0,-1.23032 -1.11535,0 0,-0.50659 1.11535,0 0,-1.21224 0.4607,0 0,1.21224 z" /> 20.224 + <path 20.225 + inkscape:connector-curvature="0" 20.226 + id="30" 20.227 + style="fill:#008066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.228 + d="m 245.72872,540.48371 0,0 0,2.00832 -0.65466,0 0,-5.21078 0,0 0,0 c 0.48493,-0.0181 0.80013,-0.0362 0.89713,-0.0362 l 0,0 0,0 c 1.35783,0 2.06098,0.5066 2.06098,1.51979 l 0,0 0,0 c 0,1.15796 -0.63042,1.75502 -1.84276,1.75502 l 0,0 0,0 c -0.0727,0 -0.21822,-0.0181 -0.46069,-0.0362 z m 0,-2.55109 0,0 0,1.89974 0,0 0,0 c 0.2667,0.0362 0.38795,0.0362 0.41219,0.0362 l 0,0 0,0 c 0.80016,0 1.21234,-0.32567 1.21234,-1.01321 l 0,0 0,0 c 0,-0.65135 -0.43643,-0.95893 -1.26083,-0.95893 l 0,0 0,0 c -0.097,0 -0.21823,0 -0.3637,0.0362 z" /> 20.229 + <path 20.230 + inkscape:connector-curvature="0" 20.231 + id="31" 20.232 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.233 + d="m 224.73083,547.77517 0,0 0,1.99023 -0.63042,0 0,-5.19268 0,0 0,0 c 0.46068,-0.0181 0.75166,-0.0362 0.8729,-0.0362 l 0,0 0,0 c 1.38208,0 2.08524,0.50661 2.08524,1.51981 l 0,0 0,0 c 0,1.17605 -0.63043,1.75502 -1.84278,1.75502 l 0,0 0,0 c -0.0727,0 -0.24246,0 -0.48494,-0.0362 z m 0,-2.56919 0,0 0,1.93593 0,0 0,0 c 0.26673,0.0181 0.41219,0.0362 0.43644,0.0362 l 0,0 0,0 c 0.80015,0 1.21237,-0.34377 1.21237,-1.04941 l 0,0 0,0 c 0,-0.63323 -0.43647,-0.95892 -1.30935,-0.95892 l 0,0 0,0 c -0.0727,0 -0.19398,0.0181 -0.33946,0.0362 z" /> 20.234 + <path 20.235 + inkscape:connector-curvature="0" 20.236 + id="32" 20.237 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.238 + d="m 227.8102,548.71599 0,0 0,-4.30612 0.63042,0 0,4.17948 0,0 0,0 c 0,0.21713 0.0485,0.37995 0.14548,0.48851 l 0,0 0,0 c 0.12123,0.10858 0.26672,0.16283 0.43645,0.16283 l 0,0 0,0.59707 0,0 0,0 c -0.80015,0 -1.21235,-0.37995 -1.21235,-1.12177 z" /> 20.239 + <path 20.240 + inkscape:connector-curvature="0" 20.241 + id="33" 20.242 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.243 + d="m 230.30764,545.96588 0,0 0,2.44253 0,0 0,0 c 0,0.59707 0.21822,0.86847 0.70315,0.86847 l 0,0 0,0 c 0.19399,0 0.38795,-0.0723 0.55769,-0.18092 l 0,0 0,0 c 0.16973,-0.1267 0.29096,-0.2714 0.33946,-0.43424 l 0,0 0,-2.69584 0.63042,0 0,3.79952 -0.63042,0 0,-0.52471 0,0 0,0 c -0.0727,0.16285 -0.21823,0.2895 -0.4122,0.41614 l 0,0 0,0 c -0.21821,0.1267 -0.43645,0.18093 -0.63043,0.18093 l 0,0 0,0 c -0.38793,0 -0.65466,-0.10857 -0.84863,-0.34376 l 0,0 0,0 c -0.21822,-0.25331 -0.31522,-0.57897 -0.31522,-1.0132 l 0,0 0,-2.51492 0.60618,0 z" /> 20.244 + <path 20.245 + inkscape:connector-curvature="0" 20.246 + id="34" 20.247 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.248 + d="m 233.24152,550.81479 0,0 0.33945,-0.54279 0,0 0,0 c 0.36372,0.2714 0.70317,0.39804 1.01838,0.39804 l 0,0 0,0 c 0.26672,0 0.48493,-0.0542 0.65467,-0.16284 l 0,0 0,0 c 0.16973,-0.0905 0.24248,-0.2352 0.24248,-0.37993 l 0,0 0,0 c 0,-0.30759 -0.19398,-0.47044 -0.60618,-0.47044 l 0,0 0,0 c -0.0728,0 -0.19397,0.0181 -0.38795,0.0544 l 0,0 0,0 c -0.19398,0.0361 -0.31522,0.0542 -0.43645,0.0542 l 0,0 0,0 c -0.48495,0 -0.72742,-0.19902 -0.72742,-0.61517 l 0,0 0,0 c 0,-0.10857 0.0485,-0.21711 0.16974,-0.32567 l 0,0 0,0 c 0.12123,-0.0905 0.26671,-0.16284 0.43645,-0.2171 l 0,0 0,0 c -0.50919,-0.25332 -0.75165,-0.68754 -0.75165,-1.3027 l 0,0 0,0 c 0,-0.39805 0.12123,-0.74182 0.38793,-0.99513 l 0,0 0,0 c 0.26673,-0.27138 0.58193,-0.39802 0.94565,-0.39802 l 0,0 0,0 c 0.33945,0 0.60616,0.0723 0.80015,0.2171 l 0,0 0.3152,-0.39805 0.41221,0.41615 -0.38796,0.30758 0,0 0,0 c 0.16973,0.21712 0.24248,0.5247 0.24248,0.88656 l 0,0 0,0 c 0,0.37996 -0.097,0.70562 -0.31522,0.95893 l 0,0 0,0 c -0.21821,0.27138 -0.5092,0.41612 -0.8729,0.45231 l 0,0 -0.50918,0.0544 0,0 0,0 c -0.0727,0.0181 -0.14548,0.0361 -0.24246,0.0905 l 0,0 0,0 c -0.12124,0.0362 -0.16974,0.0905 -0.16974,0.16283 l 0,0 0,0 c 0,0.0723 0.12124,0.1267 0.33945,0.1267 l 0,0 0,0 c 0.0727,0 0.21823,-0.0181 0.43645,-0.0544 l 0,0 0,0 c 0.19398,-0.0362 0.33947,-0.0362 0.43645,-0.0362 l 0,0 0,0 c 0.33947,0 0.60617,0.0723 0.80015,0.25329 l 0,0 0,0 c 0.19398,0.18094 0.29096,0.43424 0.29096,0.74182 l 0,0 0,0 c 0,0.36185 -0.14548,0.63326 -0.43644,0.85036 l 0,0 0,0 c -0.29095,0.21712 -0.65467,0.32567 -1.09112,0.32567 l 0,0 0,0 c -0.21822,0 -0.46068,-0.0362 -0.7274,-0.12669 l 0,0 0,0 c -0.24248,-0.0905 -0.43645,-0.19904 -0.60618,-0.32568 z m 1.33358,-4.3604 0,0 0,0 c -0.21822,0 -0.38795,0.0723 -0.53343,0.2352 l 0,0 0,0 c -0.14548,0.18093 -0.19397,0.37995 -0.19397,0.61517 l 0,0 0,0 c 0,0.27139 0.0485,0.48851 0.19397,0.66944 l 0,0 0,0 c 0.12123,0.16284 0.29097,0.25328 0.53343,0.25328 l 0,0 0,0 c 0.21823,0 0.38795,-0.0905 0.50918,-0.25328 l 0,0 0,0 c 0.12125,-0.16285 0.19399,-0.39805 0.19399,-0.66944 l 0,0 0,0 c 0,-0.23522 -0.0727,-0.43424 -0.21822,-0.61517 l 0,0 0,0 c -0.12125,-0.16283 -0.29097,-0.2352 -0.48495,-0.2352 z" /> 20.249 + <path 20.250 + inkscape:connector-curvature="0" 20.251 + id="35" 20.252 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.253 + d="m 237.36351,544.53653 0,0 0,0 c 0.097,0 0.19397,0.0362 0.26672,0.10857 l 0,0 0,0 c 0.0727,0.0905 0.12123,0.18093 0.12123,0.30758 l 0,0 0,0 c 0,0.10858 -0.0485,0.21712 -0.12123,0.2895 l 0,0 0,0 c -0.0728,0.0905 -0.16974,0.12669 -0.26672,0.12669 l 0,0 0,0 c -0.12123,0 -0.19398,-0.0362 -0.26672,-0.12669 l 0,0 0,0 c -0.0727,-0.0723 -0.12123,-0.18093 -0.12123,-0.2895 l 0,0 0,0 c 0,-0.12669 0.0485,-0.21711 0.12123,-0.30758 l 0,0 0,0 c 0.0727,-0.0723 0.14549,-0.10857 0.26672,-0.10857 z m -0.33946,5.22887 0,0 0,-3.22055 -0.48494,0 0,-0.57897 1.09112,0 0,3.79952 -0.60618,0 z" /> 20.254 + <path 20.255 + inkscape:connector-curvature="0" 20.256 + id="36" 20.257 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.258 + d="m 240.78234,549.7654 0,0 0,-2.18925 0,0 0,0 c 0,-0.41614 -0.0485,-0.68752 -0.16974,-0.85037 l 0,0 0,0 c -0.12123,-0.16284 -0.29096,-0.2533 -0.55768,-0.2533 l 0,0 0,0 c -0.14548,0 -0.29096,0.0542 -0.46068,0.14473 l 0,0 0,0 c -0.14548,0.0905 -0.26673,0.19904 -0.33947,0.34378 l 0,0 0,2.80441 -0.63041,0 0,-3.79952 0.43643,0 0.19398,0.5066 0,0 0,0 c 0.19399,-0.37995 0.53344,-0.56088 0.99413,-0.56088 l 0,0 0,0 c 0.7759,0 1.16385,0.50659 1.16385,1.5198 l 0,0 0,2.334 -0.63041,0 z" /> 20.259 + <path 20.260 + inkscape:connector-curvature="0" 20.261 + id="38" 20.262 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.263 + d="m 213.3105,532.19714 39.06189,0 0,0.45232 0,0.47042 -39.06189,0 0,-0.47042 0,-0.45232 z" /> 20.264 + <path 20.265 + inkscape:connector-curvature="0" 20.266 + id="39" 20.267 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.268 + d="m 252.37239,532.19714 0,0 c 0.12123,0 0.21822,0.0181 0.31522,0.0542 0.097,0.0362 0.16971,0.0905 0.21821,0.16285 0.0485,0.0723 0.097,0.14473 0.097,0.23519 l 0,0 0,0 -0.63042,0 0,-0.45231 z" /> 20.269 + <path 20.270 + inkscape:connector-curvature="0" 20.271 + id="40" 20.272 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.273 + d="m 253.00281,532.64946 0,23.24944 -0.63042,0 -0.60618,0 0,-23.24944 0.60618,0 0.63042,0 z" /> 20.274 + <path 20.275 + inkscape:connector-curvature="0" 20.276 + id="41" 20.277 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.278 + d="m 253.00281,555.8989 0,0 c 0,0.0905 -0.0485,0.16285 -0.097,0.23522 -0.0485,0.0723 -0.12123,0.12669 -0.21821,0.16285 -0.097,0.0362 -0.19399,0.0723 -0.31522,0.0723 l 0,0 0,-0.47044 0.63042,0 z" /> 20.279 + <path 20.280 + inkscape:connector-curvature="0" 20.281 + id="42" 20.282 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.283 + d="m 252.37239,556.36933 -39.06189,0 0,-0.47043 0,-0.45232 39.06189,0 0,0.45232 0,0.47043 z" /> 20.284 + <path 20.285 + inkscape:connector-curvature="0" 20.286 + id="43" 20.287 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.288 + d="m 213.3105,556.36933 0,0 c -0.12123,0 -0.21821,-0.0362 -0.31521,-0.0723 -0.097,-0.0362 -0.16974,-0.0905 -0.21822,-0.16285 -0.0485,-0.0723 -0.0727,-0.14473 -0.0727,-0.23521 l 0,0 0.60616,0 0,0.47043 z" /> 20.289 + <path 20.290 + inkscape:connector-curvature="0" 20.291 + id="44" 20.292 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.293 + d="m 212.70434,555.8989 0,-23.24944 0.60616,0 0.63044,0 0,23.24944 -0.63044,0 -0.60616,0 z" /> 20.294 + <path 20.295 + inkscape:connector-curvature="0" 20.296 + id="45" 20.297 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.298 + d="m 287.28804,542.49203 -0.58193,-3.32909 -1.04262,3.40147 -0.16973,0 -1.04261,-3.40147 -0.53344,3.32909 -0.63043,0 0.8729,-5.21078 0.31522,0 1.11534,3.79954 1.04263,-3.79954 0.29095,0 0.9699,5.21078 -0.60618,0 z" /> 20.299 + <path 20.300 + inkscape:connector-curvature="0" 20.301 + id="46" 20.302 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.303 + d="m 289.08232,540.48371 0,0 0,2.00832 -0.65467,0 0,-5.21078 0,0 0,0 c 0.48493,-0.0181 0.80015,-0.0362 0.89713,-0.0362 l 0,0 0,0 c 1.35783,0 2.061,0.5066 2.061,1.51979 l 0,0 0,0 c 0,1.15796 -0.63042,1.75502 -1.81853,1.75502 l 0,0 0,0 c -0.0727,0 -0.24247,-0.0181 -0.48493,-0.0362 z m 0,-2.55109 0,0 0,1.89974 0,0 0,0 c 0.26671,0.0362 0.4122,0.0362 0.43643,0.0362 l 0,0 0,0 c 0.77591,0 1.18811,-0.32567 1.18811,-1.01321 l 0,0 0,0 c 0,-0.65135 -0.43645,-0.95893 -1.26084,-0.95893 l 0,0 0,0 c -0.097,0 -0.21822,0 -0.3637,0.0362 z" /> 20.304 + <path 20.305 + inkscape:connector-curvature="0" 20.306 + id="47" 20.307 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.308 + d="m 292.25866,542.49203 0,-5.21078 0.65468,0 0,5.21078 -0.65468,0 z" /> 20.309 + <path 20.310 + inkscape:connector-curvature="0" 20.311 + id="48" 20.312 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.313 + d="m 295.53202,539.97712 1.11535,0 0,0.50659 -1.11535,0 0,1.23032 -0.48495,0 0,-1.23032 -1.11536,0 0,-0.50659 1.11536,0 0,-1.21224 0.48495,0 0,1.21224 z" /> 20.314 + <path 20.315 + inkscape:connector-curvature="0" 20.316 + id="49" 20.317 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.318 + d="m 298.15068,540.48371 0,0 0,2.00832 -0.65467,0 0,-5.21078 0,0 0,0 c 0.50919,-0.0181 0.80015,-0.0362 0.89715,-0.0362 l 0,0 0,0 c 1.40631,0 2.10948,0.5066 2.10948,1.51979 l 0,0 0,0 c 0,1.15796 -0.63042,1.75502 -1.86703,1.75502 l 0,0 0,0 c -0.0727,0 -0.21822,-0.0181 -0.48493,-0.0362 z m 0,-2.55109 0,0 0,1.89974 0,0 0,0 c 0.29096,0.0362 0.43645,0.0362 0.4607,0.0362 l 0,0 0,0 c 0.80015,0 1.21234,-0.32567 1.21234,-1.01321 l 0,0 0,0 c 0,-0.65135 -0.43644,-0.95893 -1.30934,-0.95893 l 0,0 0,0 c -0.0727,0 -0.19397,0 -0.3637,0.0362 z" /> 20.319 + <path 20.320 + inkscape:connector-curvature="0" 20.321 + id="50" 20.322 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.323 + d="m 284.03893,547.77517 0,0 0,1.99023 -0.65467,0 0,-5.19268 0,0 0,0 c 0.48495,-0.0181 0.75167,-0.0362 0.8729,-0.0362 l 0,0 0,0 c 1.35783,0 2.061,0.50661 2.061,1.51981 l 0,0 0,0 c 0,1.17605 -0.63042,1.75502 -1.81852,1.75502 l 0,0 0,0 c -0.0727,0 -0.24248,0 -0.46071,-0.0362 z m 0,-2.56919 0,0 0,1.93593 0,0 0,0 c 0.24248,0.0181 0.38797,0.0362 0.41222,0.0362 l 0,0 0,0 c 0.77589,0 1.18809,-0.34377 1.18809,-1.04941 l 0,0 0,0 c 0,-0.63323 -0.43645,-0.95892 -1.28509,-0.95892 l 0,0 0,0 c -0.0727,0 -0.19397,0.0181 -0.31522,0.0362 z" /> 20.324 + <path 20.325 + inkscape:connector-curvature="0" 20.326 + id="51" 20.327 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.328 + d="m 287.06982,548.71599 0,0 0,-4.30612 0.63042,0 0,4.17948 0,0 0,0 c 0,0.21713 0.0485,0.37995 0.14548,0.48851 l 0,0 0,0 c 0.12123,0.10858 0.26672,0.16283 0.43643,0.16283 l 0,0 0,0.59707 0,0 0,0 c -0.80015,0 -1.21233,-0.37995 -1.21233,-1.12177 z" /> 20.329 + <path 20.330 + inkscape:connector-curvature="0" 20.331 + id="52" 20.332 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.333 + d="m 289.5915,545.96588 0,0 0,2.44253 0,0 0,0 c 0,0.59707 0.21822,0.86847 0.67891,0.86847 l 0,0 0,0 c 0.19399,0 0.38795,-0.0723 0.55769,-0.18092 l 0,0 0,0 c 0.16971,-0.1267 0.29096,-0.2714 0.33945,-0.43424 l 0,0 0,-2.69584 0.60618,0 0,3.79952 -0.60618,0 0,-0.52471 0,0 0,0 c -0.0727,0.16285 -0.21822,0.2895 -0.43644,0.41614 l 0,0 0,0 c -0.19398,0.1267 -0.41221,0.18093 -0.60618,0.18093 l 0,0 0,0 c -0.3637,0 -0.65466,-0.10857 -0.84863,-0.34376 l 0,0 0,0 c -0.21823,-0.25331 -0.31523,-0.57897 -0.31523,-1.0132 l 0,0 0,-2.51492 0.63043,0 z" /> 20.334 + <path 20.335 + inkscape:connector-curvature="0" 20.336 + id="53" 20.337 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.338 + d="m 292.50114,550.81479 0,0 0.33945,-0.54279 0,0 0,0 c 0.3637,0.2714 0.70317,0.39804 0.99413,0.39804 l 0,0 0,0 c 0.29097,0 0.50918,-0.0542 0.67892,-0.16284 l 0,0 0,0 c 0.16973,-0.0905 0.24246,-0.2352 0.24246,-0.37993 l 0,0 0,0 c 0,-0.30759 -0.21821,-0.47044 -0.60616,-0.47044 l 0,0 0,0 c -0.0728,0 -0.21823,0.0181 -0.38797,0.0544 l 0,0 0,0 c -0.19396,0.0361 -0.33945,0.0542 -0.43643,0.0542 l 0,0 0,0 c -0.48495,0 -0.75166,-0.19902 -0.75166,-0.61517 l 0,0 0,0 c 0,-0.10857 0.0728,-0.21711 0.19398,-0.32567 l 0,0 0,0 c 0.12123,-0.0905 0.24246,-0.16284 0.43643,-0.2171 l 0,0 0,0 c -0.50918,-0.25332 -0.75165,-0.68754 -0.75165,-1.3027 l 0,0 0,0 c 0,-0.39805 0.12124,-0.74182 0.38795,-0.99513 l 0,0 0,0 c 0.24247,-0.27138 0.55768,-0.39802 0.94563,-0.39802 l 0,0 0,0 c 0.33947,0 0.60618,0.0723 0.80015,0.2171 l 0,0 0.31522,-0.39805 0.4122,0.41615 -0.38795,0.30758 0,0 0,0 c 0.16971,0.21712 0.24246,0.5247 0.24246,0.88656 l 0,0 0,0 c 0,0.37996 -0.097,0.70562 -0.3152,0.95893 l 0,0 0,0 c -0.24248,0.27138 -0.5092,0.41612 -0.87289,0.45231 l 0,0 -0.50919,0.0544 0,0 0,0 c -0.0727,0.0181 -0.14548,0.0361 -0.24248,0.0905 l 0,0 0,0 c -0.12123,0.0362 -0.16973,0.0905 -0.16973,0.16283 l 0,0 0,0 c 0,0.0723 0.12125,0.1267 0.31521,0.1267 l 0,0 0,0 c 0.097,0 0.24247,-0.0181 0.43645,-0.0544 l 0,0 0,0 c 0.21823,-0.0362 0.36372,-0.0362 0.4607,-0.0362 l 0,0 0,0 c 0.33945,0 0.60617,0.0723 0.80015,0.25329 l 0,0 0,0 c 0.19397,0.18094 0.29097,0.43424 0.29097,0.74182 l 0,0 0,0 c 0,0.36185 -0.14549,0.63326 -0.43645,0.85036 l 0,0 0,0 c -0.29097,0.21712 -0.65467,0.32567 -1.09112,0.32567 l 0,0 0,0 c -0.24246,0 -0.4607,-0.0362 -0.72741,-0.12669 l 0,0 0,0 c -0.24247,-0.0905 -0.43644,-0.19904 -0.60617,-0.32568 z m 1.33358,-4.3604 0,0 0,0 c -0.21823,0 -0.4122,0.0723 -0.53343,0.2352 l 0,0 0,0 c -0.14548,0.18093 -0.21823,0.37995 -0.21823,0.61517 l 0,0 0,0 c 0,0.27139 0.0727,0.48851 0.21823,0.66944 l 0,0 0,0 c 0.12123,0.16284 0.29097,0.25328 0.53343,0.25328 l 0,0 0,0 c 0.21822,0 0.38795,-0.0905 0.50918,-0.25328 l 0,0 0,0 c 0.12124,-0.16285 0.19399,-0.39805 0.19399,-0.66944 l 0,0 0,0 c 0,-0.23522 -0.0727,-0.43424 -0.21824,-0.61517 l 0,0 0,0 c -0.12123,-0.16283 -0.29095,-0.2352 -0.48493,-0.2352 z" /> 20.339 + <path 20.340 + inkscape:connector-curvature="0" 20.341 + id="54" 20.342 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.343 + d="m 296.62312,544.53653 0,0 0,0 c 0.097,0 0.19398,0.0362 0.26673,0.10857 l 0,0 0,0 c 0.0727,0.0905 0.12123,0.18093 0.12123,0.30758 l 0,0 0,0 c 0,0.10858 -0.0485,0.21712 -0.12123,0.2895 l 0,0 0,0 c -0.0728,0.0905 -0.16973,0.12669 -0.26673,0.12669 l 0,0 0,0 c -0.12124,0 -0.19397,-0.0362 -0.26672,-0.12669 l 0,0 0,0 c -0.097,-0.0723 -0.12122,-0.18093 -0.12122,-0.2895 l 0,0 0,0 c 0,-0.12669 0.0242,-0.21711 0.097,-0.30758 l 0,0 0,0 c 0.097,-0.0723 0.16971,-0.10857 0.29095,-0.10857 z m -0.33945,5.22887 0,0 0,-3.22055 -0.4607,0 0,-0.57897 1.06688,0 0,3.79952 -0.60618,0 z" /> 20.344 + <path 20.345 + inkscape:connector-curvature="0" 20.346 + id="55" 20.347 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.348 + d="m 300.04194,549.7654 0,0 0,-2.18925 0,0 0,0 c 0,-0.41614 -0.0485,-0.68752 -0.16972,-0.85037 l 0,0 0,0 c -0.12123,-0.16284 -0.29096,-0.2533 -0.55769,-0.2533 l 0,0 0,0 c -0.14547,0 -0.29095,0.0542 -0.46069,0.14473 l 0,0 0,0 c -0.14548,0.0905 -0.26671,0.19904 -0.33946,0.34378 l 0,0 0,2.80441 -0.63042,0 0,-3.79952 0.43645,0 0.19397,0.5066 0,0 0,0 c 0.19398,-0.37995 0.53345,-0.56088 0.99413,-0.56088 l 0,0 0,0 c 0.77591,0 1.16386,0.50659 1.16386,1.5198 l 0,0 0,2.334 -0.63043,0 z" /> 20.349 + <path 20.350 + inkscape:connector-curvature="0" 20.351 + id="56" 20.352 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.353 + d="m 272.01244,532.64946 0,0 c 0,-0.0905 0.0242,-0.16283 0.0727,-0.23519 0.0242,-0.0723 0.097,-0.1267 0.19398,-0.16285 0.097,-0.0362 0.19396,-0.0542 0.31521,-0.0542 l 0,0 0,0.45231 -0.58193,0 z" /> 20.354 + <path 20.355 + inkscape:connector-curvature="0" 20.356 + id="57" 20.357 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.358 + d="m 272.59437,532.19714 39.06188,0 0,0.45232 0,0.47042 -39.06188,0 0,-0.47042 0,-0.45232 z" /> 20.359 + <path 20.360 + inkscape:connector-curvature="0" 20.361 + id="58" 20.362 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.363 + d="m 311.65625,532.19714 0,0 c 0.12123,0 0.21823,0.0181 0.31521,0.0542 0.097,0.0362 0.16973,0.0905 0.21822,0.16285 0.0485,0.0723 0.097,0.14473 0.097,0.23519 l 0,0 0,0 -0.63043,0 0,-0.45231 z" /> 20.364 + <path 20.365 + inkscape:connector-curvature="0" 20.366 + id="59" 20.367 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.368 + d="m 312.28668,532.64946 0,23.24944 -0.63043,0 -0.60619,0 0,-23.24944 0.60619,0 0.63043,0 z" /> 20.369 + <path 20.370 + inkscape:connector-curvature="0" 20.371 + id="60" 20.372 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.373 + d="m 312.28668,555.8989 0,0 c 0,0.0905 -0.0485,0.16285 -0.097,0.23522 -0.0485,0.0723 -0.12124,0.12669 -0.21822,0.16285 -0.097,0.0362 -0.19398,0.0723 -0.31521,0.0723 l 0,0 0,-0.47044 0.63043,0 z" /> 20.374 + <path 20.375 + inkscape:connector-curvature="0" 20.376 + id="61" 20.377 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.378 + d="m 311.65625,556.36933 -39.06188,0 0,-0.47043 0,-0.45232 39.06188,0 0,0.45232 0,0.47043 z" /> 20.379 + <path 20.380 + inkscape:connector-curvature="0" 20.381 + id="62" 20.382 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.383 + d="m 272.59437,556.36933 0,0 c -0.12125,0 -0.21823,-0.0362 -0.31521,-0.0723 -0.097,-0.0362 -0.16973,-0.0905 -0.19398,-0.16285 -0.0485,-0.0723 -0.0727,-0.14473 -0.0727,-0.23521 l 0,0 0.58193,0 0,0.47043 z" /> 20.384 + <path 20.385 + inkscape:connector-curvature="0" 20.386 + id="63" 20.387 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.388 + d="m 272.01244,555.8989 0,-23.24944 0.58193,0 0.63042,0 0,23.24944 -0.63042,0 -0.58193,0 z" /> 20.389 + <path 20.390 + inkscape:connector-curvature="0" 20.391 + id="64" 20.392 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.393 + d="m 337.84298,542.56441 -2.47319,-3.79953 0,3.72715 -0.60617,0 0,-5.21078 0.26672,0 2.40044,3.60052 0,-3.60052 0.60618,0 0,5.28316 -0.19398,0 z" /> 20.394 + <path 20.395 + inkscape:connector-curvature="0" 20.396 + id="65" 20.397 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.398 + d="m 341.91649,540.64655 0,0 -2.5217,0 0,0 0,0 c 0,0.45231 0.097,0.79609 0.33947,1.03131 l 0,0 0,0 c 0.19397,0.2171 0.43643,0.30756 0.75165,0.30756 l 0,0 0,0 c 0.3637,0 0.65466,-0.10858 0.89713,-0.32566 l 0,0 0.26671,0.48851 0,0 0,0 c -0.097,0.0905 -0.24246,0.18093 -0.43643,0.27138 l 0,0 0,0 c -0.26673,0.0905 -0.53345,0.14476 -0.84865,0.14476 l 0,0 0,0 c -0.43644,0 -0.80014,-0.16285 -1.11536,-0.48851 l 0,0 0,0 c -0.33947,-0.36187 -0.5092,-0.85038 -0.5092,-1.44744 l 0,0 0,0 c 0,-0.63326 0.16973,-1.12177 0.53345,-1.50172 l 0,0 0,0 c 0.3152,-0.34377 0.67892,-0.50661 1.11536,-0.50661 l 0,0 0,0 c 0.48494,0 0.87289,0.14475 1.16385,0.45232 l 0,0 0,0 c 0.26672,0.30761 0.4122,0.66945 0.4122,1.15797 l 0,0 0,0 c 0,0.16282 -0.0242,0.28947 -0.0485,0.41613 z m -1.50332,-1.44745 0,0 0,0 c -0.29098,0 -0.50919,0.0905 -0.70316,0.2895 l 0,0 0,0 c -0.16973,0.18092 -0.29098,0.39804 -0.31522,0.66945 l 0,0 1.93977,0 0,0 0,0 c 0,-0.27141 -0.0727,-0.48853 -0.21824,-0.66945 l 0,0 0,0 c -0.16973,-0.19902 -0.4122,-0.2895 -0.70315,-0.2895 z" /> 20.399 + <path 20.400 + inkscape:connector-curvature="0" 20.401 + id="66" 20.402 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.403 + d="m 345.82024,542.56441 -0.14548,0 -1.04261,-2.60541 -0.99413,2.60541 -0.16974,0 -1.23659,-3.88999 0.65466,0 0.75167,2.49684 0.89713,-2.49684 0.16973,0 0.96988,2.49684 0.80015,-2.49684 0.60616,0 -1.26083,3.88999 z" /> 20.404 + <path 20.405 + inkscape:connector-curvature="0" 20.406 + id="67" 20.407 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.408 + d="m 347.61452,542.49203 0,-5.21078 0.65467,0 0,4.55943 2.15798,0 0,0.65135 -2.81265,0 z" /> 20.409 + <path 20.410 + inkscape:connector-curvature="0" 20.411 + id="68" 20.412 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.413 + d="m 352.92461,542.05781 0,0 0,0 c -0.24248,0.34375 -0.63041,0.5066 -1.13961,0.5066 l 0,0 0,0 c -0.29097,0 -0.50919,-0.10857 -0.72742,-0.32568 l 0,0 0,0 c -0.19396,-0.21712 -0.29095,-0.4885 -0.29095,-0.81419 l 0,0 0,0 c 0,-0.37994 0.14549,-0.70563 0.46068,-0.97701 l 0,0 0,0 c 0.31522,-0.27139 0.70317,-0.39804 1.1881,-0.39804 l 0,0 0,0 c 0.12123,0 0.29097,0.0181 0.43645,0.0905 l 0,0 0,0 c 0,-0.59707 -0.24247,-0.92274 -0.75165,-0.92274 l 0,0 0,0 c -0.38795,0 -0.67891,0.12669 -0.89715,0.34377 l 0,0 -0.26671,-0.5609 0,0 0,0 c 0.12123,-0.10857 0.29096,-0.19902 0.48495,-0.27138 l 0,0 0,0 c 0.21821,-0.0723 0.4122,-0.10858 0.60616,-0.10858 l 0,0 0,0 c 0.50918,0 0.8729,0.1267 1.11537,0.37995 l 0,0 0,0 c 0.21821,0.25331 0.33946,0.65134 0.33946,1.17606 l 0,0 0,1.37506 0,0 0,0 c 0,0.32565 0.097,0.56087 0.26672,0.66943 l 0,0 0,0.34378 0,0 0,0 c -0.24247,0 -0.43645,-0.0362 -0.55768,-0.1267 l 0,0 0,0 c -0.12124,-0.0723 -0.21822,-0.19902 -0.26672,-0.37993 z m -0.0727,-1.44744 0,0 0,0 c -0.19397,-0.0362 -0.31522,-0.0723 -0.4122,-0.0723 l 0,0 0,0 c -0.3152,0 -0.55768,0.0904 -0.75165,0.27138 l 0,0 0,0 c -0.19398,0.18093 -0.31521,0.37997 -0.31521,0.61516 l 0,0 0,0 c 0,0.39805 0.21823,0.59707 0.65466,0.59707 l 0,0 0,0 c 0.31522,0 0.58193,-0.16284 0.8244,-0.48851 l 0,-0.92274 z" /> 20.414 + <path 20.415 + inkscape:connector-curvature="0" 20.416 + id="69" 20.417 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.418 + d="m 356.5859,542.49203 0,0 0,-2.22544 0,0 0,0 c 0,-0.39803 -0.0485,-0.66943 -0.16973,-0.83227 l 0,0 0,0 c -0.097,-0.16282 -0.29096,-0.23522 -0.55768,-0.23522 l 0,0 0,0 c -0.12124,0 -0.26672,0.0362 -0.4122,0.1267 l 0,0 0,0 c -0.16974,0.0905 -0.29097,0.21711 -0.3637,0.34375 l 0,0 0,2.82251 -0.63042,0 0,-3.79953 0.43644,0 0.19398,0.48851 0,0 0,0 c 0.19396,-0.37995 0.53343,-0.56088 0.96988,-0.56088 l 0,0 0,0 c 0.7759,0 1.16385,0.50661 1.16385,1.50172 l 0,0 0,2.37018 -0.63042,0 z" /> 20.419 + <path 20.420 + inkscape:connector-curvature="0" 20.421 + id="70" 20.422 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.423 + d="m 357.96797,543.54142 0,0 0.33946,-0.5428 0,0 0,0 c 0.36371,0.25331 0.70317,0.39807 0.99413,0.39807 l 0,0 0,0 c 0.29097,0 0.50918,-0.0544 0.67891,-0.16285 l 0,0 0,0 c 0.16973,-0.10858 0.24248,-0.23522 0.24248,-0.39804 l 0,0 0,0 c 0,-0.30758 -0.21823,-0.47042 -0.60617,-0.47042 l 0,0 0,0 c -0.0727,0 -0.21823,0.0362 -0.38796,0.0723 l 0,0 0,0 c -0.19398,0.0362 -0.33946,0.0543 -0.43645,0.0543 l 0,0 0,0 c -0.48494,0 -0.75165,-0.21711 -0.75165,-0.61518 l 0,0 0,0 c 0,-0.12655 0.0727,-0.23519 0.19398,-0.34375 l 0,0 0,0 c 0.097,-0.10857 0.24246,-0.18093 0.43644,-0.21711 l 0,0 0,0 c -0.50919,-0.25329 -0.75165,-0.68753 -0.75165,-1.32079 l 0,0 0,0 c 0,-0.37995 0.12123,-0.70562 0.38794,-0.97701 l 0,0 0,0 c 0.24248,-0.2714 0.55769,-0.39805 0.94564,-0.39805 l 0,0 0,0 c 0.33946,0 0.60617,0.0723 0.80015,0.23521 l 0,0 0.31521,-0.41613 0.4122,0.41613 -0.38795,0.30759 0,0 0,0 c 0.16972,0.2352 0.24247,0.52469 0.24247,0.86846 l 0,0 0,0 c 0,0.37995 -0.097,0.70562 -0.31522,0.97702 l 0,0 0,0 c -0.24246,0.2533 -0.50919,0.41612 -0.87288,0.45232 l 0,0 -0.50919,0.0542 0,0 0,0 c -0.0727,0 -0.14549,0.0362 -0.26672,0.0723 l 0,0 0,0 c -0.097,0.0362 -0.14548,0.10858 -0.14548,0.18095 l 0,0 0,0 c 0,0.0905 0.12123,0.14473 0.31521,0.14473 l 0,0 0,0 c 0.097,0 0.24247,-0.0181 0.43645,-0.0542 l 0,0 0,0 c 0.21821,-0.0362 0.3637,-0.0544 0.46069,-0.0544 l 0,0 0,0 c 0.33946,0 0.60617,0.0723 0.80014,0.25333 l 0,0 0,0 c 0.19398,0.18091 0.29097,0.43422 0.29097,0.75988 l 0,0 0,0 c 0,0.34378 -0.14548,0.63326 -0.43644,0.85037 l 0,0 0,0 c -0.29097,0.21713 -0.65467,0.32569 -1.09112,0.32569 l 0,0 0,0 c -0.24247,0 -0.48494,-0.0544 -0.72741,-0.14475 l 0,0 0,0 c -0.24247,-0.0723 -0.46069,-0.18094 -0.60618,-0.30758 z m 1.33359,-4.37848 0,0 0,0 c -0.21822,0 -0.4122,0.0904 -0.53343,0.25329 l 0,0 0,0 c -0.14549,0.16285 -0.21822,0.34377 -0.21822,0.57897 l 0,0 0,0 c 0,0.27139 0.0727,0.48851 0.19397,0.66945 l 0,0 0,0 c 0.14548,0.18092 0.31521,0.2533 0.55768,0.2533 l 0,0 0,0 c 0.21822,0 0.38795,-0.0723 0.50918,-0.2533 l 0,0 0,0 c 0.12124,-0.16285 0.19398,-0.37995 0.19398,-0.66945 l 0,0 0,0 c 0,-0.2352 -0.0727,-0.41612 -0.21822,-0.57897 l 0,0 0,0 c -0.12124,-0.16284 -0.29097,-0.25329 -0.48494,-0.25329 z" /> 20.424 + <path 20.425 + inkscape:connector-curvature="0" 20.426 + id="71" 20.427 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.428 + d="m 362.96286,539.97712 1.1396,0 0,0.50659 -1.1396,0 0,1.23032 -0.46069,0 0,-1.23032 -1.09112,0 0,-0.50659 1.09112,0 0,-1.21224 0.46069,0 0,1.21224 z" /> 20.429 + <path 20.430 + inkscape:connector-curvature="0" 20.431 + id="72" 20.432 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.433 + d="m 365.63002,540.48371 0,0 0,2.00832 -0.65467,0 0,-5.21078 0,0 0,0 c 0.50919,-0.0181 0.80015,-0.0362 0.89714,-0.0362 l 0,0 0,0 c 1.40632,0 2.061,0.5066 2.061,1.51979 l 0,0 0,0 c 0,1.15796 -0.58193,1.75502 -1.81853,1.75502 l 0,0 0,0 c -0.0727,0 -0.21822,-0.0181 -0.48494,-0.0362 z m 0,-2.55109 0,0 0,1.89974 0,0 0,0 c 0.29096,0.0362 0.43645,0.0362 0.43645,0.0362 l 0,0 0,0 c 0.8244,0 1.23659,-0.32567 1.23659,-1.01321 l 0,0 0,0 c 0,-0.65135 -0.43644,-0.95893 -1.30933,-0.95893 l 0,0 0,0 c -0.097,0 -0.19398,0 -0.36371,0.0362 z" /> 20.434 + <path 20.435 + inkscape:connector-curvature="0" 20.436 + id="73" 20.437 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.438 + d="m 343.27432,547.77517 0,0 0,1.99023 -0.63043,0 0,-5.19268 0,0 0,0 c 0.48494,-0.0181 0.77589,-0.0362 0.87289,-0.0362 l 0,0 0,0 c 1.38207,0 2.08523,0.50661 2.08523,1.51981 l 0,0 0,0 c 0,1.17605 -0.63041,1.75502 -1.84276,1.75502 l 0,0 0,0 c -0.0727,0 -0.21823,0 -0.48493,-0.0362 z m 0,-2.56919 0,0 0,1.93593 0,0 0,0 c 0.29095,0.0181 0.43643,0.0362 0.46068,0.0362 l 0,0 0,0 c 0.7759,0 1.1881,-0.34377 1.1881,-1.04941 l 0,0 0,0 c 0,-0.63323 -0.43644,-0.95892 -1.28508,-0.95892 l 0,0 0,0 c -0.0727,0 -0.19399,0.0181 -0.3637,0.0362 z" /> 20.439 + <path 20.440 + inkscape:connector-curvature="0" 20.441 + id="74" 20.442 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.443 + d="m 346.35368,548.71599 0,0 0,-4.30612 0.60616,0 0,4.17948 0,0 0,0 c 0,0.21713 0.0728,0.37995 0.16973,0.48851 l 0,0 0,0 c 0.12124,0.10858 0.24249,0.16283 0.43645,0.16283 l 0,0 0,0.59707 0,0 0,0 c -0.82439,0 -1.21234,-0.37995 -1.21234,-1.12177 z" /> 20.444 + <path 20.445 + inkscape:connector-curvature="0" 20.446 + id="75" 20.447 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.448 + d="m 348.87537,545.96588 0,0 0,2.44253 0,0 0,0 c 0,0.59707 0.21822,0.86847 0.70315,0.86847 l 0,0 0,0 c 0.19398,0 0.36371,-0.0723 0.53345,-0.18092 l 0,0 0,0 c 0.16971,-0.1267 0.2667,-0.2714 0.33945,-0.43424 l 0,0 0,-2.69584 0.60616,0 0,3.79952 -0.60616,0 0,-0.52471 0,0 0,0 c -0.0727,0.16285 -0.21822,0.2895 -0.43645,0.41614 l 0,0 0,0 c -0.19399,0.1267 -0.38795,0.18093 -0.58192,0.18093 l 0,0 0,0 c -0.38796,0 -0.67891,-0.10857 -0.8729,-0.34376 l 0,0 0,0 c -0.21823,-0.25331 -0.31521,-0.57897 -0.31521,-1.0132 l 0,0 0,-2.51492 0.63043,0 z" /> 20.449 + <path 20.450 + inkscape:connector-curvature="0" 20.451 + id="76" 20.452 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.453 + d="m 351.785,550.81479 0,0 0.33946,-0.54279 0,0 0,0 c 0.3637,0.2714 0.70317,0.39804 0.99412,0.39804 l 0,0 0,0 c 0.29096,0 0.5092,-0.0542 0.67891,-0.16284 l 0,0 0,0 c 0.14548,-0.0905 0.24247,-0.2352 0.24247,-0.37993 l 0,0 0,0 c 0,-0.30759 -0.21822,-0.47044 -0.63042,-0.47044 l 0,0 0,0 c -0.0485,0 -0.19398,0.0181 -0.3637,0.0544 l 0,0 0,0 c -0.19398,0.0361 -0.33946,0.0542 -0.43645,0.0542 l 0,0 0,0 c -0.48493,0 -0.75166,-0.19902 -0.75166,-0.61517 l 0,0 0,0 c 0,-0.10857 0.0727,-0.21711 0.19398,-0.32567 l 0,0 0,0 c 0.097,-0.0905 0.24249,-0.16284 0.4122,-0.2171 l 0,0 0,0 c -0.48493,-0.25332 -0.72741,-0.68754 -0.72741,-1.3027 l 0,0 0,0 c 0,-0.39805 0.12123,-0.74182 0.38796,-0.99513 l 0,0 0,0 c 0.24247,-0.27138 0.55767,-0.39802 0.94563,-0.39802 l 0,0 0,0 c 0.33945,0 0.60617,0.0723 0.80015,0.2171 l 0,0 0.31522,-0.39805 0.41218,0.41615 -0.38795,0.30758 0,0 0,0 c 0.16973,0.21712 0.24248,0.5247 0.24248,0.88656 l 0,0 0,0 c 0,0.37996 -0.097,0.70562 -0.33946,0.95893 l 0,0 0,0 c -0.21824,0.27138 -0.50918,0.41612 -0.84865,0.45231 l 0,0 -0.50918,0.0544 0,0 0,0 c -0.0728,0.0181 -0.14549,0.0361 -0.26672,0.0905 l 0,0 0,0 c -0.097,0.0362 -0.14548,0.0905 -0.14548,0.16283 l 0,0 0,0 c 0,0.0723 0.097,0.1267 0.31521,0.1267 l 0,0 0,0 c 0.097,0 0.24247,-0.0181 0.43644,-0.0544 l 0,0 0,0 c 0.21823,-0.0362 0.36371,-0.0362 0.4607,-0.0362 l 0,0 0,0 c 0.33944,0 0.60618,0.0723 0.80014,0.25329 l 0,0 0,0 c 0.19399,0.18094 0.29097,0.43424 0.29097,0.74182 l 0,0 0,0 c 0,0.36185 -0.14548,0.63326 -0.43645,0.85036 l 0,0 0,0 c -0.29097,0.21712 -0.65466,0.32567 -1.09111,0.32567 l 0,0 0,0 c -0.24247,0 -0.48494,-0.0362 -0.7274,-0.12669 l 0,0 0,0 c -0.24247,-0.0905 -0.4607,-0.19904 -0.60618,-0.32568 z m 1.33358,-4.3604 0,0 0,0 c -0.21822,0 -0.4122,0.0723 -0.53344,0.2352 l 0,0 0,0 c -0.14548,0.18093 -0.21821,0.37995 -0.21821,0.61517 l 0,0 0,0 c 0,0.27139 0.0727,0.48851 0.19396,0.66944 l 0,0 0,0 c 0.14549,0.16284 0.31522,0.25328 0.55769,0.25328 l 0,0 0,0 c 0.21823,0 0.38796,-0.0905 0.5092,-0.25328 l 0,0 0,0 c 0.12123,-0.16285 0.19396,-0.39805 0.19396,-0.66944 l 0,0 0,0 c 0,-0.23522 -0.0727,-0.43424 -0.21821,-0.61517 l 0,0 0,0 c -0.12124,-0.16283 -0.29097,-0.2352 -0.48495,-0.2352 z" /> 20.454 + <path 20.455 + inkscape:connector-curvature="0" 20.456 + id="77" 20.457 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.458 + d="m 355.90699,544.53653 0,0 0,0 c 0.097,0 0.19396,0.0362 0.26671,0.10857 l 0,0 0,0 c 0.0727,0.0905 0.097,0.18093 0.097,0.30758 l 0,0 0,0 c 0,0.10858 -0.0242,0.21712 -0.097,0.2895 l 0,0 0,0 c -0.0727,0.0905 -0.16973,0.12669 -0.26671,0.12669 l 0,0 0,0 c -0.12124,0 -0.19397,-0.0362 -0.26672,-0.12669 l 0,0 0,0 c -0.0727,-0.0723 -0.097,-0.18093 -0.097,-0.2895 l 0,0 0,0 c 0,-0.12669 0.0242,-0.21711 0.097,-0.30758 l 0,0 0,0 c 0.0727,-0.0723 0.14548,-0.10857 0.26672,-0.10857 z m -0.33947,5.22887 0,0 0,-3.22055 -0.46068,0 0,-0.57897 1.06686,0 0,3.79952 -0.60618,0 z" /> 20.459 + <path 20.460 + inkscape:connector-curvature="0" 20.461 + id="78" 20.462 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.463 + d="m 359.3258,549.7654 0,0 0,-2.18925 0,0 0,0 c 0,-0.41614 -0.0727,-0.68752 -0.16972,-0.85037 l 0,0 0,0 c -0.12124,-0.16284 -0.31521,-0.2533 -0.55768,-0.2533 l 0,0 0,0 c -0.14549,0 -0.29097,0.0542 -0.4607,0.14473 l 0,0 0,0 c -0.14548,0.0905 -0.26671,0.19904 -0.3637,0.34378 l 0,0 0,2.80441 -0.60617,0 0,-3.79952 0.4122,0 0.19397,0.5066 0,0 0,0 c 0.21822,-0.37995 0.55768,-0.56088 1.01837,-0.56088 l 0,0 0,0 c 0.77591,0 1.13961,0.50659 1.13961,1.5198 l 0,0 0,2.334 -0.60618,0 z" /> 20.464 + <path 20.465 + inkscape:connector-curvature="0" 20.466 + id="79" 20.467 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.468 + d="m 331.27205,532.64946 0,0 c 0,-0.0905 0.0242,-0.16283 0.0728,-0.23519 0.0485,-0.0723 0.12123,-0.1267 0.21821,-0.16285 0.097,-0.0362 0.19399,-0.0542 0.29097,-0.0542 l 0,0 0,0.45231 -0.58193,0 z" /> 20.469 + <path 20.470 + inkscape:connector-curvature="0" 20.471 + id="80" 20.472 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.473 + d="m 331.85398,532.19714 39.06188,0 0,0.45232 0,0.47042 -39.06188,0 0,-0.47042 0,-0.45232 z" /> 20.474 + <path 20.475 + inkscape:connector-curvature="0" 20.476 + id="81" 20.477 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.478 + d="m 370.91586,532.19714 0,0 c 0.12123,0 0.21823,0.0181 0.31521,0.0542 0.097,0.0362 0.16973,0.0905 0.21823,0.16285 0.0485,0.0723 0.097,0.14473 0.097,0.23519 l 0,0 0,0 -0.63042,0 0,-0.45231 z" /> 20.479 + <path 20.480 + inkscape:connector-curvature="0" 20.481 + id="82" 20.482 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.483 + d="m 371.54628,532.64946 0,23.17707 -0.63042,0 -0.60617,0 0,-23.17707 0.60617,0 0.63042,0 z" /> 20.484 + <path 20.485 + inkscape:connector-curvature="0" 20.486 + id="83" 20.487 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.488 + d="m 371.54628,555.82653 0,0 c 0,0.0905 -0.0485,0.16285 -0.097,0.23522 -0.0485,0.0723 -0.12123,0.12669 -0.21823,0.16282 -0.097,0.0362 -0.19398,0.0723 -0.31521,0.0723 l 0,0 0,-0.47043 0.63042,0 z" /> 20.489 + <path 20.490 + inkscape:connector-curvature="0" 20.491 + id="84" 20.492 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.493 + d="m 370.91586,556.29697 -39.06188,0 0,-0.47044 0,-0.45233 39.06188,0 0,0.45233 0,0.47044 z" /> 20.494 + <path 20.495 + inkscape:connector-curvature="0" 20.496 + id="85" 20.497 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.498 + d="m 331.85398,556.29697 0,0 c -0.097,0 -0.19397,-0.0362 -0.29097,-0.0723 -0.097,-0.0362 -0.16971,-0.0905 -0.21821,-0.16283 -0.0485,-0.0723 -0.0728,-0.14476 -0.0728,-0.23521 l 0,0 0.58193,0 0,0.47043 z" /> 20.499 + <path 20.500 + inkscape:connector-curvature="0" 20.501 + id="86" 20.502 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.503 + d="m 331.27205,555.82653 0,-23.17707 0.58193,0 0.63041,0 0,23.17707 -0.63041,0 -0.58193,0 z" /> 20.504 + <path 20.505 + inkscape:connector-curvature="0" 20.506 + id="87" 20.507 + style="fill:#008066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.508 + d="m 422.36795,539.83236 0,0 0,0 c 0,-0.74179 0.16973,-1.37506 0.50919,-1.88165 l 0,0 0,0 c 0.3637,-0.50662 0.82439,-0.75991 1.40632,-0.75991 l 0,0 0,0 c 0.67892,0 1.1881,0.23521 1.55181,0.70562 l 0,0 0,0 c 0.33946,0.47043 0.50919,1.12177 0.50919,1.93594 l 0,0 0,0 c 0,0.86846 -0.16973,1.53792 -0.53344,2.02642 l 0,0 0,0 c -0.33946,0.47042 -0.84864,0.72371 -1.52756,0.72371 l 0,0 0,0 c -0.58193,0 -1.06687,-0.25329 -1.40632,-0.778 l 0,0 0,0 c -0.33946,-0.50661 -0.50919,-1.15794 -0.50919,-1.97213 z m 0.67891,0 0,0 0,0 c 0,0.59708 0.12124,1.10368 0.33946,1.50172 l 0,0 0,0 c 0.21823,0.39804 0.50919,0.59706 0.89714,0.59706 l 0,0 0,0 c 0.46069,0 0.80015,-0.18091 1.04262,-0.54278 l 0,0 0,0 c 0.21823,-0.36186 0.33946,-0.88656 0.33946,-1.556 l 0,0 0,0 c 0,-1.32077 -0.46069,-1.99021 -1.38208,-1.99021 l 0,0 0,0 c -0.38795,0 -0.70316,0.18092 -0.92139,0.54278 l 0,0 0,0 c -0.19397,0.36186 -0.31521,0.85037 -0.31521,1.44743 z" /> 20.509 + <path 20.510 + inkscape:connector-curvature="0" 20.511 + id="88" 20.512 + style="fill:#008066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.513 + d="m 427.65379,542.27492 0,0 0,1.71883 -0.60617,0 0,-5.30125 0.60617,0 0,0.30758 0,0 0,0 c 0.24247,-0.25329 0.53344,-0.37995 0.84864,-0.37995 l 0,0 0,0 c 0.50919,0 0.89715,0.16284 1.16386,0.50661 l 0,0 0,0 c 0.29097,0.34376 0.4122,0.81418 0.4122,1.46555 l 0,0 0,0 c 0,0.57897 -0.12123,1.04937 -0.4122,1.41123 l 0,0 0,0 c -0.26671,0.37996 -0.67892,0.56089 -1.21235,0.56089 l 0,0 0,0 c -0.14548,0 -0.29096,-0.0362 -0.46069,-0.0904 l 0,0 0,0 c -0.16973,-0.0542 -0.29096,-0.1267 -0.33946,-0.19901 z m 0,-2.76823 0,0 0,2.20734 0,0 0,0 c 0.0485,0.0723 0.12123,0.1267 0.24247,0.19902 l 0,0 0,0 c 0.14548,0.0544 0.26672,0.0723 0.38795,0.0723 l 0,0 0,0 c 0.75166,0 1.13961,-0.47041 1.13961,-1.41123 l 0,0 0,0 c 0,-0.48853 -0.0727,-0.83228 -0.26672,-1.04939 l 0,0 0,0 c -0.19397,-0.21713 -0.48494,-0.32569 -0.87289,-0.32569 l 0,0 0,0 c -0.097,0 -0.19397,0.0181 -0.31521,0.0905 l 0,0 0,0 c -0.14548,0.0723 -0.24247,0.14475 -0.31521,0.21712 z" /> 20.514 + <path 20.515 + inkscape:connector-curvature="0" 20.516 + id="89" 20.517 + style="fill:#008066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.518 + d="m 433.69129,540.64655 0,0 -2.49744,0 0,0 0,0 c 0,0.45231 0.097,0.79609 0.33946,1.03131 l 0,0 0,0 c 0.19397,0.2171 0.43645,0.30756 0.75166,0.30756 l 0,0 0,0 c 0.3637,0 0.65466,-0.10858 0.89714,-0.32566 l 0,0 0.24246,0.48851 0,0 0,0 c -0.0727,0.0905 -0.21822,0.18093 -0.41219,0.27138 l 0,0 0,0 c -0.26672,0.0905 -0.53344,0.14476 -0.84865,0.14476 l 0,0 0,0 c -0.43645,0 -0.80015,-0.16285 -1.11536,-0.48851 l 0,0 0,0 c -0.33946,-0.36187 -0.50919,-0.85038 -0.50919,-1.44744 l 0,0 0,0 c 0,-0.63326 0.16973,-1.12177 0.53343,-1.50172 l 0,0 0,0 c 0.31521,-0.34377 0.67892,-0.50661 1.11537,-0.50661 l 0,0 0,0 c 0.48494,0 0.87289,0.14475 1.16385,0.45232 l 0,0 0,0 c 0.24247,0.30761 0.38795,0.66945 0.38795,1.15797 l 0,0 0,0 c 0,0.16282 -0.0242,0.28947 -0.0485,0.41613 z m -1.47907,-1.44745 0,0 0,0 c -0.29096,0 -0.50919,0.0905 -0.70316,0.2895 l 0,0 0,0 c -0.16973,0.18092 -0.29096,0.39804 -0.31521,0.66945 l 0,0 1.93976,0 0,0 0,0 c 0,-0.27141 -0.0727,-0.48853 -0.21823,-0.66945 l 0,0 0,0 c -0.16972,-0.19902 -0.41219,-0.2895 -0.70316,-0.2895 z" /> 20.519 + <path 20.520 + inkscape:connector-curvature="0" 20.521 + id="90" 20.522 + style="fill:#008066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.523 + d="m 436.55243,542.49203 0,0 0,-2.22544 0,0 0,0 c 0,-0.39803 -0.0727,-0.66943 -0.16972,-0.83227 l 0,0 0,0 c -0.12124,-0.16282 -0.31521,-0.23522 -0.55769,-0.23522 l 0,0 0,0 c -0.14548,0 -0.29096,0.0362 -0.46069,0.1267 l 0,0 0,0 c -0.14548,0.0905 -0.26672,0.21711 -0.3637,0.34375 l 0,0 0,2.82251 -0.60617,0 0,-3.79953 0.41219,0 0.19398,0.48851 0,0 0,0 c 0.21822,-0.37995 0.55768,-0.56088 1.01837,-0.56088 l 0,0 0,0 c 0.7759,0 1.13961,0.50661 1.13961,1.50172 l 0,0 0,2.37018 -0.60618,0 z" /> 20.524 + <path 20.525 + inkscape:connector-curvature="0" 20.526 + id="91" 20.527 + style="fill:#008066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.528 + d="m 441.66855,542.49203 -0.58193,-3.32909 -1.04262,3.40147 -0.16973,0 -1.01838,-3.40147 -0.55767,3.32909 -0.63043,0 0.89714,-5.21078 0.31521,0 1.09112,3.79954 1.04262,-3.79954 0.29096,0 0.96988,5.21078 -0.60617,0 z" /> 20.529 + <path 20.530 + inkscape:connector-curvature="0" 20.531 + id="92" 20.532 + style="fill:#008066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.533 + d="m 443.46282,540.48371 0,0 0,2.00832 -0.65467,0 0,-5.21078 0,0 0,0 c 0.48494,-0.0181 0.80015,-0.0362 0.89714,-0.0362 l 0,0 0,0 c 1.38208,0 2.061,0.5066 2.061,1.51979 l 0,0 0,0 c 0,1.15796 -0.58193,1.75502 -1.81853,1.75502 l 0,0 0,0 c -0.0727,0 -0.24247,-0.0181 -0.48494,-0.0362 z m 0,-2.55109 0,0 0,1.89974 0,0 0,0 c 0.26672,0.0362 0.4122,0.0362 0.43645,0.0362 l 0,0 0,0 c 0.80015,0 1.21234,-0.32567 1.21234,-1.01321 l 0,0 0,0 c 0,-0.65135 -0.43644,-0.95893 -1.28508,-0.95893 l 0,0 0,0 c -0.097,0 -0.21823,0 -0.36371,0.0362 z" /> 20.534 + <path 20.535 + inkscape:connector-curvature="0" 20.536 + id="93" 20.537 + style="fill:#008066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.538 + d="m 448.02125,539.97712 1.13962,0 0,0.50659 -1.13962,0 0,1.23032 -0.46069,0 0,-1.23032 -1.1396,0 0,-0.50659 1.1396,0 0,-1.21224 0.46069,0 0,1.21224 z" /> 20.539 + <path 20.540 + inkscape:connector-curvature="0" 20.541 + id="94" 20.542 + style="fill:#008066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.543 + d="m 450.68843,540.48371 0,0 0,2.00832 -0.65468,0 0,-5.21078 0,0 0,0 c 0.50919,-0.0181 0.80015,-0.0362 0.89714,-0.0362 l 0,0 0,0 c 1.38208,0 2.06099,0.5066 2.06099,1.51979 l 0,0 0,0 c 0,1.15796 -0.60617,1.75502 -1.81852,1.75502 l 0,0 0,0 c -0.0727,0 -0.21822,-0.0181 -0.48493,-0.0362 z m 0,-2.55109 0,0 0,1.89974 0,0 0,0 c 0.29096,0.0362 0.43644,0.0362 0.43644,0.0362 l 0,0 0,0 c 0.80014,0 1.21235,-0.32567 1.21235,-1.01321 l 0,0 0,0 c 0,-0.65135 -0.43645,-0.95893 -1.2851,-0.95893 l 0,0 0,0 c -0.097,0 -0.19397,0 -0.36369,0.0362 z" /> 20.544 + <path 20.545 + inkscape:connector-curvature="0" 20.546 + id="95" 20.547 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.548 + d="m 429.71478,547.77517 0,0 0,1.99023 -0.65466,0 0,-5.19268 0,0 0,0 c 0.50918,-0.0181 0.80014,-0.0362 0.89714,-0.0362 l 0,0 0,0 c 1.40632,0 2.08523,0.50661 2.08523,1.51981 l 0,0 0,0 c 0,1.17605 -0.60617,1.75502 -1.84277,1.75502 l 0,0 0,0 c -0.0727,0 -0.24246,0 -0.48494,-0.0362 z m 0,-2.56919 0,0 0,1.93593 0,0 0,0 c 0.29097,0.0181 0.43645,0.0362 0.43645,0.0362 l 0,0 0,0 c 0.8244,0 1.23659,-0.34377 1.23659,-1.04941 l 0,0 0,0 c 0,-0.63323 -0.43644,-0.95892 -1.30933,-0.95892 l 0,0 0,0 c -0.097,0 -0.21823,0.0181 -0.36371,0.0362 z" /> 20.549 + <path 20.550 + inkscape:connector-curvature="0" 20.551 + id="96" 20.552 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.553 + d="m 432.8184,548.71599 0,0 0,-4.30612 0.58192,0 0,4.17948 0,0 0,0 c 0,0.21713 0.0485,0.37995 0.16973,0.48851 l 0,0 0,0 c 0.097,0.10858 0.24247,0.16283 0.4122,0.16283 l 0,0 0,0.59707 0,0 0,0 c -0.7759,0 -1.16385,-0.37995 -1.16385,-1.12177 z" /> 20.554 + <path 20.555 + inkscape:connector-curvature="0" 20.556 + id="97" 20.557 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.558 + d="m 435.29159,545.96588 0,0 0,2.44253 0,0 0,0 c 0,0.59707 0.24247,0.86847 0.70316,0.86847 l 0,0 0,0 c 0.21823,0 0.4122,-0.0723 0.58193,-0.18092 l 0,0 0,0 c 0.16973,-0.1267 0.26672,-0.2714 0.31521,-0.43424 l 0,0 0,-2.69584 0.63042,0 0,3.79952 -0.63042,0 0,-0.52471 0,0 0,0 c -0.0485,0.16285 -0.19398,0.2895 -0.4122,0.41614 l 0,0 0,0 c -0.21822,0.1267 -0.41219,0.18093 -0.60617,0.18093 l 0,0 0,0 c -0.38795,0 -0.67892,-0.10857 -0.89714,-0.34376 l 0,0 0,0 c -0.19398,-0.25331 -0.29096,-0.57897 -0.29096,-1.0132 l 0,0 0,-2.51492 0.60617,0 z" /> 20.559 + <path 20.560 + inkscape:connector-curvature="0" 20.561 + id="98" 20.562 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.563 + d="m 438.24972,550.81479 0,0 0.33946,-0.54279 0,0 0,0 c 0.36371,0.2714 0.65467,0.39804 0.94563,0.39804 l 0,0 0,0 c 0.29097,0 0.50919,-0.0542 0.67891,-0.16284 l 0,0 0,0 c 0.14549,-0.0905 0.24248,-0.2352 0.24248,-0.37993 l 0,0 0,0 c 0,-0.30759 -0.21823,-0.47044 -0.63042,-0.47044 l 0,0 0,0 c -0.0727,0 -0.19398,0.0181 -0.36371,0.0544 l 0,0 0,0 c -0.16973,0.0361 -0.31521,0.0542 -0.4122,0.0542 l 0,0 0,0 c -0.48494,0 -0.72741,-0.19902 -0.72741,-0.61517 l 0,0 0,0 c 0,-0.10857 0.0727,-0.21711 0.16973,-0.32567 l 0,0 0,0 c 0.12124,-0.0905 0.26672,-0.16284 0.43645,-0.2171 l 0,0 0,0 c -0.48494,-0.25332 -0.72741,-0.68754 -0.72741,-1.3027 l 0,0 0,0 c 0,-0.39805 0.12123,-0.74182 0.38795,-0.99513 l 0,0 0,0 c 0.24247,-0.27138 0.53344,-0.39802 0.89714,-0.39802 l 0,0 0,0 c 0.33946,0 0.60617,0.0723 0.80015,0.2171 l 0,0 0.31521,-0.39805 0.38795,0.41615 -0.3637,0.30758 0,0 0,0 c 0.16973,0.21712 0.24246,0.5247 0.24246,0.88656 l 0,0 0,0 c 0,0.37996 -0.12123,0.70562 -0.33946,0.95893 l 0,0 0,0 c -0.21821,0.27138 -0.50918,0.41612 -0.87288,0.45231 l 0,0 -0.48495,0.0544 0,0 0,0 c -0.0485,0.0181 -0.14548,0.0361 -0.21821,0.0905 l 0,0 0,0 c -0.097,0.0362 -0.14548,0.0905 -0.14548,0.16283 l 0,0 0,0 c 0,0.0723 0.097,0.1267 0.29096,0.1267 l 0,0 0,0 c 0.097,0 0.24246,-0.0181 0.41219,-0.0544 l 0,0 0,0 c 0.19398,-0.0362 0.33946,-0.0362 0.43645,-0.0362 l 0,0 0,0 c 0.36371,0 0.63042,0.0723 0.8244,0.25329 l 0,0 0,0 c 0.19397,0.18094 0.29096,0.43424 0.29096,0.74182 l 0,0 0,0 c 0,0.36185 -0.14548,0.63326 -0.43644,0.85036 l 0,0 0,0 c -0.29096,0.21712 -0.65467,0.32567 -1.11537,0.32567 l 0,0 0,0 c -0.19397,0 -0.43644,-0.0362 -0.65467,-0.12669 l 0,0 0,0 c -0.24246,-0.0905 -0.46069,-0.19904 -0.60617,-0.32568 z m 1.26084,-4.3604 0,0 0,0 c -0.19397,0 -0.3637,0.0723 -0.50919,0.2352 l 0,0 0,0 c -0.097,0.18093 -0.16972,0.37995 -0.16972,0.61517 l 0,0 0,0 c 0,0.27139 0.0727,0.48851 0.16972,0.66944 l 0,0 0,0 c 0.14549,0.16284 0.31522,0.25328 0.50919,0.25328 l 0,0 0,0 c 0.21823,0 0.38795,-0.0905 0.53344,-0.25328 l 0,0 0,0 c 0.12124,-0.16285 0.16972,-0.39805 0.16972,-0.66944 l 0,0 0,0 c 0,-0.23522 -0.0727,-0.43424 -0.19397,-0.61517 l 0,0 0,0 c -0.14548,-0.16283 -0.29096,-0.2352 -0.50919,-0.2352 z" /> 20.564 + <path 20.565 + inkscape:connector-curvature="0" 20.566 + id="99" 20.567 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.568 + d="m 442.32322,544.53653 0,0 0,0 c 0.12123,0 0.19397,0.0362 0.29096,0.10857 l 0,0 0,0 c 0.0727,0.0905 0.097,0.18093 0.097,0.30758 l 0,0 0,0 c 0,0.10858 -0.0242,0.21712 -0.097,0.2895 l 0,0 0,0 c -0.097,0.0905 -0.16973,0.12669 -0.29096,0.12669 l 0,0 0,0 c -0.097,0 -0.19398,-0.0362 -0.26673,-0.12669 l 0,0 0,0 c -0.0727,-0.0723 -0.12123,-0.18093 -0.12123,-0.2895 l 0,0 0,0 c 0,-0.12669 0.0485,-0.21711 0.12123,-0.30758 l 0,0 0,0 c 0.0727,-0.0723 0.16973,-0.10857 0.26673,-0.10857 z m -0.33946,5.22887 0,0 0,-3.22055 -0.48494,0 0,-0.57897 1.11536,0 0,3.79952 -0.63042,0 z" /> 20.569 + <path 20.570 + inkscape:connector-curvature="0" 20.571 + id="100" 20.572 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.573 + d="m 445.74204,549.7654 0,0 0,-2.18925 0,0 0,0 c 0,-0.41614 -0.0727,-0.68752 -0.16973,-0.85037 l 0,0 0,0 c -0.12124,-0.16284 -0.29097,-0.2533 -0.55768,-0.2533 l 0,0 0,0 c -0.14548,0 -0.29096,0.0542 -0.43644,0.14473 l 0,0 0,0 c -0.14549,0.0905 -0.26673,0.19904 -0.36371,0.34378 l 0,0 0,2.80441 -0.60618,0 0,-3.79952 0.4122,0 0.19398,0.5066 0,0 0,0 c 0.21822,-0.37995 0.55767,-0.56088 1.01837,-0.56088 l 0,0 0,0 c 0.72741,0 1.11536,0.50659 1.11536,1.5198 l 0,0 0,2.334 -0.60617,0 z" /> 20.574 + <path 20.575 + inkscape:connector-curvature="0" 20.576 + id="101" 20.577 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.578 + d="m 417.71253,532.64946 0,0 c 0,-0.0905 0.0242,-0.16283 0.0727,-0.23519 0.0485,-0.0723 0.12124,-0.1267 0.21823,-0.16285 0.097,-0.0362 0.19397,-0.0542 0.3152,-0.0542 l 0,0 0,0.45231 -0.60617,0 z" /> 20.579 + <path 20.580 + inkscape:connector-curvature="0" 20.581 + id="102" 20.582 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.583 + d="m 418.3187,532.19714 39.0134,0 0,0.45232 0,0.47042 -39.0134,0 0,-0.47042 0,-0.45232 z" /> 20.584 + <path 20.585 + inkscape:connector-curvature="0" 20.586 + id="103" 20.587 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.588 + d="m 457.3321,532.19714 0,0 c 0.12123,0 0.21821,0.0181 0.31521,0.0542 0.097,0.0362 0.16973,0.0905 0.21821,0.16285 0.0485,0.0723 0.097,0.14473 0.097,0.23519 l 0,0 0,0 -0.63042,0 0,-0.45231 z" /> 20.589 + <path 20.590 + inkscape:connector-curvature="0" 20.591 + id="104" 20.592 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.593 + d="m 457.96252,532.64946 0,23.24944 -0.63042,0 -0.58193,0 0,-23.24944 0.58193,0 0.63042,0 z" /> 20.594 + <path 20.595 + inkscape:connector-curvature="0" 20.596 + id="105" 20.597 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.598 + d="m 457.96252,555.8989 0,0 c 0,0.0905 -0.0485,0.16285 -0.097,0.23522 -0.0485,0.0723 -0.12123,0.12669 -0.21821,0.16285 -0.097,0.0362 -0.19398,0.0723 -0.31521,0.0723 l 0,0 0,-0.47044 0.63042,0 z" /> 20.599 + <path 20.600 + inkscape:connector-curvature="0" 20.601 + id="106" 20.602 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.603 + d="m 457.3321,556.36933 -39.0134,0 0,-0.47043 0,-0.45232 39.0134,0 0,0.45232 0,0.47043 z" /> 20.604 + <path 20.605 + inkscape:connector-curvature="0" 20.606 + id="107" 20.607 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.608 + d="m 418.3187,556.36933 0,0 c -0.12123,0 -0.21822,-0.0362 -0.3152,-0.0723 -0.097,-0.0362 -0.16973,-0.0905 -0.21823,-0.16285 -0.0485,-0.0723 -0.0727,-0.14473 -0.0727,-0.23521 l 0,0 0.60617,0 0,0.47043 z" /> 20.609 + <path 20.610 + inkscape:connector-curvature="0" 20.611 + id="108" 20.612 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.613 + d="m 417.71253,555.8989 0,-23.24944 0.60617,0 0.63042,0 0,23.24944 -0.63042,0 -0.60617,0 z" /> 20.614 + <path 20.615 + inkscape:connector-curvature="0" 20.616 + id="109" 20.617 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.618 + d="m 492.27199,542.49203 -0.55768,-3.32909 -1.04262,3.40147 -0.16973,0 -1.09111,-3.40147 -0.53344,3.32909 -0.63042,0 0.89714,-5.21078 0.29097,0 1.1396,3.79954 1.06687,-3.79954 0.29096,0 0.96988,5.21078 -0.63042,0 z" /> 20.619 + <path 20.620 + inkscape:connector-curvature="0" 20.621 + id="110" 20.622 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.623 + d="m 494.04201,540.48371 0,0 0,2.00832 -0.65466,0 0,-5.21078 0,0 0,0 c 0.50918,-0.0181 0.80015,-0.0362 0.89714,-0.0362 l 0,0 0,0 c 1.40632,0 2.08524,0.5066 2.08524,1.51979 l 0,0 0,0 c 0,1.15796 -0.60618,1.75502 -1.84277,1.75502 l 0,0 0,0 c -0.0727,0 -0.21822,-0.0181 -0.48495,-0.0362 z m 0,-2.55109 0,0 0,1.89974 0,0 0,0 c 0.29097,0.0362 0.43645,0.0362 0.43645,0.0362 l 0,0 0,0 c 0.8244,0 1.2366,-0.32567 1.2366,-1.01321 l 0,0 0,0 c 0,-0.65135 -0.43645,-0.95893 -1.30934,-0.95893 l 0,0 0,0 c -0.097,0 -0.19398,0 -0.36371,0.0362 z" /> 20.624 + <path 20.625 + inkscape:connector-curvature="0" 20.626 + id="111" 20.627 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.628 + d="m 497.24262,542.49203 0,-5.21078 0.65467,0 0,5.21078 -0.65467,0 z" /> 20.629 + <path 20.630 + inkscape:connector-curvature="0" 20.631 + id="112" 20.632 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.633 + d="m 500.49172,539.97712 1.1396,0 0,0.50659 -1.1396,0 0,1.23032 -0.4607,0 0,-1.23032 -1.11536,0 0,-0.50659 1.11536,0 0,-1.21224 0.4607,0 0,1.21224 z" /> 20.634 + <path 20.635 + inkscape:connector-curvature="0" 20.636 + id="113" 20.637 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.638 + d="m 503.15888,540.48371 0,0 0,2.00832 -0.65466,0 0,-5.21078 0,0 0,0 c 0.48493,-0.0181 0.80014,-0.0362 0.89713,-0.0362 l 0,0 0,0 c 1.38208,0 2.06099,0.5066 2.06099,1.51979 l 0,0 0,0 c 0,1.15796 -0.58192,1.75502 -1.81852,1.75502 l 0,0 0,0 c -0.0727,0 -0.24247,-0.0181 -0.48494,-0.0362 z m 0,-2.55109 0,0 0,1.89974 0,0 0,0 c 0.26672,0.0362 0.4122,0.0362 0.43644,0.0362 l 0,0 0,0 c 0.80016,0 1.21235,-0.32567 1.21235,-1.01321 l 0,0 0,0 c 0,-0.65135 -0.43644,-0.95893 -1.28508,-0.95893 l 0,0 0,0 c -0.097,0 -0.21823,0 -0.36371,0.0362 z" /> 20.639 + <path 20.640 + inkscape:connector-curvature="0" 20.641 + id="114" 20.642 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.643 + d="m 488.9744,547.77517 0,0 0,1.99023 -0.65467,0 0,-5.19268 0,0 0,0 c 0.50919,-0.0181 0.80015,-0.0362 0.89714,-0.0362 l 0,0 0,0 c 1.38208,0 2.08524,0.50661 2.08524,1.51981 l 0,0 0,0 c 0,1.17605 -0.60618,1.75502 -1.84278,1.75502 l 0,0 0,0 c -0.0727,0 -0.24246,0 -0.48493,-0.0362 z m 0,-2.56919 0,0 0,1.93593 0,0 0,0 c 0.29097,0.0181 0.43645,0.0362 0.43645,0.0362 l 0,0 0,0 c 0.82439,0 1.21235,-0.34377 1.21235,-1.04941 l 0,0 0,0 c 0,-0.63323 -0.41221,-0.95892 -1.2851,-0.95892 l 0,0 0,0 c -0.097,0 -0.21822,0.0181 -0.3637,0.0362 z" /> 20.644 + <path 20.645 + inkscape:connector-curvature="0" 20.646 + id="115" 20.647 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.648 + d="m 492.05376,548.71599 0,0 0,-4.30612 0.63042,0 0,4.17948 0,0 0,0 c 0,0.21713 0.0485,0.37995 0.16973,0.48851 l 0,0 0,0 c 0.097,0.10858 0.24248,0.16283 0.38796,0.16283 l 0,0 0,0.59707 0,0 0,0 c -0.7759,0 -1.18811,-0.37995 -1.18811,-1.12177 z" /> 20.649 + <path 20.650 + inkscape:connector-curvature="0" 20.651 + id="116" 20.652 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.653 + d="m 494.5512,545.96588 0,0 0,2.44253 0,0 0,0 c 0,0.59707 0.24247,0.86847 0.70316,0.86847 l 0,0 0,0 c 0.21823,0 0.38796,-0.0723 0.55769,-0.18092 l 0,0 0,0 c 0.16973,-0.1267 0.29096,-0.2714 0.33946,-0.43424 l 0,0 0,-2.69584 0.63041,0 0,3.79952 -0.63041,0 0,-0.52471 0,0 0,0 c -0.0727,0.16285 -0.19398,0.2895 -0.4122,0.41614 l 0,0 0,0 c -0.21823,0.1267 -0.4122,0.18093 -0.60618,0.18093 l 0,0 0,0 c -0.38795,0 -0.67891,-0.10857 -0.89714,-0.34376 l 0,0 0,0 c -0.19398,-0.25331 -0.29096,-0.57897 -0.29096,-1.0132 l 0,0 0,-2.51492 0.60617,0 z" /> 20.654 + <path 20.655 + inkscape:connector-curvature="0" 20.656 + id="117" 20.657 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.658 + d="m 497.50934,550.81479 0,0 0.33945,-0.54279 0,0 0,0 c 0.36371,0.2714 0.67892,0.39804 0.99413,0.39804 l 0,0 0,0 c 0.26672,0 0.48494,-0.0542 0.63043,-0.16284 l 0,0 0,0 c 0.16972,-0.0905 0.24246,-0.2352 0.24246,-0.37993 l 0,0 0,0 c 0,-0.30759 -0.19398,-0.47044 -0.60617,-0.47044 l 0,0 0,0 c -0.0485,0 -0.16973,0.0181 -0.36371,0.0544 l 0,0 0,0 c -0.16973,0.0361 -0.31521,0.0542 -0.4122,0.0542 l 0,0 0,0 c -0.50919,0 -0.75165,-0.19902 -0.75165,-0.61517 l 0,0 0,0 c 0,-0.10857 0.0485,-0.21711 0.16973,-0.32567 l 0,0 0,0 c 0.12123,-0.0905 0.26671,-0.16284 0.43644,-0.2171 l 0,0 0,0 c -0.48494,-0.25332 -0.72741,-0.68754 -0.72741,-1.3027 l 0,0 0,0 c 0,-0.39805 0.12124,-0.74182 0.3637,-0.99513 l 0,0 0,0 c 0.26673,-0.27138 0.58194,-0.39802 0.94564,-0.39802 l 0,0 0,0 c 0.33946,0 0.60617,0.0723 0.80015,0.2171 l 0,0 0.31521,-0.39805 0.38795,0.41615 -0.3637,0.30758 0,0 0,0 c 0.14548,0.21712 0.24247,0.5247 0.24247,0.88656 l 0,0 0,0 c 0,0.37996 -0.12124,0.70562 -0.33946,0.95893 l 0,0 0,0 c -0.21822,0.27138 -0.50918,0.41612 -0.84864,0.45231 l 0,0 -0.50919,0.0544 0,0 0,0 c -0.0485,0.0181 -0.14549,0.0361 -0.24247,0.0905 l 0,0 0,0 c -0.097,0.0362 -0.14548,0.0905 -0.14548,0.16283 l 0,0 0,0 c 0,0.0723 0.097,0.1267 0.31521,0.1267 l 0,0 0,0 c 0.097,0 0.24247,-0.0181 0.43644,-0.0544 l 0,0 0,0 c 0.19398,-0.0362 0.31522,-0.0362 0.4122,-0.0362 l 0,0 0,0 c 0.33946,0 0.63042,0.0723 0.80015,0.25329 l 0,0 0,0 c 0.19398,0.18094 0.29097,0.43424 0.29097,0.74182 l 0,0 0,0 c 0,0.36185 -0.14549,0.63326 -0.4122,0.85036 l 0,0 0,0 c -0.29096,0.21712 -0.65467,0.32567 -1.09112,0.32567 l 0,0 0,0 c -0.21822,0 -0.46069,-0.0362 -0.70315,-0.12669 l 0,0 0,0 c -0.26673,-0.0905 -0.4607,-0.19904 -0.60618,-0.32568 z m 1.30933,-4.3604 0,0 0,0 c -0.21822,0 -0.38795,0.0723 -0.53343,0.2352 l 0,0 0,0 c -0.12124,0.18093 -0.19397,0.37995 -0.19397,0.61517 l 0,0 0,0 c 0,0.27139 0.0727,0.48851 0.19397,0.66944 l 0,0 0,0 c 0.14548,0.16284 0.31521,0.25328 0.53343,0.25328 l 0,0 0,0 c 0.21822,0 0.36371,-0.0905 0.48495,-0.25328 l 0,0 0,0 c 0.14548,-0.16285 0.19397,-0.39805 0.19397,-0.66944 l 0,0 0,0 c 0,-0.23522 -0.0727,-0.43424 -0.19397,-0.61517 l 0,0 0,0 c -0.14549,-0.16283 -0.29097,-0.2352 -0.48495,-0.2352 z" /> 20.659 + <path 20.660 + inkscape:connector-curvature="0" 20.661 + id="118" 20.662 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.663 + d="m 501.60707,544.53653 0,0 0,0 c 0.12124,0 0.19398,0.0362 0.26672,0.10857 l 0,0 0,0 c 0.097,0.0905 0.12124,0.18093 0.12124,0.30758 l 0,0 0,0 c 0,0.10858 -0.0242,0.21712 -0.12124,0.2895 l 0,0 0,0 c -0.0727,0.0905 -0.14548,0.12669 -0.26672,0.12669 l 0,0 0,0 c -0.097,0 -0.19397,-0.0362 -0.26671,-0.12669 l 0,0 0,0 c -0.0727,-0.0723 -0.12124,-0.18093 -0.12124,-0.2895 l 0,0 0,0 c 0,-0.12669 0.0485,-0.21711 0.12124,-0.30758 l 0,0 0,0 c 0.0727,-0.0723 0.16973,-0.10857 0.26671,-0.10857 z m -0.33945,5.22887 0,0 0,-3.22055 -0.48494,0 0,-0.57897 1.11536,0 0,3.79952 -0.63042,0 z" /> 20.664 + <path 20.665 + inkscape:connector-curvature="0" 20.666 + id="119" 20.667 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.668 + d="m 505.0259,549.7654 0,0 0,-2.18925 0,0 0,0 c 0,-0.41614 -0.0485,-0.68752 -0.16973,-0.85037 l 0,0 0,0 c -0.097,-0.16284 -0.29096,-0.2533 -0.55768,-0.2533 l 0,0 0,0 c -0.14548,0 -0.29096,0.0542 -0.43644,0.14473 l 0,0 0,0 c -0.16973,0.0905 -0.26673,0.19904 -0.36371,0.34378 l 0,0 0,2.80441 -0.63042,0 0,-3.79952 0.43644,0 0.19398,0.5066 0,0 0,0 c 0.21823,-0.37995 0.53344,-0.56088 1.01837,-0.56088 l 0,0 0,0 c 0.72742,0 1.11536,0.50659 1.11536,1.5198 l 0,0 0,2.334 -0.60617,0 z" /> 20.669 + <path 20.670 + inkscape:connector-curvature="0" 20.671 + id="120" 20.672 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.673 + d="m 476.97215,532.64946 0,0 c 0,-0.0905 0.0242,-0.16283 0.0727,-0.23519 0.0485,-0.0723 0.12123,-0.1267 0.21822,-0.16285 0.097,-0.0362 0.19397,-0.0542 0.31521,-0.0542 l 0,0 0,0.45231 -0.60617,0 z" /> 20.674 + <path 20.675 + inkscape:connector-curvature="0" 20.676 + id="121" 20.677 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.678 + d="m 477.57832,532.19714 39.03764,0 0,0.45232 0,0.47042 -39.03764,0 0,-0.47042 0,-0.45232 z" /> 20.679 + <path 20.680 + inkscape:connector-curvature="0" 20.681 + id="122" 20.682 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.683 + d="m 516.61596,532.19714 0,0 c 0.12123,0 0.21821,0.0181 0.31521,0.0542 0.0727,0.0362 0.14548,0.0905 0.19397,0.16285 0.0485,0.0723 0.097,0.14473 0.097,0.23519 l 0,0 0,0 -0.60617,0 0,-0.45231 z" /> 20.684 + <path 20.685 + inkscape:connector-curvature="0" 20.686 + id="123" 20.687 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.688 + d="m 517.22213,532.64946 0,23.24944 -0.60617,0 -0.60618,0 0,-23.24944 0.60618,0 0.60617,0 z" /> 20.689 + <path 20.690 + inkscape:connector-curvature="0" 20.691 + id="124" 20.692 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.693 + d="m 517.22213,555.8989 0,0 c 0,0.0905 -0.0485,0.16285 -0.097,0.23522 -0.0485,0.0723 -0.12124,0.12669 -0.19397,0.16285 -0.097,0.0362 -0.19398,0.0723 -0.31521,0.0723 l 0,0 0,-0.47044 0.60617,0 z" /> 20.694 + <path 20.695 + inkscape:connector-curvature="0" 20.696 + id="125" 20.697 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.698 + d="m 516.61596,556.36933 -39.03764,0 0,-0.47043 0,-0.45232 39.03764,0 0,0.45232 0,0.47043 z" /> 20.699 + <path 20.700 + inkscape:connector-curvature="0" 20.701 + id="126" 20.702 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.703 + d="m 477.57832,556.36933 0,0 c -0.12124,0 -0.21822,-0.0362 -0.31521,-0.0723 -0.097,-0.0362 -0.16973,-0.0905 -0.21822,-0.16285 -0.0485,-0.0723 -0.0727,-0.14473 -0.0727,-0.23521 l 0,0 0.60617,0 0,0.47043 z" /> 20.704 + <path 20.705 + inkscape:connector-curvature="0" 20.706 + id="127" 20.707 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.708 + d="m 476.97215,555.8989 0,-23.24944 0.60617,0 0.63042,0 0,23.24944 -0.63042,0 -0.60617,0 z" /> 20.709 + <path 20.710 + inkscape:connector-curvature="0" 20.711 + id="128" 20.712 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.713 + d="m 542.82693,542.56441 -2.44894,-3.79953 0,3.72715 -0.63041,0 0,-5.21078 0.26671,0 2.40045,3.60052 0,-3.60052 0.60617,0 0,5.28316 -0.19398,0 z" /> 20.714 + <path 20.715 + inkscape:connector-curvature="0" 20.716 + id="129" 20.717 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.718 + d="m 546.87619,540.64655 0,0 -2.49745,0 0,0 0,0 c 0,0.45231 0.12124,0.79609 0.33946,1.03131 l 0,0 0,0 c 0.19398,0.2171 0.4607,0.30756 0.77591,0.30756 l 0,0 0,0 c 0.33946,0 0.65467,-0.10858 0.87289,-0.32566 l 0,0 0.26671,0.48851 0,0 0,0 c -0.097,0.0905 -0.24247,0.18093 -0.43644,0.27138 l 0,0 0,0 c -0.24247,0.0905 -0.53343,0.14476 -0.8244,0.14476 l 0,0 0,0 c -0.43644,0 -0.8244,-0.16285 -1.11536,-0.48851 l 0,0 0,0 c -0.36371,-0.36187 -0.53344,-0.85038 -0.53344,-1.44744 l 0,0 0,0 c 0,-0.63326 0.19398,-1.12177 0.53344,-1.50172 l 0,0 0,0 c 0.31521,-0.34377 0.67892,-0.50661 1.11536,-0.50661 l 0,0 0,0 c 0.50918,0 0.89714,0.14475 1.1881,0.45232 l 0,0 0,0 c 0.26672,0.30761 0.38795,0.66945 0.38795,1.15797 l 0,0 0,0 c 0,0.16282 -0.0242,0.28947 -0.0727,0.41613 z m -1.47907,-1.44745 0,0 0,0 c -0.26672,0 -0.50919,0.0905 -0.67892,0.2895 l 0,0 0,0 c -0.19398,0.18092 -0.29096,0.39804 -0.31521,0.66945 l 0,0 1.93976,0 0,0 0,0 c 0,-0.27141 -0.0727,-0.48853 -0.24247,-0.66945 l 0,0 0,0 c -0.16973,-0.19902 -0.38795,-0.2895 -0.70316,-0.2895 z" /> 20.719 + <path 20.720 + inkscape:connector-curvature="0" 20.721 + id="130" 20.722 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.723 + d="m 550.82844,542.56441 -0.16973,0 -1.01837,-2.60541 -1.01838,2.60541 -0.16973,0 -1.26083,-3.88999 0.67891,0 0.7274,2.49684 0.94564,-2.49684 0.16973,0 0.94563,2.49684 0.80016,-2.49684 0.63041,0 -1.26084,3.88999 z" /> 20.724 + <path 20.725 + inkscape:connector-curvature="0" 20.726 + id="131" 20.727 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.728 + d="m 552.62272,542.49203 0,-5.21078 0.63042,0 0,4.55943 2.13373,0 0,0.65135 -2.76415,0 z" /> 20.729 + <path 20.730 + inkscape:connector-curvature="0" 20.731 + id="132" 20.732 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.733 + d="m 557.88431,542.05781 0,0 0,0 c -0.24247,0.34375 -0.63042,0.5066 -1.13961,0.5066 l 0,0 0,0 c -0.26671,0 -0.50919,-0.10857 -0.70316,-0.32568 l 0,0 0,0 c -0.21822,-0.21712 -0.31521,-0.4885 -0.31521,-0.81419 l 0,0 0,0 c 0,-0.37994 0.16972,-0.70563 0.48494,-0.97701 l 0,0 0,0 c 0.29096,-0.27139 0.70316,-0.39804 1.1881,-0.39804 l 0,0 0,0 c 0.12124,0 0.26672,0.0181 0.43645,0.0905 l 0,0 0,0 c 0,-0.59707 -0.26672,-0.92274 -0.75166,-0.92274 l 0,0 0,0 c -0.38795,0 -0.70316,0.12669 -0.89714,0.34377 l 0,0 -0.26672,-0.5609 0,0 0,0 c 0.12124,-0.10857 0.26672,-0.19902 0.48494,-0.27138 l 0,0 0,0 c 0.21823,-0.0723 0.4122,-0.10858 0.60618,-0.10858 l 0,0 0,0 c 0.50919,0 0.87289,0.1267 1.09112,0.37995 l 0,0 0,0 c 0.24246,0.25331 0.3637,0.65134 0.3637,1.17606 l 0,0 0,1.37506 0,0 0,0 c 0,0.32565 0.0727,0.56087 0.26672,0.66943 l 0,0 0,0.34378 0,0 0,0 c -0.26672,0 -0.43645,-0.0362 -0.58193,-0.1267 l 0,0 0,0 c -0.12124,-0.0723 -0.19398,-0.19902 -0.26672,-0.37993 z m -0.0485,-1.44744 0,0 0,0 c -0.19398,-0.0362 -0.33946,-0.0723 -0.41221,-0.0723 l 0,0 0,0 c -0.3152,0 -0.58192,0.0904 -0.7759,0.27138 l 0,0 0,0 c -0.19397,0.18093 -0.29096,0.37997 -0.29096,0.61516 l 0,0 0,0 c 0,0.39805 0.21822,0.59707 0.63042,0.59707 l 0,0 0,0 c 0.31521,0 0.60618,-0.16284 0.84865,-0.48851 l 0,-0.92274 z" /> 20.734 + <path 20.735 + inkscape:connector-curvature="0" 20.736 + id="133" 20.737 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.738 + d="m 561.56985,542.49203 0,0 0,-2.22544 0,0 0,0 c 0,-0.39803 -0.0727,-0.66943 -0.16973,-0.83227 l 0,0 0,0 c -0.12123,-0.16282 -0.31521,-0.23522 -0.55768,-0.23522 l 0,0 0,0 c -0.14548,0 -0.29096,0.0362 -0.46069,0.1267 l 0,0 0,0 c -0.14548,0.0905 -0.26671,0.21711 -0.36371,0.34375 l 0,0 0,2.82251 -0.60617,0 0,-3.79953 0.4122,0 0.19397,0.48851 0,0 0,0 c 0.21823,-0.37995 0.55769,-0.56088 1.01838,-0.56088 l 0,0 0,0 c 0.77591,0 1.13961,0.50661 1.13961,1.50172 l 0,0 0,2.37018 -0.60618,0 z" /> 20.739 + <path 20.740 + inkscape:connector-curvature="0" 20.741 + id="134" 20.742 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.743 + d="m 562.95193,543.54142 0,0 0.33946,-0.5428 0,0 0,0 c 0.3637,0.25331 0.67891,0.39807 0.99412,0.39807 l 0,0 0,0 c 0.26672,0 0.48494,-0.0544 0.63042,-0.16285 l 0,0 0,0 c 0.16973,-0.10858 0.24248,-0.23522 0.24248,-0.39804 l 0,0 0,0 c 0,-0.30758 -0.19398,-0.47042 -0.58194,-0.47042 l 0,0 0,0 c -0.0727,0 -0.19396,0.0362 -0.38794,0.0723 l 0,0 0,0 c -0.16973,0.0362 -0.31521,0.0543 -0.4122,0.0543 l 0,0 0,0 c -0.50919,0 -0.75166,-0.21711 -0.75166,-0.61518 l 0,0 0,0 c 0,-0.12655 0.0485,-0.23519 0.16973,-0.34375 l 0,0 0,0 c 0.12124,-0.10857 0.26672,-0.18093 0.43645,-0.21711 l 0,0 0,0 c -0.48494,-0.25329 -0.72742,-0.68753 -0.72742,-1.32079 l 0,0 0,0 c 0,-0.37995 0.12124,-0.70562 0.36371,-0.97701 l 0,0 0,0 c 0.26672,-0.2714 0.58193,-0.39805 0.94564,-0.39805 l 0,0 0,0 c 0.36369,0 0.60617,0.0723 0.80014,0.23521 l 0,0 0.29097,-0.41613 0.4122,0.41613 -0.36371,0.30759 0,0 0,0 c 0.14548,0.2352 0.24247,0.52469 0.24247,0.86846 l 0,0 0,0 c 0,0.37995 -0.12124,0.70562 -0.33946,0.97702 l 0,0 0,0 c -0.21822,0.2533 -0.48494,0.41612 -0.84865,0.45232 l 0,0 -0.50918,0.0542 0,0 0,0 c -0.0485,0 -0.14548,0.0362 -0.24247,0.0723 l 0,0 0,0 c -0.097,0.0362 -0.14548,0.10858 -0.14548,0.18095 l 0,0 0,0 c 0,0.0905 0.097,0.14473 0.31521,0.14473 l 0,0 0,0 c 0.097,0 0.24247,-0.0181 0.43644,-0.0542 l 0,0 0,0 c 0.19398,-0.0362 0.33946,-0.0544 0.43645,-0.0544 l 0,0 0,0 c 0.31521,0 0.58193,0.0723 0.7759,0.25333 l 0,0 0,0 c 0.19398,0.18091 0.29097,0.43422 0.29097,0.75988 l 0,0 0,0 c 0,0.34378 -0.14549,0.63326 -0.43645,0.85037 l 0,0 0,0 c -0.26671,0.21713 -0.63042,0.32569 -1.06687,0.32569 l 0,0 0,0 c -0.21821,0 -0.46069,-0.0544 -0.70316,-0.14475 l 0,0 0,0 c -0.26671,-0.0723 -0.46069,-0.18094 -0.60617,-0.30758 z m 1.30933,-4.37848 0,0 0,0 c -0.21821,0 -0.38794,0.0904 -0.53343,0.25329 l 0,0 0,0 c -0.12123,0.16285 -0.19397,0.34377 -0.19397,0.57897 l 0,0 0,0 c 0,0.27139 0.0727,0.48851 0.19397,0.66945 l 0,0 0,0 c 0.12124,0.18092 0.31522,0.2533 0.53343,0.2533 l 0,0 0,0 c 0.21823,0 0.38796,-0.0723 0.50919,-0.2533 l 0,0 0,0 c 0.12124,-0.16285 0.16973,-0.37995 0.16973,-0.66945 l 0,0 0,0 c 0,-0.2352 -0.0727,-0.41612 -0.16973,-0.57897 l 0,0 0,0 c -0.14548,-0.16284 -0.31521,-0.25329 -0.50919,-0.25329 z" /> 20.744 + <path 20.745 + inkscape:connector-curvature="0" 20.746 + id="135" 20.747 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.748 + d="m 567.97105,539.97712 1.13961,0 0,0.50659 -1.13961,0 0,1.23032 -0.46069,0 0,-1.23032 -1.13961,0 0,-0.50659 1.13961,0 0,-1.21224 0.46069,0 0,1.21224 z" /> 20.749 + <path 20.750 + inkscape:connector-curvature="0" 20.751 + id="136" 20.752 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.753 + d="m 570.63822,540.48371 0,0 0,2.00832 -0.65466,0 0,-5.21078 0,0 0,0 c 0.48494,-0.0181 0.7759,-0.0362 0.87288,-0.0362 l 0,0 0,0 c 1.38208,0 2.08524,0.5066 2.08524,1.51979 l 0,0 0,0 c 0,1.15796 -0.63042,1.75502 -1.84277,1.75502 l 0,0 0,0 c -0.0727,0 -0.24247,-0.0181 -0.46069,-0.0362 z m 0,-2.55109 0,0 0,1.89974 0,0 0,0 c 0.24247,0.0362 0.38795,0.0362 0.4122,0.0362 l 0,0 0,0 c 0.80015,0 1.21235,-0.32567 1.21235,-1.01321 l 0,0 0,0 c 0,-0.65135 -0.43644,-0.95893 -1.28509,-0.95893 l 0,0 0,0 c -0.097,0 -0.21822,0 -0.33946,0.0362 z" /> 20.754 + <path 20.755 + inkscape:connector-curvature="0" 20.756 + id="137" 20.757 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.758 + d="m 548.25826,547.77517 0,0 0,1.99023 -0.65467,0 0,-5.19268 0,0 0,0 c 0.48494,-0.0181 0.80016,-0.0362 0.89714,-0.0362 l 0,0 0,0 c 1.38208,0 2.08524,0.50661 2.08524,1.51981 l 0,0 0,0 c 0,1.17605 -0.60618,1.75502 -1.84277,1.75502 l 0,0 0,0 c -0.0727,0 -0.24247,0 -0.48494,-0.0362 z m 0,-2.56919 0,0 0,1.93593 0,0 0,0 c 0.26672,0.0181 0.4122,0.0362 0.43645,0.0362 l 0,0 0,0 c 0.82439,0 1.21235,-0.34377 1.21235,-1.04941 l 0,0 0,0 c 0,-0.63323 -0.43645,-0.95892 -1.2851,-0.95892 l 0,0 0,0 c -0.097,0 -0.21821,0.0181 -0.3637,0.0362 z" /> 20.759 + <path 20.760 + inkscape:connector-curvature="0" 20.761 + id="138" 20.762 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.763 + d="m 551.33762,548.71599 0,0 0,-4.30612 0.63043,0 0,4.17948 0,0 0,0 c 0,0.21713 0.0485,0.37995 0.16973,0.48851 l 0,0 0,0 c 0.097,0.10858 0.24247,0.16283 0.41219,0.16283 l 0,0 0,0.59707 0,0 0,0 c -0.80014,0 -1.21235,-0.37995 -1.21235,-1.12177 z" /> 20.764 + <path 20.765 + inkscape:connector-curvature="0" 20.766 + id="139" 20.767 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.768 + d="m 553.83507,545.96588 0,0 0,2.44253 0,0 0,0 c 0,0.59707 0.24246,0.86847 0.70315,0.86847 l 0,0 0,0 c 0.19398,0 0.36371,-0.0723 0.53344,-0.18092 l 0,0 0,0 c 0.16973,-0.1267 0.29097,-0.2714 0.33946,-0.43424 l 0,0 0,-2.69584 0.63042,0 0,3.79952 -0.63042,0 0,-0.52471 0,0 0,0 c -0.0727,0.16285 -0.19398,0.2895 -0.4122,0.41614 l 0,0 0,0 c -0.21822,0.1267 -0.38795,0.18093 -0.60618,0.18093 l 0,0 0,0 c -0.3637,0 -0.67891,-0.10857 -0.87289,-0.34376 l 0,0 0,0 c -0.19397,-0.25331 -0.31521,-0.57897 -0.31521,-1.0132 l 0,0 0,-2.51492 0.63043,0 z" /> 20.769 + <path 20.770 + inkscape:connector-curvature="0" 20.771 + id="140" 20.772 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.773 + d="m 556.76895,550.81479 0,0 0.33946,-0.54279 0,0 0,0 c 0.33945,0.2714 0.67891,0.39804 0.99413,0.39804 l 0,0 0,0 c 0.26671,0 0.50918,-0.0542 0.65467,-0.16284 l 0,0 0,0 c 0.14548,-0.0905 0.21821,-0.2352 0.21821,-0.37993 l 0,0 0,0 c 0,-0.30759 -0.16973,-0.47044 -0.58192,-0.47044 l 0,0 0,0 c -0.0727,0 -0.19398,0.0181 -0.38796,0.0544 l 0,0 0,0 c -0.16972,0.0361 -0.3152,0.0542 -0.41219,0.0542 l 0,0 0,0 c -0.50919,0 -0.75166,-0.19902 -0.75166,-0.61517 l 0,0 0,0 c 0,-0.10857 0.0485,-0.21711 0.16973,-0.32567 l 0,0 0,0 c 0.12123,-0.0905 0.26671,-0.16284 0.43644,-0.2171 l 0,0 0,0 c -0.48494,-0.25332 -0.75165,-0.68754 -0.75165,-1.3027 l 0,0 0,0 c 0,-0.39805 0.14548,-0.74182 0.38795,-0.99513 l 0,0 0,0 c 0.26672,-0.27138 0.58193,-0.39802 0.94563,-0.39802 l 0,0 0,0 c 0.33946,0 0.63042,0.0723 0.80015,0.2171 l 0,0 0.29097,-0.39805 0.41219,0.41615 -0.3637,0.30758 0,0 0,0 c 0.14548,0.21712 0.24247,0.5247 0.24247,0.88656 l 0,0 0,0 c 0,0.37996 -0.12123,0.70562 -0.33945,0.95893 l 0,0 0,0 c -0.21823,0.27138 -0.48494,0.41612 -0.84865,0.45231 l 0,0 -0.50919,0.0544 0,0 0,0 c -0.0485,0.0181 -0.14548,0.0361 -0.24247,0.0905 l 0,0 0,0 c -0.097,0.0362 -0.14548,0.0905 -0.14548,0.16283 l 0,0 0,0 c 0,0.0723 0.097,0.1267 0.31521,0.1267 l 0,0 0,0 c 0.097,0 0.24247,-0.0181 0.43645,-0.0544 l 0,0 0,0 c 0.19398,-0.0362 0.33946,-0.0362 0.43644,-0.0362 l 0,0 0,0 c 0.31521,0 0.58193,0.0723 0.77591,0.25329 l 0,0 0,0 c 0.19397,0.18094 0.29096,0.43424 0.29096,0.74182 l 0,0 0,0 c 0,0.36185 -0.14548,0.63326 -0.43645,0.85036 l 0,0 0,0 c -0.29096,0.21712 -0.63042,0.32567 -1.06686,0.32567 l 0,0 0,0 c -0.21822,0 -0.4607,-0.0362 -0.70316,-0.12669 l 0,0 0,0 c -0.26672,-0.0905 -0.4607,-0.19904 -0.60618,-0.32568 z m 1.30934,-4.3604 0,0 0,0 c -0.21822,0 -0.38795,0.0723 -0.53343,0.2352 l 0,0 0,0 c -0.12125,0.18093 -0.19398,0.37995 -0.19398,0.61517 l 0,0 0,0 c 0,0.27139 0.0727,0.48851 0.19398,0.66944 l 0,0 0,0 c 0.12123,0.16284 0.31521,0.25328 0.53343,0.25328 l 0,0 0,0 c 0.21822,0 0.38795,-0.0905 0.50919,-0.25328 l 0,0 0,0 c 0.12123,-0.16285 0.19397,-0.39805 0.19397,-0.66944 l 0,0 0,0 c 0,-0.23522 -0.0727,-0.43424 -0.19397,-0.61517 l 0,0 0,0 c -0.14548,-0.16283 -0.31521,-0.2352 -0.50919,-0.2352 z" /> 20.774 + <path 20.775 + inkscape:connector-curvature="0" 20.776 + id="141" 20.777 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.778 + d="m 560.86669,544.53653 0,0 0,0 c 0.097,0 0.19397,0.0362 0.26672,0.10857 l 0,0 0,0 c 0.0727,0.0905 0.12123,0.18093 0.12123,0.30758 l 0,0 0,0 c 0,0.10858 -0.0485,0.21712 -0.12123,0.2895 l 0,0 0,0 c -0.0728,0.0905 -0.16973,0.12669 -0.26672,0.12669 l 0,0 0,0 c -0.097,0 -0.19398,-0.0362 -0.26672,-0.12669 l 0,0 0,0 c -0.0727,-0.0723 -0.12123,-0.18093 -0.12123,-0.2895 l 0,0 0,0 c 0,-0.12669 0.0485,-0.21711 0.12123,-0.30758 l 0,0 0,0 c 0.0727,-0.0723 0.16973,-0.10857 0.26672,-0.10857 z m -0.33946,5.22887 0,0 0,-3.22055 -0.48494,0 0,-0.57897 1.11537,0 0,3.79952 -0.63043,0 z" /> 20.779 + <path 20.780 + inkscape:connector-curvature="0" 20.781 + id="142" 20.782 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.783 + d="m 564.28551,549.7654 0,0 0,-2.18925 0,0 0,0 c 0,-0.41614 -0.0485,-0.68752 -0.16973,-0.85037 l 0,0 0,0 c -0.097,-0.16284 -0.29096,-0.2533 -0.55768,-0.2533 l 0,0 0,0 c -0.14548,0 -0.29096,0.0542 -0.43644,0.14473 l 0,0 0,0 c -0.16973,0.0905 -0.29096,0.19904 -0.36371,0.34378 l 0,0 0,2.80441 -0.63042,0 0,-3.79952 0.43645,0 0.19397,0.5066 0,0 0,0 c 0.19398,-0.37995 0.53344,-0.56088 0.99413,-0.56088 l 0,0 0,0 c 0.77591,0 1.13961,0.50659 1.13961,1.5198 l 0,0 0,2.334 -0.60618,0 z" /> 20.784 + <path 20.785 + inkscape:connector-curvature="0" 20.786 + id="143" 20.787 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.788 + d="m 536.23176,532.64946 0,0 c 0,-0.0905 0.0242,-0.16283 0.0727,-0.23519 0.0485,-0.0723 0.12123,-0.1267 0.21822,-0.16285 0.097,-0.0362 0.19398,-0.0542 0.31522,-0.0542 l 0,0 0,0.45231 -0.60618,0 z" /> 20.789 + <path 20.790 + inkscape:connector-curvature="0" 20.791 + id="144" 20.792 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.793 + d="m 536.83794,532.19714 39.06188,0 0,0.45232 0,0.47042 -39.06188,0 0,-0.47042 0,-0.45232 z" /> 20.794 + <path 20.795 + inkscape:connector-curvature="0" 20.796 + id="145" 20.797 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.798 + d="m 575.89982,532.19714 0,0 c 0.12123,0 0.21822,0.0181 0.31521,0.0542 0.097,0.0362 0.16973,0.0905 0.21822,0.16285 0.0485,0.0723 0.097,0.14473 0.097,0.23519 l 0,0 0,0 -0.63042,0 0,-0.45231 z" /> 20.799 + <path 20.800 + inkscape:connector-curvature="0" 20.801 + id="146" 20.802 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.803 + d="m 576.53024,532.64946 0,23.17707 -0.63042,0 -0.60618,0 0,-23.17707 0.60618,0 0.63042,0 z" /> 20.804 + <path 20.805 + inkscape:connector-curvature="0" 20.806 + id="147" 20.807 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.808 + d="m 576.53024,555.82653 0,0 c 0,0.0905 -0.0485,0.16285 -0.097,0.23522 -0.0485,0.0723 -0.12124,0.12669 -0.21822,0.16282 -0.097,0.0362 -0.19398,0.0723 -0.31521,0.0723 l 0,0 0,-0.47043 0.63042,0 z" /> 20.809 + <path 20.810 + inkscape:connector-curvature="0" 20.811 + id="148" 20.812 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.813 + d="m 575.89982,556.29697 -39.06188,0 0,-0.47044 0,-0.45233 39.06188,0 0,0.45233 0,0.47044 z" /> 20.814 + <path 20.815 + inkscape:connector-curvature="0" 20.816 + id="149" 20.817 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.818 + d="m 536.83794,556.29697 0,0 c -0.12124,0 -0.21823,-0.0362 -0.31522,-0.0723 -0.097,-0.0362 -0.16973,-0.0905 -0.21822,-0.16283 -0.0485,-0.0723 -0.0727,-0.14476 -0.0727,-0.23521 l 0,0 0.60618,0 0,0.47043 z" /> 20.819 + <path 20.820 + inkscape:connector-curvature="0" 20.821 + id="150" 20.822 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.823 + d="m 536.23176,555.82653 0,-23.17707 0.60618,0 0.63042,0 0,23.17707 -0.63042,0 -0.60618,0 z" /> 20.824 + <path 20.825 + inkscape:connector-curvature="0" 20.826 + id="151" 20.827 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.828 + d="m 234.30839,556.22457 16.00301,17.17023 -0.48494,0.25328 -0.48495,0.2533 -16.00301,-17.1702 0.48495,-0.2533 0.48494,-0.25331 z" /> 20.829 + <path 20.830 + inkscape:connector-curvature="0" 20.831 + id="152" 20.832 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.833 + d="m 248.6626,568.79917 0,0 2.03674,5.75357 -6.49818,-3.40148 0,0 0,0 c 1.98825,0.0542 3.80677,-0.92273 4.46144,-2.35209 z" /> 20.834 + <path 20.835 + inkscape:connector-curvature="0" 20.836 + id="153" 20.837 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.838 + d="m 350.88787,556.64072 -9.43208,17.17021 -0.53343,-0.16285 -0.53344,-0.16283 9.43206,-17.17021 0.53345,0.16284 0.53344,0.16284 z" /> 20.839 + <path 20.840 + inkscape:connector-curvature="0" 20.841 + id="154" 20.842 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.843 + d="m 345.72324,570.28282 0,0 -5.35857,4.39658 0.29097,-5.95259 0,0 0,0 c 1.06686,1.28459 3.10361,1.93593 5.0676,1.55601 z" /> 20.844 + <path 20.845 + inkscape:connector-curvature="0" 20.846 + id="190" 20.847 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.848 + d="m 262.58037,442.96271 20.70691,11.39855 -0.33945,0.34377 -0.33946,0.34377 -20.70692,-11.39856 0.33947,-0.34377 0.33945,-0.34376 z" /> 20.849 + <path 20.850 + inkscape:connector-curvature="0" 20.851 + id="191" 20.852 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.853 + d="m 279.77147,450.38082 0,0 4.38871,4.97556 -7.61357,-1.64646 0,0 0,0 c 1.89128,-0.47041 3.20061,-1.80929 3.22486,-3.3291 z" /> 20.854 + <path 20.855 + inkscape:connector-curvature="0" 20.856 + id="192" 20.857 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.858 + d="m 292.67087,443.30647 -0.0727,11.39856 -0.58194,0 -0.58191,0 0.0727,-11.39856 0.58193,0 0.58193,0 z" /> 20.859 + <path 20.860 + inkscape:connector-curvature="0" 20.861 + id="193" 20.862 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.863 + d="m 294.8046,450.23607 0,0 -2.78841,5.57264 -2.69141,-5.59073 0,0 0,0 c 1.6003,0.90464 3.83103,0.90464 5.47982,0.0181 z" /> 20.864 + <path 20.865 + inkscape:connector-curvature="0" 20.866 + id="194" 20.867 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.868 + d="m 322.20369,443.65024 -20.68269,11.39856 -0.33945,-0.34377 -0.33946,-0.34377 20.68268,-11.39855 0.33947,0.34376 0.33945,0.34377 z" /> 20.869 + <path 20.870 + inkscape:connector-curvature="0" 20.871 + id="195" 20.872 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.873 + d="m 307.60701,453.72802 0,0 -7.6378,1.64645 4.36445,-4.97556 0,0 0,0 c 0,1.50172 1.33358,2.8406 3.27335,3.32911 z" /> 20.874 + <path 20.875 + inkscape:connector-curvature="0" 20.876 + id="220" 20.877 + style="fill:#217867;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.878 + d="m 257.22178,441.15341 -0.3637,-1.21223 -1.98825,0 -0.38796,1.21223 -0.80015,0 2.15798,-5.86212 0.19398,0 1.98825,5.86212 -0.80015,0 z m -1.33358,-4.34231 -0.8244,2.53302 1.57606,0 -0.75166,-2.53302 z" /> 20.879 + <path 20.880 + inkscape:connector-curvature="0" 20.881 + id="221" 20.882 + style="fill:#217867;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.883 + d="m 259.23427,440.9182 0,0 0,1.89976 -0.70316,0 0,-5.8983 0.70316,0 0,0.34377 0,0 0,0 c 0.24249,-0.28949 0.58194,-0.43424 0.94565,-0.43424 l 0,0 0,0 c 0.53343,0 0.94563,0.19904 1.26083,0.56089 l 0,0 0,0 c 0.31522,0.37995 0.4607,0.94083 0.4607,1.66455 l 0,0 0,0 c 0,0.63325 -0.14548,1.15795 -0.4607,1.57408 l 0,0 0,0 c -0.3152,0.39806 -0.75165,0.61517 -1.33358,0.61517 l 0,0 0,0 c -0.14548,0 -0.33945,-0.0362 -0.50918,-0.10858 l 0,0 0,0 c -0.19398,-0.0542 -0.31522,-0.12669 -0.36372,-0.21711 z m 0,-3.09389 0,0 0,2.47874 0,0 0,0 c 0.0242,0.0723 0.12125,0.14473 0.26674,0.19902 l 0,0 0,0 c 0.14548,0.0723 0.29095,0.10858 0.41218,0.10858 l 0,0 0,0 c 0.8244,0 1.26085,-0.54279 1.26085,-1.59218 l 0,0 0,0 c 0,-0.54279 -0.097,-0.92274 -0.3152,-1.17604 l 0,0 0,0 c -0.19399,-0.2533 -0.5092,-0.37995 -0.94565,-0.37995 l 0,0 0,0 c -0.097,0 -0.21822,0.0362 -0.3637,0.12669 l 0,0 0,0 c -0.12123,0.0723 -0.24247,0.14475 -0.31522,0.23521 z" /> 20.884 + <path 20.885 + inkscape:connector-curvature="0" 20.886 + id="222" 20.887 + style="fill:#217867;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.888 + d="m 263.35626,440.9182 0,0 0,1.89976 -0.70316,0 0,-5.8983 0.70316,0 0,0.34377 0,0 0,0 c 0.24249,-0.28949 0.55769,-0.43424 0.94563,-0.43424 l 0,0 0,0 c 0.53344,0 0.96989,0.19904 1.2851,0.56089 l 0,0 0,0 c 0.31522,0.37995 0.46068,0.94083 0.46068,1.66455 l 0,0 0,0 c 0,0.63325 -0.14546,1.15795 -0.46068,1.57408 l 0,0 0,0 c -0.31521,0.39806 -0.7759,0.61517 -1.35783,0.61517 l 0,0 0,0 c -0.16973,0 -0.33946,-0.0362 -0.53343,-0.10858 l 0,0 0,0 c -0.16973,-0.0542 -0.29097,-0.12669 -0.33947,-0.21711 z m 0,-3.09389 0,0 0,2.47874 0,0 0,0 c 0.0242,0.0723 0.12124,0.14473 0.26672,0.19902 l 0,0 0,0 c 0.14548,0.0723 0.26672,0.10858 0.4122,0.10858 l 0,0 0,0 c 0.84865,0 1.2851,-0.54279 1.2851,-1.59218 l 0,0 0,0 c 0,-0.54279 -0.097,-0.92274 -0.31522,-1.17604 l 0,0 0,0 c -0.19397,-0.2533 -0.50918,-0.37995 -0.96988,-0.37995 l 0,0 0,0 c -0.097,0 -0.21822,0.0362 -0.3637,0.12669 l 0,0 0,0 c -0.12123,0.0723 -0.24247,0.14475 -0.31522,0.23521 z" /> 20.889 + <path 20.890 + inkscape:connector-curvature="0" 20.891 + id="223" 20.892 + style="fill:#217867;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.893 + d="m 270.3394,441.15341 0,0 0,-4.43277 -1.09112,0.72372 0,-0.72372 0,0 0,0 c 0.26672,-0.14474 0.55768,-0.36185 0.8729,-0.61516 l 0,0 0,0 c 0.3152,-0.27139 0.55768,-0.5247 0.7274,-0.7599 l 0,0 0.21823,0 0,5.80783 -0.72741,0 z" /> 20.894 + <path 20.895 + inkscape:connector-curvature="0" 20.896 + id="224" 20.897 + style="fill:#217867;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.898 + d="m 286.85159,441.15341 -0.3637,-1.21223 -1.96401,0 -0.38795,1.21223 -0.80015,0 2.13373,-5.86212 0.19398,0 1.98825,5.86212 -0.80015,0 z m -1.33358,-4.34231 -0.8244,2.53302 1.57605,0 -0.75165,-2.53302 z" /> 20.899 + <path 20.900 + inkscape:connector-curvature="0" 20.901 + id="225" 20.902 + style="fill:#217867;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.903 + d="m 288.86408,440.9182 0,0 0,1.89976 -0.70316,0 0,-5.8983 0.70316,0 0,0.34377 0,0 0,0 c 0.24249,-0.28949 0.55769,-0.43424 0.94564,-0.43424 l 0,0 0,0 c 0.53343,0 0.94564,0.19904 1.26084,0.56089 l 0,0 0,0 c 0.31522,0.37995 0.4607,0.94083 0.4607,1.66455 l 0,0 0,0 c 0,0.63325 -0.14548,1.15795 -0.4607,1.57408 l 0,0 0,0 c -0.3152,0.39806 -0.75166,0.61517 -1.33358,0.61517 l 0,0 0,0 c -0.14548,0 -0.33945,-0.0362 -0.50918,-0.10858 l 0,0 0,0 c -0.19398,-0.0542 -0.31522,-0.12669 -0.36372,-0.21711 z m 0,-3.09389 0,0 0,2.47874 0,0 0,0 c 0.0242,0.0723 0.12124,0.14473 0.26672,0.19902 l 0,0 0,0 c 0.1455,0.0723 0.26673,0.10858 0.4122,0.10858 l 0,0 0,0 c 0.8244,0 1.26085,-0.54279 1.26085,-1.59218 l 0,0 0,0 c 0,-0.54279 -0.097,-0.92274 -0.31522,-1.17604 l 0,0 0,0 c -0.19397,-0.2533 -0.48493,-0.37995 -0.94563,-0.37995 l 0,0 0,0 c -0.097,0 -0.21822,0.0362 -0.3637,0.12669 l 0,0 0,0 c -0.12123,0.0723 -0.24247,0.14475 -0.31522,0.23521 z" /> 20.904 + <path 20.905 + inkscape:connector-curvature="0" 20.906 + id="226" 20.907 + style="fill:#217867;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.908 + d="m 292.96182,440.9182 0,0 0,1.89976 -0.67891,0 0,-5.8983 0.67891,0 0,0.34377 0,0 0,0 c 0.26672,-0.28949 0.58194,-0.43424 0.96989,-0.43424 l 0,0 0,0 c 0.53343,0 0.96988,0.19904 1.28509,0.56089 l 0,0 0,0 c 0.31522,0.37995 0.46068,0.94083 0.46068,1.66455 l 0,0 0,0 c 0,0.63325 -0.16971,1.15795 -0.46068,1.57408 l 0,0 0,0 c -0.31521,0.39806 -0.77591,0.61517 -1.35783,0.61517 l 0,0 0,0 c -0.16973,0 -0.33946,-0.0362 -0.53343,-0.10858 l 0,0 0,0 c -0.16973,-0.0542 -0.29097,-0.12669 -0.36372,-0.21711 z m 0,-3.09389 0,0 0,2.47874 0,0 0,0 c 0.0485,0.0723 0.14549,0.14473 0.29097,0.19902 l 0,0 0,0 c 0.14548,0.0723 0.26672,0.10858 0.4122,0.10858 l 0,0 0,0 c 0.84865,0 1.2851,-0.54279 1.2851,-1.59218 l 0,0 0,0 c 0,-0.54279 -0.097,-0.92274 -0.31522,-1.17604 l 0,0 0,0 c -0.19398,-0.2533 -0.53343,-0.37995 -0.96988,-0.37995 l 0,0 0,0 c -0.097,0 -0.21822,0.0362 -0.3637,0.12669 l 0,0 0,0 c -0.14548,0.0723 -0.24248,0.14475 -0.33947,0.23521 z" /> 20.909 + <path 20.910 + inkscape:connector-curvature="0" 20.911 + id="227" 20.912 + style="fill:#217867;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.913 + d="m 298.39316,441.15341 0,0 0,-0.16283 1.67303,-2.76823 0,0 0,0 c 0.36372,-0.59706 0.53343,-1.08557 0.53343,-1.48362 l 0,0 0,0 c 0,-0.52469 -0.29095,-0.79609 -0.84863,-0.79609 l 0,0 0,0 c -0.19398,0 -0.36371,0.0544 -0.53345,0.16284 l 0,0 0,0 c -0.16971,0.12669 -0.3152,0.25331 -0.38795,0.43423 l 0,0 -0.46068,-0.41614 0,0 0,0 c 0.0727,-0.27139 0.24247,-0.47041 0.48493,-0.61515 l 0,0 0,0 c 0.24247,-0.16284 0.53344,-0.23522 0.8729,-0.23522 l 0,0 0,0 c 0.50918,0 0.89713,0.12669 1.1881,0.37996 l 0,0 0,0 c 0.29096,0.2533 0.43645,0.61515 0.43645,1.08557 l 0,0 0,0 c 0,0.43423 -0.19399,0.97701 -0.55768,1.64646 l 0,0 -1.21235,2.06259 2.08524,0 0,0.70563 -3.27334,0 z" /> 20.914 + <path 20.915 + inkscape:connector-curvature="0" 20.916 + id="228" 20.917 + style="fill:#217867;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.918 + d="m 316.50565,441.15341 -0.36372,-1.21223 -1.98824,0 -0.36372,1.21223 -0.82438,0 2.15798,-5.86212 0.16972,0 2.01251,5.86212 -0.80015,0 z m -1.3336,-4.34231 -0.82438,2.53302 1.57605,0 -0.75167,-2.53302 z" /> 20.919 + <path 20.920 + inkscape:connector-curvature="0" 20.921 + id="229" 20.922 + style="fill:#217867;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.923 + d="m 318.51814,440.9182 0,0 0,1.89976 -0.70316,0 0,-5.8983 0.70316,0 0,0.34377 0,0 0,0 c 0.24247,-0.28949 0.55769,-0.43424 0.94564,-0.43424 l 0,0 0,0 c 0.50918,0 0.94563,0.19904 1.26084,0.56089 l 0,0 0,0 c 0.31522,0.37995 0.4607,0.94083 0.4607,1.66455 l 0,0 0,0 c 0,0.63325 -0.14548,1.15795 -0.4607,1.57408 l 0,0 0,0 c -0.31521,0.39806 -0.77591,0.61517 -1.33359,0.61517 l 0,0 0,0 c -0.16972,0 -0.33945,-0.0362 -0.53344,-0.10858 l 0,0 0,0 c -0.16973,-0.0542 -0.29096,-0.12669 -0.33945,-0.21711 z m 0,-3.09389 0,0 0,2.47874 0,0 0,0 c 0.0242,0.0723 0.12124,0.14473 0.26672,0.19902 l 0,0 0,0 c 0.14548,0.0723 0.26672,0.10858 0.4122,0.10858 l 0,0 0,0 c 0.8244,0 1.26085,-0.54279 1.26085,-1.59218 l 0,0 0,0 c 0,-0.54279 -0.097,-0.92274 -0.31522,-1.17604 l 0,0 0,0 c -0.19398,-0.2533 -0.48493,-0.37995 -0.94563,-0.37995 l 0,0 0,0 c -0.097,0 -0.21822,0.0362 -0.3637,0.12669 l 0,0 0,0 c -0.12125,0.0723 -0.24248,0.14475 -0.31522,0.23521 z" /> 20.924 + <path 20.925 + inkscape:connector-curvature="0" 20.926 + id="230" 20.927 + style="fill:#217867;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.928 + d="m 322.61588,440.9182 0,0 0,1.89976 -0.67891,0 0,-5.8983 0.67891,0 0,0.34377 0,0 0,0 c 0.26672,-0.28949 0.58194,-0.43424 0.94564,-0.43424 l 0,0 0,0 c 0.53343,0 0.96988,0.19904 1.28508,0.56089 l 0,0 0,0 c 0.29096,0.37995 0.46069,0.94083 0.46069,1.66455 l 0,0 0,0 c 0,0.63325 -0.16973,1.15795 -0.46069,1.57408 l 0,0 0,0 c -0.3152,0.39806 -0.7759,0.61517 -1.35783,0.61517 l 0,0 0,0 c -0.16972,0 -0.3152,-0.0362 -0.50919,-0.10858 l 0,0 0,0 c -0.16973,-0.0542 -0.29096,-0.12669 -0.3637,-0.21711 z m 0,-3.09389 0,0 0,2.47874 0,0 0,0 c 0.0485,0.0723 0.14549,0.14473 0.29097,0.19902 l 0,0 0,0 c 0.14548,0.0723 0.26672,0.10858 0.38795,0.10858 l 0,0 0,0 c 0.84865,0 1.2851,-0.54279 1.2851,-1.59218 l 0,0 0,0 c 0,-0.54279 -0.097,-0.92274 -0.31522,-1.17604 l 0,0 0,0 c -0.19398,-0.2533 -0.53343,-0.37995 -0.96988,-0.37995 l 0,0 0,0 c -0.0727,0 -0.19398,0.0362 -0.33947,0.12669 l 0,0 0,0 c -0.14548,0.0723 -0.24246,0.14475 -0.33945,0.23521 z" /> 20.929 + <path 20.930 + inkscape:connector-curvature="0" 20.931 + id="231" 20.932 + style="fill:#217867;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.933 + d="m 328.16844,440.73727 0,0 0.36371,-0.59706 0,0 0,0 c 0.21822,0.28948 0.53342,0.41613 0.89713,0.41613 l 0,0 0,0 c 0.67892,0 1.01837,-0.34376 1.01837,-1.06748 l 0,0 0,0 c 0,-0.32567 -0.12123,-0.59707 -0.3152,-0.79609 l 0,0 0,0 c -0.19398,-0.21711 -0.43645,-0.30758 -0.7759,-0.30758 l 0,0 -0.0485,0 0,-0.65134 0.0242,0 0,0 0,0 c 0.60617,0 0.92138,-0.28949 0.92138,-0.88657 l 0,0 0,0 c 0,-0.59706 -0.29096,-0.90464 -0.87288,-0.90464 l 0,0 0,0 c -0.31523,0 -0.55768,0.10858 -0.75166,0.34377 l 0,0 -0.31522,-0.54279 0,0 0,0 c 0.21823,-0.30758 0.60618,-0.47042 1.13961,-0.47042 l 0,0 0,0 c 0.46069,0 0.8244,0.12669 1.1396,0.39805 l 0,0 0,0 c 0.29097,0.27139 0.43645,0.61516 0.43645,1.04939 l 0,0 0,0 c 0,0.30759 -0.097,0.57897 -0.24247,0.83228 l 0,0 0,0 c -0.16973,0.2533 -0.36371,0.41613 -0.58193,0.5066 l 0,0 0,0 c 0.29097,0.10858 0.53345,0.28948 0.72742,0.54279 l 0,0 0,0 c 0.16971,0.27139 0.26671,0.57897 0.26671,0.94083 l 0,0 0,0 c 0,0.54278 -0.14548,0.95893 -0.46068,1.24841 l 0,0 0,0 c -0.31523,0.30758 -0.75166,0.45233 -1.3336,0.45233 l 0,0 0,0 c -0.21821,0 -0.46069,-0.0542 -0.67891,-0.14475 l 0,0 0,0 c -0.24247,-0.10857 -0.4122,-0.21711 -0.55768,-0.36186 z" /> 20.934 + <path 20.935 + inkscape:connector-curvature="0" 20.936 + id="264" 20.937 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.938 + d="m 364.80562,442.96271 20.73117,11.39855 -0.33946,0.34377 -0.33945,0.34377 -20.73117,-11.39856 0.33946,-0.34377 0.33945,-0.34376 z" /> 20.939 + <path 20.940 + inkscape:connector-curvature="0" 20.941 + id="265" 20.942 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.943 + d="m 382.02098,450.38082 0,0 4.36445,4.97556 -7.61354,-1.64646 0,0 0,0 c 1.91551,-0.47041 3.22484,-1.80929 3.24909,-3.3291 z" /> 20.944 + <path 20.945 + inkscape:connector-curvature="0" 20.946 + id="266" 20.947 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.948 + d="m 394.92037,443.30647 -0.0485,11.39856 -0.58193,0 -0.58193,0 0.0485,-11.39856 0.58192,0 0.58193,0 z" /> 20.949 + <path 20.950 + inkscape:connector-curvature="0" 20.951 + id="267" 20.952 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.953 + d="m 397.07835,450.23607 0,0 -2.7884,5.57264 -2.71566,-5.59073 0,0 0,0 c 1.6003,0.90464 3.83102,0.90464 5.50406,0.0181 z" /> 20.954 + <path 20.955 + inkscape:connector-curvature="0" 20.956 + id="268" 20.957 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.958 + d="m 424.45319,443.65024 -20.73117,11.39856 -0.31521,-0.34377 -0.33945,-0.34377 20.70692,-11.39855 0.33945,0.34376 0.33946,0.34377 z" /> 20.959 + <path 20.960 + inkscape:connector-curvature="0" 20.961 + id="269" 20.962 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.963 + d="m 409.80801,453.72802 0,0 -7.61355,1.64645 4.38871,-4.97556 0,0 0,0 c 0,1.50172 1.30933,2.8406 3.22484,3.32911 z" /> 20.964 + <path 20.965 + inkscape:connector-curvature="0" 20.966 + id="294" 20.967 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.968 + d="m 359.49553,441.15341 -0.38794,-1.21223 -1.96401,0 -0.38796,1.21223 -0.82438,0 2.15798,-5.86212 0.19396,0 2.01251,5.86212 -0.80016,0 z m -1.33358,-4.34231 -0.82439,2.53302 1.57605,0 -0.75166,-2.53302 z" /> 20.969 + <path 20.970 + inkscape:connector-curvature="0" 20.971 + id="295" 20.972 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.973 + d="m 361.48379,440.9182 0,0 0,1.89976 -0.67891,0 0,-5.8983 0.67891,0 0,0.34377 0,0 0,0 c 0.24247,-0.28949 0.53343,-0.43424 0.89713,-0.43424 l 0,0 0,0 c 0.55769,0 0.99413,0.19904 1.30935,0.56089 l 0,0 0,0 c 0.29096,0.37995 0.46069,0.94083 0.46069,1.66455 l 0,0 0,0 c 0,0.63325 -0.16973,1.15795 -0.48494,1.57408 l 0,0 0,0 c -0.29097,0.39806 -0.75166,0.61517 -1.33358,0.61517 l 0,0 0,0 c -0.16973,0 -0.33946,-0.0362 -0.53344,-0.10858 l 0,0 0,0 c -0.14548,-0.0542 -0.26672,-0.12669 -0.31521,-0.21711 z m 0,-3.09389 0,0 0,2.47874 0,0 0,0 c 0.0485,0.0723 0.14548,0.14473 0.26672,0.19902 l 0,0 0,0 c 0.097,0.0723 0.24247,0.10858 0.38795,0.10858 l 0,0 0,0 c 0.84864,0 1.28509,-0.54279 1.28509,-1.59218 l 0,0 0,0 c 0,-0.54279 -0.12124,-0.92274 -0.31521,-1.17604 l 0,0 0,0 c -0.19398,-0.2533 -0.53344,-0.37995 -0.96988,-0.37995 l 0,0 0,0 c -0.097,0 -0.21823,0.0362 -0.33946,0.12669 l 0,0 0,0 c -0.12124,0.0723 -0.21822,0.14475 -0.31521,0.23521 z" /> 20.974 + <path 20.975 + inkscape:connector-curvature="0" 20.976 + id="296" 20.977 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.978 + d="m 365.58152,440.9182 0,0 0,1.89976 -0.67891,0 0,-5.8983 0.67891,0 0,0.34377 0,0 0,0 c 0.26673,-0.28949 0.58193,-0.43424 0.94564,-0.43424 l 0,0 0,0 c 0.55768,0 0.99413,0.19904 1.26084,0.56089 l 0,0 0,0 c 0.31522,0.37995 0.4607,0.94083 0.4607,1.66455 l 0,0 0,0 c 0,0.63325 -0.14548,1.15795 -0.4607,1.57408 l 0,0 0,0 c -0.29096,0.39806 -0.7274,0.61517 -1.30933,0.61517 l 0,0 0,0 c -0.16973,0 -0.33946,-0.0362 -0.53344,-0.10858 l 0,0 0,0 c -0.19398,-0.0542 -0.31521,-0.12669 -0.36371,-0.21711 z m 0,-3.09389 0,0 0,2.47874 0,0 0,0 c 0.0485,0.0723 0.14549,0.14473 0.26673,0.19902 l 0,0 0,0 c 0.14548,0.0723 0.29096,0.10858 0.41219,0.10858 l 0,0 0,0 c 0.87289,0 1.28509,-0.54279 1.28509,-1.59218 l 0,0 0,0 c 0,-0.54279 -0.097,-0.92274 -0.29096,-1.17604 l 0,0 0,0 c -0.21822,-0.2533 -0.53343,-0.37995 -0.96988,-0.37995 l 0,0 0,0 c -0.097,0 -0.21822,0.0362 -0.36371,0.12669 l 0,0 0,0 c -0.14548,0.0723 -0.26671,0.14475 -0.33946,0.23521 z" /> 20.979 + <path 20.980 + inkscape:connector-curvature="0" 20.981 + id="297" 20.982 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.983 + d="m 373.94673,439.57932 0,1.57409 -0.67891,0 0,-1.57409 -2.42469,0 0,-0.45231 2.83689,-3.78143 0.26671,0 0,3.61859 0.53344,0 0,0.61515 -0.53344,0 z m -0.67891,-2.65966 -1.55181,2.04451 1.55181,0 0,-2.04451 z" /> 20.984 + <path 20.985 + inkscape:connector-curvature="0" 20.986 + id="298" 20.987 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.988 + d="m 389.12534,441.15341 -0.38795,-1.21223 -1.964,0 -0.38796,1.21223 -0.80014,0 2.13373,-5.86212 0.19397,0 2.0125,5.86212 -0.80015,0 z m -1.33358,-4.34231 -0.82439,2.53302 1.57604,0 -0.75165,-2.53302 z" /> 20.989 + <path 20.990 + inkscape:connector-curvature="0" 20.991 + id="299" 20.992 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.993 + d="m 391.11359,440.9182 0,0 0,1.89976 -0.67891,0 0,-5.8983 0.67891,0 0,0.34377 0,0 0,0 c 0.26673,-0.28949 0.55769,-0.43424 0.92139,-0.43424 l 0,0 0,0 c 0.55769,0 0.99413,0.19904 1.28509,0.56089 l 0,0 0,0 c 0.31521,0.37995 0.4607,0.94083 0.4607,1.66455 l 0,0 0,0 c 0,0.63325 -0.14549,1.15795 -0.4607,1.57408 l 0,0 0,0 c -0.29096,0.39806 -0.75165,0.61517 -1.33358,0.61517 l 0,0 0,0 c -0.16973,0 -0.33946,-0.0362 -0.50919,-0.10858 l 0,0 0,0 c -0.19398,-0.0542 -0.31521,-0.12669 -0.36371,-0.21711 z m 0,-3.09389 0,0 0,2.47874 0,0 0,0 c 0.0485,0.0723 0.14548,0.14473 0.29097,0.19902 l 0,0 0,0 c 0.12124,0.0723 0.24247,0.10858 0.3637,0.10858 l 0,0 0,0 c 0.87289,0 1.30934,-0.54279 1.30934,-1.59218 l 0,0 0,0 c 0,-0.54279 -0.12124,-0.92274 -0.3152,-1.17604 l 0,0 0,0 c -0.19398,-0.2533 -0.53344,-0.37995 -0.96989,-0.37995 l 0,0 0,0 c -0.097,0 -0.21822,0.0362 -0.33946,0.12669 l 0,0 0,0 c -0.14548,0.0723 -0.24246,0.14475 -0.33946,0.23521 z" /> 20.994 + <path 20.995 + inkscape:connector-curvature="0" 20.996 + id="300" 20.997 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.998 + d="m 395.23558,440.9182 0,0 0,1.89976 -0.67891,0 0,-5.8983 0.67891,0 0,0.34377 0,0 0,0 c 0.26672,-0.28949 0.58193,-0.43424 0.94563,-0.43424 l 0,0 0,0 c 0.55768,0 0.99413,0.19904 1.2851,0.56089 l 0,0 0,0 c 0.29096,0.37995 0.43644,0.94083 0.43644,1.66455 l 0,0 0,0 c 0,0.63325 -0.14548,1.15795 -0.43644,1.57408 l 0,0 0,0 c -0.31521,0.39806 -0.75166,0.61517 -1.33359,0.61517 l 0,0 0,0 c -0.16973,0 -0.33946,-0.0362 -0.53343,-0.10858 l 0,0 0,0 c -0.19398,-0.0542 -0.31521,-0.12669 -0.36371,-0.21711 z m 0,-3.09389 0,0 0,2.47874 0,0 0,0 c 0.0485,0.0723 0.14548,0.14473 0.26672,0.19902 l 0,0 0,0 c 0.14549,0.0723 0.29096,0.10858 0.4122,0.10858 l 0,0 0,0 c 0.87289,0 1.28508,-0.54279 1.28508,-1.59218 l 0,0 0,0 c 0,-0.54279 -0.097,-0.92274 -0.29096,-1.17604 l 0,0 0,0 c -0.21822,-0.2533 -0.53343,-0.37995 -0.99412,-0.37995 l 0,0 0,0 c -0.097,0 -0.19398,0.0362 -0.33946,0.12669 l 0,0 0,0 c -0.14548,0.0723 -0.26671,0.14475 -0.33946,0.23521 z" /> 20.999 + <path 20.1000 + inkscape:connector-curvature="0" 20.1001 + id="301" 20.1002 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1003 + d="m 401.22459,438.33091 0,0 -0.24247,-0.19902 0,-2.78631 2.61867,0 0,0.66944 -1.91551,0 0,1.39316 0,0 0,0 c 0.16973,-0.14475 0.38795,-0.21712 0.67891,-0.21712 l 0,0 0,0 c 0.48494,0 0.8729,0.16284 1.11536,0.4885 l 0,0 0,0 c 0.24247,0.32568 0.38796,0.77801 0.38796,1.37507 l 0,0 0,0 c 0,1.44744 -0.58193,2.18925 -1.77003,2.18925 l 0,0 0,0 c -0.50919,0 -0.92139,-0.16284 -1.2366,-0.45233 l 0,0 0.29096,-0.66944 0,0 0,0 c 0.31521,0.28949 0.63042,0.43423 0.94564,0.43423 l 0,0 0,0 c 0.67892,0 1.01837,-0.45232 1.01837,-1.39315 l 0,0 0,0 c 0,-0.86846 -0.33945,-1.28461 -1.01837,-1.28461 l 0,0 0,0 c -0.31522,0 -0.60618,0.14475 -0.87289,0.45233 z" /> 20.1004 + <path 20.1005 + inkscape:connector-curvature="0" 20.1006 + id="302" 20.1007 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1008 + d="m 418.73091,441.15341 -0.36371,-1.21223 -1.96401,0 -0.41219,1.21223 -0.77591,0 2.13374,-5.86212 0.19397,0 2.0125,5.86212 -0.82439,0 z m -1.30935,-4.34231 -0.82439,2.53302 1.57605,0 -0.75166,-2.53302 z" /> 20.1009 + <path 20.1010 + inkscape:connector-curvature="0" 20.1011 + id="303" 20.1012 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1013 + d="m 420.74341,440.9182 0,0 0,1.89976 -0.67892,0 0,-5.8983 0.67892,0 0,0.34377 0,0 0,0 c 0.26671,-0.28949 0.58192,-0.43424 0.92137,-0.43424 l 0,0 0,0 c 0.55769,0 0.99414,0.19904 1.2851,0.56089 l 0,0 0,0 c 0.31521,0.37995 0.46069,0.94083 0.46069,1.66455 l 0,0 0,0 c 0,0.63325 -0.14548,1.15795 -0.46069,1.57408 l 0,0 0,0 c -0.31521,0.39806 -0.75166,0.61517 -1.33358,0.61517 l 0,0 0,0 c -0.16973,0 -0.31521,-0.0362 -0.50919,-0.10858 l 0,0 0,0 c -0.19398,-0.0542 -0.31521,-0.12669 -0.3637,-0.21711 z m 0,-3.09389 0,0 0,2.47874 0,0 0,0 c 0.0485,0.0723 0.14548,0.14473 0.26671,0.19902 l 0,0 0,0 c 0.14548,0.0723 0.29097,0.10858 0.4122,0.10858 l 0,0 0,0 c 0.84864,0 1.26084,-0.54279 1.26084,-1.59218 l 0,0 0,0 c 0,-0.54279 -0.097,-0.92274 -0.29096,-1.17604 l 0,0 0,0 c -0.21823,-0.2533 -0.53344,-0.37995 -0.96988,-0.37995 l 0,0 0,0 c -0.0727,0 -0.19398,0.0362 -0.33946,0.12669 l 0,0 0,0 c -0.14548,0.0723 -0.26672,0.14475 -0.33945,0.23521 z" /> 20.1014 + <path 20.1015 + inkscape:connector-curvature="0" 20.1016 + id="304" 20.1017 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1018 + d="m 424.86539,440.9182 0,0 0,1.89976 -0.70316,0 0,-5.8983 0.70316,0 0,0.34377 0,0 0,0 c 0.26672,-0.28949 0.58193,-0.43424 0.94563,-0.43424 l 0,0 0,0 c 0.55768,0 0.99413,0.19904 1.28509,0.56089 l 0,0 0,0 c 0.31522,0.37995 0.43645,0.94083 0.43645,1.66455 l 0,0 0,0 c 0,0.63325 -0.12123,1.15795 -0.43645,1.57408 l 0,0 0,0 c -0.31521,0.39806 -0.75165,0.61517 -1.33359,0.61517 l 0,0 0,0 c -0.16972,0 -0.33945,-0.0362 -0.53343,-0.10858 l 0,0 0,0 c -0.19397,-0.0542 -0.31521,-0.12669 -0.3637,-0.21711 z m 0,-3.09389 0,0 0,2.47874 0,0 0,0 c 0.0485,0.0723 0.14548,0.14473 0.26672,0.19902 l 0,0 0,0 c 0.14548,0.0723 0.29096,0.10858 0.4122,0.10858 l 0,0 0,0 c 0.87288,0 1.28508,-0.54279 1.28508,-1.59218 l 0,0 0,0 c 0,-0.54279 -0.097,-0.92274 -0.29096,-1.17604 l 0,0 0,0 c -0.21822,-0.2533 -0.53343,-0.37995 -0.99412,-0.37995 l 0,0 0,0 c -0.097,0 -0.19398,0.0362 -0.33946,0.12669 l 0,0 0,0 c -0.14549,0.0723 -0.26672,0.14475 -0.33946,0.23521 z" /> 20.1019 + <path 20.1020 + inkscape:connector-curvature="0" 20.1021 + id="305" 20.1022 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1023 + d="m 432.47894,435.2732 0,0 0.36371,0.41614 0,0 0,0 c -0.21823,0.0905 -0.53344,0.41614 -0.92139,0.94083 l 0,0 0,0 c -0.4122,0.50661 -0.63042,0.92275 -0.67892,1.21223 l 0,0 0,0 c 0.19398,-0.21711 0.48494,-0.32568 0.84865,-0.32568 l 0,0 0,0 c 0.46069,0 0.82439,0.18093 1.11536,0.50661 l 0,0 0,0 c 0.26672,0.32567 0.4122,0.778 0.4122,1.33888 l 0,0 0,0 c 0,0.57897 -0.14548,1.0313 -0.4122,1.37506 l 0,0 0,0 c -0.29097,0.34377 -0.67891,0.5247 -1.11536,0.5247 l 0,0 0,0 c -1.16385,0 -1.74579,-0.85037 -1.74579,-2.53302 l 0,0 0,0 c 0,-0.70562 0.21823,-1.42934 0.67892,-2.13496 l 0,0 0,0 c 0.4607,-0.74181 0.94564,-1.17605 1.45482,-1.32079 z m -1.35783,4.07092 0,0 0,0 c 0,0.83228 0.29096,1.23032 0.92138,1.23032 l 0,0 0,0 c 0.26672,0 0.4607,-0.0905 0.63043,-0.30759 l 0,0 0,0 c 0.14548,-0.21711 0.21822,-0.5066 0.21822,-0.86846 l 0,0 0,0 c 0,-0.36186 -0.0727,-0.65133 -0.24247,-0.86846 l 0,0 0,0 c -0.16973,-0.21711 -0.3637,-0.32567 -0.60618,-0.32567 l 0,0 0,0 c -0.63042,0 -0.92138,0.37996 -0.92138,1.13986 z" /> 20.1024 + <path 20.1025 + inkscape:connector-curvature="0" 20.1026 + id="366" 20.1027 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1028 + d="m 461.81778,441.15341 -0.3637,-1.21223 -1.964,0 -0.41221,1.21223 -0.80014,0 2.15797,-5.86212 0.19398,0 2.0125,5.86212 -0.8244,0 z m -1.30933,-4.34231 -0.8244,2.53302 1.57605,0 -0.75165,-2.53302 z" /> 20.1029 + <path 20.1030 + inkscape:connector-curvature="0" 20.1031 + id="367" 20.1032 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1033 + d="m 463.80603,440.9182 0,0 0,1.89976 -0.65466,0 0,-5.8983 0.65466,0 0,0.34377 0,0 0,0 c 0.26672,-0.28949 0.58193,-0.43424 0.94564,-0.43424 l 0,0 0,0 c 0.55768,0 0.99412,0.19904 1.28509,0.56089 l 0,0 0,0 c 0.31521,0.37995 0.46069,0.94083 0.46069,1.66455 l 0,0 0,0 c 0,0.63325 -0.14548,1.15795 -0.46069,1.57408 l 0,0 0,0 c -0.31521,0.39806 -0.75166,0.61517 -1.33359,0.61517 l 0,0 0,0 c -0.16973,0 -0.33946,-0.0362 -0.53343,-0.10858 l 0,0 0,0 c -0.19398,-0.0542 -0.31521,-0.12669 -0.36371,-0.21711 z m 0,-3.09389 0,0 0,2.47874 0,0 0,0 c 0.0485,0.0723 0.14549,0.14473 0.26672,0.19902 l 0,0 0,0 c 0.14549,0.0723 0.29096,0.10858 0.4122,0.10858 l 0,0 0,0 c 0.87289,0 1.28509,-0.54279 1.28509,-1.59218 l 0,0 0,0 c 0,-0.54279 -0.097,-0.92274 -0.29096,-1.17604 l 0,0 0,0 c -0.21822,-0.2533 -0.53343,-0.37995 -0.96988,-0.37995 l 0,0 0,0 c -0.097,0 -0.21822,0.0362 -0.36371,0.12669 l 0,0 0,0 c -0.14548,0.0723 -0.26671,0.14475 -0.33946,0.23521 z" /> 20.1034 + <path 20.1035 + inkscape:connector-curvature="0" 20.1036 + id="368" 20.1037 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1038 + d="m 467.95227,440.9182 0,0 0,1.89976 -0.70316,0 0,-5.8983 0.70316,0 0,0.34377 0,0 0,0 c 0.26671,-0.28949 0.58193,-0.43424 0.94563,-0.43424 l 0,0 0,0 c 0.53343,0 0.96988,0.19904 1.26084,0.56089 l 0,0 0,0 c 0.31521,0.37995 0.46069,0.94083 0.46069,1.66455 l 0,0 0,0 c 0,0.63325 -0.14548,1.15795 -0.46069,1.57408 l 0,0 0,0 c -0.31521,0.39806 -0.75166,0.61517 -1.30933,0.61517 l 0,0 0,0 c -0.16973,0 -0.33946,-0.0362 -0.53343,-0.10858 l 0,0 0,0 c -0.19398,-0.0542 -0.31521,-0.12669 -0.36371,-0.21711 z m 0,-3.09389 0,0 0,2.47874 0,0 0,0 c 0.0485,0.0723 0.14548,0.14473 0.26671,0.19902 l 0,0 0,0 c 0.14549,0.0723 0.29097,0.10858 0.4122,0.10858 l 0,0 0,0 c 0.84865,0 1.26085,-0.54279 1.26085,-1.59218 l 0,0 0,0 c 0,-0.54279 -0.097,-0.92274 -0.29097,-1.17604 l 0,0 0,0 c -0.21822,-0.2533 -0.50919,-0.37995 -0.96988,-0.37995 l 0,0 0,0 c -0.097,0 -0.19397,0.0362 -0.33945,0.12669 l 0,0 0,0 c -0.14548,0.0723 -0.26672,0.14475 -0.33946,0.23521 z" /> 20.1039 + <path 20.1040 + inkscape:connector-curvature="0" 20.1041 + id="369" 20.1042 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1043 + d="m 474.69293,441.15341 0,0 -0.8244,0 0,0 0,0 c 0.19398,-0.61516 0.48494,-1.42934 0.92139,-2.46064 l 0,0 0,0 c 0.38795,-1.01321 0.7759,-1.88167 1.1396,-2.58729 l 0,0 -2.49743,0 0,-0.7599 3.41882,0 0,0.30758 -0.46069,1.01319 0,0 0,0 c -0.14549,0.32568 -0.31522,0.68755 -0.48494,1.10368 l 0,0 0,0 c -0.16973,0.39804 -0.33946,0.81419 -0.50919,1.24841 l 0,0 0,0 c -0.16973,0.41615 -0.29096,0.81419 -0.41219,1.17605 l 0,0 0,0 c -0.12124,0.36185 -0.21823,0.66944 -0.29097,0.95892 z" /> 20.1044 + <path 20.1045 + inkscape:connector-curvature="0" 20.1046 + id="370" 20.1047 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1048 + d="m 491.44759,441.15341 -0.3637,-1.21223 -1.96401,0 -0.4122,1.21223 -0.80014,0 2.15797,-5.86212 0.19398,0 2.0125,5.86212 -0.8244,0 z m -1.30934,-4.34231 -0.84864,2.53302 1.6003,0 -0.75166,-2.53302 z" /> 20.1049 + <path 20.1050 + inkscape:connector-curvature="0" 20.1051 + id="371" 20.1052 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1053 + d="m 493.43584,440.9182 0,0 0,1.89976 -0.67891,0 0,-5.8983 0.67891,0 0,0.34377 0,0 0,0 c 0.26672,-0.28949 0.58193,-0.43424 0.94563,-0.43424 l 0,0 0,0 c 0.55768,0 0.99414,0.19904 1.2851,0.56089 l 0,0 0,0 c 0.31521,0.37995 0.46069,0.94083 0.46069,1.66455 l 0,0 0,0 c 0,0.63325 -0.14548,1.15795 -0.46069,1.57408 l 0,0 0,0 c -0.31521,0.39806 -0.75166,0.61517 -1.33359,0.61517 l 0,0 0,0 c -0.16973,0 -0.33945,-0.0362 -0.53343,-0.10858 l 0,0 0,0 c -0.19398,-0.0542 -0.31521,-0.12669 -0.36371,-0.21711 z m 0,-3.09389 0,0 0,2.47874 0,0 0,0 c 0.0485,0.0723 0.14548,0.14473 0.26672,0.19902 l 0,0 0,0 c 0.14549,0.0723 0.29097,0.10858 0.4122,0.10858 l 0,0 0,0 c 0.87289,0 1.28509,-0.54279 1.28509,-1.59218 l 0,0 0,0 c 0,-0.54279 -0.097,-0.92274 -0.29097,-1.17604 l 0,0 0,0 c -0.21821,-0.2533 -0.53343,-0.37995 -0.99412,-0.37995 l 0,0 0,0 c -0.097,0 -0.19398,0.0362 -0.33946,0.12669 l 0,0 0,0 c -0.14548,0.0723 -0.26671,0.14475 -0.33946,0.23521 z" /> 20.1054 + <path 20.1055 + inkscape:connector-curvature="0" 20.1056 + id="372" 20.1057 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1058 + d="m 497.58208,440.9182 0,0 0,1.89976 -0.70316,0 0,-5.8983 0.70316,0 0,0.34377 0,0 0,0 c 0.26671,-0.28949 0.58192,-0.43424 0.94563,-0.43424 l 0,0 0,0 c 0.53343,0 0.96988,0.19904 1.26084,0.56089 l 0,0 0,0 c 0.31521,0.37995 0.46069,0.94083 0.46069,1.66455 l 0,0 0,0 c 0,0.63325 -0.14548,1.15795 -0.46069,1.57408 l 0,0 0,0 c -0.3152,0.39806 -0.72741,0.61517 -1.30934,0.61517 l 0,0 0,0 c -0.16973,0 -0.33946,-0.0362 -0.53342,-0.10858 l 0,0 0,0 c -0.19398,-0.0542 -0.31522,-0.12669 -0.36371,-0.21711 z m 0,-3.09389 0,0 0,2.47874 0,0 0,0 c 0.0485,0.0723 0.12123,0.14473 0.26671,0.19902 l 0,0 0,0 c 0.14548,0.0723 0.29096,0.10858 0.4122,0.10858 l 0,0 0,0 c 0.84865,0 1.26084,-0.54279 1.26084,-1.59218 l 0,0 0,0 c 0,-0.54279 -0.097,-0.92274 -0.29096,-1.17604 l 0,0 0,0 c -0.19398,-0.2533 -0.50918,-0.37995 -0.96988,-0.37995 l 0,0 0,0 c -0.097,0 -0.21822,0.0362 -0.33945,0.12669 l 0,0 0,0 c -0.14548,0.0723 -0.26672,0.14475 -0.33946,0.23521 z" /> 20.1059 + <path 20.1060 + inkscape:connector-curvature="0" 20.1061 + id="373" 20.1062 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1063 + d="m 504.03178,437.93287 0,0 0,0 c -0.21823,-0.12669 -0.41221,-0.32567 -0.55769,-0.56088 l 0,0 0,0 c -0.12123,-0.23521 -0.19397,-0.47042 -0.19397,-0.70564 l 0,0 0,0 c 0,-0.43422 0.12123,-0.77799 0.38795,-1.01319 l 0,0 0,0 c 0.26671,-0.25331 0.63042,-0.37996 1.04262,-0.37996 l 0,0 0,0 c 0.43644,0 0.80015,0.12669 1.04262,0.37996 l 0,0 0,0 c 0.24247,0.2352 0.38795,0.57897 0.38795,1.01319 l 0,0 0,0 c 0,0.23522 -0.097,0.50661 -0.24247,0.75992 l 0,0 0,0 c -0.14548,0.27138 -0.33945,0.45231 -0.53343,0.57897 l 0,0 0,0 c 0.65467,0.39805 0.96987,0.90464 0.96987,1.5379 l 0,0 0,0 c 0,0.54278 -0.14548,0.95893 -0.46069,1.24841 l 0,0 0,0 c -0.29096,0.28949 -0.67891,0.45233 -1.1881,0.45233 l 0,0 0,0 c -1.06687,0 -1.6003,-0.56088 -1.6003,-1.70074 l 0,0 0,0 c 0,-0.32568 0.0727,-0.63326 0.26672,-0.95892 l 0,0 0,0 c 0.19398,-0.30758 0.41219,-0.5247 0.67892,-0.65135 z m 0.89713,-0.25331 0,0 0,0 c 0.31522,-0.32566 0.4607,-0.68753 0.4607,-1.0313 l 0,0 0,0 c 0,-0.21711 -0.0485,-0.37995 -0.19398,-0.5066 l 0,0 0,0 c -0.12123,-0.1267 -0.26672,-0.19902 -0.48494,-0.19902 l 0,0 0,0 c -0.48494,0 -0.70316,0.23522 -0.70316,0.72371 l 0,0 0,0 c 0,0.32568 0.29096,0.66945 0.92138,1.01321 z m -0.31521,0.59708 0,0 0,0 c -0.53344,0.30758 -0.80015,0.7418 -0.80015,1.2665 l 0,0 0,0 c 0,0.28949 0.0727,0.54278 0.24247,0.72371 l 0,0 0,0 c 0.16973,0.19902 0.3637,0.28949 0.63042,0.28949 l 0,0 0,0 c 0.26672,0 0.48494,-0.0904 0.65467,-0.2714 l 0,0 0,0 c 0.16973,-0.19902 0.26671,-0.43422 0.26671,-0.7418 l 0,0 0,0 c 0,-0.19902 -0.0727,-0.41613 -0.19397,-0.59706 l 0,0 0,0 c -0.12124,-0.18093 -0.3637,-0.41615 -0.80015,-0.66944 z" /> 20.1064 + <path 20.1065 + inkscape:connector-curvature="0" 20.1066 + id="374" 20.1067 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1068 + d="m 521.0774,441.15341 -0.3637,-1.21223 -1.98826,0 -0.38795,1.21223 -0.80015,0 2.15799,-5.86212 0.19396,0 2.01251,5.86212 -0.8244,0 z m -1.33359,-4.34231 -0.82439,2.53302 1.6003,0 -0.77591,-2.53302 z" /> 20.1069 + <path 20.1070 + inkscape:connector-curvature="0" 20.1071 + id="375" 20.1072 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1073 + d="m 523.06565,440.9182 0,0 0,1.89976 -0.67891,0 0,-5.8983 0.67891,0 0,0.34377 0,0 0,0 c 0.26672,-0.28949 0.58193,-0.43424 0.94563,-0.43424 l 0,0 0,0 c 0.55768,0 0.99413,0.19904 1.2851,0.56089 l 0,0 0,0 c 0.31521,0.37995 0.46069,0.94083 0.46069,1.66455 l 0,0 0,0 c 0,0.63325 -0.14548,1.15795 -0.46069,1.57408 l 0,0 0,0 c -0.31522,0.39806 -0.75166,0.61517 -1.33359,0.61517 l 0,0 0,0 c -0.16973,0 -0.33946,-0.0362 -0.53343,-0.10858 l 0,0 0,0 c -0.19398,-0.0542 -0.31522,-0.12669 -0.36371,-0.21711 z m 0,-3.09389 0,0 0,2.47874 0,0 0,0 c 0.0485,0.0723 0.14548,0.14473 0.26672,0.19902 l 0,0 0,0 c 0.14548,0.0723 0.29096,0.10858 0.4122,0.10858 l 0,0 0,0 c 0.87289,0 1.28508,-0.54279 1.28508,-1.59218 l 0,0 0,0 c 0,-0.54279 -0.097,-0.92274 -0.29096,-1.17604 l 0,0 0,0 c -0.21822,-0.2533 -0.53343,-0.37995 -0.99412,-0.37995 l 0,0 0,0 c -0.097,0 -0.19398,0.0362 -0.33946,0.12669 l 0,0 0,0 c -0.14548,0.0723 -0.26672,0.14475 -0.33946,0.23521 z" /> 20.1074 + <path 20.1075 + inkscape:connector-curvature="0" 20.1076 + id="376" 20.1077 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1078 + d="m 527.21188,440.9182 0,0 0,1.89976 -0.70316,0 0,-5.8983 0.70316,0 0,0.34377 0,0 0,0 c 0.26672,-0.28949 0.58193,-0.43424 0.94564,-0.43424 l 0,0 0,0 c 0.55767,0 0.94563,0.19904 1.26084,0.56089 l 0,0 0,0 c 0.31521,0.37995 0.4607,0.94083 0.4607,1.66455 l 0,0 0,0 c 0,0.63325 -0.14549,1.15795 -0.4607,1.57408 l 0,0 0,0 c -0.31521,0.39806 -0.72741,0.61517 -1.30934,0.61517 l 0,0 0,0 c -0.16973,0 -0.3637,-0.0362 -0.53343,-0.10858 l 0,0 0,0 c -0.19398,-0.0542 -0.31521,-0.12669 -0.36371,-0.21711 z m 0,-3.09389 0,0 0,2.47874 0,0 0,0 c 0.0485,0.0723 0.12124,0.14473 0.26672,0.19902 l 0,0 0,0 c 0.14548,0.0723 0.29096,0.10858 0.4122,0.10858 l 0,0 0,0 c 0.87289,0 1.26084,-0.54279 1.26084,-1.59218 l 0,0 0,0 c 0,-0.54279 -0.097,-0.92274 -0.26672,-1.17604 l 0,0 0,0 c -0.21821,-0.2533 -0.53342,-0.37995 -0.99412,-0.37995 l 0,0 0,0 c -0.097,0 -0.21822,0.0362 -0.33946,0.12669 l 0,0 0,0 c -0.14548,0.0723 -0.26671,0.14475 -0.33946,0.23521 z" /> 20.1079 + <path 20.1080 + inkscape:connector-curvature="0" 20.1081 + id="377" 20.1082 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1083 + d="m 533.80706,441.26197 0,0 -0.3637,-0.43422 0,0 0,0 c 0.21822,-0.0905 0.53343,-0.39806 0.94563,-0.92275 l 0,0 0,0 c 0.38795,-0.54279 0.58193,-0.94083 0.63042,-1.23032 l 0,0 0,0 c -0.16973,0.19902 -0.46069,0.30758 -0.80015,0.30758 l 0,0 0,0 c -0.48494,0 -0.84864,-0.16284 -1.13961,-0.48851 l 0,0 0,0 c -0.29097,-0.32568 -0.43645,-0.77801 -0.43645,-1.35697 l 0,0 0,0 c 0,-0.54279 0.14548,-0.99512 0.43645,-1.35698 l 0,0 0,0 c 0.29097,-0.34376 0.67892,-0.5066 1.11536,-0.5066 l 0,0 0,0 c 1.13961,0 1.72154,0.83228 1.72154,2.51492 l 0,0 0,0 c 0,0.70563 -0.21823,1.41125 -0.67892,2.15306 l 0,0 0,0 c -0.43644,0.74182 -0.92139,1.17604 -1.43057,1.32079 z m 1.35783,-4.08901 0,0 0,0 c 0,-0.81417 -0.29096,-1.23032 -0.92138,-1.23032 l 0,0 0,0 c -0.26672,0 -0.46069,0.10858 -0.63042,0.32567 l 0,0 0,0 c -0.14549,0.21712 -0.21823,0.48852 -0.21823,0.83228 l 0,0 0,0 c 0,0.36186 0.0727,0.66944 0.24247,0.88655 l 0,0 0,0 c 0.16973,0.21712 0.3637,0.32568 0.60618,0.32568 l 0,0 0,0 c 0.63042,0 0.92138,-0.37995 0.92138,-1.13986 z" /> 20.1084 + <path 20.1085 + inkscape:connector-curvature="0" 20.1086 + id="378" 20.1087 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1088 + d="m 467.63706,442.96271 20.68267,11.39855 -0.33946,0.34377 -0.33946,0.34377 -20.68266,-11.39856 0.33945,-0.34377 0.33946,-0.34376 z" /> 20.1089 + <path 20.1090 + inkscape:connector-curvature="0" 20.1091 + id="379" 20.1092 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1093 + d="m 484.82817,450.38082 0,0 4.36445,4.97556 -7.6378,-1.64646 0,0 0,0 c 1.93977,-0.47041 3.2491,-1.80929 3.27335,-3.3291 z" /> 20.1094 + <path 20.1095 + inkscape:connector-curvature="0" 20.1096 + id="380" 20.1097 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1098 + d="m 497.72756,443.30647 -0.0485,11.39856 -0.58192,0 -0.58193,0 0.0485,-11.39856 0.58192,0 0.58193,0 z" /> 20.1099 + <path 20.1100 + inkscape:connector-curvature="0" 20.1101 + id="381" 20.1102 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1103 + d="m 499.86129,450.23607 0,0 -2.76415,5.57264 -2.71567,-5.59073 0,0 0,0 c 1.60031,0.90464 3.83103,0.90464 5.47982,0.0181 z" /> 20.1104 + <path 20.1105 + inkscape:connector-curvature="0" 20.1106 + id="382" 20.1107 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1108 + d="m 527.26038,443.65024 -20.70692,11.39856 -0.33946,-0.34377 -0.33946,-0.34377 20.70692,-11.39855 0.33946,0.34376 0.33946,0.34377 z" /> 20.1109 + <path 20.1110 + inkscape:connector-curvature="0" 20.1111 + id="383" 20.1112 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1113 + d="m 512.63945,453.72802 0,0 -7.61355,1.64645 4.3887,-4.97556 0,0 0,0 c 0,1.50172 1.30934,2.8406 3.22485,3.32911 z" /> 20.1114 + <path 20.1115 + inkscape:connector-curvature="0" 20.1116 + id="384" 20.1117 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1118 + d="m 269.93937,497.76592 -36.08647,34.26838 -0.3542,-0.27594 -0.35416,-0.29319 36.10617,-34.25113 0.35416,0.27593 0.3345,0.27595 z" /> 20.1119 + <path 20.1120 + inkscape:connector-curvature="0" 20.1121 + id="385" 20.1122 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1123 + d="m 239.64272,529.88124 0,0 -7.08011,2.69585 3.05511,-5.50024 0,0 0,0 c 0.38796,1.48361 1.98826,2.60538 4.025,2.80439 z" /> 20.1124 + <path 20.1125 + inkscape:connector-curvature="0" 20.1126 + id="386" 20.1127 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1128 + d="m 372.77081,497.0111 -79.52566,35.18604 -0.2629,-0.37112 -0.26289,-0.38879 79.52566,-35.16835 0.2629,0.3711 0.26289,0.37112 z" /> 20.1129 + <path 20.1130 + inkscape:connector-curvature="0" 20.1131 + id="387" 20.1132 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1133 + d="m 299.53276,531.47343 0,0 -7.85603,0.90464 5.21312,-4.48706 0,0 0,0 c -0.26673,1.50171 0.8244,2.93107 2.64291,3.58242 z" /> 20.1134 + <path 20.1135 + inkscape:connector-curvature="0" 20.1136 + id="388" 20.1137 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1138 + d="m 473.50489,497.75866 -120.9015,34.45656 -0.17886,-0.37526 -0.17883,-0.39232 120.90149,-34.43951 0.17885,0.37527 0.17885,0.37526 z" /> 20.1139 + <path 20.1140 + inkscape:connector-curvature="0" 20.1141 + id="389" 20.1142 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1143 + d="m 358.9621,532.19714 0,0 -7.92875,0.0362 6.01325,-3.87189 0,0 0,0 c -0.55769,1.44743 0.24246,2.96724 1.9155,3.83571 z" /> 20.1144 + <path 20.1145 + inkscape:connector-curvature="0" 20.1146 + id="390" 20.1147 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1148 + d="m 317.90247,496.23268 122.26277,35.18809 -0.18017,0.42418 -0.18016,0.40647 -122.26276,-35.20575 0.18015,-0.4065 0.18017,-0.40649 z" /> 20.1149 + <path 20.1150 + inkscape:connector-curvature="0" 20.1151 + id="391" 20.1152 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1153 + d="m 435.36433,528.36144 0,0 6.01325,3.85378 -7.90451,0 0,0 0,0 c 1.67304,-0.85036 2.4247,-2.38826 1.89126,-3.85378 z" /> 20.1154 + <path 20.1155 + inkscape:connector-curvature="0" 20.1156 + id="392" 20.1157 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1158 + d="m 420.00549,496.69623 79.61334,34.7681 -0.23423,0.38421 -0.23421,0.36668 -79.61334,-34.78558 0.23422,-0.36671 0.23422,-0.3667 z" /> 20.1159 + <path 20.1160 + inkscape:connector-curvature="0" 20.1161 + id="393" 20.1162 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1163 + d="m 495.39985,527.9272 0,0 5.31008,4.41469 -7.85602,-0.7961 0,0 0,0 c 1.79428,-0.66943 2.8369,-2.11687 2.54594,-3.61859 z" /> 20.1164 + <path 20.1165 + inkscape:connector-curvature="0" 20.1166 + id="394" 20.1167 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1168 + d="m 521.32171,496.34125 37.84769,35.2008 -0.31182,0.30042 -0.33132,0.30038 -37.86718,-35.20079 0.33131,-0.30042 0.33132,-0.30039 z" /> 20.1169 + <path 20.1170 + inkscape:connector-curvature="0" 20.1171 + id="395" 20.1172 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1173 + d="m 556.59922,527.20349 0,0 3.22485,5.42787 -7.10437,-2.55109 0,0 0,0 c 1.93976,-0.21711 3.51581,-1.37505 3.87952,-2.87678 z" /> 20.1174 + <path 20.1175 + inkscape:connector-curvature="0" 20.1176 + id="396" 20.1177 + style="fill:#ff6600;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1178 + d="m 483.85828,574.46227 0,-2.53302 -2.08523,0 0,2.53302 -0.63043,0 0,-5.24695 0.63043,0 0,2.11687 2.08523,0 0,-2.11687 0.65468,0 0,5.24695 -0.65468,0 z" /> 20.1179 + <path 20.1180 + inkscape:connector-curvature="0" 20.1181 + id="397" 20.1182 + style="fill:#ff6600;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1183 + d="m 489.16837,574.53464 -0.21822,0 -1.13961,-3.60049 -1.04262,3.60049 -0.19397,0 -1.52756,-5.31932 0.67891,0 0.96989,3.67285 1.04262,-3.67285 0.21821,0 1.04262,3.65477 0.96988,-3.65477 0.67892,0 -1.47907,5.31932 z" /> 20.1184 + <path 20.1185 + inkscape:connector-curvature="0" 20.1186 + id="398" 20.1187 + style="fill:#ff6600;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1188 + d="m 496.22425,569.41434 0,0 -0.21823,0.59706 0,0 0,0 c -0.19397,-0.16282 -0.53343,-0.23522 -0.96987,-0.23522 l 0,0 0,0 c -0.43645,0 -0.77591,0.18096 -1.01838,0.57899 l 0,0 0,0 c -0.26672,0.41613 -0.38795,0.92275 -0.38795,1.55599 l 0,0 0,0 c 0,0.57898 0.12123,1.0675 0.38795,1.42935 l 0,0 0,0 c 0.26672,0.37995 0.60618,0.56087 1.01838,0.56087 l 0,0 0,0 c 0.43644,0 0.80014,-0.16283 1.04262,-0.52468 l 0,0 0.33946,0.56087 0,0 0,0 c -0.36371,0.39805 -0.84865,0.61517 -1.45483,0.61517 l 0,0 0,0 c -0.63042,0 -1.11535,-0.25329 -1.47906,-0.74181 l 0,0 0,0 c -0.36371,-0.48852 -0.50919,-1.13986 -0.50919,-1.95404 l 0,0 0,0 c 0,-0.77801 0.16973,-1.44745 0.55768,-1.95404 l 0,0 0,0 c 0.3637,-0.52469 0.87289,-0.778 1.47907,-0.778 l 0,0 0,0 c 0.50918,0 0.92138,0.0905 1.21235,0.28949 z" /> 20.1189 + <path 20.1190 + inkscape:connector-curvature="0" 20.1191 + id="399" 20.1192 + style="fill:#ff6600;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1193 + d="m 497.16988,573.3767 0,0 0,-4.32422 0.63042,0 0,4.21567 0,0 0,0 c 0,0.19902 0.0485,0.36184 0.16973,0.4704 l 0,0 0,0 c 0.097,0.1267 0.24247,0.18093 0.4122,0.18093 l 0,0 0,0.61516 0,0 0,0 c -0.80015,0 -1.21235,-0.39804 -1.21235,-1.15794 z" /> 20.1194 + <path 20.1195 + inkscape:connector-curvature="0" 20.1196 + id="400" 20.1197 + style="fill:#ff6600;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1198 + d="m 501.04939,574.00994 0,0 0,0 c -0.24246,0.34378 -0.63042,0.5247 -1.1396,0.5247 l 0,0 0,0 c -0.26672,0 -0.50919,-0.10858 -0.70317,-0.32568 l 0,0 0,0 c -0.16973,-0.2171 -0.29096,-0.4885 -0.29096,-0.81416 l 0,0 0,0 c 0,-0.39807 0.14548,-0.72373 0.46069,-0.99513 l 0,0 0,0 c 0.29096,-0.25329 0.70317,-0.39804 1.1881,-0.39804 l 0,0 0,0 c 0.12124,0 0.26673,0.0362 0.43645,0.0905 l 0,0 0,0 c 0,-0.61515 -0.24247,-0.92272 -0.75166,-0.92272 l 0,0 0,0 c -0.38795,0 -0.70316,0.12669 -0.89714,0.34375 l 0,0 -0.26671,-0.56088 0,0 0,0 c 0.12123,-0.10857 0.29096,-0.19902 0.48494,-0.27138 l 0,0 0,0 c 0.21822,-0.0723 0.4122,-0.1267 0.60617,-0.1267 l 0,0 0,0 c 0.50919,0 0.87289,0.14473 1.09112,0.39804 l 0,0 0,0 c 0.24247,0.2533 0.3637,0.65134 0.3637,1.19414 l 0,0 0,1.37505 0,0 0,0 c 0,0.32569 0.0727,0.56089 0.26672,0.66944 l 0,0 0,0.32567 0,0 0,0 c -0.24247,0 -0.43644,-0.0362 -0.55768,-0.10857 l 0,0 0,0 c -0.14549,-0.0723 -0.21822,-0.21714 -0.29097,-0.39807 z m -0.0485,-1.42934 0,0 0,0 c -0.19397,-0.0542 -0.33945,-0.0723 -0.4122,-0.0723 l 0,0 0,0 c -0.31521,0 -0.58193,0.0905 -0.7759,0.27142 l 0,0 0,0 c -0.19397,0.16282 -0.29097,0.37995 -0.29097,0.61516 l 0,0 0,0 c 0,0.39804 0.21823,0.59706 0.65467,0.59706 l 0,0 0,0 c 0.31522,0 0.58193,-0.16285 0.8244,-0.48851 l 0,-0.92275 z" /> 20.1199 + <path 20.1200 + inkscape:connector-curvature="0" 20.1201 + id="401" 20.1202 + style="fill:#ff6600;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1203 + d="m 502.38297,574.22707 0,0 0.21823,-0.63326 0,0 0,0 c 0.33946,0.2352 0.60618,0.36186 0.8244,0.36186 l 0,0 0,0 c 0.38795,0 0.58193,-0.18092 0.58193,-0.5247 l 0,0 0,0 c 0,-0.25331 -0.19398,-0.47041 -0.55769,-0.65133 l 0,0 0,0 c -0.29096,-0.14475 -0.48493,-0.25331 -0.58192,-0.32568 l 0,0 0,0 c -0.097,-0.0723 -0.19397,-0.16285 -0.26672,-0.25329 l 0,0 0,0 c -0.0727,-0.0905 -0.12123,-0.18095 -0.14548,-0.28951 l 0,0 0,0 c -0.0485,-0.10858 -0.0727,-0.21711 -0.0727,-0.34375 l 0,0 0,0 c 0,-0.3076 0.12125,-0.56089 0.31522,-0.74182 l 0,0 0,0 c 0.21822,-0.16285 0.48494,-0.27139 0.8244,-0.27139 l 0,0 0,0 c 0.26671,0 0.58192,0.10858 0.96988,0.27139 l 0,0 -0.16973,0.63326 0,0 0,0 c -0.24248,-0.21712 -0.50919,-0.32568 -0.75166,-0.32568 l 0,0 0,0 c -0.14548,0 -0.26672,0.0362 -0.3637,0.1267 l 0,0 0,0 c -0.097,0.0723 -0.16973,0.16283 -0.16973,0.2714 l 0,0 0,0 c 0,0.2533 0.14548,0.43423 0.38795,0.56087 l 0,0 0.46069,0.21714 0,0 0,0 c 0.26672,0.14474 0.4607,0.28948 0.58193,0.47041 l 0,0 0,0 c 0.12123,0.18093 0.19397,0.39803 0.19397,0.65134 l 0,0 0,0 c 0,0.34378 -0.12123,0.61516 -0.33945,0.81418 l 0,0 0,0 c -0.21823,0.18093 -0.50919,0.28948 -0.92139,0.28948 l 0,0 0,0 c -0.3637,0 -0.70316,-0.10858 -1.01838,-0.30757 z" /> 20.1204 + <path 20.1205 + inkscape:connector-curvature="0" 20.1206 + id="402" 20.1207 + style="fill:#ff6600;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1208 + d="m 505.05015,574.22707 0,0 0.21822,-0.63326 0,0 0,0 c 0.3637,0.2352 0.63042,0.36186 0.84864,0.36186 l 0,0 0,0 c 0.38795,0 0.58193,-0.18092 0.58193,-0.5247 l 0,0 0,0 c 0,-0.25331 -0.19398,-0.47041 -0.55768,-0.65133 l 0,0 0,0 c -0.29096,-0.14475 -0.48494,-0.25331 -0.58192,-0.32568 l 0,0 0,0 c -0.097,-0.0723 -0.19398,-0.16285 -0.26673,-0.25329 l 0,0 0,0 c -0.0727,-0.0905 -0.12123,-0.18095 -0.16973,-0.28951 l 0,0 0,0 c -0.0242,-0.10858 -0.0485,-0.21711 -0.0485,-0.34375 l 0,0 0,0 c 0,-0.3076 0.097,-0.56089 0.31521,-0.74182 l 0,0 0,0 c 0.21821,-0.16285 0.48493,-0.27139 0.82439,-0.27139 l 0,0 0,0 c 0.26672,0 0.58192,0.10858 0.96988,0.27139 l 0,0 -0.19398,0.63326 0,0 0,0 c -0.24246,-0.21712 -0.48494,-0.32568 -0.7274,-0.32568 l 0,0 0,0 c -0.14549,0 -0.26672,0.0362 -0.38796,0.1267 l 0,0 0,0 c -0.097,0.0723 -0.14548,0.16283 -0.14548,0.2714 l 0,0 0,0 c 0,0.2533 0.12124,0.43423 0.38795,0.56087 l 0,0 0.43645,0.21714 0,0 0,0 c 0.29096,0.14474 0.48494,0.28948 0.60617,0.47041 l 0,0 0,0 c 0.12124,0.18093 0.19398,0.39803 0.19398,0.65134 l 0,0 0,0 c 0,0.34378 -0.12123,0.61516 -0.33946,0.81418 l 0,0 0,0 c -0.21823,0.18093 -0.53343,0.28948 -0.92138,0.28948 l 0,0 0,0 c -0.36371,0 -0.70316,-0.10858 -1.04262,-0.30757 z" /> 20.1209 + <path 20.1210 + inkscape:connector-curvature="0" 20.1211 + id="403" 20.1212 + style="fill:#ff6600;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1213 + d="m 511.40285,574.46227 0,0 -1.35783,0 0,-5.24695 0,0 0,0 c 0.60618,-0.0362 0.99413,-0.0544 1.2366,-0.0544 l 0,0 0,0 c 0.48494,0 0.84864,0.1267 1.11536,0.34377 l 0,0 0,0 c 0.24247,0.21713 0.38795,0.5428 0.38795,0.95893 l 0,0 0,0 c 0,0.2533 -0.097,0.47042 -0.24246,0.66944 l 0,0 0,0 c -0.16973,0.19902 -0.36371,0.32568 -0.55769,0.37995 l 0,0 0,0 c 0.38796,0.0905 0.65467,0.2714 0.8244,0.48851 l 0,0 0,0 c 0.16973,0.23521 0.26671,0.54279 0.26671,0.94083 l 0,0 0,0 c 0,0.47042 -0.16973,0.83229 -0.46069,1.10368 l 0,0 0,0 c -0.31521,0.27139 -0.72741,0.41613 -1.21235,0.41613 z m -0.70316,-4.66797 0,0 0,1.50172 0,0 0,0 c 0.14549,0.0181 0.31522,0.0362 0.50918,0.0362 l 0,0 0,0 c 0.60618,0 0.92139,-0.27139 0.92139,-0.85037 l 0,0 0,0 c 0,-0.48851 -0.29096,-0.72373 -0.84864,-0.72373 l 0,0 0,0 c -0.21823,0 -0.38796,0.0181 -0.58193,0.0362 z m 0,2.06259 0,0 0,1.99023 0,0 0,0 c 0.24247,0.0181 0.38795,0.0362 0.50918,0.0362 l 0,0 0,0 c 0.41221,0 0.70317,-0.0723 0.89715,-0.2533 l 0,0 0,0 c 0.19397,-0.16283 0.26672,-0.43421 0.26672,-0.79609 l 0,0 0,0 c 0,-0.34376 -0.0728,-0.59707 -0.26672,-0.75989 l 0,0 0,0 c -0.16973,-0.14476 -0.4607,-0.23522 -0.89715,-0.23522 l -0.50918,0.0181 z" /> 20.1214 + <path 20.1215 + inkscape:connector-curvature="0" 20.1216 + id="404" 20.1217 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1218 + d="m 278.82584,573.43097 0,-2.51492 -2.08524,0 0,2.51492 -0.65467,0 0,-5.22886 0.65467,0 0,2.08071 2.08524,0 0,-2.08071 0.65467,0 0,5.22886 -0.65467,0 z" /> 20.1219 + <path 20.1220 + inkscape:connector-curvature="0" 20.1221 + id="405" 20.1222 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1223 + d="m 284.11168,573.50335 -0.19397,0 -1.13961,-3.6186 -1.06686,3.6186 -0.19399,0 -1.50331,-5.30124 0.67891,0 0.94564,3.65478 1.06686,-3.65478 0.21823,0 1.04262,3.65478 0.92138,-3.65478 0.70316,0 -1.47906,5.30124 z" /> 20.1224 + <path 20.1225 + inkscape:connector-curvature="0" 20.1226 + id="406" 20.1227 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1228 + d="m 291.16755,568.38304 0,0 -0.21822,0.61515 0,0 0,0 c -0.21822,-0.16282 -0.55768,-0.25329 -0.96988,-0.25329 l 0,0 0,0 c -0.43645,0 -0.75165,0.19903 -1.01838,0.59707 l 0,0 0,0 c -0.24247,0.39805 -0.38794,0.90465 -0.38794,1.53791 l 0,0 0,0 c 0,0.59706 0.14547,1.08557 0.38794,1.44743 l 0,0 0,0 c 0.26673,0.36184 0.60618,0.56086 1.01838,0.56086 l 0,0 0,0 c 0.43645,0 0.77591,-0.18091 1.01836,-0.52468 l 0,0 0.36372,0.5428 0,0 0,0 c -0.38795,0.41612 -0.8729,0.61514 -1.45481,0.61514 l 0,0 0,0 c -0.63042,0 -1.11537,-0.23519 -1.47907,-0.74179 l 0,0 0,0 c -0.36371,-0.48853 -0.53343,-1.13987 -0.53343,-1.93596 l 0,0 0,0 c 0,-0.79608 0.19397,-1.44743 0.58192,-1.97214 l 0,0 0,0 c 0.38794,-0.50658 0.87289,-0.7599 1.47907,-0.7599 l 0,0 0,0 c 0.50919,0 0.89714,0.0905 1.21234,0.2714 z" /> 20.1229 + <path 20.1230 + inkscape:connector-curvature="0" 20.1231 + id="407" 20.1232 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1233 + d="m 292.11319,572.36349 0,0 0,-4.32421 0.60617,0 0,4.19756 0,0 0,0 c 0,0.21712 0.0485,0.36187 0.16973,0.48851 l 0,0 0,0 c 0.097,0.10857 0.24247,0.18094 0.4122,0.18094 l 0,0 0,0.59706 0,0 0,0 c -0.80015,0 -1.1881,-0.37996 -1.1881,-1.13986 z" /> 20.1234 + <path 20.1235 + inkscape:connector-curvature="0" 20.1236 + id="408" 20.1237 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1238 + d="m 296.01695,572.99673 0,0 0,0 c -0.26672,0.34378 -0.63042,0.50662 -1.13961,0.50662 l 0,0 0,0 c -0.29097,0 -0.53344,-0.10858 -0.7274,-0.32569 l 0,0 0,0 c -0.19398,-0.2171 -0.29097,-0.48851 -0.29097,-0.81417 l 0,0 0,0 c 0,-0.37996 0.14549,-0.70562 0.46068,-0.97702 l 0,0 0,0 c 0.31522,-0.27139 0.70317,-0.39803 1.18812,-0.39803 l 0,0 0,0 c 0.12123,0 0.26671,0.0361 0.43643,0.0905 l 0,0 0,0 c 0,-0.63325 -0.24247,-0.94083 -0.75165,-0.94083 l 0,0 0,0 c -0.38795,0 -0.67891,0.10858 -0.89713,0.34377 l 0,0 -0.26672,-0.57897 0,0 0,0 c 0.12124,-0.0905 0.29095,-0.18093 0.48494,-0.2714 l 0,0 0,0 c 0.21821,-0.0723 0.4122,-0.10858 0.60616,-0.10858 l 0,0 0,0 c 0.5092,0 0.8729,0.12669 1.09113,0.37995 l 0,0 0,0 c 0.21822,0.25331 0.33945,0.65135 0.33945,1.23032 l 0,0 0,1.35697 0,0 0,0 c 0,0.34377 0.097,0.56088 0.26672,0.66944 l 0,0 0,0.34377 0,0 0,0 c -0.24247,0 -0.43645,-0.0362 -0.55768,-0.1267 l 0,0 0,0 c -0.12124,-0.0723 -0.21822,-0.19903 -0.24247,-0.37996 z m -0.0727,-1.42932 0,0 0,0 c -0.19397,-0.0544 -0.33945,-0.0723 -0.41218,-0.0723 l 0,0 0,0 c -0.31522,0 -0.55768,0.0905 -0.75167,0.25331 l 0,0 0,0 c -0.21823,0.18091 -0.31521,0.37995 -0.31521,0.63326 l 0,0 0,0 c 0,0.39804 0.21823,0.59706 0.65466,0.59706 l 0,0 0,0 c 0.31522,0 0.58193,-0.16285 0.8244,-0.48852 l 0,-0.92273 z" /> 20.1239 + <path 20.1240 + inkscape:connector-curvature="0" 20.1241 + id="409" 20.1242 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1243 + d="m 297.30203,573.21387 0,0 0.21823,-0.65136 0,0 0,0 c 0.33945,0.2533 0.63042,0.37995 0.8244,0.37995 l 0,0 0,0 c 0.38795,0 0.58193,-0.18092 0.58193,-0.54279 l 0,0 0,0 c 0,-0.2352 -0.19398,-0.45231 -0.55768,-0.63324 l 0,0 0,0 c -0.29096,-0.14475 -0.48495,-0.25331 -0.58193,-0.32568 l 0,0 0,0 c -0.097,-0.0723 -0.16973,-0.16283 -0.24247,-0.2533 l 0,0 0,0 c -0.0727,-0.0905 -0.14548,-0.19901 -0.16973,-0.30757 l 0,0 0,0 c -0.0485,-0.10858 -0.0485,-0.21714 -0.0485,-0.36188 l 0,0 0,0 c 0,-0.30758 0.097,-0.54277 0.31522,-0.7237 l 0,0 0,0 c 0.19396,-0.18094 0.48493,-0.2714 0.82439,-0.2714 l 0,0 0,0 c 0.24247,0 0.55769,0.0905 0.94564,0.2714 l 0,0 -0.16974,0.63325 0,0 0,0 c -0.24246,-0.21713 -0.48493,-0.32568 -0.75165,-0.32568 l 0,0 0,0 c -0.14548,0 -0.26671,0.0362 -0.36371,0.10858 l 0,0 0,0 c -0.097,0.0723 -0.14548,0.18094 -0.14548,0.28949 l 0,0 0,0 c 0,0.27139 0.12124,0.45233 0.36371,0.57897 l 0,0 0.46068,0.21714 0,0 0,0 c 0.26674,0.12656 0.4607,0.28948 0.58194,0.47041 l 0,0 0,0 c 0.14548,0.16282 0.19398,0.37995 0.19398,0.65133 l 0,0 0,0 c 0,0.34378 -0.097,0.59706 -0.33947,0.79611 l 0,0 0,0 c -0.21821,0.19901 -0.50918,0.28948 -0.89713,0.28948 l 0,0 0,0 c -0.38796,0 -0.72741,-0.0905 -1.04263,-0.28948 z" /> 20.1244 + <path 20.1245 + inkscape:connector-curvature="0" 20.1246 + id="410" 20.1247 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1248 + d="m 299.99344,573.21387 0,0 0.24248,-0.65136 0,0 0,0 c 0.33945,0.2533 0.60617,0.37995 0.8244,0.37995 l 0,0 0,0 c 0.38795,0 0.58193,-0.18092 0.58193,-0.54279 l 0,0 0,0 c 0,-0.2352 -0.19398,-0.45231 -0.55768,-0.63324 l 0,0 0,0 c -0.29096,-0.14475 -0.48495,-0.25331 -0.58193,-0.32568 l 0,0 0,0 c -0.097,-0.0723 -0.19397,-0.16283 -0.26672,-0.2533 l 0,0 0,0 c -0.0728,-0.0905 -0.12123,-0.19901 -0.14548,-0.30757 l 0,0 0,0 c -0.0485,-0.10858 -0.0727,-0.21714 -0.0727,-0.36188 l 0,0 0,0 c 0,-0.30758 0.12125,-0.54277 0.31522,-0.7237 l 0,0 0,0 c 0.21823,-0.18094 0.48494,-0.2714 0.82439,-0.2714 l 0,0 0,0 c 0.26672,0 0.58194,0.0905 0.94564,0.2714 l 0,0 -0.14549,0.63325 0,0 0,0 c -0.24246,-0.21713 -0.50918,-0.32568 -0.75165,-0.32568 l 0,0 0,0 c -0.14548,0 -0.26671,0.0362 -0.36371,0.10858 l 0,0 0,0 c -0.12123,0.0723 -0.16972,0.18094 -0.16972,0.28949 l 0,0 0,0 c 0,0.27139 0.14548,0.45233 0.38795,0.57897 l 0,0 0.46068,0.21714 0,0 0,0 c 0.26674,0.12656 0.4607,0.28948 0.55769,0.47041 l 0,0 0,0 c 0.12123,0.16282 0.19398,0.37995 0.19398,0.65133 l 0,0 0,0 c 0,0.34378 -0.12123,0.59706 -0.31522,0.79611 l 0,0 0,0 c -0.21821,0.19901 -0.53343,0.28948 -0.92138,0.28948 l 0,0 0,0 c -0.3637,0 -0.70316,-0.0905 -1.04263,-0.28948 z" /> 20.1249 + <path 20.1250 + inkscape:connector-curvature="0" 20.1251 + id="411" 20.1252 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1253 + d="m 307.70399,573.43097 -0.33945,-1.10366 -1.77005,0 -0.36368,1.10366 -0.72741,0 1.93974,-5.30122 0.16973,0 1.79428,5.30122 -0.70316,0 z m -1.1881,-3.94425 -0.75166,2.31588 1.43058,0 -0.67892,-2.31588 z" /> 20.1254 + <path 20.1255 + inkscape:connector-curvature="0" 20.1256 + id="412" 20.1257 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1258 + d="m 254.7486,601.52932 -0.31521,0 -1.77003,-5.30122 0.72741,0 1.21235,3.85381 1.1881,-3.85381 0.70314,0 -1.74576,5.30122 z" /> 20.1259 + <path 20.1260 + inkscape:connector-curvature="0" 20.1261 + id="413" 20.1262 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1263 + d="m 260.61635,601.45696 -0.55768,-3.34721 -1.04261,3.41957 -0.16972,0 -1.06688,-3.41957 -0.55768,3.34721 -0.63042,0 0.89715,-5.22886 0.29095,0 1.16386,3.81761 1.04262,-3.81761 0.26671,0 0.96989,5.22886 -0.60619,0 z" /> 20.1264 + <path 20.1265 + inkscape:connector-curvature="0" 20.1266 + id="414" 20.1267 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1268 + d="m 261.53775,601.22177 0,0 0.24247,-0.65137 0,0 0,0 c 0.12123,0.0905 0.26671,0.16284 0.43645,0.23522 l 0,0 0,0 c 0.19396,0.0723 0.3637,0.0905 0.50918,0.0905 l 0,0 0,0 c 0.24246,0 0.4607,-0.0723 0.60616,-0.2171 l 0,0 0,0 c 0.14549,-0.16285 0.24249,-0.34378 0.24249,-0.57898 l 0,0 0,0 c 0,-0.18093 -0.0485,-0.34377 -0.14549,-0.48851 l 0,0 0,0 c -0.0727,-0.16283 -0.29096,-0.32568 -0.65468,-0.50661 l 0,0 -0.38793,-0.19902 0,0 0,0 c -0.31522,-0.16284 -0.53345,-0.36186 -0.67892,-0.57897 l 0,0 0,0 c -0.12125,-0.23522 -0.19398,-0.5066 -0.19398,-0.83228 l 0,0 0,0 c 0,-0.37995 0.12123,-0.70562 0.38795,-0.95891 l 0,0 0,0 c 0.24247,-0.27142 0.58193,-0.39806 0.96988,-0.39806 l 0,0 0,0 c 0.53343,0 0.89713,0.10858 1.11535,0.28949 l 0,0 -0.19397,0.61517 0,0 0,0 c -0.097,-0.0723 -0.21821,-0.1267 -0.4122,-0.19902 l 0,0 0,0 c -0.16973,-0.0544 -0.33945,-0.0905 -0.48493,-0.0905 l 0,0 0,0 c -0.21823,0 -0.4122,0.0723 -0.53343,0.19903 l 0,0 0,0 c -0.12123,0.14474 -0.19398,0.32567 -0.19398,0.54279 l 0,0 0,0 c 0,0.1267 0.0243,0.25331 0.0728,0.36187 l 0,0 0,0 c 0.0485,0.10858 0.12123,0.19902 0.19396,0.27139 l 0,0 0,0 c 0.0727,0.0723 0.24247,0.18091 0.50918,0.30758 l 0,0 0.38795,0.19902 0,0 0,0 c 0.31522,0.18092 0.55769,0.37995 0.67892,0.61515 l 0,0 0,0 c 0.14548,0.23522 0.19398,0.52471 0.19398,0.88656 l 0,0 0,0 c 0,0.39805 -0.14548,0.72373 -0.43645,0.99511 l 0,0 0,0 c -0.26671,0.2714 -0.65466,0.41613 -1.13961,0.41613 l 0,0 0,0 c -0.43643,0 -0.80015,-0.10857 -1.0911,-0.32564 z" /> 20.1269 + <path 20.1270 + inkscape:connector-curvature="0" 20.1271 + id="415" 20.1272 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1273 + d="m 228.14965,590.2936 0,0 c 0,-0.0904 0.0242,-0.16282 0.0727,-0.2352 0.0485,-0.0723 0.12123,-0.1267 0.21822,-0.16284 0.097,-0.0362 0.19398,-0.0543 0.31521,-0.0543 l 0,0 0,0.45232 -0.60618,0 z" /> 20.1274 + <path 20.1275 + inkscape:connector-curvature="0" 20.1276 + id="416" 20.1277 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1278 + d="m 228.75583,589.84127 59.40509,0 0,0.45233 0,0.47042 -59.40509,0 0,-0.47042 0,-0.45233 z" /> 20.1279 + <path 20.1280 + inkscape:connector-curvature="0" 20.1281 + id="417" 20.1282 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1283 + d="m 288.16092,589.84127 0,0 c 0.12123,0 0.21823,0.0181 0.31522,0.0544 0.097,0.0362 0.16973,0.0905 0.21823,0.16284 0.0485,0.0723 0.097,0.14474 0.097,0.2352 l 0,0 0,0 -0.63043,0 0,-0.45233 z" /> 20.1284 + <path 20.1285 + inkscape:connector-curvature="0" 20.1286 + id="418" 20.1287 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1288 + d="m 288.79135,590.2936 0,23.26755 -0.63043,0 -0.60617,0 0,-23.26755 0.60617,0 0.63043,0 z" /> 20.1289 + <path 20.1290 + inkscape:connector-curvature="0" 20.1291 + id="419" 20.1292 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1293 + d="m 288.79135,613.56115 0,0 c 0,0.0905 -0.0485,0.16282 -0.097,0.23519 -0.0485,0.0723 -0.12124,0.1267 -0.21823,0.16285 -0.097,0.0362 -0.19399,0.0723 -0.31522,0.0723 l 0,0 0,-0.47041 0.63043,0 z" /> 20.1294 + <path 20.1295 + inkscape:connector-curvature="0" 20.1296 + id="420" 20.1297 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1298 + d="m 288.16092,614.03156 -59.40509,0 0,-0.47041 0,-0.45234 59.40509,0 0,0.45234 0,0.47041 z" /> 20.1299 + <path 20.1300 + inkscape:connector-curvature="0" 20.1301 + id="421" 20.1302 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1303 + d="m 228.75583,614.03156 0,0 c -0.12123,0 -0.21821,-0.0361 -0.31521,-0.0723 -0.097,-0.0362 -0.16972,-0.0905 -0.21822,-0.16285 -0.0485,-0.0723 -0.0727,-0.14473 -0.0727,-0.23519 l 0,0 0.60618,0 0,0.4704 z" /> 20.1304 + <path 20.1305 + inkscape:connector-curvature="0" 20.1306 + id="422" 20.1307 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1308 + d="m 228.14965,613.56115 0,-23.26755 0.60618,0 0.63042,0 0,23.26755 -0.63042,0 -0.60618,0 z" /> 20.1309 + <path 20.1310 + inkscape:connector-curvature="0" 20.1311 + id="423" 20.1312 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1313 + d="m 245.99542,612.6384 0,-2.24352 -1.84276,0 0,2.24352 -0.58193,0 0,-4.64989 0.58193,0 0,1.86358 1.84276,0 0,-1.86358 0.55769,0 0,4.64989 -0.55769,0 z" /> 20.1314 + <path 20.1315 + inkscape:connector-curvature="0" 20.1316 + id="424" 20.1317 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1318 + d="m 249.1233,612.25845 0,0 0,0 c -0.21823,0.28949 -0.55768,0.45232 -0.99413,0.45232 l 0,0 0,0 c -0.24247,0 -0.4607,-0.10858 -0.63043,-0.28948 l 0,0 0,0 c -0.16972,-0.19903 -0.2667,-0.43424 -0.2667,-0.72373 l 0,0 0,0 c 0,-0.34375 0.14546,-0.63324 0.4122,-0.88655 l 0,0 0,0 c 0.26671,-0.23519 0.60616,-0.34375 1.04261,-0.34375 l 0,0 0,0 c 0.097,0 0.24247,0.0181 0.38795,0.0723 l 0,0 0,0 c 0,-0.5428 -0.21823,-0.81418 -0.67892,-0.81418 l 0,0 0,0 c -0.31521,0 -0.58193,0.0905 -0.77589,0.30758 l 0,0 -0.21824,-0.52469 0,0 0,0 c 0.097,-0.0905 0.24249,-0.18093 0.43645,-0.23522 l 0,0 0,0 c 0.16973,-0.0723 0.3637,-0.10858 0.48495,-0.10858 l 0,0 0,0 c 0.46068,0 0.80015,0.10858 0.99411,0.34378 l 0,0 0,0 c 0.21822,0.23522 0.31522,0.59706 0.31522,1.08558 l 0,0 0,1.21222 0,0 0,0 c 0,0.28948 0.0727,0.48851 0.24247,0.59706 l 0,0 0,0.28949 0,0 0,0 c -0.21822,0 -0.38795,-0.0181 -0.50919,-0.0905 l 0,0 0,0 c -0.12123,-0.0723 -0.19396,-0.19902 -0.24246,-0.34376 z m -0.0485,-1.2846 0,0 0,0 c -0.16973,-0.0362 -0.29097,-0.0723 -0.3637,-0.0723 l 0,0 0,0 c -0.29097,0 -0.48495,0.0904 -0.65468,0.2352 l 0,0 0,0 c -0.19397,0.16284 -0.2667,0.34378 -0.2667,0.56088 l 0,0 0,0 c 0,0.36187 0.19396,0.52469 0.53343,0.52469 l 0,0 0,0 c 0.29095,0 0.53342,-0.14473 0.75165,-0.43422 l 0,-0.81419 z" /> 20.1319 + <path 20.1320 + inkscape:connector-curvature="0" 20.1321 + id="425" 20.1322 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1323 + d="m 252.17841,609.834 0,0 0,0 c -0.12124,-0.0905 -0.24247,-0.14475 -0.3637,-0.14475 l 0,0 0,0 c -0.19398,0 -0.36372,0.0905 -0.50918,0.28949 l 0,0 0,0 c -0.14549,0.19901 -0.21824,0.43423 -0.21824,0.72372 l 0,0 0,1.93594 -0.55766,0 0,-3.40146 0.55766,0 0,0.54277 0,0 0,0 c 0.19399,-0.41615 0.50919,-0.61517 0.89715,-0.61517 l 0,0 0,0 c 0.097,0 0.24247,0.0181 0.43643,0.0544 l -0.24246,0.61517 z" /> 20.1324 + <path 20.1325 + inkscape:connector-curvature="0" 20.1326 + id="426" 20.1327 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1328 + d="m 254.7486,612.6384 0,0 0,-0.25329 0,0 0,0 c -0.16973,0.21709 -0.4607,0.30757 -0.80016,0.30757 l 0,0 0,0 c -0.38795,0 -0.70315,-0.14474 -0.94563,-0.45232 l 0,0 0,0 c -0.24247,-0.30758 -0.3637,-0.70562 -0.3637,-1.21223 l 0,0 0,0 c 0,-0.5066 0.14548,-0.94084 0.4122,-1.3027 l 0,0 0,0 c 0.29096,-0.37996 0.60616,-0.56089 0.99413,-0.56089 l 0,0 0,0 c 0.3152,0 0.55768,0.0905 0.70316,0.25331 l 0,0 0,-1.5741 0.55767,0 0,4.79465 -0.55767,0 z m 0,-2.60538 0,0 0,0 c -0.12125,-0.23522 -0.31521,-0.34377 -0.53345,-0.34377 l 0,0 0,0 c -0.29095,0 -0.53343,0.1267 -0.7274,0.36186 l 0,0 0,0 c -0.16973,0.2352 -0.26671,0.54279 -0.26671,0.92274 l 0,0 0,0 c 0,0.81418 0.33945,1.23031 0.99411,1.23031 l 0,0 0,0 c 0.097,0 0.19399,-0.0362 0.31522,-0.0905 l 0,0 0,0 c 0.12123,-0.0723 0.19398,-0.1267 0.21823,-0.19902 l 0,-1.88167 z" /> 20.1329 + <path 20.1330 + inkscape:connector-curvature="0" 20.1331 + id="427" 20.1332 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1333 + d="m 258.96757,612.71077 -0.14548,0 -0.89715,-2.31589 -0.92138,2.31589 -0.14548,0 -1.11536,-3.49194 0.60618,0 0.65466,2.24354 0.8244,-2.24354 0.14548,0 0.8729,2.24354 0.70315,-2.24354 0.55768,0 -1.1396,3.49194 z" /> 20.1334 + <path 20.1335 + inkscape:connector-curvature="0" 20.1336 + id="428" 20.1337 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1338 + d="m 262.26515,612.25845 0,0 0,0 c -0.21822,0.28949 -0.55767,0.45232 -1.01836,0.45232 l 0,0 0,0 c -0.24247,0 -0.4607,-0.10858 -0.63044,-0.28948 l 0,0 0,0 c -0.16971,-0.19903 -0.26671,-0.43424 -0.26671,-0.72373 l 0,0 0,0 c 0,-0.34375 0.14548,-0.63324 0.4122,-0.88655 l 0,0 0,0 c 0.26671,-0.23519 0.63043,-0.34375 1.06686,-0.34375 l 0,0 0,0 c 0.097,0 0.24248,0.0181 0.38797,0.0723 l 0,0 0,0 c 0,-0.5428 -0.21824,-0.81418 -0.67892,-0.81418 l 0,0 0,0 c -0.33946,0 -0.60618,0.0905 -0.80016,0.30758 l 0,0 -0.21822,-0.52469 0,0 0,0 c 0.097,-0.0905 0.24247,-0.18093 0.43645,-0.23522 l 0,0 0,0 c 0.16973,-0.0723 0.33945,-0.10858 0.50918,-0.10858 l 0,0 0,0 c 0.4607,0 0.80015,0.10858 0.99413,0.34378 l 0,0 0,0 c 0.19397,0.23522 0.3152,0.59706 0.3152,1.08558 l 0,0 0,1.21222 0,0 0,0 c 0,0.28948 0.0727,0.48851 0.24248,0.59706 l 0,0 0,0.28949 0,0 0,0 c -0.24248,0 -0.38796,-0.0181 -0.50919,-0.0905 l 0,0 0,0 c -0.12122,-0.0723 -0.19397,-0.19902 -0.24247,-0.34376 z m -0.0485,-1.2846 0,0 0,0 c -0.16974,-0.0362 -0.29097,-0.0723 -0.36372,-0.0723 l 0,0 0,0 c -0.29095,0 -0.50918,0.0904 -0.67891,0.2352 l 0,0 0,0 c -0.19397,0.16284 -0.26672,0.34378 -0.26672,0.56088 l 0,0 0,0 c 0,0.36187 0.19398,0.52469 0.55768,0.52469 l 0,0 0,0 c 0.29097,0 0.53343,-0.14473 0.75167,-0.43422 l 0,-0.81419 z" /> 20.1339 + <path 20.1340 + inkscape:connector-curvature="0" 20.1341 + id="429" 20.1342 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1343 + d="m 265.32028,609.834 0,0 0,0 c -0.12124,-0.0905 -0.24247,-0.14475 -0.3637,-0.14475 l 0,0 0,0 c -0.19399,0 -0.36372,0.0905 -0.5092,0.28949 l 0,0 0,0 c -0.14549,0.19901 -0.21822,0.43423 -0.21822,0.72372 l 0,0 0,1.93594 -0.55768,0 0,-3.40146 0.55768,0 0,0.54277 0,0 0,0 c 0.19398,-0.41615 0.50918,-0.61517 0.89715,-0.61517 l 0,0 0,0 c 0.097,0 0.24245,0.0181 0.43643,0.0544 l -0.24246,0.61517 z" /> 20.1344 + <path 20.1345 + inkscape:connector-curvature="0" 20.1346 + id="430" 20.1347 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1348 + d="m 268.54513,611.01003 0,0 -2.23072,0 0,0 0,0 c 0,0.39805 0.097,0.68753 0.29096,0.90466 l 0,0 0,0 c 0.16972,0.18091 0.4122,0.28947 0.67892,0.28947 l 0,0 0,0 c 0.3152,0 0.58191,-0.10857 0.80015,-0.30755 l 0,0 0.21821,0.43421 0,0 0,0 c -0.0728,0.0905 -0.21821,0.18093 -0.38795,0.23522 l 0,0 0,0 c -0.21821,0.0904 -0.4607,0.14473 -0.72741,0.14473 l 0,0 0,0 c -0.4122,0 -0.7274,-0.14473 -1.01837,-0.43424 l 0,0 0,0 c -0.26671,-0.32566 -0.4122,-0.7599 -0.4122,-1.28459 l 0,0 0,0 c 0,-0.56088 0.14549,-1.0132 0.43644,-1.37507 l 0,0 0,0 c 0.26673,-0.30757 0.60618,-0.45233 0.99413,-0.45233 l 0,0 0,0 c 0.43645,0 0.77591,0.14476 1.04261,0.41615 l 0,0 0,0 c 0.24248,0.2714 0.36372,0.61517 0.36372,1.04939 l 0,0 0,0 c 0,0.14474 -0.0242,0.25332 -0.0485,0.37995 z m -1.33359,-1.32078 0,0 0,0 c -0.24247,0 -0.4607,0.0905 -0.63042,0.25328 l 0,0 0,0 c -0.14548,0.18095 -0.24246,0.37998 -0.26671,0.61517 l 0,0 1.72153,0 0,0 0,0 c 0,-0.23519 -0.0727,-0.43422 -0.19397,-0.59706 l 0,0 0,0 c -0.16973,-0.18093 -0.36372,-0.27139 -0.63043,-0.27139 z" /> 20.1349 + <path 20.1350 + inkscape:connector-curvature="0" 20.1351 + id="431" 20.1352 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1353 + d="m 272.01244,612.6384 0,0 0,-3.58241 -0.8729,0.61516 0,-0.61516 0,0 0,0 c 0.24249,-0.10857 0.4607,-0.28949 0.70317,-0.48851 l 0,0 0,0 c 0.26672,-0.2171 0.4122,-0.41614 0.55768,-0.61516 l 0,0 0.16973,0 0,4.68608 -0.55768,0 z" /> 20.1354 + <path 20.1355 + inkscape:connector-curvature="0" 20.1356 + id="432" 20.1357 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1358 + d="m 229.28926,606.39634 58.33823,0.34376 0,0.43423 0,0.43423 -58.33823,-0.34378 0,-0.43423 0,-0.43421 z" /> 20.1359 + <path 20.1360 + inkscape:connector-curvature="0" 20.1361 + id="433" 20.1362 + style="fill:#ff6600;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1363 + d="m 419.33708,601.52932 -0.33946,0 -1.79427,-5.30122 0.7274,0 1.2366,3.85381 1.1881,-3.85381 0.70316,0 -1.72153,5.30122 z" /> 20.1364 + <path 20.1365 + inkscape:connector-curvature="0" 20.1366 + id="434" 20.1367 + style="fill:#ff6600;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1368 + d="m 425.1806,601.45696 -0.58193,-3.34721 -1.04262,3.41957 -0.14548,0 -1.09111,-3.41957 -0.55768,3.34721 -0.58193,0 0.87289,-5.22886 0.29096,0 1.13961,3.81761 1.04263,-3.81761 0.31521,0 0.96987,5.22886 -0.63042,0 z" /> 20.1369 + <path 20.1370 + inkscape:connector-curvature="0" 20.1371 + id="435" 20.1372 + style="fill:#ff6600;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1373 + d="m 426.10198,601.22177 0,0 0.24248,-0.65137 0,0 0,0 c 0.12123,0.0905 0.26671,0.16284 0.46069,0.23522 l 0,0 0,0 c 0.16973,0.0723 0.33945,0.0905 0.48493,0.0905 l 0,0 0,0 c 0.24248,0 0.43645,-0.0723 0.58194,-0.2171 l 0,0 0,0 c 0.16972,-0.16285 0.24246,-0.34378 0.24246,-0.57898 l 0,0 0,0 c 0,-0.18093 -0.0485,-0.34377 -0.12123,-0.48851 l 0,0 0,0 c -0.097,-0.16283 -0.31521,-0.32568 -0.63042,-0.50661 l 0,0 -0.38795,-0.19902 0,0 0,0 c -0.33946,-0.16284 -0.55769,-0.36186 -0.67892,-0.57897 l 0,0 0,0 c -0.14548,-0.23522 -0.19398,-0.5066 -0.19398,-0.83228 l 0,0 0,0 c 0,-0.37995 0.12124,-0.70562 0.36371,-0.95891 l 0,0 0,0 c 0.26672,-0.27142 0.58193,-0.39806 0.94564,-0.39806 l 0,0 0,0 c 0.53342,0 0.92138,0.10858 1.11535,0.28949 l 0,0 -0.19397,0.61517 0,0 0,0 c -0.097,-0.0723 -0.21823,-0.1267 -0.38796,-0.19902 l 0,0 0,0 c -0.19397,-0.0544 -0.36369,-0.0905 -0.50918,-0.0905 l 0,0 0,0 c -0.19397,0 -0.3637,0.0723 -0.50919,0.19903 l 0,0 0,0 c -0.12123,0.14474 -0.16973,0.32567 -0.16973,0.54279 l 0,0 0,0 c 0,0.1267 0.0242,0.25331 0.0485,0.36187 l 0,0 0,0 c 0.0485,0.10858 0.12123,0.19902 0.19397,0.27139 l 0,0 0,0 c 0.097,0.0723 0.26672,0.18091 0.48494,0.30758 l 0,0 0.38796,0.19902 0,0 0,0 c 0.33945,0.18092 0.55768,0.37995 0.70316,0.61515 l 0,0 0,0 c 0.12123,0.23522 0.19398,0.52471 0.19398,0.88656 l 0,0 0,0 c 0,0.39805 -0.14549,0.72373 -0.43645,0.99511 l 0,0 0,0 c -0.29097,0.2714 -0.67892,0.41613 -1.13961,0.41613 l 0,0 0,0 c -0.4122,0 -0.77591,-0.10857 -1.09112,-0.32564 z" /> 20.1374 + <path 20.1375 + inkscape:connector-curvature="0" 20.1376 + id="436" 20.1377 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1378 + d="m 392.68965,590.2936 0,0 c 0,-0.0904 0.0243,-0.16282 0.0728,-0.2352 0.0485,-0.0723 0.12123,-0.1267 0.21821,-0.16284 0.097,-0.0362 0.19398,-0.0543 0.31521,-0.0543 l 0,0 0,0.45232 -0.60617,0 z" /> 20.1379 + <path 20.1380 + inkscape:connector-curvature="0" 20.1381 + id="437" 20.1382 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1383 + d="m 393.29582,589.84127 59.42935,0 0,0.45233 0,0.47042 -59.42935,0 0,-0.47042 0,-0.45233 z" /> 20.1384 + <path 20.1385 + inkscape:connector-curvature="0" 20.1386 + id="438" 20.1387 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1388 + d="m 452.72517,589.84127 0,0 c 0.12123,0 0.21822,0.0181 0.31521,0.0544 0.097,0.0362 0.16973,0.0905 0.21823,0.16284 0.0485,0.0723 0.097,0.14474 0.097,0.2352 l 0,0 0,0 -0.63042,0 0,-0.45233 z" /> 20.1389 + <path 20.1390 + inkscape:connector-curvature="0" 20.1391 + id="439" 20.1392 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1393 + d="m 453.35559,590.2936 0,23.26755 -0.63042,0 -0.60618,0 0,-23.26755 0.60618,0 0.63042,0 z" /> 20.1394 + <path 20.1395 + inkscape:connector-curvature="0" 20.1396 + id="440" 20.1397 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1398 + d="m 453.35559,613.56115 0,0 c 0,0.0905 -0.0485,0.16282 -0.097,0.23519 -0.0485,0.0723 -0.12125,0.1267 -0.21823,0.16285 -0.097,0.0362 -0.19398,0.0723 -0.31521,0.0723 l 0,0 0,-0.47041 0.63042,0 z" /> 20.1399 + <path 20.1400 + inkscape:connector-curvature="0" 20.1401 + id="441" 20.1402 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1403 + d="m 452.72517,614.03156 -59.42935,0 0,-0.47041 0,-0.45234 59.42935,0 0,0.45234 0,0.47041 z" /> 20.1404 + <path 20.1405 + inkscape:connector-curvature="0" 20.1406 + id="442" 20.1407 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1408 + d="m 393.29582,614.03156 0,0 c -0.12123,0 -0.21822,-0.0361 -0.31521,-0.0723 -0.097,-0.0362 -0.16973,-0.0905 -0.21821,-0.16285 -0.0485,-0.0723 -0.0728,-0.14473 -0.0728,-0.23519 l 0,0 0.60617,0 0,0.4704 z" /> 20.1409 + <path 20.1410 + inkscape:connector-curvature="0" 20.1411 + id="443" 20.1412 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1413 + d="m 392.68965,613.56115 0,-23.26755 0.60617,0 0.63043,0 0,23.26755 -0.63043,0 -0.60617,0 z" /> 20.1414 + <path 20.1415 + inkscape:connector-curvature="0" 20.1416 + id="444" 20.1417 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1418 + d="m 410.53543,612.6384 0,-2.24352 -1.84277,0 0,2.24352 -0.58193,0 0,-4.64989 0.58193,0 0,1.86358 1.84277,0 0,-1.86358 0.58192,0 0,4.64989 -0.58192,0 z" /> 20.1419 + <path 20.1420 + inkscape:connector-curvature="0" 20.1421 + id="445" 20.1422 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1423 + d="m 413.71178,612.25845 0,0 0,0 c -0.24247,0.28949 -0.58192,0.45232 -1.01837,0.45232 l 0,0 0,0 c -0.24247,0 -0.4607,-0.10858 -0.65467,-0.28948 l 0,0 0,0 c -0.16973,-0.19903 -0.26672,-0.43424 -0.26672,-0.72373 l 0,0 0,0 c 0,-0.34375 0.14549,-0.63324 0.4122,-0.88655 l 0,0 0,0 c 0.29097,-0.23519 0.63043,-0.34375 1.06687,-0.34375 l 0,0 0,0 c 0.12123,0 0.24247,0.0181 0.38795,0.0723 l 0,0 0,0 c 0,-0.5428 -0.21822,-0.81418 -0.65467,-0.81418 l 0,0 0,0 c -0.3637,0 -0.63042,0.0905 -0.80015,0.30758 l 0,0 -0.24247,-0.52469 0,0 0,0 c 0.097,-0.0905 0.24247,-0.18093 0.43645,-0.23522 l 0,0 0,0 c 0.19397,-0.0723 0.3637,-0.10858 0.53343,-0.10858 l 0,0 0,0 c 0.46069,0 0.7759,0.10858 0.96988,0.34378 l 0,0 0,0 c 0.21822,0.23522 0.31521,0.59706 0.31521,1.08558 l 0,0 0,1.21222 0,0 0,0 c 0,0.28948 0.097,0.48851 0.24247,0.59706 l 0,0 0,0.28949 0,0 0,0 c -0.21823,0 -0.38795,-0.0181 -0.50919,-0.0905 l 0,0 0,0 c -0.097,-0.0723 -0.16973,-0.19902 -0.21822,-0.34376 z m -0.0727,-1.2846 0,0 0,0 c -0.16973,-0.0362 -0.29097,-0.0723 -0.3637,-0.0723 l 0,0 0,0 c -0.26673,0 -0.50919,0.0904 -0.67892,0.2352 l 0,0 0,0 c -0.16973,0.16284 -0.26672,0.34378 -0.26672,0.56088 l 0,0 0,0 c 0,0.36187 0.19398,0.52469 0.58193,0.52469 l 0,0 0,0 c 0.26671,0 0.50919,-0.14473 0.72741,-0.43422 l 0,-0.81419 z" /> 20.1424 + <path 20.1425 + inkscape:connector-curvature="0" 20.1426 + id="446" 20.1427 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1428 + d="m 416.74265,609.834 0,0 0,0 c -0.12123,-0.0905 -0.24247,-0.14475 -0.3637,-0.14475 l 0,0 0,0 c -0.19398,0 -0.3637,0.0905 -0.50918,0.28949 l 0,0 0,0 c -0.14549,0.19901 -0.21823,0.43423 -0.21823,0.72372 l 0,0 0,1.93594 -0.53344,0 0,-3.40146 0.53344,0 0,0.54277 0,0 0,0 c 0.19398,-0.41615 0.48494,-0.61517 0.89714,-0.61517 l 0,0 0,0 c 0.097,0 0.24247,0.0181 0.41219,0.0544 l -0.21822,0.61517 z" /> 20.1429 + <path 20.1430 + inkscape:connector-curvature="0" 20.1431 + id="447" 20.1432 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1433 + d="m 419.33708,612.6384 0,0 0,-0.25329 0,0 0,0 c -0.19398,0.21709 -0.48494,0.30757 -0.84865,0.30757 l 0,0 0,0 c -0.38795,0 -0.70316,-0.14474 -0.94563,-0.45232 l 0,0 0,0 c -0.24247,-0.30758 -0.3637,-0.70562 -0.3637,-1.21223 l 0,0 0,0 c 0,-0.5066 0.14548,-0.94084 0.43644,-1.3027 l 0,0 0,0 c 0.26672,-0.37996 0.60618,-0.56089 0.99413,-0.56089 l 0,0 0,0 c 0.31521,0 0.55768,0.0905 0.72741,0.25331 l 0,0 0,-1.5741 0.55768,0 0,4.79465 -0.55768,0 z m 0,-2.60538 0,0 0,0 c -0.14548,-0.23522 -0.33946,-0.34377 -0.58192,-0.34377 l 0,0 0,0 c -0.29098,0 -0.53344,0.1267 -0.70317,0.36186 l 0,0 0,0 c -0.19398,0.2352 -0.29097,0.54279 -0.29097,0.92274 l 0,0 0,0 c 0,0.81418 0.33946,1.23031 1.01838,1.23031 l 0,0 0,0 c 0.097,0 0.19397,-0.0362 0.31521,-0.0905 l 0,0 0,0 c 0.12124,-0.0723 0.21822,-0.1267 0.24247,-0.19902 l 0,-1.88167 z" /> 20.1434 + <path 20.1435 + inkscape:connector-curvature="0" 20.1436 + id="448" 20.1437 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1438 + d="m 423.5318,612.71077 -0.14548,0 -0.92138,-2.31589 -0.89714,2.31589 -0.14548,0 -1.09112,-3.49194 0.58193,0 0.65467,2.24354 0.8244,-2.24354 0.14548,0 0.84864,2.24354 0.72741,-2.24354 0.53344,0 -1.11537,3.49194 z" /> 20.1439 + <path 20.1440 + inkscape:connector-curvature="0" 20.1441 + id="449" 20.1442 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1443 + d="m 426.82939,612.25845 0,0 0,0 c -0.21822,0.28949 -0.55768,0.45232 -0.99412,0.45232 l 0,0 0,0 c -0.24247,0 -0.46069,-0.10858 -0.65467,-0.28948 l 0,0 0,0 c -0.16973,-0.19903 -0.26672,-0.43424 -0.26672,-0.72373 l 0,0 0,0 c 0,-0.34375 0.14548,-0.63324 0.4122,-0.88655 l 0,0 0,0 c 0.29097,-0.23519 0.63042,-0.34375 1.06687,-0.34375 l 0,0 0,0 c 0.12123,0 0.24247,0.0181 0.38795,0.0723 l 0,0 0,0 c 0,-0.5428 -0.21822,-0.81418 -0.67892,-0.81418 l 0,0 0,0 c -0.33946,0 -0.60617,0.0905 -0.7759,0.30758 l 0,0 -0.24247,-0.52469 0,0 0,0 c 0.097,-0.0905 0.24247,-0.18093 0.43645,-0.23522 l 0,0 0,0 c 0.19398,-0.0723 0.36371,-0.10858 0.53344,-0.10858 l 0,0 0,0 c 0.43644,0 0.77589,0.10858 0.96987,0.34378 l 0,0 0,0 c 0.21823,0.23522 0.31521,0.59706 0.31521,1.08558 l 0,0 0,1.21222 0,0 0,0 c 0,0.28948 0.0728,0.48851 0.21823,0.59706 l 0,0 0,0.28949 0,0 0,0 c -0.19398,0 -0.36371,-0.0181 -0.48494,-0.0905 l 0,0 0,0 c -0.097,-0.0723 -0.19398,-0.19902 -0.24248,-0.34376 z m -0.0485,-1.2846 0,0 0,0 c -0.16973,-0.0362 -0.29096,-0.0723 -0.36371,-0.0723 l 0,0 0,0 c -0.26671,0 -0.50918,0.0904 -0.67891,0.2352 l 0,0 0,0 c -0.16973,0.16284 -0.26672,0.34378 -0.26672,0.56088 l 0,0 0,0 c 0,0.36187 0.19398,0.52469 0.58194,0.52469 l 0,0 0,0 c 0.26671,0 0.50918,-0.14473 0.7274,-0.43422 l 0,-0.81419 z" /> 20.1444 + <path 20.1445 + inkscape:connector-curvature="0" 20.1446 + id="450" 20.1447 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1448 + d="m 429.88451,609.834 0,0 0,0 c -0.12123,-0.0905 -0.24247,-0.14475 -0.3637,-0.14475 l 0,0 0,0 c -0.19398,0 -0.36371,0.0905 -0.50919,0.28949 l 0,0 0,0 c -0.14548,0.19901 -0.21822,0.43423 -0.21822,0.72372 l 0,0 0,1.93594 -0.55768,0 0,-3.40146 0.55768,0 0,0.54277 0,0 0,0 c 0.19397,-0.41615 0.48494,-0.61517 0.89714,-0.61517 l 0,0 0,0 c 0.097,0 0.24247,0.0181 0.4122,0.0544 l -0.21823,0.61517 z" /> 20.1449 + <path 20.1450 + inkscape:connector-curvature="0" 20.1451 + id="451" 20.1452 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1453 + d="m 433.13361,611.01003 0,0 -2.25497,0 0,0 0,0 c 0,0.39805 0.097,0.68753 0.29096,0.90466 l 0,0 0,0 c 0.19398,0.18091 0.4122,0.28947 0.67891,0.28947 l 0,0 0,0 c 0.31522,0 0.58194,-0.10857 0.80016,-0.30755 l 0,0 0.24247,0.43421 0,0 0,0 c -0.097,0.0905 -0.21822,0.18093 -0.4122,0.23522 l 0,0 0,0 c -0.21822,0.0904 -0.4607,0.14473 -0.72741,0.14473 l 0,0 0,0 c -0.38795,0 -0.72741,-0.14473 -0.99412,-0.43424 l 0,0 0,0 c -0.31521,-0.32566 -0.46069,-0.7599 -0.46069,-1.28459 l 0,0 0,0 c 0,-0.56088 0.14548,-1.0132 0.46069,-1.37507 l 0,0 0,0 c 0.29096,-0.30757 0.60617,-0.45233 0.99412,-0.45233 l 0,0 0,0 c 0.46069,0 0.80015,0.14476 1.04262,0.41615 l 0,0 0,0 c 0.24248,0.2714 0.36371,0.61517 0.36371,1.04939 l 0,0 0,0 c 0,0.14474 0,0.25332 -0.0243,0.37995 z m -1.35783,-1.32078 0,0 0,0 c -0.24247,0 -0.43645,0.0905 -0.60618,0.25328 l 0,0 0,0 c -0.16973,0.18095 -0.26671,0.37998 -0.26671,0.61517 l 0,0 1.72153,0 0,0 0,0 c 0,-0.23519 -0.0727,-0.43422 -0.21822,-0.59706 l 0,0 0,0 c -0.14548,-0.18093 -0.36371,-0.27139 -0.63042,-0.27139 z" /> 20.1454 + <path 20.1455 + inkscape:connector-curvature="0" 20.1456 + id="452" 20.1457 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1458 + d="m 435.43707,612.31273 0,0 0.26672,-0.48852 0,0 0,0 c 0.19398,0.23522 0.43644,0.34376 0.72741,0.34376 l 0,0 0,0 c 0.53343,0 0.8244,-0.28948 0.8244,-0.86845 l 0,0 0,0 c 0,-0.2533 -0.097,-0.47041 -0.24247,-0.63326 l 0,0 0,0 c -0.16973,-0.16284 -0.36371,-0.25329 -0.63042,-0.25329 l 0,0 -0.0485,0 0,-0.50661 0.0242,0 0,0 0,0 c 0.50918,0 0.75166,-0.23521 0.75166,-0.72371 l 0,0 0,0 c 0,-0.50661 -0.24248,-0.74182 -0.70317,-0.74182 l 0,0 0,0 c -0.24247,0 -0.4607,0.0905 -0.60617,0.2714 l 0,0 -0.24247,-0.43424 0,0 0,0 c 0.16973,-0.25331 0.46069,-0.37995 0.89713,-0.37995 l 0,0 0,0 c 0.36371,0 0.67892,0.10858 0.89714,0.32569 l 0,0 0,0 c 0.24248,0.2171 0.36371,0.4885 0.36371,0.83226 l 0,0 0,0 c 0,0.25331 -0.0728,0.48852 -0.19398,0.70563 l 0,0 0,0 c -0.14548,0.19902 -0.29096,0.32567 -0.46069,0.39805 l 0,0 0,0 c 0.24247,0.0905 0.43644,0.23521 0.58192,0.43423 l 0,0 0,0 c 0.14549,0.21711 0.21823,0.47042 0.21823,0.75991 l 0,0 0,0 c 0,0.43422 -0.12123,0.7599 -0.38796,0.99511 l 0,0 0,0 c -0.24246,0.23519 -0.60617,0.36185 -1.04261,0.36185 l 0,0 0,0 c -0.19397,0 -0.38795,-0.0542 -0.55768,-0.1267 l 0,0 0,0 c -0.19398,-0.0723 -0.33946,-0.16282 -0.43645,-0.27138 z" /> 20.1459 + <path 20.1460 + inkscape:connector-curvature="0" 20.1461 + id="453" 20.1462 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1463 + d="m 393.82925,606.39634 58.33824,0.34376 0,0.43423 0,0.43423 -58.33824,-0.34378 0,-0.43423 0,-0.43421 z" /> 20.1464 + <path 20.1465 + inkscape:connector-curvature="0" 20.1466 + id="454" 20.1467 + style="fill:#ff6600;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1468 + d="m 493.38735,601.52932 -0.29096,0 -1.79428,-5.30122 0.72741,0 1.21235,3.85381 1.1881,-3.85381 0.70316,0 -1.74578,5.30122 z" /> 20.1469 + <path 20.1470 + inkscape:connector-curvature="0" 20.1471 + id="455" 20.1472 + style="fill:#ff6600;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1473 + d="m 499.25512,601.45696 -0.55768,-3.34721 -1.04262,3.41957 -0.16973,0 -1.06686,-3.41957 -0.55769,3.34721 -0.63042,0 0.89714,-5.22886 0.31521,0 1.13961,3.81761 1.04262,-3.81761 0.29096,0 0.94563,5.22886 -0.60617,0 z" /> 20.1474 + <path 20.1475 + inkscape:connector-curvature="0" 20.1476 + id="456" 20.1477 + style="fill:#ff6600;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1478 + d="m 500.1765,601.22177 0,0 0.24247,-0.65137 0,0 0,0 c 0.12124,0.0905 0.26672,0.16284 0.46069,0.23522 l 0,0 0,0 c 0.16973,0.0723 0.33946,0.0905 0.48494,0.0905 l 0,0 0,0 c 0.24247,0 0.4607,-0.0723 0.60618,-0.2171 l 0,0 0,0 c 0.16973,-0.16285 0.24247,-0.34378 0.24247,-0.57898 l 0,0 0,0 c 0,-0.18093 -0.0485,-0.34377 -0.14548,-0.48851 l 0,0 0,0 c -0.0727,-0.16283 -0.29097,-0.32568 -0.63042,-0.50661 l 0,0 -0.38796,-0.19902 0,0 0,0 c -0.33946,-0.16284 -0.55767,-0.36186 -0.70316,-0.57897 l 0,0 0,0 c -0.12123,-0.23522 -0.19397,-0.5066 -0.19397,-0.83228 l 0,0 0,0 c 0,-0.37995 0.14548,-0.70562 0.38795,-0.95891 l 0,0 0,0 c 0.26672,-0.27142 0.58193,-0.39806 0.96988,-0.39806 l 0,0 0,0 c 0.53343,0 0.89713,0.10858 1.11536,0.28949 l 0,0 -0.19398,0.61517 0,0 0,0 c -0.097,-0.0723 -0.21822,-0.1267 -0.41219,-0.19902 l 0,0 0,0 c -0.16973,-0.0544 -0.33946,-0.0905 -0.48495,-0.0905 l 0,0 0,0 c -0.21822,0 -0.38794,0.0723 -0.53343,0.19903 l 0,0 0,0 c -0.12124,0.14474 -0.19397,0.32567 -0.19397,0.54279 l 0,0 0,0 c 0,0.1267 0.0242,0.25331 0.0727,0.36187 l 0,0 0,0 c 0.0485,0.10858 0.12124,0.19902 0.19398,0.27139 l 0,0 0,0 c 0.097,0.0723 0.24247,0.18091 0.50919,0.30758 l 0,0 0.38795,0.19902 0,0 0,0 c 0.33946,0.18092 0.55768,0.37995 0.67892,0.61515 l 0,0 0,0 c 0.14548,0.23522 0.21822,0.52471 0.21822,0.88656 l 0,0 0,0 c 0,0.39805 -0.14549,0.72373 -0.43645,0.99511 l 0,0 0,0 c -0.29096,0.2714 -0.67891,0.41613 -1.16385,0.41613 l 0,0 0,0 c -0.43644,0 -0.80015,-0.10857 -1.09112,-0.32564 z" /> 20.1479 + <path 20.1480 + inkscape:connector-curvature="0" 20.1481 + id="457" 20.1482 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1483 + d="m 466.78842,590.2936 0,0 c 0,-0.0904 0.0242,-0.16282 0.0727,-0.2352 0.0485,-0.0723 0.12124,-0.1267 0.21823,-0.16284 0.097,-0.0362 0.19397,-0.0543 0.31521,-0.0543 l 0,0 0,0.45232 -0.60617,0 z" /> 20.1484 + <path 20.1485 + inkscape:connector-curvature="0" 20.1486 + id="458" 20.1487 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1488 + d="m 467.39459,589.84127 59.42935,0 0,0.45233 0,0.47042 -59.42935,0 0,-0.47042 0,-0.45233 z" /> 20.1489 + <path 20.1490 + inkscape:connector-curvature="0" 20.1491 + id="459" 20.1492 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1493 + d="m 526.82394,589.84127 0,0 c 0.12123,0 0.21821,0.0181 0.31521,0.0544 0.097,0.0362 0.16972,0.0905 0.21821,0.16284 0.0485,0.0723 0.097,0.14474 0.097,0.2352 l 0,0 0,0 -0.63041,0 0,-0.45233 z" /> 20.1494 + <path 20.1495 + inkscape:connector-curvature="0" 20.1496 + id="460" 20.1497 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1498 + d="m 527.45435,590.2936 0,23.26755 -0.63041,0 -0.60618,0 0,-23.26755 0.60618,0 0.63041,0 z" /> 20.1499 + <path 20.1500 + inkscape:connector-curvature="0" 20.1501 + id="461" 20.1502 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1503 + d="m 527.45435,613.56115 0,0 c 0,0.0905 -0.0485,0.16282 -0.097,0.23519 -0.0485,0.0723 -0.12123,0.1267 -0.21821,0.16285 -0.097,0.0362 -0.19398,0.0723 -0.31521,0.0723 l 0,0 0,-0.47041 0.63041,0 z" /> 20.1504 + <path 20.1505 + inkscape:connector-curvature="0" 20.1506 + id="462" 20.1507 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1508 + d="m 526.82394,614.03156 -59.42935,0 0,-0.47041 0,-0.45234 59.42935,0 0,0.45234 0,0.47041 z" /> 20.1509 + <path 20.1510 + inkscape:connector-curvature="0" 20.1511 + id="463" 20.1512 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1513 + d="m 467.39459,614.03156 0,0 c -0.12124,0 -0.21822,-0.0361 -0.31521,-0.0723 -0.097,-0.0362 -0.16973,-0.0905 -0.21823,-0.16285 -0.0485,-0.0723 -0.0727,-0.14473 -0.0727,-0.23519 l 0,0 0.60617,0 0,0.4704 z" /> 20.1514 + <path 20.1515 + inkscape:connector-curvature="0" 20.1516 + id="464" 20.1517 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1518 + d="m 466.78842,613.56115 0,-23.26755 0.60617,0 0.63042,0 0,23.26755 -0.63042,0 -0.60617,0 z" /> 20.1519 + <path 20.1520 + inkscape:connector-curvature="0" 20.1521 + id="465" 20.1522 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1523 + d="m 484.63419,612.6384 0,-2.24352 -1.86702,0 0,2.24352 -0.58193,0 0,-4.64989 0.58193,0 0,1.86358 1.86702,0 0,-1.86358 0.58192,0 0,4.64989 -0.58192,0 z" /> 20.1524 + <path 20.1525 + inkscape:connector-curvature="0" 20.1526 + id="466" 20.1527 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1528 + d="m 487.76205,612.25845 0,0 0,0 c -0.21822,0.28949 -0.55768,0.45232 -0.96988,0.45232 l 0,0 0,0 c -0.26671,0 -0.46069,-0.10858 -0.65467,-0.28948 l 0,0 0,0 c -0.16973,-0.19903 -0.26671,-0.43424 -0.26671,-0.72373 l 0,0 0,0 c 0,-0.34375 0.14548,-0.63324 0.41219,-0.88655 l 0,0 0,0 c 0.29097,-0.23519 0.63042,-0.34375 1.04263,-0.34375 l 0,0 0,0 c 0.12123,0 0.24247,0.0181 0.38795,0.0723 l 0,0 0,0 c 0,-0.5428 -0.21823,-0.81418 -0.65467,-0.81418 l 0,0 0,0 c -0.33946,0 -0.60618,0.0905 -0.77591,0.30758 l 0,0 -0.24246,-0.52469 0,0 0,0 c 0.097,-0.0905 0.24246,-0.18093 0.43644,-0.23522 l 0,0 0,0 c 0.19398,-0.0723 0.36371,-0.10858 0.53344,-0.10858 l 0,0 0,0 c 0.41219,0 0.75165,0.10858 0.94562,0.34378 l 0,0 0,0 c 0.21823,0.23522 0.31521,0.59706 0.31521,1.08558 l 0,0 0,1.21222 0,0 0,0 c 0,0.28948 0.0727,0.48851 0.24248,0.59706 l 0,0 0,0.28949 0,0 0,0 c -0.21823,0 -0.38796,-0.0181 -0.50919,-0.0905 l 0,0 0,0 c -0.097,-0.0723 -0.19398,-0.19902 -0.24247,-0.34376 z m -0.0485,-1.2846 0,0 0,0 c -0.16973,-0.0362 -0.29097,-0.0723 -0.36371,-0.0723 l 0,0 0,0 c -0.24247,0 -0.48494,0.0904 -0.65466,0.2352 l 0,0 0,0 c -0.16973,0.16284 -0.26673,0.34378 -0.26673,0.56088 l 0,0 0,0 c 0,0.36187 0.19398,0.52469 0.58194,0.52469 l 0,0 0,0 c 0.24246,0 0.48493,-0.14473 0.70316,-0.43422 l 0,-0.81419 z" /> 20.1529 + <path 20.1530 + inkscape:connector-curvature="0" 20.1531 + id="467" 20.1532 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1533 + d="m 490.84141,609.834 0,0 0,0 c -0.12123,-0.0905 -0.24246,-0.14475 -0.3637,-0.14475 l 0,0 0,0 c -0.19397,0 -0.3637,0.0905 -0.53343,0.28949 l 0,0 0,0 c -0.14549,0.19901 -0.21822,0.43423 -0.21822,0.72372 l 0,0 0,1.93594 -0.53344,0 0,-3.40146 0.53344,0 0,0.54277 0,0 0,0 c 0.21822,-0.41615 0.50918,-0.61517 0.89714,-0.61517 l 0,0 0,0 c 0.12123,0 0.24246,0.0181 0.43644,0.0544 l -0.21823,0.61517 z" /> 20.1534 + <path 20.1535 + inkscape:connector-curvature="0" 20.1536 + id="468" 20.1537 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1538 + d="m 493.4116,612.6384 0,0 0,-0.25329 0,0 0,0 c -0.19398,0.21709 -0.4607,0.30757 -0.8244,0.30757 l 0,0 0,0 c -0.38796,0 -0.70316,-0.14474 -0.94563,-0.45232 l 0,0 0,0 c -0.24247,-0.30758 -0.3637,-0.70562 -0.3637,-1.21223 l 0,0 0,0 c 0,-0.5066 0.14548,-0.94084 0.41219,-1.3027 l 0,0 0,0 c 0.29097,-0.37996 0.63043,-0.56089 1.01837,-0.56089 l 0,0 0,0 c 0.31521,0 0.53344,0.0905 0.70317,0.25331 l 0,0 0,-1.5741 0.55768,0 0,4.79465 -0.55768,0 z m 0,-2.60538 0,0 0,0 c -0.14549,-0.23522 -0.31521,-0.34377 -0.55769,-0.34377 l 0,0 0,0 c -0.29096,0 -0.53342,0.1267 -0.7274,0.36186 l 0,0 0,0 c -0.16973,0.2352 -0.26672,0.54279 -0.26672,0.92274 l 0,0 0,0 c 0,0.81418 0.33945,1.23031 1.01837,1.23031 l 0,0 0,0 c 0.097,0 0.19398,-0.0362 0.29097,-0.0905 l 0,0 0,0 c 0.12123,-0.0723 0.19397,-0.1267 0.24247,-0.19902 l 0,-1.88167 z" /> 20.1539 + <path 20.1540 + inkscape:connector-curvature="0" 20.1541 + id="469" 20.1542 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1543 + d="m 497.63057,612.71077 -0.14548,0 -0.92138,-2.31589 -0.89714,2.31589 -0.14549,0 -1.11536,-3.49194 0.58193,0 0.65467,2.24354 0.84864,-2.24354 0.14548,0 0.84865,2.24354 0.70316,-2.24354 0.55768,0 -1.11536,3.49194 z" /> 20.1544 + <path 20.1545 + inkscape:connector-curvature="0" 20.1546 + id="470" 20.1547 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1548 + d="m 500.90391,612.25845 0,0 0,0 c -0.21822,0.28949 -0.55768,0.45232 -1.01837,0.45232 l 0,0 0,0 c -0.24247,0 -0.43644,-0.10858 -0.63042,-0.28948 l 0,0 0,0 c -0.16973,-0.19903 -0.24247,-0.43424 -0.24247,-0.72373 l 0,0 0,0 c 0,-0.34375 0.12124,-0.63324 0.38795,-0.88655 l 0,0 0,0 c 0.29096,-0.23519 0.63042,-0.34375 1.06687,-0.34375 l 0,0 0,0 c 0.12123,0 0.24246,0.0181 0.38795,0.0723 l 0,0 0,0 c 0,-0.5428 -0.21822,-0.81418 -0.67892,-0.81418 l 0,0 0,0 c -0.33946,0 -0.60617,0.0905 -0.80015,0.30758 l 0,0 -0.21822,-0.52469 0,0 0,0 c 0.097,-0.0905 0.24247,-0.18093 0.43645,-0.23522 l 0,0 0,0 c 0.16973,-0.0723 0.3637,-0.10858 0.53343,-0.10858 l 0,0 0,0 c 0.43644,0 0.7759,0.10858 0.96988,0.34378 l 0,0 0,0 c 0.21822,0.23522 0.31521,0.59706 0.31521,1.08558 l 0,0 0,1.21222 0,0 0,0 c 0,0.28948 0.0727,0.48851 0.24247,0.59706 l 0,0 0,0.28949 0,0 0,0 c -0.21822,0 -0.38795,-0.0181 -0.50918,-0.0905 l 0,0 0,0 c -0.097,-0.0723 -0.19398,-0.19902 -0.24248,-0.34376 z m -0.0485,-1.2846 0,0 0,0 c -0.16973,-0.0362 -0.29097,-0.0723 -0.3637,-0.0723 l 0,0 0,0 c -0.26672,0 -0.50919,0.0904 -0.67892,0.2352 l 0,0 0,0 c -0.16973,0.16284 -0.26672,0.34378 -0.26672,0.56088 l 0,0 0,0 c 0,0.36187 0.19398,0.52469 0.58193,0.52469 l 0,0 0,0 c 0.26671,0 0.50919,-0.14473 0.72741,-0.43422 l 0,-0.81419 z" /> 20.1549 + <path 20.1550 + inkscape:connector-curvature="0" 20.1551 + id="471" 20.1552 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1553 + d="m 503.98328,609.834 0,0 0,0 c -0.12123,-0.0905 -0.24247,-0.14475 -0.36371,-0.14475 l 0,0 0,0 c -0.19397,0 -0.38795,0.0905 -0.53343,0.28949 l 0,0 0,0 c -0.14548,0.19901 -0.21822,0.43423 -0.21822,0.72372 l 0,0 0,1.93594 -0.53343,0 0,-3.40146 0.53343,0 0,0.54277 0,0 0,0 c 0.21822,-0.41615 0.50919,-0.61517 0.89713,-0.61517 l 0,0 0,0 c 0.12124,0 0.24248,0.0181 0.43645,0.0544 l -0.21822,0.61517 z" /> 20.1554 + <path 20.1555 + inkscape:connector-curvature="0" 20.1556 + id="472" 20.1557 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1558 + d="m 507.18388,611.01003 0,0 -2.20648,0 0,0 0,0 c 0,0.39805 0.0727,0.68753 0.26673,0.90466 l 0,0 0,0 c 0.16972,0.18091 0.41219,0.28947 0.67891,0.28947 l 0,0 0,0 c 0.31521,0 0.58192,-0.10857 0.80015,-0.30755 l 0,0 0.21822,0.43421 0,0 0,0 c -0.0727,0.0905 -0.19397,0.18093 -0.38795,0.23522 l 0,0 0,0 c -0.21823,0.0904 -0.46069,0.14473 -0.72741,0.14473 l 0,0 0,0 c -0.38796,0 -0.72741,-0.14473 -0.96988,-0.43424 l 0,0 0,0 c -0.31521,-0.32566 -0.46069,-0.7599 -0.46069,-1.28459 l 0,0 0,0 c 0,-0.56088 0.14548,-1.0132 0.46069,-1.37507 l 0,0 0,0 c 0.26671,-0.30757 0.58192,-0.45233 0.96988,-0.45233 l 0,0 0,0 c 0.43645,0 0.80015,0.14476 1.04262,0.41615 l 0,0 0,0 c 0.24247,0.2714 0.36371,0.61517 0.36371,1.04939 l 0,0 0,0 c 0,0.14474 0,0.25332 -0.0485,0.37995 z m -1.33358,-1.32078 0,0 0,0 c -0.24248,0 -0.46069,0.0905 -0.60617,0.25328 l 0,0 0,0 c -0.16973,0.18095 -0.24248,0.37998 -0.26673,0.61517 l 0,0 1.72154,0 0,0 0,0 c 0,-0.23519 -0.0727,-0.43422 -0.21822,-0.59706 l 0,0 0,0 c -0.14549,-0.18093 -0.36371,-0.27139 -0.63042,-0.27139 z" /> 20.1559 + <path 20.1560 + inkscape:connector-curvature="0" 20.1561 + id="473" 20.1562 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1563 + d="m 511.76656,611.37189 0,1.26651 -0.55769,0 0,-1.26651 -1.9155,0 0,-0.36186 2.25496,-3.05771 0.21823,0 0,2.93108 0.4122,0 0,0.48849 -0.4122,0 z m -0.55769,-2.15306 -1.23659,1.66457 1.23659,0 0,-1.66457 z" /> 20.1564 + <path 20.1565 + inkscape:connector-curvature="0" 20.1566 + id="474" 20.1567 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1568 + d="m 467.92802,606.39634 58.33823,0.34376 0,0.43423 0,0.43423 -58.33823,-0.34378 0,-0.43423 0,-0.43421 z" /> 20.1569 + <path 20.1570 + inkscape:connector-curvature="0" 20.1571 + id="475" 20.1572 + style="fill:#ff6600;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1573 + d="m 567.48611,601.52932 -0.31521,0 -1.79427,-5.30122 0.7274,0 1.2366,3.85381 1.1881,-3.85381 0.70317,0 -1.74579,5.30122 z" /> 20.1574 + <path 20.1575 + inkscape:connector-curvature="0" 20.1576 + id="476" 20.1577 + style="fill:#ff6600;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1578 + d="m 573.35389,601.45696 -0.58194,-3.34721 -1.04262,3.41957 -0.16973,0 -1.04262,-3.41957 -0.55767,3.34721 -0.63043,0 0.89714,-5.22886 0.31521,0 1.11537,3.81761 1.04262,-3.81761 0.29096,0 0.96988,5.22886 -0.60617,0 z" /> 20.1579 + <path 20.1580 + inkscape:connector-curvature="0" 20.1581 + id="477" 20.1582 + style="fill:#ff6600;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1583 + d="m 574.27526,601.22177 0,0 0.24248,-0.65137 0,0 0,0 c 0.12123,0.0905 0.26671,0.16284 0.46069,0.23522 l 0,0 0,0 c 0.16973,0.0723 0.33946,0.0905 0.48494,0.0905 l 0,0 0,0 c 0.24247,0 0.4607,-0.0723 0.60618,-0.2171 l 0,0 0,0 c 0.14548,-0.16285 0.24246,-0.34378 0.24246,-0.57898 l 0,0 0,0 c 0,-0.18093 -0.0485,-0.34377 -0.14548,-0.48851 l 0,0 0,0 c -0.0727,-0.16283 -0.29096,-0.32568 -0.63042,-0.50661 l 0,0 -0.38795,-0.19902 0,0 0,0 c -0.33946,-0.16284 -0.55768,-0.36186 -0.70317,-0.57897 l 0,0 0,0 c -0.12123,-0.23522 -0.19397,-0.5066 -0.19397,-0.83228 l 0,0 0,0 c 0,-0.37995 0.14549,-0.70562 0.38795,-0.95891 l 0,0 0,0 c 0.24247,-0.27142 0.58193,-0.39806 0.96988,-0.39806 l 0,0 0,0 c 0.53343,0 0.89714,0.10858 1.11536,0.28949 l 0,0 -0.19397,0.61517 0,0 0,0 c -0.097,-0.0723 -0.21823,-0.1267 -0.4122,-0.19902 l 0,0 0,0 c -0.16973,-0.0544 -0.33946,-0.0905 -0.48494,-0.0905 l 0,0 0,0 c -0.21822,0 -0.4122,0.0723 -0.53344,0.19903 l 0,0 0,0 c -0.12123,0.14474 -0.19397,0.32567 -0.19397,0.54279 l 0,0 0,0 c 0,0.1267 0.0242,0.25331 0.0727,0.36187 l 0,0 0,0 c 0.0485,0.10858 0.12123,0.19902 0.19398,0.27139 l 0,0 0,0 c 0.0727,0.0723 0.24247,0.18091 0.50918,0.30758 l 0,0 0.38796,0.19902 0,0 0,0 c 0.31521,0.18092 0.55767,0.37995 0.65466,0.61515 l 0,0 0,0 c 0.14549,0.23522 0.19398,0.52471 0.19398,0.88656 l 0,0 0,0 c 0,0.39805 -0.12124,0.72373 -0.38795,0.99511 l 0,0 0,0 c -0.29097,0.2714 -0.67892,0.41613 -1.16386,0.41613 l 0,0 0,0 c -0.43645,0 -0.80014,-0.10857 -1.09112,-0.32564 z" /> 20.1584 + <path 20.1585 + inkscape:connector-curvature="0" 20.1586 + id="478" 20.1587 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1588 + d="m 540.88718,590.2936 0,0 c 0,-0.0904 0,-0.16282 0.0485,-0.2352 0.0485,-0.0723 0.12123,-0.1267 0.21821,-0.16284 0.097,-0.0362 0.19398,-0.0543 0.31521,-0.0543 l 0,0 0,0.45232 -0.58192,0 z" /> 20.1589 + <path 20.1590 + inkscape:connector-curvature="0" 20.1591 + id="479" 20.1592 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1593 + d="m 541.4691,589.84127 59.42935,0 0,0.45233 0,0.47042 -59.42935,0 0,-0.47042 0,-0.45233 z" /> 20.1594 + <path 20.1595 + inkscape:connector-curvature="0" 20.1596 + id="480" 20.1597 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1598 + d="m 600.89845,589.84127 0,0 c 0.12124,0 0.21822,0.0181 0.31521,0.0544 0.097,0.0362 0.16973,0.0905 0.21823,0.16284 0.0485,0.0723 0.097,0.14474 0.097,0.2352 l 0,0 0,0 -0.63042,0 0,-0.45233 z" /> 20.1599 + <path 20.1600 + inkscape:connector-curvature="0" 20.1601 + id="481" 20.1602 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1603 + d="m 601.52887,590.2936 0,23.26755 -0.63042,0 -0.58193,0 0,-23.26755 0.58193,0 0.63042,0 z" /> 20.1604 + <path 20.1605 + inkscape:connector-curvature="0" 20.1606 + id="482" 20.1607 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1608 + d="m 601.52887,613.56115 0,0 c 0,0.0905 -0.0485,0.16282 -0.097,0.23519 -0.0485,0.0723 -0.12124,0.1267 -0.21823,0.16285 -0.097,0.0362 -0.19397,0.0723 -0.31521,0.0723 l 0,0 0,-0.47041 0.63042,0 z" /> 20.1609 + <path 20.1610 + inkscape:connector-curvature="0" 20.1611 + id="483" 20.1612 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1613 + d="m 600.89845,614.03156 -59.42935,0 0,-0.47041 0,-0.45234 59.42935,0 0,0.45234 0,0.47041 z" /> 20.1614 + <path 20.1615 + inkscape:connector-curvature="0" 20.1616 + id="484" 20.1617 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1618 + d="m 541.4691,614.03156 0,0 c -0.12123,0 -0.21821,-0.0361 -0.31521,-0.0723 -0.097,-0.0362 -0.16973,-0.0905 -0.21821,-0.16285 -0.0485,-0.0723 -0.0485,-0.14473 -0.0485,-0.23519 l 0,0 0.58192,0 0,0.4704 z" /> 20.1619 + <path 20.1620 + inkscape:connector-curvature="0" 20.1621 + id="485" 20.1622 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1623 + d="m 540.88718,613.56115 0,-23.26755 0.58192,0 0.63043,0 0,23.26755 -0.63043,0 -0.58192,0 z" /> 20.1624 + <path 20.1625 + inkscape:connector-curvature="0" 20.1626 + id="486" 20.1627 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1628 + d="m 558.73296,612.6384 0,-2.24352 -1.86702,0 0,2.24352 -0.58193,0 0,-4.64989 0.58193,0 0,1.86358 1.86702,0 0,-1.86358 0.55768,0 0,4.64989 -0.55768,0 z" /> 20.1629 + <path 20.1630 + inkscape:connector-curvature="0" 20.1631 + id="487" 20.1632 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1633 + d="m 561.86081,612.25845 0,0 0,0 c -0.21821,0.28949 -0.55767,0.45232 -1.01837,0.45232 l 0,0 0,0 c -0.24247,0 -0.43644,-0.10858 -0.63042,-0.28948 l 0,0 0,0 c -0.16973,-0.19903 -0.26671,-0.43424 -0.26671,-0.72373 l 0,0 0,0 c 0,-0.34375 0.14548,-0.63324 0.41219,-0.88655 l 0,0 0,0 c 0.29097,-0.23519 0.63043,-0.34375 1.06687,-0.34375 l 0,0 0,0 c 0.12123,0 0.24247,0.0181 0.38796,0.0723 l 0,0 0,0 c 0,-0.5428 -0.21823,-0.81418 -0.67892,-0.81418 l 0,0 0,0 c -0.33946,0 -0.60618,0.0905 -0.80016,0.30758 l 0,0 -0.21821,-0.52469 0,0 0,0 c 0.097,-0.0905 0.24246,-0.18093 0.43644,-0.23522 l 0,0 0,0 c 0.16973,-0.0723 0.3637,-0.10858 0.53343,-0.10858 l 0,0 0,0 c 0.43644,0 0.7759,0.10858 0.96988,0.34378 l 0,0 0,0 c 0.21822,0.23522 0.31521,0.59706 0.31521,1.08558 l 0,0 0,1.21222 0,0 0,0 c 0,0.28948 0.0727,0.48851 0.24247,0.59706 l 0,0 0,0.28949 0,0 0,0 c -0.21822,0 -0.38795,-0.0181 -0.50918,-0.0905 l 0,0 0,0 c -0.097,-0.0723 -0.19398,-0.19902 -0.24248,-0.34376 z m -0.0485,-1.2846 0,0 0,0 c -0.16973,-0.0362 -0.29098,-0.0723 -0.36371,-0.0723 l 0,0 0,0 c -0.29096,0 -0.50919,0.0904 -0.67892,0.2352 l 0,0 0,0 c -0.16973,0.16284 -0.26672,0.34378 -0.26672,0.56088 l 0,0 0,0 c 0,0.36187 0.19398,0.52469 0.55768,0.52469 l 0,0 0,0 c 0.29096,0 0.53344,-0.14473 0.75167,-0.43422 l 0,-0.81419 z" /> 20.1634 + <path 20.1635 + inkscape:connector-curvature="0" 20.1636 + id="488" 20.1637 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1638 + d="m 564.89169,609.834 0,0 0,0 c -0.097,-0.0905 -0.19398,-0.14475 -0.31522,-0.14475 l 0,0 0,0 c -0.21821,0 -0.38794,0.0905 -0.53342,0.28949 l 0,0 0,0 c -0.14549,0.19901 -0.21823,0.43423 -0.21823,0.72372 l 0,0 0,1.93594 -0.53343,0 0,-3.40146 0.53343,0 0,0.54277 0,0 0,0 c 0.21823,-0.41615 0.50919,-0.61517 0.89714,-0.61517 l 0,0 0,0 c 0.0727,0 0.21822,0.0181 0.4122,0.0544 l -0.24247,0.61517 z" /> 20.1639 + <path 20.1640 + inkscape:connector-curvature="0" 20.1641 + id="489" 20.1642 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1643 + d="m 567.51036,612.6384 0,0 0,-0.25329 0,0 0,0 c -0.19398,0.21709 -0.48494,0.30757 -0.84864,0.30757 l 0,0 0,0 c -0.38796,0 -0.70317,-0.14474 -0.94563,-0.45232 l 0,0 0,0 c -0.24248,-0.30758 -0.36371,-0.70562 -0.36371,-1.21223 l 0,0 0,0 c 0,-0.5066 0.14548,-0.94084 0.4122,-1.3027 l 0,0 0,0 c 0.29096,-0.37996 0.60617,-0.56089 0.99413,-0.56089 l 0,0 0,0 c 0.33946,0 0.58192,0.0905 0.75165,0.25331 l 0,0 0,-1.5741 0.53344,0 0,4.79465 -0.53344,0 z m 0,-2.60538 0,0 0,0 c -0.14548,-0.23522 -0.33946,-0.34377 -0.58192,-0.34377 l 0,0 0,0 c -0.29097,0 -0.53344,0.1267 -0.72741,0.36186 l 0,0 0,0 c -0.16973,0.2352 -0.26673,0.54279 -0.26673,0.92274 l 0,0 0,0 c 0,0.81418 0.33946,1.23031 1.01838,1.23031 l 0,0 0,0 c 0.097,0 0.19397,-0.0362 0.31522,-0.0905 l 0,0 0,0 c 0.12123,-0.0723 0.19396,-0.1267 0.24246,-0.19902 l 0,-1.88167 z" /> 20.1644 + <path 20.1645 + inkscape:connector-curvature="0" 20.1646 + id="490" 20.1647 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1648 + d="m 571.70508,612.71077 -0.14548,0 -0.89713,-2.31589 -0.92139,2.31589 -0.14548,0 -1.11536,-3.49194 0.60618,0 0.65466,2.24354 0.8244,-2.24354 0.14548,0 0.84864,2.24354 0.70317,-2.24354 0.55768,0 -1.11537,3.49194 z" /> 20.1649 + <path 20.1650 + inkscape:connector-curvature="0" 20.1651 + id="491" 20.1652 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1653 + d="m 575.00268,612.25845 0,0 0,0 c -0.21823,0.28949 -0.55769,0.45232 -1.01838,0.45232 l 0,0 0,0 c -0.24247,0 -0.43644,-0.10858 -0.63041,-0.28948 l 0,0 0,0 c -0.16973,-0.19903 -0.26673,-0.43424 -0.26673,-0.72373 l 0,0 0,0 c 0,-0.34375 0.14548,-0.63324 0.41221,-0.88655 l 0,0 0,0 c 0.29096,-0.23519 0.63042,-0.34375 1.06687,-0.34375 l 0,0 0,0 c 0.097,0 0.24246,0.0181 0.38794,0.0723 l 0,0 0,0 c 0,-0.5428 -0.21821,-0.81418 -0.67892,-0.81418 l 0,0 0,0 c -0.33945,0 -0.60617,0.0905 -0.80014,0.30758 l 0,0 -0.21823,-0.52469 0,0 0,0 c 0.097,-0.0905 0.24248,-0.18093 0.43645,-0.23522 l 0,0 0,0 c 0.16973,-0.0723 0.36371,-0.10858 0.53344,-0.10858 l 0,0 0,0 c 0.43644,0 0.7759,0.10858 0.96987,0.34378 l 0,0 0,0 c 0.21823,0.23522 0.31521,0.59706 0.31521,1.08558 l 0,0 0,1.21222 0,0 0,0 c 0,0.28948 0.0728,0.48851 0.24248,0.59706 l 0,0 0,0.28949 0,0 0,0 c -0.21823,0 -0.38796,-0.0181 -0.50919,-0.0905 l 0,0 0,0 c -0.12124,-0.0723 -0.19398,-0.19902 -0.24247,-0.34376 z m -0.0485,-1.2846 0,0 0,0 c -0.16973,-0.0362 -0.29096,-0.0723 -0.3637,-0.0723 l 0,0 0,0 c -0.29097,0 -0.50919,0.0904 -0.67892,0.2352 l 0,0 0,0 c -0.19397,0.16284 -0.26671,0.34378 -0.26671,0.56088 l 0,0 0,0 c 0,0.36187 0.19397,0.52469 0.55768,0.52469 l 0,0 0,0 c 0.29096,0 0.53344,-0.14473 0.75165,-0.43422 l 0,-0.81419 z" /> 20.1654 + <path 20.1655 + inkscape:connector-curvature="0" 20.1656 + id="492" 20.1657 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1658 + d="m 578.03355,609.834 0,0 0,0 c -0.12123,-0.0905 -0.24247,-0.14475 -0.36371,-0.14475 l 0,0 0,0 c -0.19397,0 -0.3637,0.0905 -0.50918,0.28949 l 0,0 0,0 c -0.14549,0.19901 -0.21822,0.43423 -0.21822,0.72372 l 0,0 0,1.93594 -0.53344,0 0,-3.40146 0.53344,0 0,0.54277 0,0 0,0 c 0.21822,-0.41615 0.50919,-0.61517 0.89713,-0.61517 l 0,0 0,0 c 0.097,0 0.24248,0.0181 0.43645,0.0544 l -0.24247,0.61517 z" /> 20.1659 + <path 20.1660 + inkscape:connector-curvature="0" 20.1661 + id="493" 20.1662 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1663 + d="m 581.28264,611.01003 0,0 -2.23072,0 0,0 0,0 c 0,0.39805 0.097,0.68753 0.29097,0.90466 l 0,0 0,0 c 0.16973,0.18091 0.41219,0.28947 0.67892,0.28947 l 0,0 0,0 c 0.31521,0 0.58192,-0.10857 0.80014,-0.30755 l 0,0 0.21823,0.43421 0,0 0,0 c -0.0727,0.0905 -0.21823,0.18093 -0.38795,0.23522 l 0,0 0,0 c -0.21823,0.0904 -0.46069,0.14473 -0.72742,0.14473 l 0,0 0,0 c -0.38795,0 -0.72741,-0.14473 -0.99412,-0.43424 l 0,0 0,0 c -0.31521,-0.32566 -0.46069,-0.7599 -0.46069,-1.28459 l 0,0 0,0 c 0,-0.56088 0.14548,-1.0132 0.46069,-1.37507 l 0,0 0,0 c 0.29096,-0.30757 0.60617,-0.45233 0.99412,-0.45233 l 0,0 0,0 c 0.43645,0 0.80015,0.14476 1.04262,0.41615 l 0,0 0,0 c 0.24248,0.2714 0.36371,0.61517 0.36371,1.04939 l 0,0 0,0 c 0,0.14474 -0.0243,0.25332 -0.0485,0.37995 z m -1.33358,-1.32078 0,0 0,0 c -0.24247,0 -0.46069,0.0905 -0.63042,0.25328 l 0,0 0,0 c -0.14548,0.18095 -0.24247,0.37998 -0.26672,0.61517 l 0,0 1.72154,0 0,0 0,0 c 0,-0.23519 -0.0485,-0.43422 -0.19398,-0.59706 l 0,0 0,0 c -0.16973,-0.18093 -0.3637,-0.27139 -0.63042,-0.27139 z" /> 20.1664 + <path 20.1665 + inkscape:connector-curvature="0" 20.1666 + id="494" 20.1667 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1668 + d="m 583.94981,610.37677 0,0 -0.19397,-0.14473 0,-2.27972 2.13373,0 0,0.5428 -1.57605,0 0,1.13986 0,0 0,0 c 0.14548,-0.1267 0.3152,-0.18095 0.55768,-0.18095 l 0,0 0,0 c 0.38795,0 0.67891,0.1267 0.89714,0.39806 l 0,0 0,0 c 0.21822,0.27139 0.31521,0.63324 0.31521,1.10368 l 0,0 0,0 c 0,1.15794 -0.48494,1.755 -1.43058,1.755 l 0,0 0,0 c -0.38794,0 -0.7274,-0.1267 -0.99412,-0.36185 l 0,0 0.21822,-0.5428 0,0 0,0 c 0.26672,0.23522 0.53344,0.36185 0.7759,0.36185 l 0,0 0,0 c 0.53344,0 0.8244,-0.37994 0.8244,-1.12175 l 0,0 0,0 c 0,-0.68754 -0.26671,-1.03129 -0.8244,-1.03129 l 0,0 0,0 c -0.24246,0 -0.48494,0.10857 -0.70316,0.36184 z" /> 20.1669 + <path 20.1670 + inkscape:connector-curvature="0" 20.1671 + id="495" 20.1672 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1673 + d="m 542.00254,606.39634 58.36248,0.34376 0,0.43423 0,0.43423 -58.36248,-0.34378 0,-0.43423 0,-0.43421 z" /> 20.1674 + <g 20.1675 + id="g4970" 20.1676 + transform="translate(0,3.3686829)"> 20.1677 + <path 20.1678 + d="m 149.92891,441.33435 0,0 3.73404,-8.86555 1.40631,0 4.00076,8.86555 -1.45483,0 -1.1396,-2.69586 -4.09774,0 -1.06688,2.69586 -1.38206,0 z m 2.81264,-3.65479 0,0 3.32184,0 -1.01838,-2.42445 0,0 0,0 c -0.31521,-0.7599 -0.55768,-1.37507 -0.70315,-1.84547 l 0,0 0,0 c -0.12124,0.56087 -0.29098,1.13984 -0.53344,1.70072 l -1.06687,2.5692 z" 20.1679 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1680 + id="533" 20.1681 + inkscape:connector-curvature="0" /> 20.1682 + <path 20.1683 + d="m 159.96715,443.79499 0,0 0,-8.86556 1.09112,0 0,0.83228 0,0 0,0 c 0.26671,-0.32567 0.55768,-0.57897 0.87289,-0.74181 l 0,0 0,0 c 0.33945,-0.16283 0.72742,-0.2533 1.1881,-0.2533 l 0,0 0,0 c 0.60617,0 1.16385,0.14474 1.60031,0.43423 l 0,0 0,0 c 0.46069,0.27139 0.80015,0.68753 1.0426,1.19414 l 0,0 0,0 c 0.24248,0.48851 0.36372,1.06748 0.36372,1.66455 l 0,0 0,0 c 0,0.66943 -0.14549,1.24841 -0.38795,1.7912 l 0,0 0,0 c -0.26672,0.5247 -0.65468,0.92274 -1.11537,1.19414 l 0,0 0,0 c -0.50918,0.28949 -1.04261,0.43422 -1.57606,0.43422 l 0,0 0,0 c -0.41218,0 -0.7759,-0.0905 -1.0911,-0.2352 l 0,0 0,0 c -0.31521,-0.14475 -0.58193,-0.34377 -0.77591,-0.57897 l 0,0 0,3.13008 -1.21235,0 z m 1.09112,-5.64501 0,0 0,0 c 0,0.83228 0.19398,1.44745 0.55768,1.8274 l 0,0 0,0 c 0.36371,0.39804 0.8244,0.59706 1.33358,0.59706 l 0,0 0,0 c 0.55768,0 0.99413,-0.19902 1.38208,-0.61517 l 0,0 0,0 c 0.36371,-0.39804 0.55768,-1.03128 0.55768,-1.89975 l 0,0 0,0 c 0,-0.81418 -0.19397,-1.41126 -0.53343,-1.82739 l 0,0 0,0 c -0.38795,-0.39804 -0.8244,-0.59707 -1.33358,-0.59707 l 0,0 0,0 c -0.53344,0 -0.96988,0.21712 -1.38208,0.65135 l 0,0 0,0 c -0.38795,0.43423 -0.58193,1.03129 -0.58193,1.86357 z" 20.1684 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1685 + id="534" 20.1686 + inkscape:connector-curvature="0" /> 20.1687 + <path 20.1688 + d="m 167.58072,443.79499 0,0 0,-8.86556 1.09109,0 0,0.83228 0,0 0,0 c 0.26674,-0.32567 0.53344,-0.57897 0.84865,-0.74181 l 0,0 0,0 c 0.33947,-0.16283 0.72742,-0.2533 1.16385,-0.2533 l 0,0 0,0 c 0.60618,0 1.13961,0.14474 1.62456,0.43423 l 0,0 0,0 c 0.46068,0.27139 0.80015,0.68753 1.04261,1.19414 l 0,0 0,0 c 0.24247,0.48851 0.36372,1.06748 0.36372,1.66455 l 0,0 0,0 c 0,0.66943 -0.1455,1.24841 -0.41221,1.7912 l 0,0 0,0 c -0.24247,0.5247 -0.63042,0.92274 -1.11535,1.19414 l 0,0 0,0 c -0.50918,0.28949 -1.04263,0.43422 -1.57606,0.43422 l 0,0 0,0 c -0.38795,0 -0.75165,-0.0905 -1.06687,-0.2352 l 0,0 0,0 c -0.31521,-0.14475 -0.55768,-0.34377 -0.75165,-0.57897 l 0,0 0,3.13008 -1.21234,0 z m 1.09109,-5.64501 0,0 0,0 c 0,0.83228 0.19399,1.44745 0.53344,1.8274 l 0,0 0,0 c 0.36371,0.39804 0.82439,0.59706 1.33359,0.59706 l 0,0 0,0 c 0.53343,0 0.96988,-0.19902 1.35783,-0.61517 l 0,0 0,0 c 0.38795,-0.39804 0.58193,-1.03128 0.58193,-1.89975 l 0,0 0,0 c 0,-0.81418 -0.19398,-1.41126 -0.55769,-1.82739 l 0,0 0,0 c -0.38795,-0.39804 -0.82439,-0.59707 -1.33358,-0.59707 l 0,0 0,0 c -0.50919,0 -0.94562,0.21712 -1.35783,0.65135 l 0,0 0,0 c -0.3637,0.43423 -0.55769,1.03129 -0.55769,1.86357 z" 20.1689 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1690 + id="535" 20.1691 + inkscape:connector-curvature="0" /> 20.1692 + <path 20.1693 + d="m 175.14576,441.33435 0,-8.86555 1.1881,0 0,8.86555 -1.1881,0 z" 20.1694 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1695 + id="536" 20.1696 + inkscape:connector-curvature="0" /> 20.1697 + <path 20.1698 + d="m 178.20087,433.7353 0,-1.2665 1.21237,0 0,1.2665 -1.21237,0 z m 0,7.59905 0,-6.40492 1.21237,0 0,6.40492 -1.21237,0 z" 20.1699 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1700 + id="537" 20.1701 + inkscape:connector-curvature="0" /> 20.1702 + <path 20.1703 + d="m 185.86292,438.98226 0,0 1.18811,0.1267 0,0 0,0 c -0.12123,0.7418 -0.46069,1.32077 -0.99413,1.73692 l 0,0 0,0 c -0.53343,0.41613 -1.18809,0.63324 -1.96399,0.63324 l 0,0 0,0 c -0.9699,0 -1.72155,-0.28948 -2.32773,-0.86846 l 0,0 0,0 c -0.58191,-0.57897 -0.87288,-1.39316 -0.87288,-2.47873 l 0,0 0,0 c 0,-0.68753 0.12123,-1.28461 0.3637,-1.7912 l 0,0 0,0 c 0.26671,-0.52469 0.65466,-0.92274 1.16385,-1.17604 l 0,0 0,0 c 0.50919,-0.25331 1.06688,-0.39805 1.67306,-0.39805 l 0,0 0,0 c 0.7759,0 1.40631,0.18093 1.91549,0.5428 l 0,0 0,0 c 0.48495,0.34376 0.80017,0.85037 0.9214,1.5017 l 0,0 -1.16386,0.14475 0,0 0,0 c -0.097,-0.41613 -0.3152,-0.74181 -0.58193,-0.95892 l 0,0 0,0 c -0.29095,-0.21713 -0.63042,-0.32568 -1.04262,-0.32568 l 0,0 0,0 c -0.60616,0 -1.09111,0.19902 -1.47906,0.59707 l 0,0 0,0 c -0.33947,0.37994 -0.53343,0.99511 -0.53343,1.84548 l 0,0 0,0 c 0,0.85037 0.16971,1.48363 0.50918,1.88167 l 0,0 0,0 c 0.38795,0.37995 0.84865,0.57897 1.45483,0.57897 l 0,0 0,0 c 0.46068,0 0.84863,-0.1267 1.16385,-0.39804 l 0,0 0,0 c 0.33944,-0.25331 0.53343,-0.65135 0.60616,-1.19414 z" 20.1704 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1705 + id="538" 20.1706 + inkscape:connector-curvature="0" /> 20.1707 + <path 20.1708 + d="m 192.70057,440.53825 0,0 0,0 c -0.43645,0.34377 -0.87288,0.57897 -1.2851,0.72372 l 0,0 0,0 c -0.41218,0.14474 -0.84863,0.21711 -1.33358,0.21711 l 0,0 0,0 c -0.77589,0 -1.38208,-0.18093 -1.77001,-0.52469 l 0,0 0,0 c -0.41221,-0.34377 -0.63043,-0.77799 -0.63043,-1.32078 l 0,0 0,0 c 0,-0.30758 0.0727,-0.59708 0.24247,-0.86846 l 0,0 0,0 c 0.14548,-0.25331 0.36371,-0.47042 0.58193,-0.61517 l 0,0 0,0 c 0.26671,-0.16284 0.55768,-0.28949 0.87288,-0.36186 l 0,0 0,0 c 0.24248,-0.0542 0.60618,-0.10857 1.06688,-0.16283 l 0,0 0,0 c 0.99411,-0.10858 1.69728,-0.23521 2.15798,-0.37995 l 0,0 0,0 c 0,-0.14475 0,-0.23522 0,-0.2714 l 0,0 0,0 c 0,-0.43423 -0.097,-0.74181 -0.33947,-0.92274 l 0,0 0,0 c -0.29096,-0.25331 -0.75165,-0.37995 -1.35783,-0.37995 l 0,0 0,0 c -0.58191,0 -0.99411,0.0905 -1.26083,0.27139 l 0,0 0,0 c -0.26673,0.18093 -0.48495,0.5066 -0.60618,0.94084 l 0,0 -1.16386,-0.12669 0,0 0,0 c 0.12123,-0.45233 0.29096,-0.83228 0.53344,-1.10367 l 0,0 0,0 c 0.21822,-0.28949 0.58194,-0.5066 1.04262,-0.65135 l 0,0 0,0 c 0.4607,-0.14474 1.01838,-0.23522 1.62454,-0.23522 l 0,0 0,0 c 0.60619,0 1.09112,0.0723 1.47907,0.19904 l 0,0 0,0 c 0.36371,0.12669 0.65468,0.28948 0.8244,0.4885 l 0,0 0,0 c 0.19398,0.19903 0.31521,0.45233 0.38796,0.74182 l 0,0 0,0 c 0.0485,0.18093 0.0485,0.52469 0.0485,0.99511 l 0,0 0,1.44743 0,0 0,0 c 0,1.01321 0.0242,1.64645 0.097,1.91785 l 0,0 0,0 c 0.0485,0.2714 0.14548,0.5247 0.29096,0.77801 l 0,0 -1.26084,0 0,0 0,0 c -0.12124,-0.23522 -0.19397,-0.48851 -0.24247,-0.7961 z m -0.097,-2.44254 0,0 0,0 c -0.43645,0.16283 -1.09112,0.30758 -1.96401,0.41613 l 0,0 0,0 c -0.50919,0.0723 -0.84864,0.14475 -1.06687,0.21711 l 0,0 0,0 c -0.19398,0.0905 -0.3637,0.19904 -0.46068,0.36187 l 0,0 0,0 c -0.12123,0.14474 -0.16973,0.32566 -0.16973,0.50661 l 0,0 0,0 c 0,0.28947 0.12123,0.54278 0.3637,0.7418 l 0,0 0,0 c 0.24246,0.18093 0.60618,0.28948 1.06688,0.28948 l 0,0 0,0 c 0.46068,0 0.87288,-0.10858 1.23658,-0.28948 l 0,0 0,0 c 0.3637,-0.18093 0.63043,-0.43423 0.80016,-0.7418 l 0,0 0,0 c 0.12123,-0.25331 0.19397,-0.61517 0.19397,-1.10368 l 0,-0.39804 z" 20.1709 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1710 + id="539" 20.1711 + inkscape:connector-curvature="0" /> 20.1712 + <path 20.1713 + d="m 198.30162,440.35732 0,0 0.16974,0.95892 0,0 0,0 c -0.33947,0.0723 -0.63042,0.0905 -0.89715,0.0905 l 0,0 0,0 c -0.43643,0 -0.7759,-0.0542 -1.01837,-0.18093 l 0,0 0,0 c -0.24246,-0.12669 -0.41219,-0.28949 -0.50918,-0.48851 l 0,0 0,0 c -0.097,-0.21711 -0.14548,-0.63326 -0.14548,-1.28459 l 0,0 0,-3.69097 -0.89715,0 0,-0.83228 0.89715,0 0,-1.59218 1.1881,-0.66944 0,2.26162 1.21234,0 0,0.83228 -1.21234,0 0,3.74524 0,0 0,0 c 0,0.30758 0.0242,0.5066 0.0727,0.59706 l 0,0 0,0 c 0.0485,0.0905 0.097,0.16284 0.19396,0.21713 l 0,0 0,0 c 0.097,0.0542 0.24247,0.0723 0.4122,0.0723 l 0,0 0,0 c 0.14548,0 0.31522,-0.0181 0.53343,-0.0362 z" 20.1714 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1715 + id="540" 20.1716 + inkscape:connector-curvature="0" /> 20.1717 + <path 20.1718 + d="m 199.48974,433.7353 0,-1.2665 1.18809,0 0,1.2665 -1.18809,0 z m 0,7.59905 0,-6.40492 1.18809,0 0,6.40492 -1.18809,0 z" 20.1719 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1720 + id="541" 20.1721 + inkscape:connector-curvature="0" /> 20.1722 + <path 20.1723 + d="m 202.05991,438.1138 0,0 0,0 c 0,-1.19414 0.3637,-2.04451 1.0911,-2.62348 l 0,0 0,0 c 0.63043,-0.47042 1.35783,-0.72372 2.25498,-0.72372 l 0,0 0,0 c 0.96988,0 1.74578,0.28949 2.35196,0.86846 l 0,0 0,0 c 0.60618,0.57898 0.92138,1.37506 0.92138,2.38827 l 0,0 0,0 c 0,0.83228 -0.14548,1.48363 -0.4122,1.95405 l 0,0 0,0 c -0.26671,0.4704 -0.67891,0.83226 -1.16384,1.10366 l 0,0 0,0 c -0.53345,0.25331 -1.09112,0.39804 -1.6973,0.39804 l 0,0 0,0 c -0.99413,0 -1.81851,-0.28948 -2.42469,-0.86846 l 0,0 0,0 c -0.60619,-0.57897 -0.92139,-1.41125 -0.92139,-2.49682 z m 1.2366,0 0,0 0,0 c 0,0.83228 0.19397,1.44743 0.60617,1.84547 l 0,0 0,0 c 0.38795,0.41615 0.89714,0.61517 1.50331,0.61517 l 0,0 0,0 c 0.58193,0 1.06686,-0.19902 1.45483,-0.61517 l 0,0 0,0 c 0.41218,-0.41613 0.60616,-1.03128 0.60616,-1.88165 l 0,0 0,0 c 0,-0.7961 -0.19398,-1.37507 -0.60616,-1.79121 l 0,0 0,0 c -0.38797,-0.39805 -0.8729,-0.61516 -1.45483,-0.61516 l 0,0 0,0 c -0.60617,0 -1.11536,0.21711 -1.50331,0.61516 l 0,0 0,0 c -0.4122,0.41614 -0.60617,1.0132 -0.60617,1.82739 z" 20.1724 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1725 + id="542" 20.1726 + inkscape:connector-curvature="0" /> 20.1727 + <path 20.1728 + d="m 210.10989,441.33435 0,0 0,-6.40492 1.06689,0 0,0.90466 0,0 0,0 c 0.53343,-0.70562 1.26084,-1.06749 2.25496,-1.06749 l 0,0 0,0 c 0.4122,0 0.82439,0.0723 1.16386,0.21712 l 0,0 0,0 c 0.3637,0.14475 0.63042,0.32568 0.8244,0.54279 l 0,0 0,0 c 0.16971,0.2352 0.29095,0.5066 0.3637,0.81418 l 0,0 0,0 c 0.0485,0.19902 0.0727,0.5247 0.0727,1.0313 l 0,0 0,3.96236 -1.21235,0 0,-3.90808 0,0 0,0 c 0,-0.45233 -0.0485,-0.75992 -0.14548,-0.97703 l 0,0 0,0 c -0.0727,-0.2352 -0.24249,-0.39804 -0.48495,-0.52469 l 0,0 0,0 c -0.24247,-0.14475 -0.53343,-0.19902 -0.84865,-0.19902 l 0,0 0,0 c -0.50918,0 -0.92138,0.14474 -1.30933,0.43424 l 0,0 0,0 c -0.36372,0.28947 -0.55768,0.83226 -0.55768,1.66454 l 0,0 0,3.51004 -1.18812,0 z" 20.1729 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1730 + id="543" 20.1731 + inkscape:connector-curvature="0" /> 20.1732 + </g> 20.1733 + <g 20.1734 + id="g5020" 20.1735 + transform="translate(0,9.3637848)"> 20.1736 + <path 20.1737 + d="m 151.04427,580.57768 0,-8.84745 1.30933,0 0,3.6367 5.06762,0 0,-3.6367 1.28508,0 0,8.84745 -1.28508,0 0,-4.16138 -5.06762,0 0,4.16138 -1.30933,0 z" 20.1738 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1739 + id="544" 20.1740 + inkscape:connector-curvature="0" /> 20.1741 + <path 20.1742 + d="m 165.32574,579.7816 0,0 0,0 c -0.43645,0.34376 -0.84865,0.59706 -1.26085,0.72371 l 0,0 0,0 c -0.4122,0.14476 -0.84865,0.21713 -1.33358,0.21713 l 0,0 0,0 c -0.7759,0 -1.38208,-0.16285 -1.79428,-0.5066 l 0,0 0,0 c -0.4122,-0.34378 -0.63041,-0.7961 -0.63041,-1.32079 l 0,0 0,0 c 0,-0.32568 0.0727,-0.61517 0.24246,-0.86848 l 0,0 0,0 c 0.14549,-0.27138 0.3637,-0.47041 0.63042,-0.63324 l 0,0 0,0 c 0.24248,-0.14475 0.53343,-0.25331 0.84865,-0.32568 l 0,0 0,0 c 0.24246,-0.0723 0.60618,-0.12669 1.09111,-0.18093 l 0,0 0,0 c 0.96988,-0.0904 1.6488,-0.21711 2.10949,-0.36185 l 0,0 0,0 c 0,-0.16284 0,-0.2533 0,-0.2895 l 0,0 0,0 c 0,-0.43422 -0.097,-0.75989 -0.33946,-0.94082 l 0,0 0,0 c -0.26672,-0.23521 -0.7274,-0.36186 -1.33358,-0.36186 l 0,0 0,0 c -0.58193,0 -0.99413,0.0905 -1.26085,0.2714 l 0,0 0,0 c -0.26671,0.18093 -0.46068,0.48851 -0.60618,0.94083 l 0,0 -1.16385,-0.14476 0,0 0,0 c 0.097,-0.45232 0.26672,-0.81416 0.50919,-1.10365 l 0,0 0,0 c 0.26673,-0.2714 0.60618,-0.4885 1.06688,-0.63326 l 0,0 0,0 c 0.48493,-0.16282 1.01836,-0.23522 1.62453,-0.23522 l 0,0 0,0 c 0.60618,0 1.06688,0.0723 1.45483,0.19904 l 0,0 0,0 c 0.38794,0.12669 0.65466,0.28947 0.84864,0.48851 l 0,0 0,0 c 0.16974,0.18093 0.29097,0.43422 0.3637,0.7418 l 0,0 0,0 c 0.0485,0.18093 0.0727,0.50661 0.0727,0.99512 l 0,0 0,1.42934 0,0 0,0 c 0,1.01321 0.0242,1.66454 0.0728,1.93596 l 0,0 0,0 c 0.0485,0.25329 0.14548,0.52469 0.29096,0.75988 l 0,0 -1.26085,0 0,0 0,0 c -0.12123,-0.21711 -0.19396,-0.4885 -0.24246,-0.79608 z m -0.097,-2.42446 0,0 0,0 c -0.43644,0.16286 -1.06686,0.28951 -1.93976,0.41614 l 0,0 0,0 c -0.48495,0.0543 -0.84864,0.12669 -1.04263,0.21712 l 0,0 0,0 c -0.21821,0.0723 -0.3637,0.19902 -0.48493,0.34375 l 0,0 0,0 c -0.12123,0.16286 -0.16973,0.32568 -0.16973,0.5247 l 0,0 0,0 c 0,0.2895 0.12123,0.52471 0.36371,0.72373 l 0,0 0,0 c 0.24247,0.19902 0.60617,0.28948 1.06687,0.28948 l 0,0 0,0 c 0.4607,0 0.87288,-0.0905 1.23659,-0.27139 l 0,0 0,0 c 0.3637,-0.18093 0.60617,-0.43424 0.7759,-0.7599 l 0,0 0,0 c 0.14549,-0.2352 0.19398,-0.59706 0.19398,-1.08558 l 0,-0.39805 z" 20.1743 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1744 + id="545" 20.1745 + inkscape:connector-curvature="0" /> 20.1746 + <path 20.1747 + d="m 168.30811,580.57768 0,0 0,-6.40489 1.06687,0 0,0.97701 0,0 0,0 c 0.26673,-0.45231 0.53343,-0.7599 0.77591,-0.90464 l 0,0 0,0 c 0.21822,-0.14473 0.46069,-0.21713 0.75165,-0.21713 l 0,0 0,0 c 0.38795,0 0.80015,0.10858 1.2366,0.34378 l 0,0 -0.4122,1.01321 0,0 0,0 c -0.31522,-0.14476 -0.60618,-0.23522 -0.89713,-0.23522 l 0,0 0,0 c -0.24248,0 -0.48495,0.0723 -0.67892,0.21713 l 0,0 0,0 c -0.21823,0.14473 -0.36371,0.34375 -0.4607,0.59706 l 0,0 0,0 c -0.12123,0.37995 -0.19398,0.81418 -0.19398,1.24842 l 0,0 0,3.36527 -1.1881,0 z" 20.1748 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1749 + id="546" 20.1750 + inkscape:connector-curvature="0" /> 20.1751 + <path 20.1752 + d="m 177.44922,580.57768 0,0 0,-0.81417 0,0 0,0 c -0.43644,0.65135 -1.09111,0.95893 -1.96401,0.95893 l 0,0 0,0 c -0.55766,0 -1.09109,-0.14476 -1.55179,-0.41615 l 0,0 0,0 c -0.48495,-0.28947 -0.84865,-0.68751 -1.11537,-1.19412 l 0,0 0,0 c -0.26671,-0.5066 -0.38795,-1.0856 -0.38795,-1.73693 l 0,0 0,0 c 0,-0.63326 0.12124,-1.21223 0.3637,-1.73693 l 0,0 0,0 c 0.21824,-0.50659 0.58193,-0.92273 1.04263,-1.19413 l 0,0 0,0 c 0.48494,-0.27139 1.01837,-0.41615 1.6003,-0.41615 l 0,0 0,0 c 0.43645,0 0.80015,0.0723 1.11536,0.25332 l 0,0 0,0 c 0.33945,0.16283 0.60617,0.36185 0.8244,0.63323 l 0,0 0,-3.18435 1.1881,0 0,8.84745 -1.11537,0 z m -3.78252,-3.20244 0,0 0,0 c 0,0.81418 0.19397,1.42935 0.58193,1.84548 l 0,0 0,0 c 0.38795,0.39806 0.8244,0.61515 1.35783,0.61515 l 0,0 0,0 c 0.53342,0 0.94563,-0.199 1.30933,-0.59707 l 0,0 0,0 c 0.3637,-0.37995 0.55768,-0.97701 0.55768,-1.77309 l 0,0 0,0 c 0,-0.86848 -0.19398,-1.50172 -0.55768,-1.91787 l 0,0 0,0 c -0.3637,-0.41612 -0.8244,-0.61515 -1.35783,-0.61515 l 0,0 0,0 c -0.53343,0 -0.99413,0.19903 -1.35783,0.59706 l 0,0 0,0 c -0.3637,0.37996 -0.53343,1.01321 -0.53343,1.84549 z" 20.1753 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1754 + id="547" 20.1755 + inkscape:connector-curvature="0" /> 20.1756 + <path 20.1757 + d="m 181.78943,580.57768 0,0 -2.18223,-6.40489 1.26085,0 1.11536,3.69096 0.43644,1.37505 0,0 0,0 c 0,-0.0723 0.12125,-0.50658 0.33946,-1.32078 l 0,0 1.13962,-3.74523 1.23658,0 1.06688,3.70905 0.33945,1.23033 0.41221,-1.24842 1.21233,-3.69096 1.16387,0 -2.20648,6.40489 -1.26085,0 -1.11535,-3.8357 -0.29098,-1.08557 -1.43056,4.92127 -1.2366,0 z" 20.1758 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1759 + id="548" 20.1760 + inkscape:connector-curvature="0" /> 20.1761 + <path 20.1762 + d="m 194.95555,579.7816 0,0 0,0 c -0.43645,0.34376 -0.84865,0.59706 -1.26085,0.72371 l 0,0 0,0 c -0.4122,0.14476 -0.84865,0.21713 -1.33358,0.21713 l 0,0 0,0 c -0.77591,0 -1.38208,-0.16285 -1.79428,-0.5066 l 0,0 0,0 c -0.43645,-0.34378 -0.63043,-0.7961 -0.63043,-1.32079 l 0,0 0,0 c 0,-0.32568 0.0728,-0.61517 0.24248,-0.86848 l 0,0 0,0 c 0.14549,-0.27138 0.3637,-0.47041 0.60617,-0.63324 l 0,0 0,0 c 0.26673,-0.14475 0.55768,-0.25331 0.8729,-0.32568 l 0,0 0,0 c 0.24246,-0.0723 0.60616,-0.12669 1.06686,-0.18093 l 0,0 0,0 c 0.96988,-0.0904 1.6973,-0.21711 2.13373,-0.36185 l 0,0 0,0 c 0,-0.16284 0,-0.2533 0,-0.2895 l 0,0 0,0 c 0,-0.43422 -0.097,-0.75989 -0.33945,-0.94082 l 0,0 0,0 c -0.29097,-0.23521 -0.72742,-0.36186 -1.33358,-0.36186 l 0,0 0,0 c -0.58193,0 -0.99413,0.0905 -1.26085,0.2714 l 0,0 0,0 c -0.26671,0.18093 -0.48495,0.48851 -0.60618,0.94083 l 0,0 -1.1881,-0.14476 0,0 0,0 c 0.12124,-0.45232 0.29097,-0.81416 0.53344,-1.10365 l 0,0 0,0 c 0.24246,-0.2714 0.60618,-0.4885 1.06688,-0.63326 l 0,0 0,0 c 0.46068,-0.16282 0.99411,-0.23522 1.62453,-0.23522 l 0,0 0,0 c 0.60618,0 1.09113,0.0723 1.45483,0.19904 l 0,0 0,0 c 0.36369,0.12669 0.65466,0.28947 0.82439,0.48851 l 0,0 0,0 c 0.19399,0.18093 0.31522,0.43422 0.38795,0.7418 l 0,0 0,0 c 0.0242,0.18093 0.0485,0.50661 0.0485,0.99512 l 0,0 0,1.42934 0,0 0,0 c 0,1.01321 0.0242,1.66454 0.0727,1.93596 l 0,0 0,0 c 0.0727,0.25329 0.16973,0.52469 0.31521,0.75988 l 0,0 -1.26085,0 0,0 0,0 c -0.12123,-0.21711 -0.19398,-0.4885 -0.24246,-0.79608 z m -0.097,-2.42446 0,0 0,0 c -0.41218,0.16286 -1.06687,0.28951 -1.93975,0.41614 l 0,0 0,0 c -0.50918,0.0543 -0.84864,0.12669 -1.06686,0.21712 l 0,0 0,0 c -0.19398,0.0723 -0.36372,0.19902 -0.4607,0.34375 l 0,0 0,0 c -0.12123,0.16286 -0.16973,0.32568 -0.16973,0.5247 l 0,0 0,0 c 0,0.2895 0.12123,0.52471 0.3637,0.72373 l 0,0 0,0 c 0.24248,0.19902 0.60618,0.28948 1.06688,0.28948 l 0,0 0,0 c 0.46068,0 0.87288,-0.0905 1.23659,-0.27139 l 0,0 0,0 c 0.3637,-0.18093 0.60617,-0.43424 0.7759,-0.7599 l 0,0 0,0 c 0.12124,-0.2352 0.19397,-0.59706 0.19397,-1.08558 l 0,-0.39805 z" 20.1763 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1764 + id="549" 20.1765 + inkscape:connector-curvature="0" /> 20.1766 + <path 20.1767 + d="m 197.93792,580.57768 0,0 0,-6.40489 1.09112,0 0,0.97701 0,0 0,0 c 0.26671,-0.45231 0.53343,-0.7599 0.75165,-0.90464 l 0,0 0,0 c 0.24248,-0.14473 0.50918,-0.21713 0.75166,-0.21713 l 0,0 0,0 c 0.4122,0 0.8244,0.10858 1.2366,0.34378 l 0,0 -0.4122,1.01321 0,0 0,0 c -0.29097,-0.14476 -0.58193,-0.23522 -0.8729,-0.23522 l 0,0 0,0 c -0.24246,0 -0.48493,0.0723 -0.67891,0.21713 l 0,0 0,0 c -0.21822,0.14473 -0.3637,0.34375 -0.46069,0.59706 l 0,0 0,0 c -0.12123,0.37995 -0.19398,0.81418 -0.19398,1.24842 l 0,0 0,3.36527 -1.21235,0 z" 20.1768 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1769 + id="550" 20.1770 + inkscape:connector-curvature="0" /> 20.1771 + <path 20.1772 + d="m 207.34575,578.51508 0,0 1.2366,0.1267 0,0 0,0 c -0.19398,0.66945 -0.55768,1.17606 -1.06687,1.5379 l 0,0 0,0 c -0.53343,0.36187 -1.18809,0.5428 -2.01249,0.5428 l 0,0 0,0 c -1.04263,0 -1.86703,-0.2895 -2.47321,-0.86847 l 0,0 0,0 c -0.60617,-0.57897 -0.92137,-1.39316 -0.92137,-2.42446 l 0,0 0,0 c 0,-1.06748 0.3152,-1.91785 0.92137,-2.51492 l 0,0 0,0 c 0.63043,-0.59707 1.43058,-0.88656 2.40046,-0.88656 l 0,0 0,0 c 0.94563,0 1.69728,0.28949 2.27921,0.86848 l 0,0 0,0 c 0.60618,0.59707 0.89713,1.41125 0.89713,2.46064 l 0,0 0,0 c 0,0.0543 0,0.16285 0,0.2895 l 0,0 -5.26159,0 0,0 0,0 c 0.0485,0.7056 0.26672,1.2484 0.67892,1.62835 l 0,0 0,0 c 0.38795,0.36187 0.89715,0.56087 1.47908,0.56087 l 0,0 0,0 c 0.43643,0 0.8244,-0.10857 1.11535,-0.32566 l 0,0 0,0 c 0.31521,-0.19902 0.55768,-0.5428 0.72741,-0.99513 z m -3.92801,-1.75501 0,0 3.95226,0 0,0 0,0 c -0.0485,-0.5247 -0.19398,-0.94083 -0.4607,-1.21223 l 0,0 0,0 c -0.38795,-0.41612 -0.84865,-0.63326 -1.45481,-0.63326 l 0,0 0,0 c -0.55768,0 -1.01838,0.18093 -1.40633,0.50664 l 0,0 0,0 c -0.38795,0.34375 -0.58192,0.77799 -0.63042,1.33885 z" 20.1773 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1774 + id="551" 20.1775 + inkscape:connector-curvature="0" /> 20.1776 + <path 20.1777 + d="m 149.92891,592.8259 0,0 3.73404,-8.84745 1.40631,0 4.00076,8.84745 -1.45483,0 -1.1396,-2.65967 -4.09774,0 -1.06688,2.65967 -1.38206,0 z m 2.81264,-3.61859 0,0 3.32184,0 -1.01838,-2.46065 0,0 0,0 c -0.31521,-0.74181 -0.55768,-1.35699 -0.70315,-1.8274 l 0,0 0,0 c -0.12124,0.5609 -0.29098,1.12177 -0.53344,1.68266 l -1.06687,2.60539 z" 20.1778 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1779 + id="552" 20.1780 + inkscape:connector-curvature="0" /> 20.1781 + <path 20.1782 + d="m 161.08252,592.8259 0,0 -1.11537,0 0,-8.84745 1.18811,0 0,3.16625 0,0 0,0 c 0.50917,-0.57897 1.16385,-0.86845 1.964,-0.86845 l 0,0 0,0 c 0.43645,0 0.84865,0.0905 1.2366,0.2352 l 0,0 0,0 c 0.36371,0.16284 0.67891,0.39806 0.94563,0.66944 l 0,0 0,0 c 0.24246,0.28948 0.43645,0.65134 0.58193,1.04939 l 0,0 0,0 c 0.14548,0.41614 0.21822,0.85037 0.21822,1.30269 l 0,0 0,0 c 0,1.10368 -0.29097,1.95405 -0.89714,2.5692 l 0,0 0,0 c -0.58193,0.579 -1.30934,0.86846 -2.15799,0.86846 l 0,0 0,0 c -0.82438,0 -1.47906,-0.28946 -1.96399,-0.92275 l 0,0.77802 z m -0.0242,-3.23864 0,0 0,0 c 0,0.77799 0.12123,1.32079 0.36371,1.66455 l 0,0 0,0 c 0.3637,0.56088 0.87288,0.85036 1.52755,0.85036 l 0,0 0,0 c 0.53345,0 0.99413,-0.21711 1.38208,-0.61515 l 0,0 0,0 c 0.33946,-0.41615 0.53343,-1.03129 0.53343,-1.86358 l 0,0 0,0 c 0,-0.83228 -0.16972,-1.44743 -0.50918,-1.84548 l 0,0 0,0 c -0.38795,-0.39805 -0.8244,-0.59707 -1.35783,-0.59707 l 0,0 0,0 c -0.50919,0 -0.96988,0.19902 -1.35783,0.61517 l 0,0 0,0 c -0.38795,0.41612 -0.58193,1.01318 -0.58193,1.7912 z" 20.1783 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1784 + id="553" 20.1785 + inkscape:connector-curvature="0" /> 20.1786 + <path 20.1787 + d="m 167.09577,590.92614 0,0 1.18809,-0.16284 0,0 0,0 c 0.0727,0.43422 0.26672,0.7599 0.55769,0.9951 l 0,0 0,0 c 0.29096,0.23522 0.72741,0.34377 1.26084,0.34377 l 0,0 0,0 c 0.53343,0 0.94563,-0.10858 1.21235,-0.30758 l 0,0 0,0 c 0.26672,-0.19902 0.4122,-0.43421 0.4122,-0.72372 l 0,0 0,0 c 0,-0.2352 -0.12123,-0.43422 -0.36372,-0.57897 l 0,0 0,0 c -0.16971,-0.0905 -0.58191,-0.21712 -1.21233,-0.36187 l 0,0 0,0 c -0.8729,-0.19901 -1.47908,-0.37995 -1.81853,-0.52468 l 0,0 0,0 c -0.33946,-0.14475 -0.58193,-0.34377 -0.77589,-0.61517 l 0,0 0,0 c -0.16974,-0.25331 -0.26674,-0.54278 -0.26674,-0.86845 l 0,0 0,0 c 0,-0.27141 0.0728,-0.5428 0.21824,-0.7961 l 0,0 0,0 c 0.14548,-0.23521 0.33945,-0.43424 0.60618,-0.59706 l 0,0 0,0 c 0.16971,-0.1267 0.43643,-0.23521 0.75165,-0.32569 l 0,0 0,0 c 0.3152,-0.0723 0.65466,-0.12656 1.01836,-0.12656 l 0,0 0,0 c 0.55768,0 1.04263,0.0723 1.45483,0.21711 l 0,0 0,0 c 0.4122,0.14473 0.7274,0.34375 0.94563,0.59706 l 0,0 0,0 c 0.19398,0.2352 0.33945,0.57898 0.4122,0.99512 l 0,0 -1.1881,0.14474 0,0 0,0 c -0.0485,-0.32569 -0.21823,-0.59707 -0.4607,-0.778 l 0,0 0,0 c -0.26671,-0.18093 -0.60618,-0.27139 -1.06686,-0.27139 l 0,0 0,0 c -0.55768,0 -0.94563,0.0723 -1.16386,0.23522 l 0,0 0,0 c -0.24247,0.16282 -0.3637,0.36184 -0.3637,0.57897 l 0,0 0,0 c 0,0.14473 0.0485,0.27139 0.14548,0.39804 l 0,0 0,0 c 0.12123,0.10858 0.26672,0.19902 0.4607,0.28948 l 0,0 0,0 c 0.097,0.0362 0.46068,0.12669 1.04261,0.2714 l 0,0 0,0 c 0.84865,0.19902 1.43057,0.37996 1.77003,0.5066 l 0,0 0,0 c 0.33945,0.1267 0.60618,0.32568 0.80015,0.56089 l 0,0 0,0 c 0.19398,0.25328 0.29097,0.56087 0.29097,0.94082 l 0,0 0,0 c 0,0.36185 -0.12124,0.70562 -0.36372,1.03131 l 0,0 0,0 c -0.21822,0.30757 -0.55768,0.56089 -1.01836,0.72371 l 0,0 0,0 c -0.43645,0.18093 -0.94564,0.2533 -1.47907,0.2533 l 0,0 0,0 c -0.92139,0 -1.60031,-0.16284 -2.08524,-0.48851 l 0,0 0,0 c -0.48493,-0.36185 -0.7759,-0.86845 -0.92138,-1.55598 z" 20.1788 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1789 + id="554" 20.1790 + inkscape:connector-curvature="0" /> 20.1791 + <path 20.1792 + d="m 176.98853,591.86695 0,0 0.19398,0.95895 0,0 0,0 c -0.33947,0.0542 -0.63042,0.0905 -0.89715,0.0905 l 0,0 0,0 c -0.43643,0 -0.7759,-0.0542 -1.01836,-0.18093 l 0,0 0,0 c -0.24247,-0.10858 -0.4122,-0.2714 -0.50919,-0.4885 l 0,0 0,0 c -0.097,-0.19905 -0.14548,-0.63326 -0.14548,-1.28462 l 0,0 0,-3.69096 -0.89713,0 0,-0.85037 0.89713,0 0,-1.59217 1.1881,-0.65134 0,2.24351 1.1881,0 0,0.85037 -1.1881,0 0,3.76332 0,0 0,0 c 0,0.3076 0.0242,0.50663 0.0727,0.59708 l 0,0 0,0 c 0.0485,0.0905 0.12123,0.16284 0.21821,0.19903 l 0,0 0,0 c 0.097,0.0542 0.21822,0.0905 0.4122,0.0905 l 0,0 0,0 c 0.097,0 0.26672,-0.0181 0.48494,-0.0544 z" 20.1793 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1794 + id="555" 20.1795 + inkscape:connector-curvature="0" /> 20.1796 + <path 20.1797 + d="m 178.15239,592.8259 0,0 0,-6.40492 1.09111,0 0,0.97703 0,0 0,0 c 0.26672,-0.45233 0.53344,-0.75992 0.7759,-0.90465 l 0,0 0,0 c 0.21822,-0.14474 0.48495,-0.21711 0.75167,-0.21711 l 0,0 0,0 c 0.4122,0 0.82439,0.12656 1.26084,0.36184 l 0,0 -0.43645,0.99512 0,0 0,0 c -0.29096,-0.14473 -0.58193,-0.2352 -0.87289,-0.2352 l 0,0 0,0 c -0.26672,0 -0.50919,0.0723 -0.70317,0.21711 l 0,0 0,0 c -0.21821,0.14474 -0.3637,0.34376 -0.4607,0.59706 l 0,0 0,0 c -0.12121,0.39805 -0.19396,0.8142 -0.19396,1.26651 l 0,0 0,3.34721 -1.21235,0 z" 20.1798 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1799 + id="556" 20.1800 + inkscape:connector-curvature="0" /> 20.1801 + <path 20.1802 + d="m 187.36623,592.06599 0,0 0,0 c -0.43643,0.32567 -0.87288,0.57897 -1.28508,0.70562 l 0,0 0,0 c -0.4122,0.12669 -0.84864,0.19902 -1.33358,0.19902 l 0,0 0,0 c -0.77591,0 -1.38208,-0.16284 -1.79428,-0.48851 l 0,0 0,0 c -0.41219,-0.34375 -0.60618,-0.79608 -0.60618,-1.32079 l 0,0 0,0 c 0,-0.32566 0.0727,-0.61515 0.21824,-0.86845 l 0,0 0,0 c 0.14548,-0.25329 0.36369,-0.47043 0.60616,-0.63326 l 0,0 0,0 c 0.26672,-0.14473 0.55768,-0.27138 0.8729,-0.34375 l 0,0 0,0 c 0.24246,-0.0544 0.60616,-0.10858 1.06686,-0.16285 l 0,0 0,0 c 0.96988,-0.10858 1.6973,-0.2352 2.15798,-0.37995 l 0,0 0,0 c 0,-0.14476 0,-0.25331 0,-0.28949 l 0,0 0,0 c 0,-0.43424 -0.097,-0.75991 -0.33945,-0.94084 l 0,0 0,0 c -0.29096,-0.23521 -0.75166,-0.36185 -1.35783,-0.36185 l 0,0 0,0 c -0.58193,0 -0.99413,0.0905 -1.26085,0.27139 l 0,0 0,0 c -0.26671,0.18093 -0.48494,0.48853 -0.60618,0.95893 l 0,0 -1.16384,-0.16283 0,0 0,0 c 0.097,-0.45232 0.26671,-0.81419 0.50918,-1.10368 l 0,0 0,0 c 0.24246,-0.27139 0.60616,-0.4885 1.06686,-0.63325 l 0,0 0,0 c 0.4607,-0.16283 1.01837,-0.2352 1.62455,-0.2352 l 0,0 0,0 c 0.60618,0 1.09111,0.0723 1.47906,0.19902 l 0,0 0,0 c 0.36372,0.1267 0.65467,0.28948 0.8244,0.4885 l 0,0 0,0 c 0.19398,0.19903 0.31521,0.43424 0.38796,0.74182 l 0,0 0,0 c 0.0242,0.18093 0.0485,0.50659 0.0485,0.99511 l 0,0 0,1.46553 0,0 0,0 c 0,0.9951 0.0243,1.64646 0.0485,1.91785 l 0,0 0,0 c 0.0727,0.27138 0.16971,0.52469 0.31521,0.74182 l 0,0 -1.23659,0 0,0 0,0 c -0.12124,-0.19902 -0.19399,-0.47044 -0.24249,-0.75991 z m -0.097,-2.44255 0,0 0,0 c -0.43645,0.16284 -1.09111,0.30758 -1.96401,0.41615 l 0,0 0,0 c -0.50918,0.0542 -0.84865,0.12669 -1.06687,0.21709 l 0,0 0,0 c -0.19396,0.0723 -0.36369,0.19905 -0.46069,0.34378 l 0,0 0,0 c -0.12124,0.16284 -0.16972,0.34377 -0.16972,0.5247 l 0,0 0,0 c 0,0.28949 0.12123,0.52469 0.3637,0.72371 l 0,0 0,0 c 0.24248,0.19901 0.60618,0.2895 1.06686,0.2895 l 0,0 0,0 c 0.4607,0 0.8729,-0.0905 1.23662,-0.27142 l 0,0 0,0 c 0.3637,-0.18091 0.63041,-0.43421 0.80013,-0.75988 l 0,0 0,0 c 0.12123,-0.23522 0.19398,-0.59708 0.19398,-1.08558 l 0,-0.39805 z" 20.1803 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1804 + id="557" 20.1805 + inkscape:connector-curvature="0" /> 20.1806 + <path 20.1807 + d="m 194.95555,590.4919 0,0 1.1881,0.14475 0,0 0,0 c -0.12124,0.7418 -0.4607,1.32079 -0.99412,1.73691 l 0,0 0,0 c -0.53345,0.39805 -1.16386,0.59707 -1.93976,0.59707 l 0,0 0,0 c -0.96988,0 -1.77005,-0.28946 -2.35196,-0.83226 l 0,0 0,0 c -0.58193,-0.57899 -0.89715,-1.41128 -0.89715,-2.47875 l 0,0 0,0 c 0,-0.68753 0.14548,-1.3027 0.38797,-1.82739 l 0,0 0,0 c 0.2667,-0.5066 0.65466,-0.90463 1.16384,-1.15794 l 0,0 0,0 c 0.53344,-0.27141 1.09112,-0.39804 1.6973,-0.39804 l 0,0 0,0 c 0.7759,0 1.38208,0.18092 1.86701,0.5247 l 0,0 0,0 c 0.50918,0.36185 0.8244,0.86846 0.94563,1.51979 l 0,0 -1.16386,0.16284 0,0 0,0 c -0.12123,-0.43424 -0.3152,-0.75991 -0.55768,-0.97701 l 0,0 0,0 c -0.29095,-0.21711 -0.63042,-0.32568 -1.04262,-0.32568 l 0,0 0,0 c -0.60616,0 -1.09111,0.19902 -1.47906,0.57897 l 0,0 0,0 c -0.38795,0.39804 -0.55768,1.01321 -0.55768,1.86358 l 0,0 0,0 c 0,0.86846 0.16973,1.50172 0.53343,1.88167 l 0,0 0,0 c 0.3637,0.39804 0.84865,0.59706 1.43058,0.59706 l 0,0 0,0 c 0.48493,0 0.87288,-0.1267 1.1881,-0.39804 l 0,0 0,0 c 0.29096,-0.25331 0.50918,-0.66946 0.58193,-1.21223 z" 20.1808 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1809 + id="558" 20.1810 + inkscape:connector-curvature="0" /> 20.1811 + <path 20.1812 + d="m 199.80494,591.86695 0,0 0.16973,0.95895 0,0 0,0 c -0.33947,0.0542 -0.63042,0.0905 -0.89715,0.0905 l 0,0 0,0 c -0.43643,0 -0.7759,-0.0542 -1.01836,-0.18093 l 0,0 0,0 c -0.24247,-0.10858 -0.4122,-0.2714 -0.50918,-0.4885 l 0,0 0,0 c -0.097,-0.19905 -0.14549,-0.63326 -0.14549,-1.28462 l 0,0 0,-3.69096 -0.89713,0 0,-0.85037 0.89713,0 0,-1.59217 1.1881,-0.65134 0,2.24351 1.21235,0 0,0.85037 -1.21235,0 0,3.76332 0,0 0,0 c 0,0.3076 0.0242,0.50663 0.0727,0.59708 l 0,0 0,0 c 0.0485,0.0905 0.097,0.16284 0.19397,0.19903 l 0,0 0,0 c 0.097,0.0542 0.24246,0.0905 0.41219,0.0905 l 0,0 0,0 c 0.14549,0 0.31522,-0.0181 0.53344,-0.0544 z" 20.1813 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1814 + id="559" 20.1815 + inkscape:connector-curvature="0" /> 20.1816 + <path 20.1817 + d="m 200.9688,585.22685 0,-1.2484 1.21235,0 0,1.2484 -1.21235,0 z m 0,7.59905 0,-6.40492 1.21235,0 0,6.40492 -1.21235,0 z" 20.1818 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1819 + id="560" 20.1820 + inkscape:connector-curvature="0" /> 20.1821 + <path 20.1822 + d="m 203.56323,589.64152 0,0 0,0 c 0,-1.19412 0.3637,-2.08068 1.09109,-2.64155 l 0,0 0,0 c 0.63044,-0.48852 1.35785,-0.72372 2.23073,-0.72372 l 0,0 0,0 c 0.94563,0 1.74578,0.28948 2.35196,0.86845 l 0,0 0,0 c 0.63042,0.57897 0.94563,1.37506 0.94563,2.40636 l 0,0 0,0 c 0,0.81419 -0.14548,1.46554 -0.41219,1.95405 l 0,0 0,0 c -0.26672,0.4704 -0.67892,0.83228 -1.21235,1.10366 l 0,0 0,0 c -0.50918,0.23522 -1.06687,0.36186 -1.67305,0.36186 l 0,0 0,0 c -0.99413,0 -1.79428,-0.28946 -2.40044,-0.83226 l 0,0 0,0 c -0.60618,-0.57899 -0.92138,-1.41128 -0.92138,-2.49685 z m 1.23659,0 0,0 0,0 c 0,0.81421 0.19397,1.42935 0.60617,1.8455 l 0,0 0,0 c 0.38795,0.41613 0.89715,0.61515 1.47906,0.61515 l 0,0 0,0 c 0.58193,0 1.06687,-0.21711 1.45483,-0.61515 l 0,0 0,0 c 0.41218,-0.41615 0.60617,-1.04941 0.60617,-1.88167 l 0,0 0,0 c 0,-0.79611 -0.19399,-1.39317 -0.60617,-1.80929 l 0,0 0,0 c -0.38796,-0.41615 -0.8729,-0.61517 -1.45483,-0.61517 l 0,0 0,0 c -0.58191,0 -1.09111,0.19902 -1.47906,0.61517 l 0,0 0,0 c -0.4122,0.39804 -0.60617,1.01318 -0.60617,1.84546 z" 20.1823 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1824 + id="561" 20.1825 + inkscape:connector-curvature="0" /> 20.1826 + <path 20.1827 + d="m 211.58897,592.8259 0,0 0,-6.40492 1.06687,0 0,0.92277 0,0 0,0 c 0.53343,-0.70566 1.2851,-1.0675 2.27921,-1.0675 l 0,0 0,0 c 0.4122,0 0.8244,0.0723 1.16386,0.21711 l 0,0 0,0 c 0.3637,0.1267 0.63042,0.30759 0.82438,0.54277 l 0,0 0,0 c 0.16974,0.21713 0.29099,0.48853 0.36372,0.7961 l 0,0 0,0 c 0.0485,0.21711 0.0727,0.56089 0.0727,1.06749 l 0,0 0,3.92618 -1.21236,0 0,-3.89001 0,0 0,0 c 0,-0.43421 -0.0485,-0.77799 -0.14547,-0.99508 l 0,0 0,0 c -0.097,-0.21714 -0.24248,-0.39807 -0.48495,-0.5247 l 0,0 0,0 c -0.24246,-0.12669 -0.53343,-0.19902 -0.84865,-0.19902 l 0,0 0,0 c -0.50918,0 -0.94563,0.14473 -1.33358,0.45232 l 0,0 0,0 c -0.3637,0.28947 -0.55768,0.85035 -0.55768,1.66455 l 0,0 0,3.49194 -1.1881,0 z" 20.1828 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1829 + id="562" 20.1830 + inkscape:connector-curvature="0" /> 20.1831 + </g> 20.1832 + <path 20.1833 + inkscape:connector-curvature="0" 20.1834 + id="563" 20.1835 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1836 + d="m 310.27417,577.12194 23.42259,12.32129 -0.33947,0.36187 -0.33945,0.36185 -23.42259,-12.32131 0.33947,-0.36184 0.33945,-0.36186 z" /> 20.1837 + <path 20.1838 + inkscape:connector-curvature="0" 20.1839 + id="564" 20.1840 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1841 + d="m 330.08395,585.57135 0,0 4.53419,4.867 -7.6863,-1.5198 0,0 0,0 c 1.91551,-0.48852 3.17636,-1.84548 3.15211,-3.3472 z" /> 20.1842 + <path 20.1843 + inkscape:connector-curvature="0" 20.1844 + id="565" 20.1845 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1846 + d="m 280.7171,577.82756 -21.77378,12.3213 -0.33946,-0.34376 -0.33945,-0.34378 21.77378,-12.3213 0.33947,0.34378 0.33944,0.34376 z" /> 20.1847 + <path 20.1848 + inkscape:connector-curvature="0" 20.1849 + id="566" 20.1850 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1851 + d="m 265.00506,588.7557 0,0 -7.5893,1.73694 4.26747,-4.99366 0,0 0,0 c 0.0242,1.48362 1.38208,2.80439 3.32183,3.25672 z" /> 20.1852 + <path 20.1853 + inkscape:connector-curvature="0" 20.1854 + id="567" 20.1855 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1856 + d="m 292.79211,556.47788 0.3152,17.1702 -0.58193,0 -0.58192,0 -0.31522,-17.1702 0.58194,0 0.58193,0 z" /> 20.1857 + <path 20.1858 + inkscape:connector-curvature="0" 20.1859 + id="568" 20.1860 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1861 + d="m 295.2168,569.14295 0,0 -2.64292,5.6269 -2.8369,-5.57263 0,0 0,0 c 1.62455,0.86846 3.83103,0.85038 5.47982,-0.0542 z" /> 20.1862 + <path 20.1863 + inkscape:connector-curvature="0" 20.1864 + id="570" 20.1865 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1866 + d="m 438.66192,556.22457 16.003,17.17023 -0.48494,0.25328 -0.48493,0.2533 -16.00301,-17.1702 0.48494,-0.2533 0.48494,-0.25331 z" /> 20.1867 + <path 20.1868 + inkscape:connector-curvature="0" 20.1869 + id="571" 20.1870 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1871 + d="m 453.01613,568.79917 0,0 2.03675,5.75357 -6.52244,-3.40148 0,0 0,0 c 2.0125,0.0542 3.80678,-0.92273 4.48569,-2.35209 z" /> 20.1872 + <path 20.1873 + inkscape:connector-curvature="0" 20.1874 + id="572" 20.1875 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1876 + d="m 541.85706,577.12194 23.42258,12.32129 -0.33946,0.36187 -0.31521,0.36185 -23.44683,-12.32131 0.33946,-0.36184 0.33946,-0.36186 z" /> 20.1877 + <path 20.1878 + inkscape:connector-curvature="0" 20.1879 + id="573" 20.1880 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1881 + d="m 561.66684,585.57135 0,0 4.50994,4.867 -7.66205,-1.5198 0,0 0,0 c 1.89127,-0.48852 3.17635,-1.84548 3.15211,-3.3472 z" /> 20.1882 + <path 20.1883 + inkscape:connector-curvature="0" 20.1884 + id="574" 20.1885 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1886 + d="m 452.33722,577.82756 -21.74954,12.3213 -0.33946,-0.34376 -0.33946,-0.34378 21.74954,-12.3213 0.33946,0.34378 0.33946,0.34376 z" /> 20.1887 + <path 20.1888 + inkscape:connector-curvature="0" 20.1889 + id="575" 20.1890 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1891 + d="m 436.64942,588.7557 0,0 -7.5893,1.73694 4.29171,-4.99366 0,0 0,0 c 0.0242,1.48362 1.35784,2.80439 3.29759,3.25672 z" /> 20.1892 + <path 20.1893 + inkscape:connector-curvature="0" 20.1894 + id="576" 20.1895 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1896 + d="m 497.4366,556.47788 0.31521,17.1702 -0.58193,0 -0.58192,0 -0.31522,-17.1702 0.58193,0 0.58193,0 z" /> 20.1897 + <path 20.1898 + inkscape:connector-curvature="0" 20.1899 + id="577" 20.1900 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1901 + d="m 499.83704,569.14295 0,0 -2.61867,5.6269 -2.86114,-5.57263 0,0 0,0 c 1.64879,0.86846 3.85527,0.85038 5.47981,-0.0542 z" /> 20.1902 + <path 20.1903 + inkscape:connector-curvature="0" 20.1904 + id="578" 20.1905 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1906 + d="m 448.02125,575.87353 98.17602,0.34377 0,0.43422 0,0.43424 -98.17602,-0.34378 0,-0.43423 0,-0.43422 z" /> 20.1907 + <path 20.1908 + inkscape:connector-curvature="0" 20.1909 + id="579" 20.1910 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1911 + d="m 497.48509,577.4838 0.31521,11.43475 -0.58193,0 -0.58193,0 -0.31521,-11.43475 0.58193,0 0.58193,0 z" /> 20.1912 + <path 20.1913 + inkscape:connector-curvature="0" 20.1914 + id="580" 20.1915 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1916 + d="m 499.83704,584.44959 0,0 -2.57017,5.60881 -2.90964,-5.51835 0,0 0,0 c 1.64879,0.85037 3.87952,0.81419 5.47981,-0.0905 z" /> 20.1917 + <g 20.1918 + id="g4983" 20.1919 + transform="translate(0,6.7406311)"> 20.1920 + <path 20.1921 + d="m 150.60782,474.96914 0,-8.84746 1.30933,0 0,7.81616 4.80091,0 0,1.0313 -6.11024,0 z" 20.1922 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1923 + id="581" 20.1924 + inkscape:connector-curvature="0" /> 20.1925 + <path 20.1926 + d="m 162.73131,474.20923 0,0 0,0 c -0.43645,0.30758 -0.8729,0.56089 -1.2851,0.70564 l 0,0 0,0 c -0.41219,0.12669 -0.84863,0.19902 -1.33358,0.19902 l 0,0 0,0 c -0.77589,0 -1.38208,-0.16284 -1.77002,-0.50661 l 0,0 0,0 c -0.4122,-0.34376 -0.63042,-0.778 -0.63042,-1.3027 l 0,0 0,0 c 0,-0.32567 0.0727,-0.61515 0.24247,-0.86846 l 0,0 0,0 c 0.14548,-0.25329 0.3637,-0.47042 0.63043,-0.63325 l 0,0 0,0 c 0.21821,-0.14474 0.50918,-0.27139 0.82438,-0.34377 l 0,0 0,0 c 0.24247,-0.0542 0.60618,-0.10858 1.09111,-0.16284 l 0,0 0,0 c 0.96988,-0.10857 1.67305,-0.2352 2.13375,-0.37995 l 0,0 0,0 c 0,-0.14474 0,-0.25329 0,-0.28947 l 0,0 0,0 c 0,-0.43424 -0.097,-0.75992 -0.33947,-0.94085 l 0,0 0,0 c -0.29095,-0.2352 -0.75165,-0.36185 -1.35783,-0.36185 l 0,0 0,0 c -0.58193,0 -0.99411,0.0904 -1.26084,0.2714 l 0,0 0,0 c -0.26672,0.18093 -0.46069,0.48851 -0.60617,0.95892 l 0,0 -1.13961,-0.14475 0,0 0,0 c 0.097,-0.47041 0.26671,-0.83226 0.50918,-1.12176 l 0,0 0,0 c 0.24248,-0.2714 0.58193,-0.48851 1.04263,-0.63325 l 0,0 0,0 c 0.48493,-0.16284 1.01836,-0.23521 1.62454,-0.23521 l 0,0 0,0 c 0.60617,0 1.09112,0.0723 1.47907,0.19902 l 0,0 0,0 c 0.38795,0.1267 0.65466,0.28949 0.84865,0.48851 l 0,0 0,0 c 0.16971,0.19903 0.29095,0.43423 0.3637,0.74181 l 0,0 0,0 c 0.0485,0.18093 0.0485,0.5247 0.0485,0.99512 l 0,0 0,1.46552 0,0 0,0 c 0,0.99511 0.0485,1.64646 0.097,1.91785 l 0,0 0,0 c 0.0485,0.25331 0.14548,0.5066 0.29096,0.74182 l 0,0 -1.26084,0 0,0 0,0 c -0.12124,-0.21711 -0.19397,-0.48851 -0.24247,-0.75991 z m -0.097,-2.44255 0,0 0,0 c -0.43645,0.16284 -1.09112,0.30759 -1.96401,0.41615 l 0,0 0,0 c -0.48495,0.0542 -0.84865,0.12669 -1.04262,0.21711 l 0,0 0,0 c -0.21823,0.0723 -0.3637,0.19902 -0.48495,0.34377 l 0,0 0,0 c -0.12123,0.16283 -0.16973,0.34376 -0.16973,0.52469 l 0,0 0,0 c 0,0.28949 0.12125,0.5247 0.36372,0.72372 l 0,0 0,0 c 0.24246,0.19902 0.60618,0.2714 1.06686,0.2714 l 0,0 0,0 c 0.46068,0 0.8729,-0.0723 1.2366,-0.25331 l 0,0 0,0 c 0.36371,-0.18093 0.63041,-0.43423 0.80015,-0.7599 l 0,0 0,0 c 0.14548,-0.23522 0.19398,-0.59707 0.19398,-1.08557 l 0,-0.39806 z" 20.1927 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1928 + id="582" 20.1929 + inkscape:connector-curvature="0" /> 20.1930 + <path 20.1931 + d="m 165.71369,474.96914 0,0 0,-6.4049 1.09111,0 0,0.92273 0,0 0,0 c 0.50918,-0.70562 1.26085,-1.06748 2.23073,-1.06748 l 0,0 0,0 c 0.43645,0 0.8244,0.0723 1.1881,0.21711 l 0,0 0,0 c 0.3637,0.1267 0.60618,0.30759 0.77591,0.54279 l 0,0 0,0 c 0.16972,0.21711 0.3152,0.48851 0.36368,0.7961 l 0,0 0,0 c 0.0485,0.21711 0.0727,0.56087 0.0727,1.06748 l 0,0 0,3.92617 -1.16384,0 0,-3.88999 0,0 0,0 c 0,-0.43422 -0.0485,-0.77799 -0.14549,-0.9951 l 0,0 0,0 c -0.097,-0.21713 -0.26671,-0.39806 -0.50918,-0.52471 l 0,0 0,0 c -0.24248,-0.12669 -0.5092,-0.19902 -0.8244,-0.19902 l 0,0 0,0 c -0.5092,0 -0.94564,0.14475 -1.30934,0.45233 l 0,0 0,0 c -0.38795,0.28949 -0.55769,0.85037 -0.55769,1.66455 l 0,0 0,3.49194 -1.21234,0 z" 20.1932 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1933 + id="583" 20.1934 + inkscape:connector-curvature="0" /> 20.1935 + <path 20.1936 + d="m 173.08477,475.51193 0,0 1.16386,0.14474 0,0 0,0 c 0.0485,0.34377 0.19397,0.57897 0.41219,0.72372 l 0,0 0,0 c 0.29096,0.19902 0.70316,0.30758 1.21236,0.30758 l 0,0 0,0 c 0.55768,0 0.96986,-0.10858 1.28508,-0.30758 l 0,0 0,0 c 0.29096,-0.19902 0.50918,-0.48851 0.60618,-0.85037 l 0,0 0,0 c 0.0727,-0.21711 0.097,-0.68753 0.097,-1.37507 l 0,0 0,0 c -0.53343,0.54279 -1.18809,0.81419 -1.93976,0.81419 l 0,0 0,0 c -0.99411,0 -1.74578,-0.30758 -2.27921,-0.92275 l 0,0 0,0 c -0.53343,-0.65133 -0.80015,-1.41125 -0.80015,-2.2978 l 0,0 0,0 c 0,-0.61515 0.12124,-1.17604 0.3637,-1.70074 l 0,0 0,0 c 0.24247,-0.52469 0.60618,-0.92273 1.06687,-1.19413 l 0,0 0,0 c 0.46069,-0.28948 1.01838,-0.43423 1.64879,-0.43423 l 0,0 0,0 c 0.80015,0 1.50331,0.30759 2.03676,0.92274 l 0,0 0,-0.77799 1.11535,0 0,5.55453 0,0 0,0 c 0,0.97702 -0.097,1.70074 -0.33945,2.11687 l 0,0 0,0 c -0.21823,0.41615 -0.58193,0.74181 -1.06688,0.97703 l 0,0 0,0 c -0.48493,0.25329 -1.0911,0.36185 -1.77001,0.36185 l 0,0 0,0 c -0.84865,0 -1.55181,-0.16283 -2.061,-0.5066 l 0,0 0,0 c -0.53344,-0.34377 -0.77591,-0.86846 -0.75166,-1.55599 z m 0.99413,-3.8538 0,0 0,0 c 0,0.85037 0.16973,1.46553 0.55768,1.84547 l 0,0 0,0 c 0.3637,0.39806 0.82438,0.59708 1.38207,0.59708 l 0,0 0,0 c 0.53344,0 0.99413,-0.19902 1.38208,-0.57898 l 0,0 0,0 c 0.36371,-0.39804 0.55769,-0.99511 0.55769,-1.82738 l 0,0 0,0 c 0,-0.77801 -0.19398,-1.37507 -0.58193,-1.77311 l 0,0 0,0 c -0.38796,-0.39805 -0.8244,-0.59707 -1.38208,-0.59707 l 0,0 0,0 c -0.53345,0 -0.96988,0.19902 -1.35783,0.59707 l 0,0 0,0 c -0.36371,0.37995 -0.55768,0.97701 -0.55768,1.73692 z" 20.1937 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1938 + id="584" 20.1939 + inkscape:connector-curvature="0" /> 20.1940 + <path 20.1941 + d="m 185.54772,474.96914 0,0 0,-0.92275 0,0 0,0 c -0.55768,0.70564 -1.30935,1.0675 -2.25498,1.0675 l 0,0 0,0 c -0.4122,0 -0.80014,-0.0723 -1.16384,-0.21713 l 0,0 0,0 c -0.36372,-0.14473 -0.63043,-0.32566 -0.80015,-0.54279 l 0,0 0,0 c -0.16973,-0.19902 -0.29097,-0.47042 -0.36372,-0.79608 l 0,0 0,0 c -0.0485,-0.19903 -0.0727,-0.5428 -0.0727,-1.0132 l 0,0 0,-3.98045 1.1881,0 0,3.5643 0,0 0,0 c 0,0.57898 0.0242,0.95893 0.0728,1.15795 l 0,0 0,0 c 0.097,0.28949 0.24246,0.50661 0.46068,0.66944 l 0,0 0,0 c 0.24248,0.16284 0.55768,0.2533 0.9214,0.2533 l 0,0 0,0 c 0.3637,0 0.70314,-0.0905 1.01836,-0.2533 l 0,0 0,0 c 0.31522,-0.18093 0.53343,-0.39804 0.67892,-0.68753 l 0,0 0,0 c 0.12123,-0.28949 0.19398,-0.70562 0.19398,-1.2665 l 0,0 0,-3.43766 1.21235,0 0,6.4049 -1.09112,0 z" 20.1942 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1943 + id="585" 20.1944 + inkscape:connector-curvature="0" /> 20.1945 + <path 20.1946 + d="m 193.13702,474.20923 0,0 0,0 c -0.43645,0.30758 -0.8729,0.56089 -1.28508,0.70564 l 0,0 0,0 c -0.41222,0.12669 -0.84865,0.19902 -1.3336,0.19902 l 0,0 0,0 c -0.7759,0 -1.38208,-0.16284 -1.79428,-0.50661 l 0,0 0,0 c -0.41218,-0.34376 -0.60616,-0.778 -0.60616,-1.3027 l 0,0 0,0 c 0,-0.32567 0.0727,-0.61515 0.24246,-0.86846 l 0,0 0,0 c 0.14549,-0.25329 0.33945,-0.47042 0.58194,-0.63325 l 0,0 0,0 c 0.26671,-0.14474 0.55768,-0.27139 0.87288,-0.34377 l 0,0 0,0 c 0.24246,-0.0542 0.60618,-0.10858 1.06688,-0.16284 l 0,0 0,0 c 0.96988,-0.10857 1.69728,-0.2352 2.15798,-0.37995 l 0,0 0,0 c 0,-0.14474 0,-0.25329 0,-0.28947 l 0,0 0,0 c 0,-0.43424 -0.097,-0.75992 -0.33947,-0.94085 l 0,0 0,0 c -0.3152,-0.2352 -0.75165,-0.36185 -1.35783,-0.36185 l 0,0 0,0 c -0.58193,0 -0.99411,0.0904 -1.26085,0.2714 l 0,0 0,0 c -0.26671,0.18093 -0.48493,0.48851 -0.60616,0.95892 l 0,0 -1.16385,-0.14475 0,0 0,0 c 0.12123,-0.47041 0.2667,-0.83226 0.50918,-1.12176 l 0,0 0,0 c 0.24247,-0.2714 0.60617,-0.48851 1.06687,-0.63325 l 0,0 0,0 c 0.4607,-0.16284 1.01836,-0.23521 1.62454,-0.23521 l 0,0 0,0 c 0.60617,0 1.09112,0.0723 1.47907,0.19902 l 0,0 0,0 c 0.3637,0.1267 0.65466,0.28949 0.82439,0.48851 l 0,0 0,0 c 0.19399,0.19903 0.31522,0.43423 0.38795,0.74181 l 0,0 0,0 c 0.0242,0.18093 0.0485,0.5247 0.0485,0.99512 l 0,0 0,1.46552 0,0 0,0 c 0,0.99511 0.0243,1.64646 0.0727,1.91785 l 0,0 0,0 c 0.0728,0.25331 0.14548,0.5066 0.29096,0.74182 l 0,0 -1.23659,0 0,0 0,0 c -0.12124,-0.21711 -0.19397,-0.48851 -0.24247,-0.75991 z m -0.097,-2.44255 0,0 0,0 c -0.43645,0.16284 -1.09112,0.30759 -1.96402,0.41615 l 0,0 0,0 c -0.50918,0.0542 -0.84864,0.12669 -1.06686,0.21711 l 0,0 0,0 c -0.19398,0.0723 -0.3637,0.19902 -0.4607,0.34377 l 0,0 0,0 c -0.12123,0.16283 -0.16973,0.34376 -0.16973,0.52469 l 0,0 0,0 c 0,0.28949 0.12125,0.5247 0.36371,0.72372 l 0,0 0,0 c 0.24247,0.19902 0.60619,0.2714 1.06687,0.2714 l 0,0 0,0 c 0.4607,0 0.8729,-0.0723 1.2366,-0.25331 l 0,0 0,0 c 0.36371,-0.18093 0.63041,-0.43423 0.80014,-0.7599 l 0,0 0,0 c 0.12124,-0.23522 0.19399,-0.59707 0.19399,-1.08557 l 0,-0.39806 z" 20.1947 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1948 + id="586" 20.1949 + inkscape:connector-curvature="0" /> 20.1950 + <path 20.1951 + d="m 195.90118,475.51193 0,0 1.16385,0.14474 0,0 0,0 c 0.0485,0.34377 0.19398,0.57897 0.4122,0.72372 l 0,0 0,0 c 0.29096,0.19902 0.70316,0.30758 1.21236,0.30758 l 0,0 0,0 c 0.55766,0 0.99411,-0.10858 1.30933,-0.30758 l 0,0 0,0 c 0.29095,-0.19902 0.48493,-0.48851 0.58193,-0.85037 l 0,0 0,0 c 0.0727,-0.21711 0.097,-0.68753 0.097,-1.37507 l 0,0 0,0 c -0.50918,0.54279 -1.16386,0.81419 -1.96401,0.81419 l 0,0 0,0 c -0.96988,0 -1.72153,-0.30758 -2.25496,-0.92275 l 0,0 0,0 c -0.53343,-0.65133 -0.80015,-1.41125 -0.80015,-2.2978 l 0,0 0,0 c 0,-0.61515 0.12124,-1.17604 0.3637,-1.70074 l 0,0 0,0 c 0.24247,-0.52469 0.60618,-0.92273 1.06687,-1.19413 l 0,0 0,0 c 0.4607,-0.28948 1.01838,-0.43423 1.64879,-0.43423 l 0,0 0,0 c 0.8244,0 1.52757,0.30759 2.03675,0.92274 l 0,0 0,-0.77799 1.11536,0 0,5.55453 0,0 0,0 c 0,0.97702 -0.097,1.70074 -0.33946,2.11687 l 0,0 0,0 c -0.21822,0.41615 -0.58192,0.74181 -1.06687,0.97703 l 0,0 0,0 c -0.46068,0.25329 -1.06686,0.36185 -1.77003,0.36185 l 0,0 0,0 c -0.84865,0 -1.55179,-0.16283 -2.06099,-0.5066 l 0,0 0,0 c -0.53343,-0.34377 -0.7759,-0.86846 -0.75165,-1.55599 z m 0.99411,-3.8538 0,0 0,0 c 0,0.85037 0.16974,1.46553 0.55769,1.84547 l 0,0 0,0 c 0.36371,0.39806 0.82439,0.59708 1.38208,0.59708 l 0,0 0,0 c 0.55768,0 1.01838,-0.19902 1.40633,-0.57898 l 0,0 0,0 c 0.33946,-0.39804 0.53343,-0.99511 0.53343,-1.82738 l 0,0 0,0 c 0,-0.77801 -0.19397,-1.37507 -0.55768,-1.77311 l 0,0 0,0 c -0.38795,-0.39805 -0.84864,-0.59707 -1.40633,-0.59707 l 0,0 0,0 c -0.53344,0 -0.99412,0.19902 -1.35783,0.59707 l 0,0 0,0 c -0.38795,0.37995 -0.55769,0.97701 -0.55769,1.73692 z" 20.1952 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1953 + id="587" 20.1954 + inkscape:connector-curvature="0" /> 20.1955 + <path 20.1956 + d="m 208.53385,472.92464 0,0 1.26085,0.14474 0,0 0,0 c -0.19399,0.65135 -0.55769,1.15794 -1.09112,1.50172 l 0,0 0,0 c -0.53343,0.36186 -1.1881,0.54279 -2.01249,0.54279 l 0,0 0,0 c -1.01838,0 -1.84278,-0.2895 -2.44895,-0.86846 l 0,0 0,0 c -0.60618,-0.5609 -0.9214,-1.35698 -0.9214,-2.40637 l 0,0 0,0 c 0,-1.08558 0.31522,-1.91785 0.9214,-2.51492 l 0,0 0,0 c 0.63042,-0.59706 1.43057,-0.90465 2.3762,-0.90465 l 0,0 0,0 c 0.92139,0 1.69729,0.28948 2.30346,0.88656 l 0,0 0,0 c 0.60618,0.57896 0.89715,1.39315 0.89715,2.46063 l 0,0 0,0 c 0,0.0723 0,0.16284 0,0.28949 l 0,0 -5.26161,0 0,0 0,0 c 0.0485,0.70563 0.26673,1.24841 0.67892,1.62836 l 0,0 0,0 c 0.38796,0.37997 0.89714,0.5609 1.45483,0.5609 l 0,0 0,0 c 0.43643,0 0.82439,-0.10858 1.11536,-0.32568 l 0,0 0,0 c 0.3152,-0.19902 0.55768,-0.54279 0.7274,-0.99511 z m -3.90376,-1.75502 0,0 3.92801,0 0,0 0,0 c -0.0485,-0.54278 -0.19397,-0.95893 -0.4607,-1.23032 l 0,0 0,0 c -0.38795,-0.41614 -0.84865,-0.61516 -1.45481,-0.61516 l 0,0 0,0 c -0.53344,0 -0.99413,0.16283 -1.38208,0.48851 l 0,0 0,0 c -0.38795,0.34376 -0.58194,0.79608 -0.63042,1.35697 z" 20.1957 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1958 + id="588" 20.1959 + inkscape:connector-curvature="0" /> 20.1960 + <path 20.1961 + d="m 153.1295,487.25353 0,-7.81617 -3.20059,0 0,-1.04939 7.75903,0 0,1.04939 -3.24909,0 0,7.81617 -1.30935,0 z" 20.1962 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1963 + id="589" 20.1964 + inkscape:connector-curvature="0" /> 20.1965 + <path 20.1966 + d="m 158.41535,484.03298 0,0 0,0 c 0,-1.19414 0.33945,-2.08069 1.0911,-2.64157 l 0,0 0,0 c 0.60618,-0.48851 1.35783,-0.72373 2.23073,-0.72373 l 0,0 0,0 c 0.96988,0 1.77003,0.28949 2.40046,0.86846 l 0,0 0,0 c 0.58193,0.57899 0.89713,1.39317 0.89713,2.40637 l 0,0 0,0 c 0,0.83228 -0.12123,1.48362 -0.4122,1.95404 l 0,0 0,0 c -0.24246,0.47043 -0.65466,0.83227 -1.16384,1.10368 l 0,0 0,0 c -0.53345,0.2533 -1.09113,0.39804 -1.72155,0.39804 l 0,0 0,0 c -0.99411,0 -1.79426,-0.28949 -2.42469,-0.86847 l 0,0 0,0 c -0.60619,-0.57897 -0.89714,-1.41125 -0.89714,-2.49682 z m 1.21235,0 0,0 0,0 c 0,0.81418 0.21822,1.42934 0.60617,1.84548 l 0,0 0,0 c 0.38796,0.41615 0.89714,0.61517 1.50331,0.61517 l 0,0 0,0 c 0.60617,0 1.09111,-0.19902 1.50331,-0.61517 l 0,0 0,0 c 0.38795,-0.41614 0.58193,-1.0313 0.58193,-1.88166 l 0,0 0,0 c 0,-0.7961 -0.19398,-1.39316 -0.60618,-1.80931 l 0,0 0,0 c -0.38795,-0.41613 -0.89713,-0.61515 -1.47906,-0.61515 l 0,0 0,0 c -0.60617,0 -1.11535,0.19902 -1.50331,0.61515 l 0,0 0,0 c -0.38795,0.39806 -0.60617,1.01321 -0.60617,1.84549 z" 20.1967 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1968 + id="590" 20.1969 + inkscape:connector-curvature="0" /> 20.1970 + <path 20.1971 + d="m 166.00465,484.03298 0,0 0,0 c 0,-1.19414 0.3637,-2.08069 1.11537,-2.64157 l 0,0 0,0 c 0.60616,-0.48851 1.35783,-0.72373 2.20646,-0.72373 l 0,0 0,0 c 0.9699,0 1.74579,0.28949 2.37621,0.86846 l 0,0 0,0 c 0.60618,0.57899 0.92138,1.39317 0.92138,2.40637 l 0,0 0,0 c 0,0.83228 -0.14547,1.48362 -0.4122,1.95404 l 0,0 0,0 c -0.26671,0.47043 -0.67891,0.83227 -1.1881,1.10368 l 0,0 0,0 c -0.50918,0.2533 -1.09111,0.39804 -1.69729,0.39804 l 0,0 0,0 c -0.96987,0 -1.77001,-0.28949 -2.40045,-0.86847 l 0,0 0,0 c -0.60616,-0.57897 -0.92138,-1.41125 -0.92138,-2.49682 z m 1.2366,0 0,0 0,0 c 0,0.81418 0.21822,1.42934 0.60617,1.84548 l 0,0 0,0 c 0.38796,0.41615 0.89714,0.61517 1.47906,0.61517 l 0,0 0,0 c 0.60618,0 1.09113,-0.19902 1.45483,-0.61517 l 0,0 0,0 c 0.4122,-0.41614 0.60616,-1.0313 0.60616,-1.88166 l 0,0 0,0 c 0,-0.7961 -0.19396,-1.39316 -0.60616,-1.80931 l 0,0 0,0 c -0.3637,-0.41613 -0.8729,-0.61515 -1.45483,-0.61515 l 0,0 0,0 c -0.58192,0 -1.0911,0.19902 -1.47906,0.61515 l 0,0 0,0 c -0.38795,0.39806 -0.60617,1.01321 -0.60617,1.84549 z" 20.1972 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1973 + id="591" 20.1974 + inkscape:connector-curvature="0" /> 20.1975 + <path 20.1976 + d="m 174.0304,487.25353 0,-8.86556 1.18811,0 0,8.86556 -1.18811,0 z" 20.1977 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1978 + id="592" 20.1979 + inkscape:connector-curvature="0" /> 20.1980 + <path 20.1981 + d="m 181.71668,484.88335 0,0 1.16386,0.14474 0,0 0,0 c -0.12123,0.74181 -0.43644,1.32078 -0.96988,1.73693 l 0,0 0,0 c -0.53343,0.41613 -1.18809,0.63325 -1.96399,0.63325 l 0,0 0,0 c -0.96988,0 -1.7458,-0.28949 -2.35196,-0.86847 l 0,0 0,0 c -0.58193,-0.57897 -0.8729,-1.39316 -0.8729,-2.47873 l 0,0 0,0 c 0,-0.68753 0.12123,-1.30268 0.36372,-1.80929 l 0,0 0,0 c 0.26671,-0.52469 0.65466,-0.92275 1.16384,-1.17604 l 0,0 0,0 c 0.53343,-0.25331 1.09112,-0.39806 1.6973,-0.39806 l 0,0 0,0 c 0.7759,0 1.40633,0.18093 1.89126,0.5428 l 0,0 0,0 c 0.50918,0.34377 0.80015,0.85037 0.92138,1.50171 l 0,0 -1.13961,0.16284 0,0 0,0 c -0.12123,-0.43423 -0.3152,-0.7599 -0.58193,-0.97701 l 0,0 0,0 c -0.29095,-0.21713 -0.63042,-0.32568 -1.0426,-0.32568 l 0,0 0,0 c -0.60618,0 -1.09113,0.19902 -1.47908,0.57897 l 0,0 0,0 c -0.38795,0.39804 -0.55767,1.0313 -0.55767,1.88167 l 0,0 0,0 c 0,0.85037 0.16972,1.48361 0.53342,1.88165 l 0,0 0,0 c 0.36371,0.37998 0.84865,0.579 1.43058,0.579 l 0,0 0,0 c 0.48493,0 0.8729,-0.1267 1.1881,-0.39805 l 0,0 0,0 c 0.31521,-0.25331 0.53343,-0.65135 0.60616,-1.21223 z" 20.1982 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1983 + id="593" 20.1984 + inkscape:connector-curvature="0" /> 20.1985 + <path 20.1986 + d="m 183.92318,487.25353 0,0 0,-8.86556 1.18809,0 0,3.16628 0,0 0,0 c 0.58193,-0.57898 1.28508,-0.88657 2.13373,-0.88657 l 0,0 0,0 c 0.53343,0 0.99413,0.10858 1.35783,0.28949 l 0,0 0,0 c 0.38797,0.18093 0.65467,0.45233 0.8244,0.77801 l 0,0 0,0 c 0.16973,0.32567 0.26673,0.81417 0.26673,1.42934 l 0,0 0,4.08901 -1.18811,0 0,-4.08901 0,0 0,0 c 0,-0.54279 -0.14549,-0.94083 -0.38795,-1.17605 l 0,0 0,0 c -0.26672,-0.25329 -0.63042,-0.37995 -1.11537,-0.37995 l 0,0 0,0 c -0.36369,0 -0.70316,0.0905 -1.01838,0.2533 l 0,0 0,0 c -0.3152,0.16284 -0.53341,0.39805 -0.65466,0.68753 l 0,0 0,0 c -0.14548,0.2714 -0.21822,0.66944 -0.21822,1.17605 l 0,0 0,3.52813 -1.18809,0 z" 20.1987 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1988 + id="594" 20.1989 + inkscape:connector-curvature="0" /> 20.1990 + <path 20.1991 + d="m 196.14365,486.45743 0,0 0,0 c -0.43645,0.34378 -0.87289,0.57897 -1.2851,0.72372 l 0,0 0,0 c -0.38795,0.14474 -0.8244,0.21712 -1.30933,0.21712 l 0,0 0,0 c -0.77592,0 -1.38208,-0.18093 -1.79428,-0.52469 l 0,0 0,0 c -0.43645,-0.34378 -0.63042,-0.778 -0.63042,-1.32079 l 0,0 0,0 c 0,-0.32568 0.0727,-0.59708 0.24247,-0.86846 l 0,0 0,0 c 0.14548,-0.25331 0.36372,-0.47042 0.60617,-0.61517 l 0,0 0,0 c 0.26673,-0.16284 0.55769,-0.28948 0.87289,-0.36186 l 0,0 0,0 c 0.24249,-0.0542 0.58194,-0.10857 1.06687,-0.16283 l 0,0 0,0 c 0.94563,-0.10858 1.67304,-0.23521 2.13374,-0.37995 l 0,0 0,0 c 0,-0.14475 0,-0.23521 0,-0.28949 l 0,0 0,0 c 0,-0.43423 -0.12123,-0.74181 -0.33946,-0.92274 l 0,0 0,0 c -0.31522,-0.25331 -0.7759,-0.37995 -1.35783,-0.37995 l 0,0 0,0 c -0.55769,0 -0.96988,0.0905 -1.2366,0.27139 l 0,0 0,0 c -0.29097,0.18093 -0.48493,0.5066 -0.60617,0.95893 l 0,0 -1.18811,-0.14475 0,0 0,0 c 0.12123,-0.47042 0.29097,-0.83227 0.53345,-1.10366 l 0,0 0,0 c 0.24245,-0.28949 0.60616,-0.5066 1.06686,-0.65135 l 0,0 0,0 c 0.46069,-0.14475 0.99412,-0.23522 1.6003,-0.23522 l 0,0 0,0 c 0.60618,0 1.09111,0.0723 1.47906,0.19904 l 0,0 0,0 c 0.3637,0.12669 0.65467,0.28948 0.8244,0.48851 l 0,0 0,0 c 0.19397,0.19902 0.31522,0.43422 0.38795,0.74181 l 0,0 0,0 c 0.0242,0.18092 0.0485,0.52469 0.0485,0.99511 l 0,0 0,1.46552 0,0 0,0 c 0,1.01321 0.0243,1.64647 0.0727,1.91785 l 0,0 0,0 c 0.0485,0.2714 0.16974,0.52471 0.31522,0.77801 l 0,0 -1.26085,0 0,0 0,0 c -0.12123,-0.23522 -0.19398,-0.50661 -0.24246,-0.7961 z m -0.097,-2.44254 0,0 0,0 c -0.43645,0.16283 -1.09111,0.30758 -1.93976,0.41613 l 0,0 0,0 c -0.50918,0.0723 -0.84865,0.14474 -1.06686,0.21712 l 0,0 0,0 c -0.19399,0.0905 -0.36372,0.19902 -0.4607,0.36186 l 0,0 0,0 c -0.12124,0.14475 -0.16972,0.32566 -0.16972,0.50659 l 0,0 0,0 c 0,0.28951 0.12123,0.5428 0.36368,0.72373 l 0,0 0,0 c 0.24249,0.19902 0.60619,0.28948 1.06688,0.28948 l 0,0 0,0 c 0.46069,0 0.84865,-0.0905 1.21235,-0.27139 l 0,0 0,0 c 0.3637,-0.18093 0.63042,-0.43423 0.80015,-0.74182 l 0,0 0,0 c 0.12123,-0.25329 0.19398,-0.61515 0.19398,-1.10366 l 0,-0.39804 z" 20.1992 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1993 + id="595" 20.1994 + inkscape:connector-curvature="0" /> 20.1995 + <path 20.1996 + d="m 199.15027,479.6364 0,-1.24843 1.21235,0 0,1.24843 -1.21235,0 z m 0,7.61713 0,-6.4411 1.21235,0 0,6.4411 -1.21235,0 z" 20.1997 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.1998 + id="596" 20.1999 + inkscape:connector-curvature="0" /> 20.2000 + <path 20.2001 + d="m 202.18115,487.25353 0,0 0,-6.4411 1.06686,0 0,0.92275 0,0 0,0 c 0.53343,-0.70563 1.28508,-1.0675 2.27921,-1.0675 l 0,0 0,0 c 0.4122,0 0.8244,0.0723 1.13962,0.21713 l 0,0 0,0 c 0.3637,0.14474 0.63041,0.32567 0.82439,0.54279 l 0,0 0,0 c 0.14549,0.2352 0.26672,0.48851 0.33945,0.81418 l 0,0 0,0 c 0.0485,0.19902 0.0727,0.54279 0.0727,1.04939 l 0,0 0,3.96236 -1.18811,0 0,-3.92618 0,0 0,0 c 0,-0.43423 -0.0485,-0.75989 -0.14548,-0.99511 l 0,0 0,0 c -0.0727,-0.21711 -0.21822,-0.37995 -0.46069,-0.5247 l 0,0 0,0 c -0.24246,-0.12669 -0.53343,-0.19902 -0.84864,-0.19902 l 0,0 0,0 c -0.50919,0 -0.94563,0.16284 -1.33358,0.45233 l 0,0 0,0 c -0.3637,0.28948 -0.55769,0.85037 -0.55769,1.68264 l 0,0 0,3.51004 -1.18809,0 z" 20.2002 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.2003 + id="597" 20.2004 + inkscape:connector-curvature="0" /> 20.2005 + </g> 20.2006 + <path 20.2007 + inkscape:connector-curvature="0" 20.2008 + id="598" 20.2009 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.2010 + d="m 557.10841,556.73118 -16.003,17.1702 -0.4607,-0.2533 -0.48494,-0.25328 15.97876,-17.17023 0.48494,0.25331 0.48494,0.2533 z" /> 20.2011 + <path 20.2012 + inkscape:connector-curvature="0" 20.2013 + id="599" 20.2014 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.2015 + d="m 546.29426,571.16937 0,0 -6.4982,3.40146 1.98826,-5.77166 0,0 0,0 c 0.65467,1.42936 2.47319,2.38828 4.50994,2.3702 z" /> 20.2016 + <g 20.2017 + id="g5002" 20.2018 + transform="translate(0.42735043,9.8529205)"> 20.2019 + <path 20.2020 + d="m 212.70434,532.64946 0,0 c 0,-0.0905 0.0242,-0.16283 0.0727,-0.23519 0.0485,-0.0723 0.12123,-0.1267 0.21822,-0.16285 0.097,-0.0362 0.19398,-0.0542 0.31521,-0.0542 l 0,0 0,0.45231 -0.60616,0 z" 20.2021 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.2022 + id="37" 20.2023 + inkscape:connector-curvature="0" /> 20.2024 + <path 20.2025 + d="m 149.92891,532.08859 0,-8.86555 1.28508,0 0,7.79806 4.82515,0 0,1.06749 -6.11023,0 z" 20.2026 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.2027 + id="606" 20.2028 + inkscape:connector-curvature="0" /> 20.2029 + <path 20.2030 + d="m 162.0524,531.27441 0,0 0,0 c -0.43645,0.36184 -0.8729,0.61516 -1.2851,0.75989 l 0,0 0,0 c -0.4122,0.1267 -0.84863,0.19902 -1.33358,0.19902 l 0,0 0,0 c -0.7759,0 -1.35783,-0.16283 -1.77003,-0.5066 l 0,0 0,0 c -0.4122,-0.36186 -0.63042,-0.81419 -0.63042,-1.33887 l 0,0 0,0 c 0,-0.30758 0.0727,-0.59706 0.24247,-0.85038 l 0,0 0,0 c 0.14548,-0.25331 0.3637,-0.47041 0.60618,-0.63326 l 0,0 0,0 c 0.2667,-0.14473 0.55767,-0.27138 0.84863,-0.34375 l 0,0 0,0 c 0.24247,-0.0723 0.60619,-0.1267 1.06687,-0.16285 l 0,0 0,0 c 0.96988,-0.10858 1.69729,-0.23519 2.15799,-0.37994 l 0,0 0,0 c 0,-0.14474 0,-0.25329 0,-0.28949 l 0,0 0,0 c 0,-0.43424 -0.097,-0.7599 -0.33946,-0.94083 l 0,0 0,0 c -0.3152,-0.2352 -0.75167,-0.36185 -1.35783,-0.36185 l 0,0 0,0 c -0.58193,0 -0.99412,0.0904 -1.26085,0.27138 l 0,0 0,0 c -0.26672,0.18092 -0.46068,0.4885 -0.58192,0.94084 l 0,0 -1.18811,-0.14476 0,0 0,0 c 0.12123,-0.45231 0.29097,-0.81415 0.53343,-1.10366 l 0,0 0,0 c 0.24249,-0.27139 0.60619,-0.48851 1.04263,-0.63324 l 0,0 0,0 c 0.4607,-0.16283 1.01837,-0.23522 1.62455,-0.23522 l 0,0 0,0 c 0.60617,0 1.09111,0.0723 1.47906,0.19902 l 0,0 0,0 c 0.3637,0.12669 0.65467,0.28949 0.8244,0.48851 l 0,0 0,0 c 0.19397,0.18093 0.3152,0.43424 0.38795,0.74182 l 0,0 0,0 c 0.0242,0.18093 0.0485,0.50661 0.0485,0.9951 l 0,0 0,1.44743 0,0 0,0 c 0,0.99513 0.0242,1.64647 0.0727,1.91786 l 0,0 0,0 c 0.0728,0.27141 0.16974,0.5428 0.31522,0.77801 l 0,0 -1.26085,0 0,0 0,0 c -0.12123,-0.21712 -0.19396,-0.48851 -0.24246,-0.81418 z m -0.097,-2.40637 0,0 0,0 c -0.43645,0.16283 -1.09113,0.28949 -1.96401,0.41612 l 0,0 0,0 c -0.50918,0.0544 -0.84865,0.1267 -1.06686,0.21714 l 0,0 0,0 c -0.19399,0.0723 -0.33945,0.19901 -0.43645,0.34375 l 0,0 0,0 c -0.12123,0.16284 -0.16973,0.32568 -0.16973,0.52471 l 0,0 0,0 c 0,0.27139 0.12123,0.5066 0.33946,0.70563 l 0,0 0,0 c 0.24247,0.19902 0.60618,0.28947 1.06687,0.28947 l 0,0 0,0 c 0.46068,0 0.87289,-0.0905 1.23659,-0.27138 l 0,0 0,0 c 0.3637,-0.18095 0.63042,-0.43424 0.80015,-0.74182 l 0,0 0,0 c 0.12123,-0.23522 0.19398,-0.59706 0.19398,-1.08558 l 0,-0.39804 z" 20.2031 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.2032 + id="607" 20.2033 + inkscape:connector-curvature="0" /> 20.2034 + <path 20.2035 + d="m 165.03477,532.08859 0,0 0,-6.42299 1.06687,0 0,0.92272 0,0 0,0 c 0.53343,-0.70561 1.28509,-1.06748 2.27922,-1.06748 l 0,0 0,0 c 0.4122,0 0.80014,0.0723 1.16385,0.21712 l 0,0 0,0 c 0.33945,0.1267 0.60618,0.30759 0.80015,0.54278 l 0,0 0,0 c 0.16973,0.21714 0.26672,0.48851 0.33945,0.79611 l 0,0 0,0 c 0.0485,0.19902 0.0727,0.56087 0.0727,1.06748 l 0,0 0,3.94426 -1.1881,0 0,-3.90808 0,0 0,0 c 0,-0.43424 -0.0485,-0.778 -0.12123,-0.99513 l 0,0 0,0 c -0.097,-0.2171 -0.26673,-0.39803 -0.48495,-0.52468 l 0,0 0,0 c -0.24247,-0.12669 -0.50918,-0.19903 -0.84863,-0.19903 l 0,0 0,0 c -0.5092,0 -0.94565,0.14474 -1.3336,0.45233 l 0,0 0,0 c -0.3637,0.28949 -0.55768,0.85038 -0.55768,1.66455 l 0,0 0,3.51004 -1.1881,0 z" 20.2036 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.2037 + id="608" 20.2038 + inkscape:connector-curvature="0" /> 20.2039 + <path 20.2040 + d="m 172.3816,532.63136 0,0 1.1881,0.14475 0,0 0,0 c 0.0485,0.32569 0.16973,0.57897 0.4122,0.72373 l 0,0 0,0 c 0.29097,0.19902 0.70317,0.30758 1.21236,0.30758 l 0,0 0,0 c 0.55769,0 0.99412,-0.10857 1.30933,-0.30758 l 0,0 0,0 c 0.26672,-0.19902 0.48494,-0.48851 0.58194,-0.85038 l 0,0 0,0 c 0.0727,-0.2171 0.097,-0.68752 0.097,-1.41125 l 0,0 0,0 c -0.53343,0.57898 -1.16386,0.85038 -1.964,0.85038 l 0,0 0,0 c -0.96989,0 -1.72154,-0.30758 -2.25497,-0.97702 l 0,0 0,0 c -0.53344,-0.63327 -0.80015,-1.37507 -0.80015,-2.26162 l 0,0 0,0 c 0,-0.61516 0.12123,-1.19413 0.3637,-1.70074 l 0,0 0,0 c 0.24246,-0.52469 0.60618,-0.92275 1.06686,-1.21223 l 0,0 0,0 c 0.4607,-0.27138 1.01838,-0.41614 1.6488,-0.41614 l 0,0 0,0 c 0.82439,0 1.50331,0.30758 2.03674,0.92275 l 0,0 0,-0.77799 1.11537,0 0,5.53643 0,0 0,0 c 0,1.01319 -0.12124,1.73692 -0.33945,2.15305 l 0,0 0,0 c -0.21824,0.41615 -0.58194,0.74182 -1.06688,0.97702 l 0,0 0,0 c -0.46069,0.25331 -1.06687,0.36188 -1.77002,0.36188 l 0,0 0,0 c -0.84864,0 -1.55181,-0.16284 -2.06099,-0.50661 l 0,0 0,0 c -0.53345,-0.34378 -0.77592,-0.86846 -0.77592,-1.55601 z m 1.01837,-3.87188 0,0 0,0 c 0,0.85038 0.16973,1.46552 0.5577,1.82739 l 0,0 0,0 c 0.3637,0.39804 0.82438,0.57897 1.38206,0.57897 l 0,0 0,0 c 0.5577,0 1.01838,-0.18093 1.38208,-0.57897 l 0,0 0,0 c 0.36372,-0.36187 0.55768,-0.95893 0.55768,-1.79121 l 0,0 0,0 c 0,-0.77799 -0.19396,-1.37506 -0.58191,-1.7731 l 0,0 0,0 c -0.36372,-0.39804 -0.8244,-0.59706 -1.38208,-0.59706 l 0,0 0,0 c -0.53345,0 -0.99413,0.19902 -1.35783,0.57897 l 0,0 0,0 c -0.38797,0.39804 -0.5577,0.97702 -0.5577,1.75501 z" 20.2041 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.2042 + id="609" 20.2043 + inkscape:connector-curvature="0" /> 20.2044 + <path 20.2045 + d="m 184.86881,532.08859 0,0 0,-0.95894 0,0 0,0 c -0.55769,0.74182 -1.30935,1.10367 -2.25498,1.10367 l 0,0 0,0 c -0.4122,0 -0.80015,-0.0723 -1.16385,-0.21709 l 0,0 0,0 c -0.36371,-0.14476 -0.63043,-0.32569 -0.80015,-0.5609 l 0,0 0,0 c -0.16973,-0.21712 -0.31521,-0.48851 -0.38796,-0.81418 l 0,0 0,0 c -0.0485,-0.21713 -0.0727,-0.52471 -0.0727,-0.99512 l 0,0 0,-3.98043 1.21235,0 0,3.5643 0,0 0,0 c 0,0.56089 0.0242,0.95893 0.0728,1.15795 l 0,0 0,0 c 0.0727,0.2533 0.24247,0.48851 0.48493,0.65134 l 0,0 0,0 c 0.24247,0.16284 0.55769,0.23522 0.89715,0.23522 l 0,0 0,0 c 0.3637,0 0.70315,-0.0723 1.01837,-0.23522 l 0,0 0,0 c 0.31521,-0.18093 0.53343,-0.39804 0.65466,-0.66943 l 0,0 0,0 c 0.14548,-0.28949 0.21823,-0.70562 0.21823,-1.26651 l 0,0 0,-3.43765 1.1881,0 0,6.42299 -1.06686,0 z" 20.2046 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.2047 + id="610" 20.2048 + inkscape:connector-curvature="0" /> 20.2049 + <path 20.2050 + d="m 192.4581,531.27441 0,0 0,0 c -0.43644,0.36184 -0.87289,0.61516 -1.28508,0.75989 l 0,0 0,0 c -0.41221,0.1267 -0.87289,0.19902 -1.33359,0.19902 l 0,0 0,0 c -0.7759,0 -1.35783,-0.16283 -1.77003,-0.5066 l 0,0 0,0 c -0.43643,-0.36186 -0.63042,-0.81419 -0.63042,-1.33887 l 0,0 0,0 c 0,-0.30758 0.0727,-0.59706 0.21822,-0.85038 l 0,0 0,0 c 0.16973,-0.25331 0.38795,-0.47041 0.63043,-0.63326 l 0,0 0,0 c 0.24247,-0.14473 0.53343,-0.27138 0.84863,-0.34375 l 0,0 0,0 c 0.24247,-0.0723 0.58193,-0.1267 1.06688,-0.16285 l 0,0 0,0 c 0.96988,-0.10858 1.69728,-0.23519 2.15798,-0.37994 l 0,0 0,0 c 0,-0.14474 0,-0.25329 0,-0.28949 l 0,0 0,0 c 0,-0.43424 -0.12123,-0.7599 -0.33946,-0.94083 l 0,0 0,0 c -0.3152,-0.2352 -0.7759,-0.36185 -1.38208,-0.36185 l 0,0 0,0 c -0.55769,0 -0.96987,0.0904 -1.2366,0.27138 l 0,0 0,0 c -0.29095,0.18092 -0.48493,0.4885 -0.60617,0.94084 l 0,0 -1.16384,-0.14476 0,0 0,0 c 0.12123,-0.45231 0.29095,-0.81415 0.53341,-1.10366 l 0,0 0,0 c 0.24248,-0.27139 0.58193,-0.48851 1.04263,-0.63324 l 0,0 0,0 c 0.4607,-0.16283 0.99413,-0.23522 1.62455,-0.23522 l 0,0 0,0 c 0.60616,0 1.09111,0.0723 1.47906,0.19902 l 0,0 0,0 c 0.3637,0.12669 0.65467,0.28949 0.8244,0.48851 l 0,0 0,0 c 0.19398,0.18093 0.3152,0.43424 0.38795,0.74182 l 0,0 0,0 c 0.0242,0.18093 0.0485,0.50661 0.0485,0.9951 l 0,0 0,1.44743 0,0 0,0 c 0,0.99513 0.0243,1.64647 0.0727,1.91786 l 0,0 0,0 c 0.0485,0.27141 0.16973,0.5428 0.31522,0.77801 l 0,0 -1.26085,0 0,0 0,0 c -0.12123,-0.21712 -0.21822,-0.48851 -0.24247,-0.81418 z m -0.097,-2.40637 0,0 0,0 c -0.43645,0.16283 -1.09111,0.28949 -1.96401,0.41612 l 0,0 0,0 c -0.50918,0.0544 -0.84865,0.1267 -1.06686,0.21714 l 0,0 0,0 c -0.19399,0.0723 -0.3637,0.19901 -0.4607,0.34375 l 0,0 0,0 c -0.12124,0.16284 -0.16974,0.32568 -0.16974,0.52471 l 0,0 0,0 c 0,0.27139 0.12125,0.5066 0.36372,0.70563 l 0,0 0,0 c 0.24247,0.19902 0.58193,0.28947 1.06686,0.28947 l 0,0 0,0 c 0.4607,0 0.8729,-0.0905 1.2366,-0.27138 l 0,0 0,0 c 0.36372,-0.18095 0.63042,-0.43424 0.80015,-0.74182 l 0,0 0,0 c 0.12123,-0.23522 0.19398,-0.59706 0.19398,-1.08558 l 0,-0.39804 z" 20.2051 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.2052 + id="611" 20.2053 + inkscape:connector-curvature="0" /> 20.2054 + <path 20.2055 + d="m 195.19801,532.63136 0,0 1.1881,0.14475 0,0 0,0 c 0.0485,0.32569 0.16973,0.57897 0.4122,0.72373 l 0,0 0,0 c 0.29097,0.19902 0.70317,0.30758 1.21236,0.30758 l 0,0 0,0 c 0.55767,0 0.99412,-0.10857 1.28508,-0.30758 l 0,0 0,0 c 0.3152,-0.19902 0.50919,-0.48851 0.63042,-0.85038 l 0,0 0,0 c 0.0485,-0.2171 0.097,-0.68752 0.0727,-1.41125 l 0,0 0,0 c -0.50918,0.57898 -1.16386,0.85038 -1.96401,0.85038 l 0,0 0,0 c -0.96988,0 -1.72153,-0.30758 -2.25496,-0.97702 l 0,0 0,0 c -0.55769,-0.63327 -0.8244,-1.37507 -0.8244,-2.26162 l 0,0 0,0 c 0,-0.61516 0.12123,-1.19413 0.38795,-1.70074 l 0,0 0,0 c 0.24246,-0.52469 0.58193,-0.92275 1.06686,-1.21223 l 0,0 0,0 c 0.46068,-0.27138 1.01838,-0.41614 1.62455,-0.41614 l 0,0 0,0 c 0.84865,0 1.55181,0.30758 2.08524,0.92275 l 0,0 0,-0.77799 1.09112,0 0,5.53643 0,0 0,0 c 0,1.01319 -0.12124,1.73692 -0.33947,2.15305 l 0,0 0,0 c -0.21822,0.41615 -0.55768,0.74182 -1.04261,0.97702 l 0,0 0,0 c -0.48494,0.25331 -1.09112,0.36188 -1.81852,0.36188 l 0,0 0,0 c -0.84864,0 -1.52756,-0.16284 -2.03676,-0.50661 l 0,0 0,0 c -0.53343,-0.34378 -0.7759,-0.86846 -0.7759,-1.55601 z m 1.01837,-3.87188 0,0 0,0 c 0,0.85038 0.16973,1.46552 0.53345,1.82739 l 0,0 0,0 c 0.38795,0.39804 0.84863,0.57897 1.40631,0.57897 l 0,0 0,0 c 0.55768,0 1.01838,-0.18093 1.38208,-0.57897 l 0,0 0,0 c 0.38795,-0.36187 0.58193,-0.95893 0.58193,-1.79121 l 0,0 0,0 c 0,-0.77799 -0.19398,-1.37506 -0.58193,-1.7731 l 0,0 0,0 c -0.38795,-0.39804 -0.84863,-0.59706 -1.40633,-0.59706 l 0,0 0,0 c -0.53343,0 -0.99411,0.19902 -1.35783,0.57897 l 0,0 0,0 c -0.38795,0.39804 -0.55768,0.97702 -0.55768,1.75501 z" 20.2056 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.2057 + id="612" 20.2058 + inkscape:connector-curvature="0" /> 20.2059 + <path 20.2060 + d="m 207.85493,530.02598 0,0 1.26085,0.14475 0,0 0,0 c -0.19398,0.63327 -0.55768,1.13985 -1.09111,1.51981 l 0,0 0,0 c -0.50919,0.36186 -1.1881,0.54278 -1.98827,0.54278 l 0,0 0,0 c -1.04261,0 -1.86701,-0.28949 -2.47317,-0.88655 l 0,0 0,0 c -0.63043,-0.57897 -0.9214,-1.37506 -0.9214,-2.40636 l 0,0 0,0 c 0,-1.08557 0.31522,-1.91785 0.9214,-2.51491 l 0,0 0,0 c 0.60616,-0.59708 1.40631,-0.90466 2.40044,-0.90466 l 0,0 0,0 c 0.92138,0 1.67305,0.28949 2.27921,0.88655 l 0,0 0,0 c 0.60618,0.57897 0.89715,1.39316 0.89715,2.46065 l 0,0 0,0 c 0,0.0723 0,0.16283 0,0.28949 l 0,0 -5.2616,0 0,0 0,0 c 0.0485,0.70563 0.26673,1.23032 0.67891,1.61027 l 0,0 0,0 c 0.38797,0.36185 0.8729,0.56088 1.47906,0.56088 l 0,0 0,0 c 0.4122,0 0.80017,-0.10858 1.11537,-0.32566 l 0,0 0,0 c 0.29096,-0.19902 0.53345,-0.5428 0.70316,-0.97704 z m -3.90375,-1.755 0,0 3.928,0 0,0 0,0 c -0.0485,-0.5428 -0.21821,-0.95894 -0.43645,-1.23033 l 0,0 0,0 c -0.38794,-0.41613 -0.87289,-0.61515 -1.47906,-0.61515 l 0,0 0,0 c -0.53343,0 -1.01836,0.16282 -1.38208,0.4885 l 0,0 0,0 c -0.38795,0.34377 -0.58193,0.79609 -0.63041,1.35698 z" 20.2061 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.2062 + id="613" 20.2063 + inkscape:connector-curvature="0" /> 20.2064 + <path 20.2065 + d="m 150.00164,544.35487 0,0 0,-8.84744 4.34022,0 0,0 0,0 c 0.87289,0 1.52755,0.0905 1.98825,0.23521 l 0,0 0,0 c 0.46068,0.16283 0.8244,0.45232 1.09111,0.83225 l 0,0 0,0 c 0.26672,0.39807 0.4122,0.85039 0.4122,1.3389 l 0,0 0,0 c 0,0.63326 -0.24248,1.15795 -0.67891,1.59218 l 0,0 0,0 c -0.4607,0.43423 -1.16387,0.70562 -2.08525,0.81417 l 0,0 0,0 c 0.33945,0.16285 0.60618,0.30758 0.77592,0.45234 l 0,0 0,0 c 0.38793,0.30758 0.7274,0.70561 1.06685,1.17603 l 0,0 1.72154,2.40636 -1.64879,0 -1.28509,-1.84548 0,0 0,0 c -0.38796,-0.52468 -0.70316,-0.94083 -0.94564,-1.21223 l 0,0 0,0 c -0.24247,-0.28949 -0.46068,-0.48851 -0.65467,-0.59707 l 0,0 0,0 c -0.19396,-0.10858 -0.38795,-0.199 -0.58193,-0.23521 l 0,0 0,0 c -0.16973,-0.0362 -0.38795,-0.0362 -0.7274,-0.0362 l 0,0 -1.47908,0 0,3.92617 -1.30933,0 z m 1.30933,-4.93938 0,0 2.76416,0 0,0 0,0 c 0.58193,0 1.04263,-0.0723 1.38208,-0.18092 l 0,0 0,0 c 0.33947,-0.10858 0.60618,-0.28948 0.7759,-0.5247 l 0,0 0,0 c 0.16973,-0.25329 0.24248,-0.5066 0.24248,-0.79608 l 0,0 0,0 c 0,-0.41615 -0.14548,-0.7599 -0.48495,-1.03131 l 0,0 0,0 c -0.33944,-0.27139 -0.87288,-0.39803 -1.60029,-0.39803 l 0,0 -3.07938,0 0,2.93104 z" 20.2066 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.2067 + id="614" 20.2068 + inkscape:connector-curvature="0" /> 20.2069 + <path 20.2070 + d="m 164.35586,544.35487 0,0 0,-0.94084 0,0 0,0 c -0.55768,0.72373 -1.30935,1.08559 -2.25496,1.08559 l 0,0 0,0 c -0.41222,0 -0.8244,-0.0723 -1.18812,-0.21711 l 0,0 0,0 c -0.3637,-0.14475 -0.63041,-0.32568 -0.80015,-0.5428 l 0,0 0,0 c -0.16971,-0.21711 -0.29096,-0.4885 -0.3637,-0.81419 l 0,0 0,0 c -0.0485,-0.19902 -0.0727,-0.54278 -0.0727,-1.01321 l 0,0 0,-3.98043 1.18809,0 0,3.5643 0,0 0,0 c 0,0.57899 0.0242,0.95893 0.0727,1.15796 l 0,0 0,0 c 0.0727,0.28949 0.24247,0.5066 0.48495,0.66944 l 0,0 0,0 c 0.24245,0.16283 0.55768,0.2533 0.92137,0.2533 l 0,0 0,0 c 0.36371,0 0.70316,-0.0905 1.01838,-0.2533 l 0,0 0,0 c 0.31521,-0.18093 0.53343,-0.39806 0.67891,-0.68754 l 0,0 0,0 c 0.12125,-0.28949 0.19398,-0.70562 0.19398,-1.24841 l 0,0 0,-3.45575 1.16387,0 0,6.42299 -1.04263,0 z" 20.2071 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.2072 + id="615" 20.2073 + inkscape:connector-curvature="0" /> 20.2074 + <path 20.2075 + d="m 167.31398,544.35487 0,0 0,-6.42299 1.06688,0 0,0.92275 0,0 0,0 c 0.53344,-0.70564 1.26085,-1.0675 2.23072,-1.0675 l 0,0 0,0 c 0.41219,0 0.82439,0.0723 1.16386,0.21712 l 0,0 0,0 c 0.3637,0.12669 0.63041,0.32567 0.82438,0.5428 l 0,0 0,0 c 0.16973,0.23519 0.29097,0.4885 0.36372,0.79608 l 0,0 0,0 c 0.0485,0.2171 0.0728,0.56088 0.0728,1.06748 l 0,0 0,3.94426 -1.21237,0 0,-3.90806 0,0 0,0 c 0,-0.43424 -0.0485,-0.75993 -0.14546,-0.99512 l 0,0 0,0 c -0.0728,-0.21712 -0.24249,-0.39804 -0.48495,-0.52469 l 0,0 0,0 c -0.24247,-0.1267 -0.53344,-0.19904 -0.8244,-0.19904 l 0,0 0,0 c -0.50918,0 -0.94563,0.16284 -1.33358,0.45234 l 0,0 0,0 c -0.33947,0.28948 -0.53345,0.85036 -0.53345,1.66455 l 0,0 0,3.51002 -1.1881,0 z" 20.2076 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.2077 + id="616" 20.2078 + inkscape:connector-curvature="0" /> 20.2079 + <path 20.2080 + d="m 177.49771,543.39594 0,0 0.16973,0.95893 0,0 0,0 c -0.33945,0.0544 -0.63041,0.0905 -0.89713,0.0905 l 0,0 0,0 c -0.4122,0 -0.75166,-0.0542 -0.99411,-0.18091 l 0,0 0,0 c -0.24249,-0.1267 -0.41222,-0.28949 -0.5092,-0.50661 l 0,0 0,0 c -0.097,-0.19903 -0.14549,-0.61516 -0.14549,-1.2846 l 0,0 0,-3.69097 -0.89713,0 0,-0.85036 0.89713,0 0,-1.57408 1.1881,-0.65135 0,2.22543 1.1881,0 0,0.85036 -1.1881,0 0,3.76335 0,0 0,0 c 0,0.30757 0.0242,0.50659 0.0728,0.59706 l 0,0 0,0 c 0.0242,0.0905 0.097,0.16285 0.16973,0.21711 l 0,0 0,0 c 0.097,0.0362 0.24247,0.0723 0.4122,0.0723 l 0,0 0,0 c 0.14549,0 0.3152,-0.0181 0.53342,-0.0362 z" 20.2081 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.2082 + id="617" 20.2083 + inkscape:connector-curvature="0" /> 20.2084 + <path 20.2085 + d="m 178.68582,536.73774 0,-1.23031 1.1881,0 0,1.23031 -1.1881,0 z m 0,7.61713 0,-6.42299 1.1881,0 0,6.42299 -1.1881,0 z" 20.2086 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.2087 + id="618" 20.2088 + inkscape:connector-curvature="0" /> 20.2089 + <path 20.2090 + d="m 181.71668,544.35487 0,0 0,-6.42299 1.06688,0 0,0.90464 0,0 0,0 c 0.21822,-0.30758 0.50918,-0.56087 0.89713,-0.75991 l 0,0 0,0 c 0.36372,-0.18093 0.7759,-0.28948 1.26085,-0.28948 l 0,0 0,0 c 0.53343,0 0.94563,0.10858 1.2851,0.30757 l 0,0 0,0 c 0.33945,0.19905 0.58193,0.47044 0.72741,0.81419 l 0,0 0,0 c 0.55767,-0.74179 1.28508,-1.12176 2.15798,-1.12176 l 0,0 0,0 c 0.70315,0 1.26085,0.18095 1.64878,0.5247 l 0,0 0,0 c 0.36371,0.36184 0.55768,0.90464 0.55768,1.64646 l 0,0 0,4.39658 -1.1881,0 0,-4.03473 0,0 0,0 c 0,-0.43421 -0.0485,-0.75991 -0.12123,-0.94083 l 0,0 0,0 c -0.097,-0.19901 -0.21822,-0.34376 -0.43645,-0.47042 l 0,0 0,0 c -0.19398,-0.10858 -0.43645,-0.18093 -0.7274,-0.18093 l 0,0 0,0 c -0.4607,0 -0.87289,0.16284 -1.21234,0.45234 l 0,0 0,0 c -0.33947,0.30756 -0.48495,0.77799 -0.48495,1.44742 l 0,0 0,3.72715 -1.21235,0 0,-4.16136 0,0 0,0 c 0,-0.48852 -0.097,-0.85038 -0.29097,-1.10369 l 0,0 0,0 c -0.19396,-0.23519 -0.53343,-0.36186 -0.96988,-0.36186 l 0,0 0,0 c -0.33945,0 -0.65466,0.0905 -0.94563,0.2533 l 0,0 0,0 c -0.29096,0.16285 -0.48495,0.39805 -0.63043,0.70562 l 0,0 0,0 c -0.12123,0.30758 -0.19397,0.75993 -0.19397,1.3389 l 0,0 0,3.32909 -1.18811,0 z" 20.2091 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.2092 + id="619" 20.2093 + inkscape:connector-curvature="0" /> 20.2094 + <path 20.2095 + d="m 197.96217,542.29229 0,0 1.26085,0.14473 0,0 0,0 c -0.21823,0.65135 -0.58193,1.15796 -1.09113,1.51981 l 0,0 0,0 c -0.53343,0.36185 -1.21235,0.54279 -2.03674,0.54279 l 0,0 0,0 c -1.04262,0 -1.84277,-0.28948 -2.4732,-0.86846 l 0,0 0,0 c -0.60616,-0.57898 -0.89713,-1.37507 -0.89713,-2.42447 l 0,0 0,0 c 0,-1.08557 0.29097,-1.91784 0.92138,-2.51491 l 0,0 0,0 c 0.60618,-0.59708 1.38208,-0.90465 2.37621,-0.90465 l 0,0 0,0 c 0.94563,0 1.72153,0.28948 2.32771,0.88654 l 0,0 0,0 c 0.60617,0.579 0.89713,1.41128 0.89713,2.46065 l 0,0 0,0 c 0,0.0723 0,0.16284 0,0.2895 l 0,0 -5.28583,0 0,0 0,0 c 0.0485,0.70562 0.26671,1.24842 0.63043,1.62836 l 0,0 0,0 c 0.41218,0.37994 0.89713,0.56089 1.5033,0.56089 l 0,0 0,0 c 0.43644,0 0.82439,-0.10858 1.13961,-0.30757 l 0,0 0,0 c 0.29097,-0.21713 0.55768,-0.56089 0.72741,-1.01321 z m -3.92802,-1.75503 0,0 3.95227,0 0,0 0,0 c -0.0485,-0.5428 -0.21823,-0.95893 -0.46069,-1.23031 l 0,0 0,0 c -0.38795,-0.41615 -0.8729,-0.61517 -1.50332,-0.61517 l 0,0 0,0 c -0.55768,0 -1.01838,0.16285 -1.38208,0.48852 l 0,0 0,0 c -0.3637,0.34376 -0.55768,0.79607 -0.60618,1.35696 z" 20.2096 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.2097 + id="620" 20.2098 + inkscape:connector-curvature="0" /> 20.2099 + </g> 20.2100 + <g 20.2101 + id="g5041" 20.2102 + transform="translate(0.42735043,3)"> 20.2103 + <path 20.2104 + d="m 149.92891,617.28829 0,-8.86554 1.28508,0 0,3.65477 5.09187,0 0,-3.65477 1.30933,0 0,8.86554 -1.30933,0 0,-4.16138 -5.09187,0 0,4.16138 -1.28508,0 z" 20.2105 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.2106 + id="621" 20.2107 + inkscape:connector-curvature="0" /> 20.2108 + <path 20.2109 + d="m 164.23462,616.49218 0,0 0,0 c -0.43644,0.34378 -0.87289,0.59709 -1.28509,0.72373 l 0,0 0,0 c -0.4122,0.14475 -0.84863,0.21711 -1.33358,0.21711 l 0,0 0,0 c -0.7759,0 -1.38208,-0.16282 -1.79428,-0.5066 l 0,0 0,0 c -0.4122,-0.34375 -0.63042,-0.79608 -0.63042,-1.33888 l 0,0 0,0 c 0,-0.30759 0.0728,-0.59706 0.24247,-0.85036 l 0,0 0,0 c 0.14548,-0.25329 0.3637,-0.45231 0.60618,-0.61517 l 0,0 0,0 c 0.26672,-0.14473 0.55768,-0.27138 0.87288,-0.36184 l 0,0 0,0 c 0.24248,-0.0544 0.60618,-0.10858 1.06688,-0.16285 l 0,0 0,0 c 0.99412,-0.0905 1.69728,-0.2171 2.15798,-0.36186 l 0,0 0,0 c 0,-0.16284 0,-0.25328 0,-0.28948 l 0,0 0,0 c 0,-0.45231 -0.097,-0.75991 -0.33946,-0.94084 l 0,0 0,0 c -0.29097,-0.2352 -0.75167,-0.36185 -1.35783,-0.36185 l 0,0 0,0 c -0.58194,0 -0.99414,0.0905 -1.26085,0.2714 l 0,0 0,0 c -0.26672,0.18091 -0.48493,0.48849 -0.60617,0.94082 l 0,0 -1.18811,-0.14474 0,0 0,0 c 0.12123,-0.45232 0.29097,-0.81416 0.53345,-1.10367 l 0,0 0,0 c 0.24246,-0.27138 0.60616,-0.48851 1.06686,-0.65133 l 0,0 0,0 c 0.46068,-0.14476 1.01838,-0.21713 1.62455,-0.21713 l 0,0 0,0 c 0.60616,0 1.09111,0.0723 1.47906,0.19902 l 0,0 0,0 c 0.38795,0.1267 0.63043,0.28949 0.80015,0.48851 l 0,0 0,0 c 0.19397,0.18093 0.31521,0.43423 0.38795,0.7418 l 0,0 0,0 c 0.0485,0.18095 0.0485,0.50663 0.0485,0.99513 l 0,0 0,1.44743 0,0 0,0 c 0,0.99513 0.0242,1.64646 0.097,1.89977 l 0,0 0,0 c 0.0485,0.27137 0.14548,0.54277 0.29097,0.77799 l 0,0 -1.2366,0 0,0 0,0 c -0.12123,-0.21711 -0.19398,-0.4885 -0.24247,-0.79611 z m -0.097,-2.40635 0,0 0,0 c -0.43645,0.16284 -1.09113,0.28949 -1.96401,0.41613 l 0,0 0,0 c -0.5092,0.0544 -0.84865,0.10858 -1.06687,0.19902 l 0,0 0,0 c -0.19398,0.0723 -0.36369,0.19905 -0.46069,0.34378 l 0,0 0,0 c -0.12124,0.16283 -0.16972,0.32568 -0.16972,0.5247 l 0,0 0,0 c 0,0.28949 0.12123,0.52469 0.3637,0.72373 l 0,0 0,0 c 0.24247,0.19899 0.60616,0.28948 1.06686,0.28948 l 0,0 0,0 c 0.46069,0 0.8729,-0.0905 1.2366,-0.2714 l 0,0 0,0 c 0.3637,-0.18093 0.63042,-0.43423 0.80015,-0.7599 l 0,0 0,0 c 0.12123,-0.23521 0.19398,-0.61517 0.19398,-1.06748 l 0,-0.39806 z" 20.2110 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.2111 + id="622" 20.2112 + inkscape:connector-curvature="0" /> 20.2113 + <path 20.2114 + d="m 167.19275,617.28829 0,0 0,-6.40489 1.09111,0 0,0.977 0,0 0,0 c 0.26672,-0.45232 0.53344,-0.7599 0.75167,-0.90463 l 0,0 0,0 c 0.21822,-0.14476 0.48493,-0.21713 0.75165,-0.21713 l 0,0 0,0 c 0.4122,0 0.80015,0.10858 1.23659,0.34375 l 0,0 -0.43644,1.01321 0,0 0,0 c -0.2667,-0.16282 -0.55769,-0.2352 -0.84864,-0.2352 l 0,0 0,0 c -0.26671,0 -0.50919,0.0723 -0.70316,0.21712 l 0,0 0,0 c -0.19398,0.14474 -0.33947,0.34377 -0.43645,0.59708 l 0,0 0,0 c -0.12123,0.37995 -0.19398,0.81416 -0.19398,1.2665 l 0,0 0,3.34719 -1.21235,0 z" 20.2115 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.2116 + id="623" 20.2117 + inkscape:connector-curvature="0" /> 20.2118 + <path 20.2119 + d="m 176.35811,617.28829 0,0 0,-0.81419 0,0 0,0 c -0.46068,0.65135 -1.11536,0.95892 -1.98824,0.95892 l 0,0 0,0 c -0.55769,0 -1.09112,-0.14473 -1.57607,-0.41613 l 0,0 0,0 c -0.46068,-0.28949 -0.82439,-0.68753 -1.09111,-1.19414 l 0,0 0,0 c -0.26672,-0.50659 -0.38795,-1.08557 -0.38795,-1.71883 l 0,0 0,0 c 0,-0.65133 0.12123,-1.2303 0.33947,-1.755 l 0,0 0,0 c 0.24246,-0.5066 0.60616,-0.92275 1.06684,-1.19416 l 0,0 0,0 c 0.48495,-0.27136 1.01838,-0.41612 1.60032,-0.41612 l 0,0 0,0 c 0.41219,0 0.80014,0.0723 1.13959,0.23521 l 0,0 0,0 c 0.33947,0.18091 0.60618,0.37996 0.8244,0.65134 l 0,0 0,-3.20244 1.16386,0 0,8.86554 -1.09111,0 z m -3.80677,-3.18437 0,0 0,0 c 0,0.79611 0.19396,1.41125 0.58193,1.8274 l 0,0 0,0 c 0.3637,0.39804 0.8244,0.61515 1.35783,0.61515 l 0,0 0,0 c 0.50918,0 0.96986,-0.19902 1.33358,-0.59706 l 0,0 0,0 c 0.3637,-0.37995 0.55768,-0.97701 0.55768,-1.75503 l 0,0 0,0 c 0,-0.88655 -0.19398,-1.51978 -0.55768,-1.93593 l 0,0 0,0 c -0.38795,-0.41613 -0.84865,-0.61516 -1.40631,-0.61516 l 0,0 0,0 c -0.53345,0 -0.9699,0.19903 -1.3336,0.59707 l 0,0 0,0 c -0.36372,0.37995 -0.53343,1.01321 -0.53343,1.86356 z" 20.2120 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.2121 + id="624" 20.2122 + inkscape:connector-curvature="0" /> 20.2123 + <path 20.2124 + d="m 180.67408,617.28829 0,0 -2.18222,-6.40489 1.23658,0 1.13961,3.70905 0.4122,1.35696 0,0 0,0 c 0.0242,-0.0723 0.14548,-0.50661 0.38795,-1.32079 l 0,0 1.09111,-3.74522 1.2366,0 1.06686,3.72713 0.36372,1.21222 0.41218,-1.2303 1.21236,-3.70905 1.1881,0 -2.23073,6.40489 -1.26083,0 -1.13961,-3.8357 -0.26672,-1.08558 -1.40633,4.92128 -1.26083,0 z" 20.2125 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.2126 + id="625" 20.2127 + inkscape:connector-curvature="0" /> 20.2128 + <path 20.2129 + d="m 193.86443,616.49218 0,0 0,0 c -0.43644,0.34378 -0.87289,0.59709 -1.28509,0.72373 l 0,0 0,0 c -0.4122,0.14475 -0.87288,0.21711 -1.33358,0.21711 l 0,0 0,0 c -0.7759,0 -1.38208,-0.16282 -1.79428,-0.5066 l 0,0 0,0 c -0.43645,-0.34375 -0.63042,-0.79608 -0.63042,-1.33888 l 0,0 0,0 c 0,-0.30759 0.0727,-0.59706 0.21822,-0.85036 l 0,0 0,0 c 0.16973,-0.25329 0.38795,-0.45231 0.63043,-0.61517 l 0,0 0,0 c 0.2667,-0.14473 0.55767,-0.27138 0.87288,-0.36184 l 0,0 0,0 c 0.24247,-0.0544 0.58193,-0.10858 1.06687,-0.16285 l 0,0 0,0 c 0.96988,-0.0905 1.69729,-0.2171 2.15799,-0.36186 l 0,0 0,0 c 0,-0.16284 0,-0.25328 0,-0.28948 l 0,0 0,0 c 0,-0.45231 -0.12125,-0.75991 -0.33946,-0.94084 l 0,0 0,0 c -0.31522,-0.2352 -0.7759,-0.36185 -1.38208,-0.36185 l 0,0 0,0 c -0.55769,0 -0.96989,0.0905 -1.2366,0.2714 l 0,0 0,0 c -0.29097,0.18091 -0.48493,0.48849 -0.60617,0.94082 l 0,0 -1.18811,-0.14474 0,0 0,0 c 0.12123,-0.45232 0.29097,-0.81416 0.53343,-1.10367 l 0,0 0,0 c 0.24248,-0.27138 0.60618,-0.48851 1.06687,-0.65133 l 0,0 0,0 c 0.46069,-0.14476 0.99413,-0.21713 1.62456,-0.21713 l 0,0 0,0 c 0.60616,0 1.09111,0.0723 1.47906,0.19902 l 0,0 0,0 c 0.3637,0.1267 0.65467,0.28949 0.80015,0.48851 l 0,0 0,0 c 0.19397,0.18093 0.3152,0.43423 0.38795,0.7418 l 0,0 0,0 c 0.0242,0.18095 0.0485,0.50663 0.0485,0.99513 l 0,0 0,1.44743 0,0 0,0 c 0,0.99513 0.0242,1.64646 0.0727,1.89977 l 0,0 0,0 c 0.0485,0.27137 0.16973,0.54277 0.31522,0.77799 l 0,0 -1.2366,0 0,0 0,0 c -0.12123,-0.21711 -0.21822,-0.4885 -0.24247,-0.79611 z m -0.097,-2.40635 0,0 0,0 c -0.43645,0.16284 -1.09113,0.28949 -1.96401,0.41613 l 0,0 0,0 c -0.5092,0.0544 -0.84865,0.10858 -1.06688,0.19902 l 0,0 0,0 c -0.19397,0.0723 -0.36368,0.19905 -0.46068,0.34378 l 0,0 0,0 c -0.12124,0.16283 -0.16974,0.32568 -0.16974,0.5247 l 0,0 0,0 c 0,0.28949 0.12124,0.52469 0.36372,0.72373 l 0,0 0,0 c 0.24247,0.19899 0.60616,0.28948 1.06686,0.28948 l 0,0 0,0 c 0.46069,0 0.8729,-0.0905 1.23658,-0.2714 l 0,0 0,0 c 0.36372,-0.18093 0.63044,-0.43423 0.80017,-0.7599 l 0,0 0,0 c 0.12123,-0.23521 0.19398,-0.61517 0.19398,-1.06748 l 0,-0.39806 z" 20.2130 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.2131 + id="626" 20.2132 + inkscape:connector-curvature="0" /> 20.2133 + <path 20.2134 + d="m 196.82256,617.28829 0,0 0,-6.40489 1.09111,0 0,0.977 0,0 0,0 c 0.26672,-0.45232 0.53344,-0.7599 0.75167,-0.90463 l 0,0 0,0 c 0.24247,-0.14476 0.50918,-0.21713 0.7759,-0.21713 l 0,0 0,0 c 0.4122,0 0.8244,0.10858 1.21234,0.34375 l 0,0 -0.38794,1.01321 0,0 0,0 c -0.29097,-0.16282 -0.58194,-0.2352 -0.8729,-0.2352 l 0,0 0,0 c -0.26672,0 -0.50918,0.0723 -0.7274,0.21712 l 0,0 0,0 c -0.19398,0.14474 -0.33947,0.34377 -0.43645,0.59708 l 0,0 0,0 c -0.14548,0.37995 -0.19398,0.81416 -0.19398,1.2665 l 0,0 0,3.34719 -1.21235,0 z" 20.2135 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.2136 + id="627" 20.2137 + inkscape:connector-curvature="0" /> 20.2138 + <path 20.2139 + d="m 206.25464,615.22569 0,0 1.23659,0.1267 0,0 0,0 c -0.19398,0.66943 -0.55768,1.17603 -1.06686,1.5379 l 0,0 0,0 c -0.53345,0.36186 -1.21236,0.54277 -2.03674,0.54277 l 0,0 0,0 c -1.04264,0 -1.86703,-0.28948 -2.4732,-0.86844 l 0,0 0,0 c -0.63043,-0.57897 -0.9214,-1.39316 -0.9214,-2.40637 l 0,0 0,0 c 0,-1.08558 0.31522,-1.93595 0.9214,-2.53301 l 0,0 0,0 c 0.60617,-0.59707 1.40631,-0.88656 2.40045,-0.88656 l 0,0 0,0 c 0.94563,0 1.72152,0.28949 2.30346,0.86846 l 0,0 0,0 c 0.60618,0.59706 0.89714,1.41125 0.89714,2.47873 l 0,0 0,0 c 0,0.0544 0,0.16284 0,0.28949 l 0,0 -5.28585,0 0,0 0,0 c 0.0485,0.68754 0.26672,1.23034 0.67893,1.61029 l 0,0 0,0 c 0.38793,0.36184 0.87288,0.56086 1.47907,0.56086 l 0,0 0,0 c 0.43643,0 0.82438,-0.10858 1.13959,-0.32565 l 0,0 0,0 c 0.31522,-0.19904 0.55768,-0.5428 0.72742,-0.99513 z m -3.95226,-1.75501 0,0 3.97651,0 0,0 0,0 c -0.0485,-0.5247 -0.21824,-0.94084 -0.4607,-1.21223 l 0,0 0,0 c -0.38795,-0.41613 -0.87288,-0.63326 -1.50331,-0.63326 l 0,0 0,0 c -0.53344,0 -1.01837,0.18093 -1.38208,0.50661 l 0,0 0,0 c -0.38795,0.34375 -0.58194,0.77799 -0.63042,1.33888 z" 20.2140 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.2141 + id="628" 20.2142 + inkscape:connector-curvature="0" /> 20.2143 + </g> 20.2144 + <path 20.2145 + d="m 275.43127,419.35698 0,0 0,0 c 0,-0.85037 0.19396,-1.51981 0.58193,-2.09878 l 0,0 0,0 c 0.38795,-0.56087 0.89713,-0.85037 1.5518,-0.85037 l 0,0 0,0 c 0.72741,0 1.28509,0.27139 1.67304,0.79609 l 0,0 0,0 c 0.4122,0.50661 0.60617,1.21222 0.60617,2.15306 l 0,0 0,0 c 0,0.94083 -0.19397,1.70073 -0.60617,2.24353 l 0,0 0,0 c -0.38795,0.52468 -0.94563,0.79608 -1.67304,0.79608 l 0,0 0,0 c -0.65467,0 -1.1881,-0.2714 -1.57605,-0.85037 l 0,0 0,0 c -0.36372,-0.56088 -0.55768,-1.30267 -0.55768,-2.18924 z m 0.75165,0 0,0 0,0 c 0,0.66943 0.12123,1.21223 0.36369,1.66456 l 0,0 0,0 c 0.24249,0.45231 0.58194,0.66943 1.01839,0.66943 l 0,0 0,0 c 0.50918,0 0.87289,-0.19902 1.11536,-0.61516 l 0,0 0,0 c 0.26672,-0.41614 0.38795,-0.97702 0.38795,-1.71883 l 0,0 0,0 c 0,-1.48362 -0.50918,-2.22544 -1.50331,-2.22544 l 0,0 0,0 c -0.43645,0 -0.7759,0.19903 -1.01839,0.59707 l 0,0 0,0 c -0.24246,0.39804 -0.36369,0.94084 -0.36369,1.62837 z" 20.2146 + style="fill:#008066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.2147 + id="path4926" 20.2148 + inkscape:connector-curvature="0" /> 20.2149 + <path 20.2150 + d="m 281.32327,422.07092 0,0 0,1.89976 -0.70317,0 0,-5.8983 0.70317,0 0,0.34376 0,0 0,0 C 281.56575,418.14474 281.88095,418 282.26892,418 l 0,0 0,0 c 0.53343,0 0.96988,0.18094 1.28508,0.5428 l 0,0 0,0 c 0.31521,0.37996 0.4607,0.92273 0.4607,1.64646 l 0,0 0,0 c 0,0.65135 -0.14549,1.17603 -0.4607,1.57407 l 0,0 0,0 c -0.3152,0.41615 -0.7759,0.61517 -1.35783,0.61517 l 0,0 0,0 c -0.16974,0 -0.33945,-0.0181 -0.53343,-0.0905 l 0,0 0,0 c -0.16974,-0.0542 -0.29097,-0.14476 -0.33947,-0.21712 z m 0,-3.09389 0,0 0,2.47872 0,0 0,0 c 0.0242,0.0723 0.12125,0.12669 0.26673,0.19903 l 0,0 0,0 c 0.14549,0.0542 0.26672,0.0905 0.41218,0.0905 l 0,0 0,0 c 0.84865,0 1.2851,-0.52471 1.2851,-1.5741 l 0,0 0,0 c 0,-0.54278 -0.097,-0.94084 -0.3152,-1.17603 l 0,0 0,0 c -0.19398,-0.25331 -0.5092,-0.37995 -0.9699,-0.37995 l 0,0 0,0 c -0.097,0 -0.21821,0.0361 -0.36369,0.10858 l 0,0 0,0 c -0.12124,0.0723 -0.24247,0.16284 -0.31522,0.25332 z" 20.2151 + style="fill:#008066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.2152 + id="path4928" 20.2153 + inkscape:connector-curvature="0" /> 20.2154 + <path 20.2155 + d="m 287.9912,420.26163 0,0 -2.81264,0 0,0 0,0 c 0,0.4885 0.14547,0.86847 0.38793,1.13986 l 0,0 0,0 c 0.21824,0.23519 0.5092,0.34376 0.84865,0.34376 l 0,0 0,0 c 0.38795,0 0.72742,-0.12669 0.99413,-0.37996 l 0,0 0.29097,0.5428 0,0 0,0 c -0.12124,0.1267 -0.26672,0.2171 -0.50918,0.30759 l 0,0 0,0 c -0.26674,0.10857 -0.58194,0.16282 -0.9214,0.16282 l 0,0 0,0 c -0.48493,0 -0.89713,-0.18093 -1.2366,-0.5428 l 0,0 0,0 c -0.3637,-0.39803 -0.55766,-0.92272 -0.55766,-1.61027 l 0,0 0,0 c 0,-0.68753 0.19396,-1.2484 0.58191,-1.68263 l 0,0 0,0 c 0.33947,-0.36186 0.75167,-0.5428 1.2366,-0.5428 l 0,0 0,0 c 0.55768,0 0.99413,0.16285 1.30933,0.48852 l 0,0 0,0 c 0.29098,0.32566 0.43645,0.7599 0.43645,1.30269 l 0,0 0,0 c 0,0.18093 0,0.32569 -0.0485,0.47042 z m -1.67304,-1.64645 0,0 0,0 c -0.31522,0 -0.55768,0.10857 -0.77592,0.32566 l 0,0 0,0 c -0.19396,0.19902 -0.3152,0.47043 -0.33945,0.75991 l 0,0 2.15798,0 0,0 0,0 c 0,-0.28948 -0.097,-0.5428 -0.26671,-0.75991 l 0,0 0,0 c -0.19397,-0.21713 -0.43644,-0.32566 -0.7759,-0.32566 z" 20.2156 + style="fill:#008066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.2157 + id="path4930" 20.2158 + inkscape:connector-curvature="0" /> 20.2159 + <path 20.2160 + d="m 291.14331,422.30613 0,0 0,-2.46065 0,0 0,0 c 0,-0.45231 -0.0727,-0.77799 -0.19398,-0.95893 l 0,0 0,0 c -0.12123,-0.18093 -0.3152,-0.27137 -0.63043,-0.27137 l 0,0 0,0 c -0.14547,0 -0.29095,0.0542 -0.46068,0.16282 l 0,0 0,0 c -0.16974,0.0905 -0.29097,0.21713 -0.38795,0.37995 l 0,0 0,3.14818 -0.70317,0 0,-4.23375 0.48495,0 0.21822,0.5428 0,0 0,0 C 289.68848,418.21711 290.02795,418 290.56138,418 l 0,0 0,0 c 0.84865,0 1.28508,0.5428 1.28508,1.68266 l 0,0 0,2.62347 -0.70315,0 z" 20.2161 + style="fill:#008066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.2162 + id="path4932" 20.2163 + inkscape:connector-curvature="0" /> 20.2164 + <path 20.2165 + d="m 296.8656,422.30613 -0.63042,-3.72715 -1.13963,3.79952 -0.19396,0 -1.1881,-3.79952 -0.63043,3.72715 -0.67892,0 0.99413,-5.78975 0.33945,0 1.26085,4.21565 1.13961,-4.21565 0.33945,0 1.06688,5.78975 -0.67891,0 z" 20.2166 + style="fill:#008066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.2167 + id="path4934" 20.2168 + inkscape:connector-curvature="0" /> 20.2169 + <path 20.2170 + d="m 298.85384,420.06261 0,0 0,2.24352 -0.72741,0 0,-5.78975 0,0 0,0 c 0.55768,-0.0181 0.8729,-0.0362 0.99413,-0.0362 l 0,0 0,0 c 1.55181,0 2.32771,0.56087 2.32771,1.68264 l 0,0 0,0 c 0,1.30269 -0.67891,1.95405 -2.06099,1.95405 l 0,0 0,0 c -0.0727,0 -0.26672,-0.0181 -0.53344,-0.0544 z m 0,-2.82251 0,0 0,2.11688 0,0 0,0 c 0.31522,0.0181 0.46069,0.0362 0.48494,0.0362 l 0,0 0,0 c 0.89714,0 1.35783,-0.37996 1.35783,-1.13986 l 0,0 0,0 c 0,-0.70562 -0.48494,-1.06748 -1.45482,-1.06748 l 0,0 0,0 c -0.097,0 -0.21821,0.0181 -0.38795,0.0542 z" 20.2171 + style="fill:#008066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.2172 + id="path4936" 20.2173 + inkscape:connector-curvature="0" /> 20.2174 + <path 20.2175 + d="m 303.94571,419.50173 1.26085,0 0,0.56088 -1.26085,0 0,1.37506 -0.53344,0 0,-1.37506 -1.26083,0 0,-0.56088 1.26083,0 0,-1.33888 0.53344,0 0,1.33888 z" 20.2176 + style="fill:#008066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.2177 + id="path4938" 20.2178 + inkscape:connector-curvature="0" /> 20.2179 + <path 20.2180 + d="m 306.90384,420.06261 0,0 0,2.24352 -0.72741,0 0,-5.78975 0,0 0,0 c 0.53344,-0.0181 0.87289,-0.0362 0.99413,-0.0362 l 0,0 0,0 c 1.52756,0 2.27922,0.56087 2.27922,1.68264 l 0,0 0,0 c 0,1.30269 -0.67893,1.95405 -2.01251,1.95405 l 0,0 0,0 c -0.0727,0 -0.26671,-0.0181 -0.53343,-0.0544 z m 0,-2.82251 0,0 0,2.11688 0,0 0,0 c 0.29097,0.0181 0.4607,0.0362 0.48495,0.0362 l 0,0 0,0 c 0.87288,0 1.33358,-0.37996 1.33358,-1.13986 l 0,0 0,0 c 0,-0.70562 -0.48495,-1.06748 -1.43058,-1.06748 l 0,0 0,0 c -0.097,0 -0.21822,0.0181 -0.38795,0.0542 z" 20.2181 + style="fill:#008066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.2182 + id="path4940" 20.2183 + inkscape:connector-curvature="0" /> 20.2184 + <path 20.2185 + d="m 389.41631,423.27483 -0.63042,-3.70906 -1.16386,3.79952 -0.16973,0 -1.21234,-3.79952 -0.60618,3.70906 -0.67892,0 0.99413,-5.77164 0.31521,0 1.26084,4.21564 1.1881,-4.21564 0.31521,0 1.09112,5.77164 -0.70316,0 z" 20.2186 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.2187 + id="path4942" 20.2188 + inkscape:connector-curvature="0" /> 20.2189 + <path 20.2190 + d="m 391.4288,421.0494 0,0 0,2.22543 -0.7274,0 0,-5.77164 0,0 0,0 c 0.53344,-0.0362 0.87289,-0.0362 0.96988,-0.0362 l 0,0 0,0 c 1.52756,0 2.30346,0.56089 2.30346,1.68266 l 0,0 0,0 c 0,1.2846 -0.67892,1.93595 -2.03675,1.93595 l 0,0 0,0 c -0.097,0 -0.26671,-0.0181 -0.50919,-0.0362 z m 0,-2.8406 0,0 0,2.13498 0,0 0,0 c 0.26673,0.0181 0.43645,0.0362 0.4607,0.0362 l 0,0 0,0 c 0.89713,0 1.33358,-0.37996 1.33358,-1.13986 l 0,0 0,0 c 0,-0.72371 -0.46068,-1.06746 -1.43057,-1.06746 l 0,0 0,0 c -0.097,0 -0.21822,0.0181 -0.36371,0.0362 z" 20.2191 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.2192 + id="path4944" 20.2193 + inkscape:connector-curvature="0" /> 20.2194 + <path 20.2195 + d="m 394.94462,423.27483 0,-5.77164 0.7274,0 0,5.77164 -0.7274,0 z" 20.2196 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.2197 + id="path4946" 20.2198 + inkscape:connector-curvature="0" /> 20.2199 + <path 20.2200 + d="m 398.55741,420.48852 1.26085,0 0,0.56088 -1.26085,0 0,1.35697 -0.50918,0 0,-1.35697 -1.23659,0 0,-0.56088 1.23659,0 0,-1.33888 0.50918,0 0,1.33888 z" 20.2201 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.2202 + id="path4948" 20.2203 + inkscape:connector-curvature="0" /> 20.2204 + <path 20.2205 + d="m 401.4913,421.0494 0,0 0,2.22543 -0.72741,0 0,-5.77164 0,0 0,0 c 0.55768,-0.0362 0.87289,-0.0362 0.99413,-0.0362 l 0,0 0,0 c 1.5518,0 2.30346,0.56089 2.30346,1.68266 l 0,0 0,0 c 0,1.2846 -0.65467,1.93595 -2.03674,1.93595 l 0,0 0,0 c -0.0727,0 -0.26672,-0.0181 -0.53344,-0.0362 z m 0,-2.8406 0,0 0,2.13498 0,0 0,0 c 0.31521,0.0181 0.46069,0.0362 0.48494,0.0362 l 0,0 0,0 c 0.89714,0 1.35783,-0.37996 1.35783,-1.13986 l 0,0 0,0 c 0,-0.72371 -0.48494,-1.06746 -1.45481,-1.06746 l 0,0 0,0 c -0.097,0 -0.21823,0.0181 -0.38796,0.0362 z" 20.2206 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.2207 + id="path4950" 20.2208 + inkscape:connector-curvature="0" /> 20.2209 + <path 20.2210 + d="m 482.03976,423.36529 -2.73991,-4.23375 0,4.14329 -0.67891,0 0,-5.77164 0.29097,0 2.64291,3.98045 0,-3.98045 0.70317,0 0,5.8621 -0.21823,0 z" 20.2211 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.2212 + id="path4952" 20.2213 + inkscape:connector-curvature="0" /> 20.2214 + <path 20.2215 + d="m 486.57395,421.23032 0,0 -2.81265,0 0,0 0,0 c 0,0.5066 0.12123,0.88658 0.3637,1.15796 l 0,0 0,0 c 0.21823,0.21711 0.50919,0.34375 0.84865,0.34375 l 0,0 0,0 c 0.41219,0 0.72741,-0.12669 0.99412,-0.37994 l 0,0 0.29097,0.5428 0,0 0,0 c -0.097,0.10857 -0.26672,0.21709 -0.48494,0.30758 l 0,0 0,0 c -0.26672,0.10857 -0.58192,0.16282 -0.92138,0.16282 l 0,0 0,0 c -0.48495,0 -0.89714,-0.18093 -1.26085,-0.5428 l 0,0 0,0 c -0.3637,-0.39803 -0.55768,-0.94081 -0.55768,-1.61025 l 0,0 0,0 c 0,-0.70563 0.19398,-1.24841 0.58193,-1.66456 l 0,0 0,0 c 0.33946,-0.37995 0.7759,-0.56088 1.2366,-0.56088 l 0,0 0,0 c 0.55767,0 0.99412,0.16284 1.30933,0.50661 l 0,0 0,0 c 0.31521,0.32566 0.46069,0.7599 0.46069,1.28459 l 0,0 0,0 c 0,0.16284 -0.0242,0.32569 -0.0485,0.45232 z m -1.67305,-1.61027 0,0 0,0 c -0.3152,0 -0.58192,0.10857 -0.7759,0.32567 l 0,0 0,0 c -0.21822,0.19902 -0.3152,0.43424 -0.33945,0.74182 l 0,0 2.15798,0 0,0 0,0 c 0,-0.30758 -0.097,-0.5428 -0.26672,-0.74182 l 0,0 0,0 c -0.19397,-0.21711 -0.4607,-0.32567 -0.77591,-0.32567 z" 20.2216 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.2217 + id="path4954" 20.2218 + inkscape:connector-curvature="0" /> 20.2219 + <path 20.2220 + d="m 490.91416,423.36529 -0.16973,0 -1.13961,-2.89486 -1.13961,2.89486 -0.19398,0 -1.35783,-4.32421 0.70317,0 0.82439,2.76823 1.04262,-2.76823 0.19398,0 1.06687,2.76823 0.89714,-2.76823 0.67892,0 -1.40633,4.32421 z" 20.2221 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.2222 + id="path4956" 20.2223 + inkscape:connector-curvature="0" /> 20.2224 + <path 20.2225 + d="m 492.90241,423.27483 0,-5.77164 0.70316,0 0,5.06602 2.4247,0 0,0.70562 -3.12786,0 z" 20.2226 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.2227 + id="path4958" 20.2228 + inkscape:connector-curvature="0" /> 20.2229 + <path 20.2230 + d="m 498.79443,422.8044 0,0 0,0 c -0.26672,0.36187 -0.70316,0.56089 -1.26085,0.56089 l 0,0 0,0 c -0.31521,0 -0.58193,-0.12669 -0.80014,-0.36184 l 0,0 0,0 c -0.21823,-0.25332 -0.33946,-0.5428 -0.33946,-0.90466 l 0,0 0,0 c 0,-0.43424 0.16973,-0.79609 0.53343,-1.08559 l 0,0 0,0 c 0.33946,-0.30758 0.7759,-0.45231 1.30934,-0.45231 l 0,0 0,0 c 0.14548,0 0.31521,0.0361 0.48494,0.10857 l 0,0 0,0 c 0,-0.66945 -0.26672,-1.0132 -0.8244,-1.0132 l 0,0 0,0 c -0.43645,0 -0.77591,0.12669 -0.99413,0.37995 l 0,0 -0.29097,-0.63326 0,0 0,0 c 0.12125,-0.10858 0.29097,-0.21711 0.53344,-0.30758 l 0,0 0,0 c 0.24247,-0.0723 0.4607,-0.10858 0.65467,-0.10858 l 0,0 0,0 c 0.58193,0 0.99413,0.12669 1.23659,0.41613 l 0,0 0,0 c 0.24248,0.2714 0.36371,0.72372 0.36371,1.32078 l 0,0 0,1.51984 0,0 0,0 c 0,0.36184 0.097,0.61513 0.31521,0.74179 l 0,0 0,0.37995 0,0 0,0 c -0.29096,0 -0.50919,-0.0542 -0.63042,-0.14475 l 0,0 0,0 c -0.12123,-0.0723 -0.21822,-0.2171 -0.29096,-0.41614 z m -0.0727,-1.61025 0,0 0,0 c -0.21823,-0.0544 -0.36371,-0.0723 -0.43645,-0.0723 l 0,0 0,0 c -0.3637,0 -0.65467,0.0905 -0.87289,0.2895 l 0,0 0,0 c -0.21822,0.199 -0.31521,0.43421 -0.31521,0.68752 l 0,0 0,0 c 0,0.45232 0.24247,0.66944 0.70316,0.66944 l 0,0 0,0 c 0.3637,0 0.65467,-0.18093 0.92139,-0.5428 l 0,-1.03128 z" 20.2231 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.2232 + id="path4960" 20.2233 + inkscape:connector-curvature="0" /> 20.2234 + <path 20.2235 + d="m 502.89216,423.27483 0,0 0,-2.46065 0,0 0,0 c 0,-0.45231 -0.0727,-0.7418 -0.19397,-0.92272 l 0,0 0,0 c -0.12124,-0.18093 -0.33946,-0.27141 -0.63042,-0.27141 l 0,0 0,0 c -0.16973,0 -0.31521,0.0362 -0.48494,0.14476 l 0,0 0,0 c -0.19398,0.10857 -0.31521,0.23519 -0.4122,0.37993 l 0,0 0,3.13009 -0.67891,0 0,-4.21566 0.46069,0 0.21822,0.5428 0,0 0,0 c 0.24247,-0.41615 0.60617,-0.61517 1.11536,-0.61517 l 0,0 0,0 c 0.84864,0 1.28509,0.56088 1.28509,1.66455 l 0,0 0,2.62348 -0.67892,0 z" 20.2236 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.2237 + id="path4962" 20.2238 + inkscape:connector-curvature="0" /> 20.2239 + <path 20.2240 + d="m 504.41972,424.45086 0,0 0.36371,-0.61516 0,0 0,0 c 0.38795,0.30758 0.75166,0.45234 1.09111,0.45234 l 0,0 0,0 c 0.31521,0 0.55769,-0.0723 0.75166,-0.18093 l 0,0 0,0 c 0.16972,-0.12669 0.26672,-0.27141 0.26672,-0.43424 l 0,0 0,0 c 0,-0.34375 -0.24248,-0.52469 -0.67892,-0.52469 l 0,0 0,0 c -0.097,0 -0.21822,0.0181 -0.43645,0.0723 l 0,0 0,0 c -0.19397,0.0362 -0.3637,0.0544 -0.46069,0.0544 l 0,0 0,0 c -0.53343,0 -0.82439,-0.21713 -0.82439,-0.66945 l 0,0 0,0 c 0,-0.14474 0.0727,-0.2714 0.19397,-0.37996 l 0,0 0,0 c 0.14548,-0.12669 0.29096,-0.19902 0.46069,-0.25329 l 0,0 0,0 c -0.50918,-0.27139 -0.80014,-0.7599 -0.80014,-1.46553 l 0,0 0,0 c 0,-0.41613 0.14548,-0.79608 0.43644,-1.08557 l 0,0 0,0 c 0.26672,-0.2895 0.60618,-0.43424 1.01837,-0.43424 l 0,0 0,0 c 0.38795,0 0.67892,0.0723 0.89714,0.2533 l 0,0 0.36371,-0.45233 0.43644,0.45233 -0.4122,0.34378 0,0 0,0 c 0.16973,0.25329 0.26672,0.57897 0.26672,0.97701 l 0,0 0,0 c 0,0.41615 -0.12123,0.77799 -0.36371,1.06748 l 0,0 0,0 c -0.24246,0.28948 -0.58192,0.45233 -0.96987,0.5066 l 0,0 -0.55769,0.0544 0,0 0,0 c -0.0727,0.0181 -0.16973,0.0361 -0.29096,0.0905 l 0,0 0,0 c -0.097,0.0542 -0.14548,0.10857 -0.14548,0.19902 l 0,0 0,0 c 0,0.10857 0.097,0.16284 0.33946,0.16284 l 0,0 0,0 c 0.097,0 0.26671,-0.0362 0.48494,-0.0723 l 0,0 0,0 c 0.21822,-0.0362 0.38795,-0.0544 0.48493,-0.0544 l 0,0 0,0 c 0.38796,0 0.67892,0.0905 0.89715,0.28948 l 0,0 0,0 c 0.21822,0.19905 0.3152,0.48852 0.3152,0.83228 l 0,0 0,0 c 0,0.39806 -0.14548,0.70565 -0.46069,0.94084 l 0,0 0,0 c -0.33945,0.25331 -0.72741,0.36187 -1.23659,0.36187 l 0,0 0,0 c -0.24248,0 -0.50919,-0.0362 -0.7759,-0.14475 l 0,0 0,0 c -0.26673,-0.0905 -0.48495,-0.21712 -0.65468,-0.34378 z m 1.43058,-4.86698 0,0 0,0 c -0.24248,0 -0.43645,0.0905 -0.58193,0.27138 l 0,0 0,0 c -0.14549,0.19902 -0.21822,0.41614 -0.21822,0.66943 l 0,0 0,0 c 0,0.28949 0.0727,0.5428 0.21822,0.72373 l 0,0 0,0 c 0.14548,0.19902 0.33945,0.28948 0.58193,0.28948 l 0,0 0,0 c 0.24247,0 0.43644,-0.0905 0.58193,-0.27139 l 0,0 0,0 c 0.14548,-0.19902 0.19397,-0.43424 0.19397,-0.74182 l 0,0 0,0 c 0,-0.25329 -0.0727,-0.47041 -0.21822,-0.66943 l 0,0 0,0 c -0.14548,-0.18092 -0.33946,-0.27138 -0.55768,-0.27138 z" 20.2241 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.2242 + id="path4964" 20.2243 + inkscape:connector-curvature="0" /> 20.2244 + <path 20.2245 + d="m 509.99653,420.48852 1.23659,0 0,0.56088 -1.23659,0 0,1.35697 -0.50918,0 0,-1.35697 -1.26085,0 0,-0.56088 1.26085,0 0,-1.33888 0.50918,0 0,1.33888 z" 20.2246 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.2247 + id="path4966" 20.2248 + inkscape:connector-curvature="0" /> 20.2249 + <path 20.2250 + d="m 512.93041,421.0494 0,0 0,2.22543 -0.7274,0 0,-5.77164 0,0 0,0 c 0.55767,-0.0362 0.89713,-0.0362 0.99412,-0.0362 l 0,0 0,0 c 1.55181,0 2.32771,0.56089 2.32771,1.68266 l 0,0 0,0 c 0,1.2846 -0.67892,1.93595 -2.06099,1.93595 l 0,0 0,0 c -0.0727,0 -0.24247,-0.0181 -0.53344,-0.0362 z m 0,-2.8406 0,0 0,2.13498 0,0 0,0 c 0.31521,0.0181 0.48494,0.0362 0.48494,0.0362 l 0,0 0,0 c 0.89714,0 1.35783,-0.37996 1.35783,-1.13986 l 0,0 0,0 c 0,-0.72371 -0.48494,-1.06746 -1.43057,-1.06746 l 0,0 0,0 c -0.097,0 -0.24247,0.0181 -0.4122,0.0362 z" 20.2251 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 20.2252 + id="path4968" 20.2253 + inkscape:connector-curvature="0" /> 20.2254 + <g 20.2255 + id="g11392" 20.2256 + transform="translate(420,8.7179488)"> 20.2257 + <text 20.2258 + sodipodi:linespacing="125%" 20.2259 + id="text5053" 20.2260 + y="450.37811" 20.2261 + x="150.58965" 20.2262 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Xpress SF;-inkscape-font-specification:Xpress SF" 20.2263 + xml:space="preserve"><tspan 20.2264 + y="450.37811" 20.2265 + x="150.58965" 20.2266 + id="tspan5055" 20.2267 + sodipodi:role="line">Lang Syntax</tspan></text> 20.2268 + <rect 20.2269 + y="440.80841" 20.2270 + x="147.80876" 20.2271 + height="12.350597" 20.2272 + width="53.784859" 20.2273 + id="rect5088" 20.2274 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2, 1;stroke-dashoffset:0" /> 20.2275 + </g> 20.2276 + <g 20.2277 + id="g11409" 20.2278 + transform="translate(18.42735,0)"> 20.2279 + <text 20.2280 + xml:space="preserve" 20.2281 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Xpress SF;-inkscape-font-specification:Xpress SF" 20.2282 + x="552.58966" 20.2283 + y="513.97961" 20.2284 + id="text5057" 20.2285 + sodipodi:linespacing="125%"><tspan 20.2286 + sodipodi:role="line" 20.2287 + id="tspan5059" 20.2288 + x="552.58966" 20.2289 + y="513.97961">Request Intf</tspan></text> 20.2290 + <rect 20.2291 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2, 0.99999999;stroke-dashoffset:0" 20.2292 + id="rect5090" 20.2293 + width="52.938667" 20.2294 + height="12.350597" 20.2295 + x="549.80878" 20.2296 + y="504.41" /> 20.2297 + </g> 20.2298 + <g 20.2299 + id="g11399" 20.2300 + transform="translate(-29.57265,13.57265)"> 20.2301 + <text 20.2302 + sodipodi:linespacing="125%" 20.2303 + id="text5061" 20.2304 + y="565.97961" 20.2305 + x="616.58966" 20.2306 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Xpress SF;-inkscape-font-specification:Xpress SF" 20.2307 + xml:space="preserve"><tspan 20.2308 + y="565.97961" 20.2309 + x="616.58966" 20.2310 + id="tspan5063" 20.2311 + sodipodi:role="line">VMS Intf</tspan></text> 20.2312 + <rect 20.2313 + y="556.40991" 20.2314 + x="613.80878" 20.2315 + height="12.350597" 20.2316 + width="37.162453" 20.2317 + id="rect5092" 20.2318 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1.99999999, 1;stroke-dashoffset:0" /> 20.2319 + </g> 20.2320 + <g 20.2321 + id="g11404" 20.2322 + transform="translate(-8.5641025,0.42735043)"> 20.2323 + <text 20.2324 + sodipodi:linespacing="125%" 20.2325 + id="text5065" 20.2326 + y="609.58124" 20.2327 + x="616.58966" 20.2328 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Xpress SF;-inkscape-font-specification:Xpress SF" 20.2329 + xml:space="preserve"><tspan 20.2330 + y="609.58124" 20.2331 + x="616.58966" 20.2332 + id="tspan5067" 20.2333 + sodipodi:role="line">ISA</tspan></text> 20.2334 + <rect 20.2335 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.00000002, 1.00000001;stroke-dashoffset:0" 20.2336 + id="rect5094" 20.2337 + width="15.990735" 20.2338 + height="12.350597" 20.2339 + x="613.80878" 20.2340 + y="600.01154" /> 20.2341 + </g> 20.2342 + <path 20.2343 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2, 1;stroke-dashoffset:0" 20.2344 + d="m 149.50538,456.07322 419.95554,0 0,0 0,0" 20.2345 + id="path5864" 20.2346 + inkscape:connector-curvature="0" /> 20.2347 + <path 20.2348 + inkscape:connector-curvature="0" 20.2349 + id="path5866" 20.2350 + d="m 149.43272,510.92792 417.39372,0 0,0 0,0" 20.2351 + style="fill:none;stroke:#000000;stroke-width:0.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1.99999986, 0.99999992;stroke-dashoffset:0" /> 20.2352 + <path 20.2353 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1.99999983, 0.99999992;stroke-dashoffset:0" 20.2354 + d="m 149.74889,576.50057 433.61341,0 0,0 0,0" 20.2355 + id="path5868" 20.2356 + inkscape:connector-curvature="0" /> 20.2357 + <path 20.2358 + inkscape:connector-curvature="0" 20.2359 + id="path5870" 20.2360 + d="m 150.01815,606.92792 454.52761,0 0,0 0,0" 20.2361 + style="fill:none;stroke:#000000;stroke-width:0.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1.99999977, 0.99999988;stroke-dashoffset:0" /> 20.2362 + <path 20.2363 + inkscape:connector-curvature="0" 20.2364 + id="path5872" 20.2365 + d="m 149.79599,426.92792 471.66496,0 0,0 0,0" 20.2366 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 20.2367 + <path 20.2368 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 20.2369 + d="m 149.79599,624.92792 471.66496,0 0,0 0,0" 20.2370 + id="path5874" 20.2371 + inkscape:connector-curvature="0" /> 20.2372 + <text 20.2373 + xml:space="preserve" 20.2374 + style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Xpress SF;-inkscape-font-specification:Xpress SF" 20.2375 + x="564.11279" 20.2376 + y="422.51587" 20.2377 + id="text11414" 20.2378 + sodipodi:linespacing="125%"><tspan 20.2379 + sodipodi:role="line" 20.2380 + id="tspan11416" 20.2381 + x="564.11279" 20.2382 + y="422.51587" 20.2383 + style="font-size:18px">Interface</tspan></text> 20.2384 + <text 20.2385 + xml:space="preserve" 20.2386 + style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 20.2387 + x="161.67584" 20.2388 + y="420.5202" 20.2389 + id="text11418" 20.2390 + sodipodi:linespacing="125%"><tspan 20.2391 + sodipodi:role="line" 20.2392 + id="tspan11420" 20.2393 + x="161.67584" 20.2394 + y="420.5202" 20.2395 + style="font-size:18px">Layer</tspan></text> 20.2396 + <path 20.2397 + inkscape:connector-curvature="0" 20.2398 + id="path12247" 20.2399 + d="m 243.82877,575.78262 100.97409,0 0,0 0,0" 20.2400 + style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 20.2401 + <g 20.2402 + id="g13494"> 20.2403 + <path 20.2404 + inkscape:connector-curvature="0" 20.2405 + id="path11477" 20.2406 + d="m 277.87593,455.78262 29.22252,0 0,0 0,0" 20.2407 + style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 20.2408 + <path 20.2409 + sodipodi:nodetypes="cc" 20.2410 + inkscape:connector-curvature="0" 20.2411 + id="path12255" 20.2412 + d="m 303.00855,475.78099 12.82051,8.11965" 20.2413 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" /> 20.2414 + <g 20.2415 + transform="translate(-28,-20)" 20.2416 + id="g12725"> 20.2417 + <rect 20.2418 + y="483.71259" 20.2419 + x="299.65811" 20.2420 + height="12.393162" 20.2421 + width="41.452991" 20.2422 + id="rect12249" 20.2423 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 20.2424 + <text 20.2425 + xml:space="preserve" 20.2426 + style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 20.2427 + x="303.21664" 20.2428 + y="492.81934" 20.2429 + id="text12721" 20.2430 + sodipodi:linespacing="125%"><tspan 20.2431 + sodipodi:role="line" 20.2432 + id="tspan12723" 20.2433 + x="303.21664" 20.2434 + y="492.81934" 20.2435 + style="fill:#008000">Toolchain</tspan></text> 20.2436 + </g> 20.2437 + <g 20.2438 + transform="translate(-2,0.8547008)" 20.2439 + id="g12738"> 20.2440 + <rect 20.2441 + y="483.71259" 20.2442 + x="299.65811" 20.2443 + height="12.393162" 20.2444 + width="41.452991" 20.2445 + id="rect12740" 20.2446 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 20.2447 + <text 20.2448 + xml:space="preserve" 20.2449 + style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 20.2450 + x="300.78931" 20.2451 + y="492.81934" 20.2452 + id="text12742" 20.2453 + sodipodi:linespacing="125%"><tspan 20.2454 + sodipodi:role="line" 20.2455 + id="tspan12744" 20.2456 + x="300.78931" 20.2457 + y="492.81934" 20.2458 + style="fill:#ff7f2a">Specializer</tspan></text> 20.2459 + </g> 20.2460 + <path 20.2461 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" 20.2462 + d="m 282.42388,475.78099 -12.82051,8.11965" 20.2463 + id="path12746" 20.2464 + inkscape:connector-curvature="0" 20.2465 + sodipodi:nodetypes="cc" /> 20.2466 + <g 20.2467 + id="g12748" 20.2468 + transform="translate(-50,0.8547008)"> 20.2469 + <rect 20.2470 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 20.2471 + id="rect12750" 20.2472 + width="41.452991" 20.2473 + height="12.393162" 20.2474 + x="299.65811" 20.2475 + y="483.71259" /> 20.2476 + <text 20.2477 + sodipodi:linespacing="125%" 20.2478 + id="text12752" 20.2479 + y="492.81934" 20.2480 + x="300.78931" 20.2481 + style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 20.2482 + xml:space="preserve"><tspan 20.2483 + y="492.81934" 20.2484 + x="300.78931" 20.2485 + id="tspan12754" 20.2486 + sodipodi:role="line" 20.2487 + style="fill:#ff0000">Specializer</tspan></text> 20.2488 + </g> 20.2489 + <path 20.2490 + sodipodi:nodetypes="cc" 20.2491 + style="fill:none;stroke:#000000;stroke-width:0.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 20.2492 + d="m 292.0558,457.01631 0,5.71571" 20.2493 + id="path12756" 20.2494 + inkscape:connector-curvature="0" /> 20.2495 + </g> 20.2496 + <g 20.2497 + id="g13512" 20.2498 + transform="translate(102,0)"> 20.2499 + <path 20.2500 + style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 20.2501 + d="m 277.87593,455.78262 29.22252,0 0,0 0,0" 20.2502 + id="path13514" 20.2503 + inkscape:connector-curvature="0" /> 20.2504 + <path 20.2505 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" 20.2506 + d="m 303.00855,475.78099 12.82051,8.11965" 20.2507 + id="path13516" 20.2508 + inkscape:connector-curvature="0" 20.2509 + sodipodi:nodetypes="cc" /> 20.2510 + <g 20.2511 + id="g13518" 20.2512 + transform="translate(-28,-20)"> 20.2513 + <rect 20.2514 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 20.2515 + id="rect13520" 20.2516 + width="41.452991" 20.2517 + height="12.393162" 20.2518 + x="299.65811" 20.2519 + y="483.71259" /> 20.2520 + <text 20.2521 + sodipodi:linespacing="125%" 20.2522 + id="text13522" 20.2523 + y="492.81934" 20.2524 + x="303.21664" 20.2525 + style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 20.2526 + xml:space="preserve"><tspan 20.2527 + y="492.81934" 20.2528 + x="303.21664" 20.2529 + id="tspan13524" 20.2530 + sodipodi:role="line" 20.2531 + style="fill:#0000ff">Toolchain</tspan></text> 20.2532 + </g> 20.2533 + <g 20.2534 + id="g13526" 20.2535 + transform="translate(-2,0.8547008)"> 20.2536 + <rect 20.2537 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 20.2538 + id="rect13528" 20.2539 + width="41.452991" 20.2540 + height="12.393162" 20.2541 + x="299.65811" 20.2542 + y="483.71259" /> 20.2543 + <text 20.2544 + sodipodi:linespacing="125%" 20.2545 + id="text13530" 20.2546 + y="492.81934" 20.2547 + x="300.78931" 20.2548 + style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 20.2549 + xml:space="preserve"><tspan 20.2550 + y="492.81934" 20.2551 + x="300.78931" 20.2552 + id="tspan13532" 20.2553 + sodipodi:role="line" 20.2554 + style="fill:#ff7f2a">Specializer</tspan></text> 20.2555 + </g> 20.2556 + <path 20.2557 + sodipodi:nodetypes="cc" 20.2558 + inkscape:connector-curvature="0" 20.2559 + id="path13534" 20.2560 + d="m 282.42388,475.78099 -12.82051,8.11965" 20.2561 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" /> 20.2562 + <g 20.2563 + transform="translate(-50,0.8547008)" 20.2564 + id="g13536"> 20.2565 + <rect 20.2566 + y="483.71259" 20.2567 + x="299.65811" 20.2568 + height="12.393162" 20.2569 + width="41.452991" 20.2570 + id="rect13538" 20.2571 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 20.2572 + <text 20.2573 + xml:space="preserve" 20.2574 + style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 20.2575 + x="300.78931" 20.2576 + y="492.81934" 20.2577 + id="text13540" 20.2578 + sodipodi:linespacing="125%"><tspan 20.2579 + sodipodi:role="line" 20.2580 + id="tspan13542" 20.2581 + x="300.78931" 20.2582 + y="492.81934" 20.2583 + style="fill:#ff0000">Specializer</tspan></text> 20.2584 + </g> 20.2585 + <path 20.2586 + inkscape:connector-curvature="0" 20.2587 + id="path13544" 20.2588 + d="m 292.0558,457.01631 0,5.71571" 20.2589 + style="fill:none;stroke:#000000;stroke-width:0.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 20.2590 + sodipodi:nodetypes="cc" /> 20.2591 + </g> 20.2592 + <g 20.2593 + transform="translate(204,0)" 20.2594 + id="g13546"> 20.2595 + <path 20.2596 + inkscape:connector-curvature="0" 20.2597 + id="path13548" 20.2598 + d="m 277.87593,455.78262 29.22252,0 0,0 0,0" 20.2599 + style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 20.2600 + <path 20.2601 + sodipodi:nodetypes="cc" 20.2602 + inkscape:connector-curvature="0" 20.2603 + id="path13550" 20.2604 + d="m 303.00855,475.78099 12.82051,8.11965" 20.2605 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" /> 20.2606 + <g 20.2607 + transform="translate(-28,-20)" 20.2608 + id="g13552"> 20.2609 + <rect 20.2610 + y="483.71259" 20.2611 + x="299.65811" 20.2612 + height="12.393162" 20.2613 + width="41.452991" 20.2614 + id="rect13554" 20.2615 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 20.2616 + <text 20.2617 + xml:space="preserve" 20.2618 + style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 20.2619 + x="303.21664" 20.2620 + y="492.81934" 20.2621 + id="text13556" 20.2622 + sodipodi:linespacing="125%"><tspan 20.2623 + sodipodi:role="line" 20.2624 + id="tspan13558" 20.2625 + x="303.21664" 20.2626 + y="492.81934" 20.2627 + style="fill:#800080">Toolchain</tspan></text> 20.2628 + </g> 20.2629 + <g 20.2630 + transform="translate(-2,0.8547008)" 20.2631 + id="g13560"> 20.2632 + <rect 20.2633 + y="483.71259" 20.2634 + x="299.65811" 20.2635 + height="12.393162" 20.2636 + width="41.452991" 20.2637 + id="rect13562" 20.2638 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 20.2639 + <text 20.2640 + xml:space="preserve" 20.2641 + style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 20.2642 + x="300.78931" 20.2643 + y="492.81934" 20.2644 + id="text13564" 20.2645 + sodipodi:linespacing="125%"><tspan 20.2646 + sodipodi:role="line" 20.2647 + id="tspan13566" 20.2648 + x="300.78931" 20.2649 + y="492.81934" 20.2650 + style="fill:#ff7f2a">Specializer</tspan></text> 20.2651 + </g> 20.2652 + <path 20.2653 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" 20.2654 + d="m 282.42388,475.78099 -12.82051,8.11965" 20.2655 + id="path13568" 20.2656 + inkscape:connector-curvature="0" 20.2657 + sodipodi:nodetypes="cc" /> 20.2658 + <g 20.2659 + id="g13570" 20.2660 + transform="translate(-50,0.8547008)"> 20.2661 + <rect 20.2662 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 20.2663 + id="rect13572" 20.2664 + width="41.452991" 20.2665 + height="12.393162" 20.2666 + x="299.65811" 20.2667 + y="483.71259" /> 20.2668 + <text 20.2669 + sodipodi:linespacing="125%" 20.2670 + id="text13574" 20.2671 + y="492.81934" 20.2672 + x="300.78931" 20.2673 + style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 20.2674 + xml:space="preserve"><tspan 20.2675 + y="492.81934" 20.2676 + x="300.78931" 20.2677 + id="tspan13576" 20.2678 + sodipodi:role="line" 20.2679 + style="fill:#ff0000">Specializer</tspan></text> 20.2680 + </g> 20.2681 + <path 20.2682 + sodipodi:nodetypes="cc" 20.2683 + style="fill:none;stroke:#000000;stroke-width:0.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 20.2684 + d="m 292.0558,457.01631 0,5.71571" 20.2685 + id="path13578" 20.2686 + inkscape:connector-curvature="0" /> 20.2687 + </g> 20.2688 + <path 20.2689 + style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 20.2690 + d="m 446.68347,575.78262 100.97409,0 0,0 0,0" 20.2691 + id="path13580" 20.2692 + inkscape:connector-curvature="0" /> 20.2693 + </g> 20.2694 +</svg>
21.1 Binary file 0__Papers/PRT/PRT__formal_def/figures/Proto-Runtime__modules.pdf has changed
22.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 22.2 +++ b/0__Papers/PRT/PRT__formal_def/figures/Proto-Runtime__modules.svg Sat Aug 03 19:24:22 2013 -0700 22.3 @@ -0,0 +1,219 @@ 22.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 22.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 22.6 + 22.7 +<svg 22.8 + xmlns:dc="http://purl.org/dc/elements/1.1/" 22.9 + xmlns:cc="http://creativecommons.org/ns#" 22.10 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 22.11 + xmlns:svg="http://www.w3.org/2000/svg" 22.12 + xmlns="http://www.w3.org/2000/svg" 22.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 22.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 22.15 + width="744.09448819" 22.16 + height="1052.3622047" 22.17 + id="svg2" 22.18 + sodipodi:version="0.32" 22.19 + inkscape:version="0.48.2 r9819" 22.20 + sodipodi:docname="Proto-Runtime__modules.pdf" 22.21 + inkscape:output_extension="org.inkscape.output.svg.inkscape" 22.22 + version="1.1"> 22.23 + <defs 22.24 + id="defs4"> 22.25 + <marker 22.26 + inkscape:stockid="Arrow2Mend" 22.27 + orient="auto" 22.28 + refY="0.0" 22.29 + refX="0.0" 22.30 + id="Arrow2Mend" 22.31 + style="overflow:visible;"> 22.32 + <path 22.33 + id="path4008" 22.34 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 22.35 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 22.36 + transform="scale(0.6) rotate(180) translate(0,0)" /> 22.37 + </marker> 22.38 + <inkscape:perspective 22.39 + sodipodi:type="inkscape:persp3d" 22.40 + inkscape:vp_x="0 : 526.18109 : 1" 22.41 + inkscape:vp_y="0 : 1000 : 0" 22.42 + inkscape:vp_z="744.09448 : 526.18109 : 1" 22.43 + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" 22.44 + id="perspective10" /> 22.45 + <inkscape:perspective 22.46 + id="perspective12172" 22.47 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 22.48 + inkscape:vp_z="1 : 0.5 : 1" 22.49 + inkscape:vp_y="0 : 1000 : 0" 22.50 + inkscape:vp_x="0 : 0.5 : 1" 22.51 + sodipodi:type="inkscape:persp3d" /> 22.52 + <inkscape:perspective 22.53 + id="perspective12937" 22.54 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 22.55 + inkscape:vp_z="1 : 0.5 : 1" 22.56 + inkscape:vp_y="0 : 1000 : 0" 22.57 + inkscape:vp_x="0 : 0.5 : 1" 22.58 + sodipodi:type="inkscape:persp3d" /> 22.59 + </defs> 22.60 + <sodipodi:namedview 22.61 + id="base" 22.62 + pagecolor="#ffffff" 22.63 + bordercolor="#666666" 22.64 + borderopacity="1.0" 22.65 + gridtolerance="10000" 22.66 + guidetolerance="10" 22.67 + objecttolerance="10" 22.68 + inkscape:pageopacity="0.0" 22.69 + inkscape:pageshadow="2" 22.70 + inkscape:zoom="2.5442307" 22.71 + inkscape:cx="331.10449" 22.72 + inkscape:cy="538.12533" 22.73 + inkscape:document-units="px" 22.74 + inkscape:current-layer="layer1" 22.75 + showgrid="false" 22.76 + inkscape:window-width="1226" 22.77 + inkscape:window-height="878" 22.78 + inkscape:window-x="12" 22.79 + inkscape:window-y="0" 22.80 + inkscape:window-maximized="0" /> 22.81 + <metadata 22.82 + id="metadata7"> 22.83 + <rdf:RDF> 22.84 + <cc:Work 22.85 + rdf:about=""> 22.86 + <dc:format>image/svg+xml</dc:format> 22.87 + <dc:type 22.88 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 22.89 + <dc:title></dc:title> 22.90 + </cc:Work> 22.91 + </rdf:RDF> 22.92 + </metadata> 22.93 + <g 22.94 + inkscape:label="Layer 1" 22.95 + inkscape:groupmode="layer" 22.96 + id="layer1"> 22.97 + <text 22.98 + sodipodi:linespacing="100%" 22.99 + id="text12985" 22.100 + y="447.55026" 22.101 + x="343.00162" 22.102 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 22.103 + xml:space="preserve"><tspan 22.104 + y="447.55026" 22.105 + x="343.00162" 22.106 + sodipodi:role="line" 22.107 + id="tspan12989" 22.108 + style="text-align:center;text-anchor:middle">Parallelism</tspan><tspan 22.109 + id="tspan3147" 22.110 + y="457.55026" 22.111 + x="343.00162" 22.112 + sodipodi:role="line" 22.113 + style="text-align:center;text-anchor:middle">Construct</tspan><tspan 22.114 + id="tspan3149" 22.115 + y="467.55026" 22.116 + x="343.00162" 22.117 + sodipodi:role="line" 22.118 + style="text-align:center;text-anchor:middle">Module</tspan></text> 22.119 + <rect 22.120 + style="fill:none;stroke:#000000;stroke-width:1.08018136;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 22.121 + id="rect12971" 22.122 + width="131.7012" 22.123 + height="52.250008" 22.124 + x="310.30118" 22.125 + y="495.43658" /> 22.126 + <text 22.127 + xml:space="preserve" 22.128 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 22.129 + x="376.33487" 22.130 + y="515.20319" 22.131 + id="text12973" 22.132 + sodipodi:linespacing="100%"><tspan 22.133 + sodipodi:role="line" 22.134 + id="tspan12975" 22.135 + x="376.33487" 22.136 + y="515.20319" 22.137 + style="text-align:center;text-anchor:middle">Hardware Specific Module</tspan><tspan 22.138 + sodipodi:role="line" 22.139 + x="376.33487" 22.140 + y="525.20319" 22.141 + style="text-align:center;text-anchor:middle" 22.142 + id="tspan3155" /><tspan 22.143 + sodipodi:role="line" 22.144 + x="376.33487" 22.145 + y="533.63794" 22.146 + id="tspan3089" 22.147 + style="font-size:8px;text-align:center;text-anchor:middle">(Proto-Runtime)</tspan></text> 22.148 + <text 22.149 + sodipodi:linespacing="100%" 22.150 + id="text12985-7" 22.151 + y="447.52585" 22.152 + x="409.1481" 22.153 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 22.154 + xml:space="preserve"><tspan 22.155 + y="447.52585" 22.156 + x="409.1481" 22.157 + id="tspan12987-4" 22.158 + sodipodi:role="line" 22.159 + style="text-align:center;text-anchor:middle">Assignment</tspan><tspan 22.160 + id="tspan3151" 22.161 + y="457.52585" 22.162 + x="409.1481" 22.163 + sodipodi:role="line" 22.164 + style="text-align:center;text-anchor:middle">of Work</tspan><tspan 22.165 + y="467.52585" 22.166 + x="409.1481" 22.167 + sodipodi:role="line" 22.168 + id="tspan12989-0" 22.169 + style="text-align:center;text-anchor:middle">onto Cores</tspan><tspan 22.170 + id="tspan3153" 22.171 + y="477.52585" 22.172 + x="409.1481" 22.173 + sodipodi:role="line" 22.174 + style="text-align:center;text-anchor:middle">Module</tspan></text> 22.175 + <text 22.176 + xml:space="preserve" 22.177 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 22.178 + x="376.3902" 22.179 + y="493.19415" 22.180 + id="text12973-5" 22.181 + sodipodi:linespacing="100%"><tspan 22.182 + sodipodi:role="line" 22.183 + x="376.3902" 22.184 + y="493.19415" 22.185 + id="tspan3089-7" 22.186 + style="font-size:8px;text-align:center;text-anchor:middle">Hardware Abstraction Interface</tspan></text> 22.187 + <rect 22.188 + y="-495.43658" 22.189 + x="310.30118" 22.190 + height="9.1641436" 22.191 + width="131.7012" 22.192 + id="rect3204" 22.193 + style="fill:none;stroke:#000000;stroke-width:1.08018136;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 22.194 + transform="scale(1,-1)" /> 22.195 + <rect 22.196 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 22.197 + id="rect3217" 22.198 + width="65.276405" 22.199 + height="52.250008" 22.200 + x="310.40247" 22.201 + y="433.58255" /> 22.202 + <rect 22.203 + y="433.58255" 22.204 + x="376.40247" 22.205 + height="52.250008" 22.206 + width="65.276405" 22.207 + id="rect3219" 22.208 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 22.209 + <text 22.210 + sodipodi:linespacing="100%" 22.211 + id="text3328" 22.212 + y="425.20319" 22.213 + x="375.5488" 22.214 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 22.215 + xml:space="preserve"><tspan 22.216 + style="font-size:10px;text-align:center;text-anchor:middle" 22.217 + id="tspan3334" 22.218 + y="425.20319" 22.219 + x="375.5488" 22.220 + sodipodi:role="line">Code Stack for Runtime System</tspan></text> 22.221 + </g> 22.222 +</svg>
23.1 Binary file 0__Papers/PRT/PRT__formal_def/figures/Proto-Runtime__modules_lang_breakdown.pdf has changed
24.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 24.2 +++ b/0__Papers/PRT/PRT__formal_def/figures/Proto-Runtime__modules_lang_breakdown.svg Sat Aug 03 19:24:22 2013 -0700 24.3 @@ -0,0 +1,243 @@ 24.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 24.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 24.6 + 24.7 +<svg 24.8 + xmlns:dc="http://purl.org/dc/elements/1.1/" 24.9 + xmlns:cc="http://creativecommons.org/ns#" 24.10 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 24.11 + xmlns:svg="http://www.w3.org/2000/svg" 24.12 + xmlns="http://www.w3.org/2000/svg" 24.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 24.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 24.15 + width="744.09448819" 24.16 + height="1052.3622047" 24.17 + id="svg2" 24.18 + sodipodi:version="0.32" 24.19 + inkscape:version="0.48.2 r9819" 24.20 + sodipodi:docname="Proto-Runtime__modules_lang_breakdown.svg" 24.21 + inkscape:output_extension="org.inkscape.output.svg.inkscape" 24.22 + version="1.1"> 24.23 + <defs 24.24 + id="defs4"> 24.25 + <marker 24.26 + inkscape:stockid="Arrow2Mend" 24.27 + orient="auto" 24.28 + refY="0.0" 24.29 + refX="0.0" 24.30 + id="Arrow2Mend" 24.31 + style="overflow:visible;"> 24.32 + <path 24.33 + id="path4008" 24.34 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 24.35 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 24.36 + transform="scale(0.6) rotate(180) translate(0,0)" /> 24.37 + </marker> 24.38 + <inkscape:perspective 24.39 + sodipodi:type="inkscape:persp3d" 24.40 + inkscape:vp_x="0 : 526.18109 : 1" 24.41 + inkscape:vp_y="0 : 1000 : 0" 24.42 + inkscape:vp_z="744.09448 : 526.18109 : 1" 24.43 + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" 24.44 + id="perspective10" /> 24.45 + <inkscape:perspective 24.46 + id="perspective12172" 24.47 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 24.48 + inkscape:vp_z="1 : 0.5 : 1" 24.49 + inkscape:vp_y="0 : 1000 : 0" 24.50 + inkscape:vp_x="0 : 0.5 : 1" 24.51 + sodipodi:type="inkscape:persp3d" /> 24.52 + <inkscape:perspective 24.53 + id="perspective12937" 24.54 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 24.55 + inkscape:vp_z="1 : 0.5 : 1" 24.56 + inkscape:vp_y="0 : 1000 : 0" 24.57 + inkscape:vp_x="0 : 0.5 : 1" 24.58 + sodipodi:type="inkscape:persp3d" /> 24.59 + </defs> 24.60 + <sodipodi:namedview 24.61 + id="base" 24.62 + pagecolor="#ffffff" 24.63 + bordercolor="#666666" 24.64 + borderopacity="1.0" 24.65 + gridtolerance="10000" 24.66 + guidetolerance="10" 24.67 + objecttolerance="10" 24.68 + inkscape:pageopacity="0.0" 24.69 + inkscape:pageshadow="2" 24.70 + inkscape:zoom="2.5442307" 24.71 + inkscape:cx="377.60185" 24.72 + inkscape:cy="538.12533" 24.73 + inkscape:document-units="px" 24.74 + inkscape:current-layer="layer1" 24.75 + showgrid="false" 24.76 + inkscape:window-width="1226" 24.77 + inkscape:window-height="878" 24.78 + inkscape:window-x="12" 24.79 + inkscape:window-y="0" 24.80 + inkscape:window-maximized="0" /> 24.81 + <metadata 24.82 + id="metadata7"> 24.83 + <rdf:RDF> 24.84 + <cc:Work 24.85 + rdf:about=""> 24.86 + <dc:format>image/svg+xml</dc:format> 24.87 + <dc:type 24.88 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 24.89 + <dc:title></dc:title> 24.90 + </cc:Work> 24.91 + </rdf:RDF> 24.92 + </metadata> 24.93 + <g 24.94 + inkscape:label="Layer 1" 24.95 + inkscape:groupmode="layer" 24.96 + id="layer1"> 24.97 + <text 24.98 + sodipodi:linespacing="100%" 24.99 + id="text12985" 24.100 + y="447.55026" 24.101 + x="393.00162" 24.102 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 24.103 + xml:space="preserve"><tspan 24.104 + y="447.55026" 24.105 + x="393.00162" 24.106 + sodipodi:role="line" 24.107 + id="tspan12989" 24.108 + style="text-align:center;text-anchor:middle">Code of</tspan><tspan 24.109 + y="457.55026" 24.110 + x="393.00162" 24.111 + sodipodi:role="line" 24.112 + style="text-align:center;text-anchor:middle" 24.113 + id="tspan6029">parallelism</tspan><tspan 24.114 + id="tspan3147" 24.115 + y="467.55026" 24.116 + x="393.00162" 24.117 + sodipodi:role="line" 24.118 + style="text-align:center;text-anchor:middle">construct</tspan><tspan 24.119 + id="tspan3149" 24.120 + y="477.55026" 24.121 + x="393.00162" 24.122 + sodipodi:role="line" 24.123 + style="text-align:center;text-anchor:middle">module</tspan></text> 24.124 + <text 24.125 + sodipodi:linespacing="100%" 24.126 + id="text12985-7" 24.127 + y="447.52585" 24.128 + x="459.1481" 24.129 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 24.130 + xml:space="preserve"><tspan 24.131 + y="447.52585" 24.132 + x="459.1481" 24.133 + id="tspan12987-4" 24.134 + sodipodi:role="line" 24.135 + style="text-align:center;text-anchor:middle">Code of</tspan><tspan 24.136 + y="457.52585" 24.137 + x="459.1481" 24.138 + sodipodi:role="line" 24.139 + style="text-align:center;text-anchor:middle" 24.140 + id="tspan6031">assignment</tspan><tspan 24.141 + y="467.52585" 24.142 + x="459.1481" 24.143 + sodipodi:role="line" 24.144 + id="tspan12989-0" 24.145 + style="text-align:center;text-anchor:middle">onto cores</tspan><tspan 24.146 + id="tspan3153" 24.147 + y="477.52585" 24.148 + x="459.1481" 24.149 + sodipodi:role="line" 24.150 + style="text-align:center;text-anchor:middle">module</tspan></text> 24.151 + <rect 24.152 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 24.153 + id="rect3217" 24.154 + width="65.276405" 24.155 + height="52.250008" 24.156 + x="360.40247" 24.157 + y="433.58255" /> 24.158 + <rect 24.159 + y="433.58255" 24.160 + x="426.40247" 24.161 + height="52.250008" 24.162 + width="65.276405" 24.163 + id="rect3219" 24.164 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 24.165 + <text 24.166 + sodipodi:linespacing="100%" 24.167 + id="text3328" 24.168 + y="425.20319" 24.169 + x="375.5488" 24.170 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 24.171 + xml:space="preserve"><tspan 24.172 + style="font-size:10px;text-align:center;text-anchor:middle" 24.173 + id="tspan3334" 24.174 + y="425.20319" 24.175 + x="375.5488" 24.176 + sodipodi:role="line">Code Breakdown of a Language Implementation</tspan></text> 24.177 + <text 24.178 + xml:space="preserve" 24.179 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 24.180 + x="297.00894" 24.181 + y="447.55026" 24.182 + id="text5501" 24.183 + sodipodi:linespacing="100%"><tspan 24.184 + style="text-align:center;text-anchor:middle" 24.185 + id="tspan5503" 24.186 + sodipodi:role="line" 24.187 + x="297.00894" 24.188 + y="447.55026">Code of</tspan><tspan 24.189 + style="text-align:center;text-anchor:middle" 24.190 + sodipodi:role="line" 24.191 + x="297.00894" 24.192 + y="457.55026" 24.193 + id="tspan6027">wrapper</tspan><tspan 24.194 + style="text-align:center;text-anchor:middle" 24.195 + sodipodi:role="line" 24.196 + x="297.00894" 24.197 + y="467.55026" 24.198 + id="tspan5507">library</tspan></text> 24.199 + <rect 24.200 + y="433.58255" 24.201 + x="264.40247" 24.202 + height="52.250008" 24.203 + width="65.276405" 24.204 + id="rect5511" 24.205 + style="fill:none;stroke:#000000;stroke-width:1.08000004;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:4.32, 4.32;stroke-dashoffset:0" /> 24.206 + <text 24.207 + sodipodi:linespacing="100%" 24.208 + id="text6035" 24.209 + y="503.55026" 24.210 + x="297.01334" 24.211 + style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 24.212 + xml:space="preserve"><tspan 24.213 + id="tspan6041" 24.214 + y="503.55026" 24.215 + x="297.01334" 24.216 + sodipodi:role="line" 24.217 + style="font-size:8px;text-align:center;text-anchor:middle">Compiled into</tspan><tspan 24.218 + y="511.55026" 24.219 + x="297.01334" 24.220 + sodipodi:role="line" 24.221 + style="font-size:8px;text-align:center;text-anchor:middle" 24.222 + id="tspan6047">application</tspan><tspan 24.223 + y="519.55029" 24.224 + x="297.01334" 24.225 + sodipodi:role="line" 24.226 + style="font-size:8px;text-align:center;text-anchor:middle" 24.227 + id="tspan6049">executable</tspan></text> 24.228 + <text 24.229 + xml:space="preserve" 24.230 + style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 24.231 + x="425.00162" 24.232 + y="503.55026" 24.233 + id="text6051" 24.234 + sodipodi:linespacing="100%"><tspan 24.235 + style="font-size:8px;text-align:center;text-anchor:middle" 24.236 + sodipodi:role="line" 24.237 + x="425.00162" 24.238 + y="503.55026" 24.239 + id="tspan6053">Compiled separately</tspan><tspan 24.240 + id="tspan6057" 24.241 + style="font-size:8px;text-align:center;text-anchor:middle" 24.242 + sodipodi:role="line" 24.243 + x="425.00162" 24.244 + y="511.55026">as a dynamic library</tspan></text> 24.245 + </g> 24.246 +</svg>
25.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 25.2 +++ b/0__Papers/PRT/PRT__formal_def/figures/Proto-Runtime__modules_plus_plugin.svg Sat Aug 03 19:24:22 2013 -0700 25.3 @@ -0,0 +1,618 @@ 25.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 25.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 25.6 + 25.7 +<svg 25.8 + xmlns:dc="http://purl.org/dc/elements/1.1/" 25.9 + xmlns:cc="http://creativecommons.org/ns#" 25.10 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 25.11 + xmlns:svg="http://www.w3.org/2000/svg" 25.12 + xmlns="http://www.w3.org/2000/svg" 25.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 25.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 25.15 + width="744.09448819" 25.16 + height="1052.3622047" 25.17 + id="svg2" 25.18 + sodipodi:version="0.32" 25.19 + inkscape:version="0.48.2 r9819" 25.20 + sodipodi:docname="Proto-Runtime__modules_plus_plugin.svg" 25.21 + inkscape:output_extension="org.inkscape.output.svg.inkscape" 25.22 + version="1.1"> 25.23 + <defs 25.24 + id="defs4"> 25.25 + <marker 25.26 + inkscape:stockid="Arrow2Mend" 25.27 + orient="auto" 25.28 + refY="0.0" 25.29 + refX="0.0" 25.30 + id="Arrow2Mend" 25.31 + style="overflow:visible;"> 25.32 + <path 25.33 + id="path4008" 25.34 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 25.35 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 25.36 + transform="scale(0.6) rotate(180) translate(0,0)" /> 25.37 + </marker> 25.38 + <inkscape:perspective 25.39 + sodipodi:type="inkscape:persp3d" 25.40 + inkscape:vp_x="0 : 526.18109 : 1" 25.41 + inkscape:vp_y="0 : 1000 : 0" 25.42 + inkscape:vp_z="744.09448 : 526.18109 : 1" 25.43 + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" 25.44 + id="perspective10" /> 25.45 + <inkscape:perspective 25.46 + id="perspective12172" 25.47 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 25.48 + inkscape:vp_z="1 : 0.5 : 1" 25.49 + inkscape:vp_y="0 : 1000 : 0" 25.50 + inkscape:vp_x="0 : 0.5 : 1" 25.51 + sodipodi:type="inkscape:persp3d" /> 25.52 + <inkscape:perspective 25.53 + id="perspective12937" 25.54 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 25.55 + inkscape:vp_z="1 : 0.5 : 1" 25.56 + inkscape:vp_y="0 : 1000 : 0" 25.57 + inkscape:vp_x="0 : 0.5 : 1" 25.58 + sodipodi:type="inkscape:persp3d" /> 25.59 + </defs> 25.60 + <sodipodi:namedview 25.61 + id="base" 25.62 + pagecolor="#ffffff" 25.63 + bordercolor="#666666" 25.64 + borderopacity="1.0" 25.65 + gridtolerance="10000" 25.66 + guidetolerance="10" 25.67 + objecttolerance="10" 25.68 + inkscape:pageopacity="0.0" 25.69 + inkscape:pageshadow="2" 25.70 + inkscape:zoom="1.553811" 25.71 + inkscape:cx="310.29102" 25.72 + inkscape:cy="586.15006" 25.73 + inkscape:document-units="px" 25.74 + inkscape:current-layer="layer1" 25.75 + showgrid="false" 25.76 + inkscape:window-width="1600" 25.77 + inkscape:window-height="848" 25.78 + inkscape:window-x="-8" 25.79 + inkscape:window-y="-8" 25.80 + inkscape:window-maximized="1" /> 25.81 + <metadata 25.82 + id="metadata7"> 25.83 + <rdf:RDF> 25.84 + <cc:Work 25.85 + rdf:about=""> 25.86 + <dc:format>image/svg+xml</dc:format> 25.87 + <dc:type 25.88 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 25.89 + <dc:title /> 25.90 + </cc:Work> 25.91 + </rdf:RDF> 25.92 + </metadata> 25.93 + <g 25.94 + inkscape:label="Layer 1" 25.95 + inkscape:groupmode="layer" 25.96 + id="layer1"> 25.97 + <rect 25.98 + y="417.82236" 25.99 + x="127.32263" 25.100 + height="69.307014" 25.101 + width="137.26534" 25.102 + id="rect12977" 25.103 + style="fill:none;stroke:#800000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:4.32072507, 4.32072507;stroke-dashoffset:0" /> 25.104 + <text 25.105 + sodipodi:linespacing="100%" 25.106 + id="text12979" 25.107 + y="399.76575" 25.108 + x="195.84009" 25.109 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 25.110 + xml:space="preserve"><tspan 25.111 + y="399.76575" 25.112 + x="195.84009" 25.113 + id="tspan12981" 25.114 + sodipodi:role="line" 25.115 + style="text-align:center;text-anchor:middle">Master</tspan><tspan 25.116 + y="408.20053" 25.117 + x="195.84009" 25.118 + sodipodi:role="line" 25.119 + id="tspan3291" 25.120 + style="font-size:8px;text-align:center;text-anchor:middle">(runtime system)</tspan></text> 25.121 + <text 25.122 + sodipodi:linespacing="100%" 25.123 + id="text12985" 25.124 + y="447.55026" 25.125 + x="163.00162" 25.126 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 25.127 + xml:space="preserve"><tspan 25.128 + y="447.55026" 25.129 + x="163.00162" 25.130 + sodipodi:role="line" 25.131 + id="tspan12989" 25.132 + style="text-align:center;text-anchor:middle">Construct</tspan><tspan 25.133 + id="tspan3147" 25.134 + y="457.55026" 25.135 + x="163.00162" 25.136 + sodipodi:role="line" 25.137 + style="text-align:center;text-anchor:middle">Semantics</tspan><tspan 25.138 + id="tspan3149" 25.139 + y="467.55026" 25.140 + x="163.00162" 25.141 + sodipodi:role="line" 25.142 + style="text-align:center;text-anchor:middle">Module</tspan></text> 25.143 + <rect 25.144 + style="fill:none;stroke:#000000;stroke-width:1.08018136;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 25.145 + id="rect12971" 25.146 + width="131.7012" 25.147 + height="52.250008" 25.148 + x="130.30118" 25.149 + y="495.43658" /> 25.150 + <text 25.151 + xml:space="preserve" 25.152 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 25.153 + x="196.33487" 25.154 + y="515.20319" 25.155 + id="text12973" 25.156 + sodipodi:linespacing="100%"><tspan 25.157 + sodipodi:role="line" 25.158 + id="tspan12975" 25.159 + x="196.33487" 25.160 + y="515.20319" 25.161 + style="text-align:center;text-anchor:middle">Hardware Specific Module</tspan><tspan 25.162 + sodipodi:role="line" 25.163 + x="196.33487" 25.164 + y="525.20319" 25.165 + style="text-align:center;text-anchor:middle" 25.166 + id="tspan3155" /><tspan 25.167 + sodipodi:role="line" 25.168 + x="196.33487" 25.169 + y="533.63794" 25.170 + id="tspan3089" 25.171 + style="font-size:8px;text-align:center;text-anchor:middle">(Proto-Runtime)</tspan></text> 25.172 + <text 25.173 + sodipodi:linespacing="100%" 25.174 + id="text12985-7" 25.175 + y="447.52585" 25.176 + x="229.1481" 25.177 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 25.178 + xml:space="preserve"><tspan 25.179 + y="447.52585" 25.180 + x="229.1481" 25.181 + id="tspan12987-4" 25.182 + sodipodi:role="line" 25.183 + style="text-align:center;text-anchor:middle">Assignment</tspan><tspan 25.184 + id="tspan3151" 25.185 + y="457.52585" 25.186 + x="229.1481" 25.187 + sodipodi:role="line" 25.188 + style="text-align:center;text-anchor:middle">of Work</tspan><tspan 25.189 + y="467.52585" 25.190 + x="229.1481" 25.191 + sodipodi:role="line" 25.192 + id="tspan12989-0" 25.193 + style="text-align:center;text-anchor:middle">onto Cores</tspan><tspan 25.194 + id="tspan3153" 25.195 + y="477.52585" 25.196 + x="229.1481" 25.197 + sodipodi:role="line" 25.198 + style="text-align:center;text-anchor:middle">Module</tspan></text> 25.199 + <text 25.200 + xml:space="preserve" 25.201 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 25.202 + x="193.25641" 25.203 + y="426.6572" 25.204 + id="text12985-8" 25.205 + sodipodi:linespacing="100%"><tspan 25.206 + style="text-align:center;text-anchor:middle;fill:#800000" 25.207 + id="tspan12989-4" 25.208 + sodipodi:role="line" 25.209 + x="193.25641" 25.210 + y="426.6572">Language Plug-in</tspan></text> 25.211 + <text 25.212 + xml:space="preserve" 25.213 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 25.214 + x="196.3902" 25.215 + y="493.19415" 25.216 + id="text12973-5" 25.217 + sodipodi:linespacing="100%"><tspan 25.218 + sodipodi:role="line" 25.219 + x="196.3902" 25.220 + y="493.19415" 25.221 + id="tspan3089-7" 25.222 + style="font-size:8px;text-align:center;text-anchor:middle">Hardware Abstraction Interface</tspan></text> 25.223 + <rect 25.224 + y="-495.43658" 25.225 + x="130.30118" 25.226 + height="9.1641436" 25.227 + width="131.7012" 25.228 + id="rect3204" 25.229 + style="fill:none;stroke:#000000;stroke-width:1.08018136;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 25.230 + transform="scale(1,-1)" /> 25.231 + <rect 25.232 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 25.233 + id="rect3217" 25.234 + width="65.276405" 25.235 + height="52.250008" 25.236 + x="130.40247" 25.237 + y="433.58255" /> 25.238 + <rect 25.239 + y="433.58255" 25.240 + x="196.40247" 25.241 + height="52.250008" 25.242 + width="65.276405" 25.243 + id="rect3219" 25.244 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 25.245 + <rect 25.246 + style="fill:none;stroke:#000080;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 25.247 + id="rect3289" 25.248 + width="148.27063" 25.249 + height="164.03113" 25.250 + x="121.82001" 25.251 + y="389.8118" /> 25.252 + <g 25.253 + id="g3303" 25.254 + transform="translate(-16,76)"> 25.255 + <rect 25.256 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 25.257 + id="rect3293" 25.258 + width="65.276405" 25.259 + height="52.250008" 25.260 + x="310.40247" 25.261 + y="313.58255" /> 25.262 + <text 25.263 + sodipodi:linespacing="100%" 25.264 + id="text3295" 25.265 + y="327.55026" 25.266 + x="343.00162" 25.267 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 25.268 + xml:space="preserve"><tspan 25.269 + id="tspan3301" 25.270 + y="327.55026" 25.271 + x="343.00162" 25.272 + sodipodi:role="line" 25.273 + style="text-align:center;text-anchor:middle">Seed VP</tspan></text> 25.274 + </g> 25.275 + <g 25.276 + id="g3314" 25.277 + transform="translate(-16,140)"> 25.278 + <rect 25.279 + y="313.58255" 25.280 + x="310.40247" 25.281 + height="52.250008" 25.282 + width="65.276405" 25.283 + id="rect3316" 25.284 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 25.285 + <text 25.286 + xml:space="preserve" 25.287 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 25.288 + x="343.00162" 25.289 + y="327.55026" 25.290 + id="text3318" 25.291 + sodipodi:linespacing="100%"><tspan 25.292 + style="text-align:center;text-anchor:middle" 25.293 + sodipodi:role="line" 25.294 + x="343.00162" 25.295 + y="327.55026" 25.296 + id="tspan3320">VP created</tspan><tspan 25.297 + style="text-align:center;text-anchor:middle" 25.298 + sodipodi:role="line" 25.299 + x="343.00162" 25.300 + y="337.55026" 25.301 + id="tspan3322">by Application</tspan></text> 25.302 + </g> 25.303 + <g 25.304 + transform="translate(-16,204)" 25.305 + id="g3340"> 25.306 + <rect 25.307 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 25.308 + id="rect3342" 25.309 + width="65.276405" 25.310 + height="52.250008" 25.311 + x="310.40247" 25.312 + y="313.58255" /> 25.313 + <text 25.314 + sodipodi:linespacing="100%" 25.315 + id="text3344" 25.316 + y="327.55026" 25.317 + x="343.00162" 25.318 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 25.319 + xml:space="preserve"><tspan 25.320 + id="tspan3346" 25.321 + y="327.55026" 25.322 + x="343.00162" 25.323 + sodipodi:role="line" 25.324 + style="text-align:center;text-anchor:middle">VP created</tspan><tspan 25.325 + id="tspan3348" 25.326 + y="337.55026" 25.327 + x="343.00162" 25.328 + sodipodi:role="line" 25.329 + style="text-align:center;text-anchor:middle">by Application</tspan></text> 25.330 + </g> 25.331 + <text 25.332 + xml:space="preserve" 25.333 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 25.334 + x="411.16797" 25.335 + y="369.42465" 25.336 + id="text3318-1" 25.337 + sodipodi:linespacing="100%"><tspan 25.338 + style="text-align:center;text-anchor:middle" 25.339 + sodipodi:role="line" 25.340 + x="411.16797" 25.341 + y="369.42465" 25.342 + id="tspan3322-5">Application Code</tspan></text> 25.343 + <text 25.344 + sodipodi:linespacing="100%" 25.345 + id="text3376" 25.346 + y="417.42465" 25.347 + x="411.16797" 25.348 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 25.349 + xml:space="preserve"><tspan 25.350 + id="tspan3378" 25.351 + y="417.42465" 25.352 + x="411.16797" 25.353 + sodipodi:role="line" 25.354 + style="text-align:center;text-anchor:middle">Seed_Fn</tspan></text> 25.355 + <text 25.356 + xml:space="preserve" 25.357 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 25.358 + x="411.16797" 25.359 + y="513.42468" 25.360 + id="text3380" 25.361 + sodipodi:linespacing="100%"><tspan 25.362 + style="text-align:center;text-anchor:middle" 25.363 + sodipodi:role="line" 25.364 + x="411.16797" 25.365 + y="513.42468" 25.366 + id="tspan3382">Work_Fn</tspan></text> 25.367 + <text 25.368 + sodipodi:linespacing="100%" 25.369 + id="text3384" 25.370 + y="505.42465" 25.371 + x="511.16797" 25.372 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 25.373 + xml:space="preserve"><tspan 25.374 + id="tspan3386" 25.375 + y="505.42465" 25.376 + x="511.16797" 25.377 + sodipodi:role="line" 25.378 + style="text-align:center;text-anchor:middle">prallelism_construct2_Fn</tspan></text> 25.379 + <text 25.380 + sodipodi:linespacing="100%" 25.381 + id="text3388" 25.382 + y="369.42465" 25.383 + x="509.16797" 25.384 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 25.385 + xml:space="preserve"><tspan 25.386 + id="tspan3390" 25.387 + y="369.42465" 25.388 + x="509.16797" 25.389 + sodipodi:role="line" 25.390 + style="text-align:center;text-anchor:middle">Language Wrapper Lib</tspan><tspan 25.391 + y="379.42465" 25.392 + x="509.16797" 25.393 + sodipodi:role="line" 25.394 + style="text-align:center;text-anchor:middle" 25.395 + id="tspan3392">Code</tspan></text> 25.396 + <text 25.397 + xml:space="preserve" 25.398 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 25.399 + x="619.16797" 25.400 + y="369.42465" 25.401 + id="text3394" 25.402 + sodipodi:linespacing="100%"><tspan 25.403 + style="text-align:center;text-anchor:middle" 25.404 + sodipodi:role="line" 25.405 + x="619.16797" 25.406 + y="369.42465" 25.407 + id="tspan3396">Proto-Runtime Primitive</tspan><tspan 25.408 + id="tspan3398" 25.409 + style="text-align:center;text-anchor:middle" 25.410 + sodipodi:role="line" 25.411 + x="619.16797" 25.412 + y="379.42465">Code</tspan></text> 25.413 + <text 25.414 + sodipodi:linespacing="100%" 25.415 + id="text3400" 25.416 + y="369.42465" 25.417 + x="67.167969" 25.418 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 25.419 + xml:space="preserve"><tspan 25.420 + id="tspan3402" 25.421 + y="369.42465" 25.422 + x="67.167969" 25.423 + sodipodi:role="line" 25.424 + style="text-align:center;text-anchor:middle">Language Plugin</tspan><tspan 25.425 + y="379.42465" 25.426 + x="67.167969" 25.427 + sodipodi:role="line" 25.428 + style="text-align:center;text-anchor:middle" 25.429 + id="tspan3404">Code</tspan></text> 25.430 + <text 25.431 + xml:space="preserve" 25.432 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 25.433 + x="-20.832031" 25.434 + y="369.42465" 25.435 + id="text3406" 25.436 + sodipodi:linespacing="100%"><tspan 25.437 + style="text-align:center;text-anchor:middle" 25.438 + sodipodi:role="line" 25.439 + x="-20.832031" 25.440 + y="369.42465" 25.441 + id="tspan3408">Proto-Runtime</tspan><tspan 25.442 + id="tspan3410" 25.443 + style="text-align:center;text-anchor:middle" 25.444 + sodipodi:role="line" 25.445 + x="-20.832031" 25.446 + y="379.42465">Code</tspan></text> 25.447 + <text 25.448 + xml:space="preserve" 25.449 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 25.450 + x="67.167969" 25.451 + y="439.42465" 25.452 + id="text3412" 25.453 + sodipodi:linespacing="100%"><tspan 25.454 + style="text-align:center;text-anchor:middle" 25.455 + sodipodi:role="line" 25.456 + x="67.167969" 25.457 + y="439.42465" 25.458 + id="tspan3414">Handler</tspan><tspan 25.459 + style="text-align:center;text-anchor:middle" 25.460 + sodipodi:role="line" 25.461 + x="67.167969" 25.462 + y="449.42465" 25.463 + id="tspan3418">for Language</tspan><tspan 25.464 + style="text-align:center;text-anchor:middle" 25.465 + sodipodi:role="line" 25.466 + x="67.167969" 25.467 + y="459.42465" 25.468 + id="tspan3422">Construct1</tspan></text> 25.469 + <text 25.470 + sodipodi:linespacing="100%" 25.471 + id="text3424" 25.472 + y="481.42465" 25.473 + x="67.167969" 25.474 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 25.475 + xml:space="preserve"><tspan 25.476 + id="tspan3426" 25.477 + y="481.42465" 25.478 + x="67.167969" 25.479 + sodipodi:role="line" 25.480 + style="text-align:center;text-anchor:middle">Handler</tspan><tspan 25.481 + id="tspan3428" 25.482 + y="491.42465" 25.483 + x="67.167969" 25.484 + sodipodi:role="line" 25.485 + style="text-align:center;text-anchor:middle">for Language</tspan><tspan 25.486 + id="tspan3430" 25.487 + y="501.42465" 25.488 + x="67.167969" 25.489 + sodipodi:role="line" 25.490 + style="text-align:center;text-anchor:middle">Construct2</tspan></text> 25.491 + <text 25.492 + xml:space="preserve" 25.493 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 25.494 + x="-14.832031" 25.495 + y="447.42465" 25.496 + id="text3432" 25.497 + sodipodi:linespacing="100%"><tspan 25.498 + style="text-align:center;text-anchor:middle" 25.499 + sodipodi:role="line" 25.500 + x="-14.832031" 25.501 + y="447.42465" 25.502 + id="tspan3438">Master Fn</tspan></text> 25.503 + <text 25.504 + xml:space="preserve" 25.505 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 25.506 + x="67.167969" 25.507 + y="531.42468" 25.508 + id="text3444" 25.509 + sodipodi:linespacing="100%"><tspan 25.510 + style="text-align:center;text-anchor:middle" 25.511 + sodipodi:role="line" 25.512 + x="67.167969" 25.513 + y="531.42468" 25.514 + id="tspan3450">Assigner Fn</tspan></text> 25.515 + <text 25.516 + xml:space="preserve" 25.517 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 25.518 + x="187.16797" 25.519 + y="369.42465" 25.520 + id="text3456" 25.521 + sodipodi:linespacing="100%"><tspan 25.522 + style="text-align:center;text-anchor:middle" 25.523 + sodipodi:role="line" 25.524 + x="187.16797" 25.525 + y="369.42465" 25.526 + id="tspan3458">Instance of runtime system</tspan><tspan 25.527 + id="tspan3460" 25.528 + style="text-align:center;text-anchor:middle" 25.529 + sodipodi:role="line" 25.530 + x="187.16797" 25.531 + y="379.42465" /></text> 25.532 + <text 25.533 + sodipodi:linespacing="100%" 25.534 + id="text3462" 25.535 + y="369.42465" 25.536 + x="329.16797" 25.537 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 25.538 + xml:space="preserve"><tspan 25.539 + id="tspan3464" 25.540 + y="369.42465" 25.541 + x="329.16797" 25.542 + sodipodi:role="line" 25.543 + style="text-align:center;text-anchor:middle">Instances of</tspan><tspan 25.544 + y="379.42465" 25.545 + x="329.16797" 25.546 + sodipodi:role="line" 25.547 + style="text-align:center;text-anchor:middle" 25.548 + id="tspan3468">Virtual Processors</tspan><tspan 25.549 + y="389.42465" 25.550 + x="329.16797" 25.551 + sodipodi:role="line" 25.552 + style="text-align:center;text-anchor:middle" 25.553 + id="tspan3466" /></text> 25.554 + <path 25.555 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:3,3;stroke-dashoffset:0" 25.556 + d="m 135.99815,448.02605 c -36.926653,0 -36.926653,0 -36.926653,0" 25.557 + id="path3470" 25.558 + inkscape:connector-curvature="0" /> 25.559 + <path 25.560 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:3,3;stroke-dashoffset:0" 25.561 + d="m 135.99815,464.23775 c -36.026003,21.6156 -36.026003,21.6156 -36.026003,21.6156" 25.562 + id="path3472" 25.563 + inkscape:connector-curvature="0" /> 25.564 + <path 25.565 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:3,3;stroke-dashoffset:0" 25.566 + d="M 205.34819,475.9462 C 98.170847,524.5813 98.170847,524.5813 98.170847,524.5813" 25.567 + id="path3474" 25.568 + inkscape:connector-curvature="0" /> 25.569 + <path 25.570 + inkscape:connector-curvature="0" 25.571 + id="path4796" 25.572 + d="m 352.24713,414.02605 c 36.92665,0 36.92665,0 36.92665,0" 25.573 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:3,3;stroke-dashoffset:0" /> 25.574 + <path 25.575 + inkscape:connector-curvature="0" 25.576 + id="path4798" 25.577 + d="m 347.34145,484.23775 c 36.026,21.6156 36.026,21.6156 36.026,21.6156" 25.578 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:3,3;stroke-dashoffset:0" /> 25.579 + <path 25.580 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:3,3;stroke-dashoffset:0" 25.581 + d="m 347.34145,538.0265 c 36.026,-21.6156 36.026,-21.6156 36.026,-21.6156" 25.582 + id="path4800" 25.583 + inkscape:connector-curvature="0" /> 25.584 + <path 25.585 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:3,3;stroke-dashoffset:0" 25.586 + d="M 143.20334,538.09105 C 33.324049,540.793 45.933148,547.09755 33.324049,540.793 20.714949,534.48845 3.6025999,454.3306 3.6025999,454.3306" 25.587 + id="path4804" 25.588 + inkscape:connector-curvature="0" 25.589 + sodipodi:nodetypes="csc" /> 25.590 + <text 25.591 + xml:space="preserve" 25.592 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 25.593 + x="511.16797" 25.594 + y="465.42465" 25.595 + id="text4988" 25.596 + sodipodi:linespacing="100%"><tspan 25.597 + style="text-align:center;text-anchor:middle" 25.598 + sodipodi:role="line" 25.599 + x="511.16797" 25.600 + y="465.42465" 25.601 + id="tspan4990">prallelism_construct1_Fn</tspan></text> 25.602 + <path 25.603 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 25.604 + d="m 408.02904,422.29841 c 0,38.61474 0,38.61474 0,38.61474" 25.605 + id="path4992" 25.606 + inkscape:connector-curvature="0" 25.607 + sodipodi:nodetypes="cc" /> 25.608 + <path 25.609 + sodipodi:nodetypes="cc" 25.610 + inkscape:connector-curvature="0" 25.611 + id="path4994" 25.612 + d="m 408.02904,522.29841 c 0,38.61474 0,38.61474 0,38.61474" 25.613 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 25.614 + <path 25.615 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 25.616 + d="m -15.97096,456.2984 c 0,76.74209 0,76.74209 0,76.74209" 25.617 + id="path4996" 25.618 + inkscape:connector-curvature="0" 25.619 + sodipodi:nodetypes="cc" /> 25.620 + </g> 25.621 +</svg>
26.1 Binary file 0__Papers/PRT/PRT__formal_def/figures/Proto-Runtime__modules_plus_plugin_plus_code.pdf has changed
27.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 27.2 +++ b/0__Papers/PRT/PRT__formal_def/figures/Proto-Runtime__modules_plus_plugin_plus_code.svg Sat Aug 03 19:24:22 2013 -0700 27.3 @@ -0,0 +1,2026 @@ 27.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 27.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 27.6 + 27.7 +<svg 27.8 + xmlns:dc="http://purl.org/dc/elements/1.1/" 27.9 + xmlns:cc="http://creativecommons.org/ns#" 27.10 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 27.11 + xmlns:svg="http://www.w3.org/2000/svg" 27.12 + xmlns="http://www.w3.org/2000/svg" 27.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 27.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 27.15 + width="744.09448819" 27.16 + height="1052.3622047" 27.17 + id="svg2" 27.18 + sodipodi:version="0.32" 27.19 + inkscape:version="0.48.2 r9819" 27.20 + sodipodi:docname="Proto-Runtime__modules_plus_plugin_plus_code.svg" 27.21 + inkscape:output_extension="org.inkscape.output.svg.inkscape" 27.22 + version="1.1"> 27.23 + <defs 27.24 + id="defs4"> 27.25 + <marker 27.26 + inkscape:stockid="Arrow2Mend" 27.27 + orient="auto" 27.28 + refY="0.0" 27.29 + refX="0.0" 27.30 + id="Arrow2Mend" 27.31 + style="overflow:visible;"> 27.32 + <path 27.33 + id="path4008" 27.34 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 27.35 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 27.36 + transform="scale(0.6) rotate(180) translate(0,0)" /> 27.37 + </marker> 27.38 + <inkscape:perspective 27.39 + sodipodi:type="inkscape:persp3d" 27.40 + inkscape:vp_x="0 : 526.18109 : 1" 27.41 + inkscape:vp_y="0 : 1000 : 0" 27.42 + inkscape:vp_z="744.09448 : 526.18109 : 1" 27.43 + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" 27.44 + id="perspective10" /> 27.45 + <inkscape:perspective 27.46 + id="perspective12172" 27.47 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 27.48 + inkscape:vp_z="1 : 0.5 : 1" 27.49 + inkscape:vp_y="0 : 1000 : 0" 27.50 + inkscape:vp_x="0 : 0.5 : 1" 27.51 + sodipodi:type="inkscape:persp3d" /> 27.52 + <inkscape:perspective 27.53 + id="perspective12937" 27.54 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 27.55 + inkscape:vp_z="1 : 0.5 : 1" 27.56 + inkscape:vp_y="0 : 1000 : 0" 27.57 + inkscape:vp_x="0 : 0.5 : 1" 27.58 + sodipodi:type="inkscape:persp3d" /> 27.59 + </defs> 27.60 + <sodipodi:namedview 27.61 + id="base" 27.62 + pagecolor="#ffffff" 27.63 + bordercolor="#666666" 27.64 + borderopacity="1.0" 27.65 + gridtolerance="10000" 27.66 + guidetolerance="10" 27.67 + objecttolerance="10" 27.68 + inkscape:pageopacity="0.0" 27.69 + inkscape:pageshadow="2" 27.70 + inkscape:zoom="1.05" 27.71 + inkscape:cx="290.73583" 27.72 + inkscape:cy="472.51234" 27.73 + inkscape:document-units="px" 27.74 + inkscape:current-layer="layer1" 27.75 + showgrid="false" 27.76 + inkscape:window-width="1600" 27.77 + inkscape:window-height="848" 27.78 + inkscape:window-x="-8" 27.79 + inkscape:window-y="-8" 27.80 + inkscape:window-maximized="1" /> 27.81 + <metadata 27.82 + id="metadata7"> 27.83 + <rdf:RDF> 27.84 + <cc:Work 27.85 + rdf:about=""> 27.86 + <dc:format>image/svg+xml</dc:format> 27.87 + <dc:type 27.88 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 27.89 + <dc:title></dc:title> 27.90 + </cc:Work> 27.91 + </rdf:RDF> 27.92 + </metadata> 27.93 + <g 27.94 + inkscape:label="Layer 1" 27.95 + inkscape:groupmode="layer" 27.96 + id="layer1"> 27.97 + <text 27.98 + sodipodi:linespacing="100%" 27.99 + id="text12979" 27.100 + y="353.76575" 27.101 + x="326.92542" 27.102 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.103 + xml:space="preserve"><tspan 27.104 + y="353.76575" 27.105 + x="326.92542" 27.106 + id="tspan12981" 27.107 + sodipodi:role="line" 27.108 + style="text-align:center;text-anchor:middle">Master</tspan><tspan 27.109 + y="362.20053" 27.110 + x="326.92542" 27.111 + sodipodi:role="line" 27.112 + id="tspan3291" 27.113 + style="font-size:8px;text-align:center;text-anchor:middle">(runtime system)</tspan><tspan 27.114 + y="370.20053" 27.115 + x="326.92542" 27.116 + sodipodi:role="line" 27.117 + style="font-size:8px;text-align:center;text-anchor:middle" 27.118 + id="tspan8409">on core 1</tspan></text> 27.119 + <g 27.120 + id="g9336" 27.121 + transform="translate(44.002789,-48)"> 27.122 + <rect 27.123 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 27.124 + id="rect3293" 27.125 + width="65.276405" 27.126 + height="37.165791" 27.127 + x="346.40247" 27.128 + y="389.58255" /> 27.129 + <text 27.130 + sodipodi:linespacing="100%" 27.131 + id="text3295" 27.132 + y="400.15268" 27.133 + x="379.00162" 27.134 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.135 + xml:space="preserve"><tspan 27.136 + id="tspan3301" 27.137 + y="400.15268" 27.138 + x="379.00162" 27.139 + sodipodi:role="line" 27.140 + style="text-align:center;text-anchor:middle;fill:#008000">Seed VP</tspan><tspan 27.141 + y="408.58746" 27.142 + x="379.00162" 27.143 + sodipodi:role="line" 27.144 + style="font-size:8px;text-align:center;text-anchor:middle;fill:#008000" 27.145 + id="tspan9389">(created at</tspan><tspan 27.146 + y="416.58746" 27.147 + x="379.00162" 27.148 + sodipodi:role="line" 27.149 + style="font-size:8px;text-align:center;text-anchor:middle;fill:#008000" 27.150 + id="tspan9391">app startup,</tspan><tspan 27.151 + y="424.58746" 27.152 + x="379.00162" 27.153 + sodipodi:role="line" 27.154 + style="font-size:8px;text-align:center;text-anchor:middle;fill:#008000" 27.155 + id="tspan9744">on core 1)</tspan></text> 27.156 + </g> 27.157 + <text 27.158 + xml:space="preserve" 27.159 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.160 + x="517.16797" 27.161 + y="307.42465" 27.162 + id="text3318-1" 27.163 + sodipodi:linespacing="100%"><tspan 27.164 + style="text-align:center;text-anchor:middle;fill:#008000" 27.165 + sodipodi:role="line" 27.166 + x="517.16797" 27.167 + y="307.42465" 27.168 + id="tspan3322-5">Application Code</tspan></text> 27.169 + <text 27.170 + sodipodi:linespacing="100%" 27.171 + id="text3376" 27.172 + y="379.42465" 27.173 + x="517.16797" 27.174 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.175 + xml:space="preserve"><tspan 27.176 + id="tspan3378" 27.177 + y="379.42465" 27.178 + x="517.16797" 27.179 + sodipodi:role="line" 27.180 + style="text-align:center;text-anchor:middle;fill:#008000">Seed_Fn</tspan></text> 27.181 + <text 27.182 + xml:space="preserve" 27.183 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.184 + x="517.16797" 27.185 + y="599.42468" 27.186 + id="text3380" 27.187 + sodipodi:linespacing="100%"><tspan 27.188 + style="text-align:center;text-anchor:middle;fill:#008000" 27.189 + sodipodi:role="line" 27.190 + x="517.16797" 27.191 + y="599.42468" 27.192 + id="tspan3382">Work_Fn</tspan></text> 27.193 + <text 27.194 + sodipodi:linespacing="100%" 27.195 + id="text3388" 27.196 + y="307.42465" 27.197 + x="604.63812" 27.198 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.199 + xml:space="preserve"><tspan 27.200 + id="tspan3390" 27.201 + y="307.42465" 27.202 + x="606.14203" 27.203 + sodipodi:role="line" 27.204 + style="text-align:center;text-anchor:middle;fill:#800000">Language </tspan><tspan 27.205 + y="317.42465" 27.206 + x="604.63812" 27.207 + sodipodi:role="line" 27.208 + style="text-align:center;text-anchor:middle;fill:#800000" 27.209 + id="tspan5106">Wrapper-Lib</tspan><tspan 27.210 + y="327.42465" 27.211 + x="604.63812" 27.212 + sodipodi:role="line" 27.213 + style="text-align:center;text-anchor:middle;fill:#800000" 27.214 + id="tspan3392">Code</tspan></text> 27.215 + <text 27.216 + xml:space="preserve" 27.217 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.218 + x="669.16797" 27.219 + y="307.42465" 27.220 + id="text3394" 27.221 + sodipodi:linespacing="100%"><tspan 27.222 + style="text-align:center;text-anchor:middle;fill:#000080" 27.223 + sodipodi:role="line" 27.224 + x="669.16797" 27.225 + y="307.42465" 27.226 + id="tspan3396">Proto-Runtime</tspan><tspan 27.227 + style="text-align:center;text-anchor:middle;fill:#000080" 27.228 + sodipodi:role="line" 27.229 + x="669.16797" 27.230 + y="317.42465" 27.231 + id="tspan4998">Primitive</tspan><tspan 27.232 + id="tspan3398" 27.233 + style="text-align:center;text-anchor:middle;fill:#000080" 27.234 + sodipodi:role="line" 27.235 + x="669.16797" 27.236 + y="327.42465">Code</tspan></text> 27.237 + <text 27.238 + xml:space="preserve" 27.239 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.240 + x="137.31689" 27.241 + y="411.42465" 27.242 + id="text3412" 27.243 + sodipodi:linespacing="100%"><tspan 27.244 + style="text-align:center;text-anchor:middle;fill:#800000" 27.245 + sodipodi:role="line" 27.246 + x="137.31689" 27.247 + y="411.42465" 27.248 + id="tspan3414">Lang Handler</tspan><tspan 27.249 + style="text-align:center;text-anchor:middle;fill:#800000" 27.250 + sodipodi:role="line" 27.251 + x="137.31689" 27.252 + y="421.42465" 27.253 + id="tspan3422">for create VP</tspan></text> 27.254 + <text 27.255 + xml:space="preserve" 27.256 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.257 + x="137.68066" 27.258 + y="459.42468" 27.259 + id="text3444" 27.260 + sodipodi:linespacing="100%"><tspan 27.261 + style="text-align:center;text-anchor:middle;fill:#800000" 27.262 + sodipodi:role="line" 27.263 + x="137.68066" 27.264 + y="459.42468" 27.265 + id="tspan3450">Assigner Fn</tspan></text> 27.266 + <text 27.267 + xml:space="preserve" 27.268 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.269 + x="327.16797" 27.270 + y="309.42465" 27.271 + id="text3456" 27.272 + sodipodi:linespacing="100%"><tspan 27.273 + style="text-align:center;text-anchor:middle" 27.274 + sodipodi:role="line" 27.275 + x="328.67188" 27.276 + y="309.42465" 27.277 + id="tspan3458">Instances of </tspan><tspan 27.278 + style="text-align:center;text-anchor:middle" 27.279 + sodipodi:role="line" 27.280 + x="327.16797" 27.281 + y="319.42465" 27.282 + id="tspan8405">runtime system</tspan><tspan 27.283 + style="font-size:8px;text-align:center;text-anchor:middle" 27.284 + sodipodi:role="line" 27.285 + x="327.16797" 27.286 + y="327.85944" 27.287 + id="tspan9383">(data structs</tspan><tspan 27.288 + style="font-size:8px;text-align:center;text-anchor:middle" 27.289 + sodipodi:role="line" 27.290 + x="327.16797" 27.291 + y="335.85944" 27.292 + id="tspan9385">on heap)</tspan><tspan 27.293 + id="tspan3460" 27.294 + style="text-align:center;text-anchor:middle" 27.295 + sodipodi:role="line" 27.296 + x="327.16797" 27.297 + y="343.85944" /></text> 27.298 + <text 27.299 + sodipodi:linespacing="100%" 27.300 + id="text3462" 27.301 + y="307.42465" 27.302 + x="423.16797" 27.303 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.304 + xml:space="preserve"><tspan 27.305 + id="tspan3464" 27.306 + y="307.42465" 27.307 + x="423.16797" 27.308 + sodipodi:role="line" 27.309 + style="text-align:center;text-anchor:middle">Instances of</tspan><tspan 27.310 + y="317.42465" 27.311 + x="423.16797" 27.312 + sodipodi:role="line" 27.313 + style="text-align:center;text-anchor:middle" 27.314 + id="tspan3468">Virtual Processors</tspan><tspan 27.315 + y="325.85944" 27.316 + x="423.16797" 27.317 + sodipodi:role="line" 27.318 + style="font-size:8px;text-align:center;text-anchor:middle" 27.319 + id="tspan3466">(data structs</tspan><tspan 27.320 + y="333.85944" 27.321 + x="423.16797" 27.322 + sodipodi:role="line" 27.323 + style="font-size:8px;text-align:center;text-anchor:middle" 27.324 + id="tspan9387">on heap)</tspan></text> 27.325 + <path 27.326 + inkscape:connector-curvature="0" 27.327 + id="path4796" 27.328 + d="m 457.32649,376.02605 c 38.42351,0 38.42351,0 38.42351,0" 27.329 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999996, 2.99999996;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 27.330 + <text 27.331 + xml:space="preserve" 27.332 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.333 + x="604.78461" 27.334 + y="373.42465" 27.335 + id="text4988" 27.336 + sodipodi:linespacing="100%"><tspan 27.337 + style="text-align:center;text-anchor:middle;fill:#800000" 27.338 + sodipodi:role="line" 27.339 + x="604.78461" 27.340 + y="373.42465" 27.341 + id="tspan4990">create VP</tspan><tspan 27.342 + style="text-align:center;text-anchor:middle;fill:#800000" 27.343 + sodipodi:role="line" 27.344 + x="604.78461" 27.345 + y="383.42465" 27.346 + id="tspan5104">wrapper Fn</tspan></text> 27.347 + <text 27.348 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)" 27.349 + xml:space="preserve" 27.350 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.351 + x="638.25385" 27.352 + y="404.96878" 27.353 + id="text5064" 27.354 + sodipodi:linespacing="100%"><tspan 27.355 + style="font-size:8px;text-align:center;text-anchor:middle" 27.356 + sodipodi:role="line" 27.357 + x="638.25385" 27.358 + y="404.96878" 27.359 + id="tspan5066">Call to dyn lib</tspan></text> 27.360 + <path 27.361 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000003, 3.00000003;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 27.362 + d="m 291.99816,376.02605 c -63.44071,0 -63.44071,0 -63.44071,0" 27.363 + id="path5068" 27.364 + inkscape:connector-curvature="0" /> 27.365 + <text 27.366 + sodipodi:linespacing="100%" 27.367 + id="text5070" 27.368 + y="415.78891" 27.369 + x="180.73463" 27.370 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.371 + xml:space="preserve" 27.372 + transform="matrix(0.97994281,-0.19927893,0.19927893,0.97994281,0,0)"><tspan 27.373 + id="tspan5072" 27.374 + y="415.78891" 27.375 + x="180.73463" 27.376 + sodipodi:role="line" 27.377 + style="font-size:8px;text-align:center;text-anchor:middle">Top Level Fn</tspan></text> 27.378 + <text 27.379 + transform="matrix(0.97994281,-0.19927893,0.19927893,0.97994281,0,0)" 27.380 + xml:space="preserve" 27.381 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.382 + x="400.64069" 27.383 + y="458.46729" 27.384 + id="text5074" 27.385 + sodipodi:linespacing="100%"><tspan 27.386 + style="font-size:8px;text-align:center;text-anchor:middle" 27.387 + sodipodi:role="line" 27.388 + x="400.64069" 27.389 + y="458.46729" 27.390 + id="tspan5076">Top Level Fn</tspan></text> 27.391 + <text 27.392 + sodipodi:linespacing="100%" 27.393 + id="text5078" 27.394 + y="674.45374" 27.395 + x="358.75928" 27.396 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.397 + xml:space="preserve" 27.398 + transform="matrix(0.97994281,-0.19927893,0.19927893,0.97994281,0,0)"><tspan 27.399 + id="tspan5080" 27.400 + y="674.45374" 27.401 + x="358.75928" 27.402 + sodipodi:role="line" 27.403 + style="font-size:8px;text-align:center;text-anchor:middle">Top Level Fn</tspan></text> 27.404 + <path 27.405 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999996, 2.99999996;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 27.406 + d="m 458.9835,596.02605 c 36.7665,0 36.7665,0 36.7665,0" 27.407 + id="path5082" 27.408 + inkscape:connector-curvature="0" /> 27.409 + <path 27.410 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 27.411 + d="m 514.02904,382.01894 c 0,5.6572 0,5.6572 0,5.6572" 27.412 + id="path5092" 27.413 + inkscape:connector-curvature="0" 27.414 + sodipodi:nodetypes="cc" /> 27.415 + <path 27.416 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 27.417 + d="m 514.24714,388.02605 c 85.56237,0 85.56237,0 85.56237,0" 27.418 + id="path5094" 27.419 + inkscape:connector-curvature="0" /> 27.420 + <path 27.421 + inkscape:connector-curvature="0" 27.422 + id="path5096" 27.423 + d="m 602.77166,496.02605 c -88.41298,0 -88.41298,0 -88.41298,0" 27.424 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 27.425 + <path 27.426 + sodipodi:nodetypes="cc" 27.427 + inkscape:connector-curvature="0" 27.428 + id="path5140" 27.429 + d="m 514.02904,496.31987 c 0,26.21842 0,26.21842 0,26.21842" 27.430 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 27.431 + <path 27.432 + inkscape:connector-curvature="0" 27.433 + id="path5142" 27.434 + d="m 514.2471,522.02605 c 87.58783,0 87.58783,0 87.58783,0" 27.435 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 27.436 + <text 27.437 + sodipodi:linespacing="100%" 27.438 + id="text5157" 27.439 + y="508.71182" 27.440 + x="604.78461" 27.441 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.442 + xml:space="preserve"><tspan 27.443 + id="tspan5161" 27.444 + y="508.71182" 27.445 + x="604.78461" 27.446 + sodipodi:role="line" 27.447 + style="text-align:center;text-anchor:middle;fill:#800000">end VP</tspan><tspan 27.448 + y="518.71179" 27.449 + x="604.78461" 27.450 + sodipodi:role="line" 27.451 + style="text-align:center;text-anchor:middle;fill:#800000" 27.452 + id="tspan5207">wrapper Fn</tspan></text> 27.453 + <path 27.454 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 27.455 + d="m 602.26584,528.02605 c 63.99676,0 63.99676,0 63.99676,0" 27.456 + id="path5165" 27.457 + inkscape:connector-curvature="0" /> 27.458 + <path 27.459 + sodipodi:nodetypes="cc" 27.460 + inkscape:connector-curvature="0" 27.461 + id="path5179" 27.462 + d="m 514.02904,602.01895 c 0,5.6572 0,5.6572 0,5.6572" 27.463 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 27.464 + <path 27.465 + sodipodi:nodetypes="cc" 27.466 + inkscape:connector-curvature="0" 27.467 + id="path5209" 27.468 + d="m 602.02904,520.31985 c 0,7.35629 0,7.35629 0,7.35629" 27.469 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 27.470 + <text 27.471 + xml:space="preserve" 27.472 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.473 + x="497.16797" 27.474 + y="399.42468" 27.475 + id="text5211" 27.476 + sodipodi:linespacing="100%"><tspan 27.477 + style="text-align:center;text-anchor:middle" 27.478 + sodipodi:role="line" 27.479 + x="497.16797" 27.480 + y="399.42468" 27.481 + id="tspan5215" /></text> 27.482 + <path 27.483 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 27.484 + d="m 602.02904,388.21843 c 0,19.4577 0,19.4577 0,19.4577" 27.485 + id="path5217" 27.486 + inkscape:connector-curvature="0" 27.487 + sodipodi:nodetypes="cc" /> 27.488 + <path 27.489 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 27.490 + d="m 602.24714,408.02605 c 64.71029,0 64.71029,0 64.71029,0" 27.491 + id="path5219" 27.492 + inkscape:connector-curvature="0" /> 27.493 + <path 27.494 + inkscape:connector-curvature="0" 27.495 + id="path5221" 27.496 + d="m 666.85635,492.02605 c -65.78483,0 -65.78483,0 -65.78483,0" 27.497 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 27.498 + <path 27.499 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 27.500 + d="m 668.02904,406.63925 c 0,13.68455 0,13.68455 0,13.68455" 27.501 + id="path5223" 27.502 + inkscape:connector-curvature="0" 27.503 + sodipodi:nodetypes="cc" /> 27.504 + <path 27.505 + sodipodi:nodetypes="cc" 27.506 + inkscape:connector-curvature="0" 27.507 + id="path5229" 27.508 + d="m 602.02904,491.22687 c 0,5.5885 0,5.5885 0,5.5885" 27.509 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 27.510 + <path 27.511 + sodipodi:nodetypes="cc" 27.512 + inkscape:connector-curvature="0" 27.513 + id="path5235" 27.514 + d="m 668.02904,478.63925 c 0,13.68455 0,13.68455 0,13.68455" 27.515 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 27.516 + <text 27.517 + sodipodi:linespacing="100%" 27.518 + id="text5239" 27.519 + y="770.82495" 27.520 + x="188.36783" 27.521 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.522 + xml:space="preserve" 27.523 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 27.524 + id="tspan5241" 27.525 + y="770.82495" 27.526 + x="188.36783" 27.527 + sodipodi:role="line" 27.528 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan><tspan 27.529 + y="778.82495" 27.530 + x="188.36783" 27.531 + sodipodi:role="line" 27.532 + style="font-size:8px;text-align:center;text-anchor:middle" 27.533 + id="tspan5243">and switch</tspan><tspan 27.534 + y="786.82495" 27.535 + x="188.36783" 27.536 + sodipodi:role="line" 27.537 + style="font-size:8px;text-align:center;text-anchor:middle" 27.538 + id="tspan5245">to runtime</tspan></text> 27.539 + <path 27.540 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 27.541 + d="m 271.03421,480.02605 c 193.92439,0 193.92439,0 193.92439,0" 27.542 + id="path5247" 27.543 + inkscape:connector-curvature="0" /> 27.544 + <text 27.545 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 27.546 + xml:space="preserve" 27.547 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.548 + x="157.7636" 27.549 + y="802.43799" 27.550 + id="text5249" 27.551 + sodipodi:linespacing="100%"><tspan 27.552 + id="tspan5255" 27.553 + style="font-size:8px;text-align:center;text-anchor:middle" 27.554 + sodipodi:role="line" 27.555 + x="157.7636" 27.556 + y="802.43799">return</tspan><tspan 27.557 + style="font-size:8px;text-align:center;text-anchor:middle" 27.558 + sodipodi:role="line" 27.559 + x="157.7636" 27.560 + y="810.43799" 27.561 + id="tspan5261">from</tspan><tspan 27.562 + style="font-size:8px;text-align:center;text-anchor:middle" 27.563 + sodipodi:role="line" 27.564 + x="157.7636" 27.565 + y="818.43799" 27.566 + id="tspan5263">suspend</tspan></text> 27.567 + <text 27.568 + sodipodi:linespacing="100%" 27.569 + id="text5345" 27.570 + y="395.42465" 27.571 + x="667.38037" 27.572 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.573 + xml:space="preserve"><tspan 27.574 + id="tspan5349" 27.575 + y="395.42465" 27.576 + x="667.38037" 27.577 + sodipodi:role="line" 27.578 + style="text-align:center;text-anchor:middle;fill:#000080">PR primitive Fn</tspan><tspan 27.579 + y="405.42465" 27.580 + x="667.38037" 27.581 + sodipodi:role="line" 27.582 + style="text-align:center;text-anchor:middle;fill:#000080" 27.583 + id="tspan5353">to send request</tspan></text> 27.584 + <text 27.585 + sodipodi:linespacing="100%" 27.586 + id="text5355" 27.587 + y="392.71429" 27.588 + x="555.29077" 27.589 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.590 + xml:space="preserve" 27.591 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 27.592 + id="tspan5357" 27.593 + y="392.71429" 27.594 + x="555.29077" 27.595 + sodipodi:role="line" 27.596 + style="font-size:8px;text-align:center;text-anchor:middle">normal call</tspan></text> 27.597 + <path 27.598 + sodipodi:nodetypes="cc" 27.599 + inkscape:connector-curvature="0" 27.600 + id="path5359" 27.601 + d="m 668.02904,527.28283 c 0,13.68455 0,13.68455 0,13.68455" 27.602 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 27.603 + <text 27.604 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 27.605 + xml:space="preserve" 27.606 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.607 + x="107.72998" 27.608 + y="856.99628" 27.609 + id="text5363" 27.610 + sodipodi:linespacing="100%"><tspan 27.611 + style="font-size:8px;text-align:center;text-anchor:middle" 27.612 + sodipodi:role="line" 27.613 + x="107.72998" 27.614 + y="856.99628" 27.615 + id="tspan5365">suspend</tspan><tspan 27.616 + id="tspan5367" 27.617 + style="font-size:8px;text-align:center;text-anchor:middle" 27.618 + sodipodi:role="line" 27.619 + x="107.72998" 27.620 + y="864.99628">and switch</tspan><tspan 27.621 + id="tspan5369" 27.622 + style="font-size:8px;text-align:center;text-anchor:middle" 27.623 + sodipodi:role="line" 27.624 + x="107.72998" 27.625 + y="872.99628">to runtime</tspan></text> 27.626 + <text 27.627 + sodipodi:linespacing="100%" 27.628 + id="text5371" 27.629 + y="593.42468" 27.630 + x="604.59662" 27.631 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.632 + xml:space="preserve"><tspan 27.633 + id="tspan5373" 27.634 + y="593.42468" 27.635 + x="604.59662" 27.636 + sodipodi:role="line" 27.637 + style="text-align:center;text-anchor:middle;fill:#800000">Mutex Acquire</tspan><tspan 27.638 + id="tspan5375" 27.639 + y="603.42468" 27.640 + x="604.59662" 27.641 + sodipodi:role="line" 27.642 + style="text-align:center;text-anchor:middle;fill:#800000">wrapper Fn</tspan></text> 27.643 + <path 27.644 + inkscape:connector-curvature="0" 27.645 + id="path5379" 27.646 + d="m 514.24714,608.02605 c 85.56237,0 85.56237,0 85.56237,0" 27.647 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 27.648 + <path 27.649 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 27.650 + d="m 602.77166,708.02605 c -88.41298,0 -88.41298,0 -88.41298,0" 27.651 + id="path5381" 27.652 + inkscape:connector-curvature="0" /> 27.653 + <text 27.654 + xml:space="preserve" 27.655 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.656 + x="604.78461" 27.657 + y="720.71179" 27.658 + id="text5387" 27.659 + sodipodi:linespacing="100%"><tspan 27.660 + style="text-align:center;text-anchor:middle;fill:#800000" 27.661 + sodipodi:role="line" 27.662 + x="604.78461" 27.663 + y="720.71179" 27.664 + id="tspan5389">end VP</tspan><tspan 27.665 + id="tspan5391" 27.666 + style="text-align:center;text-anchor:middle;fill:#800000" 27.667 + sodipodi:role="line" 27.668 + x="604.78461" 27.669 + y="730.71179">wrapper Fn</tspan></text> 27.670 + <path 27.671 + inkscape:connector-curvature="0" 27.672 + id="path5393" 27.673 + d="m 602.289,740.02605 c 65.24023,0 65.24023,0 65.24023,0" 27.674 + style="fill:none;stroke:#000000;stroke-width:0.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 27.675 + <path 27.676 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 27.677 + d="m 602.02904,732.31985 c 0,7.35629 0,7.35629 0,7.35629" 27.678 + id="path5401" 27.679 + inkscape:connector-curvature="0" 27.680 + sodipodi:nodetypes="cc" /> 27.681 + <path 27.682 + sodipodi:nodetypes="cc" 27.683 + inkscape:connector-curvature="0" 27.684 + id="path5403" 27.685 + d="m 602.02904,608.21843 c 0,19.4577 0,19.4577 0,19.4577" 27.686 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 27.687 + <path 27.688 + inkscape:connector-curvature="0" 27.689 + id="path5405" 27.690 + d="m 602.6148,628.02605 c 64.1779,0 64.1779,0 64.1779,0" 27.691 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 27.692 + <path 27.693 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 27.694 + d="m 668.13452,704.02605 c -67.06305,0 -67.06305,0 -67.06305,0" 27.695 + id="path5407" 27.696 + inkscape:connector-curvature="0" /> 27.697 + <path 27.698 + sodipodi:nodetypes="cc" 27.699 + inkscape:connector-curvature="0" 27.700 + id="path5409" 27.701 + d="m 668.02904,626.63925 c 0,13.68455 0,13.68455 0,13.68455" 27.702 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 27.703 + <path 27.704 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 27.705 + d="m 602.02904,703.22687 c 0,5.5885 0,5.5885 0,5.5885" 27.706 + id="path5411" 27.707 + inkscape:connector-curvature="0" 27.708 + sodipodi:nodetypes="cc" /> 27.709 + <path 27.710 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 27.711 + d="m 668.02904,690.63925 c 0,13.68455 0,13.68455 0,13.68455" 27.712 + id="path5417" 27.713 + inkscape:connector-curvature="0" 27.714 + sodipodi:nodetypes="cc" /> 27.715 + <text 27.716 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 27.717 + xml:space="preserve" 27.718 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.719 + x="38.175541" 27.720 + y="928.84552" 27.721 + id="text5421" 27.722 + sodipodi:linespacing="100%"><tspan 27.723 + style="font-size:8px;text-align:center;text-anchor:middle" 27.724 + sodipodi:role="line" 27.725 + x="38.175541" 27.726 + y="928.84552" 27.727 + id="tspan5423">suspend</tspan><tspan 27.728 + id="tspan5425" 27.729 + style="font-size:8px;text-align:center;text-anchor:middle" 27.730 + sodipodi:role="line" 27.731 + x="38.175541" 27.732 + y="936.84552">and switch</tspan><tspan 27.733 + id="tspan5427" 27.734 + style="font-size:8px;text-align:center;text-anchor:middle" 27.735 + sodipodi:role="line" 27.736 + x="38.175541" 27.737 + y="944.84552">to runtime</tspan></text> 27.738 + <text 27.739 + sodipodi:linespacing="100%" 27.740 + id="text5431" 27.741 + y="954.75671" 27.742 + x="10.307833" 27.743 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.744 + xml:space="preserve" 27.745 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 27.746 + y="954.75671" 27.747 + x="10.307833" 27.748 + sodipodi:role="line" 27.749 + style="font-size:8px;text-align:center;text-anchor:middle" 27.750 + id="tspan5433">return</tspan><tspan 27.751 + id="tspan5435" 27.752 + y="962.75671" 27.753 + x="10.307833" 27.754 + sodipodi:role="line" 27.755 + style="font-size:8px;text-align:center;text-anchor:middle">from</tspan><tspan 27.756 + id="tspan5437" 27.757 + y="970.75671" 27.758 + x="10.307833" 27.759 + sodipodi:role="line" 27.760 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan></text> 27.761 + <text 27.762 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 27.763 + xml:space="preserve" 27.764 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.765 + x="556.25635" 27.766 + y="612.71143" 27.767 + id="text5445" 27.768 + sodipodi:linespacing="100%"><tspan 27.769 + style="font-size:8px;text-align:center;text-anchor:middle" 27.770 + sodipodi:role="line" 27.771 + x="556.25635" 27.772 + y="612.71143" 27.773 + id="tspan5447">normal call</tspan></text> 27.774 + <path 27.775 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 27.776 + d="m 668.02904,739.28283 c 0,13.68455 0,13.68455 0,13.68455" 27.777 + id="path5449" 27.778 + inkscape:connector-curvature="0" 27.779 + sodipodi:nodetypes="cc" /> 27.780 + <text 27.781 + sodipodi:linespacing="100%" 27.782 + id="text5453" 27.783 + y="1012.1439" 27.784 + x="-39.679813" 27.785 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.786 + xml:space="preserve" 27.787 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 27.788 + id="tspan5455" 27.789 + y="1012.1439" 27.790 + x="-39.679813" 27.791 + sodipodi:role="line" 27.792 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan><tspan 27.793 + y="1020.1439" 27.794 + x="-39.679813" 27.795 + sodipodi:role="line" 27.796 + style="font-size:8px;text-align:center;text-anchor:middle" 27.797 + id="tspan5457">and switch</tspan><tspan 27.798 + y="1028.144" 27.799 + x="-39.679813" 27.800 + sodipodi:role="line" 27.801 + style="font-size:8px;text-align:center;text-anchor:middle" 27.802 + id="tspan5459">to runtime</tspan></text> 27.803 + <path 27.804 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 27.805 + d="m 514.02904,708.31987 c 0,26.21842 0,26.21842 0,26.21842" 27.806 + id="path5461" 27.807 + inkscape:connector-curvature="0" 27.808 + sodipodi:nodetypes="cc" /> 27.809 + <path 27.810 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 27.811 + d="m 514.2471,734.02605 c 87.58783,0 87.58783,0 87.58783,0" 27.812 + id="path5463" 27.813 + inkscape:connector-curvature="0" /> 27.814 + <text 27.815 + sodipodi:linespacing="100%" 27.816 + id="text5465" 27.817 + y="526.71161" 27.818 + x="555.8786" 27.819 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.820 + xml:space="preserve" 27.821 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 27.822 + id="tspan5467" 27.823 + y="526.71161" 27.824 + x="555.8786" 27.825 + sodipodi:role="line" 27.826 + style="font-size:8px;text-align:center;text-anchor:middle">normal call</tspan></text> 27.827 + <text 27.828 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 27.829 + xml:space="preserve" 27.830 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.831 + x="556.80994" 27.832 + y="738.711" 27.833 + id="text5469" 27.834 + sodipodi:linespacing="100%"><tspan 27.835 + style="font-size:8px;text-align:center;text-anchor:middle" 27.836 + sodipodi:role="line" 27.837 + x="556.80994" 27.838 + y="738.711" 27.839 + id="tspan5471">normal call</tspan></text> 27.840 + <g 27.841 + transform="matrix(1,0,0,0.71130685,-16,120.52913)" 27.842 + id="g8395"> 27.843 + <rect 27.844 + y="313.58255" 27.845 + x="310.40247" 27.846 + height="52.250008" 27.847 + width="65.276405" 27.848 + id="rect8397" 27.849 + style="fill:none;stroke:#000000;stroke-width:1.28076112;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 27.850 + </g> 27.851 + <path 27.852 + sodipodi:nodetypes="cc" 27.853 + inkscape:connector-curvature="0" 27.854 + id="path9273" 27.855 + d="m 514.02904,496.31987 c 0,26.21842 0,26.21842 0,26.21842" 27.856 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 27.857 + <path 27.858 + sodipodi:nodetypes="cc" 27.859 + inkscape:connector-curvature="0" 27.860 + id="path9275" 27.861 + d="m 476.02904,382.79398 c 0,35.61575 0,35.61575 0,35.61575" 27.862 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:none" /> 27.863 + <path 27.864 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 27.865 + d="m 468.24715,418.02605 c 13.34137,0 13.34137,0 13.34137,0" 27.866 + id="path9277" 27.867 + inkscape:connector-curvature="0" /> 27.868 + <path 27.869 + inkscape:connector-curvature="0" 27.870 + id="path9279" 27.871 + d="m 481.57781,480.02605 c -13.14022,0 -13.14022,0 -13.14022,0" 27.872 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 27.873 + <path 27.874 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" 27.875 + d="m 476.02904,480.3113 c 0,57.40944 0,57.40944 0,57.40944" 27.876 + id="path9281" 27.877 + inkscape:connector-curvature="0" 27.878 + sodipodi:nodetypes="cc" /> 27.879 + <path 27.880 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 27.881 + d="m 481.57781,539.27417 c -13.14022,0 -13.14022,0 -13.14022,0" 27.882 + id="path9283" 27.883 + inkscape:connector-curvature="0" /> 27.884 + <text 27.885 + transform="matrix(-0.01875541,0.9998241,-0.9998241,-0.01875541,0,0)" 27.886 + xml:space="preserve" 27.887 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.888 + x="453.93332" 27.889 + y="-466.39136" 27.890 + id="text9285" 27.891 + sodipodi:linespacing="100%"><tspan 27.892 + style="text-align:center;text-anchor:middle;fill:#008000" 27.893 + sodipodi:role="line" 27.894 + x="453.93332" 27.895 + y="-466.39136" 27.896 + id="tspan9287">Timeline of SeedVP</tspan></text> 27.897 + <text 27.898 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 27.899 + xml:space="preserve" 27.900 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.901 + x="485.39722" 27.902 + y="417.02103" 27.903 + id="text9289" 27.904 + sodipodi:linespacing="100%"><tspan 27.905 + style="font-size:8px;text-align:start;text-anchor:start" 27.906 + sodipodi:role="line" 27.907 + x="485.39722" 27.908 + y="417.02103" 27.909 + id="tspan9291">suspend</tspan></text> 27.910 + <text 27.911 + sodipodi:linespacing="100%" 27.912 + id="text9293" 27.913 + y="481.02048" 27.914 + x="485.67838" 27.915 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.916 + xml:space="preserve" 27.917 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 27.918 + id="tspan9295" 27.919 + y="481.02048" 27.920 + x="485.67838" 27.921 + sodipodi:role="line" 27.922 + style="font-size:8px;text-align:start;text-anchor:start">resume</tspan></text> 27.923 + <text 27.924 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 27.925 + xml:space="preserve" 27.926 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.927 + x="485.92978" 27.928 + y="538.22565" 27.929 + id="text9297" 27.930 + sodipodi:linespacing="100%"><tspan 27.931 + style="font-size:8px;text-align:start;text-anchor:start" 27.932 + sodipodi:role="line" 27.933 + x="485.92978" 27.934 + y="538.22565" 27.935 + id="tspan9299">end</tspan></text> 27.936 + <text 27.937 + sodipodi:linespacing="100%" 27.938 + id="text9301" 27.939 + y="307.42465" 27.940 + x="63.167969" 27.941 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.942 + xml:space="preserve"><tspan 27.943 + id="tspan9303" 27.944 + y="307.42465" 27.945 + x="63.167969" 27.946 + sodipodi:role="line" 27.947 + style="text-align:center;text-anchor:middle;fill:#000080">Proto-Runtime</tspan><tspan 27.948 + id="tspan9305" 27.949 + y="317.42465" 27.950 + x="63.167969" 27.951 + sodipodi:role="line" 27.952 + style="text-align:center;text-anchor:middle;fill:#000080">Primitive</tspan><tspan 27.953 + y="327.42465" 27.954 + x="63.167969" 27.955 + sodipodi:role="line" 27.956 + style="text-align:center;text-anchor:middle;fill:#000080" 27.957 + id="tspan9307">Code</tspan></text> 27.958 + <text 27.959 + xml:space="preserve" 27.960 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.961 + x="65.380371" 27.962 + y="423.42465" 27.963 + id="text9309" 27.964 + sodipodi:linespacing="100%"><tspan 27.965 + id="tspan9313" 27.966 + style="text-align:center;text-anchor:middle;fill:#000080" 27.967 + sodipodi:role="line" 27.968 + x="65.380371" 27.969 + y="423.42465">PR primitive Fn</tspan><tspan 27.970 + style="text-align:center;text-anchor:middle;fill:#000080" 27.971 + sodipodi:role="line" 27.972 + x="65.380371" 27.973 + y="433.42465" 27.974 + id="tspan9317">to create VP</tspan></text> 27.975 + <path 27.976 + inkscape:connector-curvature="0" 27.977 + id="path9321" 27.978 + d="m 101.87628,425.85467 c 83.54552,12.98474 93.01032,9.74762 154.91834,33.79457 83.60123,32.47325 132.79902,111.74825 132.79902,111.74825" 27.979 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000006, 3.00000006;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 27.980 + sodipodi:nodetypes="csc" /> 27.981 + <g 27.982 + id="g9341" 27.983 + transform="translate(44.002789,174)"> 27.984 + <rect 27.985 + y="389.58255" 27.986 + x="346.40247" 27.987 + height="37.165791" 27.988 + width="65.276405" 27.989 + id="rect9343" 27.990 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 27.991 + <text 27.992 + xml:space="preserve" 27.993 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.994 + x="379.35806" 27.995 + y="400.72159" 27.996 + id="text9345" 27.997 + sodipodi:linespacing="100%"><tspan 27.998 + style="text-align:center;text-anchor:middle;fill:#008000" 27.999 + sodipodi:role="line" 27.1000 + x="379.35806" 27.1001 + y="400.72159" 27.1002 + id="tspan9347">VP 1</tspan><tspan 27.1003 + style="font-size:8px;text-align:center;text-anchor:middle;fill:#008000" 27.1004 + sodipodi:role="line" 27.1005 + x="379.35806" 27.1006 + y="409.15637" 27.1007 + id="tspan9349">(created by</tspan><tspan 27.1008 + style="font-size:8px;text-align:center;text-anchor:middle;fill:#008000" 27.1009 + sodipodi:role="line" 27.1010 + x="379.35806" 27.1011 + y="417.15637" 27.1012 + id="tspan9355">application,</tspan><tspan 27.1013 + style="font-size:8px;text-align:center;text-anchor:middle;fill:#008000" 27.1014 + sodipodi:role="line" 27.1015 + x="379.35806" 27.1016 + y="425.15637" 27.1017 + id="tspan9746">on core 2)</tspan></text> 27.1018 + </g> 27.1019 + <g 27.1020 + transform="translate(44.002789,370)" 27.1021 + id="g9371" /> 27.1022 + <text 27.1023 + xml:space="preserve" 27.1024 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.1025 + x="202.41257" 27.1026 + y="379.42465" 27.1027 + id="text9512" 27.1028 + sodipodi:linespacing="100%"><tspan 27.1029 + style="text-align:center;text-anchor:middle;fill:#000080" 27.1030 + sodipodi:role="line" 27.1031 + x="202.41257" 27.1032 + y="379.42465" 27.1033 + id="tspan9514">Master Fn</tspan></text> 27.1034 + <path 27.1035 + sodipodi:nodetypes="cc" 27.1036 + inkscape:connector-curvature="0" 27.1037 + id="path9522" 27.1038 + d="m 205.27805,418.31985 c 0,7.35629 0,7.35629 0,7.35629" 27.1039 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 27.1040 + <path 27.1041 + inkscape:connector-curvature="0" 27.1042 + id="path9524" 27.1043 + d="m 205.05995,424.02605 c -67.19099,0 -67.19099,0 -67.19099,0" 27.1044 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 27.1045 + <path 27.1046 + sodipodi:nodetypes="cc" 27.1047 + inkscape:connector-curvature="0" 27.1048 + id="path9548" 27.1049 + d="m 137.27805,423.85824 c 0,11.43122 0,11.43122 0,11.43122" 27.1050 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 27.1051 + <path 27.1052 + inkscape:connector-curvature="0" 27.1053 + id="path9550" 27.1054 + d="m 137.57123,436.02605 c -69.22157,0 -69.22157,0 -69.22157,0" 27.1055 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 27.1056 + <path 27.1057 + sodipodi:nodetypes="cc" 27.1058 + inkscape:connector-curvature="0" 27.1059 + id="path9554" 27.1060 + d="m 205.27805,474.63925 c 0,4.54718 0,4.54718 0,4.54718" 27.1061 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 27.1062 + <text 27.1063 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 27.1064 + xml:space="preserve" 27.1065 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.1066 + x="-187.67645" 27.1067 + y="493.07611" 27.1068 + id="text9566" 27.1069 + sodipodi:linespacing="100%"><tspan 27.1070 + style="font-size:8px;text-align:center;text-anchor:middle" 27.1071 + sodipodi:role="line" 27.1072 + x="-187.67645" 27.1073 + y="493.07611" 27.1074 + id="tspan9568">suspend</tspan><tspan 27.1075 + id="tspan9570" 27.1076 + style="font-size:8px;text-align:center;text-anchor:middle" 27.1077 + sodipodi:role="line" 27.1078 + x="-187.67645" 27.1079 + y="501.07611">and switch</tspan><tspan 27.1080 + id="tspan9572" 27.1081 + style="font-size:8px;text-align:center;text-anchor:middle" 27.1082 + sodipodi:role="line" 27.1083 + x="-187.67645" 27.1084 + y="509.07611">to app VP</tspan></text> 27.1085 + <path 27.1086 + sodipodi:nodetypes="cc" 27.1087 + inkscape:connector-curvature="0" 27.1088 + id="path9614" 27.1089 + d="m 205.27805,418.31985 c 0,7.35629 0,7.35629 0,7.35629" 27.1090 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 27.1091 + <path 27.1092 + sodipodi:nodetypes="cc" 27.1093 + inkscape:connector-curvature="0" 27.1094 + id="path9616" 27.1095 + d="m 205.27805,418.31985 c 0,7.35629 0,7.35629 0,7.35629" 27.1096 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 27.1097 + <path 27.1098 + inkscape:connector-curvature="0" 27.1099 + id="path9648" 27.1100 + d="m 468.24715,383.42364 c 13.34137,0 13.34137,0 13.34137,0" 27.1101 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 27.1102 + <text 27.1103 + sodipodi:linespacing="100%" 27.1104 + id="text9654" 27.1105 + y="385.02261" 27.1106 + x="485.25659" 27.1107 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.1108 + xml:space="preserve" 27.1109 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 27.1110 + id="tspan9656" 27.1111 + y="385.02261" 27.1112 + x="485.25659" 27.1113 + sodipodi:role="line" 27.1114 + style="font-size:8px;text-align:start;text-anchor:start">start</tspan></text> 27.1115 + <path 27.1116 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:none" 27.1117 + d="m 476.02904,602.79398 c 0,35.61575 0,35.61575 0,35.61575" 27.1118 + id="path9658" 27.1119 + inkscape:connector-curvature="0" 27.1120 + sodipodi:nodetypes="cc" /> 27.1121 + <path 27.1122 + inkscape:connector-curvature="0" 27.1123 + id="path9660" 27.1124 + d="m 468.24715,638.02605 c 13.34137,0 13.34137,0 13.34137,0" 27.1125 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 27.1126 + <path 27.1127 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 27.1128 + d="m 481.57781,692.02605 c -13.14022,0 -13.14022,0 -13.14022,0" 27.1129 + id="path9662" 27.1130 + inkscape:connector-curvature="0" /> 27.1131 + <text 27.1132 + sodipodi:linespacing="100%" 27.1133 + id="text9668" 27.1134 + y="-464.48126" 27.1135 + x="672.00745" 27.1136 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.1137 + xml:space="preserve" 27.1138 + transform="matrix(-0.01875541,0.9998241,-0.9998241,-0.01875541,0,0)"><tspan 27.1139 + y="-464.48126" 27.1140 + x="672.00745" 27.1141 + sodipodi:role="line" 27.1142 + style="text-align:center;text-anchor:middle;fill:#008000" 27.1143 + id="tspan9740">Timeline of VP 1</tspan></text> 27.1144 + <text 27.1145 + sodipodi:linespacing="100%" 27.1146 + id="text9672" 27.1147 + y="637.01904" 27.1148 + x="486.36292" 27.1149 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.1150 + xml:space="preserve" 27.1151 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 27.1152 + id="tspan9674" 27.1153 + y="637.01904" 27.1154 + x="486.36292" 27.1155 + sodipodi:role="line" 27.1156 + style="font-size:8px;text-align:start;text-anchor:start">suspend</tspan></text> 27.1157 + <text 27.1158 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 27.1159 + xml:space="preserve" 27.1160 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.1161 + x="486.6088" 27.1162 + y="693.01855" 27.1163 + id="text9676" 27.1164 + sodipodi:linespacing="100%"><tspan 27.1165 + style="font-size:8px;text-align:start;text-anchor:start" 27.1166 + sodipodi:role="line" 27.1167 + x="486.6088" 27.1168 + y="693.01855" 27.1169 + id="tspan9678">resume</tspan></text> 27.1170 + <path 27.1171 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 27.1172 + d="m 468.24715,603.42364 c 13.34137,0 13.34137,0 13.34137,0" 27.1173 + id="path9684" 27.1174 + inkscape:connector-curvature="0" /> 27.1175 + <text 27.1176 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 27.1177 + xml:space="preserve" 27.1178 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.1179 + x="486.22229" 27.1180 + y="605.02063" 27.1181 + id="text9686" 27.1182 + sodipodi:linespacing="100%"><tspan 27.1183 + style="font-size:8px;text-align:start;text-anchor:start" 27.1184 + sodipodi:role="line" 27.1185 + x="486.22229" 27.1186 + y="605.02063" 27.1187 + id="tspan9688">start</tspan></text> 27.1188 + <path 27.1189 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:none" 27.1190 + d="m 266.02904,417.4311 c 0,61.88904 0,61.88904 0,61.88904" 27.1191 + id="path9690" 27.1192 + inkscape:connector-curvature="0" 27.1193 + sodipodi:nodetypes="cc" /> 27.1194 + <path 27.1195 + inkscape:connector-curvature="0" 27.1196 + id="path9692" 27.1197 + d="m 258.24715,418.02605 c 13.34137,0 13.34137,0 13.34137,0" 27.1198 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 27.1199 + <path 27.1200 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 27.1201 + d="m 271.57781,480.02605 c -13.14022,0 -13.14022,0 -13.14022,0" 27.1202 + id="path9694" 27.1203 + inkscape:connector-curvature="0" /> 27.1204 + <text 27.1205 + sodipodi:linespacing="100%" 27.1206 + id="text9700" 27.1207 + y="-276.70538" 27.1208 + x="463.34042" 27.1209 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.1210 + xml:space="preserve" 27.1211 + transform="matrix(0.00239328,0.99999714,-0.99999714,0.00239328,0,0)"><tspan 27.1212 + y="-276.70538" 27.1213 + x="463.34042" 27.1214 + sodipodi:role="line" 27.1215 + style="text-align:center;text-anchor:middle;fill:#000080" 27.1216 + id="tspan9736">Timeline of Master on core 1</tspan></text> 27.1217 + <text 27.1218 + sodipodi:linespacing="100%" 27.1219 + id="text9704" 27.1220 + y="480.12692" 27.1221 + x="261.37079" 27.1222 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.1223 + xml:space="preserve" 27.1224 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 27.1225 + id="tspan9706" 27.1226 + y="480.12692" 27.1227 + x="261.37079" 27.1228 + sodipodi:role="line" 27.1229 + style="font-size:8px;text-align:end;text-anchor:end">suspend</tspan></text> 27.1230 + <text 27.1231 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 27.1232 + xml:space="preserve" 27.1233 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.1234 + x="258.65039" 27.1235 + y="420.12738" 27.1236 + id="text9708" 27.1237 + sodipodi:linespacing="100%"><tspan 27.1238 + style="font-size:8px;text-align:end;text-anchor:end" 27.1239 + sodipodi:role="line" 27.1240 + x="258.65039" 27.1241 + y="420.12738" 27.1242 + id="tspan9710">resume</tspan></text> 27.1243 + <path 27.1244 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 27.1245 + d="m 258.24715,383.42364 c 13.34137,0 13.34137,0 13.34137,0" 27.1246 + id="path9716" 27.1247 + inkscape:connector-curvature="0" /> 27.1248 + <text 27.1249 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 27.1250 + xml:space="preserve" 27.1251 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.1252 + x="257.70789" 27.1253 + y="386.09387" 27.1254 + id="text9718" 27.1255 + sodipodi:linespacing="100%"><tspan 27.1256 + style="font-size:8px;text-align:end;text-anchor:end" 27.1257 + sodipodi:role="line" 27.1258 + x="257.70789" 27.1259 + y="386.09387" 27.1260 + id="tspan9720">start</tspan></text> 27.1261 + <path 27.1262 + sodipodi:nodetypes="cc" 27.1263 + inkscape:connector-curvature="0" 27.1264 + id="path9722" 27.1265 + d="m 266.02904,537.43112 c 0,10.33165 0,10.33165 0,10.33165" 27.1266 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" /> 27.1267 + <path 27.1268 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 27.1269 + d="m 258.24715,538.02605 c 13.34137,0 13.34137,0 13.34137,0" 27.1270 + id="path9724" 27.1271 + inkscape:connector-curvature="0" /> 27.1272 + <text 27.1273 + sodipodi:linespacing="100%" 27.1274 + id="text9936" 27.1275 + y="624.93951" 27.1276 + x="641.89471" 27.1277 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.1278 + xml:space="preserve" 27.1279 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)"><tspan 27.1280 + id="tspan9938" 27.1281 + y="624.93951" 27.1282 + x="641.89471" 27.1283 + sodipodi:role="line" 27.1284 + style="font-size:8px;text-align:center;text-anchor:middle">Call to dyn lib</tspan></text> 27.1285 + <text 27.1286 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)" 27.1287 + xml:space="preserve" 27.1288 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.1289 + x="643.74738" 27.1290 + y="736.927" 27.1291 + id="text9940" 27.1292 + sodipodi:linespacing="100%"><tspan 27.1293 + style="font-size:8px;text-align:center;text-anchor:middle" 27.1294 + sodipodi:role="line" 27.1295 + x="643.74738" 27.1296 + y="736.927" 27.1297 + id="tspan9942">Call to dyn lib</tspan></text> 27.1298 + <text 27.1299 + sodipodi:linespacing="100%" 27.1300 + id="text9944" 27.1301 + y="524.9541" 27.1302 + x="640.23999" 27.1303 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.1304 + xml:space="preserve" 27.1305 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)"><tspan 27.1306 + id="tspan9946" 27.1307 + y="524.9541" 27.1308 + x="640.23999" 27.1309 + sodipodi:role="line" 27.1310 + style="font-size:8px;text-align:center;text-anchor:middle">Call to dyn lib</tspan></text> 27.1311 + <text 27.1312 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)" 27.1313 + xml:space="preserve" 27.1314 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.1315 + x="112.79035" 27.1316 + y="441.66806" 27.1317 + id="text9948" 27.1318 + sodipodi:linespacing="100%"><tspan 27.1319 + style="font-size:8px;text-align:center;text-anchor:middle" 27.1320 + sodipodi:role="line" 27.1321 + x="112.79035" 27.1322 + y="441.66806" 27.1323 + id="tspan9950">call to dyn lib</tspan></text> 27.1324 + <path 27.1325 + inkscape:connector-curvature="0" 27.1326 + id="path9952" 27.1327 + d="m 701.67453,480.02605 c -669.895225,0 -669.895225,0 -669.895225,0" 27.1328 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" /> 27.1329 + <path 27.1330 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" 27.1331 + d="m 701.67453,417.52981 c -669.895225,0 -669.895225,0 -669.895225,0" 27.1332 + id="path9954" 27.1333 + inkscape:connector-curvature="0" /> 27.1334 + <text 27.1335 + xml:space="preserve" 27.1336 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.1337 + x="326.92542" 27.1338 + y="577.76575" 27.1339 + id="text9956" 27.1340 + sodipodi:linespacing="100%"><tspan 27.1341 + style="text-align:center;text-anchor:middle" 27.1342 + sodipodi:role="line" 27.1343 + id="tspan9958" 27.1344 + x="326.92542" 27.1345 + y="577.76575">Master</tspan><tspan 27.1346 + style="font-size:8px;text-align:center;text-anchor:middle" 27.1347 + id="tspan9960" 27.1348 + sodipodi:role="line" 27.1349 + x="326.92542" 27.1350 + y="586.2005">(runtime system)</tspan><tspan 27.1351 + id="tspan9962" 27.1352 + style="font-size:8px;text-align:center;text-anchor:middle" 27.1353 + sodipodi:role="line" 27.1354 + x="326.92542" 27.1355 + y="594.2005">on core 2</tspan></text> 27.1356 + <path 27.1357 + inkscape:connector-curvature="0" 27.1358 + id="path9970" 27.1359 + d="m 291.99816,596.02605 c -63.44071,0 -63.44071,0 -63.44071,0" 27.1360 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000003, 3.00000003;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 27.1361 + <g 27.1362 + id="g9972" 27.1363 + transform="matrix(1,0,0,0.71130685,-16,342.52913)"> 27.1364 + <rect 27.1365 + style="fill:none;stroke:#000000;stroke-width:1.28076112;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 27.1366 + id="rect9974" 27.1367 + width="65.276405" 27.1368 + height="52.250008" 27.1369 + x="310.40247" 27.1370 + y="313.58255" /> 27.1371 + </g> 27.1372 + <text 27.1373 + sodipodi:linespacing="100%" 27.1374 + id="text9982" 27.1375 + y="599.42468" 27.1376 + x="202.41257" 27.1377 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.1378 + xml:space="preserve"><tspan 27.1379 + id="tspan9984" 27.1380 + y="599.42468" 27.1381 + x="202.41257" 27.1382 + sodipodi:role="line" 27.1383 + style="text-align:center;text-anchor:middle;fill:#000080">Master Fn</tspan></text> 27.1384 + <path 27.1385 + sodipodi:nodetypes="cc" 27.1386 + inkscape:connector-curvature="0" 27.1387 + id="path10010" 27.1388 + d="m 266.02904,637.43113 c 0,54.93536 0,54.93536 0,54.93536" 27.1389 + style="fill:none;stroke:#000000;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:none" /> 27.1390 + <path 27.1391 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 27.1392 + d="m 258.24715,638.02605 c 13.34137,0 13.34137,0 13.34137,0" 27.1393 + id="path10012" 27.1394 + inkscape:connector-curvature="0" /> 27.1395 + <path 27.1396 + inkscape:connector-curvature="0" 27.1397 + id="path10014" 27.1398 + d="m 271.57781,692.02605 c -13.14022,0 -13.14022,0 -13.14022,0" 27.1399 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 27.1400 + <text 27.1401 + transform="matrix(0.00962718,0.99995366,-0.99995366,0.00962718,0,0)" 27.1402 + xml:space="preserve" 27.1403 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.1404 + x="675.3847" 27.1405 + y="-275.31226" 27.1406 + id="text10018" 27.1407 + sodipodi:linespacing="100%"><tspan 27.1408 + id="tspan10020" 27.1409 + style="text-align:center;text-anchor:middle;fill:#000080" 27.1410 + sodipodi:role="line" 27.1411 + x="675.3847" 27.1412 + y="-275.31226">Timeline of Master on core 2</tspan></text> 27.1413 + <path 27.1414 + inkscape:connector-curvature="0" 27.1415 + id="path10030" 27.1416 + d="m 258.24715,603.42364 c 13.34137,0 13.34137,0 13.34137,0" 27.1417 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 27.1418 + <path 27.1419 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000002, 3.00000002;stroke-dashoffset:0" 27.1420 + d="m 205.27805,381.45805 c 0,3.23577 0,3.23577 0,3.23577" 27.1421 + id="path10054" 27.1422 + inkscape:connector-curvature="0" 27.1423 + sodipodi:nodetypes="cc" /> 27.1424 + <path 27.1425 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" 27.1426 + d="m 701.67453,692.02605 c -669.895225,0 -669.895225,0 -669.895225,0" 27.1427 + id="path10056" 27.1428 + inkscape:connector-curvature="0" /> 27.1429 + <path 27.1430 + inkscape:connector-curvature="0" 27.1431 + id="path10058" 27.1432 + d="m 701.67453,637.52981 c -669.895225,0 -669.895225,0 -669.895225,0" 27.1433 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" /> 27.1434 + <text 27.1435 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 27.1436 + xml:space="preserve" 27.1437 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.1438 + x="-135.75337" 27.1439 + y="434.7803" 27.1440 + id="text10062" 27.1441 + sodipodi:linespacing="100%"><tspan 27.1442 + id="tspan10068" 27.1443 + style="font-size:8px;text-align:center;text-anchor:middle" 27.1444 + sodipodi:role="line" 27.1445 + x="-135.75337" 27.1446 + y="434.7803">return from</tspan><tspan 27.1447 + style="font-size:8px;text-align:center;text-anchor:middle" 27.1448 + sodipodi:role="line" 27.1449 + x="-135.75337" 27.1450 + y="442.7803" 27.1451 + id="tspan10074">suspend</tspan></text> 27.1452 + <path 27.1453 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" 27.1454 + d="m 701.67453,538.02605 c -669.895225,0 -669.895225,0 -669.895225,0" 27.1455 + id="path10076" 27.1456 + inkscape:connector-curvature="0" /> 27.1457 + <text 27.1458 + xml:space="preserve" 27.1459 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.1460 + x="667.38037" 27.1461 + y="515.42468" 27.1462 + id="text10082" 27.1463 + sodipodi:linespacing="100%"><tspan 27.1464 + style="text-align:center;text-anchor:middle;fill:#000080" 27.1465 + sodipodi:role="line" 27.1466 + x="667.38037" 27.1467 + y="515.42468" 27.1468 + id="tspan10084">PR primitive Fn</tspan><tspan 27.1469 + id="tspan10086" 27.1470 + style="text-align:center;text-anchor:middle;fill:#000080" 27.1471 + sodipodi:role="line" 27.1472 + x="667.38037" 27.1473 + y="525.42468">to send request</tspan></text> 27.1474 + <text 27.1475 + sodipodi:linespacing="100%" 27.1476 + id="text10088" 27.1477 + y="615.42468" 27.1478 + x="667.38037" 27.1479 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.1480 + xml:space="preserve"><tspan 27.1481 + id="tspan10090" 27.1482 + y="615.42468" 27.1483 + x="667.38037" 27.1484 + sodipodi:role="line" 27.1485 + style="text-align:center;text-anchor:middle;fill:#000080">PR primitive Fn</tspan><tspan 27.1486 + y="625.42468" 27.1487 + x="667.38037" 27.1488 + sodipodi:role="line" 27.1489 + style="text-align:center;text-anchor:middle;fill:#000080" 27.1490 + id="tspan10092">to send request</tspan></text> 27.1491 + <text 27.1492 + xml:space="preserve" 27.1493 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.1494 + x="667.38037" 27.1495 + y="727.42468" 27.1496 + id="text10094" 27.1497 + sodipodi:linespacing="100%"><tspan 27.1498 + style="text-align:center;text-anchor:middle;fill:#000080" 27.1499 + sodipodi:role="line" 27.1500 + x="667.38037" 27.1501 + y="727.42468" 27.1502 + id="tspan10096">PR primitive Fn</tspan><tspan 27.1503 + id="tspan10098" 27.1504 + style="text-align:center;text-anchor:middle;fill:#000080" 27.1505 + sodipodi:role="line" 27.1506 + x="667.38037" 27.1507 + y="737.42468">to send request</tspan></text> 27.1508 + <path 27.1509 + sodipodi:nodetypes="cc" 27.1510 + inkscape:connector-curvature="0" 27.1511 + id="path10100" 27.1512 + d="m 476.02904,692.3113 c 0,57.40944 0,57.40944 0,57.40944" 27.1513 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" /> 27.1514 + <path 27.1515 + inkscape:connector-curvature="0" 27.1516 + id="path10102" 27.1517 + d="m 481.57781,751.27417 c -13.14022,0 -13.14022,0 -13.14022,0" 27.1518 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 27.1519 + <text 27.1520 + sodipodi:linespacing="100%" 27.1521 + id="text10104" 27.1522 + y="750.22363" 27.1523 + x="486.86038" 27.1524 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.1525 + xml:space="preserve" 27.1526 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 27.1527 + id="tspan10106" 27.1528 + y="750.22363" 27.1529 + x="486.86038" 27.1530 + sodipodi:role="line" 27.1531 + style="font-size:8px;text-align:start;text-anchor:start">end</tspan></text> 27.1532 + <path 27.1533 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" 27.1534 + d="m 266.02904,749.43112 c 0,10.33165 0,10.33165 0,10.33165" 27.1535 + id="path10108" 27.1536 + inkscape:connector-curvature="0" 27.1537 + sodipodi:nodetypes="cc" /> 27.1538 + <path 27.1539 + inkscape:connector-curvature="0" 27.1540 + id="path10110" 27.1541 + d="m 258.24715,750.02605 c 13.34137,0 13.34137,0 13.34137,0" 27.1542 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 27.1543 + <path 27.1544 + inkscape:connector-curvature="0" 27.1545 + id="path10116" 27.1546 + d="m 701.67453,750.02605 c -669.895225,0 -669.895225,0 -669.895225,0" 27.1547 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" /> 27.1548 + <text 27.1549 + sodipodi:linespacing="100%" 27.1550 + id="text10118" 27.1551 + y="540.12653" 27.1552 + x="259.17728" 27.1553 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.1554 + xml:space="preserve" 27.1555 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 27.1556 + id="tspan10120" 27.1557 + y="540.12653" 27.1558 + x="259.17728" 27.1559 + sodipodi:role="line" 27.1560 + style="font-size:8px;text-align:end;text-anchor:end">resume</tspan></text> 27.1561 + <text 27.1562 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 27.1563 + xml:space="preserve" 27.1564 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.1565 + x="259.61627" 27.1566 + y="640.12561" 27.1567 + id="text10122" 27.1568 + sodipodi:linespacing="100%"><tspan 27.1569 + style="font-size:8px;text-align:end;text-anchor:end" 27.1570 + sodipodi:role="line" 27.1571 + x="259.61627" 27.1572 + y="640.12561" 27.1573 + id="tspan10124">resume</tspan></text> 27.1574 + <text 27.1575 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 27.1576 + xml:space="preserve" 27.1577 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.1578 + x="262.3013" 27.1579 + y="692.12494" 27.1580 + id="text10126" 27.1581 + sodipodi:linespacing="100%"><tspan 27.1582 + style="font-size:8px;text-align:end;text-anchor:end" 27.1583 + sodipodi:role="line" 27.1584 + x="262.3013" 27.1585 + y="692.12494" 27.1586 + id="tspan10128">suspend</tspan></text> 27.1587 + <text 27.1588 + sodipodi:linespacing="100%" 27.1589 + id="text10130" 27.1590 + y="606.09192" 27.1591 + x="258.67368" 27.1592 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.1593 + xml:space="preserve" 27.1594 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 27.1595 + id="tspan10132" 27.1596 + y="606.09192" 27.1597 + x="258.67368" 27.1598 + sodipodi:role="line" 27.1599 + style="font-size:8px;text-align:end;text-anchor:end">start</tspan></text> 27.1600 + <text 27.1601 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 27.1602 + xml:space="preserve" 27.1603 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.1604 + x="260.10779" 27.1605 + y="752.12427" 27.1606 + id="text10134" 27.1607 + sodipodi:linespacing="100%"><tspan 27.1608 + style="font-size:8px;text-align:end;text-anchor:end" 27.1609 + sodipodi:role="line" 27.1610 + x="260.10779" 27.1611 + y="752.12427" 27.1612 + id="tspan10136">resume</tspan></text> 27.1613 + <text 27.1614 + xml:space="preserve" 27.1615 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.1616 + x="136.99219" 27.1617 + y="307.42465" 27.1618 + id="text10146" 27.1619 + sodipodi:linespacing="100%"><tspan 27.1620 + style="text-align:center;text-anchor:middle;fill:#800000" 27.1621 + sodipodi:role="line" 27.1622 + x="138.49609" 27.1623 + y="307.42465" 27.1624 + id="tspan10148">Language </tspan><tspan 27.1625 + id="tspan10150" 27.1626 + style="text-align:center;text-anchor:middle;fill:#800000" 27.1627 + sodipodi:role="line" 27.1628 + x="136.99219" 27.1629 + y="317.42465">Plugin</tspan><tspan 27.1630 + id="tspan10152" 27.1631 + style="text-align:center;text-anchor:middle;fill:#800000" 27.1632 + sodipodi:role="line" 27.1633 + x="136.99219" 27.1634 + y="327.42465">Code</tspan></text> 27.1635 + <text 27.1636 + xml:space="preserve" 27.1637 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.1638 + x="203.16797" 27.1639 + y="307.42465" 27.1640 + id="text10154" 27.1641 + sodipodi:linespacing="100%"><tspan 27.1642 + style="text-align:center;text-anchor:middle;fill:#000080" 27.1643 + sodipodi:role="line" 27.1644 + x="203.16797" 27.1645 + y="307.42465" 27.1646 + id="tspan10156">Proto-Runtime</tspan><tspan 27.1647 + style="text-align:center;text-anchor:middle;fill:#000080" 27.1648 + sodipodi:role="line" 27.1649 + x="203.16797" 27.1650 + y="317.42465" 27.1651 + id="tspan10158">Master</tspan><tspan 27.1652 + id="tspan10160" 27.1653 + style="text-align:center;text-anchor:middle;fill:#000080" 27.1654 + sodipodi:role="line" 27.1655 + x="203.16797" 27.1656 + y="327.42465">Code</tspan></text> 27.1657 + <path 27.1658 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 27.1659 + d="m 205.05995,424.02605 c -67.19099,0 -67.19099,0 -67.19099,0" 27.1660 + id="path10162" 27.1661 + inkscape:connector-curvature="0" /> 27.1662 + <path 27.1663 + inkscape:connector-curvature="0" 27.1664 + id="path10164" 27.1665 + d="m 137.04459,474.02605 c 67.19099,0 67.19099,0 67.19099,0" 27.1666 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 27.1667 + <path 27.1668 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 27.1669 + d="m 67.525286,448.02605 c 69.221574,0 69.221574,0 69.221574,0" 27.1670 + id="path10166" 27.1671 + inkscape:connector-curvature="0" /> 27.1672 + <path 27.1673 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 27.1674 + d="m 67.27805,435.85824 c 0,13.94668 0,13.94668 0,13.94668" 27.1675 + id="path10168" 27.1676 + inkscape:connector-curvature="0" 27.1677 + sodipodi:nodetypes="cc" /> 27.1678 + <path 27.1679 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 27.1680 + d="m 137.04459,450.02605 c 67.19099,0 67.19099,0 67.19099,0" 27.1681 + id="path10172" 27.1682 + inkscape:connector-curvature="0" /> 27.1683 + <path 27.1684 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 27.1685 + d="m 205.27805,450.63926 c 0,11.23237 0,11.23237 0,11.23237" 27.1686 + id="path10174" 27.1687 + inkscape:connector-curvature="0" 27.1688 + sodipodi:nodetypes="cc" /> 27.1689 + <path 27.1690 + inkscape:connector-curvature="0" 27.1691 + id="path10176" 27.1692 + d="m 205.05995,462.02605 c -67.19099,0 -67.19099,0 -67.19099,0" 27.1693 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 27.1694 + <text 27.1695 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)" 27.1696 + xml:space="preserve" 27.1697 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.1698 + x="189.17583" 27.1699 + y="464.4057" 27.1700 + id="text10178" 27.1701 + sodipodi:linespacing="100%"><tspan 27.1702 + style="font-size:7px;text-align:center;text-anchor:middle" 27.1703 + sodipodi:role="line" 27.1704 + x="189.17583" 27.1705 + y="464.4057" 27.1706 + id="tspan10180">call via Ptr to Dyn Lib Fn</tspan></text> 27.1707 + <path 27.1708 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 27.1709 + d="m 137.27805,461.85824 c 0,11.43122 0,11.43122 0,11.43122" 27.1710 + id="path10182" 27.1711 + inkscape:connector-curvature="0" 27.1712 + sodipodi:nodetypes="cc" /> 27.1713 + <text 27.1714 + sodipodi:linespacing="100%" 27.1715 + id="text10184" 27.1716 + y="426.41092" 27.1717 + x="188.54729" 27.1718 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.1719 + xml:space="preserve" 27.1720 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)"><tspan 27.1721 + id="tspan10186" 27.1722 + y="426.41092" 27.1723 + x="188.54729" 27.1724 + sodipodi:role="line" 27.1725 + style="font-size:7px;text-align:center;text-anchor:middle">call via Ptr to Dyn Lib Fn</tspan></text> 27.1726 + <text 27.1727 + sodipodi:linespacing="100%" 27.1728 + id="text10188" 27.1729 + y="629.42468" 27.1730 + x="137.31689" 27.1731 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.1732 + xml:space="preserve"><tspan 27.1733 + id="tspan10190" 27.1734 + y="629.42468" 27.1735 + x="137.31689" 27.1736 + sodipodi:role="line" 27.1737 + style="text-align:center;text-anchor:middle;fill:#800000">Lang Handler</tspan><tspan 27.1738 + id="tspan10192" 27.1739 + y="639.42468" 27.1740 + x="137.31689" 27.1741 + sodipodi:role="line" 27.1742 + style="text-align:center;text-anchor:middle;fill:#800000">for acq Mutex</tspan></text> 27.1743 + <path 27.1744 + sodipodi:nodetypes="cc" 27.1745 + inkscape:connector-curvature="0" 27.1746 + id="path10230" 27.1747 + d="m 205.27805,601.45805 c 0,3.23576 0,3.23576 0,3.23576" 27.1748 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 27.1749 + <path 27.1750 + inkscape:connector-curvature="0" 27.1751 + id="path4879" 27.1752 + d="m 465.78297,538.02605 c -193.92439,0 -193.92439,0 -193.92439,0" 27.1753 + style="fill:none;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 27.1754 + <path 27.1755 + inkscape:connector-curvature="0" 27.1756 + id="path5395" 27.1757 + d="m 466.19516,418.02605 c -193.92439,0 -193.92439,0 -193.92439,0" 27.1758 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 27.1759 + <path 27.1760 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 27.1761 + d="m 466.19516,638.02605 c -193.92439,0 -193.92439,0 -193.92439,0" 27.1762 + id="path5397" 27.1763 + inkscape:connector-curvature="0" /> 27.1764 + <path 27.1765 + inkscape:connector-curvature="0" 27.1766 + id="path5399" 27.1767 + d="m 466.19516,750.02605 c -193.92439,0 -193.92439,0 -193.92439,0" 27.1768 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 27.1769 + <path 27.1770 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 27.1771 + d="m 271.03421,692.02605 c 193.92439,0 193.92439,0 193.92439,0" 27.1772 + id="path5402" 27.1773 + inkscape:connector-curvature="0" /> 27.1774 + <text 27.1775 + sodipodi:linespacing="100%" 27.1776 + id="text5410" 27.1777 + y="671.42468" 27.1778 + x="137.68066" 27.1779 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.1780 + xml:space="preserve"><tspan 27.1781 + id="tspan5412" 27.1782 + y="671.42468" 27.1783 + x="137.68066" 27.1784 + sodipodi:role="line" 27.1785 + style="text-align:center;text-anchor:middle;fill:#800000">Assigner Fn</tspan></text> 27.1786 + <path 27.1787 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 27.1788 + d="m 205.27805,638.31985 c 0,7.35629 0,7.35629 0,7.35629" 27.1789 + id="path5420" 27.1790 + inkscape:connector-curvature="0" 27.1791 + sodipodi:nodetypes="cc" /> 27.1792 + <path 27.1793 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 27.1794 + d="m 205.05995,644.02605 c -67.19099,0 -67.19099,0 -67.19099,0" 27.1795 + id="path5422" 27.1796 + inkscape:connector-curvature="0" /> 27.1797 + <path 27.1798 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 27.1799 + d="m 137.27805,643.85824 c 0,11.43122 0,11.43122 0,11.43122" 27.1800 + id="path5424" 27.1801 + inkscape:connector-curvature="0" 27.1802 + sodipodi:nodetypes="cc" /> 27.1803 + <path 27.1804 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 27.1805 + d="m 205.27805,686.63925 c 0,4.54718 0,4.54718 0,4.54718" 27.1806 + id="path5428" 27.1807 + inkscape:connector-curvature="0" 27.1808 + sodipodi:nodetypes="cc" /> 27.1809 + <text 27.1810 + sodipodi:linespacing="100%" 27.1811 + id="text5430" 27.1812 + y="645.39423" 27.1813 + x="-335.13254" 27.1814 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.1815 + xml:space="preserve" 27.1816 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 27.1817 + id="tspan5432" 27.1818 + y="645.39423" 27.1819 + x="-335.13254" 27.1820 + sodipodi:role="line" 27.1821 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan><tspan 27.1822 + y="653.39423" 27.1823 + x="-335.13254" 27.1824 + sodipodi:role="line" 27.1825 + style="font-size:8px;text-align:center;text-anchor:middle" 27.1826 + id="tspan5434">and switch</tspan><tspan 27.1827 + y="661.39423" 27.1828 + x="-335.13254" 27.1829 + sodipodi:role="line" 27.1830 + style="font-size:8px;text-align:center;text-anchor:middle" 27.1831 + id="tspan5436">to app VP</tspan></text> 27.1832 + <path 27.1833 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 27.1834 + d="m 205.27805,638.31985 c 0,7.35629 0,7.35629 0,7.35629" 27.1835 + id="path5438" 27.1836 + inkscape:connector-curvature="0" 27.1837 + sodipodi:nodetypes="cc" /> 27.1838 + <path 27.1839 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 27.1840 + d="m 205.27805,638.31985 c 0,7.35629 0,7.35629 0,7.35629" 27.1841 + id="path5440" 27.1842 + inkscape:connector-curvature="0" 27.1843 + sodipodi:nodetypes="cc" /> 27.1844 + <text 27.1845 + sodipodi:linespacing="100%" 27.1846 + id="text5446" 27.1847 + y="592.84631" 27.1848 + x="-288.77386" 27.1849 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.1850 + xml:space="preserve" 27.1851 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 27.1852 + y="592.84631" 27.1853 + x="-288.77386" 27.1854 + sodipodi:role="line" 27.1855 + style="font-size:8px;text-align:center;text-anchor:middle" 27.1856 + id="tspan5448">return from</tspan><tspan 27.1857 + id="tspan5450" 27.1858 + y="600.84631" 27.1859 + x="-288.77386" 27.1860 + sodipodi:role="line" 27.1861 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan></text> 27.1862 + <path 27.1863 + inkscape:connector-curvature="0" 27.1864 + id="path5452" 27.1865 + d="m 205.05995,644.02605 c -67.19099,0 -67.19099,0 -67.19099,0" 27.1866 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 27.1867 + <path 27.1868 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 27.1869 + d="m 137.04459,686.02605 c 67.19099,0 67.19099,0 67.19099,0" 27.1870 + id="path5454" 27.1871 + inkscape:connector-curvature="0" /> 27.1872 + <path 27.1873 + inkscape:connector-curvature="0" 27.1874 + id="path5460" 27.1875 + d="m 137.04459,658.02605 c 67.19099,0 67.19099,0 67.19099,0" 27.1876 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 27.1877 + <path 27.1878 + sodipodi:nodetypes="cc" 27.1879 + inkscape:connector-curvature="0" 27.1880 + id="path5462" 27.1881 + d="m 205.27805,658.63927 c 0,14.88618 0,14.88618 0,14.88618" 27.1882 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 27.1883 + <path 27.1884 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 27.1885 + d="m 205.05995,674.02605 c -67.19099,0 -67.19099,0 -67.19099,0" 27.1886 + id="path5464" 27.1887 + inkscape:connector-curvature="0" /> 27.1888 + <text 27.1889 + sodipodi:linespacing="100%" 27.1890 + id="text5466" 27.1891 + y="676.37714" 27.1892 + x="192.68279" 27.1893 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.1894 + xml:space="preserve" 27.1895 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)"><tspan 27.1896 + id="tspan5468" 27.1897 + y="676.37714" 27.1898 + x="192.68279" 27.1899 + sodipodi:role="line" 27.1900 + style="font-size:7px;text-align:center;text-anchor:middle">call via Ptr to Dyn Lib Fn</tspan></text> 27.1901 + <path 27.1902 + sodipodi:nodetypes="cc" 27.1903 + inkscape:connector-curvature="0" 27.1904 + id="path5470" 27.1905 + d="m 137.27805,673.85824 c 0,11.43122 0,11.43122 0,11.43122" 27.1906 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 27.1907 + <text 27.1908 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)" 27.1909 + xml:space="preserve" 27.1910 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.1911 + x="192.18657" 27.1912 + y="646.38098" 27.1913 + id="text5472" 27.1914 + sodipodi:linespacing="100%"><tspan 27.1915 + style="font-size:7px;text-align:center;text-anchor:middle" 27.1916 + sodipodi:role="line" 27.1917 + x="192.18657" 27.1918 + y="646.38098" 27.1919 + id="tspan5474">call via Ptr to Dyn Lib Fn</tspan></text> 27.1920 + <text 27.1921 + sodipodi:linespacing="100%" 27.1922 + id="text5476" 27.1923 + y="597.08801" 27.1924 + x="-60.107929" 27.1925 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.1926 + xml:space="preserve" 27.1927 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 27.1928 + y="597.08801" 27.1929 + x="-60.107929" 27.1930 + sodipodi:role="line" 27.1931 + style="font-size:18px;text-align:center;text-anchor:middle" 27.1932 + id="tspan5482">core 1</tspan></text> 27.1933 + <text 27.1934 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 27.1935 + xml:space="preserve" 27.1936 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.1937 + x="-208.35422" 27.1938 + y="748.6394" 27.1939 + id="text5488" 27.1940 + sodipodi:linespacing="100%"><tspan 27.1941 + id="tspan5490" 27.1942 + style="font-size:18px;text-align:center;text-anchor:middle" 27.1943 + sodipodi:role="line" 27.1944 + x="-208.35422" 27.1945 + y="748.6394">core 2</tspan></text> 27.1946 + <path 27.1947 + sodipodi:nodetypes="cc" 27.1948 + inkscape:connector-curvature="0" 27.1949 + id="path5492" 27.1950 + d="m 205.27805,752.31985 c 0,7.35629 0,7.35629 0,7.35629" 27.1951 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 27.1952 + <path 27.1953 + sodipodi:nodetypes="cc" 27.1954 + inkscape:connector-curvature="0" 27.1955 + id="path5494" 27.1956 + d="m 205.27805,752.31985 c 0,7.35629 0,7.35629 0,7.35629" 27.1957 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 27.1958 + <path 27.1959 + sodipodi:nodetypes="cc" 27.1960 + inkscape:connector-curvature="0" 27.1961 + id="path5496" 27.1962 + d="m 205.27805,752.31985 c 0,7.35629 0,7.35629 0,7.35629" 27.1963 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 27.1964 + <text 27.1965 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 27.1966 + xml:space="preserve" 27.1967 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.1968 + x="-368.06558" 27.1969 + y="674.7525" 27.1970 + id="text5498" 27.1971 + sodipodi:linespacing="100%"><tspan 27.1972 + id="tspan5500" 27.1973 + style="font-size:8px;text-align:center;text-anchor:middle" 27.1974 + sodipodi:role="line" 27.1975 + x="-368.06558" 27.1976 + y="674.7525">return from</tspan><tspan 27.1977 + style="font-size:8px;text-align:center;text-anchor:middle" 27.1978 + sodipodi:role="line" 27.1979 + x="-368.06558" 27.1980 + y="682.7525" 27.1981 + id="tspan5502">suspend</tspan></text> 27.1982 + <path 27.1983 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 27.1984 + d="m 205.27805,538.31985 c 0,7.35629 0,7.35629 0,7.35629" 27.1985 + id="path5504" 27.1986 + inkscape:connector-curvature="0" 27.1987 + sodipodi:nodetypes="cc" /> 27.1988 + <path 27.1989 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 27.1990 + d="m 205.27805,538.31985 c 0,7.35629 0,7.35629 0,7.35629" 27.1991 + id="path5506" 27.1992 + inkscape:connector-curvature="0" 27.1993 + sodipodi:nodetypes="cc" /> 27.1994 + <path 27.1995 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 27.1996 + d="m 205.27805,538.31985 c 0,7.35629 0,7.35629 0,7.35629" 27.1997 + id="path5508" 27.1998 + inkscape:connector-curvature="0" 27.1999 + sodipodi:nodetypes="cc" /> 27.2000 + <text 27.2001 + sodipodi:linespacing="100%" 27.2002 + id="text5510" 27.2003 + y="520.99878" 27.2004 + x="-219.21922" 27.2005 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 27.2006 + xml:space="preserve" 27.2007 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 27.2008 + y="520.99878" 27.2009 + x="-219.21922" 27.2010 + sodipodi:role="line" 27.2011 + style="font-size:8px;text-align:center;text-anchor:middle" 27.2012 + id="tspan5512">return from</tspan><tspan 27.2013 + id="tspan5514" 27.2014 + y="528.99878" 27.2015 + x="-219.21922" 27.2016 + sodipodi:role="line" 27.2017 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan></text> 27.2018 + <path 27.2019 + inkscape:connector-curvature="0" 27.2020 + id="path5516" 27.2021 + d="m 271.03421,604.02605 c 193.92439,0 193.92439,0 193.92439,0" 27.2022 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 27.2023 + <path 27.2024 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 27.2025 + d="m 271.03421,384.02605 c 193.92439,0 193.92439,0 193.92439,0" 27.2026 + id="path5518" 27.2027 + inkscape:connector-curvature="0" /> 27.2028 + </g> 27.2029 +</svg>
28.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 28.2 +++ b/0__Papers/PRT/PRT__formal_def/figures/Proto-Runtime__modules_plus_plugin_plus_code_back.svg Sat Aug 03 19:24:22 2013 -0700 28.3 @@ -0,0 +1,1678 @@ 28.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 28.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 28.6 + 28.7 +<svg 28.8 + xmlns:dc="http://purl.org/dc/elements/1.1/" 28.9 + xmlns:cc="http://creativecommons.org/ns#" 28.10 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 28.11 + xmlns:svg="http://www.w3.org/2000/svg" 28.12 + xmlns="http://www.w3.org/2000/svg" 28.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 28.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 28.15 + width="744.09448819" 28.16 + height="1052.3622047" 28.17 + id="svg2" 28.18 + sodipodi:version="0.32" 28.19 + inkscape:version="0.48.2 r9819" 28.20 + sodipodi:docname="Proto-Runtime__modules_plus_plugin_plus_code.svg" 28.21 + inkscape:output_extension="org.inkscape.output.svg.inkscape" 28.22 + version="1.1"> 28.23 + <defs 28.24 + id="defs4"> 28.25 + <marker 28.26 + inkscape:stockid="Arrow2Mend" 28.27 + orient="auto" 28.28 + refY="0.0" 28.29 + refX="0.0" 28.30 + id="Arrow2Mend" 28.31 + style="overflow:visible;"> 28.32 + <path 28.33 + id="path4008" 28.34 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 28.35 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 28.36 + transform="scale(0.6) rotate(180) translate(0,0)" /> 28.37 + </marker> 28.38 + <inkscape:perspective 28.39 + sodipodi:type="inkscape:persp3d" 28.40 + inkscape:vp_x="0 : 526.18109 : 1" 28.41 + inkscape:vp_y="0 : 1000 : 0" 28.42 + inkscape:vp_z="744.09448 : 526.18109 : 1" 28.43 + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" 28.44 + id="perspective10" /> 28.45 + <inkscape:perspective 28.46 + id="perspective12172" 28.47 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 28.48 + inkscape:vp_z="1 : 0.5 : 1" 28.49 + inkscape:vp_y="0 : 1000 : 0" 28.50 + inkscape:vp_x="0 : 0.5 : 1" 28.51 + sodipodi:type="inkscape:persp3d" /> 28.52 + <inkscape:perspective 28.53 + id="perspective12937" 28.54 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 28.55 + inkscape:vp_z="1 : 0.5 : 1" 28.56 + inkscape:vp_y="0 : 1000 : 0" 28.57 + inkscape:vp_x="0 : 0.5 : 1" 28.58 + sodipodi:type="inkscape:persp3d" /> 28.59 + </defs> 28.60 + <sodipodi:namedview 28.61 + id="base" 28.62 + pagecolor="#ffffff" 28.63 + bordercolor="#666666" 28.64 + borderopacity="1.0" 28.65 + gridtolerance="10000" 28.66 + guidetolerance="10" 28.67 + objecttolerance="10" 28.68 + inkscape:pageopacity="0.0" 28.69 + inkscape:pageshadow="2" 28.70 + inkscape:zoom="1.553811" 28.71 + inkscape:cx="311.64997" 28.72 + inkscape:cy="481.64087" 28.73 + inkscape:document-units="px" 28.74 + inkscape:current-layer="layer1" 28.75 + showgrid="false" 28.76 + inkscape:window-width="1600" 28.77 + inkscape:window-height="848" 28.78 + inkscape:window-x="-8" 28.79 + inkscape:window-y="-8" 28.80 + inkscape:window-maximized="1" /> 28.81 + <metadata 28.82 + id="metadata7"> 28.83 + <rdf:RDF> 28.84 + <cc:Work 28.85 + rdf:about=""> 28.86 + <dc:format>image/svg+xml</dc:format> 28.87 + <dc:type 28.88 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 28.89 + <dc:title></dc:title> 28.90 + </cc:Work> 28.91 + </rdf:RDF> 28.92 + </metadata> 28.93 + <g 28.94 + inkscape:label="Layer 1" 28.95 + inkscape:groupmode="layer" 28.96 + id="layer1"> 28.97 + <rect 28.98 + y="757.82239" 28.99 + x="-46.677368" 28.100 + height="69.307014" 28.101 + width="137.26534" 28.102 + id="rect12977" 28.103 + style="opacity:0.41346154;fill:none;stroke:#800000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:4.32072507, 4.32072507;stroke-dashoffset:0" /> 28.104 + <text 28.105 + sodipodi:linespacing="100%" 28.106 + id="text12979" 28.107 + y="399.76575" 28.108 + x="228.92543" 28.109 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.110 + xml:space="preserve"><tspan 28.111 + y="399.76575" 28.112 + x="228.92543" 28.113 + id="tspan12981" 28.114 + sodipodi:role="line" 28.115 + style="text-align:center;text-anchor:middle">Master</tspan><tspan 28.116 + y="408.20053" 28.117 + x="228.92543" 28.118 + sodipodi:role="line" 28.119 + id="tspan3291" 28.120 + style="font-size:8px;text-align:center;text-anchor:middle">(runtime system)</tspan><tspan 28.121 + y="416.20053" 28.122 + x="228.92543" 28.123 + sodipodi:role="line" 28.124 + style="font-size:8px;text-align:center;text-anchor:middle" 28.125 + id="tspan8409">on core 1</tspan></text> 28.126 + <text 28.127 + sodipodi:linespacing="100%" 28.128 + id="text12985" 28.129 + y="787.55029" 28.130 + x="-10.998383" 28.131 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;opacity:0.41346154;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.132 + xml:space="preserve"><tspan 28.133 + y="787.55029" 28.134 + x="-10.998383" 28.135 + sodipodi:role="line" 28.136 + id="tspan12989" 28.137 + style="text-align:center;text-anchor:middle">Construct</tspan><tspan 28.138 + id="tspan3147" 28.139 + y="797.55029" 28.140 + x="-10.998383" 28.141 + sodipodi:role="line" 28.142 + style="text-align:center;text-anchor:middle">Semantics</tspan><tspan 28.143 + id="tspan3149" 28.144 + y="807.55029" 28.145 + x="-10.998383" 28.146 + sodipodi:role="line" 28.147 + style="text-align:center;text-anchor:middle">Module</tspan></text> 28.148 + <rect 28.149 + style="opacity:0.41346154;fill:none;stroke:#000000;stroke-width:1.08018136;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 28.150 + id="rect12971" 28.151 + width="131.7012" 28.152 + height="52.250008" 28.153 + x="-43.698822" 28.154 + y="835.43658" /> 28.155 + <text 28.156 + xml:space="preserve" 28.157 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;opacity:0.41346154;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.158 + x="22.334869" 28.159 + y="855.20319" 28.160 + id="text12973" 28.161 + sodipodi:linespacing="100%"><tspan 28.162 + sodipodi:role="line" 28.163 + id="tspan12975" 28.164 + x="22.334869" 28.165 + y="855.20319" 28.166 + style="text-align:center;text-anchor:middle">Hardware Specific Module</tspan><tspan 28.167 + sodipodi:role="line" 28.168 + x="22.334869" 28.169 + y="865.20319" 28.170 + style="text-align:center;text-anchor:middle" 28.171 + id="tspan3155" /><tspan 28.172 + sodipodi:role="line" 28.173 + x="22.334869" 28.174 + y="873.63794" 28.175 + id="tspan3089" 28.176 + style="font-size:8px;text-align:center;text-anchor:middle">(Proto-Runtime)</tspan></text> 28.177 + <text 28.178 + sodipodi:linespacing="100%" 28.179 + id="text12985-7" 28.180 + y="787.52588" 28.181 + x="55.148102" 28.182 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;opacity:0.41346154;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.183 + xml:space="preserve"><tspan 28.184 + y="787.52588" 28.185 + x="55.148102" 28.186 + id="tspan12987-4" 28.187 + sodipodi:role="line" 28.188 + style="text-align:center;text-anchor:middle">Assignment</tspan><tspan 28.189 + id="tspan3151" 28.190 + y="797.52588" 28.191 + x="55.148102" 28.192 + sodipodi:role="line" 28.193 + style="text-align:center;text-anchor:middle">of Work</tspan><tspan 28.194 + y="807.52588" 28.195 + x="55.148102" 28.196 + sodipodi:role="line" 28.197 + id="tspan12989-0" 28.198 + style="text-align:center;text-anchor:middle">onto Cores</tspan><tspan 28.199 + id="tspan3153" 28.200 + y="817.52588" 28.201 + x="55.148102" 28.202 + sodipodi:role="line" 28.203 + style="text-align:center;text-anchor:middle">Module</tspan></text> 28.204 + <text 28.205 + xml:space="preserve" 28.206 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;opacity:0.41346154;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.207 + x="19.256409" 28.208 + y="766.65723" 28.209 + id="text12985-8" 28.210 + sodipodi:linespacing="100%"><tspan 28.211 + style="text-align:center;text-anchor:middle;fill:#800000" 28.212 + id="tspan12989-4" 28.213 + sodipodi:role="line" 28.214 + x="19.256409" 28.215 + y="766.65723">Language Plug-in</tspan></text> 28.216 + <text 28.217 + xml:space="preserve" 28.218 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;opacity:0.41346154;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.219 + x="22.390198" 28.220 + y="833.19415" 28.221 + id="text12973-5" 28.222 + sodipodi:linespacing="100%"><tspan 28.223 + sodipodi:role="line" 28.224 + x="22.390198" 28.225 + y="833.19415" 28.226 + id="tspan3089-7" 28.227 + style="font-size:8px;text-align:center;text-anchor:middle">Hardware Abstraction Interface</tspan></text> 28.228 + <rect 28.229 + y="-835.43658" 28.230 + x="-43.698822" 28.231 + height="9.1641436" 28.232 + width="131.7012" 28.233 + id="rect3204" 28.234 + style="opacity:0.41346154;fill:none;stroke:#000000;stroke-width:1.08018136;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 28.235 + transform="scale(1,-1)" /> 28.236 + <rect 28.237 + style="opacity:0.41346154;fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 28.238 + id="rect3217" 28.239 + width="65.276405" 28.240 + height="52.250008" 28.241 + x="-43.597527" 28.242 + y="773.58252" /> 28.243 + <rect 28.244 + y="773.58252" 28.245 + x="22.402473" 28.246 + height="52.250008" 28.247 + width="65.276405" 28.248 + id="rect3219" 28.249 + style="opacity:0.41346154;fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 28.250 + <g 28.251 + id="g3303" 28.252 + transform="translate(-16,76)"> 28.253 + <rect 28.254 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 28.255 + id="rect3293" 28.256 + width="65.276405" 28.257 + height="52.250008" 28.258 + x="310.40247" 28.259 + y="313.58255" /> 28.260 + <text 28.261 + sodipodi:linespacing="100%" 28.262 + id="text3295" 28.263 + y="327.55026" 28.264 + x="343.00162" 28.265 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.266 + xml:space="preserve"><tspan 28.267 + id="tspan3301" 28.268 + y="327.55026" 28.269 + x="343.00162" 28.270 + sodipodi:role="line" 28.271 + style="text-align:center;text-anchor:middle">Seed VP</tspan></text> 28.272 + </g> 28.273 + <g 28.274 + id="g3314" 28.275 + transform="translate(-16,222)"> 28.276 + <rect 28.277 + y="313.58255" 28.278 + x="310.40247" 28.279 + height="52.250008" 28.280 + width="65.276405" 28.281 + id="rect3316" 28.282 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 28.283 + <text 28.284 + xml:space="preserve" 28.285 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.286 + x="343.00162" 28.287 + y="327.55026" 28.288 + id="text3318" 28.289 + sodipodi:linespacing="100%"><tspan 28.290 + style="text-align:center;text-anchor:middle" 28.291 + sodipodi:role="line" 28.292 + x="343.00162" 28.293 + y="327.55026" 28.294 + id="tspan3320">VP created</tspan><tspan 28.295 + style="text-align:center;text-anchor:middle" 28.296 + sodipodi:role="line" 28.297 + x="343.00162" 28.298 + y="337.55026" 28.299 + id="tspan3322">by Application</tspan><tspan 28.300 + style="text-align:center;text-anchor:middle" 28.301 + sodipodi:role="line" 28.302 + x="343.00162" 28.303 + y="347.55026" 28.304 + id="tspan5485">1</tspan></text> 28.305 + </g> 28.306 + <g 28.307 + transform="translate(-16,372)" 28.308 + id="g3340"> 28.309 + <rect 28.310 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 28.311 + id="rect3342" 28.312 + width="65.276405" 28.313 + height="52.250008" 28.314 + x="310.40247" 28.315 + y="313.58255" /> 28.316 + <text 28.317 + sodipodi:linespacing="100%" 28.318 + id="text3344" 28.319 + y="327.55026" 28.320 + x="343.00162" 28.321 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.322 + xml:space="preserve"><tspan 28.323 + id="tspan3346" 28.324 + y="327.55026" 28.325 + x="343.00162" 28.326 + sodipodi:role="line" 28.327 + style="text-align:center;text-anchor:middle">VP created</tspan><tspan 28.328 + id="tspan3348" 28.329 + y="337.55026" 28.330 + x="343.00162" 28.331 + sodipodi:role="line" 28.332 + style="text-align:center;text-anchor:middle">by Application</tspan><tspan 28.333 + y="347.55026" 28.334 + x="343.00162" 28.335 + sodipodi:role="line" 28.336 + style="text-align:center;text-anchor:middle" 28.337 + id="tspan5487">2</tspan></text> 28.338 + </g> 28.339 + <text 28.340 + xml:space="preserve" 28.341 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.342 + x="419.16797" 28.343 + y="363.42465" 28.344 + id="text3318-1" 28.345 + sodipodi:linespacing="100%"><tspan 28.346 + style="text-align:center;text-anchor:middle;fill:#008000" 28.347 + sodipodi:role="line" 28.348 + x="419.16797" 28.349 + y="363.42465" 28.350 + id="tspan3322-5">Application Code</tspan></text> 28.351 + <text 28.352 + sodipodi:linespacing="100%" 28.353 + id="text3376" 28.354 + y="403.42465" 28.355 + x="419.16797" 28.356 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.357 + xml:space="preserve"><tspan 28.358 + id="tspan3378" 28.359 + y="403.42465" 28.360 + x="419.16797" 28.361 + sodipodi:role="line" 28.362 + style="text-align:center;text-anchor:middle;fill:#008000">Seed_Fn</tspan></text> 28.363 + <text 28.364 + xml:space="preserve" 28.365 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.366 + x="419.16797" 28.367 + y="563.42468" 28.368 + id="text3380" 28.369 + sodipodi:linespacing="100%"><tspan 28.370 + style="text-align:center;text-anchor:middle;fill:#008000" 28.371 + sodipodi:role="line" 28.372 + x="419.16797" 28.373 + y="563.42468" 28.374 + id="tspan3382">Work_Fn</tspan></text> 28.375 + <text 28.376 + sodipodi:linespacing="100%" 28.377 + id="text3388" 28.378 + y="363.42465" 28.379 + x="506.63812" 28.380 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.381 + xml:space="preserve"><tspan 28.382 + id="tspan3390" 28.383 + y="363.42465" 28.384 + x="508.14203" 28.385 + sodipodi:role="line" 28.386 + style="text-align:center;text-anchor:middle;fill:#800000">Language </tspan><tspan 28.387 + y="373.42465" 28.388 + x="506.63812" 28.389 + sodipodi:role="line" 28.390 + style="text-align:center;text-anchor:middle;fill:#800000" 28.391 + id="tspan5106">Wrapper-Lib</tspan><tspan 28.392 + y="383.42465" 28.393 + x="506.63812" 28.394 + sodipodi:role="line" 28.395 + style="text-align:center;text-anchor:middle;fill:#800000" 28.396 + id="tspan3392">Code</tspan></text> 28.397 + <text 28.398 + xml:space="preserve" 28.399 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.400 + x="571.16797" 28.401 + y="363.42465" 28.402 + id="text3394" 28.403 + sodipodi:linespacing="100%"><tspan 28.404 + style="text-align:center;text-anchor:middle;fill:#000080" 28.405 + sodipodi:role="line" 28.406 + x="571.16797" 28.407 + y="363.42465" 28.408 + id="tspan3396">Proto-Runtime</tspan><tspan 28.409 + style="text-align:center;text-anchor:middle;fill:#000080" 28.410 + sodipodi:role="line" 28.411 + x="571.16797" 28.412 + y="373.42465" 28.413 + id="tspan4998">Primitive</tspan><tspan 28.414 + id="tspan3398" 28.415 + style="text-align:center;text-anchor:middle;fill:#000080" 28.416 + sodipodi:role="line" 28.417 + x="571.16797" 28.418 + y="383.42465">Code</tspan></text> 28.419 + <text 28.420 + sodipodi:linespacing="100%" 28.421 + id="text3400" 28.422 + y="363.42465" 28.423 + x="131.16797" 28.424 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.425 + xml:space="preserve"><tspan 28.426 + id="tspan3402" 28.427 + y="363.42465" 28.428 + x="131.16797" 28.429 + sodipodi:role="line" 28.430 + style="text-align:center;text-anchor:middle;fill:#800000">Language Plugin</tspan><tspan 28.431 + y="373.42465" 28.432 + x="131.16797" 28.433 + sodipodi:role="line" 28.434 + style="text-align:center;text-anchor:middle;fill:#800000" 28.435 + id="tspan3404">Code</tspan></text> 28.436 + <text 28.437 + xml:space="preserve" 28.438 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.439 + x="47.167969" 28.440 + y="363.42465" 28.441 + id="text3406" 28.442 + sodipodi:linespacing="100%"><tspan 28.443 + style="text-align:center;text-anchor:middle" 28.444 + sodipodi:role="line" 28.445 + x="47.167969" 28.446 + y="363.42465" 28.447 + id="tspan3408">Proto-Runtime</tspan><tspan 28.448 + id="tspan3410" 28.449 + style="text-align:center;text-anchor:middle" 28.450 + sodipodi:role="line" 28.451 + x="47.167969" 28.452 + y="373.42465">Code</tspan></text> 28.453 + <text 28.454 + xml:space="preserve" 28.455 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.456 + x="131.19971" 28.457 + y="413.42465" 28.458 + id="text3412" 28.459 + sodipodi:linespacing="100%"><tspan 28.460 + style="text-align:center;text-anchor:middle;fill:#800000" 28.461 + sodipodi:role="line" 28.462 + x="131.19971" 28.463 + y="413.42465" 28.464 + id="tspan3414">Handler</tspan><tspan 28.465 + style="text-align:center;text-anchor:middle;fill:#800000" 28.466 + sodipodi:role="line" 28.467 + x="131.19971" 28.468 + y="423.42465" 28.469 + id="tspan3422">for create VP</tspan></text> 28.470 + <text 28.471 + sodipodi:linespacing="100%" 28.472 + id="text3424" 28.473 + y="493.42465" 28.474 + x="131.19971" 28.475 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.476 + xml:space="preserve"><tspan 28.477 + id="tspan3426" 28.478 + y="493.42465" 28.479 + x="131.19971" 28.480 + sodipodi:role="line" 28.481 + style="text-align:center;text-anchor:middle;fill:#800000">Handler</tspan><tspan 28.482 + id="tspan3428" 28.483 + y="503.42465" 28.484 + x="131.19971" 28.485 + sodipodi:role="line" 28.486 + style="text-align:center;text-anchor:middle;fill:#800000">for Language</tspan><tspan 28.487 + id="tspan3430" 28.488 + y="513.42468" 28.489 + x="131.19971" 28.490 + sodipodi:role="line" 28.491 + style="text-align:center;text-anchor:middle;fill:#800000">Construct2</tspan></text> 28.492 + <text 28.493 + xml:space="preserve" 28.494 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.495 + x="47.661133" 28.496 + y="403.42465" 28.497 + id="text3432" 28.498 + sodipodi:linespacing="100%"><tspan 28.499 + style="text-align:center;text-anchor:middle" 28.500 + sodipodi:role="line" 28.501 + x="47.661133" 28.502 + y="403.42465" 28.503 + id="tspan3438">Master Fn</tspan></text> 28.504 + <text 28.505 + xml:space="preserve" 28.506 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.507 + x="131.52441" 28.508 + y="539.42468" 28.509 + id="text3444" 28.510 + sodipodi:linespacing="100%"><tspan 28.511 + style="text-align:center;text-anchor:middle;fill:#800000" 28.512 + sodipodi:role="line" 28.513 + x="131.52441" 28.514 + y="539.42468" 28.515 + id="tspan3450">Assigner Fn</tspan></text> 28.516 + <text 28.517 + xml:space="preserve" 28.518 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.519 + x="229.16797" 28.520 + y="365.42465" 28.521 + id="text3456" 28.522 + sodipodi:linespacing="100%"><tspan 28.523 + style="text-align:center;text-anchor:middle" 28.524 + sodipodi:role="line" 28.525 + x="230.67188" 28.526 + y="365.42465" 28.527 + id="tspan3458">Instances of </tspan><tspan 28.528 + style="text-align:center;text-anchor:middle" 28.529 + sodipodi:role="line" 28.530 + x="229.16797" 28.531 + y="375.42465" 28.532 + id="tspan8405">runtime system</tspan><tspan 28.533 + id="tspan3460" 28.534 + style="text-align:center;text-anchor:middle" 28.535 + sodipodi:role="line" 28.536 + x="229.16797" 28.537 + y="385.42465" /></text> 28.538 + <text 28.539 + sodipodi:linespacing="100%" 28.540 + id="text3462" 28.541 + y="363.42465" 28.542 + x="325.16797" 28.543 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.544 + xml:space="preserve"><tspan 28.545 + id="tspan3464" 28.546 + y="363.42465" 28.547 + x="325.16797" 28.548 + sodipodi:role="line" 28.549 + style="text-align:center;text-anchor:middle">Instances of</tspan><tspan 28.550 + y="373.42465" 28.551 + x="325.16797" 28.552 + sodipodi:role="line" 28.553 + style="text-align:center;text-anchor:middle" 28.554 + id="tspan3468">Virtual Processors</tspan><tspan 28.555 + y="383.42465" 28.556 + x="325.16797" 28.557 + sodipodi:role="line" 28.558 + style="text-align:center;text-anchor:middle" 28.559 + id="tspan3466" /></text> 28.560 + <path 28.561 + inkscape:connector-curvature="0" 28.562 + id="path4796" 28.563 + d="m 359.32649,400.02605 c 38.42351,0 38.42351,0 38.42351,0" 28.564 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999996, 2.99999996;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 28.565 + <text 28.566 + xml:space="preserve" 28.567 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.568 + x="506.78461" 28.569 + y="397.42465" 28.570 + id="text4988" 28.571 + sodipodi:linespacing="100%"><tspan 28.572 + style="text-align:center;text-anchor:middle;fill:#800000" 28.573 + sodipodi:role="line" 28.574 + x="506.78461" 28.575 + y="397.42465" 28.576 + id="tspan4990">create VP</tspan><tspan 28.577 + style="text-align:center;text-anchor:middle;fill:#800000" 28.578 + sodipodi:role="line" 28.579 + x="506.78461" 28.580 + y="407.42465" 28.581 + id="tspan5104">wrapper Fn</tspan></text> 28.582 + <path 28.583 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 28.584 + d="m 48.02904,406.29842 c 0,7.37773 0,7.37773 0,7.37773" 28.585 + id="path4996" 28.586 + inkscape:connector-curvature="0" 28.587 + sodipodi:nodetypes="cc" /> 28.588 + <path 28.589 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 28.590 + d="m 48.247131,414.02605 c 48.887624,0 48.887624,0 48.887624,0" 28.591 + id="path5000" 28.592 + inkscape:connector-curvature="0" /> 28.593 + <path 28.594 + inkscape:connector-curvature="0" 28.595 + id="path5002" 28.596 + d="m 98.156891,426.02605 c -51.085387,0 -51.085387,0 -51.085387,0" 28.597 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 28.598 + <path 28.599 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 28.600 + d="m 98.02904,412.63925 c 0,13.68455 0,13.68455 0,13.68455" 28.601 + id="path5006" 28.602 + inkscape:connector-curvature="0" 28.603 + sodipodi:nodetypes="cc" /> 28.604 + <text 28.605 + sodipodi:linespacing="100%" 28.606 + id="text5012" 28.607 + y="455.42465" 28.608 + x="131.19971" 28.609 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.610 + xml:space="preserve"><tspan 28.611 + id="tspan5014" 28.612 + y="455.42465" 28.613 + x="131.19971" 28.614 + sodipodi:role="line" 28.615 + style="text-align:center;text-anchor:middle;fill:#800000">Handler</tspan><tspan 28.616 + id="tspan5016" 28.617 + y="465.42465" 28.618 + x="131.19971" 28.619 + sodipodi:role="line" 28.620 + style="text-align:center;text-anchor:middle;fill:#800000">for Language</tspan><tspan 28.621 + id="tspan5018" 28.622 + y="475.42465" 28.623 + x="131.19971" 28.624 + sodipodi:role="line" 28.625 + style="text-align:center;text-anchor:middle;fill:#800000">Construct1</tspan></text> 28.626 + <path 28.627 + sodipodi:nodetypes="cc" 28.628 + inkscape:connector-curvature="0" 28.629 + id="path5020" 28.630 + d="m 48.02904,426.51232 c 0,29.16381 0,29.16381 0,29.16381" 28.631 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 28.632 + <path 28.633 + inkscape:connector-curvature="0" 28.634 + id="path5022" 28.635 + d="m 48.247131,456.02605 c 48.887624,0 48.887624,0 48.887624,0" 28.636 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 28.637 + <path 28.638 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 28.639 + d="m 98.156891,468.02605 c -51.085387,0 -51.085387,0 -51.085387,0" 28.640 + id="path5024" 28.641 + inkscape:connector-curvature="0" /> 28.642 + <path 28.643 + sodipodi:nodetypes="cc" 28.644 + inkscape:connector-curvature="0" 28.645 + id="path5026" 28.646 + d="m 98.02904,454.63925 c 0,13.68455 0,13.68455 0,13.68455" 28.647 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 28.648 + <path 28.649 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 28.650 + d="m 48.02904,468.14337 c 0,25.5328 0,25.5328 0,25.5328" 28.651 + id="path5032" 28.652 + inkscape:connector-curvature="0" 28.653 + sodipodi:nodetypes="cc" /> 28.654 + <path 28.655 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 28.656 + d="m 48.247131,494.02605 c 48.887624,0 48.887624,0 48.887624,0" 28.657 + id="path5034" 28.658 + inkscape:connector-curvature="0" /> 28.659 + <path 28.660 + inkscape:connector-curvature="0" 28.661 + id="path5036" 28.662 + d="m 98.156891,506.02605 c -51.085387,0 -51.085387,0 -51.085387,0" 28.663 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 28.664 + <path 28.665 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 28.666 + d="m 98.02904,492.63925 c 0,13.68455 0,13.68455 0,13.68455" 28.667 + id="path5038" 28.668 + inkscape:connector-curvature="0" 28.669 + sodipodi:nodetypes="cc" /> 28.670 + <path 28.671 + sodipodi:nodetypes="cc" 28.672 + inkscape:connector-curvature="0" 28.673 + id="path5044" 28.674 + d="m 48.02904,506.56402 c 0,23.11212 0,23.11212 0,23.11212" 28.675 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 28.676 + <path 28.677 + inkscape:connector-curvature="0" 28.678 + id="path5046" 28.679 + d="m 48.247131,530.02605 c 48.887624,0 48.887624,0 48.887624,0" 28.680 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 28.681 + <path 28.682 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 28.683 + d="m 98.156891,542.02605 c -51.085387,0 -51.085387,0 -51.085387,0" 28.684 + id="path5048" 28.685 + inkscape:connector-curvature="0" /> 28.686 + <path 28.687 + sodipodi:nodetypes="cc" 28.688 + inkscape:connector-curvature="0" 28.689 + id="path5050" 28.690 + d="m 98.02904,528.63925 c 0,13.68455 0,13.68455 0,13.68455" 28.691 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 28.692 + <text 28.693 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)" 28.694 + xml:space="preserve" 28.695 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.696 + x="78.264717" 28.697 + y="410.23279" 28.698 + id="text5064" 28.699 + sodipodi:linespacing="100%"><tspan 28.700 + style="font-size:8px;text-align:center;text-anchor:middle" 28.701 + sodipodi:role="line" 28.702 + x="78.264717" 28.703 + y="410.23279" 28.704 + id="tspan5066">Call via Ptr</tspan></text> 28.705 + <path 28.706 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000003, 3.00000003;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 28.707 + d="m 193.99816,400.02605 c -117.505852,0 -117.505852,0 -117.505852,0" 28.708 + id="path5068" 28.709 + inkscape:connector-curvature="0" /> 28.710 + <text 28.711 + sodipodi:linespacing="100%" 28.712 + id="text5070" 28.713 + y="415.39398" 28.714 + x="58.358849" 28.715 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.716 + xml:space="preserve" 28.717 + transform="matrix(0.97994281,-0.19927893,0.19927893,0.97994281,0,0)"><tspan 28.718 + id="tspan5072" 28.719 + y="415.39398" 28.720 + x="58.358849" 28.721 + sodipodi:role="line" 28.722 + style="font-size:8px;text-align:center;text-anchor:middle">Top Level Fn</tspan></text> 28.723 + <text 28.724 + transform="matrix(0.97994281,-0.19927893,0.19927893,0.97994281,0,0)" 28.725 + xml:space="preserve" 28.726 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.727 + x="299.82327" 28.728 + y="462.45642" 28.729 + id="text5074" 28.730 + sodipodi:linespacing="100%"><tspan 28.731 + style="font-size:8px;text-align:center;text-anchor:middle" 28.732 + sodipodi:role="line" 28.733 + x="299.82327" 28.734 + y="462.45642" 28.735 + id="tspan5076">Top Level Fn</tspan></text> 28.736 + <text 28.737 + sodipodi:linespacing="100%" 28.738 + id="text5078" 28.739 + y="619.64636" 28.740 + x="269.89853" 28.741 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.742 + xml:space="preserve" 28.743 + transform="matrix(0.97994281,-0.19927893,0.19927893,0.97994281,0,0)"><tspan 28.744 + id="tspan5080" 28.745 + y="619.64636" 28.746 + x="269.89853" 28.747 + sodipodi:role="line" 28.748 + style="font-size:8px;text-align:center;text-anchor:middle">Top Level Fn</tspan></text> 28.749 + <path 28.750 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999996, 2.99999996;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 28.751 + d="m 360.9835,560.02605 c 36.7665,0 36.7665,0 36.7665,0" 28.752 + id="path5082" 28.753 + inkscape:connector-curvature="0" /> 28.754 + <path 28.755 + inkscape:connector-curvature="0" 28.756 + id="path5084" 28.757 + d="m 359.32649,712.02605 c 38.42351,0 38.42351,0 38.42351,0" 28.758 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999996, 2.99999996;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 28.759 + <path 28.760 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 28.761 + d="m 416.02904,404.31985 c 0,7.35629 0,7.35629 0,7.35629" 28.762 + id="path5092" 28.763 + inkscape:connector-curvature="0" 28.764 + sodipodi:nodetypes="cc" /> 28.765 + <path 28.766 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 28.767 + d="m 416.24714,412.02605 c 85.56237,0 85.56237,0 85.56237,0" 28.768 + id="path5094" 28.769 + inkscape:connector-curvature="0" /> 28.770 + <path 28.771 + inkscape:connector-curvature="0" 28.772 + id="path5096" 28.773 + d="m 504.77166,478.02605 c -88.41298,0 -88.41298,0 -88.41298,0" 28.774 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 28.775 + <text 28.776 + transform="matrix(0.97994281,-0.19927893,0.19927893,0.97994281,0,0)" 28.777 + xml:space="preserve" 28.778 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.779 + x="239.60797" 28.780 + y="768.59875" 28.781 + id="text5114" 28.782 + sodipodi:linespacing="100%"><tspan 28.783 + style="font-size:8px;text-align:center;text-anchor:middle" 28.784 + sodipodi:role="line" 28.785 + x="239.60797" 28.786 + y="768.59875" 28.787 + id="tspan5116">Top Level Fn</tspan></text> 28.788 + <text 28.789 + sodipodi:linespacing="100%" 28.790 + id="text5136" 28.791 + y="715.42468" 28.792 + x="419.16797" 28.793 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.794 + xml:space="preserve"><tspan 28.795 + id="tspan5138" 28.796 + y="715.42468" 28.797 + x="419.16797" 28.798 + sodipodi:role="line" 28.799 + style="text-align:center;text-anchor:middle;fill:#008000">Work_Fn</tspan></text> 28.800 + <path 28.801 + sodipodi:nodetypes="cc" 28.802 + inkscape:connector-curvature="0" 28.803 + id="path5140" 28.804 + d="m 416.02904,478.31987 c 0,26.21842 0,26.21842 0,26.21842" 28.805 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 28.806 + <path 28.807 + inkscape:connector-curvature="0" 28.808 + id="path5142" 28.809 + d="m 416.2471,504.02605 c 87.58783,0 87.58783,0 87.58783,0" 28.810 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 28.811 + <text 28.812 + sodipodi:linespacing="100%" 28.813 + id="text5157" 28.814 + y="490.71182" 28.815 + x="506.78461" 28.816 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.817 + xml:space="preserve"><tspan 28.818 + id="tspan5161" 28.819 + y="490.71182" 28.820 + x="506.78461" 28.821 + sodipodi:role="line" 28.822 + style="text-align:center;text-anchor:middle;fill:#800000">end VP</tspan><tspan 28.823 + y="500.71182" 28.824 + x="506.78461" 28.825 + sodipodi:role="line" 28.826 + style="text-align:center;text-anchor:middle;fill:#800000" 28.827 + id="tspan5207">wrapper Fn</tspan></text> 28.828 + <path 28.829 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 28.830 + d="m 504.26584,510.02605 c 63.99676,0 63.99676,0 63.99676,0" 28.831 + id="path5165" 28.832 + inkscape:connector-curvature="0" /> 28.833 + <text 28.834 + xml:space="preserve" 28.835 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.836 + x="571.34375" 28.837 + y="496.71182" 28.838 + id="text5167" 28.839 + sodipodi:linespacing="100%"><tspan 28.840 + style="text-align:center;text-anchor:middle;fill:#000080" 28.841 + sodipodi:role="line" 28.842 + x="571.34375" 28.843 + y="496.71182" 28.844 + id="tspan5169">End VP</tspan><tspan 28.845 + style="text-align:center;text-anchor:middle;fill:#000080" 28.846 + sodipodi:role="line" 28.847 + x="571.34375" 28.848 + y="506.71182" 28.849 + id="tspan5171">Primitive Fn</tspan></text> 28.850 + <path 28.851 + sodipodi:nodetypes="cc" 28.852 + inkscape:connector-curvature="0" 28.853 + id="path5179" 28.854 + d="m 416.02904,564.31985 c 0,7.35629 0,7.35629 0,7.35629" 28.855 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 28.856 + <path 28.857 + sodipodi:nodetypes="cc" 28.858 + inkscape:connector-curvature="0" 28.859 + id="path5209" 28.860 + d="m 504.02904,502.31985 c 0,7.35629 0,7.35629 0,7.35629" 28.861 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 28.862 + <text 28.863 + xml:space="preserve" 28.864 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.865 + x="497.16797" 28.866 + y="399.42468" 28.867 + id="text5211" 28.868 + sodipodi:linespacing="100%"><tspan 28.869 + style="text-align:center;text-anchor:middle" 28.870 + sodipodi:role="line" 28.871 + x="497.16797" 28.872 + y="399.42468" 28.873 + id="tspan5215" /></text> 28.874 + <path 28.875 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 28.876 + d="m 504.02904,412.21843 c 0,19.4577 0,19.4577 0,19.4577" 28.877 + id="path5217" 28.878 + inkscape:connector-curvature="0" 28.879 + sodipodi:nodetypes="cc" /> 28.880 + <path 28.881 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 28.882 + d="m 504.24714,432.02605 c 64.71029,0 64.71029,0 64.71029,0" 28.883 + id="path5219" 28.884 + inkscape:connector-curvature="0" /> 28.885 + <path 28.886 + inkscape:connector-curvature="0" 28.887 + id="path5221" 28.888 + d="m 568.85635,474.02605 c -65.78483,0 -65.78483,0 -65.78483,0" 28.889 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 28.890 + <path 28.891 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 28.892 + d="m 570.02904,430.63925 c 0,13.68455 0,13.68455 0,13.68455" 28.893 + id="path5223" 28.894 + inkscape:connector-curvature="0" 28.895 + sodipodi:nodetypes="cc" /> 28.896 + <path 28.897 + sodipodi:nodetypes="cc" 28.898 + inkscape:connector-curvature="0" 28.899 + id="path5229" 28.900 + d="m 504.02904,473.22687 c 0,5.5885 0,5.5885 0,5.5885" 28.901 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 28.902 + <text 28.903 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 28.904 + xml:space="preserve" 28.905 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.906 + x="527.4845" 28.907 + y="436.83682" 28.908 + id="text5231" 28.909 + sodipodi:linespacing="100%"><tspan 28.910 + style="font-size:8px;text-align:center;text-anchor:middle" 28.911 + sodipodi:role="line" 28.912 + x="527.4845" 28.913 + y="436.83682" 28.914 + id="tspan5233">normal call</tspan></text> 28.915 + <path 28.916 + sodipodi:nodetypes="cc" 28.917 + inkscape:connector-curvature="0" 28.918 + id="path5235" 28.919 + d="m 570.02904,460.63925 c 0,13.68455 0,13.68455 0,13.68455" 28.920 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 28.921 + <path 28.922 + inkscape:connector-curvature="0" 28.923 + id="path5237" 28.924 + d="m 570.24715,442.02605 c 57.74832,0 57.74832,0 57.74832,0" 28.925 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 28.926 + <text 28.927 + sodipodi:linespacing="100%" 28.928 + id="text5239" 28.929 + y="732.05804" 28.930 + x="136.82079" 28.931 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.932 + xml:space="preserve" 28.933 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 28.934 + id="tspan5241" 28.935 + y="732.05804" 28.936 + x="136.82079" 28.937 + sodipodi:role="line" 28.938 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan><tspan 28.939 + y="740.05804" 28.940 + x="136.82079" 28.941 + sodipodi:role="line" 28.942 + style="font-size:8px;text-align:center;text-anchor:middle" 28.943 + id="tspan5243">and switch</tspan><tspan 28.944 + y="748.05804" 28.945 + x="136.82079" 28.946 + sodipodi:role="line" 28.947 + style="font-size:8px;text-align:center;text-anchor:middle" 28.948 + id="tspan5245">to runtime</tspan></text> 28.949 + <path 28.950 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 28.951 + d="m 627.94909,462.02605 c -56.8776,0 -56.8776,0 -56.8776,0" 28.952 + id="path5247" 28.953 + inkscape:connector-curvature="0" /> 28.954 + <text 28.955 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 28.956 + xml:space="preserve" 28.957 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.958 + x="111.73514" 28.959 + y="755.09509" 28.960 + id="text5249" 28.961 + sodipodi:linespacing="100%"><tspan 28.962 + id="tspan5255" 28.963 + style="font-size:8px;text-align:center;text-anchor:middle" 28.964 + sodipodi:role="line" 28.965 + x="111.73514" 28.966 + y="755.09509">return</tspan><tspan 28.967 + style="font-size:8px;text-align:center;text-anchor:middle" 28.968 + sodipodi:role="line" 28.969 + x="111.73514" 28.970 + y="763.09509" 28.971 + id="tspan5261">from</tspan><tspan 28.972 + style="font-size:8px;text-align:center;text-anchor:middle" 28.973 + sodipodi:role="line" 28.974 + x="111.73514" 28.975 + y="771.09509" 28.976 + id="tspan5263">suspend</tspan></text> 28.977 + <text 28.978 + sodipodi:linespacing="100%" 28.979 + id="text5345" 28.980 + y="417.42465" 28.981 + x="571.38037" 28.982 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.983 + xml:space="preserve"><tspan 28.984 + id="tspan5349" 28.985 + y="417.42465" 28.986 + x="571.38037" 28.987 + sodipodi:role="line" 28.988 + style="text-align:center;text-anchor:middle;fill:#000080">create VP</tspan><tspan 28.989 + y="427.42465" 28.990 + x="571.38037" 28.991 + sodipodi:role="line" 28.992 + style="text-align:center;text-anchor:middle;fill:#000080" 28.993 + id="tspan5353">primitive Fn</tspan></text> 28.994 + <text 28.995 + sodipodi:linespacing="100%" 28.996 + id="text5355" 28.997 + y="417.14474" 28.998 + x="457.39746" 28.999 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.1000 + xml:space="preserve" 28.1001 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 28.1002 + id="tspan5357" 28.1003 + y="417.14474" 28.1004 + x="457.39746" 28.1005 + sodipodi:role="line" 28.1006 + style="font-size:8px;text-align:center;text-anchor:middle">normal call</tspan></text> 28.1007 + <path 28.1008 + sodipodi:nodetypes="cc" 28.1009 + inkscape:connector-curvature="0" 28.1010 + id="path5359" 28.1011 + d="m 570.02904,509.28283 c 0,13.68455 0,13.68455 0,13.68455" 28.1012 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 28.1013 + <path 28.1014 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 28.1015 + d="m 570.24715,520.66963 c 57.74832,0 57.74832,0 57.74832,0" 28.1016 + id="path5361" 28.1017 + inkscape:connector-curvature="0" /> 28.1018 + <text 28.1019 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 28.1020 + xml:space="preserve" 28.1021 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.1022 + x="81.17688" 28.1023 + y="789.53607" 28.1024 + id="text5363" 28.1025 + sodipodi:linespacing="100%"><tspan 28.1026 + style="font-size:8px;text-align:center;text-anchor:middle" 28.1027 + sodipodi:role="line" 28.1028 + x="81.17688" 28.1029 + y="789.53607" 28.1030 + id="tspan5365">suspend</tspan><tspan 28.1031 + id="tspan5367" 28.1032 + style="font-size:8px;text-align:center;text-anchor:middle" 28.1033 + sodipodi:role="line" 28.1034 + x="81.17688" 28.1035 + y="797.53607">and switch</tspan><tspan 28.1036 + id="tspan5369" 28.1037 + style="font-size:8px;text-align:center;text-anchor:middle" 28.1038 + sodipodi:role="line" 28.1039 + x="81.17688" 28.1040 + y="805.53607">to runtime</tspan></text> 28.1041 + <text 28.1042 + sodipodi:linespacing="100%" 28.1043 + id="text5371" 28.1044 + y="557.42468" 28.1045 + x="506.59662" 28.1046 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.1047 + xml:space="preserve"><tspan 28.1048 + id="tspan5373" 28.1049 + y="557.42468" 28.1050 + x="506.59662" 28.1051 + sodipodi:role="line" 28.1052 + style="text-align:center;text-anchor:middle;fill:#800000">Mutex Acquire</tspan><tspan 28.1053 + id="tspan5375" 28.1054 + y="567.42468" 28.1055 + x="506.59662" 28.1056 + sodipodi:role="line" 28.1057 + style="text-align:center;text-anchor:middle;fill:#800000">wrapper Fn</tspan></text> 28.1058 + <path 28.1059 + sodipodi:nodetypes="cc" 28.1060 + inkscape:connector-curvature="0" 28.1061 + id="path5377" 28.1062 + d="m 416.02904,564.31985 c 0,7.35629 0,7.35629 0,7.35629" 28.1063 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 28.1064 + <path 28.1065 + inkscape:connector-curvature="0" 28.1066 + id="path5379" 28.1067 + d="m 416.24714,572.02605 c 85.56237,0 85.56237,0 85.56237,0" 28.1068 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 28.1069 + <path 28.1070 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 28.1071 + d="m 504.77166,638.02605 c -88.41298,0 -88.41298,0 -88.41298,0" 28.1072 + id="path5381" 28.1073 + inkscape:connector-curvature="0" /> 28.1074 + <text 28.1075 + xml:space="preserve" 28.1076 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.1077 + x="506.78461" 28.1078 + y="650.71179" 28.1079 + id="text5387" 28.1080 + sodipodi:linespacing="100%"><tspan 28.1081 + style="text-align:center;text-anchor:middle;fill:#800000" 28.1082 + sodipodi:role="line" 28.1083 + x="506.78461" 28.1084 + y="650.71179" 28.1085 + id="tspan5389">end VP</tspan><tspan 28.1086 + id="tspan5391" 28.1087 + style="text-align:center;text-anchor:middle;fill:#800000" 28.1088 + sodipodi:role="line" 28.1089 + x="506.78461" 28.1090 + y="660.71179">wrapper Fn</tspan></text> 28.1091 + <path 28.1092 + inkscape:connector-curvature="0" 28.1093 + id="path5393" 28.1094 + d="m 504.289,670.02605 c 65.24023,0 65.24023,0 65.24023,0" 28.1095 + style="fill:none;stroke:#000000;stroke-width:0.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 28.1096 + <text 28.1097 + sodipodi:linespacing="100%" 28.1098 + id="text5395" 28.1099 + y="656.71179" 28.1100 + x="571.34375" 28.1101 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.1102 + xml:space="preserve"><tspan 28.1103 + id="tspan5397" 28.1104 + y="656.71179" 28.1105 + x="571.34375" 28.1106 + sodipodi:role="line" 28.1107 + style="text-align:center;text-anchor:middle;fill:#000080">end VP</tspan><tspan 28.1108 + id="tspan5399" 28.1109 + y="666.71179" 28.1110 + x="571.34375" 28.1111 + sodipodi:role="line" 28.1112 + style="text-align:center;text-anchor:middle;fill:#000080">Primitive Fn</tspan></text> 28.1113 + <path 28.1114 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 28.1115 + d="m 504.02904,662.31985 c 0,7.35629 0,7.35629 0,7.35629" 28.1116 + id="path5401" 28.1117 + inkscape:connector-curvature="0" 28.1118 + sodipodi:nodetypes="cc" /> 28.1119 + <path 28.1120 + sodipodi:nodetypes="cc" 28.1121 + inkscape:connector-curvature="0" 28.1122 + id="path5403" 28.1123 + d="m 504.02904,572.21843 c 0,19.4577 0,19.4577 0,19.4577" 28.1124 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 28.1125 + <path 28.1126 + inkscape:connector-curvature="0" 28.1127 + id="path5405" 28.1128 + d="m 504.6148,592.02605 c 64.1779,0 64.1779,0 64.1779,0" 28.1129 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 28.1130 + <path 28.1131 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 28.1132 + d="m 570.13452,634.02605 c -67.06305,0 -67.06305,0 -67.06305,0" 28.1133 + id="path5407" 28.1134 + inkscape:connector-curvature="0" /> 28.1135 + <path 28.1136 + sodipodi:nodetypes="cc" 28.1137 + inkscape:connector-curvature="0" 28.1138 + id="path5409" 28.1139 + d="m 570.02904,590.63925 c 0,13.68455 0,13.68455 0,13.68455" 28.1140 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 28.1141 + <path 28.1142 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 28.1143 + d="m 504.02904,633.22687 c 0,5.5885 0,5.5885 0,5.5885" 28.1144 + id="path5411" 28.1145 + inkscape:connector-curvature="0" 28.1146 + sodipodi:nodetypes="cc" /> 28.1147 + <text 28.1148 + sodipodi:linespacing="100%" 28.1149 + id="text5413" 28.1150 + y="596.83447" 28.1151 + x="528.18695" 28.1152 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.1153 + xml:space="preserve" 28.1154 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 28.1155 + id="tspan5415" 28.1156 + y="596.83447" 28.1157 + x="528.18695" 28.1158 + sodipodi:role="line" 28.1159 + style="font-size:8px;text-align:center;text-anchor:middle">normal call</tspan></text> 28.1160 + <path 28.1161 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 28.1162 + d="m 570.02904,620.63925 c 0,13.68455 0,13.68455 0,13.68455" 28.1163 + id="path5417" 28.1164 + inkscape:connector-curvature="0" 28.1165 + sodipodi:nodetypes="cc" /> 28.1166 + <path 28.1167 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 28.1168 + d="m 570.24715,602.02605 c 57.74832,0 57.74832,0 57.74832,0" 28.1169 + id="path5419" 28.1170 + inkscape:connector-curvature="0" /> 28.1171 + <text 28.1172 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 28.1173 + xml:space="preserve" 28.1174 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.1175 + x="25.533201" 28.1176 + y="847.01544" 28.1177 + id="text5421" 28.1178 + sodipodi:linespacing="100%"><tspan 28.1179 + style="font-size:8px;text-align:center;text-anchor:middle" 28.1180 + sodipodi:role="line" 28.1181 + x="25.533201" 28.1182 + y="847.01544" 28.1183 + id="tspan5423">suspend</tspan><tspan 28.1184 + id="tspan5425" 28.1185 + style="font-size:8px;text-align:center;text-anchor:middle" 28.1186 + sodipodi:role="line" 28.1187 + x="25.533201" 28.1188 + y="855.01544">and switch</tspan><tspan 28.1189 + id="tspan5427" 28.1190 + style="font-size:8px;text-align:center;text-anchor:middle" 28.1191 + sodipodi:role="line" 28.1192 + x="25.533201" 28.1193 + y="863.01544">to runtime</tspan></text> 28.1194 + <path 28.1195 + inkscape:connector-curvature="0" 28.1196 + id="path5429" 28.1197 + d="m 627.94909,622.02605 c -56.8776,0 -56.8776,0 -56.8776,0" 28.1198 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 28.1199 + <text 28.1200 + sodipodi:linespacing="100%" 28.1201 + id="text5431" 28.1202 + y="871.4436" 28.1203 + x="1.8845758" 28.1204 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.1205 + xml:space="preserve" 28.1206 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 28.1207 + y="871.4436" 28.1208 + x="1.8845758" 28.1209 + sodipodi:role="line" 28.1210 + style="font-size:8px;text-align:center;text-anchor:middle" 28.1211 + id="tspan5433">return</tspan><tspan 28.1212 + id="tspan5435" 28.1213 + y="879.4436" 28.1214 + x="1.8845758" 28.1215 + sodipodi:role="line" 28.1216 + style="font-size:8px;text-align:center;text-anchor:middle">from</tspan><tspan 28.1217 + id="tspan5437" 28.1218 + y="887.4436" 28.1219 + x="1.8845758" 28.1220 + sodipodi:role="line" 28.1221 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan></text> 28.1222 + <text 28.1223 + xml:space="preserve" 28.1224 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.1225 + x="571.33643" 28.1226 + y="577.42468" 28.1227 + id="text5439" 28.1228 + sodipodi:linespacing="100%"><tspan 28.1229 + style="text-align:center;text-anchor:middle;fill:#000080" 28.1230 + sodipodi:role="line" 28.1231 + x="571.33643" 28.1232 + y="577.42468" 28.1233 + id="tspan5441">send request</tspan><tspan 28.1234 + id="tspan5443" 28.1235 + style="text-align:center;text-anchor:middle;fill:#000080" 28.1236 + sodipodi:role="line" 28.1237 + x="571.33643" 28.1238 + y="587.42468">primitive Fn</tspan></text> 28.1239 + <text 28.1240 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 28.1241 + xml:space="preserve" 28.1242 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.1243 + x="458.09958" 28.1244 + y="577.1424" 28.1245 + id="text5445" 28.1246 + sodipodi:linespacing="100%"><tspan 28.1247 + style="font-size:8px;text-align:center;text-anchor:middle" 28.1248 + sodipodi:role="line" 28.1249 + x="458.09958" 28.1250 + y="577.1424" 28.1251 + id="tspan5447">normal call</tspan></text> 28.1252 + <path 28.1253 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 28.1254 + d="m 570.02904,669.28283 c 0,13.68455 0,13.68455 0,13.68455" 28.1255 + id="path5449" 28.1256 + inkscape:connector-curvature="0" 28.1257 + sodipodi:nodetypes="cc" /> 28.1258 + <path 28.1259 + inkscape:connector-curvature="0" 28.1260 + id="path5451" 28.1261 + d="m 570.24715,680.66963 c 57.74832,0 57.74832,0 57.74832,0" 28.1262 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 28.1263 + <text 28.1264 + sodipodi:linespacing="100%" 28.1265 + id="text5453" 28.1266 + y="904.49347" 28.1267 + x="-30.11055" 28.1268 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.1269 + xml:space="preserve" 28.1270 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 28.1271 + id="tspan5455" 28.1272 + y="904.49347" 28.1273 + x="-30.11055" 28.1274 + sodipodi:role="line" 28.1275 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan><tspan 28.1276 + y="912.49347" 28.1277 + x="-30.11055" 28.1278 + sodipodi:role="line" 28.1279 + style="font-size:8px;text-align:center;text-anchor:middle" 28.1280 + id="tspan5457">and switch</tspan><tspan 28.1281 + y="920.49347" 28.1282 + x="-30.11055" 28.1283 + sodipodi:role="line" 28.1284 + style="font-size:8px;text-align:center;text-anchor:middle" 28.1285 + id="tspan5459">to runtime</tspan></text> 28.1286 + <path 28.1287 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 28.1288 + d="m 416.02904,638.31987 c 0,26.21842 0,26.21842 0,26.21842" 28.1289 + id="path5461" 28.1290 + inkscape:connector-curvature="0" 28.1291 + sodipodi:nodetypes="cc" /> 28.1292 + <path 28.1293 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 28.1294 + d="m 416.2471,664.02605 c 87.58783,0 87.58783,0 87.58783,0" 28.1295 + id="path5463" 28.1296 + inkscape:connector-curvature="0" /> 28.1297 + <text 28.1298 + sodipodi:linespacing="100%" 28.1299 + id="text5465" 28.1300 + y="509.14246" 28.1301 + x="457.80075" 28.1302 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.1303 + xml:space="preserve" 28.1304 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 28.1305 + id="tspan5467" 28.1306 + y="509.14246" 28.1307 + x="457.80075" 28.1308 + sodipodi:role="line" 28.1309 + style="font-size:8px;text-align:center;text-anchor:middle">normal call</tspan></text> 28.1310 + <text 28.1311 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 28.1312 + xml:space="preserve" 28.1313 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.1314 + x="458.50388" 28.1315 + y="669.1424" 28.1316 + id="text5469" 28.1317 + sodipodi:linespacing="100%"><tspan 28.1318 + style="font-size:8px;text-align:center;text-anchor:middle" 28.1319 + sodipodi:role="line" 28.1320 + x="458.50388" 28.1321 + y="669.1424" 28.1322 + id="tspan5471">normal call</tspan></text> 28.1323 + <text 28.1324 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 28.1325 + xml:space="preserve" 28.1326 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.1327 + x="528.52972" 28.1328 + y="674.83447" 28.1329 + id="text5477" 28.1330 + sodipodi:linespacing="100%"><tspan 28.1331 + style="font-size:8px;text-align:center;text-anchor:middle" 28.1332 + sodipodi:role="line" 28.1333 + x="528.52972" 28.1334 + y="674.83447" 28.1335 + id="tspan5479">normal call</tspan></text> 28.1336 + <text 28.1337 + sodipodi:linespacing="100%" 28.1338 + id="text5481" 28.1339 + y="514.83447" 28.1340 + x="527.8266" 28.1341 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.1342 + xml:space="preserve" 28.1343 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 28.1344 + id="tspan5483" 28.1345 + y="514.83447" 28.1346 + x="527.8266" 28.1347 + sodipodi:role="line" 28.1348 + style="font-size:8px;text-align:center;text-anchor:middle">normal call</tspan></text> 28.1349 + <text 28.1350 + sodipodi:linespacing="100%" 28.1351 + id="text5489" 28.1352 + y="452.22702" 28.1353 + x="78.959503" 28.1354 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.1355 + xml:space="preserve" 28.1356 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)"><tspan 28.1357 + id="tspan5491" 28.1358 + y="452.22702" 28.1359 + x="78.959503" 28.1360 + sodipodi:role="line" 28.1361 + style="font-size:8px;text-align:center;text-anchor:middle">Call via Ptr</tspan></text> 28.1362 + <text 28.1363 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)" 28.1364 + xml:space="preserve" 28.1365 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.1366 + x="79.588112" 28.1367 + y="490.2218" 28.1368 + id="text5493" 28.1369 + sodipodi:linespacing="100%"><tspan 28.1370 + style="font-size:8px;text-align:center;text-anchor:middle" 28.1371 + sodipodi:role="line" 28.1372 + x="79.588112" 28.1373 + y="490.2218" 28.1374 + id="tspan5495">Call via Ptr</tspan></text> 28.1375 + <text 28.1376 + sodipodi:linespacing="100%" 28.1377 + id="text5497" 28.1378 + y="526.21716" 28.1379 + x="80.18364" 28.1380 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.1381 + xml:space="preserve" 28.1382 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)"><tspan 28.1383 + id="tspan5499" 28.1384 + y="526.21716" 28.1385 + x="80.18364" 28.1386 + sodipodi:role="line" 28.1387 + style="font-size:8px;text-align:center;text-anchor:middle">Call via Ptr</tspan></text> 28.1388 + <g 28.1389 + transform="translate(-114,76)" 28.1390 + id="g8395"> 28.1391 + <rect 28.1392 + y="313.58255" 28.1393 + x="310.40247" 28.1394 + height="52.250008" 28.1395 + width="65.276405" 28.1396 + id="rect8397" 28.1397 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 28.1398 + </g> 28.1399 + <text 28.1400 + xml:space="preserve" 28.1401 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.1402 + x="228.92543" 28.1403 + y="577.76575" 28.1404 + id="text8411" 28.1405 + sodipodi:linespacing="100%"><tspan 28.1406 + style="text-align:center;text-anchor:middle" 28.1407 + sodipodi:role="line" 28.1408 + id="tspan8413" 28.1409 + x="228.92543" 28.1410 + y="577.76575">Master</tspan><tspan 28.1411 + style="font-size:8px;text-align:center;text-anchor:middle" 28.1412 + id="tspan8415" 28.1413 + sodipodi:role="line" 28.1414 + x="228.92543" 28.1415 + y="586.2005">(runtime system)</tspan><tspan 28.1416 + id="tspan8417" 28.1417 + style="font-size:8px;text-align:center;text-anchor:middle" 28.1418 + sodipodi:role="line" 28.1419 + x="228.92543" 28.1420 + y="594.2005">on core 2</tspan></text> 28.1421 + <g 28.1422 + id="g8419" 28.1423 + transform="translate(-114,254)"> 28.1424 + <rect 28.1425 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 28.1426 + id="rect8421" 28.1427 + width="65.276405" 28.1428 + height="52.250008" 28.1429 + x="310.40247" 28.1430 + y="313.58255" /> 28.1431 + </g> 28.1432 + <text 28.1433 + sodipodi:linespacing="100%" 28.1434 + id="text8425" 28.1435 + y="593.42468" 28.1436 + x="131.19971" 28.1437 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.1438 + xml:space="preserve"><tspan 28.1439 + id="tspan8427" 28.1440 + y="593.42468" 28.1441 + x="131.19971" 28.1442 + sodipodi:role="line" 28.1443 + style="text-align:center;text-anchor:middle;fill:#800000">Handler</tspan><tspan 28.1444 + id="tspan8429" 28.1445 + y="603.42468" 28.1446 + x="131.19971" 28.1447 + sodipodi:role="line" 28.1448 + style="text-align:center;text-anchor:middle;fill:#800000">for Language</tspan><tspan 28.1449 + id="tspan8431" 28.1450 + y="613.42468" 28.1451 + x="131.19971" 28.1452 + sodipodi:role="line" 28.1453 + style="text-align:center;text-anchor:middle;fill:#800000">Construct1</tspan></text> 28.1454 + <text 28.1455 + xml:space="preserve" 28.1456 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.1457 + x="131.19971" 28.1458 + y="673.42468" 28.1459 + id="text8433" 28.1460 + sodipodi:linespacing="100%"><tspan 28.1461 + style="text-align:center;text-anchor:middle;fill:#800000" 28.1462 + sodipodi:role="line" 28.1463 + x="131.19971" 28.1464 + y="673.42468" 28.1465 + id="tspan8435">Handler</tspan><tspan 28.1466 + style="text-align:center;text-anchor:middle;fill:#800000" 28.1467 + sodipodi:role="line" 28.1468 + x="131.19971" 28.1469 + y="683.42468" 28.1470 + id="tspan8437">for Language</tspan><tspan 28.1471 + style="text-align:center;text-anchor:middle;fill:#800000" 28.1472 + sodipodi:role="line" 28.1473 + x="131.19971" 28.1474 + y="693.42468" 28.1475 + id="tspan8439">Construct2</tspan></text> 28.1476 + <text 28.1477 + sodipodi:linespacing="100%" 28.1478 + id="text8441" 28.1479 + y="583.42468" 28.1480 + x="47.661133" 28.1481 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.1482 + xml:space="preserve"><tspan 28.1483 + id="tspan8443" 28.1484 + y="583.42468" 28.1485 + x="47.661133" 28.1486 + sodipodi:role="line" 28.1487 + style="text-align:center;text-anchor:middle">Master Fn</tspan></text> 28.1488 + <text 28.1489 + sodipodi:linespacing="100%" 28.1490 + id="text8445" 28.1491 + y="719.42468" 28.1492 + x="131.52441" 28.1493 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.1494 + xml:space="preserve"><tspan 28.1495 + id="tspan8447" 28.1496 + y="719.42468" 28.1497 + x="131.52441" 28.1498 + sodipodi:role="line" 28.1499 + style="text-align:center;text-anchor:middle;fill:#800000">Assigner Fn</tspan></text> 28.1500 + <path 28.1501 + sodipodi:nodetypes="cc" 28.1502 + inkscape:connector-curvature="0" 28.1503 + id="path8449" 28.1504 + d="m 48.02904,586.29842 c 0,7.37773 0,7.37773 0,7.37773" 28.1505 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 28.1506 + <path 28.1507 + inkscape:connector-curvature="0" 28.1508 + id="path8451" 28.1509 + d="m 48.247131,594.02605 c 48.887624,0 48.887624,0 48.887624,0" 28.1510 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 28.1511 + <path 28.1512 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 28.1513 + d="m 98.156891,606.02605 c -51.085387,0 -51.085387,0 -51.085387,0" 28.1514 + id="path8453" 28.1515 + inkscape:connector-curvature="0" /> 28.1516 + <path 28.1517 + sodipodi:nodetypes="cc" 28.1518 + inkscape:connector-curvature="0" 28.1519 + id="path8455" 28.1520 + d="m 98.02904,592.63925 c 0,13.68455 0,13.68455 0,13.68455" 28.1521 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 28.1522 + <text 28.1523 + xml:space="preserve" 28.1524 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.1525 + x="131.19971" 28.1526 + y="635.42468" 28.1527 + id="text8457" 28.1528 + sodipodi:linespacing="100%"><tspan 28.1529 + style="text-align:center;text-anchor:middle;fill:#800000" 28.1530 + sodipodi:role="line" 28.1531 + x="131.19971" 28.1532 + y="635.42468" 28.1533 + id="tspan8459">Handler</tspan><tspan 28.1534 + style="text-align:center;text-anchor:middle;fill:#800000" 28.1535 + sodipodi:role="line" 28.1536 + x="131.19971" 28.1537 + y="645.42468" 28.1538 + id="tspan8461">for Language</tspan><tspan 28.1539 + style="text-align:center;text-anchor:middle;fill:#800000" 28.1540 + sodipodi:role="line" 28.1541 + x="131.19971" 28.1542 + y="655.42468" 28.1543 + id="tspan8463">Construct1</tspan></text> 28.1544 + <path 28.1545 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 28.1546 + d="m 48.02904,606.51232 c 0,29.16381 0,29.16381 0,29.16381" 28.1547 + id="path8465" 28.1548 + inkscape:connector-curvature="0" 28.1549 + sodipodi:nodetypes="cc" /> 28.1550 + <path 28.1551 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 28.1552 + d="m 48.247131,636.02605 c 48.887624,0 48.887624,0 48.887624,0" 28.1553 + id="path8467" 28.1554 + inkscape:connector-curvature="0" /> 28.1555 + <path 28.1556 + inkscape:connector-curvature="0" 28.1557 + id="path8469" 28.1558 + d="m 98.156891,648.02605 c -51.085387,0 -51.085387,0 -51.085387,0" 28.1559 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 28.1560 + <path 28.1561 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 28.1562 + d="m 98.02904,634.63925 c 0,13.68455 0,13.68455 0,13.68455" 28.1563 + id="path8471" 28.1564 + inkscape:connector-curvature="0" 28.1565 + sodipodi:nodetypes="cc" /> 28.1566 + <path 28.1567 + sodipodi:nodetypes="cc" 28.1568 + inkscape:connector-curvature="0" 28.1569 + id="path8473" 28.1570 + d="m 48.02904,648.14337 c 0,25.5328 0,25.5328 0,25.5328" 28.1571 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 28.1572 + <path 28.1573 + inkscape:connector-curvature="0" 28.1574 + id="path8475" 28.1575 + d="m 48.247131,674.02605 c 48.887624,0 48.887624,0 48.887624,0" 28.1576 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 28.1577 + <path 28.1578 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 28.1579 + d="m 98.156891,686.02605 c -51.085387,0 -51.085387,0 -51.085387,0" 28.1580 + id="path8477" 28.1581 + inkscape:connector-curvature="0" /> 28.1582 + <path 28.1583 + sodipodi:nodetypes="cc" 28.1584 + inkscape:connector-curvature="0" 28.1585 + id="path8479" 28.1586 + d="m 98.02904,672.63925 c 0,13.68455 0,13.68455 0,13.68455" 28.1587 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 28.1588 + <path 28.1589 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 28.1590 + d="m 48.02904,686.56402 c 0,23.11212 0,23.11212 0,23.11212" 28.1591 + id="path8481" 28.1592 + inkscape:connector-curvature="0" 28.1593 + sodipodi:nodetypes="cc" /> 28.1594 + <path 28.1595 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 28.1596 + d="m 48.247131,710.02605 c 48.887624,0 48.887624,0 48.887624,0" 28.1597 + id="path8483" 28.1598 + inkscape:connector-curvature="0" /> 28.1599 + <path 28.1600 + inkscape:connector-curvature="0" 28.1601 + id="path8485" 28.1602 + d="m 98.156891,722.02605 c -51.085387,0 -51.085387,0 -51.085387,0" 28.1603 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 28.1604 + <path 28.1605 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 28.1606 + d="m 98.02904,708.63925 c 0,13.68455 0,13.68455 0,13.68455" 28.1607 + id="path8487" 28.1608 + inkscape:connector-curvature="0" 28.1609 + sodipodi:nodetypes="cc" /> 28.1610 + <text 28.1611 + sodipodi:linespacing="100%" 28.1612 + id="text8489" 28.1613 + y="590.20807" 28.1614 + x="81.242355" 28.1615 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.1616 + xml:space="preserve" 28.1617 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)"><tspan 28.1618 + id="tspan8491" 28.1619 + y="590.20807" 28.1620 + x="81.242355" 28.1621 + sodipodi:role="line" 28.1622 + style="font-size:8px;text-align:center;text-anchor:middle">Call via Ptr</tspan></text> 28.1623 + <path 28.1624 + inkscape:connector-curvature="0" 28.1625 + id="path8493" 28.1626 + d="m 193.99816,580.02605 c -117.505852,0 -117.505852,0 -117.505852,0" 28.1627 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000003, 3.00000003;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 28.1628 + <text 28.1629 + transform="matrix(0.97994281,-0.19927893,0.19927893,0.97994281,0,0)" 28.1630 + xml:space="preserve" 28.1631 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.1632 + x="22.488649" 28.1633 + y="591.78375" 28.1634 + id="text8495" 28.1635 + sodipodi:linespacing="100%"><tspan 28.1636 + style="font-size:8px;text-align:center;text-anchor:middle" 28.1637 + sodipodi:role="line" 28.1638 + x="22.488649" 28.1639 + y="591.78375" 28.1640 + id="tspan8497">Top Level Fn</tspan></text> 28.1641 + <text 28.1642 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)" 28.1643 + xml:space="preserve" 28.1644 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.1645 + x="81.937141" 28.1646 + y="632.20233" 28.1647 + id="text8499" 28.1648 + sodipodi:linespacing="100%"><tspan 28.1649 + style="font-size:8px;text-align:center;text-anchor:middle" 28.1650 + sodipodi:role="line" 28.1651 + x="81.937141" 28.1652 + y="632.20233" 28.1653 + id="tspan8501">Call via Ptr</tspan></text> 28.1654 + <text 28.1655 + sodipodi:linespacing="100%" 28.1656 + id="text8503" 28.1657 + y="670.19708" 28.1658 + x="82.56575" 28.1659 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.1660 + xml:space="preserve" 28.1661 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)"><tspan 28.1662 + id="tspan8505" 28.1663 + y="670.19708" 28.1664 + x="82.56575" 28.1665 + sodipodi:role="line" 28.1666 + style="font-size:8px;text-align:center;text-anchor:middle">Call via Ptr</tspan></text> 28.1667 + <text 28.1668 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)" 28.1669 + xml:space="preserve" 28.1670 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 28.1671 + x="83.161278" 28.1672 + y="706.19244" 28.1673 + id="text8507" 28.1674 + sodipodi:linespacing="100%"><tspan 28.1675 + style="font-size:8px;text-align:center;text-anchor:middle" 28.1676 + sodipodi:role="line" 28.1677 + x="83.161278" 28.1678 + y="706.19244" 28.1679 + id="tspan8509">Call via Ptr</tspan></text> 28.1680 + </g> 28.1681 +</svg>
29.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 29.2 +++ b/0__Papers/PRT/PRT__formal_def/figures/Proto-Runtime__modules_plus_plugin_plus_code_back_2.svg Sat Aug 03 19:24:22 2013 -0700 29.3 @@ -0,0 +1,2231 @@ 29.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 29.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 29.6 + 29.7 +<svg 29.8 + xmlns:dc="http://purl.org/dc/elements/1.1/" 29.9 + xmlns:cc="http://creativecommons.org/ns#" 29.10 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 29.11 + xmlns:svg="http://www.w3.org/2000/svg" 29.12 + xmlns="http://www.w3.org/2000/svg" 29.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 29.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 29.15 + width="744.09448819" 29.16 + height="1052.3622047" 29.17 + id="svg2" 29.18 + sodipodi:version="0.32" 29.19 + inkscape:version="0.48.2 r9819" 29.20 + sodipodi:docname="Proto-Runtime__modules_plus_plugin_plus_code.svg" 29.21 + inkscape:output_extension="org.inkscape.output.svg.inkscape" 29.22 + version="1.1"> 29.23 + <defs 29.24 + id="defs4"> 29.25 + <marker 29.26 + inkscape:stockid="Arrow2Mend" 29.27 + orient="auto" 29.28 + refY="0.0" 29.29 + refX="0.0" 29.30 + id="Arrow2Mend" 29.31 + style="overflow:visible;"> 29.32 + <path 29.33 + id="path4008" 29.34 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 29.35 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 29.36 + transform="scale(0.6) rotate(180) translate(0,0)" /> 29.37 + </marker> 29.38 + <inkscape:perspective 29.39 + sodipodi:type="inkscape:persp3d" 29.40 + inkscape:vp_x="0 : 526.18109 : 1" 29.41 + inkscape:vp_y="0 : 1000 : 0" 29.42 + inkscape:vp_z="744.09448 : 526.18109 : 1" 29.43 + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" 29.44 + id="perspective10" /> 29.45 + <inkscape:perspective 29.46 + id="perspective12172" 29.47 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 29.48 + inkscape:vp_z="1 : 0.5 : 1" 29.49 + inkscape:vp_y="0 : 1000 : 0" 29.50 + inkscape:vp_x="0 : 0.5 : 1" 29.51 + sodipodi:type="inkscape:persp3d" /> 29.52 + <inkscape:perspective 29.53 + id="perspective12937" 29.54 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 29.55 + inkscape:vp_z="1 : 0.5 : 1" 29.56 + inkscape:vp_y="0 : 1000 : 0" 29.57 + inkscape:vp_x="0 : 0.5 : 1" 29.58 + sodipodi:type="inkscape:persp3d" /> 29.59 + </defs> 29.60 + <sodipodi:namedview 29.61 + id="base" 29.62 + pagecolor="#ffffff" 29.63 + bordercolor="#666666" 29.64 + borderopacity="1.0" 29.65 + gridtolerance="10000" 29.66 + guidetolerance="10" 29.67 + objecttolerance="10" 29.68 + inkscape:pageopacity="0.0" 29.69 + inkscape:pageshadow="2" 29.70 + inkscape:zoom="1.6398134" 29.71 + inkscape:cx="167.915" 29.72 + inkscape:cy="557.78994" 29.73 + inkscape:document-units="px" 29.74 + inkscape:current-layer="layer1" 29.75 + showgrid="false" 29.76 + inkscape:window-width="1600" 29.77 + inkscape:window-height="848" 29.78 + inkscape:window-x="-8" 29.79 + inkscape:window-y="-8" 29.80 + inkscape:window-maximized="1" /> 29.81 + <metadata 29.82 + id="metadata7"> 29.83 + <rdf:RDF> 29.84 + <cc:Work 29.85 + rdf:about=""> 29.86 + <dc:format>image/svg+xml</dc:format> 29.87 + <dc:type 29.88 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 29.89 + <dc:title></dc:title> 29.90 + </cc:Work> 29.91 + </rdf:RDF> 29.92 + </metadata> 29.93 + <g 29.94 + inkscape:label="Layer 1" 29.95 + inkscape:groupmode="layer" 29.96 + id="layer1"> 29.97 + <text 29.98 + sodipodi:linespacing="100%" 29.99 + id="text12979" 29.100 + y="399.76575" 29.101 + x="326.92542" 29.102 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.103 + xml:space="preserve"><tspan 29.104 + y="399.76575" 29.105 + x="326.92542" 29.106 + id="tspan12981" 29.107 + sodipodi:role="line" 29.108 + style="text-align:center;text-anchor:middle">Master</tspan><tspan 29.109 + y="408.20053" 29.110 + x="326.92542" 29.111 + sodipodi:role="line" 29.112 + id="tspan3291" 29.113 + style="font-size:8px;text-align:center;text-anchor:middle">(runtime system)</tspan><tspan 29.114 + y="416.20053" 29.115 + x="326.92542" 29.116 + sodipodi:role="line" 29.117 + style="font-size:8px;text-align:center;text-anchor:middle" 29.118 + id="tspan8409">on core 1</tspan></text> 29.119 + <g 29.120 + id="g9336" 29.121 + transform="translate(44.002789,0)"> 29.122 + <rect 29.123 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 29.124 + id="rect3293" 29.125 + width="65.276405" 29.126 + height="37.165791" 29.127 + x="346.40247" 29.128 + y="389.58255" /> 29.129 + <text 29.130 + sodipodi:linespacing="100%" 29.131 + id="text3295" 29.132 + y="400.15268" 29.133 + x="379.00162" 29.134 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.135 + xml:space="preserve"><tspan 29.136 + id="tspan3301" 29.137 + y="400.15268" 29.138 + x="379.00162" 29.139 + sodipodi:role="line" 29.140 + style="text-align:center;text-anchor:middle">Seed VP</tspan><tspan 29.141 + y="408.58746" 29.142 + x="379.00162" 29.143 + sodipodi:role="line" 29.144 + style="font-size:8px;text-align:center;text-anchor:middle" 29.145 + id="tspan9389">(created at</tspan><tspan 29.146 + y="416.58746" 29.147 + x="379.00162" 29.148 + sodipodi:role="line" 29.149 + style="font-size:8px;text-align:center;text-anchor:middle" 29.150 + id="tspan9391">app startup,</tspan><tspan 29.151 + y="424.58746" 29.152 + x="379.00162" 29.153 + sodipodi:role="line" 29.154 + style="font-size:8px;text-align:center;text-anchor:middle" 29.155 + id="tspan9744">on core 1)</tspan></text> 29.156 + </g> 29.157 + <text 29.158 + xml:space="preserve" 29.159 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.160 + x="517.16797" 29.161 + y="357.42465" 29.162 + id="text3318-1" 29.163 + sodipodi:linespacing="100%"><tspan 29.164 + style="text-align:center;text-anchor:middle;fill:#008000" 29.165 + sodipodi:role="line" 29.166 + x="517.16797" 29.167 + y="357.42465" 29.168 + id="tspan3322-5">Application Code</tspan></text> 29.169 + <text 29.170 + sodipodi:linespacing="100%" 29.171 + id="text3376" 29.172 + y="403.42465" 29.173 + x="517.16797" 29.174 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.175 + xml:space="preserve"><tspan 29.176 + id="tspan3378" 29.177 + y="403.42465" 29.178 + x="517.16797" 29.179 + sodipodi:role="line" 29.180 + style="text-align:center;text-anchor:middle;fill:#008000">Seed_Fn</tspan></text> 29.181 + <text 29.182 + xml:space="preserve" 29.183 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.184 + x="517.16797" 29.185 + y="571.42468" 29.186 + id="text3380" 29.187 + sodipodi:linespacing="100%"><tspan 29.188 + style="text-align:center;text-anchor:middle;fill:#008000" 29.189 + sodipodi:role="line" 29.190 + x="517.16797" 29.191 + y="571.42468" 29.192 + id="tspan3382">Work_Fn</tspan></text> 29.193 + <text 29.194 + sodipodi:linespacing="100%" 29.195 + id="text3388" 29.196 + y="357.42465" 29.197 + x="604.63812" 29.198 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.199 + xml:space="preserve"><tspan 29.200 + id="tspan3390" 29.201 + y="357.42465" 29.202 + x="606.14203" 29.203 + sodipodi:role="line" 29.204 + style="text-align:center;text-anchor:middle;fill:#800000">Language </tspan><tspan 29.205 + y="367.42465" 29.206 + x="604.63812" 29.207 + sodipodi:role="line" 29.208 + style="text-align:center;text-anchor:middle;fill:#800000" 29.209 + id="tspan5106">Wrapper-Lib</tspan><tspan 29.210 + y="377.42465" 29.211 + x="604.63812" 29.212 + sodipodi:role="line" 29.213 + style="text-align:center;text-anchor:middle;fill:#800000" 29.214 + id="tspan3392">Code</tspan></text> 29.215 + <text 29.216 + xml:space="preserve" 29.217 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.218 + x="669.16797" 29.219 + y="357.42465" 29.220 + id="text3394" 29.221 + sodipodi:linespacing="100%"><tspan 29.222 + style="text-align:center;text-anchor:middle;fill:#000080" 29.223 + sodipodi:role="line" 29.224 + x="669.16797" 29.225 + y="357.42465" 29.226 + id="tspan3396">Proto-Runtime</tspan><tspan 29.227 + style="text-align:center;text-anchor:middle;fill:#000080" 29.228 + sodipodi:role="line" 29.229 + x="669.16797" 29.230 + y="367.42465" 29.231 + id="tspan4998">Primitive</tspan><tspan 29.232 + id="tspan3398" 29.233 + style="text-align:center;text-anchor:middle;fill:#000080" 29.234 + sodipodi:role="line" 29.235 + x="669.16797" 29.236 + y="377.42465">Code</tspan></text> 29.237 + <text 29.238 + xml:space="preserve" 29.239 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.240 + x="137.31689" 29.241 + y="433.42465" 29.242 + id="text3412" 29.243 + sodipodi:linespacing="100%"><tspan 29.244 + style="text-align:center;text-anchor:middle;fill:#800000" 29.245 + sodipodi:role="line" 29.246 + x="137.31689" 29.247 + y="433.42465" 29.248 + id="tspan3414">Lang Handler</tspan><tspan 29.249 + style="text-align:center;text-anchor:middle;fill:#800000" 29.250 + sodipodi:role="line" 29.251 + x="137.31689" 29.252 + y="443.42465" 29.253 + id="tspan3422">for create VP</tspan></text> 29.254 + <text 29.255 + xml:space="preserve" 29.256 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.257 + x="137.68066" 29.258 + y="481.42468" 29.259 + id="text3444" 29.260 + sodipodi:linespacing="100%"><tspan 29.261 + style="text-align:center;text-anchor:middle;fill:#800000" 29.262 + sodipodi:role="line" 29.263 + x="137.68066" 29.264 + y="481.42468" 29.265 + id="tspan3450">Assigner Fn</tspan></text> 29.266 + <text 29.267 + xml:space="preserve" 29.268 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.269 + x="327.16797" 29.270 + y="359.42465" 29.271 + id="text3456" 29.272 + sodipodi:linespacing="100%"><tspan 29.273 + style="text-align:center;text-anchor:middle" 29.274 + sodipodi:role="line" 29.275 + x="328.67188" 29.276 + y="359.42465" 29.277 + id="tspan3458">Instances of </tspan><tspan 29.278 + style="text-align:center;text-anchor:middle" 29.279 + sodipodi:role="line" 29.280 + x="327.16797" 29.281 + y="369.42465" 29.282 + id="tspan8405">runtime system</tspan><tspan 29.283 + style="font-size:8px;text-align:center;text-anchor:middle" 29.284 + sodipodi:role="line" 29.285 + x="327.16797" 29.286 + y="377.85944" 29.287 + id="tspan9383">(data structs</tspan><tspan 29.288 + style="font-size:8px;text-align:center;text-anchor:middle" 29.289 + sodipodi:role="line" 29.290 + x="327.16797" 29.291 + y="385.85944" 29.292 + id="tspan9385">on heap)</tspan><tspan 29.293 + id="tspan3460" 29.294 + style="text-align:center;text-anchor:middle" 29.295 + sodipodi:role="line" 29.296 + x="327.16797" 29.297 + y="393.85944" /></text> 29.298 + <text 29.299 + sodipodi:linespacing="100%" 29.300 + id="text3462" 29.301 + y="357.42465" 29.302 + x="423.16797" 29.303 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.304 + xml:space="preserve"><tspan 29.305 + id="tspan3464" 29.306 + y="357.42465" 29.307 + x="423.16797" 29.308 + sodipodi:role="line" 29.309 + style="text-align:center;text-anchor:middle">Instances of</tspan><tspan 29.310 + y="367.42465" 29.311 + x="423.16797" 29.312 + sodipodi:role="line" 29.313 + style="text-align:center;text-anchor:middle" 29.314 + id="tspan3468">Virtual Processors</tspan><tspan 29.315 + y="375.85944" 29.316 + x="423.16797" 29.317 + sodipodi:role="line" 29.318 + style="font-size:8px;text-align:center;text-anchor:middle" 29.319 + id="tspan3466">(data structs</tspan><tspan 29.320 + y="383.85944" 29.321 + x="423.16797" 29.322 + sodipodi:role="line" 29.323 + style="font-size:8px;text-align:center;text-anchor:middle" 29.324 + id="tspan9387">on heap)</tspan></text> 29.325 + <path 29.326 + inkscape:connector-curvature="0" 29.327 + id="path4796" 29.328 + d="m 457.32649,400.02605 c 38.42351,0 38.42351,0 38.42351,0" 29.329 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999996, 2.99999996;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 29.330 + <text 29.331 + xml:space="preserve" 29.332 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.333 + x="604.78461" 29.334 + y="397.42465" 29.335 + id="text4988" 29.336 + sodipodi:linespacing="100%"><tspan 29.337 + style="text-align:center;text-anchor:middle;fill:#800000" 29.338 + sodipodi:role="line" 29.339 + x="604.78461" 29.340 + y="397.42465" 29.341 + id="tspan4990">create VP</tspan><tspan 29.342 + style="text-align:center;text-anchor:middle;fill:#800000" 29.343 + sodipodi:role="line" 29.344 + x="604.78461" 29.345 + y="407.42465" 29.346 + id="tspan5104">wrapper Fn</tspan></text> 29.347 + <text 29.348 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)" 29.349 + xml:space="preserve" 29.350 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.351 + x="638.65094" 29.352 + y="428.96548" 29.353 + id="text5064" 29.354 + sodipodi:linespacing="100%"><tspan 29.355 + style="font-size:8px;text-align:center;text-anchor:middle" 29.356 + sodipodi:role="line" 29.357 + x="638.65094" 29.358 + y="428.96548" 29.359 + id="tspan5066">Call to dyn lib</tspan></text> 29.360 + <path 29.361 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000003, 3.00000003;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 29.362 + d="m 291.99816,400.02605 c -63.44071,0 -63.44071,0 -63.44071,0" 29.363 + id="path5068" 29.364 + inkscape:connector-curvature="0" /> 29.365 + <text 29.366 + sodipodi:linespacing="100%" 29.367 + id="text5070" 29.368 + y="439.30746" 29.369 + x="175.95195" 29.370 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.371 + xml:space="preserve" 29.372 + transform="matrix(0.97994281,-0.19927893,0.19927893,0.97994281,0,0)"><tspan 29.373 + id="tspan5072" 29.374 + y="439.30746" 29.375 + x="175.95195" 29.376 + sodipodi:role="line" 29.377 + style="font-size:8px;text-align:center;text-anchor:middle">Top Level Fn</tspan></text> 29.378 + <text 29.379 + transform="matrix(0.97994281,-0.19927893,0.19927893,0.97994281,0,0)" 29.380 + xml:space="preserve" 29.381 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.382 + x="395.85803" 29.383 + y="481.98584" 29.384 + id="text5074" 29.385 + sodipodi:linespacing="100%"><tspan 29.386 + style="font-size:8px;text-align:center;text-anchor:middle" 29.387 + sodipodi:role="line" 29.388 + x="395.85803" 29.389 + y="481.98584" 29.390 + id="tspan5076">Top Level Fn</tspan></text> 29.391 + <text 29.392 + sodipodi:linespacing="100%" 29.393 + id="text5078" 29.394 + y="647.01514" 29.395 + x="364.33911" 29.396 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.397 + xml:space="preserve" 29.398 + transform="matrix(0.97994281,-0.19927893,0.19927893,0.97994281,0,0)"><tspan 29.399 + id="tspan5080" 29.400 + y="647.01514" 29.401 + x="364.33911" 29.402 + sodipodi:role="line" 29.403 + style="font-size:8px;text-align:center;text-anchor:middle">Top Level Fn</tspan></text> 29.404 + <path 29.405 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999996, 2.99999996;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 29.406 + d="m 458.9835,568.02605 c 36.7665,0 36.7665,0 36.7665,0" 29.407 + id="path5082" 29.408 + inkscape:connector-curvature="0" /> 29.409 + <path 29.410 + inkscape:connector-curvature="0" 29.411 + id="path5084" 29.412 + d="m 457.32649,728.02605 c 38.42351,0 38.42351,0 38.42351,0" 29.413 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999996, 2.99999996;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 29.414 + <path 29.415 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 29.416 + d="m 514.02904,406.01894 c 0,5.6572 0,5.6572 0,5.6572" 29.417 + id="path5092" 29.418 + inkscape:connector-curvature="0" 29.419 + sodipodi:nodetypes="cc" /> 29.420 + <path 29.421 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 29.422 + d="m 514.24714,412.02605 c 85.56237,0 85.56237,0 85.56237,0" 29.423 + id="path5094" 29.424 + inkscape:connector-curvature="0" /> 29.425 + <path 29.426 + inkscape:connector-curvature="0" 29.427 + id="path5096" 29.428 + d="m 602.77166,486.02605 c -88.41298,0 -88.41298,0 -88.41298,0" 29.429 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 29.430 + <text 29.431 + transform="matrix(0.97994281,-0.19927893,0.19927893,0.97994281,0,0)" 29.432 + xml:space="preserve" 29.433 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.434 + x="332.45419" 29.435 + y="803.80713" 29.436 + id="text5114" 29.437 + sodipodi:linespacing="100%"><tspan 29.438 + style="font-size:8px;text-align:center;text-anchor:middle" 29.439 + sodipodi:role="line" 29.440 + x="332.45419" 29.441 + y="803.80713" 29.442 + id="tspan5116">Top Level Fn</tspan></text> 29.443 + <text 29.444 + sodipodi:linespacing="100%" 29.445 + id="text5136" 29.446 + y="731.42468" 29.447 + x="517.16797" 29.448 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.449 + xml:space="preserve"><tspan 29.450 + id="tspan5138" 29.451 + y="731.42468" 29.452 + x="517.16797" 29.453 + sodipodi:role="line" 29.454 + style="text-align:center;text-anchor:middle;fill:#008000">Work_Fn</tspan></text> 29.455 + <path 29.456 + sodipodi:nodetypes="cc" 29.457 + inkscape:connector-curvature="0" 29.458 + id="path5140" 29.459 + d="m 514.02904,486.31987 c 0,26.21842 0,26.21842 0,26.21842" 29.460 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 29.461 + <path 29.462 + inkscape:connector-curvature="0" 29.463 + id="path5142" 29.464 + d="m 514.2471,512.02605 c 87.58783,0 87.58783,0 87.58783,0" 29.465 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 29.466 + <text 29.467 + sodipodi:linespacing="100%" 29.468 + id="text5157" 29.469 + y="498.71182" 29.470 + x="604.78461" 29.471 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.472 + xml:space="preserve"><tspan 29.473 + id="tspan5161" 29.474 + y="498.71182" 29.475 + x="604.78461" 29.476 + sodipodi:role="line" 29.477 + style="text-align:center;text-anchor:middle;fill:#800000">end VP</tspan><tspan 29.478 + y="508.71182" 29.479 + x="604.78461" 29.480 + sodipodi:role="line" 29.481 + style="text-align:center;text-anchor:middle;fill:#800000" 29.482 + id="tspan5207">wrapper Fn</tspan></text> 29.483 + <path 29.484 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 29.485 + d="m 602.26584,518.02605 c 63.99676,0 63.99676,0 63.99676,0" 29.486 + id="path5165" 29.487 + inkscape:connector-curvature="0" /> 29.488 + <path 29.489 + sodipodi:nodetypes="cc" 29.490 + inkscape:connector-curvature="0" 29.491 + id="path5179" 29.492 + d="m 514.02904,574.01895 c 0,5.6572 0,5.6572 0,5.6572" 29.493 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 29.494 + <path 29.495 + sodipodi:nodetypes="cc" 29.496 + inkscape:connector-curvature="0" 29.497 + id="path5209" 29.498 + d="m 602.02904,510.31985 c 0,7.35629 0,7.35629 0,7.35629" 29.499 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 29.500 + <text 29.501 + xml:space="preserve" 29.502 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.503 + x="497.16797" 29.504 + y="399.42468" 29.505 + id="text5211" 29.506 + sodipodi:linespacing="100%"><tspan 29.507 + style="text-align:center;text-anchor:middle" 29.508 + sodipodi:role="line" 29.509 + x="497.16797" 29.510 + y="399.42468" 29.511 + id="tspan5215" /></text> 29.512 + <path 29.513 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 29.514 + d="m 602.02904,412.21843 c 0,19.4577 0,19.4577 0,19.4577" 29.515 + id="path5217" 29.516 + inkscape:connector-curvature="0" 29.517 + sodipodi:nodetypes="cc" /> 29.518 + <path 29.519 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 29.520 + d="m 602.24714,432.02605 c 64.71029,0 64.71029,0 64.71029,0" 29.521 + id="path5219" 29.522 + inkscape:connector-curvature="0" /> 29.523 + <path 29.524 + inkscape:connector-curvature="0" 29.525 + id="path5221" 29.526 + d="m 666.85635,482.02605 c -65.78483,0 -65.78483,0 -65.78483,0" 29.527 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 29.528 + <path 29.529 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 29.530 + d="m 668.02904,430.63925 c 0,13.68455 0,13.68455 0,13.68455" 29.531 + id="path5223" 29.532 + inkscape:connector-curvature="0" 29.533 + sodipodi:nodetypes="cc" /> 29.534 + <path 29.535 + sodipodi:nodetypes="cc" 29.536 + inkscape:connector-curvature="0" 29.537 + id="path5229" 29.538 + d="m 602.02904,481.22687 c 0,5.5885 0,5.5885 0,5.5885" 29.539 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 29.540 + <path 29.541 + sodipodi:nodetypes="cc" 29.542 + inkscape:connector-curvature="0" 29.543 + id="path5235" 29.544 + d="m 668.02904,468.63925 c 0,13.68455 0,13.68455 0,13.68455" 29.545 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 29.546 + <path 29.547 + inkscape:connector-curvature="0" 29.548 + id="path5237" 29.549 + d="m 668.24715,442.02605 c 57.74832,0 57.74832,0 57.74832,0" 29.550 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 29.551 + <text 29.552 + sodipodi:linespacing="100%" 29.553 + id="text5239" 29.554 + y="800.22192" 29.555 + x="207.23195" 29.556 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.557 + xml:space="preserve" 29.558 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 29.559 + id="tspan5241" 29.560 + y="800.22192" 29.561 + x="207.23195" 29.562 + sodipodi:role="line" 29.563 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan><tspan 29.564 + y="808.22192" 29.565 + x="207.23195" 29.566 + sodipodi:role="line" 29.567 + style="font-size:8px;text-align:center;text-anchor:middle" 29.568 + id="tspan5243">and switch</tspan><tspan 29.569 + y="816.22192" 29.570 + x="207.23195" 29.571 + sodipodi:role="line" 29.572 + style="font-size:8px;text-align:center;text-anchor:middle" 29.573 + id="tspan5245">to runtime</tspan></text> 29.574 + <path 29.575 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 29.576 + d="m 725.94909,470.02605 c -56.8776,0 -56.8776,0 -56.8776,0" 29.577 + id="path5247" 29.578 + inkscape:connector-curvature="0" /> 29.579 + <text 29.580 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 29.581 + xml:space="preserve" 29.582 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.583 + x="176.58183" 29.584 + y="829.00677" 29.585 + id="text5249" 29.586 + sodipodi:linespacing="100%"><tspan 29.587 + id="tspan5255" 29.588 + style="font-size:8px;text-align:center;text-anchor:middle" 29.589 + sodipodi:role="line" 29.590 + x="176.58183" 29.591 + y="829.00677">return</tspan><tspan 29.592 + style="font-size:8px;text-align:center;text-anchor:middle" 29.593 + sodipodi:role="line" 29.594 + x="176.58183" 29.595 + y="837.00677" 29.596 + id="tspan5261">from</tspan><tspan 29.597 + style="font-size:8px;text-align:center;text-anchor:middle" 29.598 + sodipodi:role="line" 29.599 + x="176.58183" 29.600 + y="845.00677" 29.601 + id="tspan5263">suspend</tspan></text> 29.602 + <text 29.603 + sodipodi:linespacing="100%" 29.604 + id="text5345" 29.605 + y="419.42465" 29.606 + x="667.38037" 29.607 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.608 + xml:space="preserve"><tspan 29.609 + id="tspan5349" 29.610 + y="419.42465" 29.611 + x="667.38037" 29.612 + sodipodi:role="line" 29.613 + style="text-align:center;text-anchor:middle;fill:#000080">PR primitive Fn</tspan><tspan 29.614 + y="429.42465" 29.615 + x="667.38037" 29.616 + sodipodi:role="line" 29.617 + style="text-align:center;text-anchor:middle;fill:#000080" 29.618 + id="tspan5353">to send request</tspan></text> 29.619 + <text 29.620 + sodipodi:linespacing="100%" 29.621 + id="text5355" 29.622 + y="416.71411" 29.623 + x="555.39612" 29.624 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.625 + xml:space="preserve" 29.626 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 29.627 + id="tspan5357" 29.628 + y="416.71411" 29.629 + x="555.39612" 29.630 + sodipodi:role="line" 29.631 + style="font-size:8px;text-align:center;text-anchor:middle">normal call</tspan></text> 29.632 + <path 29.633 + sodipodi:nodetypes="cc" 29.634 + inkscape:connector-curvature="0" 29.635 + id="path5359" 29.636 + d="m 668.02904,517.28283 c 0,13.68455 0,13.68455 0,13.68455" 29.637 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 29.638 + <path 29.639 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 29.640 + d="m 668.24715,528.66963 c 57.74832,0 57.74832,0 57.74832,0" 29.641 + id="path5361" 29.642 + inkscape:connector-curvature="0" /> 29.643 + <text 29.644 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 29.645 + xml:space="preserve" 29.646 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.647 + x="146.02351" 29.648 + y="863.44775" 29.649 + id="text5363" 29.650 + sodipodi:linespacing="100%"><tspan 29.651 + style="font-size:8px;text-align:center;text-anchor:middle" 29.652 + sodipodi:role="line" 29.653 + x="146.02351" 29.654 + y="863.44775" 29.655 + id="tspan5365">suspend</tspan><tspan 29.656 + id="tspan5367" 29.657 + style="font-size:8px;text-align:center;text-anchor:middle" 29.658 + sodipodi:role="line" 29.659 + x="146.02351" 29.660 + y="871.44775">and switch</tspan><tspan 29.661 + id="tspan5369" 29.662 + style="font-size:8px;text-align:center;text-anchor:middle" 29.663 + sodipodi:role="line" 29.664 + x="146.02351" 29.665 + y="879.44775">to runtime</tspan></text> 29.666 + <text 29.667 + sodipodi:linespacing="100%" 29.668 + id="text5371" 29.669 + y="565.42468" 29.670 + x="604.59662" 29.671 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.672 + xml:space="preserve"><tspan 29.673 + id="tspan5373" 29.674 + y="565.42468" 29.675 + x="604.59662" 29.676 + sodipodi:role="line" 29.677 + style="text-align:center;text-anchor:middle;fill:#800000">Mutex Acquire</tspan><tspan 29.678 + id="tspan5375" 29.679 + y="575.42468" 29.680 + x="604.59662" 29.681 + sodipodi:role="line" 29.682 + style="text-align:center;text-anchor:middle;fill:#800000">wrapper Fn</tspan></text> 29.683 + <path 29.684 + inkscape:connector-curvature="0" 29.685 + id="path5379" 29.686 + d="m 514.24714,580.02605 c 85.56237,0 85.56237,0 85.56237,0" 29.687 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 29.688 + <path 29.689 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 29.690 + d="m 602.77166,654.02605 c -88.41298,0 -88.41298,0 -88.41298,0" 29.691 + id="path5381" 29.692 + inkscape:connector-curvature="0" /> 29.693 + <text 29.694 + xml:space="preserve" 29.695 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.696 + x="604.78461" 29.697 + y="666.71179" 29.698 + id="text5387" 29.699 + sodipodi:linespacing="100%"><tspan 29.700 + style="text-align:center;text-anchor:middle;fill:#800000" 29.701 + sodipodi:role="line" 29.702 + x="604.78461" 29.703 + y="666.71179" 29.704 + id="tspan5389">end VP</tspan><tspan 29.705 + id="tspan5391" 29.706 + style="text-align:center;text-anchor:middle;fill:#800000" 29.707 + sodipodi:role="line" 29.708 + x="604.78461" 29.709 + y="676.71179">wrapper Fn</tspan></text> 29.710 + <path 29.711 + inkscape:connector-curvature="0" 29.712 + id="path5393" 29.713 + d="m 602.289,686.02605 c 65.24023,0 65.24023,0 65.24023,0" 29.714 + style="fill:none;stroke:#000000;stroke-width:0.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 29.715 + <path 29.716 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 29.717 + d="m 602.02904,678.31985 c 0,7.35629 0,7.35629 0,7.35629" 29.718 + id="path5401" 29.719 + inkscape:connector-curvature="0" 29.720 + sodipodi:nodetypes="cc" /> 29.721 + <path 29.722 + sodipodi:nodetypes="cc" 29.723 + inkscape:connector-curvature="0" 29.724 + id="path5403" 29.725 + d="m 602.02904,580.21843 c 0,19.4577 0,19.4577 0,19.4577" 29.726 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 29.727 + <path 29.728 + inkscape:connector-curvature="0" 29.729 + id="path5405" 29.730 + d="m 602.6148,600.02605 c 64.1779,0 64.1779,0 64.1779,0" 29.731 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 29.732 + <path 29.733 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 29.734 + d="m 668.13452,650.02605 c -67.06305,0 -67.06305,0 -67.06305,0" 29.735 + id="path5407" 29.736 + inkscape:connector-curvature="0" /> 29.737 + <path 29.738 + sodipodi:nodetypes="cc" 29.739 + inkscape:connector-curvature="0" 29.740 + id="path5409" 29.741 + d="m 668.02904,598.63925 c 0,13.68455 0,13.68455 0,13.68455" 29.742 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 29.743 + <path 29.744 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 29.745 + d="m 602.02904,649.22687 c 0,5.5885 0,5.5885 0,5.5885" 29.746 + id="path5411" 29.747 + inkscape:connector-curvature="0" 29.748 + sodipodi:nodetypes="cc" /> 29.749 + <path 29.750 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 29.751 + d="m 668.02904,636.63925 c 0,13.68455 0,13.68455 0,13.68455" 29.752 + id="path5417" 29.753 + inkscape:connector-curvature="0" 29.754 + sodipodi:nodetypes="cc" /> 29.755 + <path 29.756 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 29.757 + d="m 668.24715,610.02605 c 57.74832,0 57.74832,0 57.74832,0" 29.758 + id="path5419" 29.759 + inkscape:connector-curvature="0" /> 29.760 + <text 29.761 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 29.762 + xml:space="preserve" 29.763 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.764 + x="90.37989" 29.765 + y="920.92737" 29.766 + id="text5421" 29.767 + sodipodi:linespacing="100%"><tspan 29.768 + style="font-size:8px;text-align:center;text-anchor:middle" 29.769 + sodipodi:role="line" 29.770 + x="90.37989" 29.771 + y="920.92737" 29.772 + id="tspan5423">suspend</tspan><tspan 29.773 + id="tspan5425" 29.774 + style="font-size:8px;text-align:center;text-anchor:middle" 29.775 + sodipodi:role="line" 29.776 + x="90.37989" 29.777 + y="928.92737">and switch</tspan><tspan 29.778 + id="tspan5427" 29.779 + style="font-size:8px;text-align:center;text-anchor:middle" 29.780 + sodipodi:role="line" 29.781 + x="90.37989" 29.782 + y="936.92737">to runtime</tspan></text> 29.783 + <path 29.784 + inkscape:connector-curvature="0" 29.785 + id="path5429" 29.786 + d="m 725.94909,638.02605 c -56.8776,0 -56.8776,0 -56.8776,0" 29.787 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 29.788 + <text 29.789 + sodipodi:linespacing="100%" 29.790 + id="text5431" 29.791 + y="951.10333" 29.792 + x="61.166965" 29.793 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.794 + xml:space="preserve" 29.795 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 29.796 + y="951.10333" 29.797 + x="61.166965" 29.798 + sodipodi:role="line" 29.799 + style="font-size:8px;text-align:center;text-anchor:middle" 29.800 + id="tspan5433">return</tspan><tspan 29.801 + id="tspan5435" 29.802 + y="959.10333" 29.803 + x="61.166965" 29.804 + sodipodi:role="line" 29.805 + style="font-size:8px;text-align:center;text-anchor:middle">from</tspan><tspan 29.806 + id="tspan5437" 29.807 + y="967.10333" 29.808 + x="61.166965" 29.809 + sodipodi:role="line" 29.810 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan></text> 29.811 + <text 29.812 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 29.813 + xml:space="preserve" 29.814 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.815 + x="556.1333" 29.816 + y="584.71155" 29.817 + id="text5445" 29.818 + sodipodi:linespacing="100%"><tspan 29.819 + style="font-size:8px;text-align:center;text-anchor:middle" 29.820 + sodipodi:role="line" 29.821 + x="556.1333" 29.822 + y="584.71155" 29.823 + id="tspan5447">normal call</tspan></text> 29.824 + <path 29.825 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 29.826 + d="m 668.02904,685.28283 c 0,13.68455 0,13.68455 0,13.68455" 29.827 + id="path5449" 29.828 + inkscape:connector-curvature="0" 29.829 + sodipodi:nodetypes="cc" /> 29.830 + <path 29.831 + inkscape:connector-curvature="0" 29.832 + id="path5451" 29.833 + d="m 668.24715,696.66963 c 57.74832,0 57.74832,0 57.74832,0" 29.834 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 29.835 + <text 29.836 + sodipodi:linespacing="100%" 29.837 + id="text5453" 29.838 + y="984.15332" 29.839 + x="29.171814" 29.840 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.841 + xml:space="preserve" 29.842 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 29.843 + id="tspan5455" 29.844 + y="984.15332" 29.845 + x="29.171814" 29.846 + sodipodi:role="line" 29.847 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan><tspan 29.848 + y="992.15332" 29.849 + x="29.171814" 29.850 + sodipodi:role="line" 29.851 + style="font-size:8px;text-align:center;text-anchor:middle" 29.852 + id="tspan5457">and switch</tspan><tspan 29.853 + y="1000.1533" 29.854 + x="29.171814" 29.855 + sodipodi:role="line" 29.856 + style="font-size:8px;text-align:center;text-anchor:middle" 29.857 + id="tspan5459">to runtime</tspan></text> 29.858 + <path 29.859 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 29.860 + d="m 514.02904,654.31987 c 0,26.21842 0,26.21842 0,26.21842" 29.861 + id="path5461" 29.862 + inkscape:connector-curvature="0" 29.863 + sodipodi:nodetypes="cc" /> 29.864 + <path 29.865 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 29.866 + d="m 514.2471,680.02605 c 87.58783,0 87.58783,0 87.58783,0" 29.867 + id="path5463" 29.868 + inkscape:connector-curvature="0" /> 29.869 + <text 29.870 + sodipodi:linespacing="100%" 29.871 + id="text5465" 29.872 + y="516.71179" 29.873 + x="555.83459" 29.874 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.875 + xml:space="preserve" 29.876 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 29.877 + id="tspan5467" 29.878 + y="516.71179" 29.879 + x="555.83459" 29.880 + sodipodi:role="line" 29.881 + style="font-size:8px;text-align:center;text-anchor:middle">normal call</tspan></text> 29.882 + <text 29.883 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 29.884 + xml:space="preserve" 29.885 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.886 + x="556.57275" 29.887 + y="684.71155" 29.888 + id="text5469" 29.889 + sodipodi:linespacing="100%"><tspan 29.890 + style="font-size:8px;text-align:center;text-anchor:middle" 29.891 + sodipodi:role="line" 29.892 + x="556.57275" 29.893 + y="684.71155" 29.894 + id="tspan5471">normal call</tspan></text> 29.895 + <g 29.896 + transform="matrix(1,0,0,0.71130685,-16,166.52913)" 29.897 + id="g8395"> 29.898 + <rect 29.899 + y="313.58255" 29.900 + x="310.40247" 29.901 + height="52.250008" 29.902 + width="65.276405" 29.903 + id="rect8397" 29.904 + style="fill:none;stroke:#000000;stroke-width:1.28076112;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 29.905 + </g> 29.906 + <text 29.907 + xml:space="preserve" 29.908 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.909 + x="326.92542" 29.910 + y="897.76575" 29.911 + id="text8411" 29.912 + sodipodi:linespacing="100%"><tspan 29.913 + style="text-align:center;text-anchor:middle" 29.914 + sodipodi:role="line" 29.915 + id="tspan8413" 29.916 + x="326.92542" 29.917 + y="897.76575">Master</tspan><tspan 29.918 + style="font-size:8px;text-align:center;text-anchor:middle" 29.919 + id="tspan8415" 29.920 + sodipodi:role="line" 29.921 + x="326.92542" 29.922 + y="906.2005">(runtime system)</tspan><tspan 29.923 + id="tspan8417" 29.924 + style="font-size:8px;text-align:center;text-anchor:middle" 29.925 + sodipodi:role="line" 29.926 + x="326.92542" 29.927 + y="914.2005">on core 2</tspan></text> 29.928 + <g 29.929 + id="g8419" 29.930 + transform="translate(-16,574)"> 29.931 + <rect 29.932 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 29.933 + id="rect8421" 29.934 + width="65.276405" 29.935 + height="52.250008" 29.936 + x="310.40247" 29.937 + y="313.58255" /> 29.938 + </g> 29.939 + <text 29.940 + sodipodi:linespacing="100%" 29.941 + id="text8425" 29.942 + y="913.42468" 29.943 + x="131.19971" 29.944 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.945 + xml:space="preserve"><tspan 29.946 + id="tspan8427" 29.947 + y="913.42468" 29.948 + x="131.19971" 29.949 + sodipodi:role="line" 29.950 + style="text-align:center;text-anchor:middle;fill:#800000">Handler</tspan><tspan 29.951 + id="tspan8429" 29.952 + y="923.42468" 29.953 + x="131.19971" 29.954 + sodipodi:role="line" 29.955 + style="text-align:center;text-anchor:middle;fill:#800000">for Language</tspan><tspan 29.956 + id="tspan8431" 29.957 + y="933.42468" 29.958 + x="131.19971" 29.959 + sodipodi:role="line" 29.960 + style="text-align:center;text-anchor:middle;fill:#800000">Construct1</tspan></text> 29.961 + <text 29.962 + xml:space="preserve" 29.963 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.964 + x="131.19971" 29.965 + y="993.42468" 29.966 + id="text8433" 29.967 + sodipodi:linespacing="100%"><tspan 29.968 + style="text-align:center;text-anchor:middle;fill:#800000" 29.969 + sodipodi:role="line" 29.970 + x="131.19971" 29.971 + y="993.42468" 29.972 + id="tspan8435">Handler</tspan><tspan 29.973 + style="text-align:center;text-anchor:middle;fill:#800000" 29.974 + sodipodi:role="line" 29.975 + x="131.19971" 29.976 + y="1003.4247" 29.977 + id="tspan8437">for Language</tspan><tspan 29.978 + style="text-align:center;text-anchor:middle;fill:#800000" 29.979 + sodipodi:role="line" 29.980 + x="131.19971" 29.981 + y="1013.4247" 29.982 + id="tspan8439">Construct2</tspan></text> 29.983 + <text 29.984 + sodipodi:linespacing="100%" 29.985 + id="text8445" 29.986 + y="1039.4247" 29.987 + x="131.52441" 29.988 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.989 + xml:space="preserve"><tspan 29.990 + id="tspan8447" 29.991 + y="1039.4247" 29.992 + x="131.52441" 29.993 + sodipodi:role="line" 29.994 + style="text-align:center;text-anchor:middle;fill:#800000">Assigner Fn</tspan></text> 29.995 + <text 29.996 + xml:space="preserve" 29.997 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.998 + x="131.19971" 29.999 + y="955.42468" 29.1000 + id="text8457" 29.1001 + sodipodi:linespacing="100%"><tspan 29.1002 + style="text-align:center;text-anchor:middle;fill:#800000" 29.1003 + sodipodi:role="line" 29.1004 + x="131.19971" 29.1005 + y="955.42468" 29.1006 + id="tspan8459">Handler</tspan><tspan 29.1007 + style="text-align:center;text-anchor:middle;fill:#800000" 29.1008 + sodipodi:role="line" 29.1009 + x="131.19971" 29.1010 + y="965.42468" 29.1011 + id="tspan8461">for Language</tspan><tspan 29.1012 + style="text-align:center;text-anchor:middle;fill:#800000" 29.1013 + sodipodi:role="line" 29.1014 + x="131.19971" 29.1015 + y="975.42468" 29.1016 + id="tspan8463">Construct1</tspan></text> 29.1017 + <path 29.1018 + inkscape:connector-curvature="0" 29.1019 + id="path8493" 29.1020 + d="m 193.99816,900.02605 c -117.505852,0 -117.505852,0 -117.505852,0" 29.1021 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000003, 3.00000003;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 29.1022 + <text 29.1023 + transform="matrix(0.97994281,-0.19927893,0.19927893,0.97994281,0,0)" 29.1024 + xml:space="preserve" 29.1025 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.1026 + x="-41.280613" 29.1027 + y="905.36578" 29.1028 + id="text8495" 29.1029 + sodipodi:linespacing="100%"><tspan 29.1030 + style="font-size:8px;text-align:center;text-anchor:middle" 29.1031 + sodipodi:role="line" 29.1032 + x="-41.280613" 29.1033 + y="905.36578" 29.1034 + id="tspan8497">Top Level Fn</tspan></text> 29.1035 + <path 29.1036 + sodipodi:nodetypes="cc" 29.1037 + inkscape:connector-curvature="0" 29.1038 + id="path9273" 29.1039 + d="m 514.02904,486.31987 c 0,26.21842 0,26.21842 0,26.21842" 29.1040 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 29.1041 + <path 29.1042 + sodipodi:nodetypes="cc" 29.1043 + inkscape:connector-curvature="0" 29.1044 + id="path9275" 29.1045 + d="m 476.02904,406.79398 c 0,35.61575 0,35.61575 0,35.61575" 29.1046 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:none" /> 29.1047 + <path 29.1048 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 29.1049 + d="m 468.24715,442.02605 c 13.34137,0 13.34137,0 13.34137,0" 29.1050 + id="path9277" 29.1051 + inkscape:connector-curvature="0" /> 29.1052 + <path 29.1053 + inkscape:connector-curvature="0" 29.1054 + id="path9279" 29.1055 + d="m 481.57781,470.02605 c -13.14022,0 -13.14022,0 -13.14022,0" 29.1056 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 29.1057 + <path 29.1058 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" 29.1059 + d="m 476.02904,470.3113 c 0,57.40944 0,57.40944 0,57.40944" 29.1060 + id="path9281" 29.1061 + inkscape:connector-curvature="0" 29.1062 + sodipodi:nodetypes="cc" /> 29.1063 + <path 29.1064 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 29.1065 + d="m 481.57781,529.27417 c -13.14022,0 -13.14022,0 -13.14022,0" 29.1066 + id="path9283" 29.1067 + inkscape:connector-curvature="0" /> 29.1068 + <text 29.1069 + transform="matrix(-0.01875541,0.9998241,-0.9998241,-0.01875541,0,0)" 29.1070 + xml:space="preserve" 29.1071 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.1072 + x="445.89752" 29.1073 + y="-468.24112" 29.1074 + id="text9285" 29.1075 + sodipodi:linespacing="100%"><tspan 29.1076 + style="text-align:center;text-anchor:middle;fill:#008000" 29.1077 + sodipodi:role="line" 29.1078 + x="445.89752" 29.1079 + y="-468.24112" 29.1080 + id="tspan9287">Timeline of SeedVP</tspan></text> 29.1081 + <text 29.1082 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 29.1083 + xml:space="preserve" 29.1084 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.1085 + x="485.50256" 29.1086 + y="441.02084" 29.1087 + id="text9289" 29.1088 + sodipodi:linespacing="100%"><tspan 29.1089 + style="font-size:8px;text-align:start;text-anchor:start" 29.1090 + sodipodi:role="line" 29.1091 + x="485.50256" 29.1092 + y="441.02084" 29.1093 + id="tspan9291">suspend</tspan></text> 29.1094 + <text 29.1095 + sodipodi:linespacing="100%" 29.1096 + id="text9293" 29.1097 + y="471.02069" 29.1098 + x="485.6344" 29.1099 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.1100 + xml:space="preserve" 29.1101 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 29.1102 + id="tspan9295" 29.1103 + y="471.02069" 29.1104 + x="485.6344" 29.1105 + sodipodi:role="line" 29.1106 + style="font-size:8px;text-align:start;text-anchor:start">resume</tspan></text> 29.1107 + <text 29.1108 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 29.1109 + xml:space="preserve" 29.1110 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.1111 + x="485.8858" 29.1112 + y="528.22565" 29.1113 + id="text9297" 29.1114 + sodipodi:linespacing="100%"><tspan 29.1115 + style="font-size:8px;text-align:start;text-anchor:start" 29.1116 + sodipodi:role="line" 29.1117 + x="485.8858" 29.1118 + y="528.22565" 29.1119 + id="tspan9299">end</tspan></text> 29.1120 + <text 29.1121 + sodipodi:linespacing="100%" 29.1122 + id="text9301" 29.1123 + y="357.42465" 29.1124 + x="63.167969" 29.1125 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.1126 + xml:space="preserve"><tspan 29.1127 + id="tspan9303" 29.1128 + y="357.42465" 29.1129 + x="63.167969" 29.1130 + sodipodi:role="line" 29.1131 + style="text-align:center;text-anchor:middle;fill:#000080">Proto-Runtime</tspan><tspan 29.1132 + id="tspan9305" 29.1133 + y="367.42465" 29.1134 + x="63.167969" 29.1135 + sodipodi:role="line" 29.1136 + style="text-align:center;text-anchor:middle;fill:#000080">Primitive</tspan><tspan 29.1137 + y="377.42465" 29.1138 + x="63.167969" 29.1139 + sodipodi:role="line" 29.1140 + style="text-align:center;text-anchor:middle;fill:#000080" 29.1141 + id="tspan9307">Code</tspan></text> 29.1142 + <text 29.1143 + xml:space="preserve" 29.1144 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.1145 + x="65.380371" 29.1146 + y="445.42465" 29.1147 + id="text9309" 29.1148 + sodipodi:linespacing="100%"><tspan 29.1149 + id="tspan9313" 29.1150 + style="text-align:center;text-anchor:middle;fill:#000080" 29.1151 + sodipodi:role="line" 29.1152 + x="65.380371" 29.1153 + y="445.42465">PR primitive Fn</tspan><tspan 29.1154 + style="text-align:center;text-anchor:middle;fill:#000080" 29.1155 + sodipodi:role="line" 29.1156 + x="65.380371" 29.1157 + y="455.42465" 29.1158 + id="tspan9317">to create VP</tspan></text> 29.1159 + <path 29.1160 + inkscape:connector-curvature="0" 29.1161 + id="path9321" 29.1162 + d="m 101.87629,449.27701 c 71.06548,12.76616 75.82677,13.24993 150.67864,41.1502 79.15373,29.50373 134.12108,64.97026 134.12108,64.97026" 29.1163 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000009, 3.00000009;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 29.1164 + sodipodi:nodetypes="csc" /> 29.1165 + <g 29.1166 + id="g9341" 29.1167 + transform="translate(44.002789,168)"> 29.1168 + <rect 29.1169 + y="389.58255" 29.1170 + x="346.40247" 29.1171 + height="37.165791" 29.1172 + width="65.276405" 29.1173 + id="rect9343" 29.1174 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 29.1175 + <text 29.1176 + xml:space="preserve" 29.1177 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.1178 + x="379.35806" 29.1179 + y="400.72159" 29.1180 + id="text9345" 29.1181 + sodipodi:linespacing="100%"><tspan 29.1182 + style="text-align:center;text-anchor:middle" 29.1183 + sodipodi:role="line" 29.1184 + x="379.35806" 29.1185 + y="400.72159" 29.1186 + id="tspan9347">VP 1</tspan><tspan 29.1187 + style="font-size:8px;text-align:center;text-anchor:middle" 29.1188 + sodipodi:role="line" 29.1189 + x="379.35806" 29.1190 + y="409.15637" 29.1191 + id="tspan9349">(created by</tspan><tspan 29.1192 + style="font-size:8px;text-align:center;text-anchor:middle" 29.1193 + sodipodi:role="line" 29.1194 + x="379.35806" 29.1195 + y="417.15637" 29.1196 + id="tspan9355">application,</tspan><tspan 29.1197 + style="font-size:8px;text-align:center;text-anchor:middle" 29.1198 + sodipodi:role="line" 29.1199 + x="379.35806" 29.1200 + y="425.15637" 29.1201 + id="tspan9746">on core 2)</tspan></text> 29.1202 + </g> 29.1203 + <g 29.1204 + transform="translate(44.002789,330)" 29.1205 + id="g9371"> 29.1206 + <rect 29.1207 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 29.1208 + id="rect9373" 29.1209 + width="65.276405" 29.1210 + height="37.165791" 29.1211 + x="346.40247" 29.1212 + y="389.58255" /> 29.1213 + <text 29.1214 + sodipodi:linespacing="100%" 29.1215 + id="text9375" 29.1216 + y="400.72159" 29.1217 + x="379.35806" 29.1218 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.1219 + xml:space="preserve"><tspan 29.1220 + id="tspan9377" 29.1221 + y="400.72159" 29.1222 + x="379.35806" 29.1223 + sodipodi:role="line" 29.1224 + style="text-align:center;text-anchor:middle">VP 2</tspan><tspan 29.1225 + id="tspan9379" 29.1226 + y="409.15637" 29.1227 + x="379.35806" 29.1228 + sodipodi:role="line" 29.1229 + style="font-size:8px;text-align:center;text-anchor:middle">(created by</tspan><tspan 29.1230 + id="tspan9381" 29.1231 + y="417.15637" 29.1232 + x="379.35806" 29.1233 + sodipodi:role="line" 29.1234 + style="font-size:8px;text-align:center;text-anchor:middle">application,</tspan><tspan 29.1235 + y="425.15637" 29.1236 + x="379.35806" 29.1237 + sodipodi:role="line" 29.1238 + style="font-size:8px;text-align:center;text-anchor:middle" 29.1239 + id="tspan9748">on core 3)</tspan></text> 29.1240 + </g> 29.1241 + <text 29.1242 + xml:space="preserve" 29.1243 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.1244 + x="202.41257" 29.1245 + y="403.42465" 29.1246 + id="text9512" 29.1247 + sodipodi:linespacing="100%"><tspan 29.1248 + style="text-align:center;text-anchor:middle;fill:#000080" 29.1249 + sodipodi:role="line" 29.1250 + x="202.41257" 29.1251 + y="403.42465" 29.1252 + id="tspan9514">Master Fn</tspan></text> 29.1253 + <path 29.1254 + sodipodi:nodetypes="cc" 29.1255 + inkscape:connector-curvature="0" 29.1256 + id="path9522" 29.1257 + d="m 205.27805,442.31985 c 0,7.35629 0,7.35629 0,7.35629" 29.1258 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 29.1259 + <path 29.1260 + inkscape:connector-curvature="0" 29.1261 + id="path9524" 29.1262 + d="m 205.05995,448.02605 c -67.19099,0 -67.19099,0 -67.19099,0" 29.1263 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 29.1264 + <path 29.1265 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 29.1266 + d="m 116.53543,810.02605 c 88.41298,0 88.41298,0 88.41298,0" 29.1267 + id="path9526" 29.1268 + inkscape:connector-curvature="0" /> 29.1269 + <path 29.1270 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 29.1271 + d="m 205.27805,810.31987 c 0,26.21842 0,26.21842 0,26.21842" 29.1272 + id="path9528" 29.1273 + inkscape:connector-curvature="0" 29.1274 + sodipodi:nodetypes="cc" /> 29.1275 + <path 29.1276 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 29.1277 + d="m 205.05999,836.02605 c -87.58783,0 -87.58783,0 -87.58783,0" 29.1278 + id="path9530" 29.1279 + inkscape:connector-curvature="0" /> 29.1280 + <text 29.1281 + xml:space="preserve" 29.1282 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.1283 + x="115.1133" 29.1284 + y="822.71179" 29.1285 + id="text9532" 29.1286 + sodipodi:linespacing="100%"><tspan 29.1287 + style="text-align:center;text-anchor:middle;fill:#800000" 29.1288 + sodipodi:role="line" 29.1289 + x="115.1133" 29.1290 + y="822.71179" 29.1291 + id="tspan9534">end VP</tspan><tspan 29.1292 + id="tspan9536" 29.1293 + style="text-align:center;text-anchor:middle;fill:#800000" 29.1294 + sodipodi:role="line" 29.1295 + x="115.1133" 29.1296 + y="832.71179">wrapper Fn</tspan></text> 29.1297 + <path 29.1298 + inkscape:connector-curvature="0" 29.1299 + id="path9538" 29.1300 + d="m 117.04125,842.02605 c -63.99676,0 -63.99676,0 -63.99676,0" 29.1301 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 29.1302 + <text 29.1303 + sodipodi:linespacing="100%" 29.1304 + id="text9540" 29.1305 + y="828.71179" 29.1306 + x="49.880333" 29.1307 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.1308 + xml:space="preserve"><tspan 29.1309 + id="tspan9542" 29.1310 + y="828.71179" 29.1311 + x="49.880333" 29.1312 + sodipodi:role="line" 29.1313 + style="text-align:center;text-anchor:middle;fill:#000080">send request</tspan><tspan 29.1314 + id="tspan9544" 29.1315 + y="838.71179" 29.1316 + x="49.880333" 29.1317 + sodipodi:role="line" 29.1318 + style="text-align:center;text-anchor:middle;fill:#000080">primitive Fn</tspan></text> 29.1319 + <path 29.1320 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 29.1321 + d="m 117.27805,834.31985 c 0,7.35629 0,7.35629 0,7.35629" 29.1322 + id="path9546" 29.1323 + inkscape:connector-curvature="0" 29.1324 + sodipodi:nodetypes="cc" /> 29.1325 + <path 29.1326 + sodipodi:nodetypes="cc" 29.1327 + inkscape:connector-curvature="0" 29.1328 + id="path9548" 29.1329 + d="m 137.27805,447.85824 c 0,11.43122 0,11.43122 0,11.43122" 29.1330 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 29.1331 + <path 29.1332 + inkscape:connector-curvature="0" 29.1333 + id="path9550" 29.1334 + d="m 137.57123,460.02605 c -69.22157,0 -69.22157,0 -69.22157,0" 29.1335 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 29.1336 + <path 29.1337 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 29.1338 + d="m 52.45074,806.02605 c 65.78483,0 65.78483,0 65.78483,0" 29.1339 + id="path9552" 29.1340 + inkscape:connector-curvature="0" /> 29.1341 + <path 29.1342 + sodipodi:nodetypes="cc" 29.1343 + inkscape:connector-curvature="0" 29.1344 + id="path9554" 29.1345 + d="m 205.27805,474.63925 c 0,13.68455 0,13.68455 0,13.68455" 29.1346 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 29.1347 + <path 29.1348 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 29.1349 + d="m 117.27805,805.22687 c 0,5.5885 0,5.5885 0,5.5885" 29.1350 + id="path9556" 29.1351 + inkscape:connector-curvature="0" 29.1352 + sodipodi:nodetypes="cc" /> 29.1353 + <path 29.1354 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 29.1355 + d="m 51.27805,792.63925 c 0,13.68455 0,13.68455 0,13.68455" 29.1356 + id="path9562" 29.1357 + inkscape:connector-curvature="0" 29.1358 + sodipodi:nodetypes="cc" /> 29.1359 + <path 29.1360 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 29.1361 + d="m 205.05994,486.02605 c -57.74832,0 -57.74832,0 -57.74832,0" 29.1362 + id="path9564" 29.1363 + inkscape:connector-curvature="0" /> 29.1364 + <text 29.1365 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 29.1366 + xml:space="preserve" 29.1367 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.1368 + x="-217.71529" 29.1369 + y="472.34747" 29.1370 + id="text9566" 29.1371 + sodipodi:linespacing="100%"><tspan 29.1372 + style="font-size:8px;text-align:center;text-anchor:middle" 29.1373 + sodipodi:role="line" 29.1374 + x="-217.71529" 29.1375 + y="472.34747" 29.1376 + id="tspan9568">suspend</tspan><tspan 29.1377 + id="tspan9570" 29.1378 + style="font-size:8px;text-align:center;text-anchor:middle" 29.1379 + sodipodi:role="line" 29.1380 + x="-217.71529" 29.1381 + y="480.34747">and switch</tspan><tspan 29.1382 + id="tspan9572" 29.1383 + style="font-size:8px;text-align:center;text-anchor:middle" 29.1384 + sodipodi:role="line" 29.1385 + x="-217.71529" 29.1386 + y="488.34747">to app VP</tspan></text> 29.1387 + <path 29.1388 + inkscape:connector-curvature="0" 29.1389 + id="path9574" 29.1390 + d="m -6.642,794.02605 c 56.8776,0 56.8776,0 56.8776,0" 29.1391 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 29.1392 + <text 29.1393 + sodipodi:linespacing="100%" 29.1394 + id="text9576" 29.1395 + y="576.25653" 29.1396 + x="-550.32233" 29.1397 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.1398 + xml:space="preserve" 29.1399 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 29.1400 + y="576.25653" 29.1401 + x="-550.32233" 29.1402 + sodipodi:role="line" 29.1403 + style="font-size:8px;text-align:center;text-anchor:middle" 29.1404 + id="tspan9578">return</tspan><tspan 29.1405 + id="tspan9580" 29.1406 + y="584.25653" 29.1407 + x="-550.32233" 29.1408 + sodipodi:role="line" 29.1409 + style="font-size:8px;text-align:center;text-anchor:middle">from</tspan><tspan 29.1410 + id="tspan9582" 29.1411 + y="592.25653" 29.1412 + x="-550.32233" 29.1413 + sodipodi:role="line" 29.1414 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan></text> 29.1415 + <path 29.1416 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 29.1417 + d="m 51.27805,841.28283 c 0,13.68455 0,13.68455 0,13.68455" 29.1418 + id="path9594" 29.1419 + inkscape:connector-curvature="0" 29.1420 + sodipodi:nodetypes="cc" /> 29.1421 + <path 29.1422 + inkscape:connector-curvature="0" 29.1423 + id="path9596" 29.1424 + d="m 51.05994,852.66963 c -57.74832,0 -57.74832,0 -57.74832,0" 29.1425 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 29.1426 + <text 29.1427 + sodipodi:linespacing="100%" 29.1428 + id="text9598" 29.1429 + y="607.01007" 29.1430 + x="-584.68982" 29.1431 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.1432 + xml:space="preserve" 29.1433 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 29.1434 + id="tspan9600" 29.1435 + y="607.01007" 29.1436 + x="-584.68982" 29.1437 + sodipodi:role="line" 29.1438 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan><tspan 29.1439 + y="615.01007" 29.1440 + x="-584.68982" 29.1441 + sodipodi:role="line" 29.1442 + style="font-size:8px;text-align:center;text-anchor:middle" 29.1443 + id="tspan9602">and switch</tspan><tspan 29.1444 + y="623.01007" 29.1445 + x="-584.68982" 29.1446 + sodipodi:role="line" 29.1447 + style="font-size:8px;text-align:center;text-anchor:middle" 29.1448 + id="tspan9604">to runtime</tspan></text> 29.1449 + <text 29.1450 + transform="matrix(-0.99999036,0.00439064,0.00439064,0.99999036,0,0)" 29.1451 + xml:space="preserve" 29.1452 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.1453 + x="-162.04274" 29.1454 + y="843.867" 29.1455 + id="text9606" 29.1456 + sodipodi:linespacing="100%"><tspan 29.1457 + style="font-size:8px;text-align:center;text-anchor:middle" 29.1458 + sodipodi:role="line" 29.1459 + x="-162.04274" 29.1460 + y="843.867" 29.1461 + id="tspan9608">normal call</tspan></text> 29.1462 + <text 29.1463 + transform="matrix(-0.99999036,0.00439064,0.00439064,0.99999036,0,0)" 29.1464 + xml:space="preserve" 29.1465 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.1466 + x="-92.01651" 29.1467 + y="849.56036" 29.1468 + id="text9610" 29.1469 + sodipodi:linespacing="100%"><tspan 29.1470 + style="font-size:8px;text-align:center;text-anchor:middle" 29.1471 + sodipodi:role="line" 29.1472 + x="-92.01651" 29.1473 + y="849.56036" 29.1474 + id="tspan9612">normal call</tspan></text> 29.1475 + <path 29.1476 + sodipodi:nodetypes="cc" 29.1477 + inkscape:connector-curvature="0" 29.1478 + id="path9614" 29.1479 + d="m 205.27805,442.31985 c 0,7.35629 0,7.35629 0,7.35629" 29.1480 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 29.1481 + <path 29.1482 + sodipodi:nodetypes="cc" 29.1483 + inkscape:connector-curvature="0" 29.1484 + id="path9616" 29.1485 + d="m 205.27805,442.31985 c 0,7.35629 0,7.35629 0,7.35629" 29.1486 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 29.1487 + <path 29.1488 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 29.1489 + d="m 205.27805,810.31987 c 0,26.21842 0,26.21842 0,26.21842" 29.1490 + id="path9618" 29.1491 + inkscape:connector-curvature="0" 29.1492 + sodipodi:nodetypes="cc" /> 29.1493 + <path 29.1494 + inkscape:connector-curvature="0" 29.1495 + id="path9648" 29.1496 + d="m 468.24715,407.42364 c 13.34137,0 13.34137,0 13.34137,0" 29.1497 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 29.1498 + <text 29.1499 + sodipodi:linespacing="100%" 29.1500 + id="text9654" 29.1501 + y="409.02243" 29.1502 + x="485.36194" 29.1503 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.1504 + xml:space="preserve" 29.1505 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 29.1506 + id="tspan9656" 29.1507 + y="409.02243" 29.1508 + x="485.36194" 29.1509 + sodipodi:role="line" 29.1510 + style="font-size:8px;text-align:start;text-anchor:start">start</tspan></text> 29.1511 + <path 29.1512 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:none" 29.1513 + d="m 476.02904,574.79398 c 0,35.61575 0,35.61575 0,35.61575" 29.1514 + id="path9658" 29.1515 + inkscape:connector-curvature="0" 29.1516 + sodipodi:nodetypes="cc" /> 29.1517 + <path 29.1518 + inkscape:connector-curvature="0" 29.1519 + id="path9660" 29.1520 + d="m 468.24715,610.02605 c 13.34137,0 13.34137,0 13.34137,0" 29.1521 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 29.1522 + <path 29.1523 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 29.1524 + d="m 481.57781,638.02605 c -13.14022,0 -13.14022,0 -13.14022,0" 29.1525 + id="path9662" 29.1526 + inkscape:connector-curvature="0" /> 29.1527 + <text 29.1528 + sodipodi:linespacing="100%" 29.1529 + id="text9668" 29.1530 + y="-471.39224" 29.1531 + x="613.86792" 29.1532 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.1533 + xml:space="preserve" 29.1534 + transform="matrix(-0.01875541,0.9998241,-0.9998241,-0.01875541,0,0)"><tspan 29.1535 + y="-471.39224" 29.1536 + x="613.86792" 29.1537 + sodipodi:role="line" 29.1538 + style="text-align:center;text-anchor:middle;fill:#008000" 29.1539 + id="tspan9740">Timeline of VP 1</tspan></text> 29.1540 + <text 29.1541 + sodipodi:linespacing="100%" 29.1542 + id="text9672" 29.1543 + y="609.01917" 29.1544 + x="486.23993" 29.1545 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.1546 + xml:space="preserve" 29.1547 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 29.1548 + id="tspan9674" 29.1549 + y="609.01917" 29.1550 + x="486.23993" 29.1551 + sodipodi:role="line" 29.1552 + style="font-size:8px;text-align:start;text-anchor:start">suspend</tspan></text> 29.1553 + <text 29.1554 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 29.1555 + xml:space="preserve" 29.1556 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.1557 + x="486.37177" 29.1558 + y="639.0191" 29.1559 + id="text9676" 29.1560 + sodipodi:linespacing="100%"><tspan 29.1561 + style="font-size:8px;text-align:start;text-anchor:start" 29.1562 + sodipodi:role="line" 29.1563 + x="486.37177" 29.1564 + y="639.0191" 29.1565 + id="tspan9678">resume</tspan></text> 29.1566 + <path 29.1567 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 29.1568 + d="m 468.24715,575.42364 c 13.34137,0 13.34137,0 13.34137,0" 29.1569 + id="path9684" 29.1570 + inkscape:connector-curvature="0" /> 29.1571 + <text 29.1572 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 29.1573 + xml:space="preserve" 29.1574 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.1575 + x="486.0993" 29.1576 + y="577.02075" 29.1577 + id="text9686" 29.1578 + sodipodi:linespacing="100%"><tspan 29.1579 + style="font-size:8px;text-align:start;text-anchor:start" 29.1580 + sodipodi:role="line" 29.1581 + x="486.0993" 29.1582 + y="577.02075" 29.1583 + id="tspan9688">start</tspan></text> 29.1584 + <path 29.1585 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:none" 29.1586 + d="m 266.02904,441.43112 c 0,28.2402 0,28.2402 0,28.2402" 29.1587 + id="path9690" 29.1588 + inkscape:connector-curvature="0" 29.1589 + sodipodi:nodetypes="cc" /> 29.1590 + <path 29.1591 + inkscape:connector-curvature="0" 29.1592 + id="path9692" 29.1593 + d="m 258.24715,442.02605 c 13.34137,0 13.34137,0 13.34137,0" 29.1594 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 29.1595 + <path 29.1596 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 29.1597 + d="m 271.57781,470.02605 c -13.14022,0 -13.14022,0 -13.14022,0" 29.1598 + id="path9694" 29.1599 + inkscape:connector-curvature="0" /> 29.1600 + <text 29.1601 + sodipodi:linespacing="100%" 29.1602 + id="text9700" 29.1603 + y="-286.46057" 29.1604 + x="459.30908" 29.1605 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.1606 + xml:space="preserve" 29.1607 + transform="matrix(-0.01875541,0.9998241,-0.9998241,-0.01875541,0,0)"><tspan 29.1608 + y="-286.46057" 29.1609 + x="459.30908" 29.1610 + sodipodi:role="line" 29.1611 + style="text-align:center;text-anchor:middle;fill:#008000" 29.1612 + id="tspan9736">Timeline of Master on core 1</tspan></text> 29.1613 + <text 29.1614 + sodipodi:linespacing="100%" 29.1615 + id="text9704" 29.1616 + y="470.12714" 29.1617 + x="261.32681" 29.1618 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.1619 + xml:space="preserve" 29.1620 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 29.1621 + id="tspan9706" 29.1622 + y="470.12714" 29.1623 + x="261.32681" 29.1624 + sodipodi:role="line" 29.1625 + style="font-size:8px;text-align:end;text-anchor:end">suspend</tspan></text> 29.1626 + <text 29.1627 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 29.1628 + xml:space="preserve" 29.1629 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.1630 + x="258.75574" 29.1631 + y="444.1272" 29.1632 + id="text9708" 29.1633 + sodipodi:linespacing="100%"><tspan 29.1634 + style="font-size:8px;text-align:end;text-anchor:end" 29.1635 + sodipodi:role="line" 29.1636 + x="258.75574" 29.1637 + y="444.1272" 29.1638 + id="tspan9710">resume</tspan></text> 29.1639 + <path 29.1640 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 29.1641 + d="m 258.24715,407.42364 c 13.34137,0 13.34137,0 13.34137,0" 29.1642 + id="path9716" 29.1643 + inkscape:connector-curvature="0" /> 29.1644 + <text 29.1645 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 29.1646 + xml:space="preserve" 29.1647 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.1648 + x="257.81323" 29.1649 + y="410.09369" 29.1650 + id="text9718" 29.1651 + sodipodi:linespacing="100%"><tspan 29.1652 + style="font-size:8px;text-align:end;text-anchor:end" 29.1653 + sodipodi:role="line" 29.1654 + x="257.81323" 29.1655 + y="410.09369" 29.1656 + id="tspan9720">start</tspan></text> 29.1657 + <path 29.1658 + sodipodi:nodetypes="cc" 29.1659 + inkscape:connector-curvature="0" 29.1660 + id="path9722" 29.1661 + d="m 266.02904,529.43112 c 0,10.33165 0,10.33165 0,10.33165" 29.1662 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" /> 29.1663 + <path 29.1664 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 29.1665 + d="m 258.24715,530.02605 c 13.34137,0 13.34137,0 13.34137,0" 29.1666 + id="path9724" 29.1667 + inkscape:connector-curvature="0" /> 29.1668 + <text 29.1669 + sodipodi:linespacing="100%" 29.1670 + id="text9932" 29.1671 + y="452.53967" 29.1672 + x="180.9785" 29.1673 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.1674 + xml:space="preserve" 29.1675 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)"><tspan 29.1676 + id="tspan9934" 29.1677 + y="452.53967" 29.1678 + x="180.9785" 29.1679 + sodipodi:role="line" 29.1680 + style="font-size:8px;text-align:center;text-anchor:middle">Call via Ptr</tspan></text> 29.1681 + <text 29.1682 + sodipodi:linespacing="100%" 29.1683 + id="text9936" 29.1684 + y="596.94305" 29.1685 + x="641.43158" 29.1686 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.1687 + xml:space="preserve" 29.1688 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)"><tspan 29.1689 + id="tspan9938" 29.1690 + y="596.94305" 29.1691 + x="641.43158" 29.1692 + sodipodi:role="line" 29.1693 + style="font-size:8px;text-align:center;text-anchor:middle">Call to dyn lib</tspan></text> 29.1694 + <text 29.1695 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)" 29.1696 + xml:space="preserve" 29.1697 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.1698 + x="642.85406" 29.1699 + y="682.93286" 29.1700 + id="text9940" 29.1701 + sodipodi:linespacing="100%"><tspan 29.1702 + style="font-size:8px;text-align:center;text-anchor:middle" 29.1703 + sodipodi:role="line" 29.1704 + x="642.85406" 29.1705 + y="682.93286" 29.1706 + id="tspan9942">Call to dyn lib</tspan></text> 29.1707 + <text 29.1708 + sodipodi:linespacing="100%" 29.1709 + id="text9944" 29.1710 + y="514.95538" 29.1711 + x="640.07465" 29.1712 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.1713 + xml:space="preserve" 29.1714 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)"><tspan 29.1715 + id="tspan9946" 29.1716 + y="514.95538" 29.1717 + x="640.07465" 29.1718 + sodipodi:role="line" 29.1719 + style="font-size:8px;text-align:center;text-anchor:middle">Call to dyn lib</tspan></text> 29.1720 + <text 29.1721 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)" 29.1722 + xml:space="preserve" 29.1723 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.1724 + x="113.18735" 29.1725 + y="465.66476" 29.1726 + id="text9948" 29.1727 + sodipodi:linespacing="100%"><tspan 29.1728 + style="font-size:8px;text-align:center;text-anchor:middle" 29.1729 + sodipodi:role="line" 29.1730 + x="113.18735" 29.1731 + y="465.66476" 29.1732 + id="tspan9950">Call to dyn lib</tspan></text> 29.1733 + <path 29.1734 + inkscape:connector-curvature="0" 29.1735 + id="path9952" 29.1736 + d="m 733.1031,470.02605 c -727.990461,0 -727.990461,0 -727.990461,0" 29.1737 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" /> 29.1738 + <path 29.1739 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" 29.1740 + d="m 733.1031,441.52981 c -727.990461,0 -727.990461,0 -727.990461,0" 29.1741 + id="path9954" 29.1742 + inkscape:connector-curvature="0" /> 29.1743 + <text 29.1744 + xml:space="preserve" 29.1745 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.1746 + x="326.92542" 29.1747 + y="567.76575" 29.1748 + id="text9956" 29.1749 + sodipodi:linespacing="100%"><tspan 29.1750 + style="text-align:center;text-anchor:middle" 29.1751 + sodipodi:role="line" 29.1752 + id="tspan9958" 29.1753 + x="326.92542" 29.1754 + y="567.76575">Master</tspan><tspan 29.1755 + style="font-size:8px;text-align:center;text-anchor:middle" 29.1756 + id="tspan9960" 29.1757 + sodipodi:role="line" 29.1758 + x="326.92542" 29.1759 + y="576.2005">(runtime system)</tspan><tspan 29.1760 + id="tspan9962" 29.1761 + style="font-size:8px;text-align:center;text-anchor:middle" 29.1762 + sodipodi:role="line" 29.1763 + x="326.92542" 29.1764 + y="584.2005">on core 2</tspan></text> 29.1765 + <text 29.1766 + sodipodi:linespacing="100%" 29.1767 + id="text9964" 29.1768 + y="601.42468" 29.1769 + x="137.19971" 29.1770 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.1771 + xml:space="preserve"><tspan 29.1772 + id="tspan9966" 29.1773 + y="601.42468" 29.1774 + x="137.19971" 29.1775 + sodipodi:role="line" 29.1776 + style="text-align:center;text-anchor:middle;fill:#800000">Lang Handler</tspan><tspan 29.1777 + id="tspan9968" 29.1778 + y="611.42468" 29.1779 + x="138.70361" 29.1780 + sodipodi:role="line" 29.1781 + style="text-align:center;text-anchor:middle;fill:#800000">for Acq Mutex </tspan></text> 29.1782 + <path 29.1783 + inkscape:connector-curvature="0" 29.1784 + id="path9970" 29.1785 + d="m 291.99816,568.02605 c -63.44071,0 -63.44071,0 -63.44071,0" 29.1786 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000003, 3.00000003;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 29.1787 + <g 29.1788 + id="g9972" 29.1789 + transform="matrix(1,0,0,0.71130685,-16,334.52913)"> 29.1790 + <rect 29.1791 + style="fill:none;stroke:#000000;stroke-width:1.28076112;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 29.1792 + id="rect9974" 29.1793 + width="65.276405" 29.1794 + height="52.250008" 29.1795 + x="310.40247" 29.1796 + y="313.58255" /> 29.1797 + </g> 29.1798 + <text 29.1799 + sodipodi:linespacing="100%" 29.1800 + id="text9976" 29.1801 + y="613.42468" 29.1802 + x="65.380371" 29.1803 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.1804 + xml:space="preserve"><tspan 29.1805 + y="613.42468" 29.1806 + x="65.380371" 29.1807 + sodipodi:role="line" 29.1808 + style="text-align:center;text-anchor:middle;fill:#000080" 29.1809 + id="tspan9978">PR primitive Fn</tspan><tspan 29.1810 + id="tspan9980" 29.1811 + y="623.42468" 29.1812 + x="65.380371" 29.1813 + sodipodi:role="line" 29.1814 + style="text-align:center;text-anchor:middle;fill:#000080">to create VP</tspan></text> 29.1815 + <text 29.1816 + sodipodi:linespacing="100%" 29.1817 + id="text9982" 29.1818 + y="571.42468" 29.1819 + x="202.41257" 29.1820 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.1821 + xml:space="preserve"><tspan 29.1822 + id="tspan9984" 29.1823 + y="571.42468" 29.1824 + x="202.41257" 29.1825 + sodipodi:role="line" 29.1826 + style="text-align:center;text-anchor:middle;fill:#000080">Master Fn</tspan></text> 29.1827 + <path 29.1828 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 29.1829 + d="m 205.27805,610.31985 c 0,7.35629 0,7.35629 0,7.35629" 29.1830 + id="path9986" 29.1831 + inkscape:connector-curvature="0" 29.1832 + sodipodi:nodetypes="cc" /> 29.1833 + <path 29.1834 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 29.1835 + d="m 205.05995,616.02605 c -67.19099,0 -67.19099,0 -67.19099,0" 29.1836 + id="path9988" 29.1837 + inkscape:connector-curvature="0" /> 29.1838 + <path 29.1839 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 29.1840 + d="m 137.27805,615.85824 c 0,11.43122 0,11.43122 0,11.43122" 29.1841 + id="path9990" 29.1842 + inkscape:connector-curvature="0" 29.1843 + sodipodi:nodetypes="cc" /> 29.1844 + <path 29.1845 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 29.1846 + d="m 137.57123,628.02605 c -69.22157,0 -69.22157,0 -69.22157,0" 29.1847 + id="path9992" 29.1848 + inkscape:connector-curvature="0" /> 29.1849 + <path 29.1850 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 29.1851 + d="m 67.27805,626.63925 c 0,13.68455 0,13.68455 0,13.68455" 29.1852 + id="path9994" 29.1853 + inkscape:connector-curvature="0" 29.1854 + sodipodi:nodetypes="cc" /> 29.1855 + <path 29.1856 + inkscape:connector-curvature="0" 29.1857 + id="path9996" 29.1858 + d="m 67.05994,638.02605 c -57.74832,0 -57.74832,0 -57.74832,0" 29.1859 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 29.1860 + <text 29.1861 + sodipodi:linespacing="100%" 29.1862 + id="text9998" 29.1863 + y="485.57098" 29.1864 + x="-422.58896" 29.1865 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.1866 + xml:space="preserve" 29.1867 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 29.1868 + id="tspan10000" 29.1869 + y="485.57098" 29.1870 + x="-422.58896" 29.1871 + sodipodi:role="line" 29.1872 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan><tspan 29.1873 + y="493.57098" 29.1874 + x="-422.58896" 29.1875 + sodipodi:role="line" 29.1876 + style="font-size:8px;text-align:center;text-anchor:middle" 29.1877 + id="tspan10002">and switch</tspan><tspan 29.1878 + y="501.57098" 29.1879 + x="-422.58896" 29.1880 + sodipodi:role="line" 29.1881 + style="font-size:8px;text-align:center;text-anchor:middle" 29.1882 + id="tspan10004">to app VP</tspan></text> 29.1883 + <path 29.1884 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 29.1885 + d="m 205.27805,610.31985 c 0,7.35629 0,7.35629 0,7.35629" 29.1886 + id="path10006" 29.1887 + inkscape:connector-curvature="0" 29.1888 + sodipodi:nodetypes="cc" /> 29.1889 + <path 29.1890 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 29.1891 + d="m 205.27805,610.31985 c 0,7.35629 0,7.35629 0,7.35629" 29.1892 + id="path10008" 29.1893 + inkscape:connector-curvature="0" 29.1894 + sodipodi:nodetypes="cc" /> 29.1895 + <path 29.1896 + sodipodi:nodetypes="cc" 29.1897 + inkscape:connector-curvature="0" 29.1898 + id="path10010" 29.1899 + d="m 266.02904,609.43114 c 0,28.51925 0,28.51925 0,28.51925" 29.1900 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:none" /> 29.1901 + <path 29.1902 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 29.1903 + d="m 258.24715,610.02605 c 13.34137,0 13.34137,0 13.34137,0" 29.1904 + id="path10012" 29.1905 + inkscape:connector-curvature="0" /> 29.1906 + <path 29.1907 + inkscape:connector-curvature="0" 29.1908 + id="path10014" 29.1909 + d="m 271.57781,638.02605 c -13.14022,0 -13.14022,0 -13.14022,0" 29.1910 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 29.1911 + <text 29.1912 + transform="matrix(-0.01875541,0.9998241,-0.9998241,-0.01875541,0,0)" 29.1913 + xml:space="preserve" 29.1914 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.1915 + x="627.31714" 29.1916 + y="-287.61206" 29.1917 + id="text10018" 29.1918 + sodipodi:linespacing="100%"><tspan 29.1919 + id="tspan10020" 29.1920 + style="text-align:center;text-anchor:middle;fill:#008000" 29.1921 + sodipodi:role="line" 29.1922 + x="627.31714" 29.1923 + y="-287.61206">Timeline of Master on core 2</tspan></text> 29.1924 + <path 29.1925 + inkscape:connector-curvature="0" 29.1926 + id="path10030" 29.1927 + d="m 258.24715,575.42364 c 13.34137,0 13.34137,0 13.34137,0" 29.1928 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 29.1929 + <text 29.1930 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)" 29.1931 + xml:space="preserve" 29.1932 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.1933 + x="183.75761" 29.1934 + y="620.51709" 29.1935 + id="text10044" 29.1936 + sodipodi:linespacing="100%"><tspan 29.1937 + style="font-size:8px;text-align:center;text-anchor:middle" 29.1938 + sodipodi:role="line" 29.1939 + x="183.75761" 29.1940 + y="620.51709" 29.1941 + id="tspan10046">Call via Ptr</tspan></text> 29.1942 + <text 29.1943 + sodipodi:linespacing="100%" 29.1944 + id="text10048" 29.1945 + y="633.64221" 29.1946 + x="115.96657" 29.1947 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.1948 + xml:space="preserve" 29.1949 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)"><tspan 29.1950 + id="tspan10050" 29.1951 + y="633.64221" 29.1952 + x="115.96657" 29.1953 + sodipodi:role="line" 29.1954 + style="font-size:8px;text-align:center;text-anchor:middle">Call to dyn lib</tspan></text> 29.1955 + <path 29.1956 + sodipodi:nodetypes="cc" 29.1957 + inkscape:connector-curvature="0" 29.1958 + id="path10052" 29.1959 + d="m 205.27805,573.45805 c 0,34.21814 0,34.21814 0,34.21814" 29.1960 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3, 3;stroke-dashoffset:0" /> 29.1961 + <path 29.1962 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3, 3;stroke-dashoffset:0" 29.1963 + d="m 205.27805,405.45805 c 0,34.21814 0,34.21814 0,34.21814" 29.1964 + id="path10054" 29.1965 + inkscape:connector-curvature="0" 29.1966 + sodipodi:nodetypes="cc" /> 29.1967 + <path 29.1968 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" 29.1969 + d="m 733.1031,638.02605 c -727.990461,0 -727.990461,0 -727.990461,0" 29.1970 + id="path10056" 29.1971 + inkscape:connector-curvature="0" /> 29.1972 + <path 29.1973 + inkscape:connector-curvature="0" 29.1974 + id="path10058" 29.1975 + d="m 733.1031,609.52981 c -727.990461,0 -727.990461,0 -727.990461,0" 29.1976 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" /> 29.1977 + <path 29.1978 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 29.1979 + d="m 170.94559,442.02605 c 34.44005,0 34.44005,0 34.44005,0" 29.1980 + id="path10060" 29.1981 + inkscape:connector-curvature="0" /> 29.1982 + <text 29.1983 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 29.1984 + xml:space="preserve" 29.1985 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.1986 + x="-165.37918" 29.1987 + y="439.50415" 29.1988 + id="text10062" 29.1989 + sodipodi:linespacing="100%"><tspan 29.1990 + id="tspan10068" 29.1991 + style="font-size:8px;text-align:center;text-anchor:middle" 29.1992 + sodipodi:role="line" 29.1993 + x="-165.37918" 29.1994 + y="439.50415">return from</tspan><tspan 29.1995 + style="font-size:8px;text-align:center;text-anchor:middle" 29.1996 + sodipodi:role="line" 29.1997 + x="-165.37918" 29.1998 + y="447.50415" 29.1999 + id="tspan10074">suspend</tspan></text> 29.2000 + <path 29.2001 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" 29.2002 + d="m 733.1031,530.02605 c -727.990461,0 -727.990461,0 -727.990461,0" 29.2003 + id="path10076" 29.2004 + inkscape:connector-curvature="0" /> 29.2005 + <text 29.2006 + xml:space="preserve" 29.2007 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.2008 + x="667.38037" 29.2009 + y="505.42465" 29.2010 + id="text10082" 29.2011 + sodipodi:linespacing="100%"><tspan 29.2012 + style="text-align:center;text-anchor:middle;fill:#000080" 29.2013 + sodipodi:role="line" 29.2014 + x="667.38037" 29.2015 + y="505.42465" 29.2016 + id="tspan10084">PR primitive Fn</tspan><tspan 29.2017 + id="tspan10086" 29.2018 + style="text-align:center;text-anchor:middle;fill:#000080" 29.2019 + sodipodi:role="line" 29.2020 + x="667.38037" 29.2021 + y="515.42468">to send request</tspan></text> 29.2022 + <text 29.2023 + sodipodi:linespacing="100%" 29.2024 + id="text10088" 29.2025 + y="587.42468" 29.2026 + x="667.38037" 29.2027 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.2028 + xml:space="preserve"><tspan 29.2029 + id="tspan10090" 29.2030 + y="587.42468" 29.2031 + x="667.38037" 29.2032 + sodipodi:role="line" 29.2033 + style="text-align:center;text-anchor:middle;fill:#000080">PR primitive Fn</tspan><tspan 29.2034 + y="597.42468" 29.2035 + x="667.38037" 29.2036 + sodipodi:role="line" 29.2037 + style="text-align:center;text-anchor:middle;fill:#000080" 29.2038 + id="tspan10092">to send request</tspan></text> 29.2039 + <text 29.2040 + xml:space="preserve" 29.2041 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.2042 + x="667.38037" 29.2043 + y="673.42468" 29.2044 + id="text10094" 29.2045 + sodipodi:linespacing="100%"><tspan 29.2046 + style="text-align:center;text-anchor:middle;fill:#000080" 29.2047 + sodipodi:role="line" 29.2048 + x="667.38037" 29.2049 + y="673.42468" 29.2050 + id="tspan10096">PR primitive Fn</tspan><tspan 29.2051 + id="tspan10098" 29.2052 + style="text-align:center;text-anchor:middle;fill:#000080" 29.2053 + sodipodi:role="line" 29.2054 + x="667.38037" 29.2055 + y="683.42468">to send request</tspan></text> 29.2056 + <path 29.2057 + sodipodi:nodetypes="cc" 29.2058 + inkscape:connector-curvature="0" 29.2059 + id="path10100" 29.2060 + d="m 476.02904,638.3113 c 0,57.40944 0,57.40944 0,57.40944" 29.2061 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" /> 29.2062 + <path 29.2063 + inkscape:connector-curvature="0" 29.2064 + id="path10102" 29.2065 + d="m 481.57781,697.27417 c -13.14022,0 -13.14022,0 -13.14022,0" 29.2066 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 29.2067 + <text 29.2068 + sodipodi:linespacing="100%" 29.2069 + id="text10104" 29.2070 + y="696.22418" 29.2071 + x="486.62335" 29.2072 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.2073 + xml:space="preserve" 29.2074 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 29.2075 + id="tspan10106" 29.2076 + y="696.22418" 29.2077 + x="486.62335" 29.2078 + sodipodi:role="line" 29.2079 + style="font-size:8px;text-align:start;text-anchor:start">end</tspan></text> 29.2080 + <path 29.2081 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" 29.2082 + d="m 266.02904,697.43112 c 0,10.33165 0,10.33165 0,10.33165" 29.2083 + id="path10108" 29.2084 + inkscape:connector-curvature="0" 29.2085 + sodipodi:nodetypes="cc" /> 29.2086 + <path 29.2087 + inkscape:connector-curvature="0" 29.2088 + id="path10110" 29.2089 + d="m 258.24715,698.02605 c 13.34137,0 13.34137,0 13.34137,0" 29.2090 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 29.2091 + <path 29.2092 + inkscape:connector-curvature="0" 29.2093 + id="path10116" 29.2094 + d="m 733.1031,698.02605 c -727.990461,0 -727.990461,0 -727.990461,0" 29.2095 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" /> 29.2096 + <text 29.2097 + sodipodi:linespacing="100%" 29.2098 + id="text10118" 29.2099 + y="532.12646" 29.2100 + x="259.14209" 29.2101 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.2102 + xml:space="preserve" 29.2103 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 29.2104 + id="tspan10120" 29.2105 + y="532.12646" 29.2106 + x="259.14209" 29.2107 + sodipodi:role="line" 29.2108 + style="font-size:8px;text-align:end;text-anchor:end">resume</tspan></text> 29.2109 + <text 29.2110 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 29.2111 + xml:space="preserve" 29.2112 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.2113 + x="259.49329" 29.2114 + y="612.12573" 29.2115 + id="text10122" 29.2116 + sodipodi:linespacing="100%"><tspan 29.2117 + style="font-size:8px;text-align:end;text-anchor:end" 29.2118 + sodipodi:role="line" 29.2119 + x="259.49329" 29.2120 + y="612.12573" 29.2121 + id="tspan10124">resume</tspan></text> 29.2122 + <text 29.2123 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 29.2124 + xml:space="preserve" 29.2125 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.2126 + x="262.06427" 29.2127 + y="638.12549" 29.2128 + id="text10126" 29.2129 + sodipodi:linespacing="100%"><tspan 29.2130 + style="font-size:8px;text-align:end;text-anchor:end" 29.2131 + sodipodi:role="line" 29.2132 + x="262.06427" 29.2133 + y="638.12549" 29.2134 + id="tspan10128">suspend</tspan></text> 29.2135 + <text 29.2136 + sodipodi:linespacing="100%" 29.2137 + id="text10130" 29.2138 + y="578.09204" 29.2139 + x="258.55069" 29.2140 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.2141 + xml:space="preserve" 29.2142 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 29.2143 + id="tspan10132" 29.2144 + y="578.09204" 29.2145 + x="258.55069" 29.2146 + sodipodi:role="line" 29.2147 + style="font-size:8px;text-align:end;text-anchor:end">start</tspan></text> 29.2148 + <text 29.2149 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 29.2150 + xml:space="preserve" 29.2151 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.2152 + x="259.87955" 29.2153 + y="700.12482" 29.2154 + id="text10134" 29.2155 + sodipodi:linespacing="100%"><tspan 29.2156 + style="font-size:8px;text-align:end;text-anchor:end" 29.2157 + sodipodi:role="line" 29.2158 + x="259.87955" 29.2159 + y="700.12482" 29.2160 + id="tspan10136">resume</tspan></text> 29.2161 + <path 29.2162 + inkscape:connector-curvature="0" 29.2163 + id="path10138" 29.2164 + d="m 170.94559,610.02605 c 34.44005,0 34.44005,0 34.44005,0" 29.2165 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 29.2166 + <text 29.2167 + sodipodi:linespacing="100%" 29.2168 + id="text10140" 29.2169 + y="560.2088" 29.2170 + x="-282.23102" 29.2171 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.2172 + xml:space="preserve" 29.2173 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 29.2174 + y="560.2088" 29.2175 + x="-282.23102" 29.2176 + sodipodi:role="line" 29.2177 + style="font-size:8px;text-align:center;text-anchor:middle" 29.2178 + id="tspan10142">return from</tspan><tspan 29.2179 + id="tspan10144" 29.2180 + y="568.2088" 29.2181 + x="-282.23102" 29.2182 + sodipodi:role="line" 29.2183 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan></text> 29.2184 + <text 29.2185 + xml:space="preserve" 29.2186 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.2187 + x="136.99219" 29.2188 + y="357.42465" 29.2189 + id="text10146" 29.2190 + sodipodi:linespacing="100%"><tspan 29.2191 + style="text-align:center;text-anchor:middle;fill:#800000" 29.2192 + sodipodi:role="line" 29.2193 + x="138.49609" 29.2194 + y="357.42465" 29.2195 + id="tspan10148">Language </tspan><tspan 29.2196 + id="tspan10150" 29.2197 + style="text-align:center;text-anchor:middle;fill:#800000" 29.2198 + sodipodi:role="line" 29.2199 + x="136.99219" 29.2200 + y="367.42465">Plugin</tspan><tspan 29.2201 + id="tspan10152" 29.2202 + style="text-align:center;text-anchor:middle;fill:#800000" 29.2203 + sodipodi:role="line" 29.2204 + x="136.99219" 29.2205 + y="377.42465">Code</tspan></text> 29.2206 + <text 29.2207 + xml:space="preserve" 29.2208 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 29.2209 + x="203.16797" 29.2210 + y="357.42465" 29.2211 + id="text10154" 29.2212 + sodipodi:linespacing="100%"><tspan 29.2213 + style="text-align:center;text-anchor:middle;fill:#000080" 29.2214 + sodipodi:role="line" 29.2215 + x="203.16797" 29.2216 + y="357.42465" 29.2217 + id="tspan10156">Proto-Runtime</tspan><tspan 29.2218 + style="text-align:center;text-anchor:middle;fill:#000080" 29.2219 + sodipodi:role="line" 29.2220 + x="203.16797" 29.2221 + y="367.42465" 29.2222 + id="tspan10158">Master</tspan><tspan 29.2223 + id="tspan10160" 29.2224 + style="text-align:center;text-anchor:middle;fill:#000080" 29.2225 + sodipodi:role="line" 29.2226 + x="203.16797" 29.2227 + y="377.42465">Code</tspan></text> 29.2228 + <path 29.2229 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 29.2230 + d="m 205.05995,448.02605 c -67.19099,0 -67.19099,0 -67.19099,0" 29.2231 + id="path10162" 29.2232 + inkscape:connector-curvature="0" /> 29.2233 + </g> 29.2234 +</svg>
30.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 30.2 +++ b/0__Papers/PRT/PRT__formal_def/figures/Scheduling_states_2.eps Sat Aug 03 19:24:22 2013 -0700 30.3 @@ -0,0 +1,460 @@ 30.4 +%!PS-Adobe-3.0 EPSF-3.0 30.5 +%%Creator: cairo 1.8.6 (http://cairographics.org) 30.6 +%%CreationDate: Sat Nov 13 08:19:40 2010 30.7 +%%Pages: 1 30.8 +%%BoundingBox: 0 0 196 77 30.9 +%%DocumentData: Clean7Bit 30.10 +%%LanguageLevel: 2 30.11 +%%EndComments 30.12 +%%BeginProlog 30.13 +/cairo_eps_state save def 30.14 +/dict_count countdictstack def 30.15 +/op_count count 1 sub def 30.16 +userdict begin 30.17 +/q { gsave } bind def 30.18 +/Q { grestore } bind def 30.19 +/cm { 6 array astore concat } bind def 30.20 +/w { setlinewidth } bind def 30.21 +/J { setlinecap } bind def 30.22 +/j { setlinejoin } bind def 30.23 +/M { setmiterlimit } bind def 30.24 +/d { setdash } bind def 30.25 +/m { moveto } bind def 30.26 +/l { lineto } bind def 30.27 +/c { curveto } bind def 30.28 +/h { closepath } bind def 30.29 +/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto 30.30 + 0 exch rlineto 0 rlineto closepath } bind def 30.31 +/S { stroke } bind def 30.32 +/f { fill } bind def 30.33 +/f* { eofill } bind def 30.34 +/B { fill stroke } bind def 30.35 +/B* { eofill stroke } bind def 30.36 +/n { newpath } bind def 30.37 +/W { clip } bind def 30.38 +/W* { eoclip } bind def 30.39 +/BT { } bind def 30.40 +/ET { } bind def 30.41 +/pdfmark where { pop globaldict /?pdfmark /exec load put } 30.42 + { globaldict begin /?pdfmark /pop load def /pdfmark 30.43 + /cleartomark load def end } ifelse 30.44 +/BDC { mark 3 1 roll /BDC pdfmark } bind def 30.45 +/EMC { mark /EMC pdfmark } bind def 30.46 +/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def 30.47 +/Tj { show currentpoint cairo_store_point } bind def 30.48 +/TJ { 30.49 + { 30.50 + dup 30.51 + type /stringtype eq 30.52 + { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse 30.53 + } forall 30.54 + currentpoint cairo_store_point 30.55 +} bind def 30.56 +/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore 30.57 + cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def 30.58 +/Tf { pop /cairo_font exch def /cairo_font_matrix where 30.59 + { pop cairo_selectfont } if } bind def 30.60 +/Td { matrix translate cairo_font_matrix matrix concatmatrix dup 30.61 + /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point 30.62 + /cairo_font where { pop cairo_selectfont } if } bind def 30.63 +/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def 30.64 + cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def 30.65 +/g { setgray } bind def 30.66 +/rg { setrgbcolor } bind def 30.67 +/d1 { setcachedevice } bind def 30.68 +%%EndProlog 30.69 +%%Page: 1 1 30.70 +%%BeginPageSetup 30.71 +%%PageBoundingBox: 0 0 196 77 30.72 +%%EndPageSetup 30.73 +q 30.74 +Q q 30.75 +q 0 0 197 77 rectclip 30.76 +% Fallback Image: x=0, y=0, w=196, h=76 res=300dpi size=776967 30.77 +[ 0.24 0 0 0.24 0 0.916468 ] concat 30.78 +/DeviceRGB setcolorspace 30.79 +8 dict dup begin 30.80 + /ImageType 1 def 30.81 + /Width 817 def 30.82 + /Height 317 def 30.83 + /BitsPerComponent 8 def 30.84 + /Decode [ 0 1 0 1 0 1 ] def 30.85 + /DataSource currentfile /ASCII85Decode filter /LZWDecode filter def 30.86 + /ImageMatrix [ 1 0 0 -1 0 317 ] def 30.87 +end 30.88 +image 30.89 +J3I@:GU(oO"FIqV0;rCK*=mro@So+\<\5,H7Uo<*jE<[.O@Wn[3@'nb-^757;Rp>H>q_R=Al 30.90 + C^cenm@9:1mM9jS"!dTMT<$3[GQ$8#0$s<4ZX!SPQ1`A'g"%<TR;.<aa6d`HE,+YZP^B4!g 30.91 + 3;B=(iZ<kDqOh/Bf.DHAorf'R[o?>ioWjnAY&^gM+`4=1jRLW!YA=M/6)*KS9PE`kN%="Tc 30.92 + _Aoh+fk'&t\ctI:h]"?)EVlIDd]!t-Xh$Ve"[JLu9_eZN2gNOTbQKrP([VkioDBB7=[,UR, 30.93 + Hi@$GNQ^C&p\W4]93o[!Fh+rPIlj(Jn9-kkY-14!k3ht)5*"HoRH<m_r]WPZbLQ=\HN&Dt^ 30.94 + XMoO5Hj,<r%.;1#6R5q'GCO!c[3P"3fin8!'p!h(Bd%.<&4_0Y]I&S^9EhP$:=6h2[i'Xe5 30.95 + Hi.ORs\,]MULe&O`lL:DH='_T*?\/t?>d]TK".)b+h3HQG[sd`!J'DZ"t[_D3s3(.rT]M^h 30.96 + <(_S[]nEccj\7PZ6M.8)G'`o"._.^6"^W"Ppcc4c/u3R3him5rW-bk4-FPO/64ckHom6-ti 30.97 + J%7AMW9b)h,-_jSiSuV&ELS'g5/:Q%^br&5DeEnb\e.gFr;4j*_9i=p_2*k2@[8f4f<AenT 30.98 + <`W38;-MOnKj.e_Q,3?(f9Om7?e4oCJQgZ*h2u1!2'n#gg%K!DB3<_"X(keF*MZ_@G1Ed7> 30.99 + ;haXA))8C?"dI7ot,?P2T;S5?2%pJG?hVRcZ<)f7H[>"\)m@0?8V'$JR>njlZch42=GEj[T 30.100 + 4&n?hf?XIq!P\.u@^0VDF-?GfCPQA,''qCLT7E23?\J*`H"p).jbLiOLj8QXgt7CRShB%EX 30.101 + iFq6k?EkOj:*SRe,%AVXodSr'0))J4\okLfL'T'%#7D6$`!`A)dSfo@#OBmIG1V.mMqX0?E 30.102 + InfEH^'PuKNd`;(C\aGrimCVg+cLnm>S*p6in/MrB_=3sJ%E%]U:DLk=S8TFgnf3]:amtt* 30.103 + /^*`*cS`u=SF8VeoGnH2dI`t_:"/bU:K>s<SSqfcp)T3*g%Lu>q+ssgKcl$loZ@-jp`9s"i 30.104 + V8utNT9gU:R1&;So:1_qAt]ol2%!TXm>j*caE0;T'sA]r#ZHgnbf"4c1ClU:Y#.:T5WQ[rZ 30.105 + @3_q>R"imJHo*ch78:TC;^Xhuj(2:F3QNPpBD[Js(>X@KF9s*<Y5Q&V<hS$:.cG"lR<:K2? 30.106 + Fq6.e=*i<1<W:lZ/T=A9+[qup"1*.pM>])p%>.#(RD)FIVD%H55cLJ[C[6eHetiWMQ';%=d 30.107 + <=H*&a;#Q*#g(u1n*:KUa;2S4G.RdIA(#m/7Mc"@E7G,9iirieH&L<&FZF9n0Hjks2Xu8c% 30.108 + h&GC-EK3oA3_*<>*TP(`Kb5XX`7SK>U]c71;@Z#a=UcP87#@%(/k/Ca#i)(-?%E3_1_7*i, 30.109 + G`8GP>Z9n5GAiRV$*J3dYr(d=\L[65g5KkXC+ZJG:Vd.YSC']>"`"1.ODluQW!6X9;*jh`' 30.110 + hG/;\!2k3K,!@7*1iq+?3'AbqnL8d@&s:C'@bB2<Mj1Rc,`6"A-9ck60b6;iYln+FQ8dSEZ 30.111 + SCY'*Rnh)jeQnX`#NH;7W14m(ZpRoAa(9q\[Sk*5rU_:jK7\We7N7)YI%:52EpGUTMD[[*Z 30.112 + )MG"j=0Bg?TUJe%&dFh5CV&8?Z,JK=4g.b0'74EU=nju1$.1>000r7jpRT!C,"4V.\*0fki 30.113 + b*c3_l3+=,<=W20!C\WZNCfL(#,Y(^RN*^]>cL_9,h6&9%B@A6"EeMm<R=*7^l;d(5WZ1N$ 30.114 + I)`>7;8l(Y-qBbh-93!ENW<e\lW)&?0fITY>t#)=5*U[lihV72@ctm.h,Qr5U$At/p.8#*B 30.115 + 8Y!Odbn>/'njfA`cO0ZW&>F=kRsGXTZ!HQB#&URnPW?7&CrIY#))IDen`oZ%;POHon**5pQ 30.116 + ?6[oVqR7`OU>7kMQAd]?p5=^Wa45btqglpb7-$$56"CV!G0/6uD]&h_,[#5<"X!dhUi!4Cd 30.117 + e5T92q)pNZs7HqKeY4c2Vh0\UEn\/)MqHm&!"7O#=^K)Hkhq?O?_=ZUlQk&D8M4bf,7*1h5 30.118 + %Uf[&*%,]Y[&@HV=A#j'L$@7N*Z/eOiS6R?Xe_.Y1r;mTX?VR37O`bkKQ,quWJebc0pY_]: 30.119 + ub]&;X/)>%2eFcA(e!snc1qr=*F$5r/Fg/5"WKA0.(5`rI+`p@]WTX.Th3oQ045b]3sKBKL 30.120 + tc"B"ZV$ZjLLOr67O+0S7PK.lM"ph*Rt5Q(cmW3bM^b/ugcAU/`-okM5HooEKjWq@>Dr=d* 30.121 + F7NarR7MagLt"r/oW1t#=<'5:^P@K=-1b$&]!J=N1.o`e*kJ2e!Q>q-/Y:d`c66mm]%>T*3 30.122 + fagpCB88D'_XlZ4df2iYqN?*ErV$UMJ>7Y1/X@#Xc*)=GZb@9hoSKj+Rn\[=kC^e"Z/-TqE 30.123 + `hJ45M*VZ]k"'7B=bnJD>uVBu<i6$]X9NRu6bE)HB=ra5Z"]:Q@P7-tSNu4a:&D.--Fd4:< 30.124 + !55N=puRa71,a*Dh_+4?,Pm1],4dJNJt]S`T[5r*?8rnaq>f&jOYE:'ShX,hCDD,*3^5aY) 30.125 + *Jq>qX(10qgo1RS8h/c0,Y?$ZfQ%F4nOI!Q=9<TVfY7TI5s_O%I$q,Qm[S&.El86L$j4WWk 30.126 + Yg*BM.F&>EC3$?!L.qZ\bm")"nLT$=LM#ANR$04VrC?a?KBC[PKR'.K'sh8\W'Q$CMQ$*O1 30.127 + MHiSH]=R7kP>_!FWha7L[/-pLWQ/h2O!V06K;Ltk[%(sA:o2C.="Yd@Ik(\\[2)%;>+XQC7 30.128 + hKbDrcdk`!;(D*\e<JTt:oOrhmGq`>PW#U_b%jg0XY@k_(5uEi90al$hgc;"c=H'Fh_[Ij> 30.129 + +5&4+Tr,$$GOK8!hX93IGZ4/2eWU%T8XQb>QLl,s66N^PLG@<NU$b8`;X"HC>9ED6G:G8OV 30.130 + *\+7UcdhY2]IX"TW2B;62O<!N+rhi2FuUoSjF&TYT?UT_b<g!j%=_m7.!A*W`K)nuStsWRM 30.131 + 0W6jU"fRc(j^l(F]"m,iirQqh*'iBIMqB^>b;UB,h\bUsk(FL@jT!0DU6kW0mO66":-)GlA 30.132 + 0d#d?tFI%k.'<73.0!q$"#c^/#!_L,IJ56#M3:WXb"&&"'%8QL[F:$=8d=B1)5k5N6e>U3# 30.133 + %BZ]L@Dr^#[g3Q/LX+V4lq%12lORcUg*o_j+_qW=N"PRc&!7800bEr[Wr/Mnnu_'_bNdQW_ 30.134 + ?.lg"DQB^TUQTJU=K=iek;VAmuE]j@-g\Q`M(/50_lG<<5ZUGU`m,\kuJV*A/6n5W6h+I&T 30.135 + IQldL5Qc$.)'FWtkl#ZiP0'&dndYJ/8:R[L$rA(N'QiDj:MM55kSD)QrWMK2WM)[!tj)O31 30.136 + rOEPRSC2BDn.*3R6TNOK?_*"R&B'97AG5^sh0K&'fi!3to.bKf@&0cse#+/!ZslDb.DU>/# 30.137 + `ZU"-pEY.]U1mW]4+g$"@_4q9e]Ta]o*&9)inh>HC']WWKg6&BPnCeZ']G/TLeo@;H^rIJ[ 30.138 + kQi;>-(mOMmZARulI2Ct-D5W2lR;SF'dmE[-a@1uTrf^ta!3?qH',]*lZ4J[P_92k*:fX+_ 30.139 + 5,[KEi?en.^>Sh:C[QV[2si)/$`]hE4I:Q5jA>Z-#qfN^u[.!(86:+\Nrd]NHkG[6On.'0! 30.140 + ajsk\=$>f.UR90<S+do)P+n(AZ6tnF.n2i&<ACR4IRR!E1!@nUA9RT"1O4-_X$7dXiCT9.p 30.141 + hH[YnrCVg06Q3AbBs+mMB4'2\sn[ikbg/Kj-^O@TY^(uE%32R=7'%6Fqr%\)el\j4jNO4k; 30.142 + SKd!./Q#2&9#3Rh,PrWoQOFp1GTsk=/N5BLnq,:Q%i4P[3YQhm+40on-;]-G^:;@>B$Se8* 30.143 + O5VQ%2`[mN1WsV8$r&mKRSlt()t2i)JQ"cf#SHTuk=s8>0dcHV"#fGn47<peZ<@G4NBqX.% 30.144 + ?qjZ@/hgA7k.;a%O&dae)`qR2+)9D;@uUh8gkG`iX`Cf%*A)k5[<0nn>oO0!`,?;Tci=Q>k 30.145 + d437^P.9&rtX#P=G$ImbuhK&HW`PRhl)*RK/aHo++8h#qMYT*g7*W1U-0FkpiAG1=Ds9oW\ 30.146 + (QkspuK9=2B",/3f8V*m)l7"G.9&d&`.-Lq^-!O78Ji0cmHfenV"pbFj&kbUd*i7X@aVSX' 30.147 + 3ZgU+%;a58o4L'AKYIX`HnK,IQo!6?/0m8s>eLeU_;Qp`!_:(D$qbqVt;me`6_A*d6V++88 30.148 + *J!lG$iqnYR,.-jk])srC7a1dM&Pq8;s6LHJb&iX\IULV<ljbR')EO;UmH&Ik<O5nmjg;h" 30.149 + Uii6qZ'Tbo<A`=@5pPF(Y,V\+k9dSI9Uj)>ID+m@NHL(`#(AQgMG@N:s@_cC'9Y?aj&u*2. 30.150 + 'B74"=*%;cUROM',_&b5]uc?KeCe&*ZV9igD;FkRm%L'U^Zu2ToL'@B:"LXhGA3N@4CN;76 30.151 + @3p+^&81q%#WrmU=>NXucL38a9&"V!N7OcZ,0U=O+A'p'",(,gP>oiICRAgfoB:L_1]fbs6 30.152 + >Z+t)U[XdTo7p4B9"SGJ@O_>LRQ"b1(%p!O]p7Z4ZUk=gipaKod1/T)8Iii&P^9j:1m9(RR 30.153 + E"rmmm1uRE(1utLHYhm;/+';1Pc55pdl&m5=\V+G:FdOFF$-,cDm3RQP;?\!fl2-AE46726 30.154 + W6VYSeZGeCC[I^<Xuhqk=#oV@P?\([\H"+F^MTfHt"09n7_d/*q8\M<G\"):phY.Gg'/]iI 30.155 + Noo:<4A)?$!JhG.2=3kbT8:`>V=2eW!@HbM*DbU^0hi>*CaVeF@TMG./,RG6aC"d$3jI/C> 30.156 + 2=h_c7bTEfg!`G8DW64p%AktQ!GSU>Y'I(.=XJe\3M>1RI<=kA2;0>e3!*r,:L<jXZ"1j<o 30.157 + ep)S1'/Wi%qi-,QelWI%:S+br9O5S`X@=7hfJ[c_Okj0Ho'eROjT.hn2O2CamP;!#DUb_Ii 30.158 + (Rnn$UH29e%G4A0o[^aB'd[82KsGk6=?-BuB7^t7L:D)Tkn>%S-5]]j(NG(UlN95A4IYjj3 30.159 + `j92QpB>HqB62,)6/Z"==hP:jPJ:6%+ZYCJQF]0TgKZ:Mn$HYpqW)f&F<5#KqQT:5\XN)!> 30.160 + u?loSH`g'Xom+nfP:5N7U'M8k9unIkm52A@JiECYn:$X#JC3jUk@K3>%B6'p39>;GP1;n"U 30.161 + MrbitHo+OYaoD4?A@OVLiD#*qU'lO^c%g<3mGPdC(L&tBs;)3oJMQ+:/;os,T6M+lD7#h7S 30.162 + 3o=lD&eH$(UP?-97,/3h*gBs$+]oJL3Nc^Xi0*bMEQ2-u=q4X6.4AsP`*DKZ"b5YmH+;FX^ 30.163 + O"4S(enWmam;-^3Dc7Fb&%2P'@rJ%1:ednKq5'ZCjdpb]fS8Pi%D&j2J-)bH;2N$AZn/$IP 30.164 + d]Q>Ik,kh0Uil(,eX^=<Ua.DO\MFY-),]7U9;p^Dgn'TLJ]]Knk%A:q08$i^pWoGc7L,RMp 30.165 + 3+T[09N?_`BBGqI-6^AF3qO#)s3tb4uX8,GHUlUhMb4Q)G*PKnrA$5Yd(Ca`iYEmA>2tWOe 30.166 + Y"m@P<g.2VdYY1*Ukn6\],mAJ&5;V60s<)GnQq+6m"d24m03h`Z:eZF/Mm5\Y_X][aNm+uO 30.167 + d#0>b)'m5Q#m>j0Fk=Z3b>/r/&<<\JL)`l`Xq[p(p'\K0Z1=?8\$KG:9T."Bd%e'F0LuFXY 30.168 + V'UI2Y0hj#n):M*(USN\[(B#N'enCH`N2\n)$uuTkd.=G\ON:Hf&8VI3i]A%ro[33PrhdNq 30.169 + gl7=KZ!>`%2`!G1mn]3k_a^tMF,'G0es'EY-/S2"^#uJH\]3p[C^dqVM-=cJPNufk?1[=pZ 30.170 + RI,F$Y)=P_d_jSW>;$cR")U@$KEX^:WdHqs^JDl#'ZaXn2cZ\cRZ!dB?)_DK"KYHW[G<d5@ 30.171 + A<^H<OQr#rp+0VgL0r$pY&/SC(lBt:0S+\l8V)K;ja.pVs[_H]gRr)(E^%7eeS&"G2Qpk8E 30.172 + uCVtrt+VXT8lK7>h.$b`0`E[i3r.2p;fVC4GDT^i_%AJO0nR%b>KL-chg5)n2%u'kfaBYji 30.173 + r3=En`=;6cXqJ^5kXWa>mE):bDKrEsWoaJ4e\h0Cb?WlJr8GpLMJdF1-7[VM:J$tQ1WG4tp 30.174 + [N^8G's(Tp!-hLd(Kn8k]&r<@]gF(S)!auB_s4q6@p$JDHr.&cA,uE#LOPPe%IonkWEa$gL 30.175 + TU&?$hlhg]u&Z"E&R'YNk)&:QM(f6.UHuf"GmO[hPn$6ER9+jTm<K'19HH!0l)j2[]ioS2J 30.176 + mrQ.^SRfr+GMOohbf4+i>6c\L^^e>]TChdN1Q>X?3Zh8.l0`S>+];_ZS#\Gl9e*SSQm'\gR 30.177 + .lOaG/akhI1hS&9'1>0,dd90^=eU8R:Y2)TR-@RfUJ4eLUo3I9Fn)8^5iP$:WGd36#c]@`% 30.178 + J,I7r(=ep&e0,H$Xq?9\4s/iL7HAng+7s-UC=(gbA:K$[HunTE!+`4="ba\H+Wa;=rc.*ak 30.179 + A5S=XR)XV-h$/p^Bn&IXc;]n5'?*RQ0E^c_8.h-[F_Mclf^jJ7NQlX.DJXWRHo=4lb,G=b1 30.180 + eg;2LV-I]j,l0jYHYgAF`<U],nZQro*9-XA[12XgG$UI].Q:[e$NR9t"9o?NKX\"irF=/5" 30.181 + FKG8,KInp.@4F\:BY\@(gU-1ZO7_C^&uhuQ,-gjK,;GrYB<C>0Rf"7j2uoY4,4:fsj'g3p[ 30.182 + gZMlV*[!h'DgOL:bo`&e%s)G;1*uHKX$_F/B)_G-@?@!hhoEs7fqaL6DQ2,otWR\'dg_-^W 30.183 + S:+a*GN'@iWn?,+(&>VTqnKh=Dka@.41E8TnRgqH9%qI<\,63YrP.0RZ6cdc&bDRm[]=8t5 30.184 + 0eC0+K_mdb.ldU&,6hK#mGrIi=MAU/f>+R6fJ[pPYNYBMacY<R+-"6*KN_O&fDCD8L9QljV 30.185 + !t\Y$!?C9BHm*Pg3u#Rn`&ZRFLYM#;K#i'H.N@M"@B5hpe"[/b)P]e*7Y!_sXKsI_uo.O:? 30.186 + )]64R)PFrB\-a^qe]m1u0kY1[[$>OE:HQ-SW:]3XkAS(6s&ID9.WD;5[9$!j4%E>4:117Ip 30.187 + W<,&a1h-(HBb6%8P?iV]:bg0ZR)BBTS8YsmMobsB%Y?A!ZC\A\fQHs9QJWr)2Tt]t0ri9#' 30.188 + cYS;1X%S(/GlnOWC:4.AF8"E2QVXU2lZN(FT%@nkh=#Rc*Zl(ZC$!T9YYEds-[eYK5'T1.Q 30.189 + :iY13dpqu'9DV&rVo+O"9SZiE$Pen5k%/T"[R!OX:<#4d2NBTCg$W/^+=?fii;2SLCZDHct 30.190 + *ePn750*7.EZD'h*+Q>8K`uKOYlD6VM7>#Vj7Gp7JJi*iHnLR[2&!Z6M3O!Cj_c)9Ho0RjU 30.191 + euKVKtgEho`d7*d;qblG'.i@cH0@t)G<a/jfl&Q;'f!"m[jY;]2IK]>'fF/8+`:@lE'0-1* 30.192 + -qTTfJ"MkGF8qVl?*HXOe75I\8@*)2$Kd0/eFJUK\;Y7pa9dClF3mA3n"U,pnPUYmEeEi:c 30.193 + <B5riNE9&$Kk"7dFerkX<qXFPedL$g1aZ;s'Z>AY/fDuF1B:W9/(o'qRqGmtKqi?cG,;6D& 30.194 + 9brK:5&<K).CaHPs@U@5TS#nReF/<F^93&gNQrtL#U`!GG?tshX=o:0\b/&SpFc/pc-M+GU 30.195 + ;I(@/*2)Kjf4<)i#SK"sZ!-a$')&_XPB?ND2lc4,;kl#"+M`GpZ1J7OFF"2&dEF/Q'`0&tU 30.196 + UcCs[6mAGO5dSS*61H_4s:agIg:7YZhf=AB1YV,9L!1f7u`#,A/4HD[aDCAPdOE9hRE4CRI 30.197 + JiuD(cCsWWt:Mm@$[1bW6gUD%sL?#g^H`$,@DYqHF]l/8[qnI(I#6Ve]Hm]<>E;W3>`Gp9; 30.198 + p1j-k[a\+C]Vd:'Er<s6c#\9q43qr$O$g"@pnp@*FT"^.eTH:Q>M!bI:L_`k4f$S@pA4u;V 30.199 + ^^XZHHc^:"/Z=uF'":[GlC3sj`u;fS*,(rLSO*[I]'74HN(skm<a<F]C1$@\&3!+@"5r_I/ 30.200 + c^comM=&g\6-rLSc,AI3-)srr:%1rI9=[qu8nMnGl9.72cK3Tado?O%6KD"f>rq_"WNP+8c 30.201 + e(OB)`TGVKD1e/*KV=n0<V2[Eh+,D;/E'0^'k%j.emK^cDd6MOst@5Iuq#*<1ZFOW>pe-RS 30.202 + .k]AFR#%j%B&U^h*,=Hd=&n4g5I*d$I`)rEA@['fKOW"qNZ%j''e6@inFpc,S817s\7PfsF 30.203 + h%,'p)H0JeNKFfi.FUF"A!D%pOk)TaGjuhbe9d7=p-2(C!?bneK92636V)J7,%OZ2OchUm8 30.204 + GO1bP>k:\YEChrGp+MFe=2YbG#(^*5q$:YUQLD5/%(`1IR>*UP`iIV9)2mHAX'NeP/L\MFO 30.205 + _3;(k.g+BGJ_cb^7;[_d&+aWCGnV(8b$*R=r\HN@?4LUoY[e;^a4ke`?lAe>I'pV";]"Ye( 30.206 + S(\U[//AVG1^'W4oB.RG>')5&iL:T;a)djAYO)=U71I*mSq:+/h>mljf`g+^uqX3KZ^3%,E 30.207 + iS7gti)B_C89[JWjPH^p?.PPIboc'K7g3T%;X[;7a,+iN1Ke4c=5UO/h>r3+qct9CH$oKE/ 30.208 + M`uleH6-G6<BEoQgg8B:n/lBWRK\rlNgj3M:h^@rWJ"lHc2"0C.S'Q=FZ!l2ie:&EXYME6d 30.209 + ]4mUDJ#liI[FT/blGo61!'LoN8bV^)5'9#C,rZ$F]P]tEZ\6D9i5):epuA+RoTk*>&'=ATi 30.210 + LCYXQp1IXC_*HcC*6SlX<[)(030jWoe-`odd:*FG*_qB4!)Ue>ZIIcRWc6!%]?nYf-gb>'2 30.211 + ]3b3b0A,JMn4RrDu7&>;Te#[(C(eCkCtS$j+IJQ`DmBU4Xr\B<CPg:!hn5R"@%W`Ide.qi5 30.212 + lXkR1*h5(VIHFJY5j%WA*?VH>CBs+R_\J?7J/IRtmeW%n(P+i^iCYsN(V:R+SA@`L`;1M?e 30.213 + =hodaX"f1l^efn%\9=%8?E<`tDf)Yl.m!Ia'f17]<VD>0idTj?/Uma(r[qZT'.0DuMJt<<3 30.214 + <o[@@e2Dg0pUt!=G"0D4/[d5DAU=8<t.TTq2]F!?C[,,]FW5K0>Ue[JW&TQ=Z0Y=16J"ZJ. 30.215 + \oD)Ei_R[R-d7ip&%qH']5*5Jrlo0e")2M$nad&uhg0B(Ard(ARU3_n67fF#8<_VHKPbQHj 30.216 + )g(RMDX@*;Y>5UUBi2fHB+_tkB8AspeI.G3q2i'Sh:9/C+C)nSq?X%ucBd)@QeL!TTVE9Jk 30.217 + mB_1X&e@M&/kaE$Vle\Vkai?q_@d,q*Q0!b][lGp8l8:I4I/lqMJt"=/X]j#KM<8S*m%iaE 30.218 + .?:^@3n%agI;W<.k1`U/S=!q8qO'rj]F2ld!2op9Cc5&?C:c6ND!_\D'"65hHW&ql@qm5If 30.219 + )#ccp#GMfS%e:bZFEH=2/S;/6aV\e)>l?:R@l:Q7o'fQqJSBa1;Z$CWL<n$G:T-<f=[Q<m] 30.220 + 'HSO_kej6#Wo`_n%Pf4jF7i\2m[F-*VE2Hk^"LDWiEoJT)J>W$](gC'L4FJsq-Uak?\>YIp 30.221 + @$-N31;GI?kr#1;msI^"_*RT8LHUH4#k^m]o-@j]a4"<T7HO@SMCm>7b^p@\DJ3_)s0m8Kl 30.222 + sXl6<RLATkH6\/J@5".Ni00^h6_3^1WCHA%$lDDnFOF42cr/bU_M6"FdD]Y-hl"!S<'H/<k 30.223 + WT\AB2!<*'E?%a';utUO9jXnABegMeI?==!L!QRh<d3Bf?Z[o=IsmG413C5:fD&q'`8)LON 30.224 + dPQHpnTR:$)9BLd7;GQSnssXDm0Y!dV9$eFJokF8th@""&E=Zo-UI]#^C%/+Z\$grp_H8:' 30.225 + ke2k-'W%P(ikXbQQiD!Wjaml3i7#08&*hOn8b:":0AT^15$?oEC.oj-kki1AKM;G_85jbr> 30.226 + gi^h^)48t7kCS0iQAJFPJtoFjF`S\GIQ]1TVtgDL&92&e4O(;N5#G_2W^T`D_G-ZDHYN#rE 30.227 + hqMeF)MA)A8_gk"qI_Z'r$d8X;Hm">@$O@FCWUcXW\;!>+f0[Bq6<hAg8sd(m=Li3M]HHg% 30.228 + `%;Md1Qc25$)#3>lEgP"2$.#C4,C1"q,3J;H]Oi[#XHKgn227K!.dC:6l:KBk[tQ*#fKC>" 30.229 + 5uWQ=Iqj(e3Z-f^sjSfnA@Yf'VH^?NO1O#4=7;>!fN"4L_Il736aRY1d\i-%\ut=bZ0S.#a 30.230 + tl&ZlBFlG_j=Q4h)J#P>cnK.#jlEkJWIb`C&h-n;`^eX9C^c76AX]9+_G'?&UT<#eUQS1ej 30.231 + "322Q'+#1t4kl/RD$E&'\-$To.e4?X86L8ujnJ;N<GfGfNlGQ@)U*][aAfJpFOEXB*D*LYW 30.232 + Bak?s?]0G?TJntCK4CJR2:.;Cu7/J"D#e3<:J\Iq9%5`p$>`+C!=IK(i^0FjZ.#LOibso4" 30.233 + _AVT&nY6A3JHBQM\--N%S15S-K8_L;THMKK8;p+_Y/W0\7`^cGpcZaqg]0o'$6TPTfXAgL1 30.234 + IKfN8&RCh=lhVgk!>-dK.(V0W0g*-dCsl`5*:rJ\@p&SSOd6W2-X_7I"a`e9>X5Rb5fo4A; 30.235 + X#>\OahS]blsSgbK;bMS&)i.I`0`8a]+tKhKhZ`5%/Ona?`oR",0q7TdPh39a#mO2&9""6u 30.236 + kEcl1-@D2X(C6"HetWNh.Z'$UaOU&o*WGa1n:d2l/I95qMf@%0e$)&T'8K!=El1\lkIe-dO 30.237 + &bV63A['e)-M8_$^%+BXJi/gCMhp*(V7I/&\<8\$=RLD%1#b9rZP\?+?jp!f+7RO7NA7<Jn 30.238 + X@@HJbE6'Zo,!#Z?dDA=Ls3I@X6Mp\!`&6Y9H]*^Gk8pKQG4Rr8P7p(pk2Cu!&t*Zb]&&qg 30.239 + 7M&4is8VG&'S!H"R$aTq+6[%c`j*7d"fW>Y0,\gb^bS0OBg0-.a\PT!%HsN#X_HNg'?!8]/ 30.240 + (4a`2(F=N!te@d?kNnWUGj\-W/+r#mB%AoMWsZI14XHQsA5NXWiUtfFhH*+!<=:BOK89\d5 30.241 + tjM<kJnJYLFi!6\2n`G>@tM<25MJ'#:[8Lo8:E.YlR"cDX'LnpO^KTcUjMU8'Z9MC+8*%re 30.242 + c0Gd]+Jl&.,*6FO,NR)EA*q_4CEnNDSbD;E:67@Oad"tR!Th,fKbY79E7#qUOfgS/_;eViQ 30.243 + 1nDGQYsAAEO(<aBg2jdWjGmn&eQVKu!5,uqZophMLqp&HOB=#h&0F<eJLFDrk`8W/^.u:j/ 30.244 + X8mr\ALuClH['<\*N5,9])F19*u?UZFjS`YcboM"OMC,;T"#cBs#AMU=QE2$oDES'd:Onl\ 30.245 + MZR^dMKfeT6PZmRC-tf-Khh4Rig0,a"Im<C$/,'n8oIWeTGhec;84r'erVB?S)J'AY\jQ"L 30.246 + A=XWGG=LckFAS7,GHLeZjpeF8.DdHukQneQ1R=W-7fYT0uZf`u2I<"S;cbZ%\hL/d(2<m6W 30.247 + Fm;'L.P<L!X$4T]8]Ed*Y!)tA$ddZZ^\La4cIAPjd2^B%;oQ?aX@Pu\r$cL<?Pg5+(CEIWh 30.248 + !OR(TI40o*Jd]7#$5DaY"b]e/CHt8afP0DMR"A%4@oH<S;jB#FlRUO`k#n@3cfHn`D6o$Qm 30.249 + *siGSrG\XMHi`,CKOSa),h%ZJ2Z2.jUQ(X)f5W^26_qZmT?#nd#a+8j*n!#!`+f$cMUXtFd 30.250 + WRMIG,D6#DE92[?q45l:)LscgZ`pV6W/$Z]j4Z%mA'k'f<p<1g>+M"%=GkSWK.he<<aVJ3. 30.251 + %:[1nEkQ9H#f>oD\Xd#(`:O$^d7`_F)e=G5,A[n_'=LgqsLMkLDfZ&/u_Nl,)X8a<40%8$= 30.252 + XLAgrX-*#!FPM^BR4S6jRNQ[6^R7V8QM@E$^'I6`tl<WV'gOP)&h:IHG/4j,!#Yi*jFeBe` 30.253 + n;&\)T"r'AaX.22&0@D(d0M4UXqP,dJRA2AT)A[bBSSpnnrM&1Lg7mQEtMX'L/+jm>Yp&Zm 30.254 + MXNn:dgkd<qqPO>2Ri#`8=Lp]G0OeIH-W@*$1<(J>bA8W]5eTk`1S[i#&WUrZ.VEL.D1q*h 30.255 + FWb7667K/7.`J=d@NEAg"4E!8l2aZDg<dGW_71@o\oC6a8tq`V^#]qk=,a^N^RTZP8,S4BN 30.256 + SY%5j's^k:I/$/p0i>tN`U2$7)CoAD3Rgu\\Lb\(4SJ_f*2L$O?O\6d>6o>s:melX9G*`*+ 30.257 + X;c#k4A<l\@^"[!m;r,[rROtsU<\=^o#0AiWhAtUQFiHF]2i!]1A.e/.[V&+;2nR/C5^>NL 30.258 + gT2&gp"6,gLaA^+aG8NH7gL]7?EfPSI@suhKis]]#`^N>`LVM_SqsgaM2isLFqY%YmK$(2@ 30.259 + iNE\^.nr&LtT:%#c[Q2NGTa9$>/-JMX<pq=Mn[rJkkt7%b"Xrcksf.Gl[.V(&0+bW&>;s7o 30.260 + FS>_k>`Dj7,3-P#7T>T&j7?W&0CQ<nU$*iD@$nj`cLZ2Irso;AL'Nc>200Ja)$@gHbAn6*2 30.261 + '`r9>te>Gd75AoNQ\GM'ogjfI`WI7.NeM;g3l@k=).=Gc4.QFB6.Jtc0cQnrMAZtiFECL4G 30.262 + bDRXD1\8.,8CS&+QY.JJ`\B9Br!fk!,SqRG=[Gj^W@"'ra@)HB#oJiE"?Mu"*2E'_L%VH`/ 30.263 + #fZ-9lc7le@;%"&Md$W6VS$aEcts9?D'%,B0%4Y=a.IlPm9Y9U@#%ENS*HRd#u2=u4+JdR` 30.264 + *J%M8?=Z/J0p(1g;50]NqEkm%K!mWO:&:fJRRbSE!n?B/AlA\M&)NfIXpH<K\o<#C4=iN(l 30.265 + .Mhmg)<46VK%4\<T=,<p*LdLphKfG#7CFdR,q;M`=)mW\8;$rJkP:n(h<(,hn5^MW]G,D:Y 30.266 + _#?L1hgh=$s=C+f9D[]E`ep'<LnLu,?BHOW7^r,Be(?<m*_5!9?D1g.7f#aQPlTTnlST][X 30.267 + sm<2"d(?t<BT\MG(eimMH2\Q\hif=<(ks1=KGYoME2t,BEOH;r&\7jUoX5mO8cBbX>Aa](q 30.268 + "7#l&miM^@?Rj$4CBZlhi+Em#:lF\=NblGLMXI;H<sjdjqLh'BF'85IBHm%srkV))Ej"inK 30.269 + ?A8=..Zg6E)-Ol)<G2mWG3%;kViQ[Sp>CMZZ*L8o4LN9D<6B<8-RmBE;7o!`tSLY!JipWnn 30.270 + joh7k8ZEJ+UKLnqS(7?8ot?@<<k:@s[KA&H>U8pec.Y;1OW203`=8._Tu$Bb:sc2X63++7) 30.271 + 2sLgOQ3cCXXJ;Y31M>R&IA-S+Q?0j^R=od;D9;>5$q_/nLFMgT&da);Vj5f%qiG9:jL06;> 30.272 + %FE^N'G@,N;Dg-DTG^"#dT6@pMNk]bp.<PkFGK4HA7r!l@j3F2HD3"..p<@gE6$(,YYgR<2 30.273 + O,%t0Lj4u;Gb9k<YD9f2q!D0Rm;I[aCrGb5m0XXbn!A]K1kfRlO_i:PoJF;Hpoa'`T8sL&N 30.274 + rN2m^jAq'O%fArKo@)YMq`8K^WsSoEF1ucInsuQB(g_;p1KQa7LjZ=AGA1XoiBpo0X9R+-+ 30.275 + f'bT$HM2K!]-T,C6a!ok15P50`UGFGR*h!!f7Tmh^f2CinjFLPF]+-Gs<])i6e?p)e\XB8+ 30.276 + gG_:-ML@/sORj?Vngj`osoLk[O.(kc0Z'XuZ6mK'H/f(TG?5X7dDd^<r`(sQGi`(!PEL_9b 30.277 + sO2ZpA[En&]%i:XopDrn!eogboq$HHIr)WYaV=ZD0l6j>pkM>D_E0F>WV7u3ma56RSQ?oai 30.278 + MdNOtSjVHKHf6,!iBVnkOI8YC@cdnWpb1a_#'G`?9nb`jq/tHl(Ja_EE+Mi7IjSD,=&F=2# 30.279 + ^G[qHihiG&U!Ztk$jpC@^uu_9F;%-rWNCU6"&&a6m`WVL-oCr0Eaik&r4>&;0\U"HQ.a4,L 30.280 + Mn^L.*8DVP,T07#k7tOiH"WQV>D%1R^a@ET?,?EAjCaB@H\[n_litSg`),74+9mMSH.:g4S 30.281 + C\p8U8jeL/9&[8;>$/(OLk5/eWr=_nk#6H[h8[S!Yp-qoY`EedpE[qXs`D0giVA-gB^rqUP 30.282 + r;C<(`Ml+l.-KAVH*/2]HMonb_=a:oi23lI"F4KlBL=cOT%eRl671J2aYlj?YD#Snh2TRjt 30.283 + UtGpd#pGNk@Je^^hc13*aS2p0XGrpsT;hY5c(#jd);;tfZ7]?K4k\q<-f#f'E*M@a%m8\j8 30.284 + #Oo'KoCH2^d#c8o2pEJ?[,3SopO)%5Ko9WV7,TOKV>+*HJ4Xmm`HAV_9beFMnogj'\^?AJg 30.285 + 1Z=.T@Bt]<9W_&@.9nMPJ*e4#j,[b2TY+7E;F4XWM<=;&Z-&CL/S^c&=Lg5qT]lO?aEklO" 30.286 + g(!Z*+*;H/nE8CC2'T"2g$5q0GsnhVdE12M-*1?Oeq91uT2aFU@HYTl!#@3!oa9uc8PT>q5 30.287 + [b8j9ZqF';9CeM)`Ui7hbKK<e9DW@G?*!jR#LdX<GU++e9^_)DA91'iiaO*\U<*Beb+7;`W 30.288 + 9T9TEer`j0Z]N6[oR\#Z,]]GPK"Ek)4Zf?U(g?LCosK'OZ`r^s*8!s4/9][fj7Hd(2=t`hT 30.289 + l'oeP,Ltn<fa%J`2??XNNB@GgCA;)Ju."<,+^+168M1bnKaj$]("ODGbB7i6DG&-Q10Ao;. 30.290 + ?@<WlMgS)+Kt9f/]RHXpC\(#b88tccF@?J(`?=g4Wp[RN[Q^Z=Ys=j/=JeP[2CpYjXB.k"? 30.291 + 75\AdP_fm$8"YZ?R<=u0d1%WN44GVURuAgfKa$rFJI(7-V5Z=?C<+9QN"VjBl=M,fuK5(g^ 30.292 + cRTtm,g58=5:O+:sRHNdFEErg=*mpUt5lTD"mF[;GAEE\`l+6<,>!]?0nZD#:?JF8UIB"cc 30.293 + WiN.%&u!)m)<)m5EC_suM-MN*(5Zs3c/?EQ]YoW<o6@`/MK:Ti\#CV-RLMG@H(%)`+^0VTh 30.294 + c<KYZ@luYqZ42LXf\Te+nm0J=D3r6<kr:5Na.]KS:?oUSK<$Xk`oJEcH>[-#9C2<.9^_h-J 30.295 + 3WDib9rcIAWkk7p2M$GrDYLU:pd3;ANTqR72O[>V5M[?e7BTCntV52KtVjcX=P=_1i(KJV) 30.296 + 1*4*#U:p&[Ms,i&b.g4EqU^6+`]"j^D)+/NC%U?#cage8\_7?'>I#U2eS&SPlS[Jm(ZglP( 30.297 + KH#taW)T*t46/8O5,YljC15%?WLgs81Na.5ipjEV(,KV2a/e^YdR.]=ZBRYke;n@R4G"F/% 30.298 + -g5^FY*/j@91%DXmf>h0eKl(G/2JHroDh:2)JYi-3[;gZqih90l!k9`?"FWq0:2Z+i!`MFb 30.299 + eaTQp`UgAA;r`JJKRMD3<i$E)j3Zg%mgL.N#Xr*/$`E6`CNu"(',:37@i1q(tcd&$ofGIH8 30.300 + d+[>!SZ?Ss6?.P002!6_=BqKqpb85,[biLh$6>&!d,]QPC0j"Ak<r4G1d%m5-/ceXFYS6'3 30.301 + T(2<Nl^OY\mac.U&n%8rQl8S%#016EjgPa7k.rXTO-jI+IZ,=ZX<ED7hee/n-fM+Tmk3Q[N 30.302 + JV2VQ$L$i*dapO@]=U0o&C-)[=V\Y'aj.,$-SfO/*@olNB>%>E1Xa'8TTX9"iE>XMZd:GBU 30.303 + /!$*OAnOm7)*Y$b25\mYT?WND2X/1DDC=iWVCI!jhI158FV6^U"mUrE5mrl/&:6_m4$D[&q 30.304 + 1T4u;:O=-<pJ\YV;tC=e^kO1.huWsd70Z,$@,e>eDI,:L:1.t\k=4nEZil9!)Dh*;ocg"E5 30.305 + cEb:9)EAX<iS)a`u$/)\1RQ*K.2R4Yg',f467/DQFSib#snQ7$SK#1,_J3=/sMP/+f@9'iM 30.306 + kJG'd8+eZH70'!IEI_e[f1NOG/0g_@pWY3jH_ZI[1B>MFjNaBbL=Q*S+WiTe2`]83JnG2$7 30.307 + pV0(XdYp)*Ol671BG&HEZ[r;]BaD69JmLA-fenX4uHKAidh"G,u=P#m-Vg7a-oj8M;!*tNL 30.308 + BC=UQ^Xa1hhtSLBn'0t0=<=X%RdGGONISLiVYJ]"kCPCb'fJ#1rF'0QC7K.B_cVA^?lVGfn 30.309 + 0T$kGb/n_X4C5)*IYW/:A<QQ3;,'".)sopL#It"NX>+Oa-cj&@P!&HE@s>oGodH)WoH3SSF 30.310 + dlS\pS!=,AQ_>8BTS;*E4SnO)^[ibB\OEj=J*M1+lbSH(F).X-&;_rD9)q_^NdRI@;sgeB9 30.311 + l%L?C\hT%HeIc\U1.kPYP-F&dS3P%t9UC`bY.eq;B$5<J*"$);U.Pt&=]9-12;VKCg'd'f! 30.312 + &eI&-enW%Y5\CXL@Ra%XM[Zo<G][(;O?tV=QZe!0P:Y&a5^TM1,^'Nn+ll*:41p4"6>9'GS 30.313 + /Wa&AY05M;03m'[G)PpFcd^WD%cpug[cXa2dT[Z.DA!Vg[hV,1<\&4YOrq&GmL7Tkq^H=je 30.314 + \'sThU24QH>Y=V^.<FlhjaXh<R'?PX:C3=qeL]NR?qAn<bC+a+,+\Hs1\8j#N+<<Ept!VP6 30.315 + ]B.an`hi9muQO3?kogg,kGf?"_,:;#fPQ[qB]\[Dt9#e\W9KQueQt_^>[!hY><O-D#q<qBn 30.316 + _qh&iG7Ss@b#B2.XH5H&]GV:>@><U/CIXEC,Bf)"Q8leN\GffjLCn0^NfrL^H?T%2QlB5R% 30.317 + l^USJ/jj?=0F[W^>-0cIUU3X3PgDJCmG!?+iq*'FWnLqh*T,$A`B8uH<5KJ*l-04uu)!kQ: 30.318 + ZM@ibk5=D5oA4uDH65T:XVSM:<gUPdqrQc7@V,&?$cDg*AaKAn[J&J7gj>K6D`r$,pKmmXH 30.319 + ln(3r[52I]1]hBY>`)^?`j.FgXkWX^\#CHeb\01m!YM6pAX72qqlnmINQQ(s!Qq+hk0OiT@ 30.320 + Nf<BC5ZT^\E:#jni8$IJMq$C]C$irr;0[s3L]F&-Do/#69hn!70^?YS+cjP1PEii3-+s:[\ 30.321 + ?Q6M`A`!miS&&2OD[0_F^<e;WDJ:*B^Y7P,0%"HZC_&5ra/,iEMS!UlEX0NSHFHN_].#1.8 30.322 + n&9?HC>5<$<k7DbA!XAq6K*[Qs#geUR%VWu2HNYu#bKu@U:koAhV[ANd$HosbN^2aqRgSXb 30.323 + $;e>C&AnoQ`mDY)`NN,H:AkFeaTF63%?THW&E=6l5moA1j=.1l0]qB!h%*?Z&((=f#(G9:> 30.324 + h?2e#LL!m0*`#M'+p?G&^_X_0^@L,%gFa2jq/CBd5)G52\Uc^&lB)EYgt6H`tXQs'[]\k&Q 30.325 + 9EA<u$j%(!aB#EFLHg0b^g-(=@%4Ys,Q,eI_kI<"Fm(&VCotLDZ/26NGRQ&SC3`hWN:+):> 30.326 + &p&JGIBkm<IA"@ALmnVnJb[i:IA)p^kh!7MfR^tfTt*7<(Q&D4gXh[\#B&u(^3,"2M%k8oc 30.327 + O*msEu&b@)ApA9G3*&5HNERQ%.#9]+b(JRO:0mY9'iZ_eA+jp_*Z2GOa]bZbS,18+h%SIr6 30.328 + 5oS+?eH14DJgDSV%jNSH,#Q<'Od<<CRj>:D-.6,Y;$LCs*>`Z;b(@AR+sS@B#,MAf2X47c; 30.329 + /A<=DLH5TR^,^3&^)L6QRS)dgQH+OdVB%"DCa.U!"sI@LmD"<K+c1gOt!R`&lTd1)_'4Y/C 30.330 + Mhoni%'CWt-LS*$Rm'$5E#F9.R!)I\<.!ZGJ&R.kMD20@Kj<En)2YW>bp_/eT6V.N14EH;> 30.331 + dq'2jT6J=A0JT.`Nt09ZDm'/MF;bo1TT&onX+nU3+.74oo60d`,nZSmDe73D*>+>["U'4Wp 30.332 + n__\$d)RA$7n_l<66SteULeB^+1M2Nn=X%n\,tie8PD)"qQT9s?0N!*P1)DlY5rYe^8^jc= 30.333 + _V[+fM*"9"18:$ho:%j@a#o3j3V%"@13#?a1HMIXL<:DfMC]2@nfm(<N!G;@_Z5K+F;uR'N 30.334 + <D#3K)dthINg49F@^U>;s5LDClX+t-`GT^_N@%D-6jaQ,dXp&1aY1,)a`cZL53X*V)Dl6)A 30.335 + Yq'$)1%dP!Cc9r1`E';H*i\@re?n&gS,p37>h0Zcbj<G=RO/.MH]gP1h&lXZ`Zh6&Lnd1Tk 30.336 + f)H6Q;s-3@[AinAQ"IW?gE<)cdcM3UYs$V"SDQm@-JB!`p2I&Q)$O+Q+[WXNtn5^TEKR,ft 30.337 + h!Z+J+_b05Z/j_?`dk*QFaZ22):XoD@#brj]$S#"&0U);dnjuJ'Fsj/GO0k.4U=c*<mO2\3 30.338 + CQu(teAh#-@!<;5-?UXY',ZMR[o>a=2'NE-U_?`"%OH6X6F,rk-X;J7c@2!A,#n.r'_]>Lq 30.339 + bT.s=4Mb;Zd1+Bdjh]U+gVbUob`'BdV29S<lIC(-6l[1&<&C4-.QNK8^0GATN#N\,@t1AeN 30.340 + b5:'3-.U5A*5-;RUgZ#?kRI;9+;o-dEj6auOSq+uQSHo2%Htn2I7uG!Z^H5u1j>;.%f04k7 30.341 + n)APZT@">s3:7RH'<_0]Df:L$o@3PnrEL-[e^;+C.a=;F,3(.)@CKi$<V0XBRmQ&m86n/u@ 30.342 + g<3gm+[9QO\)eFUA.b2H\L6XiBUKldsQLfZ3WF]ZARqA[`*Y^L=[4ibgUIiuOT]2>`p'jRD 30.343 + KHq;d+dGJj+q&%L1*X/U+t7s`PJ/J%_dlfkCt?l`(.g=t%l@<a2jRG5ZFOI36V\gE<)lsBp 30.344 + )G8)jIfM;LK:<I5QPbs(me9L-]$_TVP.]jD/iPA/Hn7]nuYe*r+0E6CdO8#QI0bT2fjS>c& 30.345 + (NAYa5eTd-q_!D:>J%#^oIA_eMLcBXG]4pDbO%rW!_ME$U3X(?QkY?;`TLEgLcdLu:2c$ms 30.346 + SZ0t2rf2^"ePqe>_pUBJ&Hei,$5a`FqlHIo;K2Us%W6n&h,FXUB]U,")14"/]23sIWhGBJ* 30.347 + Qs&umn+ZArm(:.g9dsc3p+Yt99jJlH$A0JGP@WrW:(XHhSS>DqpIC?\)28=N2"+<K`<u/hX 30.348 + 9MKjN-\@^9HW+o/cN?U;:Hb&ZI:FdXGO&Z2c%L0E@?oh,64,G+i$)7YJ<umR0/[pi&2dJ1E 30.349 + ms>FiSfOBpP0SWKD6C2[f:R7Af;F4@\R@dJi/)r?\.r+Jh2n5\>+p^d=V"C2`BDf2jo2k_h 30.350 + :"WL)5Ds+qKH>0n*2A.9O/4p)5/r]k/I:NBqoNP45.^"b).gN+=)\="Ym[1Q$GSO40RpEbQ 30.351 + [5[inhb=OKWjfS22Lcl_NJ?:&u^R*&Z9'PV=IF4\`=FYk:CE(=N6DZY?NajYc"7uY<8@X+% 30.352 + f\Li*ZRu_fd=.'#R).Q1(WgXWTU"Kr(=VH`=4cu!uKu+RBq*^UF+\QkEI#85pLVI<_ckPT0 30.353 + B`c&;oL"E/7@JEJQY5iUQ"a7j:*TE;M3Ein<,ieDAXo13:YBELq.q2*]hqdnRe[bKJd6POM 30.354 + (ujdG(M#X62uVTE&Y9-R2N"Jg$U%E]Kc30Mq2I1q+I@U'Hl*&,MDsDRMT$#_,iY9-$db1)D 30.355 + dHd3q&D*=EdD?\2d[egS!3^R3HuGe$`,Zm?0dAL#Z[=U&RdD!F]"./]W/\K2bf:>bZjN:3^ 30.356 + @mqK,XsH%291,8Ib_(q--,:R^"%+^/2j(Ss";Q(qN`Wm`[\Y!3r5Tl$!iUfe;*RH'*,&gu. 30.357 + (<XFio\N*ZA-?<Tr6Wb*7R=Cmhc^:S^Dh8.X"<hEhnj,=uL&.!kqT#SeSZSWAXl:ZT(QjbF 30.358 + JWH8'Z.g?<n^f\Q4_2,iAGEL7j3skL#HZPK9H)BBiZF3QaaobWTE9\AA0E@q'<\'2PPH/e6 30.359 + JJpBSZisIY]W=$D\GgV(+8tuZ5\;'&Mosa6(LMiQP-Kg>Ap)N0IT!n;mrbTe6-!rmpNY)-7 30.360 + 5Fk>/b0t6<hT%'`&(XBXf8]j-\gH]KnEfRCbi>V4j9-\Q`j;5u)k2)nMaL0fuXURs6=8ICM 30.361 + B9^X3"jBeQuj$(["bP+$q,4:aD3^LN\LA)%%#*$Z60!kGR%OHZH$g:rt7g;*SDq;UeV:hc3 30.362 + M-,c<H'6J`0QIfZt&S4'aZ37):(48FD[f62566^hnddN+I=g=Je`8#j`&Hfft-,=\.\FSXa 30.363 + dMPqNZX4@^[l<uJY?At91Wc'NaOC%.q3f9L.=rHi3?3[q*5`7KL6:8K+C#8Z)d7`9jS@T][ 30.364 + 921PQlXA;S]fOYbZsV_&A+u"JX3gLX4o>5j&K9[Jl5Zpjh1hA`jsI/Xhg@%7m-Ck*?tj&pV 30.365 + f6JX1U78$X6#i#+u;LIs5#urAW+bi3V6*[+scZ\gtVq-.SPj"T6?']Za=PO'*K./0%!]*:$ 30.366 + [SD:b>*"$L%hI/VM6>M%Q%W`D3]SVu0,QK>bVX*7,Aie,JrRC9m3a.%Frh5T.7[c'=t1]8o 30.367 + EGd5nl\Y;D8gACX!4iuMcf%L"POSrbEIG(hFcbs+3JmIKq*V.VVglU@Nesp%'=]`mo>Me#+ 30.368 + i'%\1%):\UV;L&b,%*k!*[BZN-fU^Jinc?K*])h_2rgJkj5*#]*^f!p8*$77jPE\o*`M0,= 30.369 + 66#Xin\Q/h:(=HBBGd#F6oA7SL]=/\_:8K)ub?N*eWZ_LZSXg^Rf6**g4-!(5b9pkanF3*i 30.370 + &!tMr("GeUEeL*jWU'R"X:+0d)>>*lI>Na6]D@m,$(U*n0L_fBo0amG?ag*olZpkO+r-mb[ 30.371 + F$*mOj/p&TX>mlpd@*s;"=fFgCVdFlS+?PDs'"m^t)ek:$$+!^.2l10cs*a^N#?SWfkS+DS 30.372 + 7kl2Ik+%#EMbfujN\Q&rtIWpmT-l/FZAUPE3!AX:ICZ'"@oD_8R+*+?q)M7u1[i\chT3b>F 30.373 + /-Fde,QJ5J"D#FMDtdV.q9!:CLaVr?DtkE-_P+gC"%WD97M^Kcq0loNs24bA7UM2Lh>Akt> 30.374 + VYoD>qs*K^u5V!!a'akXo&)*Q2eo)+7c<M.G=P^g*-OsJO&.T=>V'2$&(_)OP"Y=+VBPtQB 30.375 + =uH?83:A7cJF?oR9(LO\"D>Bf'F!(^*Ieo%>;&@540Di6<^XVD+=,9dc.Xo_sD-Thss;=u@ 30.376 + @`8Yo>LPhL7DTi%dglBPP\?EmY8<pPj6omQ^GHs#7V>;_E0qmBO5[G#"Pi@-?`mFPN`<G=F 30.377 + N`nhMIo`^D-]jSV^S2L<Y5asU7F/65l+d'lWnsNak?SRtnB(MGGp4#B%d7<NklXcg7p!m4t 30.378 + :V15!6#[(aY+#k8is0tdAkcLb-0TQhh<+6Pg#!=&alRR=SDJHSU!`+HqOLs"%nih+=`mMGA 30.379 + Zir&JaBh!Y8/L*HJNl3c_#/LiP1l_IZ;[_ZEqN`A%s,CoD\eU0GF`n5d3'U">[.&`3HqWl0 30.380 + em8XaA@a,n$3e"KHB4E:q*u.9d?I:QYSh6cr'oS3N,m<u+60FC,kS0pH;h7];7]I]X0&<jB 30.381 + M;$n/X&c)b`T_eDe++s_bfQOu18*1kU#.>1N^`DVr(/5%bJ[k:=ZoY3"K%7@ZI/M@1[+?"6 30.382 + S0eapE1/T;kW);/-!7S<E&K$_]jG6Eb7'/XL1_g6^:p`(j6r>BA`9j/Alb:t@mh@71_Xp_N 30.383 + 2kr0g%S>-U`:,Q^1qEuX,;]Qo<)keU=&r>/F^E>5%rq0H/Fi)Pp/6^c/Qa.&au#,ViN7l2a 30.384 + e4?K#TiXZ8t<Eam@S&q2O11T>.18<pK"=H+UQS;%4`UU(&IZ4d,qa^@bi.-;g);X]D#rAf9 30.385 + PNF?FR?2HpDd^nC5[eo[.SO<s72r,0s946Ou.VeRFB&FkjuC%"7`)@^rj"N+4iqZ[L`6ol! 30.386 + CZ%_ZtBf9A:dPUsme`W/qN1!Q()\Wj8*"1b`B!bXDN+I%F;n/%a1)9L@%;)Vl:;r`1)Q_nK 30.387 + .G+YVgES`o9A2VWH?/.7foO7r,nOp).>7qC2;eL:!6u='\f9\s<k2)%T6Y>MjQ\VI+4DuZ> 30.388 + H+l/5<rPC(3NtQ'&c=PHGJuM$TuM)bG9=nH1ZkMSff/o6JSR4k$I[&T)DDSA,B$%OoVCA>_ 30.389 + 3j%[:/-XpG'jFf!k2eo%/mF?ghu;L'>0AFhY;brSe49J#lZapM"+T>-0BKeGG")F0,?W)C7 30.390 + Mrbo$h1T[t\0WT>)sQLKYeVpYk*RZ^o?X%ASFl:Smi85F:R0I]CGf7pjfeYr1$VOPN*N"n& 30.391 + !*/HK3^LjZ"l^-6\8qd4^DJe1BX5r^:s87VElm"'&[2R(;,dY\:6L&me5i<`L(#pV,UBu&m 30.392 + J"eg#kL(M?B2"e)T(=Lu9:iX^qk;K&fe3AUu&X3^f:>VXB^k&X7.`0hN'4Q&ZM@i9W6&5*_ 30.393 + TAp#R7IZRmLk8(sA7&>5TSu49P4E'dbDK/o2+G+/)c<D1HI(u/]p2\8,IC`#i[R)\(l\l36 30.394 + ICLLU,PV'#pEh9LH6$a*&8b?aT)Di<C5D26kBSL7kC!fNqt!9aT3$<r(N4cL/CQ'8L[;RPX 30.395 + 3Su3CBb/Wm,=Q!tTP7"EdocLqI8^Z'nJ0.8;I,oY6b,"J//_2%F/5*Kfi><<kOOpI-(JQEg 30.396 + -<a7Z,KAe`jd'4u)UZ`mOC@f1PX/^-i;=u7T^klJ,eh+\bE+/IuJPKK=j:!)W_B=.DfEtPF 30.397 + g\W76_9KcCK^4@Y^^HkkQ[K$s"GY>$t0.4^LU(g(R4SW["LU?&umV->?auGsrocKju8mBP/ 30.398 + T/ER<-`%NSPqeWpXf'so3jLe;.e1hZA>fSa?uhf6`E,AS<@+4e2MY2AM,A"F7o^5elc1s\[ 30.399 + "5&L0QSp.XU9JJ(%!?I'kXRJ]"",>ni9ROAs^T]@koL%]apC(_2QOi<@JXhWli2[<SH\CCU 30.400 + J@Ont?;^)-9%8,0qgU3l)DYDdc\;<LrdaL/]Ym@r-:KZ4\LfUSN*'.V)XbTp!Y4KfULG4`@ 30.401 + 7k?D+Z^k@AEeVmR;9`)Nc6=_ID?=p"u^-X[AXXShISFsbU=]1Gid<PQ$[#2p9.=V\$O)C?) 30.402 + %Ejb5$F)H-H\edj#>s#$.DRJ*.(M<&?1M(atp#!CuL@JS3a`lFk.>rD9oj58`HZ$oQ^')Hd 30.403 + gcObKDmf<coMupT>0(h8Pfb6RLB0o($%[%R#Jh6)"^nt\K5buE_AGcFL7B]?XW-]8\)Rp+] 30.404 + K(_Md^?C/ZDNf_"?:@d-cHq#'k4gYMfEnn`XAgS#+R8`0ZCcD\E=lB]1m9Zjo2@6!0?,<j: 30.405 + O.*8')Vr-"OZVPB(hBar*\uANZrWEjf&m).tO4]XaALp0Z#]LG<C'QsfHU2)s7K*bN(<Rqb 30.406 + ,NVATHej<?aL$da[T)7_D4Cat\=]FW=l#=3#`l!C*e5<=#fJ7'?%Sb(-[9,[=>BC'K.1kq@ 30.407 + G)J2?M@I#DG2BoIEP=Capn0.GP7+,53M/%HAX*&M]c564Cj;f%uobf4.]"JtrSLL"Mf"]iV 30.408 + "o<!Pa,%haG1;sCktYZ\7g*7Q$+i]?$SA=3:"b.DgL05^URA:lIIl)qLN.2iSZsTe4=3-7> 30.409 + \p1+>!q@:h8_Tp&M<-dGH&^=`05.X:&2PJo(Bom\u"["Of5NCNmu*.G@4.D/;X#DhBkmBOT 30.410 + $SI\?=F:=eB$c^&Q,tpE*Q8RcEgf@Ch:b\N*"NPo)\a03$dS0I%Z`1dTPX[YRX(-;TP]c?= 30.411 + 1&l(d,]O+$R/M:$W)J`L&LP&On9apq2T,ojjtF7Qll#Y.qZ"m^GRSGTeerYaquLTu"ZB@:S 30.412 + h`[#r!N:c.med7CT.ilEWG9]?.%,X>r>n=5b^A6Y_7\%r]+R*RAe#iF0m-!2<UN^1Hj#gb? 30.413 + n`F>o&g$`']XO7!#@"N<lMa>d;&J\U$oE8c;i+*>#9mA-+,R.<8pqOiomKAkq!SnibNB?"" 30.414 + QO-A05O+s5JQmj]@$NG:1$,?Qh"[>b5%Zto6t\fo6JO)OrlkVr<^+2KVsWicVQt%B<?i7hj 30.415 + SO\CV;q]+Q9R1S*\!Tb?jYq-QR#nEN[!OHO%ms+6WS?5GP=ORp*/!_`M)@%GTnNe+KUp\$. 30.416 + Q@2KJu2]CJ1EftTM'^<6Yo@#%"J"i$.`^S?3<q_^Un&A]%mR,Y<7RYrm.ZaC0N^_>'[+QPF 30.417 + gq)s(j^f1Sr'GuY<S%4AMMrU,<J;cdeKtX9$#a=uje)ES/JrA[X[YW_+5_=a7.#]+s^po$* 30.418 + A)P.l[^tKj^T1^-,VR%<0T)<bQJ2<r//>cj(;@-lN`-S-^qr+E+GfpTLbmSkH?4p1m>+FZ\ 30.419 + ]BTB0T<QSdg5;!Lr4t'9HT)&i\o"3]M&(3ljl=f&47.'`2$"^MuL@.>!+<f[S):6X=Lt,ho 30.420 + !fs_k<F.r&tEPM*FOq6]d?qLhsfR["pOY#g:hV$rW%ZjG<]p`3`jioO!E%9Fcut3@m#f"7( 30.421 + u[:]iu!`>F?K^kB[Ri]YD*\`?4LFDD.U#/s-#2nWu5bUUP9+ulq][8H$T"EVUOFGNl2/)sF 30.422 + A;hDhr:,cER&.Bci`,J$WC^BB/`$.<5XDnMu\M7cM6pL_Y,\OWOE]Diq7oY5aFC6rd'YNJ5 30.423 + 4S3,Q5laEZN&Gb`6gPc0`!o5\J4Sa<a9r^$Y_'j4KFEfF#kVFoI$_s-kJe(s7O+ci5m,%"N 30.424 + 'MWC5!/%["?<qk5mUFga4-g*."b)jObh56auIbi@#i?NR*(Ym]B#B?I%&*6VScgC3lC!k=H 30.425 + pn^#tYhq8n`jhP\Grd,`3:faqSg9kiKs3M9:dW9;K/0"+\9=Z,8\K6VMbf4F.PYSB3%+bC$ 30.426 + Qg.#H(lZ,XGq#YYY_`'k"QYDGZg6_(HoXG'",N_?b(bi>Hk_Mc;fF/Sq1b1+3<'ZgX)4%\A 30.427 + D7=;R<*5bKuZV=sY^G)0PBSSU@_8j?_7A,mignb:p%>dI_\eG\!m,QAYJ',"Y9#SHg.-Ea? 30.428 + L<FB]6B#hG.ffp'Zq:..c+&?`A6+L#m5K.OLa/?HAEsn^-\s&83P=d9AG/dZg'De#^!_p:E 30.429 + .fqrgdR<[8*GoG,l>mXF&,3#\$X@IKJ-(p"OL(Sc<05SCl6F.!R3=Q8BO%gTSLeV@`o%/7= 30.430 + ,;9!.n%G_?a]a]#<ti,h30"gou1b#gD9ibi;N*(t"O@aGeKV*7;bX#f1WiNJ/#_AIjT]`tE 30.431 + 3PLc^uu$e<S!_h^/n9ONJ#AL.Uf,ej_#c2@Jn'S;Of/-rp)#fRTBV&3(#0[g[na'a8(*-\u 30.432 + !XNA!7]i#rum#<FRL:4HNL4o='CMC5ML+t7/7>O,k,k<s32pfE_4^7\E9gU$%6O<#4[\Y&G 30.433 + "*ZpT.YsR[e9*kWPeg0@DU:6"`/QM$ohVgZ#**7"^8-ZZh,$/':!nAaeO<NhEo5CYjjbSF; 30.434 + :IJNj]@<J\;6B[e\tkFns.a]j].dS<NK]\4^X&B>mQEr<^gWOEdGt-M*@/]<@q\$]k<1eAJ 30.435 + =Gb<lJt-np=CCjOP:Nf!T#=r*.]O0@aWTf4B-&"`TJjEJWtR<kW]NX@GV="3f;B=64n,/U. 30.436 + aGGmKse=#GJ&!/o:sj]:Jq=Cm5]FY_E.M8Maf$lPV*9oIZCN7c[?f]A.GooIc0OP(A2fd2g 30.437 + 723Z]^PhB'%fk$K&FdLd8R+[amf^3M]I:cT(SCu<S=9.10&;a!M(to^ug*NKI25AkoUlUdo 30.438 + `SH7$h5AtXq,uq9=nmg,%Ad7IXP24,g?#KkmA<HlVco(bgEF[BR+PT@Lg%Kq>@k7tFgp+Z\ 30.439 + <\_N8qjNS/\BcRVUg_G3`R.+Gh/Mc^t][@ga0hm28e3<`8"A3gh"L\FiW9kaP<'&gni0K[E 30.440 + I@EbhUanguZh`["Y8<]\O=MRYo4OCOn'SC"T!)%/$,rA_5ah<nfU]gJ-=ZNRqIDgtgB'>r$ 30.441 + @@auIFaM+csdN4n"Q-0*iJ/_Gd,^[p^H:#"F1kMDKghGrF$SS;DIC0mRJhDO]Wp$\s+hO+! 30.442 + &7*GVf!6AL6oA<R@O$20U(#%PQW8C>Ehkg10A\H::d4L(L$FT]ejo=6=cel]th,WFl#cZ_T 30.443 + "5m2`N0X,H%JX==U0p_%i2-j=ecuWg#[jm/i1:D9p(*$t)W/dYhqenO/e6hu']Dl]?<uLI/ 30.444 + MuEm'Ae`diMINN4q%l!%:QYe:duJap)f/%*";N]@Ka5MSg*/`,`(k3%.5<K:krIK-fUF2?l 30.445 + eB:/a$T7*`q2LioVkL/g_"d7gQmlj!HPA2DaA_1uhUoj(:40FuSH939-;bj/+lt[QENh4QG 30.446 + !Uj5rPcp-7UB5i`\Hj8^K:2BLlO7,m>_%,N^CQ:L"j8E?(.jJAY/[RF`H+66hSA9LT+p.sc 30.447 + S:urHij@2i)2BZFD_+#>RAL:I>G$!d[=P>Z+jZZl,8K8L;h&XmRQ'pS9i6p`l@-/55jsFR" 30.448 + 2Ikl=AEHp(T1F.fG%]rlB]bUpk,)nU[VP$FD!';ck2pRDp2B*uE9A!Vk9b642KS%NFQZ\Ik 30.449 + @So#G&EU@A`oA)kGERg[X72WI-9(/kN76Vp4)91JERc"kU(oF2M:3_K]lHjk[oS5G),:9M! 30.450 + 1.]kba7$[Ys@hN9JiPkiRogkdG'mA;?b=LR++(&[;Sl?YNBr$YG]_%[H:5Q"bE-l&M4op6k 30.451 + 0RRq\IUC!N,\fRE)QR-DV`l!C"I#,2@bUM<8jBr7`kAtS?pV.t1Ll#s&kVOd"4W+qotl?9. 30.452 + A-Eh10VX!TOCAtMS%\@GWXD15/CL4%+hQpqa[VIM#CHf4CSuuk3U[([fCQ>o?^6e/7[;5cQ 30.453 + CMq"**jfYl\SP$QCX0k6m_N\aX)(h*m%0a5k/6Nib\PeNljh5'f"Z$-_efn0Co5QqI`H9U` 30.454 + pD!rCYm'J51aTla_`r0D4])@(>%rfg2)M\m7,LjL>-PlbAI76D=5j>hUq2_iU,4SmKV5/k2 30.455 + g<3b3j/lmXEsZNnWnZipITBm[if`T%S#Dm-]VuDPkqOY4$9Un8;j4m`+AVG4TX,ennIYl%% 30.456 + ?@#Q~>Q 30.457 +Q 30.458 +showpage 30.459 +%%Trailer 30.460 +count op_count sub {pop} repeat 30.461 +countdictstack dict_count sub {end} repeat 30.462 +cairo_eps_state restore 30.463 +%%EOF
31.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 31.2 +++ b/0__Papers/PRT/PRT__formal_def/figures/Scheduling_states_2.svg Sat Aug 03 19:24:22 2013 -0700 31.3 @@ -0,0 +1,210 @@ 31.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 31.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 31.6 + 31.7 +<svg 31.8 + xmlns:dc="http://purl.org/dc/elements/1.1/" 31.9 + xmlns:cc="http://creativecommons.org/ns#" 31.10 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 31.11 + xmlns:svg="http://www.w3.org/2000/svg" 31.12 + xmlns="http://www.w3.org/2000/svg" 31.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 31.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 31.15 + width="744.09448819" 31.16 + height="1052.3622047" 31.17 + id="svg2" 31.18 + sodipodi:version="0.32" 31.19 + inkscape:version="0.47 r22583" 31.20 + sodipodi:docname="Scheduling_states.svg" 31.21 + inkscape:output_extension="org.inkscape.output.svg.inkscape" 31.22 + version="1.1"> 31.23 + <defs 31.24 + id="defs4"> 31.25 + <marker 31.26 + inkscape:stockid="Arrow2Mend" 31.27 + orient="auto" 31.28 + refY="0.0" 31.29 + refX="0.0" 31.30 + id="Arrow2Mend" 31.31 + style="overflow:visible;"> 31.32 + <path 31.33 + id="path4008" 31.34 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 31.35 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 31.36 + transform="scale(0.6) rotate(180) translate(0,0)" /> 31.37 + </marker> 31.38 + <inkscape:perspective 31.39 + sodipodi:type="inkscape:persp3d" 31.40 + inkscape:vp_x="0 : 526.18109 : 1" 31.41 + inkscape:vp_y="0 : 1000 : 0" 31.42 + inkscape:vp_z="744.09448 : 526.18109 : 1" 31.43 + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" 31.44 + id="perspective10" /> 31.45 + </defs> 31.46 + <sodipodi:namedview 31.47 + id="base" 31.48 + pagecolor="#ffffff" 31.49 + bordercolor="#666666" 31.50 + borderopacity="1.0" 31.51 + gridtolerance="10000" 31.52 + guidetolerance="10" 31.53 + objecttolerance="10" 31.54 + inkscape:pageopacity="0.0" 31.55 + inkscape:pageshadow="2" 31.56 + inkscape:zoom="1.7990428" 31.57 + inkscape:cx="380.09076" 31.58 + inkscape:cy="756.04202" 31.59 + inkscape:document-units="px" 31.60 + inkscape:current-layer="g3898" 31.61 + showgrid="false" 31.62 + inkscape:window-width="760" 31.63 + inkscape:window-height="1141" 31.64 + inkscape:window-x="889" 31.65 + inkscape:window-y="6" 31.66 + inkscape:window-maximized="0" /> 31.67 + <metadata 31.68 + id="metadata7"> 31.69 + <rdf:RDF> 31.70 + <cc:Work 31.71 + rdf:about=""> 31.72 + <dc:format>image/svg+xml</dc:format> 31.73 + <dc:type 31.74 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 31.75 + <dc:title></dc:title> 31.76 + </cc:Work> 31.77 + </rdf:RDF> 31.78 + </metadata> 31.79 + <g 31.80 + inkscape:label="Layer 1" 31.81 + inkscape:groupmode="layer" 31.82 + id="layer1"> 31.83 + <rect 31.84 + style="opacity:0.44897958;fill:none;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.39999999, 0.10000001;stroke-dashoffset:0" 31.85 + id="rect4618" 31.86 + width="245.17555" 31.87 + height="96.120583" 31.88 + x="248.82765" 31.89 + y="196.71402" /> 31.90 + <g 31.91 + id="g6133"> 31.92 + <rect 31.93 + y="223.7659" 31.94 + x="346.78796" 31.95 + height="19.030159" 31.96 + width="51.619602" 31.97 + id="rect6089" 31.98 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0.60163802" /> 31.99 + <text 31.100 + sodipodi:linespacing="100%" 31.101 + id="text6091" 31.102 + y="236.91867" 31.103 + x="355.0636" 31.104 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 31.105 + xml:space="preserve"><tspan 31.106 + y="236.91867" 31.107 + x="355.0636" 31.108 + id="tspan6093" 31.109 + sodipodi:role="line">Blocked</tspan></text> 31.110 + </g> 31.111 + <g 31.112 + id="g6138"> 31.113 + <rect 31.114 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0.60163802" 31.115 + id="rect6095" 31.116 + width="51.619602" 31.117 + height="19.030159" 31.118 + x="426.78796" 31.119 + y="223.7659" /> 31.120 + <text 31.121 + xml:space="preserve" 31.122 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 31.123 + x="438.72571" 31.124 + y="235.94211" 31.125 + id="text6097" 31.126 + sodipodi:linespacing="100%"><tspan 31.127 + sodipodi:role="line" 31.128 + id="tspan6099" 31.129 + x="438.72571" 31.130 + y="235.94211">Ready</tspan></text> 31.131 + </g> 31.132 + <path 31.133 + id="path6155" 31.134 + d="m 322.39366,234.14931 c 15.56383,0 24.45745,0 24.45745,0" 31.135 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" 31.136 + sodipodi:nodetypes="cc" /> 31.137 + <path 31.138 + sodipodi:nodetypes="cssc" 31.139 + id="path6157" 31.140 + d="m 479.14368,233.03761 c 10.00531,0 15.54343,-13.29992 3.3351,-21.12234 -25.62918,-16.42178 -194.34421,-13.27617 -221.31651,0.3335 -14.692,7.41328 -15.07228,19.58187 -2.13564,20.78884" 31.141 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" /> 31.142 + <path 31.143 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" 31.144 + d="m 399.05855,234.14931 c 27.79256,0 27.79256,0 27.79256,0" 31.145 + id="path6527" /> 31.146 + <g 31.147 + id="g3898" 31.148 + transform="translate(0,0.4467926)"> 31.149 + <text 31.150 + xml:space="preserve" 31.151 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 31.152 + x="267.54309" 31.153 + y="254.91867" 31.154 + id="text6077" 31.155 + sodipodi:linespacing="100%"><tspan 31.156 + sodipodi:role="line" 31.157 + id="tspan6079" 31.158 + x="267.54309" 31.159 + y="254.91867">Progressing</tspan></text> 31.160 + <rect 31.161 + y="271.7659" 31.162 + x="267.2655" 31.163 + height="11.804094" 31.164 + width="51.619602" 31.165 + id="rect6145" 31.166 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0.60163802" /> 31.167 + <text 31.168 + sodipodi:linespacing="100%" 31.169 + id="text6147" 31.170 + y="280.90646" 31.171 + x="277.74329" 31.172 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 31.173 + xml:space="preserve"><tspan 31.174 + y="280.90646" 31.175 + x="277.74329" 31.176 + id="tspan6149" 31.177 + sodipodi:role="line">Stalled</tspan></text> 31.178 + <path 31.179 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" 31.180 + d="m 283.06571,260.15959 c 0,10.07749 0,10.07749 0,10.07749" 31.181 + id="path6153" /> 31.182 + <path 31.183 + id="path6713" 31.184 + d="m 303.08493,271.76394 c 0,-11.10513 0,-11.10513 0,-11.10513" 31.185 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" /> 31.186 + <rect 31.187 + y="223.31911" 31.188 + x="262.8187" 31.189 + height="66.833359" 31.190 + width="60.513218" 31.191 + id="rect3890" 31.192 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0.60163802" /> 31.193 + <text 31.194 + sodipodi:linespacing="100%" 31.195 + id="text3892" 31.196 + y="236.91867" 31.197 + x="272.02063" 31.198 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 31.199 + xml:space="preserve"><tspan 31.200 + y="236.91867" 31.201 + x="272.02063" 31.202 + id="tspan3894" 31.203 + sodipodi:role="line">Animated</tspan></text> 31.204 + <rect 31.205 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0.60163802" 31.206 + id="rect3896" 31.207 + width="51.619602" 31.208 + height="12.915796" 31.209 + x="267.2655" 31.210 + y="246.54515" /> 31.211 + </g> 31.212 + </g> 31.213 +</svg>
32.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 32.2 +++ b/0__Papers/PRT/PRT__formal_def/figures/Time_in_VMS_1.eps Sat Aug 03 19:24:22 2013 -0700 32.3 @@ -0,0 +1,943 @@ 32.4 +%!PS-Adobe-3.0 EPSF-3.0 32.5 +%%Creator: cairo 1.8.6 (http://cairographics.org) 32.6 +%%CreationDate: Sun Nov 21 13:32:58 2010 32.7 +%%Pages: 1 32.8 +%%BoundingBox: 0 0 330 127 32.9 +%%DocumentData: Clean7Bit 32.10 +%%LanguageLevel: 2 32.11 +%%EndComments 32.12 +%%BeginProlog 32.13 +/cairo_eps_state save def 32.14 +/dict_count countdictstack def 32.15 +/op_count count 1 sub def 32.16 +userdict begin 32.17 +/q { gsave } bind def 32.18 +/Q { grestore } bind def 32.19 +/cm { 6 array astore concat } bind def 32.20 +/w { setlinewidth } bind def 32.21 +/J { setlinecap } bind def 32.22 +/j { setlinejoin } bind def 32.23 +/M { setmiterlimit } bind def 32.24 +/d { setdash } bind def 32.25 +/m { moveto } bind def 32.26 +/l { lineto } bind def 32.27 +/c { curveto } bind def 32.28 +/h { closepath } bind def 32.29 +/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto 32.30 + 0 exch rlineto 0 rlineto closepath } bind def 32.31 +/S { stroke } bind def 32.32 +/f { fill } bind def 32.33 +/f* { eofill } bind def 32.34 +/B { fill stroke } bind def 32.35 +/B* { eofill stroke } bind def 32.36 +/n { newpath } bind def 32.37 +/W { clip } bind def 32.38 +/W* { eoclip } bind def 32.39 +/BT { } bind def 32.40 +/ET { } bind def 32.41 +/pdfmark where { pop globaldict /?pdfmark /exec load put } 32.42 + { globaldict begin /?pdfmark /pop load def /pdfmark 32.43 + /cleartomark load def end } ifelse 32.44 +/BDC { mark 3 1 roll /BDC pdfmark } bind def 32.45 +/EMC { mark /EMC pdfmark } bind def 32.46 +/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def 32.47 +/Tj { show currentpoint cairo_store_point } bind def 32.48 +/TJ { 32.49 + { 32.50 + dup 32.51 + type /stringtype eq 32.52 + { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse 32.53 + } forall 32.54 + currentpoint cairo_store_point 32.55 +} bind def 32.56 +/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore 32.57 + cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def 32.58 +/Tf { pop /cairo_font exch def /cairo_font_matrix where 32.59 + { pop cairo_selectfont } if } bind def 32.60 +/Td { matrix translate cairo_font_matrix matrix concatmatrix dup 32.61 + /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point 32.62 + /cairo_font where { pop cairo_selectfont } if } bind def 32.63 +/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def 32.64 + cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def 32.65 +/g { setgray } bind def 32.66 +/rg { setrgbcolor } bind def 32.67 +/d1 { setcachedevice } bind def 32.68 +%%EndProlog 32.69 +%%Page: 1 1 32.70 +%%BeginPageSetup 32.71 +%%PageBoundingBox: 0 0 330 127 32.72 +%%EndPageSetup 32.73 +q 32.74 +Q q 32.75 +q 0 0 331 127 rectclip 32.76 +% Fallback Image: x=0, y=0, w=329, h=125 res=300dpi size=2165625 32.77 +[ 0.24 0 0 0.24 0 0.991089 ] concat 32.78 +/DeviceRGB setcolorspace 32.79 +8 dict dup begin 32.80 + /ImageType 1 def 32.81 + /Width 1375 def 32.82 + /Height 525 def 32.83 + /BitsPerComponent 8 def 32.84 + /Decode [ 0 1 0 1 0 1 ] def 32.85 + /DataSource currentfile /ASCII85Decode filter /LZWDecode filter def 32.86 + /ImageMatrix [ 1 0 0 -1 0 525 ] def 32.87 +end 32.88 +image 32.89 +J3I@:BHu(:pOk^R:T.dk*=mro@So+\<\5,H7Uo<*jE<[.O@Wn[3@'nb-^757;Rp>H>q_R=Al 32.90 + C^cenm@9:1mM9jS"!dTMT<$3[GQ$8#0$s<4ZX!SPQ1`C/m<k<ioH)<bk^Hj`\=EYZP^B4!g 32.91 + 3;'o"oFO(X`dh"8*[iD5A+f'R[o?>ioWjnAY&^gM+`4=1jRLW!YA=M/6)*KS9PE`kN%="Tc 32.92 + _Aoh+fk'&t\ctIN)4XQLiVpoI(>.nOW?*DmsG$@,,f58"PDKf<uk4a;=i,EpG4sq/+a5h8d 32.93 + >eAJlo*B]ZT!'31_l[h@F?.u;GBO/Fms$q.0(\8JhnaScr]a26g[)`OH[c!ea5-IbHN.>J^ 32.94 + &uma4O=2qs$*R]rqo%N,N/ekE&6SU_%/pY#XOP%r<0s`>VcdTn?Vp$6h#Hs$,(:o3t4UJ1d 32.95 + _,U&KE;87<)6$&4UXR>8tG!P4okbE:do]7$5Dp*BCCsHPf9CjGP9SnfmZ1_N<P!(W<VLV's 32.96 + ;<['M)NEcU[r8b'0?1!"Cb@l$\47%5DoZW,[19_.8^3D8sSk:fZ;U@13?EtkSs9(MWO4YG4 32.97 + F$U78RFTXQtoORPZ;"=bh1/W+Gdn<DW`8=*<Zo'p,;=t(t:+\<q912Ep<4>aKPr2cC;DiIe 32.98 + =]UeUj&Ji3AS5+DoHeiff@<$:=41&B!EIOt*KsUYFo?So=&oL$B%e#sM.tF<D6m'kFksZG= 32.99 + uLf4CKoB/ED,(FrP`g5G;KJD?.$pUG2AN9::[qD>26Ti%akKdi"uq-J`)nJ%>3UV:)/KAQu 32.100 + 3q"iY[\%M;jo*/W8X+c8CUAR-m+uj;AFrOfAd`n:WD!U$%]D85^LXAf6I&RHBp?D4'K(L2E 32.101 + LD\^#SOB:9<[SS1%?LS/=k^5o"&3Mqk7kIM_.VeLHHVl/fmm]ihX]$@^_CHC=GWp8=[_6.G 32.102 + Ip;s^Yq_lp-laqo/ZtJ-*Qb..IQLh\)\o,L%Dn8]q]k9FI$c6e.G5&spqr\X.EVpUTU@<PR 32.103 + A]/We[i<>"*&ft'F*r`Zd<%L:n'Gma-U5juI-3<;Bq:#`eTLhgA(u0T2b2\G]Va`?F5=$Fa 32.104 + S4O<Kus,g5Cq=/4n"TjpqDNUjCat^LZ*PCVN'tW?8nqBp0MZ9lhTE;^$Yasn#bsN5A.7crA 32.105 + p#"Wd]5c/+EA*8)Noa?g#T.+'\5aDup!QVmuYsli_a@$3J#!)Z:dP#(E\'$,@AU"^jG(Ja_ 32.106 + :]4,:cLTH"St0KKBRGU!M<*#aL7.MK[t;[4G_b'spRejB-\$Xn]JL@Adp_74[ri=nJ-d';? 32.107 + >8:_*l/+/6J1*a["QO0C67#A/A.DtpsrS[;CL9X2j^,VAoU1@>\O]jA*LoV*Hll_7l3\Wu. 32.108 + gD$Cs0o&V8,=2&86dB[m3_Z@5(7&DoU]c71;@Z#a=UcP87#@%(/k/Cb*@'WuOciU;8kE/;- 32.109 + 03"4P>Z9n8_H6SjTM9A;N=XI=\U@,7&cGLY#\0J>q>#iZ'J;5>"`"8/`jp]QW!6X9A+_Hjo 32.110 + iMf;\!81=cG/u7*1iq/nRf1SMTD]d@+!/C/%j52<Mi1Ar?r&ZI///fqAA8;iYln=j8ti7-U 32.111 + 7@Y'*Rnh)jeQnX`\)H;@]24m0cZT2V*W:YG\2VqhBH<"=LV=q*d]71#Ye/r!3V*CK%E&Y`6 32.112 + "MGF!I7HgikUJu,k;;+0'kli6+<0!,>>"qTQ74G'4Y*Mu>>ta@_(SC?:RT!C,:$KVWVc<)U 32.113 + ;qcXq.?sn2oa[]q>)b^V#nJY"XQ^N]^s)#qefFn8WWn?_:hT!NX&Vu!<@X&2lNHIQ!!9CU> 32.114 + 0U497.@3VEiTD%a&[k)>cZDP\l7n7?#.E)Y>t#)=5*U[lihs1<N`@PHEg^*Ok-a;/s"V2). 32.115 + W#eOg8"_H<<IE>AJXkWg1lP=kXU#XS&9o<J%$.lBX_,2,5=DL5HEJ>SCt.A%#>0[b<f[6#? 32.116 + e7[oVq1>2c/k!c>9P<n?,4>%:Sc29EC10'6EnSTF&'^:4sdZ.r!GF03^=]2rn<?$iDaDP]Y 32.117 + 1f661[S&osE7.@RYmaI53R`hg=:nf23qHb,>.IY7?\Q>6u?ebNCn"ApZf*_E_HiJ";jp/_) 32.118 + 0*Yh>*J<RY!Pim)!oXM7JoJ.9_cUg_hcqO2n?*b9G[h=p>:"UUdF'/u,,^LU,UTdM1:S+rF 32.119 + &a`=N!.M\a&neM@SD'.mTqlm<l5hN>]"8]`]>&!!l3j_R?R2r;9E$:ULYi-N9tdG3nW=,A? 32.120 + ;b9Ectg6=cW_tC&aJ'L0>W9Eua5Qa]Yq[DpD>F'G.:4C2\Y"[?O"_NZA"fm$;Y<)@j+:h#F 32.121 + '&mE!Zn01KX2*MW0[iR.>i6"rJ6V<c]pdhUn8l+K5J1T:)oj4;anX6#s1<M.etb7%B%$YCg 32.122 + #E#AGsMcGaBIPlfYXgf03Bdr_E/tEdhRh&h=H.u$#m,Q?VA4C*4o5C[a6OC9_?Kp91[HTU# 32.123 + \Fg)Ddj`bJ`BLi)g<3YplGpCn'st!q(LM"VOc21,s4CcOG&(7\Z=arrYk;dE:Q;&K[[,Fhg 32.124 + M:VE?4FaG7=!gT_hI1=d:&sPj;@dJR;i#Y7J5L3h]'(=@u]M5\"<9Je6e4(We4P8m.B2p1P 32.125 + "KpX/bqj1$2HeL%.bi4ZIH4ebhdSeZEK&q&Mc\eB<f.IQ,$NGad[apQ4pINB9$f`oPXmP\$ 32.126 + 9Ob5#_>jnj+ep"BqTFWRC*F?akt$TUM_D_N:.#Gp6La#Y^mD8+P@HL2\:7IeDpUA,N+pNcX 32.127 + lB:e_`f#t7A>!L\e4h0lag6p5mfm#1mDk-dHaC5)44Zg-*!$13Edk:HF4<K*F?45##cOK.; 32.128 + 8#c/\Mo8`$($W,=Mk"*;i8HmH5:X]o]KTYIq4@oT-Wco2reC?s+%b^B^T70;/r'5MiS$G\a 32.129 + 8/!K&,UXqjZTekpQNeXGOL)b]ALNphMQN)J!!RABBbsGXQN=+$.uXK&+@+<@F1UplmEQ\TA 32.130 + P`[h=-m5O)Va(XQ;(c^4CV2mb7a#HCaMb\.BAE+o]SZbc<5#r!R&U$j)sEIa_*8fP[Xg9Y? 32.131 + msPkRekrD61\Ds#nPlCeaVgW@V<:B($faT'TeqWb;eYR&#u'`g!!!K]F9YT3`5+TbJhi\2k 32.132 + M$YKPLklXXm",Yb6?i[>@6Ca-,nun5[n?E?T[0mODj:G@bOBW(]?H+Y8^rab(OC\L=M#_Fp 32.133 + S<.jo&?GjC'aMPLT?r0+Y_L1pTWSjUWt:L90UN^HS=MA.":X)nN-,8b[h3TsSM7Y>OM7B,_ 32.134 + XXVO"onZ'OO4K_K*LhtbqC(;d,=dMr=3d.%^:Jl&0CMl&0!>2&Wljf0`M\=#+Z?1$>INfYs 32.135 + f'u)YHk@[1,[Q0#jU-V!YDT&l57j:[fImSA6jr#n`>kN$R!%<1M8i\.CFjd#+IB#cqtNSM1 32.136 + cQ;)Js35n'aM)DRj#ER:5<LCQ%rTM['7$-*p!ko$ZP)!TEfc79fIb8REi)X62f&[n_P\t'G 32.137 + J*/W8ZnLk>#f,kTI*ASWYnfZ4tf,#P1*NAWNl2)4ci?%OP&Fq\'.H;S.rrNMI++Th&d-.?) 32.138 + !iRjYSFR#Zn7j'9&LJsO,Z6QF12un!-JD<g,4Y%6ER,M#Ii4D4):2W[&o=2G8=WRP,nWcr: 32.139 + tm$H"Y(tQ-1CRO8]`<"YamP5"L<(6d<`LMn=/b'`QBV*O)hZ;$Rp"j-o$i4ntbJHoUa>E+V 32.140 + K*kDRUQ_W1FE_"7]Y$dbQ.,"QKik.uZUB;[V\#Ik1#p/II*>'%\aS)(+r&,RMQIo-H+i!hE 32.141 + 6V#H>m".JkEjfe9I;#kK](EBc-u&.K9^2+d`Bdb?Af))cPM2QRoRc)!0KSt7\l/'nA?1Nt4 32.142 + q2]P+YVGciP;a:<r7%JBj#h&`0o7o1Wf/8bg0U&H,DJM/Z[*Wl5b4=&s'%nN$I5d4^1D>A4 32.143 + ''gNOs#B!;3AZtl;jumUT.Vp1S[(ZS;suFsYr*3'dF,nFo#T>/bbL=4XE3&Hnf$^JlOqJ)T 32.144 + 5GH*0_h0D&OF^m2lY6+P+`Q<pGt,,rDX-)'Fs`@q)@hd6'3@_oH)q390R(/6>?))e1@.)0V 32.145 + \0r4B+C3oPmAORmZIn6o"!pPXuLEbs]AC6Bm$WoMmonbsg*85."dhP\-Q[CFI[G7oZS;P^, 32.146 + 7;4Z5-t5no"]@5Oi\)b'Bh8HH^^e<`<s.5Oqo9XCEV[%f9R2"ibe9'jXK/6'Ssm_u1t#B8] 32.147 + Qn\[aolTUGR40g@O'Xpi$lVUMS$)u/8YKjRuK2$Hu9BjP*'>mXH(J`>b:XU[g'.Z1_)!t<4 32.148 + ,1RQ/eP<Uh*p8e4\5an3ePB).0f([;;O'7Col4%_nPdXt.rt_iF_b"k;](c3!Hd!fZkZHG< 32.149 + oWdU\s6W%<C35+B0>e-:j$nam!i)oYpP=H8b-W1Q&#aRI7r+-=Z$^eaidQsRi+)rS5lH@[? 32.150 + 4Z%`D73=rY,R4nuYBEpK@1J<=`]UQ.9.4a&hro>a:!k<S"Ts-!dn8@'qk#e`?O+o1E$W@$U 32.151 + [m25+C9dpP%-@J2?X2D&>nVdG^M@e6p7'nKgP<Fp>UVR@jI<,H0Rb5et0<K,7+[QuO1.qD; 32.152 + .5?/#"p,sbr:Ls0'BWN"]o0Zuq;.:;3SP0,qQ>p0\B407YB9mm*p4$h!WD_<&:"G9@PQ*1U 32.153 + pna'27<YY;[^7.L[&>h%-l,`r<Y&l/X)7Rd9")?8f"U9Ib=P`e@.nW3QIef0:Ik-CD"^57c 32.154 + rk/7]0*P;@CC`*2^*3#,bc(K5#u/\G7'kL!reFBDmhH$FkLcCd;]pVBt$TRpEt)7)fi/37@ 32.155 + ,$32b]do2[*8EDRU^,f3`W\Tl1WRFB98s(KA4O_\_qI(b/S.eejtOOUbA)E;*47ePr'AgJ] 32.156 + R(GrL4o2f3^SK'#"SENU+'FFA&rm'[5FH?Ep=f6MA&JU7$XH[":opYg/e@rrNl)pf*\f:-t 32.157 + CT2N.mS<qK(M@X-^`I55UJ?,-V(Ta2E_1+ALG?:JcQ_b0NWCYY,H.V4[3$!On)#]$jrRL83 32.158 + (V>)SefXWg!#&c!F5qDMLCBIt:3RA)<Ijt>!?RR,K20+53%KJMnV"DJEO\pS1JF<Y/P:,SJ 32.159 + =%9spgo2GiI?)hM7B*p3"^MhI%6RLB@nc,R"%FOabY,*I2I$]nYk@Q08Wb'M>5<*pnNQ\N1 32.160 + CfdCDa4GGdE2Zo7`K<Tlq<115gUKf8T%!K7WUl_<lmKaU,;e>m]&2pb@VmQ[VNd+V&skbC* 32.161 + )%m>=eo:,$0S3;%IipsJk0J#UnZ(?^a'07B6FSG=/[Y\(;r,h6#I@ehT!3AH9!2jS`':>%^ 32.162 + \$."hR1OE6IE1$BamX^WHTp9Q`P*Fn)Ohl/8CRJs*QMCu;\0ZOr\!NG$P\Jm>)'P8Gc'!?V 32.163 + -M_"QQa;<)R(HFTO@gXq:$1X,Nj*#qH$R4=fcH^3/LKuE=P*A8)6BAh,ESnX$5pZC)3%7gV 32.164 + &Pf6RX)lBCc.amLRh24SUoajeU<@#kb#EFS[mokq<IL<4cS^`T6>.@nS&q&0:9;^FIEFaG[ 32.165 + 6ZI&Z'eV-UY#,/SCV_ri0-FQ8n&$.PINqfqS4*UGs?k(j)?14a_R,>$=@\)G,k_8LF:0-(5 32.166 + 4.fh80QUnsLo&"4?kWQ1m&mot)_Sf(D'H7*1uI@g:nWHo)B9r4JnO.Z&ATJ\=#Znmh*VS)` 32.167 + J(_>W"fj=/h@%>kubo6Bg>*#'0ANijIg_l<KcSicUSS"+3N/>SOd%udYnB]C0D7LONGVaV[ 32.168 + \Zp+1'\GpYCWWb4rNC0.a%`B1RlaWlb=X8CYc`+C>">h0@l6=eZ;lYi4!Md\d+>l[E-_%rf 32.169 + )_peK<oN`['<c<3mY/PQ+:_mZqg(sO<_-c$agoSZck/3MRBk.i@A)KBkdUUE880sCU[?8>T 32.170 + 7YogW5o>Gh.3nYo/fLRtRYCM%CVc$5ohRS+*1WSGKasSGN*'P4u@A,t;%"Fh>&nPJt0R+1t 32.171 + fcTDKX=:><6,e%K1N]t0oOqn5ms1od$*]!g_8.iDZP<Lh@VB$<HqGUGg_)SXp\(KLUI>V0+ 32.172 + I#Hu80WjQ%-qDjd#9>>C<`!eH@lbg[ZV3Kb9]KBCrgjlh<@sQjB^`$+AS8D.dEMtfN@N9Xa 32.173 + >^adX[*"o&`XR^B11eP-WQ=`]bGqhhGP0(NRu!N>V>HABr25JhAV3+Jn9h^jmgm@\-cfBj3 32.174 + 0+<gQV#EPfsfb(n(_TY>i!!;9?oTCO^'QbS-rk4n@:YL4"OMcW[d2si9dPu`uNa&DQu7OFj 32.175 + <S)doaQLmX;/14P-`[=cg9,M\FF><9Z)-hJ2!M>8PeXjISM:^E#;iC[ipg-GeM3&Y4@[*Bg 32.176 + Cu3jmUNkc6\\*K&O=Fk(=,e[G_5$TH.TQK,++:[oP<SSnN,F4%VVSfN+krJn\,L"Lh,h5h^ 32.177 + N]oUi/T;Z%`eFR&"!DhD>J(cLJ&Y5hi+9C9cb2.PUT5B/6^]E$/[FZ@UdJY)pl,h`Ze(?Ge 32.178 + WEn?>pib5:2\%u3`Z775rBiGj8)/sQhjmX%h,WAS"_QTtgHB)=ILfBU^YBuZgjCog4E@!!- 32.179 + 0(Qdh0q&b>3gFEm`GAkkPgFCSr;h3Q0EabV`p=/^7gsDTB\:RkVgH'?Dm([[&3i/l[HP5rk 32.180 + Y(q/aP[CM8$UgZaVJ7^$=sZm/GE"lPk_1iU20Zm_/_ihXQQ]h=!*BO4aQPN1o]hq=&W9m!f 32.181 + ?2rt4N\"n=ep/,pFUYd<WN0ZnkenfKHi*ZstQ2=l4)o"R3Vn(%$e5kR>f5YS0L?Us_f;>!. 32.182 + VosVX.IpMb#&b[;Wi?(^;heVsNFn^B2pV2.Ns+0quQ.!&4m@T+-s,m+AQ2,otq7iKrrd^(; 32.183 + Pg7[)n/nA#s0;Gc[JPHaqnKiAl0J'BL8A,AbjC/E>es4JKj\\U*8eQ?hojAp_:9]ir@1;`s 32.184 + 4FUg(&gC#X1bk_&,6hK#mGrIi=MAU/f>+R6fJ[pPYNYBMacY<R+-"6*KN_O&fDCD8L9QljV 32.185 + !t\Y$!?C9BHe<jNIW^Rn`&Z1ZC07a.GIB',]0kM)M(]BN1BeVO9?=;sG)9Ptn;YX&\I#Ra` 32.186 + *q33Q'>;oE5BO$IqjiDb+\'%'aTf5':Nd`Ufd[b^BgS(6rrrkCYd%u_1V#kc)CT,7gfpDJ= 32.187 + fj73jp5#32=XOA1K7?O?*BZq-3'^OnB8YsmMoajfWY.p0!j_O[<AnsA>QtQ%Pb_&9.WS_Xh 32.188 + *$,n,M8eLpq&GqXl^.\(Cb+6kc-pI"VJ$:I/luu%h=#Rc*%l-pT6eQM[[Gftj0RdLD]0Z=Q 32.189 + d=on^H\u!T@O\Np;A[Z@J]1Nb_gMT/P2t&XM!i9i9WKXX<S$<E2!dC2c)9u"99!2Ym)MtJo 32.190 + 90ma=4G/60Z5''gf09>8K`uKOYlhEMB9;[?/Pc%E#3Y5-$uob&83>E[6Pf8Ef\`e]01.G.' 32.191 + c^Z<n0K9UnY*7)mGIS&Il+OY9ArS*n6M&*"(E^[)(*!Q[eubkN__I!ICgna`L#205;Z4\oa 32.192 + =l@MaTjP[Pn;rRa@-)B'(p`]4F]gS&`/L*hbFJUK\;XQs`JPZQ)"L$19jYWf/m#<_u<:r[X 32.193 + PLNRn4Kh]th*dN*oNE8)V\FPZ>ut_c`5&Tn.h9B\$u=*9U().V-;_+5=Y;V8AU.unD@N%ef 32.194 + dY'V8m9SIO(qnn"iG=bG9a_;+L]/'D,PR=;.m5$NQZTRGGJMfTQa"FA^iX2N7d!s"aOGsF! 32.195 + ZGpfQ0cE]\`;7JVG941L4ZA%BEbe,$0`f'ZF`!iCC0='l&KF8]"HIe<g.:Q"=YF*j]G#"sn 32.196 + M'N92^P+rJH8Y@@:mH&o*g$[RNfP@T#hjdJZ&V.k6e`L%\bIUk8cfW-BkB+<9,S`]_?'9FT 32.197 + 0(3Q>u\ME3065jaj[;BYRT;]&?RW#3jqRl^,k]kmpSsgPn^S&;&`lDuY4(ep>?u/6U1EQI* 32.198 + M#gu<7PU[308>;-DTue4&N.e&DXsK**lsSCc*"7*nD-ONe"Bc\/!=r:G&i6dguga,oC04UX 32.199 + %SnVe^X?m#D:u[DI4dDprG[*-$C.In'EF&WDChqSY(&PVS+U#ebGa!]9[elCO+)USAas5b+ 32.200 + .XlfD<,mX57HJ\%VT!Hp\(V=A2I'a5MJ6':4o8YX9/92`hJ%JL,uHJl6qtE.eqUW:M]/M]n 32.201 + .!YFUi@olBpLMt;RYS[Uid5ld$%?@]-a/#$\iLEKg_K'thC5m!GWM=_KomV32seacF?`#XV 32.202 + pp)cZsGmE7Q+X(e5RmL0W$-(1<<Y/E._d_X7#>?linBnp9k\a':b8Pr:!\["8FV(906m5DE 32.203 + R`'de!XYP[M6UM*`<*dgU81h*:\:_UPFV:j"FDeurEkV=b5NB$CHFpI^6<6=6;l2hJg<BGP 32.204 + >nY)@d*tLn//Ns=.p\2PZ]K>DE^Y`kelIA23B..7t:ma6Y/BBM:*.K'8\8,:tt2tEP/E>Bh 32.205 + nnD"M:"`p0T6t7+[^@M'8%R<6S<n9r2B<M=S<Kb7YC<iRF<ad^c,E3I`r!dO^b0Bh(i`(GV 32.206 + VBNgVXfTY,QSC5\%t+S/2f^:BXhMTiT#TE8Cn\aW3uXFO^#TZ+.0n>cltD^U]K'1Y&=4:$? 32.207 + &/<I/LcDf5Y9Z+Pm0/eW]B^IusdDhhH_L`'9%2*>AS"W52L(ihm4J6g7+Oj-\93NB;A&6]j 32.208 + FOlp[H>mgOm2r,L-4/%^,tZ*>.<JM.U6,4Vgn"(VV+"9X;jsCZAF%<:Zkdf2EXP\-,sd^th 32.209 + M0=43CGA,&h13%<n)0!9^5n]Xb9i.T:th*9I0U3:-m6j@`1VKEAa?K/bbHTo2m<H@^'td!* 32.210 + E^X;sS:Y.J;K"=:u?TkHm)iec*2pb7RnD3>>ZJ.$[qIo4'?eUU6>ON*,(ZA-bnmYG<Yp!"2 32.211 + e=WJ+'TFeUKh3\a(j27p>V[a\H").'>K>I&o?f@q4'B'r5*Za?s7g@B)rD=++#kO,l^8cW/ 32.212 + ar1tQ7T$uKV%.YJDi3Ua9h-E+hfkbfdO]0j"hKN*lD]QF%UnUfEbL:oYebb]bDK&4KgdTh3 32.213 + c+XtM_U?((gM[8n_3d.\.1+(BBo*G;GKU0JMfEu\8OC/crs%:Mr4s-Kp.X(HrQl2;.II5*R 32.214 + .^mo^s"S\0,>A.R(_;6Z=A<%r]@*ASpKD%l&05`0t(2qg0Yh>N3B*8;%j9[K\;]Q16tk]NM 32.215 + snWU2!f8AE1ZH+"lSi0pf1H7)7K.%;&9KP&d^@W]=E.jcXnTigpk+R>3S14N3I>7WulKT0/ 32.216 + @;7K<q<;9b?VIE306rb)3X]33X?fW6SaDk:L[7%6g4>TKT0Q>4FMpH3&)-_L%A*fSWqP\H+ 32.217 + SWc_4he8n[FBtYsL[,qM;Giqe9]l>GXDIq;M(Er&q*N_-n0[uoPYNq_gLg3UI`6o<#OpesR 32.218 + T`@fn3qI"Mr9p5c*KAYI,5uA`%CA[5,`J&?j^[,mSMFNA,k@LSmHrlFGEOi=";c&_c)7sn7 32.219 + ekece<k/[kJ1;7!$HXFc>T54[IjI3g=rN[Q#5<fp_;JTDqoZK_=&N4[b2l`ZJpthO(L@I%c 32.220 + Mdc?Z'Wm[s4IUi.MK!7<0KkD@[uR*$9XsZ<*]0AmFGFpRcNuO3:&n0-XZEI;81AbrIg]h44 32.221 + YG2P,WM#`hI>="g%OSqKMBd5B!N4tpYqqSG'qcKQU'XV5?76fZ2,k.EpZo8^+G]8p9br<or 32.222 + q?ID3Q?DlNqpJC,b<(D*bG^Q(2_g$YBi:laUmbe2[OP]_.qQB__rWB$\^?=L'd['=Jba`qK 32.223 + )<?*.DUJ=(`KDkZj1I%7MuA8@814)`#uXrW,W_a@4fQ#n%tEQ"V(?koEU,/_F7u)fL&67Gm 32.224 + W/>VfJI6u,%?`bl)2DpT3(=k+,H#,W=AYA$fcHf9qSrX2o@jBD#=gap&@q&q`%79OO(Q9r1 32.225 + ?O;T9_?uIt*5$YLEGho@FN5B"6TM#he;Ud$_YiJeA.l$*n_:UXD#PS0r9H,tT^P!1#ajrh/ 32.226 + ;^^aPY.e-$$s"V5p\56J4%//#NtG,jm2"69e$<!rulXagNb^s!]_X;\n-nJ9206(!/<$<TS 32.227 + 5[_Qtj1GfCES/-kg(U$cd_6bO&e/S[DAO&?@#V7&EHlt^BnidFF57AaP@kL$IeVO\O_;lr7 32.228 + ''cNTlame@TB"+NX2^3B#/\8p5>+bd#_O9ka1$F(]F6Qjg^FGc2ieq<]!Odj)rA??-+K%t5 32.229 + iU\;4?g]282?Do`!GMD*$IPAb/?8'%V.^b`'-SJ:_@M8]^[:9ZqNk<h)WD9$]Ii:`'u?V:m 32.230 + _@:0e>17aL9"]JXD;()4IB(5nU"VENu!9ZuF8LLd!K1:IAr#U%DS,BQtGYMFI<H[Zd2uU_= 32.231 + #u@]-/q7R2nf_T,,NE(:9-`bC5HN*Vm?pdUG@]#3[8`,*4o%Z-]n0/Ouq'RL@\E^e>RRu,Q 32.232 + 2W@GmiqR-N8a)JUZ1jOnaD_&JIQQ0/AK<`L&Le*J]8=YQ.XG]W^N(D0P+.S(m98uKtO@]kC 32.233 + 8K<mb/<`XfPY"Q6$&a\5]8T;YQ-"uQ8Xu5@XIDeoS4Uqq1b=[&%%YN<TLoWd8fXQt/>Gg"U 32.234 + _Ko%`N)I#9W(L1W(N#J8t;nRXK+t'LWWgi6X6]bm&s%ZYY,D09,t61/$D<$\I\>09/O(MCq 32.235 + !&b\4_dk9:WR7%'<*S]$&=29AI6Sm(Z3k^e>$kbIcEN'Z3U,`(WkD9O,S2Cq`RgLWjk^9Us 32.236 + 7!XNO;MbY66-a_A^cI)=+WcqOqr9cVSU/CR<Sh9=q`9&*WF7+Y.\fM.=X9q9p3WG5+[Y"c: 32.237 + Z:#+T"m,(P8i(aR*c,A2Y']VqNjA&D1:0cpV"LLNiek0c@cCF/pXQrWolqYd2:3cc[o^,EO 32.238 + n4sJ_:E8q$/;h^ukta//:L*ThD"g_QpbQIQ:Q5-GXSYf+r(kQ8+p?FeFPP3u!)O+*:`TU6/ 32.239 + HZ[Arj]MYbl%XjD$Nmc#Z-Ke:meoASI/3,$rG1X:u)UXk_)d?%oEcJ;&p9H/JCmss/VZtd6 32.240 + /7BD&6&t(f?76cK"t&>o?MQ*)Xs$;;E9cI1RRd/cr-u;B6p9>pE54#))q$!M(Q8BI2)T,Z9 32.241 + T#K\\+U,p<CS/5h`""J%/CD'jkJ0N-9"dJ=mgPqsY]0eZ6P"?<Rbof#fD3(bSUe!R=:GU:g 32.242 + tl@[&=$Leh[m5t``1*Gs?#*h#DqU8AK2Ud&:`E9=(_^u7l1/p+He!Mu@XXI/5jjVR=;rp4q 32.243 + /OhZA-Id9C</cf59[?Ci*n22seABU45b(bl%nSP6NNH)YAI_\992iN.:.7lVi"iFP=cDHGa 32.244 + H]#`j])\GkuHH,eSq#.Kipf[.k)3E:u,@_`B.+jj&P<5;sdqo/SJ1DN7KHRei9ka9l)6.Ad 32.245 + PkX8L\Efi]IS>6<?;Teu5(h]m3?ND$dmn<W\63ESCnUGfR43+-gjbgR)'UA^\OceW"`,T_9 32.246 + D#C03oMe"phZ]noJ>I#57Zf(Fe.\pC(*Ls`%6:5U/r.aZh]K[XL6e5VSPgdXNiPYc4C$+5+ 32.247 + _N7uq*Rb6?B=`bY&m#+s`mo_F*=?W-#h/nLUFkLPJ`usIPe5KO%PZaBBfr_2INLTtPSLkdO 32.248 + 7/7YQF=We[TH<Ko/rPeEWa=C=!*W'Yg=l[mn>"%`;D@Tq$R3\F!]Gk:In/:#4i+nOA&m>CU 32.249 + 0E-J83@G$nO1*Qc4kW64K5BEiCCmC2Q>_NP^RUW0rEZd!*Z5B9gu,:b0aF'=JG2lgYKBDJ; 32.250 + @F(iN.9q>I]Ppc,!A!YRcGZ]0n?igP9&SF:#Xt)r8QLh8GOP`NoH^O]C8YJ@PuWaHR.`^.l 32.251 + aS."g7\mTUUD??OMfjg85kOWN3UZ?p?9qn`N#p^1TK%UeX((kk84)kP<K&H2&\<U^8^.Zq7 32.252 + -3pJ(#&pI\*ck>I6PDU+3WO6!Mc!U+k>jY;>gIGT)gg9>8)`??*36Y_Hh-V]^Ln4/L^%FX5 32.253 + p;)1POM1J#jnde<'b;/J?e,C@D:Ssj;c$b!;_9fV7I"7n04)>X>?aTFEo]/J\r2RE7jrUQ8 32.254 + IO=PJR@(<[l,4`rZ0uMq*+[s<r&J!"rJ/B!*HZWboQpemK5<.)`\TF@R-Glg3R'`-K03$@M 32.255 + &Ym2D,<M,MlS.^QR[;@?N3Z"O?]V<$iDb-7P\g)-CIH0u\p)`Se3nIY1$0A,(YWOR*<8AWM 32.256 + P]=bIKCkf8[(+Ul>6TMVFF7R6#R^)Wu@NkhqI=L/>q;rKhP+%AYXjrYaC?BV`mi=4UIQ91L 32.257 + 8.+QmMbml5Tjuuo?j('BhjLtqV*aK$m6Oa5f8--Eb>.*F/7uX$1MIoHA7O=YF@:eYRAbj$Q 32.258 + `_PYC*b>D!iAfB.<%;H82i57W`h%#.@ROdHJ_kt;?BWFj[TT<t4P"b\f8MBeP;b['__`EN3 32.259 + JeIZIN>V/j!SESAJ2)`-:#%0I:j[]?.n;pS9T\G_chBM$*C,'FuEuYH=`+q9a4eRk'?.BJS 32.260 + 2-4`&$K,$GU6A*FSI=BFV0/*WCk1`oLY]Z@7uCL5#sj7R_,R^h'^*2MlqgMWJH.L_b+S*d2 32.261 + "9NLh29fPW$C2OWgkBaC.i=TX<=A7SsJ0.H2Ah$_],'J4&k?0KkD9YQPH]l31YgKJiTlCEa 32.262 + rY"'fZdqX7l6^0Xs#+gZu@7I\rl^9u)ETC7:[94[ql96q<*i2t=Q/gF6/9VE>b&_5mMBP`j 32.263 + #V5?-QG(4Y+PjJpLqtVOFu!gpYK";sCrX@-k-8bSam1O\/Oman/s#@LM<pPFLdoPL51)h.C 32.264 + 8P$n#j0EkT$PInY/b:]lioIL()GLSg$M)Tl<ZWPUcc\[7;KNslfQFY_Q^,-Jd<VS`4k(?2@ 32.265 + 'podI.J=mSRq?54VBZeQhmZmegqiNi:#/]g-s[DS@uGaFWd9\npNt>p8p\7d9:eq$8=ASef 32.266 + 1UG4V:8k%n:KLs#S`C#h^/Bn\`^LJ@[,VX?lrLI?%M5pl@l*s7bAo5OWGDbA#>-O3+>nLAG 32.267 + _-[uHlY%M[oMK)mTEJFL4hZ9;Z!q?ljn4i9'k1=QYgW*M_k%Pe!f+dYMPD9WpMEQ#;No7u# 32.268 + +E>dhnII'B%h_&J+)*)&DQaPb%jDS",B='Jl2F&--RQMbd-SM"].Q(j[8cQWK6"-4fi;YCT 32.269 + -!Mm22Ks#kPlgENef,BEt9<2`BK!]Eo;#anaPEgF-0DlVaa>J/$!S%6g$Vs<do'g*G]YhF< 32.270 + ;EWUHnJ77I.-FEVhCt98q503RqJ,S2VK<\MFep8b#,0Dm=CcqH>GL'jkY@'rL52QS%a*;"a 32.271 + Q[o%-m,f11!8]_%&uMt$]WO'(t/J+]D"]2r3UO%]/mcunLFoM3g)'?bEGE-3[B0c\`e`oCR 32.272 + +jD[%g)IHOEYq?'tGRG('pR(GnIl)sC;Wp`K.k%UY2OqXGD![c(4-cYG-K00^VKZ/1p-47( 32.273 + QXpdH13eU2GaMn6W;Do?/B(BZUIl-,T$<')mYSE&E6Jh)2h?'PNH"Ulp(qWBD<LX3IQ`(>F 32.274 + [pNG=,*/VG,`8Dq:M/:+.iU1TEQ^:G&!%^cMr^k'VdpH$RB3fH\3pE'Hp#</SN@5QIkg@@! 32.275 + !ccPc'7^gp_NR)M]]F!)Km,YS$al5PmuhHX!0>2jA0>')GFWqIFG2;K/iGPV95>$(n4)B<, 32.276 + *gh7_tsFVPG_KXC/!@rm?fqY-Lr7lp!7W/#lE!+3kWGR+/V0RV3(L(B3%:O@?Cg1A.5i9ND 32.277 + >+fgMYe0tM@B&l-=9&KS[.!S7kHsm<Wn(LDfYS&'5IFuSj&)REVhuqBbGl1eET7Mg\53#bl 32.278 + F6:(431t[q5AnX?rGpC4Do$Sr_KgD($j*qd5<!^[3rQg:I!'RQZF5260b846s&_JbBPi6Dd 32.279 + X;([GM%$!5(!9:K6$c67-dLaT]QL]C':ho!$KX548os&L-hRFphWDG$\uSCEHl"p',Za"A' 32.280 + t)TL.*>M8S$7p7&Es7Q:kf;q1Qb!1R_$Mds8lZdlWGMkL5k'#),F=;/"I*74+9mVGh3YqLq 32.281 + D8,<St8U>!R][2`].@o`:`-H&oi/SrbV7;ahfUY@+JRt3KZ@(JY,7,*?k7]3t+Dq@A=#!6^ 32.282 + gf3%eEX9g`e=^`L6knZTQP(gZVcb.0U2"o3XF4mJ2@J9ZJ>.!".]1Z.3E9hWbrJ&@(ZeB8> 32.283 + gO7!t&%d^S\(dJZ"]<1U?cP9Na!KK`e7C$Jl%U&ne$*rAQt^.%:2'&]mes$/L*LuZT-C>n7 32.284 + R"RBf!o^#%kh_Q&bI`'L5=Zhf-TWgs)&5G!5MDN#m.oh3W>S/.I)Bc6-t!&#f9E..13r=&u 32.285 + n&DlHClK1l(9>&@eb@/J='u3M@.tYPO(SV9Y:'YI`#r<p`*=o&T:&88H;^]^JH?(F8HbhQO 32.286 + XDj5u*1Z+:@%aAR+^aN>o@/:TKN"#tW`a/_JQ6h'HXKf)>`=P$5&4OH"1;d@tR2e5!rhp&K 32.287 + r6?5iK*:O'V9-C6::WLud3`&BSiBj9B]a$sQ<*^A2dF:i)"poC".8&%<]eN408Sg0lKs]P\ 32.288 + ,h,c27]ZchD,>9'<<VJOSeO8s<[dO?Y0F;Sq_^#`W0r6C*.pM^qcG`[Kjr]#4bmS#el@iDg 32.289 + "(#6Am/5`VeFeM]rc,)[b\3+=G!c?:+QJ)T'b:a4hGgj=&mXjh:HN&G$\6ukBPjM^$U4(\) 32.290 + $S'?WZXrJ)FE%$%UsD*Y!e](g[`-iE16p)hm;r.L#o=[NCIeR+<F@j-]f_!<>A28Woa^8.Z 32.291 + %9\QP>del,87Qf_GBBpu.n;'J.>6\(r&kIK`'T]d:8J"l.12Mn3n>#(K]C"cmcVWo(kV5if 32.292 + A^7Zg,_$VY2KHS:6XD6K"ag(3e(=BGT4$M3'm@/RV\F&%:iOSC2Y49)A>JBjEn!j=T_!eoX 32.293 + !Q&e\0+l+l>W3P=n[r3LaRU=BXt0dN1+EieJ9N<[oA&d/-O&HE9p1$7&-=#1@DPUfb;lpYR 32.294 + .^hlB[!e\gpVS(<RLZ$Q6f,6+U-t?L#R?+09P;j?8n;5q7^4,kkZ?mTBc8Z\#J]j?I-1KHf 32.295 + !YpiJ,0/*3]Z68MT^_?LQM8rSMPPp3p@ukP5%K^[:su^YeS\Io#b<5PPB]THjPgYRUb#Qk9 32.296 + DX4:Qj<3X.kE,lb[t)%0tS"9;gY"CU:%K@!@(_:V$VJ1q*-%[Ie?n5ft86nKI!^"JYQ[#GA 32.297 + 8L*EJN(rM_`%cQA((STJ4MNF23U(g"OE>BffGa/l8A4_W_/gj()TbQL6<JjXW.ReTi(1Q?, 32.298 + MpYcS!VfDW_2oE5EGdGKf[1Vt<,IUL^,AIeh&Kq#F,nYj4@`NF*TPXtO-0E)a;FjuU]c=3d 32.299 + M>5A8JNE0>`"T+5"A0^)^OKtP`epF9M'Le(P7/_!_2edJ9`psV'Mgt@8IU<3)_<B!"Y@2MH 32.300 + C;OAIhC41Fo8i)\Dda/I@';+),.fV8[Ie')<2bmfj?IQq%FZABK>(NUiA/cMD-peX:J^B$G 32.301 + V/2J2%&S'u7nc.Tomk7m$J1S/V^M9P^eX;<&LAe!%bjZ7%Ml^lER!e<NT.iC#ZT>B*/-96< 32.302 + K%r/<X#c),`iZ`_Ed9o%8%Z!t#,s^Ge6'H>XMp[qc,%D$k+VC"rdAeojkp7RMe;BJg>#S#W 32.303 + <@t&3^6R.c>th5O1T&[QS5W%&:$LGHPHoRkJa#NsC#qdD+\#7'`_$8H?r*c=[\t)O-;Z*>% 32.304 + mKV0Kb2rT?V:8-Waqu69E_`*%1L0VA4UHp&_\RbJCCWc]!g2dj]lStE3@a:]@U6V?L--iY; 32.305 + Q<n=:5"7CaF_<edB>t>8(4.pidIlJ4'Y4F^hGKLU+?@bZT9MAZY!]ZaObt=rTb@m/<cf<gq 32.306 + H?HW=ftAZ3#fY1MC^@;P=r[C/!Mg09JPDJeL7$:-@*&Ps_U5g?pNf';=#gQQXF<O3>_4D96 32.307 + V!W]5t@&\Yr*.qXd/hZ*r+-h5KSm/6JMj<55f:MU`@CRnC0[UR90)&]\hgB@=o=ii!r*N\" 32.308 + IIG_b^R+rui#DWFYQb3FfG=Zu9GN)pYX/R?<$$Y\;h=FE$,W':$XoPUL@E2&_cV*o@JiQLY 32.309 + pLX4\;q;4S5G164tX`U],"lRAW1W+0ZMbk)rk1CNq([`a#O)?A.3mJE[F/pfI/HWY_#;0-l 32.310 + `=L(Em?0To6dL56gk@\cTZ8#=M+4%qDq"?BU"eZGC^s\VQF"'l@(8'kK4ET/74'`gK=,ER* 32.311 + 7p4>UO)S3Zdn2BuEkAVNSQJd-oBqApH64T&%+ERq*Z>--r$-)C11Pr?cQLQggIV6oBUe(T6 32.312 + &.FK9:RA`9ufjN\<j>&UcAtUJS2&OK\+JEpt$CAZn>U>W?QYSCjetecqQ1U9Dp*Rc2`CE)@ 32.313 + ']lUB318IJX;#L`$+0CIbU1KB`b=Fl?r)qtg=q*rDB1m;#Y(9<>G$"TS^^O0&I?mF][-Y<j 32.314 + QSpAoaDep?142>]#e"*+Id&(,]QVfFtRMO$"Y^SbhoV5i="9`CP$N^-,fNVaWVS#MA%\)`m 32.315 + ,tFj2&'`6V]GYq'RKLg/E#'IEfn0B.`6!K6E?)hQ2q1YW03&,'/l<cLamckJX-JE/Ma*36r 32.316 + *Z]LSUdSs9eqYm9;0/<C=TV4bo0H3!Ut-hCV_5'huileR&p-D"+$\R/e3h4M&&c=0)MR]He 32.317 + N]Wa`,<sqD_WZ8^M]PD"0mC59piEPc-FCH??43rWMaA\stDP,m>hi/cA*#sf",]^q?#L'OD 32.318 + MpR(D?0Fd)0/E"6qB&,Lq\T>"^5pciT2]V'=9.`gA79g(U]=7?((K-VQAj-AjlKVco3Q5[q 32.319 + ;$pj#SD98jiGDg,R_GZ_4Gj<hkG*d"@>3uX8:^Yds-rTiql:!qo>%(%<O,h4m<XTf8q?LT0 32.320 + ?N.DqP$G^TeHs14t(3p&<k):).V8LD7U*&24#;K`E2_,lEHr,HoB9%m\VIMM20#0-gVpO., 32.321 + P(i8Ll:+Rc?1&2ODTAG]05"(Qr`W)+]-&4[8ZiNLf=U+6?8<s=4ioWM$oY[[l5Y4\u)mgqg 32.322 + -YR^Vn'$T`*0oW@<6ZVBCr0V@;kbD229t^aMQO/6s"0ImrUaC7O7ec@0q+]3u+gV<'+UTp8 32.323 + $c7Gun*(5L`sdu8#-[h+E2FnbWq1mCe*[2YitVqG,#uPH$X`rhK7O;Ef`H%.n1]s`&=![/# 32.324 + 6,7+c`mcM@PmasIPDEH&^_XF&Aln9+VKnef^R0bn66>sHok0-,O'4l"VD#8p)e1\f0_P/Y` 32.325 + ;D=P0U<a(!f;[d9d"ZVX5V^8VBSL;0*;2,o9F*(X27[&7ZAl<u>DBf'RMmnP]3\!9iqV(\+ 32.326 + *[nREI>AJhRt4p(j>0rl44[e*FB)j.lT%7:(hh$jo[)c&sDiggTt'*tcB!jS-^ELe((k1t$ 32.327 + R*eLd?+t4,"V#$(`pjk:4j2sQh1.<nTbeTZ%:bX/sr"_uI,=H.0igBqP6m9rl*qCrQn\$.[ 32.328 + 2^="](bmll_G3(b5oHq2+7]@R,6K&t-D;%\!!;U41#sVn)'QjI+p!]^j]j")b7@H@XARWpd 32.329 + G3W@/0N@U,I3?YZ0`tAQQIt40B,JK_koVq8hT/Y-D^/X@S[Sl;%94l.,u#i,LmB(QRn05,> 32.330 + u]:'%0&956[4=,;Jm:d\7>:VI\,T26sAQEj?t=[jm!k'>mNY!Y5er7S:u$q5i<H/gi&t!@Z 32.331 + CH1!@rn;][>bh'@"9#7:2\U)K`/0/)=S/^l"&%:(OV6St!!.rs;P1.!88.kWV1WDbPqP;^X 32.332 + k3\"!E+S*B-cm!ZET.r&"'la=$d31BarA;T@1,Fe7P<L.p2D;tU2Z`pcUAR3W,7^Kq/-?S3 32.333 + ''LQ-[/o8*<R[Zmo:@C0PrTN#cI59G_ehABlTHn&2%e(j6<88.RP0ks49Fb.D.k(kWY`"E+ 32.334 + B,U-b.96i\fm9O7540goCOL^&0e-e3&0"JD0m!kkn;Ir/sG"4'9>K^><J&@/7U"Wo4T=?WZ 32.335 + tJ25*Q-SOA$l3FSuk\+u=$Xdfq8N4%"+)U(bpD_d>a[Bh'd'4n(C#PW]1:4tICAX$^)^YhU 32.336 + JP[033c7?g_>_AbrUn0!=\8oqs1147>eJN'jk2tBU.[!+n0H;kS99TrOA1.=nm`COH0'6Kj 32.337 + @U+\0O%51%@$SllZ6D$e*cVKTmr_:QE<;J1G`CtCWlnj1o<;%F*k=oK>;7$[,eC.0#!D]@\ 32.338 + :?!?CJtGq`.jqY1QgE;TESCPXLE7')3&0Sn<=DWebuI`";=^D\nsrN3/IRg!9eos"ohn#>@ 32.339 + o]p_G'%_*_f&UVK&h%d"#UfjPm]tpPpDW4eg'`3Q%gOu80IR\q/Jt?d?@O+rCbWh,5%d7KY 32.340 + ^ZR_BMs)3L+k\<GPVMR5oBqrNp3C(!0cN0j#1Q2AO&7c-oe@nQ?SK)R]T>2;MQtPn*El5a3 32.341 + EH'I=W=^E,7.*&GYk7$]p/+$0NN0[fG5j/au"Yu8KV0iY%n7"?QJ&2@'\%un20d@XZdo20Y 32.342 + j27;($<a\/CA0Zb]:m"1Q(27?GG#HlVB7dTJKVr9HnR@^].tYBC!Y&X+$"JQW$T:4Y@M*,o 32.343 + H6h'4ponsGXggq8AS:":?Z5C?[WPk"/Q[,7;:]l%j^KYm)),$i6.QVc;\`9905H]Z@KZXE+ 32.344 + qXQKmSo@\,\:8",5lGs5:+9?@^2V<Fn8kgH!hE4>da`GeV/$%]5iSPB@eU_(5#!K![,qkDh 32.345 + RY"AI),A3%gOa,52F?(CtQgAS^c%Cc,j;2doju*DMgLD"hI*'e^7Ze3Xr0>BD5-OtgkF*]e 32.346 + L=+]9^1n/+45k<$Wj8WjTuZh@5"mP.`N+\E=^pJ`>W*%pjR*WdPo1@R?U<&]f%&GK7GGA1) 32.347 + ZD-;(&AbXt'Eq+Io&RQ>UI`$)Ep[9Pt-S>(K&XSFupQ-PBPWF#V;?>a%nm3qMU*&K&H@c<L 32.348 + GHkmAZltdG/m#`6"2fLRVgh$=Fg(+RpXi(SeUP'eB!g$96Jt+jmn+gE2b.n4Fqnmq)-#4AJ 32.349 + !Xmp=6E/o$V"(r5GB6T\$efD++Q[<Jq>3)!q1n23A2)+&_@\&f@,E)+,#s#=qtafJh]/M%m 32.350 + e,UI^hIu"&XP-_C4"m//XZtdMO6S'8RhY0,TQk(lfbAOtKk`,5@X!=NDbT55lBdM`,4*GXm 32.351 + iSDhM%GX+CqAUN:::@r9.3GLD+CD:^Le>8C:p,.Q>S&[PCMnfh.X@lQFp25tZ,ng%@$Bj!_ 32.352 + <32'Z'V3&/rQ+6p\pePO*2+4uG5e+Ri=`Pu/a-T,FN7`]DU5>2%Z4DO?Pe[<I@U53`!K#Kg 32.353 + 4>Q#bU8],MAK8(.LA>DBG$Bj5f8o^3MW,qL@NV#4[m?)%6b+:3[7Q+=l")TaP/8<$_JVCP( 32.354 + R^\-4#mh@o[0.I]9QCXQ'o74q.#]D!Hrap;L(G<Qjb2!g+eko.X?$&3[-!JH(mWBQf8UK,' 32.355 + 0>b"<tCr,WN8@@Srj7I?0HHO4j,dRL*!Ip3'UMPkl"_@POR.$),4eJ_%%Jg(ZlAd=tSJ>LD 32.356 + o1qG\a2)0HR`,':"S6=3?(6Pm<1>abVg)@*9&@AmA/Wd'1ZcS(;[pRca^X4YBemT!(E^G:) 32.357 + <Rp!(9pit]hSkfD@W>E8pg6VfNa<R-GrRt&C3i0#@$_UW+YG)tXLJ+[WAZ2Vn2XueL0hre@ 32.358 + j/:L]>PcU%g@cf'>m+>0Wo@#Feo;I/SQn4LZ<Hl#)>1*HgRigADmK>5dNu1;l*Z,.U75=4g 32.359 + +Tbk8$p91YM-%Q;qJ?[?m0j_q\o"33`i\59<\,i\7-8_Udoq:AM?1.9/Sj[oHOXm(T6ffW& 32.360 + nXKR"n*T%:b$a\.b"2Q&2j%K71@iLE!M.gWUj^BtI@7AE*E[e&SkCH+nl_[JT584(YbX7kX 32.361 + r4]:+qjQef<$n0]0&qYS%;>Lg6QEO5dG]pc7b2RF1qi[*(co(rqj:AYQgJ%D*iW#On<\.ba 32.362 + N"/o&a-EuriP*`gD$,rE=(VB.Te^q>./\baZ`*#+(S4fb!a<ga]^`6f0Hk".,8#MiSL3ot$ 32.363 + *'n/cVhLn>-/*Ge\`pto2oU0"b1s0.ggSADZ,'X_]c,^A3SDDT>KQ_N-(Lg>4LQM?L!<?DL 32.364 + $tRe4H6VPJVMmj`gh=DghXa7/1];/'1-9#U(NeL6d!'rd+o32]X?-,(X)`e_4%LP>eRK@RK 32.365 + +93%:iD+*>b/42#hPOdnWW^p(P_O]>NC*a]\A?i^)"^0+RoW,SKX01=OU`5LuB?m6)35qt8 32.366 + 8:8_#O[caIuH][A(]?n\'fY.:FsRB+ubq8fjqP#g`o[d+iYYL4UB`o-ZA@e61C.q>!6Mj+I 32.367 + #=.10;&3RJM"VTq>!Z!r-0?4ZSepWnA*TH2:ERS38,sAHd,2q9c+5=/b5XA1pF:9'.bM49Z 32.368 + gu9E$I*G4@_qg`=b1t\,9l&Fm,2HBLg/4QtSTZ9*$8E_/+JKrVSeo8^8'k]uE#[Mb4Y7;;h 32.369 + r6h(jj!VXSJU/"=6"nr0i^/C=r'!07QA+Tgfjh7*`]V>+m&)QYo=F_SOq+r+3rWidJ\G0o' 32.370 + ej6@q!rDdC96.\r&-#X?O3N+uZPG*-[dA\31nH&cPqs^=2IDNTNA9k$nd5*`)hXVBAVYlJ8 32.371 + H`KO>CD_<Z-<m(Ni$`)C3\`#ut@m"'NMg<&QMf$]#.>?N+RRFTD$)4*P7nt.T,%2\EH1\6E 32.372 + FnUEUF4t#naT:LD*S\II3+"d.-=7qDao7(!<"Z>oO@]TMtGTN4FQRh`9F8);Q;ZC+uhh"[3 32.373 + BD>&4e39)e>tat#kP'Imq;7c;5CrYQVF&%SqM/M/1O5n4PtW:'=J))[ho#@ZKDJrqr58^6h 32.374 + p,5oD8X,.rD`Uj+5d')kEgM3m$buoTCP;*e,MierIP%LJO&.T=>V'2$&(_)OP"Y=+VBQ!i@ 32.375 + QI^!\kRO\7:XloR9(LO\"Pr=Yu^I.@!NeP1ark@540Dk)sgKhDH,\:?Jn9o_sD-Thss;=u@ 32.376 + @`8Yo>LPhL7DTi%dglBDrV??-#lf'9ZsomX_cYup@Y>;`#".Qgo#,277;iGlD5m[%$[qXFB 32.377 + q4tht4p&=a]]ft>`>IGS;(26fZESO#J+d'lWnsNW;h%*YZLU,Ugp4#B%d:i0@>rJ<PEN>OD 32.378 + 26pPd@BnL%p7#?q`n#CCg\1O#pA\uSIph.r>Q+^"K>PBJ(/.aa0cY0(HC\BO?a1ZrAuD2kp 32.379 + OC$<nTau'?T(8QXfcsJT&4b,iUGXj`P3M(hsh-6@.6,LX8]oF9Jc74\aG*H!\@u;(0Nqu6l 32.380 + tOl"CrkaQ;C`C"N)qAWpQ]8gc#d40bd+j7'SRDKY8hX>nf`+N%YOSj$Y*uOcZXt(Ip4/Y5+ 32.381 + tGF6ajf1(t`-YA<G$s.6G%o]=/./.BNa&orY=8tp.*#g4X7ALY!A9YVF\o'2nYUJUm/1efc 32.382 + *f/?@0EX<I*;.SPr8u@9E-Hf<2\N2LOq9q$W'C6#HUJ^sp6r>CdMLE7F6ic;iO<#$g8d`e= 32.383 + 8gLb@ohH_84[2WCd#CAa9W61];H5SS=&r>/Ego%`1S%kC;fqC!:R(OHdo"_8"U^48p%=):d 32.384 + >SKt,bF^/"Qi^kZ?&]ALg`/U.l5-1K0o1;W(e3hoq\hD[f\7Q6dG)>FBph*f60\bMD88iXo 32.385 + 5eG9(p+0D+_7u]PQFsV8[pB[K80l?oTu?@n>diP9mGtSQBI!<fR%`ib\hu>gXAm%YrQUe^' 32.386 + 7d3>P,JA?<2qXZ^qc;i7j)2DJ$)GhuKK?sj0HRV+9c&pupnK*=hL[:UW&\p-DNQs4a0n>q\ 32.387 + >F`WHak!#]@%uSSB>gN8H1CBh5ap_VC0p\<,CT'_>?L)=NX*^W<;)P4fH@8#VTle"S\&ON$ 32.388 + g4\&KekM2*'h3>_E4e+?`$Q?jj2A:86=74i.+YGtA]XSBA*lh<Yts[hG.@hGWQr>b65u$^Z 32.389 + QT-81lUgbW_(:T*Bu'L+hPL)]Xe]Xq7CRncPjCWfuJ['2nA(!,uQ^GKnprB5:qA$C!:O_`k 32.390 + Cs]DB\skY)HQ_IsR)@^>1g<:ApLWN1rMF\;bh`EjK$&5@=NaT`:UuP41RUMuJ4@oD`?=/X8 32.391 + R'*qY9;e0WGCqnD&4ptiXEFAISp^uVlu>`uRFUe1eT3#MiibOJO"c4#eimc`RPAU$]8'>h( 32.392 + DUCJ^J39BsjUt)",P)I[n:W_(Kf/0'<6jOoNnaWAP'):E&s+a&u5EPO0g'BJ3K&l#U3J%[1 32.393 + U5/enKH;22G^b8(HJXHk9s5k>\Iut6Qt<GO%mjnArg<m?NY08k7l8`rNI5h#;'jf#k]l:Il 32.394 + s+?]!.dNdr'mD($]*$FJk)PV)2M6dCb^<R`H!aKg72/8c^]s5R#<+roRVq=(.'lfF!9GJA6 32.395 + P-UJ]<J;)P7-,Ns2*hU^:N_9;BO)mj4Vh[9V)hN&Y+A?7X.fH:]5WGa1ZWn[?s6<b3ulK4J 32.396 + F@54bHq#V"1g/+A9caUK)C7)qpk,_jOP^F@B;eoa]@pdh@77\0a#1QpI;:H@Z&:F(+T`KFY 32.397 + $W;[H>E?gtS2K9;Ma>>0Xd$`@-KhW*Z1us&7S>7KJ*=9)>k2@2Go6gqe=i-NHPm&;O7W^[W 32.398 + HTK^,e1m0JYY.#W91nid@;PmS9A"(Jfc#@'PP&2%+r*MeeKZ5Qnq;h9#=Bo=$E-jgKgn+$6 32.399 + sP!B6L<!i8\-*6C/!H^OHAZ<-#D_m'X*LV,'[#Na]WC:B/2:&Zk_;757#\^VfIHFeM8jU.R 32.400 + N!jA/_3pqL`*(<EZ$g1l,-(Z@_@iFGgl5LfJaU;TKT++Vf*XVoNXTlWI#[Q<qfM8moOX<&A 32.401 + 91eS%V\73`GhrukF1OtJ7.3MhF'[Ig3GfinSEm85+-p9o.,RpfE(4_(gB#2rfKLeoU%`@=o 32.402 + V#hjkDD93GI[mV"_h%C$:#TZ^O`.mJY@OH:N[E'[1B(0+^<6l=Gs&h_GRDVr>.pPGTV_?JA 32.403 + &6KAJ>P6U[OYZjc$/JO`h6aV7f)$oNG")c1e%b;di*K(pK5buE+BKWj'^O^^T`+I)QjWr(q 32.404 + k\m_jh/M+)ZO#GAT+frVSdWl%cU+dLTP_H_IU[V@iT/LY;PKtCctckhuMS<1MERb.ho%2.< 32.405 + ii2hSn+]!"g`jOOMaEUcBe6jLhBPf.(Blpt%*/]X]#dQ<bqb!f0Zh=-Jj(?b3d@(Z3sLD!g 32.406 + Y,^K@f>Ao,bcZS!rM\\foZ!aUcVk$>=#ae7*UgC<7c`1l=%N9#B:0rWbcW8o;FBWE/CF2jN 32.407 + l=9B4ICKI9GeoK(4B*Djh:R6)$Vpu]_!0r4=!;02Zd3qX[l,#_mfBmu*2<R-^h*Inm#&DiO 32.408 + _cg`uH^&\+Y9V`tA75oL0!AQSd'VL.1H;R6#s?J9lV2,XRdHX:G.Z$XcYD&`Kr;?`,1kSDZ 32.409 + "c`m4Eb'"hAaF8Ac:[d[\[lq`2@EONO1$ic$%1`#8_870MD*\8D*ghL?u&XEZoGBL,e;WA% 32.410 + P.IXWtbrCX[0'U/`CO3<[Q$:-N,M^UeH_]XE3&TCKd$_=L^F?oTfoo0-m5=*CZ?>.^7;:,B 32.411 + ?S?=YBFHBL0Oq7(O\9$*I4PuUS096k^fgYEsBOFA(sm(X'c*(J97V,NF0o8(sHie-R"K->7 32.412 + Z&"n9%4R=-@\qh.!Z*jaToaO.-HB+_=SBIsW^A6Y^DY3D9Vm*"Ha0nR@'[FCiF7Od>hDm:s 32.413 + mM]$7Eo#!F]=+F#ScjZ<?StK"D\CEZV2c^BWob/((Z[EA:<Gm\&]n(YC?RkD&P`Mc1JYXI> 32.414 + T:i]NnkJ_0c8>%kB8g::$6saa8#q;^jMbFe%IRtob4:fHK#+r8WU)'.*L<7Nhtb3:C6m9X/ 32.415 + Gc6#l+B0Sb&I#H27HK`;8p;BWQ1\igc]Q;Z'Tc^RTkG-SX(a,N""RI#0B-^E^oY]!dgF^VA 32.416 + -H5N/V&)biG92n[>-SN97NOjocY]g#I*^uQ!+9:Q`\SNg'KYhT#149R,R"c*![SBM5Qqpl% 32.417 + s!A;jW[Nkpfj2O<fFMGWu_,M17o<gdC#`("\Lr$+,Y`:udR_MN,,GQ3D6dRJrd24qS*kA;e 32.418 + OaI^E`#cK"Lar1b\SaJ+)nu4h4hL8KC`"<H/jAm\2`**0fo\PL-:="X_k=4t>NA,Eha4Yi# 32.419 + [B0j9Jm)40,3b,34lf<S01(\hM=ii0\eoEHl>C073k8$&<%^Aga0k<'uFs$Q<QYlMY@u#bR 32.420 + pj*OcaN>k_C1;"H6chOf>]M;Gj\m'h"!#5_MM;G_j=48t'j&Rg[2(RfgL#$DP)2`,U&iN(h 32.421 + 5ZAB%H?6bE"[&IHE"#K8Kb#b5.[KN8YS="*ZF6ZKk,<!#8M"%!QQ7^Q17ghasrD8TQF`.3D 32.422 + .'":=RC-&^q7To`*@U6):k-g/pZocMD]$j'SHAb1$a:s6I1kUW1B#m6Y8,<e7I"d`RH:WV) 32.423 + 8%WESe1!ZSQq3U>80j29oT.'uKh29_8CWc_N/:+\P,Wum8&MJE,HjKc=-9R7La'qgm$*C+B 32.424 + ?ALoalK%I/>(&&TZRs0aV:G+>a`LfKh8KK3u"G%-tLJRT#p1rb+tpT/$'nMHU<?u8Af[<,c 32.425 + 2ge?E)p7.s(+#['RqD[*):$at0rWr3)tCZ)#TD#gBVJFM#`3K#k#h9&rf-N$9@V,g4EJbTt 32.426 + 'HgpYE\QcoL+bS8">FL00E?57-jbb,it[*-\'F3N+&7X.Bl)7bG`?VGjpbp:`Md*,2%b6*. 32.427 + BbqPj8m*C=CXN+;kc(pTJN-pn(FU'mQ#M=GhFP;Q?^PCn/c33.P1uk)cGR!qZLVS->AE6L= 32.428 + kg#9G7,%9$m)]ue+b>/EJe/`PAF>.Z8-C>RcBs=gK_(#@#>\/E:Ls%BFSF+42i#1nLM0]iO 32.429 + ;<O@-35t$JM:jC85%9bci`qAJ;jVda<"/H!74Wgc+KAX<:E_;mfZ0G#%[so+>;*WXF`kMd' 32.430 + XA1oad-TIZ)_T;'c)EJ56;B&.F\j!L4GJ<>WDP]TP"@V9H',FU6:jmf\_>3c,%PI34?f/CG 32.431 + 7M;C*O80^DRerQii&"J@s,3T,g(+!FW3d\6\;Cu<TemnpkfKA^=fph%tXWWcL!di_rF2(I' 32.432 + D1t,:D#N0ra[3X)VBS?FTdo`tLJ7Ou(<E%7Le)`X>oW-B$IA)%idBQ`(+;iDc/Pbdr"#s^f 32.433 + rC>@k8CW`tLJV^i>rYX,E!>H,e=B@ao0:[6?%P<\"a(de&1Ie5:XrHFeR_d;QtuqN:Xm/n# 32.434 + CpateQ5bi>cnN4Q(TW/0Nul>,Cudp#LIkH`EcM5ACaa)L$1RL]d/;6-im.oMoB8Y[;2Uu?5 32.435 + 7]E!t\j;`:*sj@0\r3=!_n=1ujA<HAA&)JRp*\^bu7*F4Z\&Scn>6Wq=B;<eOH[<rDCgGVF 32.436 + jUH<:o5fHd@!Lei\(=b`kRKXHEaFbc=nHW2Fp"ZT9^`I?4U<X*MRLK0.4ooIc/%L94\LHT= 32.437 + %>pP,#-@n.&LJW$E%@>b!<S#Q!"s@9./W<I*2$2E;$n-U.NM"o.TX?bl#O#RupbGj?AqI^i 32.438 + >%ORp<LK+cF,)/ifu6A`?rI3lCg(t`g?#K=\7u1$8_'@1#7+^kSZc6d[#l'(3n0JH3E:[(+ 32.439 + bcbmKjZ,+TN;?eD)a,T>NNTRn_aX+AHhj/!cSk(Qs'S'+]/f!>Q)RsE:R4@j4Kc$"9:H:4` 32.440 + >n*N6_Z+L!Y,NS]4o_d+oGaQ6:7'E+.(s(L%mX#7+]@Q-rrlfT!SC'mNmcBQ$b`,QYDVfYB 32.441 + M"-t(<e\)!>.hBh0D4k!\%.:#pO<L@'ELagoOT3aD>hOr$ITiVIiF5!Ik:B33QaBhua6A*? 32.442 + j<il%U&E-rto\WOF?"dAH:"=ePe;&j"#2St0[JPlAM*G]oK.nf_"fhcN63_*XJtQE%^dNh= 32.443 + A_HG1#;-46/dHqK#h.^:ho6#][>9V%IKk$l"?lNX88SNd:uJQ8i?]RtGY6p[DIHQRiF&Na[ 32.444 + <tX+@Tpa/g9<"-#[)pBEX/NnebtF/n2Q.[i6<t7!:D%ga=H7>(?/@@Q#M&)=E=Z@4Tb$^?= 32.445 + a!=0LQ"kkhio/!<+Um/gb'.Ol!WP#=*>8W$0YZ*!Q+BLDY&e&:+E),_`Xb"0G%JW-V_PdM] 32.446 + 9JLNYlA%R9"T2$WPU"^"h-YSgoH,lo]+".1QniL\u3?t>B*Kr.K'%SMY=0pV5fK,A"D^bu8 32.447 + X?O.Kk#=*V<!%8#qN+FtRLBqf'PgP6:=F^laJehOE2I#7^>ij?GLR<,f!+:HS1#u%SKs3@b 32.448 + 4Q_E:(5HL5KSF*_\-hAKI:edNk+Ip[=rC]#FQ6JCfYD0T@!.8BGDC-b"'@/Zoo&r[*<hFkf 32.449 + lY8hSp0>"Git1`LX:>PLhHqT6s2BMg`R;2Qs9_q-&9!SB*MW'>j(:AKS]TJa^ojcPi7De/- 32.450 + 8!qg9s`\#_NB'HjARuKD9%\`9d_98d%t($fHJI<g2c:l<IG.Kr@n'J1Uf8p]XZ3<L@%oGUU 32.451 + n*GA0gCl/72)d:*8m;?ks9#&%NP8;)\Q</0T]!M*-FjR30V.#$#a#-OM2m]5WlVVG9k"fP? 32.452 + 'QnX*qp]XbJJRu\!<EY%n5m'PtLRtU5G*H_:@Hf0iJgIt]YVC`s?"ebAL8\d@?n?n!MHn[" 32.453 + C1(*Gpe$:DP3[S9lt(2Bk)>&I=bR\q!rsEWO=#ND=b?\qgDuO`OAQ./U24_pk,u4[OBD``D 32.454 + V2t%hl)7an9kF.0&*$NJll7/%<:b^h!NWV#Inu5?%ms)=G#`WA4TpW5U6MH/*'/LjA8nZ\/ 32.455 + GSh@Kjd-m\X7JI-]%nFkQ0]hu/Lc=<*$L*/C2BL(IYr+=Mg9=kfeqL,J=QY3PJ1ps42/#2! 32.456 + Yp84NcjZ.EmUBD=B:G(9X*p]^.KK$\h!:3Q)m"QEb:(DpijBQ`PC*!;ii"r6]bE-DOpHis. 32.457 + (>e[,ga<Z>@=+od/L7igIQ9=Y<'_,/0#M=BYW,ICJ<n^S_cdkPeW+#l`2J:nG:Xs-0<<!*2 32.458 + IpgS;ng4``@<@0A6&'N@"[Gkk\;BUeg',1$Da7HZAt`ZM,4a>;``RBg\7Z"O-A?+_JW<.O8 32.459 + /)7F6%_F7KWm`+I[KZf70V$t!fm*]V_3&0qf4]=A%6r=cm<_'X)'1uL44d]Ss"d%9*VM,C3 32.460 + IGGcTd,n?%nqji*<Z5I67&H9]*km#:OAA?ql?`j7/cUDK$KuGYNiFD$?"t"fO2./bij1)0J 32.461 + bPneRF2f3@+'L1\E6)),e0J9G`\*+@c/jWJmV#]^.]H%ZGa#"Jsgo^DqG-AB6?Kog7hgnOs 32.462 + !Cl$.qG3%WT[p4+\^5&q9#=]7.#[RV0BA$?`o9^q\i*$:4D?[OKKr?eMIlPh%Pm03:"-@j7 32.463 + DPQq:JDMqBQY9?P!,U<-!X7H4M'-R<OETiq\k`Q%"gD&4s")7\9R+qjK=?m9(Q[8LIg8`O" 32.464 + Ya;9a=_Nu;2'6GJZ*16^d3#1BD7KdKqL/P(.@sP/p"J%LGtf`&!1FrJer!5h[j@)mGI]SP& 32.465 + 7sfGa.Z1OBVlb:kmO_nO.t^VlP]r$$t3pLGtlPom-jnE/)se"kYg:TN(YmHuk*D!dGE6#X8 32.466 + D+ZA"Zm#>fIGQr4'C=9@+pA5.9"?ugug@d;%n!T1bF8&L''`;9I=H4bF/%Gt^j%g4";##@j 32.467 + J/Sa`&EW\!Gmd7Su86CPL7>?gXmsK`9^Vf7(</",erFK6h=EK:RA7r\GF_DtA*<("DSGAbH 32.468 + LNm]kY[mrf4R^ihL!Va[J8p;l>jW<GKX^*$a8pa?<rSH:j8SAJ<Z%>RfD9+j"COKLDp)b#T 32.469 + *?]NLG1Q:csHQ^<`D%Zp/kj@mmBQ?TDkbae:;iM3,o/\>6Q]i";itLBRgg%$Beec#mQ!tiD 32.470 + >mkW1#,@SP'EgP(i>kF["[N<q>KU]/^TLE/>j"G]P@F=Y&,$q>C8[9P.3`Ut0BAS5*]q\`E 32.471 + I45G1hd<&u<@NCTdBBiMZT2P!X2O=EL&V,TrdHIcgG]&e+K?a*XK<]_Unc"FCeD-"8[[bYl 32.472 + 3>\fMcoBtu?]N/rH>JoIeqgRI@=?IoG@-VhsMWA?J#[XUQA239mX!.35Ib37(2`]7/_T:q\ 32.473 + qCIf6bZ8%$Ptfl:eb=gNCj'#GVUo[oghq=?^#o';^Yj'U>WsMONQ:*Y?VaamQ'B!pV@ZC!. 32.474 + 2GG*L.PdQ_N;0[JMXc:$CAB<f.hJ-g5NtTrENDAp,bTP;)hIm6Q7%_<bEfXs1f0S"K!f)6j 32.475 + s/`"l'gn_2rIR#Jq%2,mhGMWl2J%lfmdGY=n0[^p>`%7&HJ$n`23Vlt]*+Q%QTp@@lYg?Ef 32.476 + o2_;7QjL00BQ(!S"Oa,,Ap?q:j+EO]hV&KI&^ac^J2-d!'\V('QMXK="r&u#)J*lg:2@@AJ 32.477 + C(mBiR:nAB8;bODu$Xpl77h3QWMHloHZ=8/$Vb+$kP=<:<--]5R=t57REAU!'LH3=)d?JJf 32.478 + j;^"9+%anFXY!2p'[-Lb0'gG6euLLqm1<2oC!^oBUA1<ba5p^]/ska`i-_W(@FfdhKUJbe# 32.479 + K;s4<n6=-Al]kkU#pc&[S.T@=biQ=AQfk/V.nYLXfZBn'Vt#9RO1=t;A(;>ln"E2J6,"_1G 32.480 + D^_MWUm58tDj,UmFIsqj)Mt"n>u.%tap''O;3jFuY@T&Q4T0[a#VAiL"L'LZ0/2-&J_1iV% 32.481 + ZZ'`C6n0FS^FruL9:n2#t+j]X?q-.0eQSng[^IMX;m_,luRr)h$s+gG??O![_mA0!&fqNp7 32.482 + =.^iu($E,&CN>cN]Vs)ipV5`aKY-"bj$PG(7*(Cf`B9QjY"t<h[$g*S;@gITrP!e$c>TZJ0 32.483 + jI0s6Q1A%EA/NZnMBQTUK>$63Qq@n0EO]b!4AQ^2nXOM<a7:-,/W:c2e2NCeS;V?4Sqk\P0 32.484 + pjh7K=i"u.bu#6jEV#D$":qaRl%4&YToIPq'p-LLDF+=C?"u8WiD_9KR.m6kDeNt*`&'_q2 32.485 + 4G7INO>j\n`7=\P?ZIUT%o^#^cHSq%b1DG%6Y%Q4/&/`r^.+Sk"(??5:Ht"hjB=oB?&g6hn 32.486 + `A(ZgeS5"E60J5?^W5ZeHri'[cYaCu,6'(C\/oEd,0jEqKVE&,sW6O!Ur9ShZ'oGSlhF+`[ 32.487 + YMNPIg!m&&u$FDYoZ$\&*+PRohWW9j]T_&KI3JUB1WWni=%AEtkLf"X+6rX.L7p+mn@h;lS 32.488 + !BMDnn957,Zml.Om%@9b3'RGND2V7`4@]t;-V>Y(%?Y$G`V=]dLXe4EptU89aDD7$A64WKn 32.489 + 2b#8H&khj5"F9(+3gkp;p[A85kRVMA-$0t6ZaQ*<-lg5H_2-/c5N#m]JbOqQ4[Up.YL*%$I 32.490 + N6L"sUE7L/EOSKlGoj6cE5"Pc?McJ7b*75$CSCD(Xkf\X-&\4-!a60?15q'#P8I#,,QDJ`K 32.491 + mljG[:IE/ZQ*Lj:5>Y^$^E]M=7HQQ8FeA;qa!,?+/`R<+=M$]s!S7]<6uZW:kb\_T@1K^kX 32.492 + 4c,[mKn6Y$mIZWmHH5+c22$\3/(<X!3"2SFu`IQi("pBDaK/au@TZE8$4kRjY916\MDGG#j 32.493 + <Qa"l8*L1#Uf<A;35t,>7f-I,ab3+l&H3NcLg:6a.C5S/\-lAK:([SiA.-6C49oR`*^bm(O 32.494 + [2;fKEu1IKFW#N&TShBI-I2C>*@E>X]=Z*=fY%*HV]4X4mN4^T9X5c%ftNN"0cGUDSS>gTn 32.495 + YTu3sdf;aF&nC=uV(qA/HI";9Au5&V6=PXWn9`NTNPk.j@n*egqnFd1'UIT[0l$:<H^D/Cm 32.496 + >TqB%6+Bs;$7-%l?dWH?O0"OKq#68R7(UMO*@7H-/$atkDTi-::@`%ZnHcjq>A0E^W36W5t 32.497 + [%q0p^%oLd>XM)`d="`W?gFYRQqAk[AG-Ti^C=%b*V%[?E*RR5Fkf&pi)l1!ua[&rU`mAE- 32.498 + :o]F8#t-:ZaMAVnTPb75cCM,D!t#k4*WQ1YJ+(Y`^fV*K+9pgf7nD&G0pkcGOWGP'Le_3JW 32.499 + o)9'81]Af4ZhVnG6pR\1BnEd*b3-]9p,(W#"7;[Xc7hh;.(/j\Af+(^i55EB8Ef>"ij+R"U 32.500 + hU.O7D'maB8sHP2nDAeHCSu=&U:V3A*E;7I6bGQ'r.ZUJO\>.ir/Y9au'c("kJ3bXRk\$c, 32.501 + (S`i.Q/UUp#,dqE)RAoYS[$T_ndm@EjgGp^kAGE/Aq1</Oe'b,[[YJA&1!U^\.-eMXXOHTD 32.502 + AOOk5!Cig*UM,3]Y5p'Ui7&BRj,XqKS$dhj&<8#@'6!S+3K32+[M`AC+f!.,bQWaAPC_Ls. 32.503 + T@R37?>IuuF<%WSOW!!e$=PtR!^f#$0Pj&\JWj=hOhHT=cr:>AZ[.>l)Tm3t`J[es1PS`E* 32.504 + =u%rCZ<QEKV%E7>HA!Gd?hK>2Y#X.c<H?LgcF$Ea,?[VAdM<6WhRdreA.NB[P='n_rgh:K4 32.505 + &>g]C8ZB]3Q343)#,_F;r)UCu@RJ7YI$8+U9^E(^qX8E`1[D\OHHHTb!G*://q-L:hPCB40 32.506 + OS1TsY(nn*ouS;QhtY)R;(2u>oY%C"\+7Kr7a`f\i1!;[YS0Wu2NESS1?@T4iXpZCR"CA#t 32.507 + Cf>fOQlMZdLG#Y8#7o8;?_[\^6k1Ca,@'9q<duCeE?5>i/_@-##]8m!.2P,BZ.)`\N%D;fm 32.508 + /Q:DN]FD29S7ETdR._P1T<if@bW3>O,kFH(!;YKc.(m$_oN*\RA=\EsH':T2!i0];&:Q1dJ 32.509 + 5lkacrsLl0Bs#9miB=)R#V1G*/6[Pl#^#ZKX#I)`ZVu8Wu5Go1>X)OL&D6`:Zm.5XnBkHpM 32.510 + e#JPtVcCK7gc<$>KtdpKe*("jh2q046hU_(e^hk@hC0.i``I]\Z"GG6YgL'2oHa(nhEKX;F 32.511 + )DW7DKa!91R0E"iFO(_Y19!>$CU.HL-%UrdM_jIt]W61bfK)B(-;Fo\fS!GmF_](Y0Ggl9/ 32.512 + k%DLT#L<<n]#!lE&!5o]T6k^`FTBt3DE$QnDV?]cj$BTfDE.nR9Ye]Qa`h@(G:V^7hfEX)) 32.513 + CrZTNMf]m=>SE&[(d[@++ikt.67F5K`<!1XTf2H0'a`k,j/J[^8)>!$d!\`I%H=rP:uMn'k 32.514 + _O1+T.7eMY,W#JiY]qM0oi%KNQB27rlmaabCQi$6%K3u>6Ucm=+Oln5jT?q&0'X@iUH+["@ 32.515 + */'3:idE.^0m*d5)JV8AHV*Vua1B+i5&sAAbV',iGcCi,9%J/0o-$#0<MH7g9L@-koB*(np 32.516 + ::J^>p#l9A^E_1@[[JEE8mNlA1=i+s_VJER@*F<%!9(TfD+Z*bNj\JqLDX/YUS0_5%UTG_1 32.517 + fgC!kBTkNYmJjHT-(kI,UXhG0nQko33U;4bUJTd5CU)@Bu*<ojiJ^Y`M<?SL[*+HGE+j(@Z 32.518 + (`2``%T0n`1*gU'knkSj*FZ#eVth($:(i[q%UcCSnRuaXrYAn[#R0u3%O_ls\/)nS_',!], 32.519 + .qfuN4"4-_8,Q1/i=O:C/&*E#9ea3!6UZP/=U(2J*AI-Eg8(oR45$k%d]H#E"4[4cKB#`1* 32.520 + E"j@:Bkc(`G!'6>ig;@CYR\N;-;Rb\Od!^qLWHEmO:U*O;1`JPRn6qEY)i*`DM\1A*;2Rj, 32.521 + $`(rc%]"l'`nh^'MG#d$rLD?c)OBFJ:%d)4KHmb8YrHAhm7ZRS'iB;%*'<#S%j&]`rA!GDm 32.522 + ,K/#VbmQbI4bZ%>'Ek'HY09]g&1M&IV)(H.m#a,$*!8It`J?R,j'sbnnkjUpBDAj[c*FUo? 32.523 + 6)G)>;`F771pIl,@(7#o3Z:;E(dZICP@u9Cf/p&0"V\^6F2^7O?t_k$r^jO9;Ze^hFOVGGn 32.524 + P^)KO_A#fW!Is+&&?+$Te6m-(mi3NR`nGVUWOTo.N"8G'<f42i1b.ErB=,('u6mT6$s1C\; 32.525 + A$7[c)!2ZcPRV3CC/9;3PhYc%cbeSf'iD%Nr]31<q_L`X6-rp7]/P"@VuMn/$Xl*'k2JTp? 32.526 + %HB0#!C^$NoaOl.4Qi`:)g%J5_`1mBJ_a%<X&8bAZ'Vu@bLgF0nP(SP.RJP6\sE7?#B4oh7 32.527 + mPT;-Ya?EPd%(#=c'D4S@?ka:PV$g`a%5o8c?5p_('o'L8cLhLM9H`:r$=I0a+L'ngm\jp@ 32.528 + BN1a(2&/u2(dY<:Eis0Ze410,%"dakYKiRKJH?^jX<!K#-/lQWJ`?lq,T.,'POqn!'7V)IF 32.529 + qS3p)<$0Y9+Mtp5T4c])`;RbKKq$F7b7X0+b9n<eV-l.Lt?Mb:r1Ks!KB_1?E-pJ_ePbLmK 32.530 + 6.(9Yt]_4jn=C5pog!df*#D/TNEZmImmF!@9<0:SJK/e*7d$$4Ui9M.(?`Ttp`ZM`Y@,?M3 32.531 + Vk2=s.56W-^")aW7"Jaa@>0H/Gd<=QC2^q^9XEYRIp)[Rob@DnF'll3bL%mcHaPuC+`:_uj 32.532 + ?(L^ts/uqi8WFW/2.Y34`2>:ZsYtf3Em<%\0N&onTpo+8;S1jP@'ZuF&;-N?T[o3Mc27i02 32.533 + bUq"J1;V$K_0#Xoh@@lN63(S064Ypf-4>I#&4R)e@@lPG=[U'u$Wb'o^]kR_a_S?0Cu]SDZ 32.534 + DB"RDARk=*&5iN@9C5$ndT#`(]e^uE<]%/c5_E!(BItb'QP(!ZjBUsDF\(A5_'VXp^Q2>'T 32.535 + 9F?U"".DKeJ!;EpNQ%QSfs&d;u6!?A>m/_7CPkr#;>M'g\c4Td7*GmL2f.$!*a7<N%%B;)% 32.536 + Q=mIl-=;2k'3cX)4_Vr__5_45r4>"g(U?%CM6$n$3`9Yt4W%=jf_i>)o6p(L1f(^Q3Cf0*5 32.537 + fkQ\N/^S[:tiO+&W[sY[//U#X9F2\^,,S8q+$0?L;Vab<MPSh5e*6U3HjIm4[5TDX<)5U;4 32.538 + QOqAVh@-'W(N$n\[O*%hgDe[Z)IW`"/_14nM1VJ:+i/UEGVn#Rc\&$``7M:8JZ]m:i88B9% 32.539 + 4jG(8&>LOG@u/*s-+BUTS41@U^gh+'>YB]ergh8gD).*GJ`>cdOcla3YcC4!!(^h5hl\_@s 32.540 + 3*'4"nZkDqOs,hXIlSK@\B`34-Gn08lNbMtjQ935d99^b9]HI8i:X2Xh]0l55PHDFt6O2[9 32.541 + L47T%-@*oVPa!QIZ]SOK5pNV4$I-!Pg!A.LrX(mYIQ-@n6Yo`q4lF$L$-!;DFt-oS4K?;18 32.542 + 7C/c-<@MCb\Bq^+hTZ!?TAU0:oVVu7u^l)s.<2Gap168m#_p4>eqB(:P*<F1skGf6g/=:t; 32.543 + S18HA_m5ZfGs0^"(U8I:3@gM,A.2V2#+;/-q3d[sW$f*u!k-]X.4K9<Xp^ni(DEDR!?4sXW 32.544 + Gc>iEg)1h)%7@E+\0[,<HMMriG97f^)R0b*\4K_@fG2V'Yg=dTD>O\,)8d7ZF0<&GaGI,3, 32.545 + :ig[MH[*#n'7[fn:W8rWW-<#nHV*!N$Q>+XNgU3Pg(`iOg)pBH>!8`s8CYcf((=6K@cV)3a 32.546 + *;qIDc`-FFYOV3';aTqZG9"fJ)2;spuig4cH6d`IeW)[t:2#X&;?#Cp5b#s`GF&GR*qjr<u 32.547 + *;^'.#!Ts-M+qUH?JAHFARG>qt7ZpS-)BjGsqQ_/e)_$!N)aG@F/,C,El)8egc]]qD/gMBE 32.548 + Ae])Ghk:"9eHE8jaeE_K4lC$soA';%FH"%#'k(Z%eI>8`IVu_b)Z!O!Y!*\R"q<+-E'"Ii1 32.549 + `58VnBd>7*9!>'B@%VU^TQ<s[JOC@,%IRU05ShQb/)gSQ8Ob,hNVF%$c.;E_6HrjE`AiD+* 32.550 + StETf<u-)Ao-C#VTVca'l'I5q@M]7`!&pH1M`+EIm(-]B:RmJPEdbD7lOp]_f\_gLTBH9d8 32.551 + 1XFFfer246_pF_RcE%$dTTQ^=FNq5.f=[)$2ZJ97<sRj]E&-PJTSnU!-V0H%E=*-A&;].Kh 32.552 + *1));HGo2bQ'2c+]kG#Tp560=S+[-K6%p:'82;!JnHr\.5=g$9rEl%-$pr'cFVA[5%IA*6$ 32.553 + "BDq!!r/I-XPp)r!SP(rT\=Ve<Pb9L.fd39UnZSd76@Vg`?I_*M*ob'%;YeDI'pqo0>4WDZ 32.554 + ]k?"15Oq@#^h0_ToM4PHi(^47QZ-*D'4@&O7=$/[.*'S(TUmegKHTg9jUTHUY'Gr=HNJ(UW 32.555 + m$Ad-.].]a,Ik&.S4n&_:HU..>?M.FPm]`LL:53O>-3a;[FH*T9<tiN10R[5mpjg[fKHV5R 32.556 + taU`#lW'k'KL5ml;t"$,/+O<fDn&JZCXUusk@/iUEIX8>J]a3s2P--!Ej2m3[$p(K"aL94H 32.557 + uq+Jt\WR1bSM`5!XY9,'3#4V*?,6=>E[^\XU0n_i`,BMKM!:nZFi>LIRh=d]R+DoJ][\m=( 32.558 + 'RE"c!Q#dDle(%lhu3Yq]4k/hm,%j1]HOis(@9]t?TJ"T(4+9h-67,jNRd@BI[1`c4`/6$> 32.559 + 3W2M(]c)u6(nq)4<=7B'WVu_^r,8]Zitfj'4SJ,!C>jVXlccli&cnSlT(eMA/&9:&QidQ5d 32.560 + Q2KA'LC36&Tsmh$LmC_9agh0KW)JBA=F1\'JTT-.&q;OKUqCBbrNng8le?rTFg.g)8j/&F, 32.561 + 8#iSY[6Za-0BmG`jQSmE.\l0]V[M]N+Q>M$CDL30@H$/g,2g728(!#u\`@Q,adU"8G9/f@t 32.562 + Oj*J^%OVqZ&"qKUU\5K<aeJ&oD3ID$sl_1BIj<i=d[ka+_V2s:G1[@>uNM]l0L.0e%JC?84 32.563 + ;A)^uLN/9DRWq`V"#@mR.$9Z&I0e>m37O:d$(FP'511a+fBo\#oO"7?iNN)cHhsJ:!l(r[T 32.564 + =+M[\Rh24%iE^^"\1OH^E$-TNZg:n+f69VDJIILnNg?5+V##kQ".?*ngZ5QM+SUK65gcB+: 32.565 + XX;\aoNE5N*0@<%]$tLI:&5(mIcE'oPN@&X_'c3?=/Nj%7?(!_F[>8`%m`"KklZQV6HS)3i 32.566 + E\24I>'&LZo/o($f[SBSt\D.o_Y-W(:?.BRW--S%fa'hL)R;l\@teXFHpY?e83X-NPsEEH* 32.567 + SXNVpniQSC@6(/[*1ZM2#O_q2LDDj!+f%"A.S+!hueoQP_8$Gcj>?RKN>,cBe`S&2+AJWqb 32.568 + )4\]aW2_3P<e_e*r:F9+,Yp"'8m0$I=h>U]pVXi#LYH\?)kGRKH+i*Rp`(=k%uJ8n/3+>L< 32.569 + 04r@j)b&;*g][%ea%AT*M1l$\_Z^rhqf1,NUc+Vq>ChR=,lqPpNQTY+.(8hrdMVN/B:p.o# 32.570 + `54`H[%PQ&l[d!PkofNZ+2$=TE%R7eu-A6>1r:HCnf;S9:*n+gscLL02GF(Lf(1=$[B[;Zf 32.571 + I.6s16iU*sPQMunQN5n:n#9MV&]3J;IE7lfrD89,r\502Y%P*1Q?A;_g,nq<a,T'(+E`L4a 32.572 + IIT[Sc3@\R%j2$+*$Y>F8*u.+U:sLji%,3[7lM4g>#3EqY-CA<Lc=R^,qc$4Xjlp)nRO1>] 32.573 + ELWlRkm9sWgLbW"#'l#?Q%[hN71MbrdNl089\3'7b5#?p#)2:+/"'q0p1tJ^l-<lX8"%S?+ 32.574 + 0Q\&>?:F9F'Vjija,pD2?HJ^=CnUm?Wd"jP@[m?AXd=8p4IVZT?h#iHmLJQcYG\)EVjG(pB 32.575 + >kh*bWl.<1AM*Z<kMZA-O33-#!?>R.,eGE4UhXoR<9A\_^SW7fb53RNnKL@1#=%B6M8HAf$ 32.576 + /XiULG<N+NAE7%+:a>]6)9U"k!da5-3H46N2-?tABE;O`Kq@"jpX3J!TdA9k%ehk*E<k'!4 32.577 + `Ohb<>-BU\dR%u^q>Rc9n==Jsrr8CIdo6FXnL:T@3@1XY<Qq@n/WDH46"aSI.(s2<\INKrO 32.578 + CuK3n\^Y@3F]g]#%:tX8*pL;Th7AB=!;J5c`5r4$(<&#VBc/;/hKA3jB,em2r.cK`S=H8Bb 32.579 + 9!1o--^LYk<%"2r<GZSg30O?CcrQga):NTB3L[q7r\_pR3Es9LHoj9>"9,nC"RRq4`c'qpZ 32.580 + >V;F;4rSZ9o-l:rk-)OZ.35`VuZ6+bg/.Zm:sTd+De@,]TVb(+0;GG93ZZ6f@o[l1=WM++o 32.581 + jZ&tc)TqcN:nk]E>M3LjN;Tk#QMfRG`/H+g\QSH;L#XpX+6>mBem0gm^4)?P.P3&+,,7MtY 32.582 + 86Z@K+GOB>RW9G;!Zrsm>"tmfT<#&h,'gRMBdXc[Z$E[u+%Dcp2c%+/</(tQPpjiuc'LR\= 32.583 + (*c4lOV2,&9/j#8niC?d8mP$U4n19X3Pip!a.SS,j#eT>F9;,3.K:.BE(LKtd/'KI3+!p&D 32.584 + @M`d/qo\O'+]aWL2hk\_@m98;>'1opTF3rfQ[jDIIN/'?H1XaBoR*QR1.-s8S!4.P(jg'&& 32.585 + J&H#2%oP6I`RQ&W@o$J@Q-*4L0S&@+6*.WX7g<1'BN3(^=*,B0M4qjA`NqWEAFt+<;J. 32.586 + ;riJSSU`OUm<\dkQ1$#2`V=H*nV,,$h5)i*'ubR(O4B%5S)PBLk=q8#%'';C?$mIq-YUD/b 32.587 + =gkrFuG:UMf43,.-&n=`aK99R6K!7ZZUBk098`!0sE9nYK0Op-*;CESbbRC[<&u'XKoVdp& 32.588 + HU?@HL7sAC7[/]Jj'6;Yfbm%X)jD=o16VlF:^O+#k9bh-QOV)G8=\sE*GRiK2\D2tK<Vor_ 32.589 + *Soh\X,)1BIXe6S0JG."r]seTFk[U>RHe80o)Fc*-2IT&dbZn#/I>S@g##N0j5:mKgAG[0H 32.590 + &F!`\doRP8p>??B7t53GQ6KY*ISM=*jCCCXmd8Nj`u1B25n5>H47%p;7o;Hp,E(Kc0MGkm* 32.591 + m80h44b0U<]E\tQbpa,%MI6]=ft@B(G;TZBTSk/U=<;'42!=:"P&N%cEM7g?3GU]\tl=_Bo 32.592 + :mEm3^(A'T@qf&;LA@rkukZ/,^2BbNiHOJiK/VAr&!fH!3#(l>*"`mE[A[%UCK,e1*<G<AS 32.593 + #o5WJ]oA#F@OOlgBRt]^k`o]*$3e4\$$U"@MTMfA<qYLfQhLGIRTqe4AcKQ5(B\&m&4LC4: 32.594 + g50q.D!/*KMBPK*(.siN/7VQ_GE3-#]OXP*$e/4:u<4XDU++?05,2>@L>Hee(Uj$7)`P6#_ 32.595 + LD`L/EOI`$!>?@Z5.4Tnk`RaRhX5q[fg4A!12\A'(,YkX3l)1+LqG(r@CSe521'07-MoK%) 32.596 + Q/<j!<t3/FQNUid,$PbYO('W-M-?&Hk+)j?@Bb@$]="^knF'&]!S_[7II]`FdJ'$3b`X?#K 32.597 + `%AH8IMpQc/7qhiE#]Nu!,qbq.`Cos$FO;*I""\Ru=/6jh5f9ifClg]O^c-6eitOgfCK_mC 32.598 + (rDjs#*_IlCOBZEKm'a<9?:V_@A^f["g]5EaEWc:9QX&q"kesX:Mfum9M?#k0;C4;MZH!s" 32.599 + CQ;o!i./pI-P;rE&bC:IcLcMmk5Vld33_uSW+ek.7B;^$?sMRedu1l0&H&cgTuBJrW$oRcN 32.600 + AV]B7i3ql+hOF$fRU4ltJ9&H;@h"dl]^G7bq6*UE^-R+T,B$6%*"J[\l9`KPqAEJhDg+)8c 32.601 + 7>,AUOqb\]mK#U7JP"sJLA":38G,@k9m#dQDpS=%CQN0fS8O=e%?Hg-04V\;Nl4NCN%^l=k 32.602 + 36aDLs')6\f!N7=+WE%SEaK#XjZCV4,EZLX/2Q!#^J&B[R0a5U%(*R^0FsA\PN?DM"JlZ>e 32.603 + *o5b%(P<q6a2:+c:&tNrMt!;sa*@V,6St?b_:i6%Go`Z6#FcAD01\S=0q<N$^R-8%'9`qUr 32.604 + &Fp/S/VMT5)c_u(Idgh#GTD0CPu+Y_Y?nC+nR^P@59(kgDWF(Y'?"g88a+db5aa`(]=4A*9 32.605 + >/8Ug$Z:_IuauK7HgtH\AP73m]^;#`Y%"ekK._)JmH)3#(r'<[lnp=EaTQ$6r5AM%$00^/+ 32.606 + Y+S[]`Upa<i_C;:ef^aoRQ4$Yot8urSO-Y&%L6Um-@Ii^jk\U.NmBJY7U?3a#BXK2[6J9Qc 32.607 + fHp/r^KkPBH!,2Pn2hi_6!cVC!HeZAn'c;I(4c!Hu:d5.m*<s;fL$3Qb89gnG%uA"R_C>9] 32.608 + Ca:@uCBo*&#.V:!)+t'nZiU?u$L7>X.]%f&\:qct-j0Gg89LTB!kSNu$L4jHJdDNmDM?/34 32.609 + )?(XHoNs=oL"Qu6``@!]EL!)#HTI<ZiFqIY]mJUlBjh>L4Ek@<'H/LeH[%e"s@9.-r_TnSH 32.610 + `ad!ru^s,T/b^5FokJJm_gcb!N4\=bU7%2!B'1)rs87%E2KG5)LkL8Os%94ba5+K+OsgPPC 32.611 + eE1QrA%L3QGr3,jTP=U1H=L\hWJ17AVj;S1^>+@;fS1NTRQ=tRBT`iNrF]PL']D+<1QV^cb 32.612 + c8:*_Z#KGd,&?pS8pc/O=Kq6:dKfEs?+P\k/I"nS5LM?:6"(4VaA$KEI2:P=?q#Q(\*JK;+ 32.613 + K$[hW3'E!m;?YWf\O^a-!S'8PP!2uE!o/\<'T=4K%u7B1L1k#4bBcC"E45R9Jl5a(k\l15= 32.614 + $JZn^8)#C8Y60EpC-m82Yu_@\86kD:DJ\)7tdL+r1HXjTh6<!#b4#aZj+%9U9HEb"W0r<\T 32.615 + `aAKrp#<b#mH)-ut(SH3QoKLH&:f&8aQ)B*45N"pc]1(g9H59bD,qa5^8*#YToXc9u/B8;o 32.616 + X7#Y@\3OqkQ:-6k[;&2#F/3i+fC"1Tp4=@NNLAHhp;6qHgR3+Y/+1WcR/Pq8F/J5?YNF%Wg 32.617 + b9^0VZQurMld6(N79_?e.4Ob-gUVLCF9hPGJk];>`*<h:Ra?X<0[+>cooEWe8"lNR>#YtSr 32.618 + C,LTtL"hTlN8u5][]sYXbDa!QJG-]LP6>9VJ/%<6p`>4?m14g>_JG`qo.\CY>dk@/S!d90k 32.619 + psCLCb($V]B_*O+p9QU;M)dX"UjWjbkt8YAV<2F2IHTL=XMJF!Djd<%c#UIXJE5B!j07TL; 32.620 + 8"bUpLtB63\ToY8%5$/.!kpHCcO,"`RBEil-XtJqageJiHrW;qoT">r@;5#.S,rpi?["E]? 32.621 + ^I!W<rZO<Drlm$)UZV$K%>)`ji]*<nJlK:;[r"J7"P]`l=J'1rBGX)!C`HO!r#:q\AW\L3' 32.622 + \/L6.8"iW,m`@t4"0aXV23/DmA:j^H(0rrbH`9:GC>FU?IHj@<N;cr=[8b4@k'I^J"W3$b/ 32.623 + 9S!A'2hMBD;$^<Y=Dl0PG/lC)QL,Ulq':J-P(]Au%P[C-E,GlT^5H)D2mi+4iqA*L63C*c" 32.624 + VOO%,+:UY"3&FG!Qi+[+En%BC/_ND<N,8M^^=)bk(!^a<Tn*rrEE;3@9+C(\;YE.)S8F+%# 32.625 + *Yob913ASN>=emF/n3e'[[6jZcL69Zi/D!ao6?oXG+4*eu;JLSUrS.!4'39@m9ef4a"GfR! 32.626 + k"-&jlI;A/2i3`r5_9S[:tL5UN'=gnT<9*:+?]+Ug;5W"6=A-M&e<gAGBGi0&s=9b%J=G;Z 32.627 + 8]`M"nA(\Y\(DqQ:8TgW)4,+Er=Q(H)TQaG@BiF%19208+GZIP(5u\t!"Aibi'$Q,h,.M$( 32.628 + =m1%^r:W%Y:`q=*<;<VRBI?"U7_d#rbk,VP-rnthB.>b,^K$J$]rYD^X]jP==OYG\jfTs&G 32.629 + lo`Nem[j[:h&,6Y`b)mLOac,BOh?=<Y4U;#%_@t5laj[5GIpS_6?I`0P@?G#)@T]1]Vh,3, 32.630 + o(_1P2huJ`mVu7AC3s1Y=s1Kt()X][p58H;?\(TLhm3>`OOY@lc3Lh(<'53GI;,eQlGY7e- 32.631 + 4C"c_>IDVJiPc7+I#J3o!5fbNi%3B1B"^i>%[8;<Q#L*[J[4d\+K"bTBh9,(6Xn8&@N_Q2? 32.632 + W<(X8T3p<m=,1UuK5LfVG;u6]Ll5FGXbX=)>h=OVZ!/%uY/a*THmJ($_q-T[<NtCj$qK1PQ 32.633 + qBj,lLW)1h>TM_TB#g-70_#[9$X'%%WEr1]2:L33nV[U)hZjF-#7,UQ#^?RSD'\uRJm+h28 32.634 + cmG#,Z%_uL1j55$5jatm/i-:"b</P7KHqVr>+T,iMlVg!%?fl*F[_6g@YT]^)eP8bs]A_,R 32.635 + @_1Y]4+YDq9V2(GK_0=?hOJ1BOde6&#R\?mlkO$*ca1L.&2Y3[0?`G)&d?g6JEtGY\Cn++k 32.636 + CPJUi"pXXj^eG)&n+KYTlW.Km43=Q3@F:X%2gj2;6`ETA0)j=WeZ[NAFK6_^nr>N$@Pi]!_ 32.637 + 57@=^Y#OU`1F[LoMZ!LgEa7_$N?#GA+63G#6gR)id-0^qAQkIbRKCCTbD1ao"ouTa+#KV1G 32.638 + NA1b'GG]mZ,rmidM4t)e?=]X:9_5.dp]KYL.HX`=Ao6&[/nejT5uoP4A6*Cg7<,QR'a!#6K 32.639 + t)D4G&*UVeJI.fKof:=mCL@!W8#]$Yh3&?id(g)Xp7+N9iRFtLh$X%3mSKqTp.CR#[&%b$] 32.640 + XXgkUC=54j>KR8[GoE'3haC@8m?a@S-!,kcCL>7S.:%NG.&Jk+M=p7Vc\s+jL@.(g&kP87B 32.641 + <"OW968L3R87;q6W<5(eAq=`/C!EHjA&g]h_'KqNCj)(A?mn:crW!Ta$>8m(2J`/Z<gJA.o 32.642 + ]QDan7W<Vdj4E=k";`Wt9<fE"2BjRu(2M:;oZ"k:WA5&h8+s4*B5%"C3lTrl&:ilrKe@l3& 32.643 + 4Q:^cc;0R#I>+_("_^egfP^u@GZQlo8SE.!:gXmO1Za2kR]/l3hD#7+lNLV;;W%OeBO3e=_ 32.644 + Zijl'70H%+?AYW[r!'Y=%IFdIaeD4eH,BpD'mkOHNWRk"`8ha8!\#r]XB]#9C8G#3[*-Pn8 32.645 + 8@?3eg,;l*sbRkZP=cG)#.pllFL`f#X<D9#@#"C*4Qdn3b'#CQA0GDX$rt0(<J"L<j<8"(= 32.646 + t`qXoVoDhcQoDehUk`qUX@?*Fh5Dm&sfS33+VrGT6n[NXFgC_h`D$LcsHZ4M?Hk]"oUk69^ 32.647 + bld"P#p>nec&dOH6$#E`4/V9WfTu0UOfD,aX2\6I40N=]:\7;QITL`YaW)V^-#(H\oHN^], 32.648 + ru[=fnZNdL^DnMqf-a#bgAGs\aj%n/CYc\ZncBoco,n9':P>Z]duD!b%(4"kKS0=d"uodP2 32.649 + %9hmBq#0%!dXtQQn\XBeHE<@6q+0#KP-KTlQJ.5ni&K\kU,n\7tf2LBZE('^H<UHfjY1KS9 32.650 + lI/M&)lpiq)FXLa[^@2D.pg:ND;H!pCtb`P7Xr7u)V:$s6L4`p4pQc\<9&"%:*3qYaU7*hf 32.651 + oY2ZYi`3M;%SV=Z-9/*-(eVcNJO=WH<^gBUlLXVhA@]9-jVoJ^!K)prA=F`^9HFB]UaL`(l 32.652 + e56:g<"Xk[s"0laMG_D@++rFU/^D_b7T8.0D0'HU5af&2N2-`<jp&B(RCI5C19nLu?F6@W= 32.653 + Is<'M>4MW;QOZq2??l4E,Wu]O#"WlN+>nc/?XQ\ZJY5Vg0HgLj<.\IU+@o0-80A%k15'%?" 32.654 + b:IIl6HDfN<q!;puk-@qJU$_cuW'r=B<Z?f9@8:B),cVE<'Ko:RHEac"Qc+\=VCLO`.NYJ; 32.655 + *M/[FV!r_BWtqCk`KeK4q7ZBZs_3'80I3!ba3;YXB=5W;5(C"NY@k-OQCNPD0:b"F%$rg0t 32.656 + Ks+H5&nL1!W+q`jo^[2C&fJ;:TUO?%ZK[JQT-9i_&qg;#sZ"DJCXQ<8%"LB!B:RJD?HSdP& 32.657 + n`&-!62nL1JKjZlmE2A8"5g*/n`1:nt@Es.#AqE7m#q]D4UT!_29I0VW$F;9c&&S9:E-G\A 32.658 + <S/5gG``-leU=(D&q>3*WFfOpL!]#<*.gm(T2LkX1X&:g#[=#-TP+R<:+*0L>;o"_0.2D)2 32.659 + [1[7Kn+*tU!4j-<rUfF.[Y5*kHY+M1#DZ]s!_:Zch%GQom\poIq\7u^\8K$H&%K0@NcJok* 32.660 + :FQBCda3aUtHW!jns^Bdf+iQ]o,_$\h#Wd.h+Md.UWn>K>3>(mI!^&;BDjoR]:NP"=Wo6&N 32.661 + &3ARMRgmDtLF+Z#Q]B%)%Dk&ibW:M8/Q"U9ZJSN0g\eT"]%W?qqNPj3#)]KC9lfX+8iB!kj 32.662 + G=)6@`"bt!+Z<;"pHUXg^CURGaf)(-Vl#Tm29UB_sjkY9nhf%-E"pY<a_I7E9Hq#IuMoK7H 32.663 + f_gIo-'OlaZHp2$k;;nXB3uPS_sR>rb%YtOI7C,7=]qdEdTI3fGd_U,p=k#8kB2f5^##kK) 32.664 + F7P+(fU4Zg3k5X^dpd5(0A]<prd/.&kI1kCmMQ_G@]G@(r9<i/h`IRk/3J&o\KCmds(EVq# 32.665 + s9g8YUYs5YT*_)P77kh"ST\*!l\^co_mC_+P*L#(R84+UAfZS/2OLd(D(A_bf,K%`?Zk5nK 32.666 + opZ2DtTkJK?,`DJ]`d@[ZX@2R!\dmefq,)LEo$\Df)bXM&lJKW$.\bpmuL=p<>Q6PO7r4aj 32.667 + $?tkjYM=Pq`/.o[8Sg>72CQ/D;HLEaJ&jeG`Aareu)bH!CTq&H7aZ.3e6/H"1_\AW<Q"#8E 32.668 + D3fl$gHa+b*=5'Zd-+=p_D$5P7aUdU+\:$\SLI1Ze@dQ.7$08i'ZFnlI*tqN*D'/$jr&Jcb 32.669 + Y;fb;cV@qL34Dh=`?8*PKWSu$/nIE9+V?Ei-$k'3QcZ5Kd!l`N$\U&<m6U#66W0MJAbh2,t 32.670 + Y[lS]A]!0AF9:^cC1??-*Kqk4u5b$t9rj=UX3QenZ/RL$<p?f=g\TNVD'sIZ9]iIt6E9*XR 32.671 + GVfKKn#iDLmQbXD*nlP<GSrYLIObsO%3N?Zlhn%2$$N.5=4*_<fn#AK>kNpj=DjCQZbLdI) 32.672 + 6OiVIM7sWg9<J/*<@L0fD?"_Appkfq(UU\`\Q\DEUHQK*@"Dd9f*iVSY"%KO&SE=gGJHe!J 32.673 + HoqdL\_M>g]0=WLm8,g`[Zk!@h71C]'/Y+(HbT$_mp"ZE^;/7T*7)T/)<uS<d;;=eEEl\'l 32.674 + 5^NRQ>lAaT'jcDVVuDkQ/]Sn>UedmjssasS/-Ak#K^d`)rmU8@9L/T?mURSJJ(/7Ar2mtj" 32.675 + ZB:hLJo0+9VC/#DiSQ`R.gOKiPsX9Ft)Nq9""iT;h+M(^Y\m63ap0l[.Lg_=7A0+0!$tEBa 32.676 + b*T,^<LnpT9<2ib<k(oCS_It-u\*X;_Q?&h3JcP4c9(P15t(]qd.^N;S"7p,L#_O,3Fi4^k 32.677 + j$U]NekoL0T1,XhXk8pRTBgNB%#fCI)5iu2u#o.D/JnQPO,/@#>Qt6]bU6mQCciV+NX<jS$ 32.678 + 22BQX+@I'#&C&D\@HMRGYp2Zr@O+ZJlCh30!^>Y=FB(Z25\g_#0Ijqq/;7j*B*k7;5)5g%: 32.679 + ns\)%oH.O#0:9]K'h22oqX*D@)<`>jDgsU4H#:EQ5P9N5:_:e'S15`(o$.C8=:2:c-SJ5^] 32.680 + m=2fd%skUl:Jb?;*qY2%S\%SV[lVp.;e_OO&eB7g?an#8)qDj^F5l,D^3J!36)c0Y@mH>^) 32.681 + 1TXJlEFeK)M#6k&R\&4N+/2Bbm?Ma9<J`hLD(mtCIs_3-$qZFCYNC`Er$YVYBWh4)eoF\WN 32.682 + M38l9&%'uJ0NEOcA)`6HCe%U'&)<@V91NbLNGu-o<gH=ZY"r:[LDOUif.n<_+-<'Vk()JMZ 32.683 + `F,0s@'s5Hi3!L.kdV?[=aQq&LbHdt(`:(+)716W"f%H1B;6;O%V0>7#O.Tm_B:e?d\]-^( 32.684 + u:lBhOHO`*DY=m#cGquSCAI2;!K>qMX30JcY;f1U/ZN=eNCr1iV!ocd2b=.KM0M"TiT6]A0 32.685 + #.W4U((`0LPVF*lG4(1,a)8'1ggbiB1Ah@RA,SC<.HkdASHZiEj]4d:OQ(>RN7(&-nlk2RR 32.686 + SD=HuQ9/7[C"iu6!@X!M<CV3S@*%SiaT5/_*Y:9sS@[tsP[1Q?od#iaBrg'SJD`YbrgM)CW 32.687 + iP*GLU>R=q9<KR^[PWFI/FVtmFO[4''<<\2F&YhfP9_;jXDI=Hp_2d_S_T$/A5`H82i*(kC 32.688 + MEOI+jgA0=n0/R*56,if?_EO""nAL:mg\Ztf=q#P4#4`(CeVQ%gnG7oZ9/d3`>@R'r(4GnP 32.689 + _=]@"Ua0q#Je0"0([R5_m"Lq;)gH8cq,#%)M*\UkV=IL!CQt+&2diCLrT-7/+5;\?%C'08% 32.690 + @q,=9f[Q'$E7):nPbE[i?/]pP6#>4ic4T+?/UAqJ>3X@X/2('2[<t7JX0#K+fNK9NjK2n95 32.691 + 7;Hk_Q[<[OrTmZb3UEsE8r0Pcdm%cO?pN?OcQ:pB?3^dC(=@#:Drr$bpFJ0,:fcoCTVIF#h 32.692 + o3bT=Y!0D^id+SFeBUom4gI=PY/f8rX*>sqBaKcd"$)9)K\YS*omMfY4=_EWo(]jK=)0%KM 32.693 + NH*eu_q<+EpB@5q&B$7l:rTOb/9'p:Vlnkf#9+TZXptJ]/>ff,*Wq(4C!Dp%7,H1'g'i)j* 32.694 + LF/,VUaDB[e\UglTY$UmPEnm-Nh1oC_^R<Easo6Md]^%_0WU.62WJc8M3(0;"pAf:a^nCAM 32.695 + LJm^)=g9(SJ%@^rkU$)P]#MK!Y'[_0G>d,=cfp)a9b3/<Jl,";pZkTuQko*TPq)O>2WT&__ 32.696 + ?"aS^e^lG8^$,HiM4-<P!i;'a="^sEah,TmQSrVfU-^qOdc@9)9*6?Qc]SZNa]g__85p 32.697 + ^5r]RC@=-2/V,3[kXE/NUX4I.1?0fJ!CsRO=fBfYJdfQn$%fJ?>(X18E69mZ6Lq!fspq.?K 32.698 + ,^^,Bq#eXp<sZ[nTg;NU*6'u!*(.sfO2I\EK5aXg"(5/d^=hT)-9Ldi?d*ef2:sBI9'fT%q 32.699 + g#c-5)75X\;%e&O`*XeHr0STJdaL&:ia3<D+5UWk^JF5<&[.B6l(ai=575Y4NEQ[6dblugC 32.700 + fr1`0brFIm(E)0;KpYTJHAl8/D.7[J'U_cg3A6cu%+@6:<5Ij_&s&#(_R)e;3rBUWd)#OLV 32.701 + FsTOJ0Ob]8^O-b&,<fa7_,hen#ji1^J8B([=[Pb]dZc%u0\9G]tP$7O%hn(@bs$l!Y5Z+p> 32.702 + VYVuWf3s3hnfl+Ucan5cCqA=d2MBcT?#>B$^8k*aS*bfEtj_u"9ed5dO*MLoo%u;;n4;*4D 32.703 + G"SjG6!+RA^ssVC5cbe_6h6s:BH;Z@)iq350W%8->meP#1S?$%7][$F]*e&B$kU:g&4FUA, 32.704 + n*AVmihH3i+ggE4r;%QYjfq*623kWWljfM#"+or.LI65#S-s!Ju$>X@58G2V%"Ym1<RD694 32.705 + C*Da;Da8?XV`*^g.S+iZ+'A'*O!,!8n(/3YRW>L@I&6;+D=WjO)!RdLaY;WAN1"a?/>t&2. 32.706 + f6A.K0$m&U2u<tJma@I-.9Jf:>W*Nf0O5dUh`DAiPAi$28A6"CZuE;>%ZlQOIQEMdKdCDt% 32.707 + ^)\H^%6o$SR[i<`0*!iSRNlN+g()2<X)WP5BTktdDf,G6Z/;^)<@0R/EE#2pA$>@M>bl2)q 32.708 + C_bpC$1Ipg8EUP8V"B_d0riM>"J@t*e-Joq(SUi[iNNN,.KP\b)fd_TZ8X"k4!W0;^bNk,1 32.709 + -g<s`bo6+(ZF"?6e*A*.Pehc-5&irTn=\C'.2.&/"rOJ@163J(^^DH!c=1(E;US#KFEC2(L 32.710 + arqEe5J)\gU5&)IZ>i6>dYrWiop(-H]X(`10$MdMbE7-B[.&;TC+^at/,$/IZ>Edap(6g3V 32.711 + 18aO!L1a1T&mYqEk^0*2t[TUH+&`]NGaVS[?jo*,I6$4ep'/n,SPXa17O)B%!F.j;D<ThHo 32.712 + o8-qOR&tjs^6"\W$:?/%4(kL&@cN'bKO9WO.+3&+?_#lQG4#P2D-VMJf5U6]cCEdXEDBRa3 32.713 + !cBK]MXEb'%,lCi;\M-B\q]/S3<19a5f#IEM`K7Y3X-.eUGf)kaZ:du21Yfq#oj1'W"T0Z$ 32.714 + c,LB+C5dl6FWYM+m,R=kB[b>\8'I^(/p(qPNG1@"ppL]'_Cn+P*dT4dMcPY&E&!?+Jo:C7K 32.715 + FV;'4@74U#6mKZK8p`*[1,'L4g.HrY^?_+-&5t"<[fr3Y/S^0O^!i!cA>Z8jX"=ct"7/oN! 32.716 + ;o//KG_$,JS,^d\c`@KQUH"+VQqe94-a<BBc$-V;Hq`i&lM\>rS[8JI@[70tRY<Cpfpid_> 32.717 + -:bi$$#$_-:!oP7'^dnU8\u3=U"!eulFN6H#q+T;T61-9,eCFp?g'Y4D$8g`HDDD6c%KM6b 32.718 + #iJ#N+jq8PNpVI2*)M5\5g0SoGU>!N#5"le5XSD0YQ^:5c2]"^#IFRJ.L4KVc<uG4^fgn,* 32.719 + WY+'"#F[!e=T]l*dE7Of;>V\[9$>8>?03[W8pQi.l?=kb2i5'D\V1<2()Iid7%I33oP3`<I 32.720 + 7i'ZiGUZ!$Qq-JK",G_Ag>P$ils'.RrmCC(T>4&s\AZ<OZ(o*d!Ze</Ja&FiPh[K3T/;>nt 32.721 + dF<1?q]e7>7m?5:"T9,JP1Y&J&p!4CoiJ><D\Z@Pe,W^-Cj!K9];Op9lE!MC>3p%;aYZj8Q 32.722 + 20N:PJcm]=1-XtX[@fm5Uk6D_ZgLDQE7DM?&<Z6<a`WUCM4k</$FK,=,]Gj/@qkRs>_%mq7 32.723 + _unpM$$K<]:buDYE%g/bBE2CQ<DR,uMeL\&BbEL;E(;f%P$mmC&GC<:<*;dXnS6XN6/]Nci 32.724 + 26^Xl5O^E,N*GBi?)hNV,?/R-N`'=QIeZ\+9L-N(ma2rf&pq:lYb'"?'=;ejouhAqaY$'B4 32.725 + 7-G<0e<o$YNiT8kj>H:omZQjs2&l!FSiB[R_)k.PLGJ#mRMMiIu?=pN+qNF;I:)2Y1Xl6sc 32.726 + -IA<du72+m^2j[rM@@A(aOJB&-d.N?GY"[G3`=!q41S-+Y!0>pTnf7lU$RdsNR^+u>gpQdV 32.727 + EOa5QNH3+sF@IgC4R3[!N<T/:O<_*_0]2eA^#1`@$+:2_D1).Pc)ZYBl_,#%N)dcSp!u=E> 32.728 + GNLUr[-Dk>ZjXkbGP?%:+:_KQIi&9<<p+dQX#el;;ZoZd?qk!0"P!*MH_B\3:q@(_[6gRS" 32.729 + 2HAm[Ik.iohmQKJIa0AG#CX`M(5gIKK)na<H3,A6\T(u&\)=TG?%l`eeXO[E<$;8Z*a5`q? 32.730 + nF3'K"9C@AAX>Z!2&H%[^Sno@."Z%n]m(%i-IJ=Jq%?TnTcaMPUZNPeU=f,?tkbD7+\[i6* 32.731 + +GPTCqo!PhoAQkgj4O][qKig@%BE%ViF`Yhn?Nu7I?esBFgooDN_$[DhVR-e07.L(#C8jEW 32.732 + :E]+A7a:Yh:6f@eaJUN]HM0NFAO81Sq=Z;P$h2dj`O4cQj+bu;I-3P2^D)H<_i8mjE`_k/H 32.733 + 77$>B!"K&f-]!d*+_4@mi#)VL/=f)-PZ`X+=biB#Bo;_D:d@,FTM#A5`"$r;()`l>L8`%e> 32.734 + 9n`p$,Fpj1qEh,BF/(,#d?&i@!i2i2gMrrSJfnI=k5=<O.Cr9%KP2oE&+^5rE[7pc,h)T5c 32.735 + P+*JLt<+)Bl<b+9A-H((<IB%K^;T_!cJ[Zkn:8OT[<ei*i@1rM&!&UDbq`=uIp,_OhJ$FLj 32.736 + G!EmPib'r8bkPi+im2:ZA*?:#?^)aUD@Entd@X;UkP-C%>@^g[K*>XJd7#9&2/d5RnJ7B"q 32.737 + $W>[^GZ`AEKP!c&a$m[!aer)I4+:MGW3.YA96m53r8gd%?"U#q_3lXN$6Q0>JC>+7E(o=4N 32.738 + 0o!M%Xr?&t>3>4?h6)Db)&i'4)Y6*-5H@(UFlBs:;i!7Q2mC*lYl]%]G!lI2S3o;-(gnGk= 32.739 + ssRl6*B<!'0A!@Q19=X0=0CsgtM/&"=a_i9;o8RSXQ\i;m2q2rMJhh-R!Q>;qOK"?S,JO;A 32.740 + ,Zl,o-QOHHj:\[i9t09`)2$L-WT.\JF>ue"aD3HI<Bm\B9I:S#<+FW"OH\\i[71;F9GW"OZ 32.741 + BCA)"FKi01gC)6oKX&QUUFS'AX6*D%&O]pm90JUP1'\.AK)(-D-%]D''u6+FQ'10BK4GbJU 32.742 + `'a$N@8J83/3,QGN)o:;O\9n7m!u\mB,J]Tu^rmb7'S4(n*Pn6n`"'OU_"_ZhUBa-!`5\pt 32.743 + @VJ269?"]96V#r74@<,]-,tQJ_PA?lp+=00[DR*9_l'o[r,9Z:6UW9&(0m"Qr/qgbX[F@I` 32.744 + Q#%!ggm\FMb/5\oD1b,goN2WE^BVI@XNK:gj_B_Jnj(rbFI#?4JfEZ^WIi<-N)^e4Jjfs28 32.745 + s,O`dH<,r,'bHrQDtWbSAsX72O13UWg[nbm!^/r;4lq8Zi(NC><8K'JsR\*[^eh`Va-(K*0 32.746 + Ce+AuJ9dBfCiSO+p`s3NXRct"BJZ_>b,,LIh&(>WF%4_EVhPLQ.@;B`Bu>q<'%Z-h^9f2N_ 32.747 + I4[;mCM:WBpe:!?/4\]\H$J.BNPaiAiHl$X2ms*Gj64;,JrKZ,k"4O%fZGM%?]]_5$N)8?T 32.748 + gTjD7qn\L[dOeal%iq/[4eVb$3SJjDg84.O)76Zb+lD,2-jY&1bFf8j*T.$@abHq(U47XIO 32.749 + i]t-h$",E4qAl_q1/Gm/H+Pa?0U'/iS&ir?L,T;IRcquXqH1;-_'ZB35PY:7L=F8jTAH#,o 32.750 + >HJJ_tiIg-TFSJpZ;)mH3LHd_[#@U2T%#Fm,Q46X:egk,rJ?+3EMrkl,'2I?Wq_\`6pLg&* 32.751 + _]4mh:cn`0lF.fL7LU25SXh?(^!FoKAH@o($TX`6[MeNE7H^31lp61)&,aatVu@VtBoM9;Q 32.752 + 0dhk#P]NrJ4H11aa*58EB!f?4?H0[S@l[49?r.X#m(2Xq=F\XJ%T/Z>Y;on&:59WcL?UMra 32.753 + #Og2gnAhrJ@2W1>$g:Wro]E5'I\ZRZbM8\KnGbT8D`^"MZUs%r.pj7>59J+!,L!nMbl93g# 32.754 + "lmd4o+!%gnbh\ibdphJa^?\9Ki.&+s6(/EVf^KpEG+P4X`Vo>spim+eHSu?C1%cq><IN'R 32.755 + [0\s*t"LL%npWpmh`dh$s0#&c"`ns+*GnOB==\&IF.XiK2]64s:Mp7,j>2ZsGI)NCMrjf^s 32.756 + VY+d#=VP$'W5;(7c&jc\;=^0raa9]hIJeD('bSMV^URH$VV3h*"@Zl1bnNBno>hA"Vu-?W+ 32.757 + _!$`4>UcO8GT@-N#fR6q=@Bir$Q<Q5<d:p!lm?ZLK[Jb)ngtroL[GC.o]"Te8\*a1PJ\ba` 32.758 + Qs;Nj4tX`O:DhkV59Z028K9`oZO\dSc"?R7H>CC![*`N.RU%hD;5r)\opX][^L=C+2KkA.o 32.759 + HLkoV!T*X>+Hk85EAnk>Y)=B:WS7\[Tq[55G?KhFS_(lMu*<t]=kC$>M]#PrTa1USmO=l'J 32.760 + 7=7]`-f39.JoDk'd8:[*(\-dJa*;ht-jJ5VNlW!^N^\Q6rR^q?HkrcpFbiU+3McNk(/?Ta4 32.761 + !kUNf_TXidaW-S#$="%9CN:D?5P;@;a%/$$8L]Bbs('umMcDO.sh=RdA$Z+K#kQuVbQpHbg 32.762 + 36s<-E<0nq'Z?2]e8h2&r.Od-HA:_no[&FJ5/d+"l_T8OkLeNU\GVi,L%+d0VP;K*q:,A-t 32.763 + -H3$]?Pji^]_:hK';YXn51.f;`lF;Q%bO;ZRkZ'`'QXX,.5F=68lE%(02,;$dT1J=W_=Ib5 32.764 + mg=IFN^[H,n`1[8hW,s[;*0/<]+%q<mu3!Dd6?mK^=-!9>^>4c`\(+@T]Zg#,'>O23tRG8q 32.765 + e-p=t(11UJc9#YA@E$e[KEO0`$b=PjP^MWD0=6CGFCZ]Y.?O8/7[kWFbJZps%E2%s2$beb= 32.766 + MaQ0!D]=:=2&5@:oY%Y@gieWkerW3tQY=r;DpC+)!JQ?csb2E"e"\=PpHA2tBlA)t%`8n6Y 32.767 + cABT>LapqEM\G*RhUlh(Qf9kFH2Fj?O\as6ZY0Pbi))'VpJ#$"&;KIS,3?B<9i`^K$MPjRi 32.768 + FC/f,#.C')Rdo4<,6uN7WG6c<ca7O@/S.ppH.H'*mMBW3$6gCi7"enq:%Q&8>PA*4,^&7hI 32.769 + ->l&K7[3Q%i6PV?j<+??Wr&(ZLTilmJq"paZ7Wrf\"E*]&O;j7s)DQ:5msTVcVAjY)2u,&c 32.770 + Iiig-#2*VQ@YFDY)]H8qVAI9d;ugH'bIp^UG=imIB&+C:AcGH9R[lTUu_LA&N'9=/YIO*-W 32.771 + Rof\Dp:b5=&n1!Nc0\<HV665SKsr[<p%qK-3SFA%*J2th-=TM,:bn,u'C1A_".0q&eQ,b5# 32.772 + s(aNL0UcKjmkF4s#c<!*P,**k;+GZUU$2_[b.tjri!YA/a&o/XEBUkQWl9Z4/5A%be$'aEc 32.773 + $@i7!Jrh#o6ae!-?Fp8@;">bM8%s<o)Ol+^!V40NR/.?Ib8cX5r/"pd7#(&0#Vfkc`Aj7G: 32.774 + :NNI"XF+<0p<Jalt7mt>ST`6Oo]'3:Q>LV3>]#2W/8Zi9JBk+4L-$0'p1e:,UH>YoKsXj8H 32.775 + 49>&k*J484&muClK&s8L\>#YKlam7ZpM@)H_ljUtUW]0eQ7r\=A^b!:#gMr`)2P&ljVWYEW 32.776 + mom=r_s(r-_E%J&X`bHbM$-1\>C;Zno#0o[n^>$<:&>`cV.pdAO)KQom?5=h_l2H=N@O_#B 32.777 + 'b_ZfqVKsAOPD4'%GH.65dX6$jNcc-54$(iLTg"[N'1u8H1+0<<T+[f>&7`:/kO>%8!FgT[ 32.778 + M?p;;/I.kA,\>?,R6sK@&"tgJNXg@a2G+6$UB1d^6IRe7aik;A'/D]_Jq"5k6nt)t3;BWn: 32.779 + /R"o-m6^opq(R>DH@8e+E&$]Q#\!CarH/1<<f-<8LhMd]*!C[%](5!(82p091RII7b%V>4V 32.780 + c)2"a+@Ob/u88W&UWRQ%lP'$8;d$ksbY1U`WXB5?h?oA$-Qd\Kb:8p*rIuY&#tsMs080C\< 32.781 + 1]('_TW3sf>322AFOp^^K4Oq]HiM6[mda]U\SASec@ZPI/t=h?\,D"XF-(%s)AC,@'8%B$T 32.782 + LVU\k^=_hksYHu)tfbJ'+Cb<'([h\g4>Heo^CH?8A[g(XC4,Irp2936D-KSLER<*7gcajo^ 32.783 + l!6BM?pVc`\*9sr?*J["CAY4WQ0.UC432]JX?`=8Q%"A/flh:Vn%KUXq-Q5JI;cOf^DH&2? 32.784 + b?,`DtX.G(^C(L4:-RX2@%&8-O!nj)1umO&&K/R$"5qFKlFI:_\d"q@D"Q(Yk>gBUIu2*X@ 32.785 + \7g0r8i+NPc9=MdA,!g:`%.%V%V8NH)Bc`u*t[A%[)JEV;W<)$_<q4Gf2@2Fkk,-RE<9R=5 32.786 + ,W:C.n,BB;6_Q#a<7/U*e]`#Q"hnW$>f)2BqY4NX"42J:8PV_r)!fpd&+DpB6@3G1GCf"h? 32.787 + EcNBLsA_d*RF7D$/=LFpeqo:d?+mu@6*7iYOZJdFG35+m@7;4n5J:]\G^7\\)#9>gh`dX3& 32.788 + )M_0%4Td#f*i#_R)cRgu'<9:=N*Be]=Z,+tDtK?uf,E`#Se*!ID>^IBqZL*h42J).2TO6eP 32.789 + rttLn!>q$'%L2Kf';(e@C:^C)-^VTD7V9;[]\NC"r_gsM%s2Z%;Q3f%_(jHft2/<b!m9UmI 32.790 + '4_[!/47g7-m*m</+O2t[s)6VDiH4pXga0*b3ZO+gb>XuCSY&)n<3;V-=m`+&0.il3'fnWL 32.791 + f)([`E.>R-91GcSpF4VSn0oECGO,Kj?i`>IBsPB/p%,e0Gkk-4H9F->:tq;EpcbOY-*Y)'0 32.792 + 7#=mt?4RIb"R@XO`oBI>Bl%T\H'=tT"NeW`%PN$h=&4YOA?&,[%N)JV>2Y-3Qn"'08aj7S- 32.793 + ,j6crc[npURd%k22)N[N!C$;V7fR^Of7K)&cF-%b1`Ilm"3#Mj_qB$:B^q+l[J:GDgUs4!m 32.794 + OTJtH+eM+b-9mt*aHu[W7Xsu2lH:OYJQBN%itRDWV.CONq7VHm$n$=p;ETHH]f];=E>Juq) 32.795 + e\NW+k]/1"R/T-LQN7F=;T^`nf*#L6MVL;Yp^Gq]B@"qb!(GR\.+e`-^>>&ej`$s%`?A_t" 32.796 + Z7RJU5:le2;2pjYNl6+;Pkk9&69ILl'>IiJC%0p%"R!K#3_LQaoTg]XU/rkMpe5ElAfKBth 32.797 + 4]XD>J^km\.j9qq`b7n-)^sISH$'5YL)o3ac'Ou1b6kl:269Dgj_/Q\FHl'V_`P1@K6()UU 32.798 + bSu?os1d%pR1OAT"%fG)-6j-XJcm=!BMZ3iH,7uWM+ebXEEJD!SLEKcM7_>h!8OA`K->f8( 32.799 + PjDq*#=@/c]YjY$.9[+>UMm:*fH.BT!D!OKJf(6*5c#&5HGqoOQqup=X@H-_sgo!"(K0l6& 32.800 + ;$Z*`OR'69lEo8#FB2%u`:ZN%KjCDCDipM<mPs_.]hsmDFlVQ7P'a<'*=?4@J]%2</$jb7= 32.801 + U%&31G&`Gg=F1g!.3Q8#*h#XWI5PO$28?'M,)4$-A"S6coZ:dT8$5FbV@&D0#d,qk>t7WHk 32.802 + 0F2>ji)+BFMW>n9f!H>MMJ%hSPP?Hn7W6`CiW#a#N(RV6>$u#tYcc52PMO\P'S9U3M)Ruko 32.803 + 'RX@VCh#\_*sKG^LB(J2?uJR=JOg3#a>ALi7"Rs/K?.;NaCL(IFGS"SM9(@-8<f"Q`/D^dM 32.804 + b)ofaR"o-oT7/tOi[H`aV9q1,a6>LPf[I#8T^6>I$Vm-RE:\M!iROM;Z%aV!J-m]!WYdpJ5 32.805 + ;3\HU$k3LanMoKO"j],g&r:`uDquC\!@!0?(/MWS!aj9VP/,Im[pVRM)A`m&cLoHpQ815?o 32.806 + 93BH;e_+TZgg94YM)Cq%TP\BC\X9=27Q]Xl;)^!"p>bKR`EjM4F\^s"(?bV[.07)I/A_ou* 32.807 + "b[ec<>fb-2a\7B0bd>O:`6(d'bKSbcbiI*ooY1DT%0H\4]]mas%+MhPYs$=+,M[(RP&?:b 32.808 + fGq\[`1WX=OGTc(TT.1H:%9:FUgVIC3_L_;b;8]^7(#_lcH]t^c?.FYD!4WAkg$!gcEuh2` 32.809 + 9PXlld"#JcK+H>gq&%r%KeKg2_Z7J5[@/biOuVM6B'S=AG@,!fM?e'#U1,3Z'PfVp.sW\^m 32.810 + ]>QCYI,!3R0/nc9(O3n19/V>69$jKp;khI0WT&$.+qEd#AF[V$p2.%++)Fd.IiF"V/oh&() 32.811 + +)d3TIR*>HmY'i@C7d<-5PKbdON(X\cjdA7f0[2dSr*RVhI;:Q`9"Wu+d'`e:f0CT@"YRZ< 32.812 + Q-(jC=$(:qB)e2ZcCer:.c]R'^]_KpVfWYf5dd[?5%53p1!l:-(^@Yr7&B#lf2D;,VK-`J$ 32.813 + 879\ER]GXDe$V2lCHVnNM$JGmdn5GESLu%i=&5YB<#H:D3rl.;5La*8;[l3ZI54*:1Hs>G< 32.814 + .Me-?l?*DiC6pJ<:llB@!5N`i;ocQKmcn9Y_!88#$#/e!?,3qHd.;nn3-gmeZ`o@`Cm+/5f 32.815 + uMIRsdYs]gU@%>ui*Ke9teh,tUCF8j:Km<^="s?"gqb71W(*23;kfK6.Gk%+aN!K-V_,@bC 32.816 + nbWrei4f&-sndPq;VB;ZJN9nV\3JU=)tF]W.#O;qUG*3e&"("Q=pemn&IFa]/]oFV?;=>N\ 32.817 + SN)ko(r%HPb"iZ$=*HtE*qUPg:=Ic.Q]NbcbE7fl)O7d#8nJ#'k%9NGj=:L@KE4pf3Q&3pi 32.818 + -kIpf(g=iheCD?OYJN/J<BODN,M88g;T57CV.#Q3O%N)=g"iE`V3"kH!a-KNfdl)c4f+!#5 32.819 + h_uT5Y+ViJCjlsXfngHg6*dcm>B5\Mp6[U=J;(;>hd1n7NgoJO,PiR]s$1P_:ho"O7fBcNM 32.820 + jJOW8"P=,)C7M3C9p2#[AW$gZfs:%CAR#TN`GV=oGT2/4_D<Y?X65M]Dc4XT;\35q6SZWdI 32.821 + n&e(i^>c&ru]08MYp7FE@@`6[8YgkDEU2+(VFLYGd#^9s_A<SWFYs4>fW%kYFZL![N@dG== 32.822 + 2NsH-M78:(8Wno2Uh-ms%FkO]-a&:I>b)gjPJDCR$Rh4q`hJM_<4hBMNl.uOIh@nRK-1R*l 32.823 + D_:p1?WHjXKn3SGpl94^^h*,NNV),%!o9kC"o\JYh>lIK1tTZ@7KrmRIJZ7rr&oc4?pOaPg 32.824 + Qa$_V?),Ni3j$<AceJaMG=oq%8I'kecn94#@R'#/9!!_<Q\`&(#`[hhjtUBmLVUc&NpmB@= 32.825 + \'g8Qc%j*Rt?5iV"A0Fr0-<aPi?Z@AD$)[NU[1;HB1sK?bk(<[cskqVC99ig@u"/,A0db$n 32.826 + *rNfu,RQi^b4k$n$>j"qZHke3lObeEL$N(,A5L+U&u0&pp(=<OOD[QL/fle0iMj7Y^@2DiS 32.827 + Rr*7f<-Y:Sj?-gK53BUn7A2)Ro#cgm]"'4nUA@3cFISAhLf]!Z@M_6tR?:I%`7qD,=_+57H 32.828 + cktkB*N/CBit)8N2-U+69]`+PjXsd!^pc_g%D]DWM^D7b-;cm+;J#@CK=5:(CZhE'.V<(h+ 32.829 + :&($Y%ZLFq?PS\k-f&^SddDd.qZT%job,8'>S3,DN'B\B.s\U6hd;fHj/4m1scV45\B2FEb 32.830 + D7qM"XU,Ya&htmq3$@B-)GZ..F@k8L!B4[b(a8q"05?L""V'BQf0G[R!9.Y\*$R&^Ec_Ajo 32.831 + -@I_1&Ykchm5l5g!JOfsu-!^;gWn5<]_O6L7\kJigE#(=5:N]Ubn#"V7:\75Y,2egj7C#5H 32.832 + H#+t/rT5#^Gl7Sdq2PfV-V<U7Al;jftAuFp[W9U7YC::,,^8gJ<Xm4K?lHZTuk-/UoYj3X@ 32.833 + lSc"`7^D>TZg1Z#lXmWl?F]<E\SHr1laFCj`k#s:]Be=dlfPtJp7[(O)M))jJ62pS0J!9U- 32.834 + <#n'l%[7<S]iHN2XGsXBp7oJUU7l,<s#lLKh*Nk2UCb#ctsQHm3^<L*n9R8eSRe+m<7(JL= 32.835 + U4-fBo0^mAAY*[bU8Qh<i5=D:[S3#2ehaheje!mOmJd2WX9qjmG=pmT/LgB'8TJkjG>3DRS 32.836 + ft^?Y.+mI&Qnm`t:hk4!9^nF%^om6E(N+:0_G`IRV-KC)fXY5$uTQg^#pm(;V#bH^EjcL3C 32.837 + UDta2"#4ld5!H8PMn2CF<7fmX2"7TY#n7N!qG6m\V$1N]WE0gq$`s_<[-uV`[!RD:0Y7QJ- 32.838 + &aun9iElA#0T,>2k\nYLBssOJ#/9Vo)"FK=nXgb?Y8d#`*:`23EVCLDruU_9+n?Enndcu9- 32.839 + R<^k,k>RolW1jg.fB@W#QSO!"%Y1OD\Vcn'(JIDLlW:b2\s"8O)jh\,6/ghPKof.39^r/o6 32.840 + (/se_]nI'kkG(kgWCL'<-%#3O6K<-m/X@[8&b0Pj)O=F>aYMmmDn$0KnS]\kbK];\R(&6<: 32.841 + )6k\j#a`YS2B9Sac[4jQVYs%%7ko#=e4=$;3@O&Yco<T1\eocHsm[no*J;0??X[`E#+Z;q% 32.842 + Y?.k4*orh`]B$!jZb'!c<on1q?PFV<D@]E8oK84*<!)DXbAp1$ZiiWc7Y@DXQn75c6(46WX 32.843 + f4F[%EVCi$QJYbck@;2dA@\m`G;ja?LNo'@FEGiO4bn2@Vg!?OIJ;oRPF"8mYB+ooeG$kKp 32.844 + Xan>7tgY8E_>T54F_nU07geQK"3gmpg8sSa,H)ZH?@2a4MQb6+,bBqOngAfNh;>RO,lE$O> 32.845 + uEcGrM)cLR=&kCZY#)q,>B1@uU5-R<dteq=)8p(Rk'DS%NC(\@8%)s.oKmV;/eA+o<kP062 32.846 + @``VMBHqF@E/a/o-fnG75dG_`8Ah`Jd&WjmhbqVSXV8$n)\?0:$\GE8`9=0af8Z[5cbqmX2 32.847 + "B83Zj?i,%lH\9+\PCi\0]R2*DqU^sR;>(&^&U\62kZC8C9g*lBao#V%L0PT]2p-N:^&0h7 32.848 + r:eO-(Tuu"^AS;brAW4(8(<h``-k_<rHHllLY109M.9l6m!%-2a5$XFh>QN#r>%_C-f4h=i 32.849 + Vk4ar\pKuqXf4Ij8N]RrcdQ)J<G=nkl.LFrjV4lhgg,&ljIr$^lRr5kOAKfnZ!ttqM41]'J 32.850 + ^;sX,8Zs&uTHqD./Hco`^]U>?NKVKjF_@>;/$k7i6b0?r-PC((CM%6=E^#A2YG=LdY]L32B 32.851 + S,(Q:gn;7P\14WfbVA5YE5Q;&`k8nCo2A@>bsQqV*j3Mb5C2k3WU;n:u_I6XB$BN.#=(6(h 32.852 + [;J>OaA+#l^W'..V>,=OT:49lm<3#&']jJ!0=r&l1PQ>F(>&@<H7CL*P\4UU]Mi=s]d'AjQ 32.853 + GIqFtl[Q]?n!G(?G56p3@W6;A?5FWCaCK<o4Jl13Qcs&_=hNm@4eL)7FBUgSQVAg(5H>N6P 32.854 + M2u.X&^`Hh*0G-T60L@>I?ZhDnhUuGPd_%mhNN7n2XCl(G<>>k]C^(fFmo*e`V+&?,#KG^# 32.855 + /=(HsT#bQd+^cH@9,0Ni,rTfB_;n4dBs=p\[ID?b9V+mXuVm$L[kV7a);=]P_M%!^E_9re& 32.856 + !6KEhCj`lo"b_,._$%)Yp.4V,IC$q1cHOXs3?`=YdD'uc!`go%jsMdWJIXe]/?\*N"j*QJ[ 32.857 + )37CApjEh$5EZ/^8aO3bI--;<dSL;PmN27uGP,taB7H`E-WN*4tSCu'V$H",6P9Ll#67tUY 32.858 + 1bE6KggeV8MYT*<ZWd2^3>'r]Nl#>To!OOC%.bVclWj(e/9#(m2\D-t0Y>_oBU]'!;_pj89 32.859 + X6-"+3oR&m'T]SJWDfEFR;9!c#as!N_d"XeNf1\<CjLDkTp#=;3Z)Y857U!.36kN&h@@`c8 32.860 + %%RXOV_%hU]+MSS-XlNMU@CQE@9)gD7qtVT&kY>1^2<qsA6*M02S#67Eq2K?*C+>j+n*.ee 32.861 + .u7@!4tdOp^5!a\MmOQ9bA4-5>#(^gi8h!7,OP20e.'mEe>K)IL^G`D$9U=[[!!+1[oeUP' 32.862 + <2?o(I\D$+dU3LDh@j60K%?BNfNb+X@RBCCrk8DQfSZ@pqo:NFmD8NC0H01'@i"f/bF]2<^ 32.863 + RY4O>o6c1nlcr"X/ot<?JiJdmkd.l,L.VG!0!5tB6G"/`7V-C(#i[!B'SBDZRo7R%6E!:&Y 32.864 + H9E`P-idH2H58o>)L_.d0mh7`$%e9['?;Cl34n<."94BTNaGb[*UUFh6sQbHZQ^B)k&"`!# 32.865 + ridKC=&jeYDW&HNi)?]^!he(VJ0&c4?H8);'0T%u'!;ShH)`q&W2"T4f,Lm@h`F<f[OTS\k 32.866 + oj<bl&.m3/VZo8dGGRu'/@-seaCmKfF^Xe4qBfS-o;?PnE6r'%!5r-lOZl?1i*b2lsAiG$X 32.867 + EJu31nlIs/2,#@:1]:o`0b:Dg$:T_\j_Y3lJ;t4AdgkELD"U?+5\pmE4_5LI*6"#4;Jkhlk 32.868 + (76fJTnG.T:sKtH=D\N+_luc_CtBu]Y.0V$3G,?X]eN?PEZfE$JOE?W^-U]X@Ta@s^]FKI7 32.869 + 4MK7Gn*0Dpk1?R(g7`4#E.]80YfZBE$?HQC<#rmOU+R2U3'4SjB="O;?%BiF;6")D,<7f/H 32.870 + H-1@fR++aMK6"`8Y;TB$chi7kt`!$Ue,@Z1,-/aFtr$`0lfeDGEdV4X\L]4";\!)8l0)&7k 32.871 + q)MIl??4h2RWA,umR`LXfDR:8QpK6NC&d?)NA1E7Z>$(&R.HOD%L,c26'47]Jdb1FHIhTWm 32.872 + '?ijMo\4\G[9Y2FP:,u"F*AD&HhB<OJA&kQW1`=MrRI^o*bLsifk6.cU;pK\b=m\B8`;-!F 32.873 + LjUEr8r[K3jD3*7q])$U433TP2_S22O>SsZAk@7k$mh)V\@Y-W]WlSk[M);T^Hgd-F+/1`l 32.874 + ,IFm)G=#[U%EYadZVdAbA@tT<+^5Lg1s18/M!^"hK;M\92$"11--*RU/Y<U;<gSAWDtMu:W 32.875 + `N^a1VJPMcpQ+3+!We$,iQlU6SYkfZIKr6=N6TRT93t67M:b2t^3lN<pOj-B2t[L?>VMH5\ 32.876 + GPNBa=>%^@!f#jc8:Dm*)g^rGXnat$DMKQZqCfD;CTm"LS-<_ge?>:a&minoOA9$=<ujW@e 32.877 + ,MQjJ_Z]RjF?RDm#['RVOfU?#Xm8*ea[E@+MZcd"BXP1$^g<s1L+_f-UWOI#=]\9t(D[?SL 32.878 + V3RpqY$51Jll62>[W^qA>HN&9`S%k)D"b!L[4(##s+hJ2.n&-i?nOap+B#M#&=]%jBTWO<P 32.879 + ]GjAGM?5<[F2Jh@URuldR%_XC73]1rQuNjI%TfuG'Fed>\k?tLrI\D3(i5^CZeH2-5j^'D[ 32.880 + p424br"0R<d+EU>c<>H*Ch/^Z7H27L9ZaXsB2rd;X`_3KZ7<NJ<`M\?imF9l1D5B#!!:LZ6 32.881 + t.Mt!l7`^=AW9-a6J-Sl1FaT!:]%"1/,,;d9(lC-aLUPZ;]@E_l811je8M]Q:%H-\W,8pnp 32.882 + Anh^7OUb<+oqSA&)4upEGXFnJL6p_9q9lO60g.k0t6*^E84P@aLONd$V10(``d$HsE(8t@- 32.883 + (/iHrEjKFkV4of$MNN,FKBK?=BJY+:eQT.WC>E0rbdJ_.30I6V"1X"aJtcDD'aW_<5!nD'I 32.884 + j,P%4ZP"^NiM4H^"52Ah[Pf:h*iR)H1N<61a;h&rIVl*hcqQMFJ1SO!S>g8LMRt^6hVk]+8 32.885 + ZtdkhI4J2K$X^A2e2=!^i(:VUpFsB2\/pFdDJc7,GM->B!mX_>$M,iERpjlQsB:?B5LS)L@ 32.886 + :nk4O\tE(tb@nALF%4JN[,SUOet:)90a3b0Z'R@.4]&@t_V6tTLCl02&M/XN@0%CFo%SmoR 32.887 + GG(H2RU,76pPAt%H,r_/0kRb-*EV/).:^g:V=m^X0^4!T;cR\-G-^V9Kh:BY#1eo%FGLsMQ 32.888 + cG0ZJFDeF]]A6#c\-H!]4a(+P*a?k9h_e4m9>5W,rSRMXJY,%cc/(YfBks]p<Z!;m$?clkC 32.889 + H%))4d-^],Q5@_B&2k(ad@6W'>K>f7'E[9R'LWHL'Whj0g7pWGp<p_2QJ1qosfkSWl=.KY< 32.890 + oZC8't?bJ_X9:[]!Nm_u*l$nbu&#q+Fnh,:]C"5$=IV8hn%,ZjD`5C:k.8hBZN_c1KQOMbX 32.891 + )@D#a_2R_:5%:brp-&J^F!<!%VJLKCPI?Zg>[O'tOk,O1TDOH<9+1iL/AO89:rY4E+\/8V= 32.892 + d.+nF<7f[+>r+/@N!n@//lMVpR<Y*jU!]'`?;#Wl<rf5RlmAU$15Tu4?'^uJ0km[cl[.k$r 32.893 + "3Z<"!>u#8;#2kc#;C9*E-V\`o'hRUc-Ui`%c[h(>mRZo#r%VNE1%$:SI+DM#RtJT#@RoMW 32.894 + $G3A$LkG2E4H@\]aO>F1bb`b$qh!Z&FJu2Bo[0B0\Ho>h$rl4%PZriXO>@4V[d:A$S_(ZYk 32.895 + J[4r=AE!&2==t0ZK@&,7nD)%oEoN;%XDF*>.fb&htZ;OUCps-;"jf&5b4rnMq8f4VR?O'IS 32.896 + MGY721C9bd+p'er]'EEO$];#-mGq=.)md:jB$D&2Y](GU%KDAa3"*tZfB(QjCgEJYO;N>V2 32.897 + J)(@9SOG+Q?1kC7D)@]S*Y(Dt#em?\V0Ti0'&ZRHp?rSE1)^9a2X9TWjboH9$*ANTmOUiI" 32.898 + cK4&H*Xp'VL%P6Dh]>AYZ%)i>@Y5>'/i\]FkgA3/EX<ko%.B;C`,NfKZ48snWdgb"+n+@ml 32.899 + oO'<*-JP6r6<#1ng+I\Kca,Hmp_7rMqTQ+r?8ID,r/IHC5X5^K+@HS3H'5e,&&BBo#$P!p4 32.900 + =@M!m^Rm_^<_3P@Z^=:_`gOk8^83,k>FoEg\A^S;'no(c%[=V"F?.DC)Th!s9,(&sOY^ZD\ 32.901 + u^T10`VDdY[?]..jK/Mbj.A]ZDW)(gIp09U-!Eo^QTcFWT7^7sdCC%>]7oZm\8.nKsF`L.r 32.902 + eo"VCY:k`fb72l7;Ea[>S1,C43F!tWtI.4D118?><^sH5io!Cg:1XOLmBsAdIO#)tg%;9e> 32.903 + &-DNZ/f%*;Zu/??k!\9o*agc]2`#S8F*L:*/fq9/1Ga>3dX=%?+=@h[mS\YeNhnYNOZ>3]K 32.904 + Su<QmGs1#0\O`.bO.@*;G.(N+u(]FFFfHoc20KlLHP1U4YtSU;VaKVj"t7u4q']+OttX!#s 32.905 + 'P\\Z)Je+pr7Ll6/kD43iN6&p,;AI34Z44k(34F;[B>]fi_B1,JFFniY-PV_l9j6=t!]A0i 32.906 + Y-[bl06+RJ,S$imtMeC[\14O?YHJdd`?0f`,\68W7CFD44>$J%\#+`qQboAh3>1oY2n/JIJ 32.907 + *e:)"M5jk?db-ZmHafprX;Z*7AaAdLVFK%m>X\.SM-.HuQ'&Q=`\Oa*!i<K*BP^,,WE?A0$ 32.908 + +NF1$7>"3/f1jaF9@W&uFQlQ$\hupfZVZ8p[-]^BVCkjI]4n,q0uP\$^h,"ETT8=):i=]ZY 32.909 + 4m#A7PnOB;e&E6qbm)A;`-BT'HpCaM,<fdee33Z1f,sX5e5DI7<K[O&-GZA=S(&d;q5G[F_ 32.910 + O=14'&X]<@nGLbVjC&atcsl>`faqCKW^+,>sSD;H740F`CQlSQYP72tMYtQ(TJSK2n2$bRM 32.911 + u#'E0bPY$3Uq8Q-'iKn.\gO&F:g=V#"J<NBE5h-KR\<qYAtFh^rcbuA0!R%llPYk(pq7!,0 32.912 + R?V$u`_U2>j6X]T9>nuO2Fr=_nf"9"K(\'(ce)OMb&hbW["Di'^/3O!-;^,6u;5/&;No=?^ 32.913 + &man[KHlB7/ONE7=].adlkV$^G%kQn5@.B,,n!stb`PVc9X49"Akh\HFC$9e86W8Von?f>E 32.914 + ]V>W6VK3/m*::9`F+9cojCgACGrS9E8=/RV'Ztfdo>=Xnr7I.m)7@XZ%=CHZ^)n<N`qU1c6 32.915 + K/,f$A6Ac>67Cp$tOf2Yh:"r<[XeDtZ+qJh3q1;OZ0cWCH\*68*<&SgO0f>&s'c1;Pc-]$A 32.916 + ME0biKTWJais"&1]XF>lX1DAR7N8KXlpi/p4YQVVb5?$5mL]2q^M,&WGUQP+LZ>^'n+GBnD 32.917 + AI%F?65*9K%iadk2YnP`J@i'uIGF<`cS;%],C_r^RilH+\SJ!\(7$jfuGI`(0]NUY7Hf@.J 32.918 + ((CrOaS_CDI5f])GM+q++M8I9G^%nkGNjRcm=+g!+]c8#Pdu9&rI=SCJ2d^UQhPf.#CuR]J 32.919 + N+BqF`Ddg)1hQ+JiG'.F,,>!.>%=LK/b`@ERf@lF`oM??Ijuh\3^s57`<qPK]=G62LC(D?% 32.920 + r&^<gSE<2s#/U,>].,]6J7,<tg<JI>@TK170Y3pi[qXMN\m<CfOhu315W5SMupkDqL3uR&; 32.921 + fdHV`:8M>4K:Ge#+WEGP>6<u39/f?1qpAg2-bo4NIRG;3!i%Q^U=>BnGc(rip"b?G/B+un$ 32.922 + Q+W69*>=DZQ0LfIEfXm6U%?U,kJ@NKt;<T_i"d"<RBr1IqGhaD2\rnX!W(HH?UCfrj+OCq* 32.923 + ,9r22QLC!fnuBe(PPGfUH!-E;LPdqNRV1f12m6@C#i,o\RkF%o`$!i79fik'O-rN]f^D^QQ 32.924 + ^1A5QBtT[67-Fp<L8:Gf=?@e=bAGsL*4$b"PI^Yft!T_]bS(d:.PdP2MH%c,XOGM\+uoaQ^ 32.925 + "p&d9F/KW7f023QmHb0:a!8SO9Me3V-6;f:EjQS,*;]H3k;=_b8)1g3Ao/.0WfG-_3..WEK 32.926 + sKGd8N^)fKM%U(jA[q?s(04eqM1L3=qC8Z/97r^cc@TCt-W<]H\>9;<C?<I-(&K))&S*GrA 32.927 + RV`JsuE1`fqYo\e7UO"C4RICtmfV6q/BA/)r>(EdM"s^^;W:Ij*.;`nTH)g_GX"TC/eE!Z/ 32.928 + "Q!%=TA!HlZ@OqQWH1+dP8_,TXu!.:Qm0,bO#kUd>-4i/mB6<Ti4?HpX+;5D@;6u?FTV,58 32.929 + i]o*AZb8?YHQr"F=Enm$a;t@Y`LkNH/l&s*NqOZZTC"o3>I%P)XSH[KXRk`q^[udT";O"41 32.930 + bJ:4%HQEDe7FrMRtgUHYKpi6[e(/PaDngCu^`&m%Thb[<_/>].U'EH\K&MRplo<(Nm5lP:p 32.931 + ,*[bIXiH`3p4pK&:CV\Bf@R;Z_a30X!g\[GkW]48JMX1\>W]dRs5oVgT0]l;sCAhNKpl7!] 32.932 + RjgH#4^0.,-]A0Lbi#u=s,!5+r@MccUaf0Xi]j);gHl/M;7>A3*l+n5%!T?&LQ]:glRY:iY 32.933 + `-7pp>3b.)N^ac!S$jPh56Q/5T;auj>UdPE=i3.u`>gsb>Yem&jrHQP!#l;<Htr[I_kUHUa 32.934 + ?50tB9Ru&4]ZU*"8c>WR+6+[Q6?%#49P<L9ErA%/nmoAaY7ALkU2VmPT_$@D;;$Ae%"'-Sg 32.935 + 7RDrEQnSSCu0"gh0jE9$e_9RBe"Q3e*u79fVhu:TQd&LQF:-YlZr2nh\T:p7D3E/oe]/@Q2 32.936 + Z'(HFVOORN_*dgaY4oa9LpBidUFrAi??4B``be,;_bI7_qu0seG]eD4-TI9G+1(PZAkefjk 32.937 + ?I9kF;D:\Z*IA:C)$D8H2Hld]e94VcqI>QUiNS+2lffbVRI@8d%S_<t8g-):dIAtr6XkN`Y 32.938 + gHDt!IC\+G^"`M%gc`X3IEC9Xc.r9Fh*'<EIG*Gih;/%ghEBuWIHfV%mG@g3h`^YiIJMd6r 32.939 + SRSTi'%>&IL4rH%H.3tiBA"8IMq+Y*T?u@i]\[JIOX9j/`Qaaj$#?Q_Q[\3nfT%~>Q 32.940 +Q 32.941 +showpage 32.942 +%%Trailer 32.943 +count op_count sub {pop} repeat 32.944 +countdictstack dict_count sub {end} repeat 32.945 +cairo_eps_state restore 32.946 +%%EOF
33.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 33.2 +++ b/0__Papers/PRT/PRT__formal_def/figures/Time_in_VMS_1.svg Sat Aug 03 19:24:22 2013 -0700 33.3 @@ -0,0 +1,407 @@ 33.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 33.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 33.6 + 33.7 +<svg 33.8 + xmlns:dc="http://purl.org/dc/elements/1.1/" 33.9 + xmlns:cc="http://creativecommons.org/ns#" 33.10 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 33.11 + xmlns:svg="http://www.w3.org/2000/svg" 33.12 + xmlns="http://www.w3.org/2000/svg" 33.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 33.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 33.15 + width="744.09448819" 33.16 + height="1052.3622047" 33.17 + id="svg2" 33.18 + sodipodi:version="0.32" 33.19 + inkscape:version="0.47 r22583" 33.20 + sodipodi:docname="Time_in_VMS_1.svg" 33.21 + inkscape:output_extension="org.inkscape.output.svg.inkscape" 33.22 + version="1.1"> 33.23 + <defs 33.24 + id="defs4"> 33.25 + <marker 33.26 + inkscape:stockid="Arrow2Mend" 33.27 + orient="auto" 33.28 + refY="0.0" 33.29 + refX="0.0" 33.30 + id="Arrow2Mend" 33.31 + style="overflow:visible;"> 33.32 + <path 33.33 + id="path4008" 33.34 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 33.35 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 33.36 + transform="scale(0.6) rotate(180) translate(0,0)" /> 33.37 + </marker> 33.38 + <inkscape:perspective 33.39 + sodipodi:type="inkscape:persp3d" 33.40 + inkscape:vp_x="0 : 526.18109 : 1" 33.41 + inkscape:vp_y="0 : 1000 : 0" 33.42 + inkscape:vp_z="744.09448 : 526.18109 : 1" 33.43 + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" 33.44 + id="perspective10" /> 33.45 + <inkscape:perspective 33.46 + id="perspective11923" 33.47 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 33.48 + inkscape:vp_z="1 : 0.5 : 1" 33.49 + inkscape:vp_y="0 : 1000 : 0" 33.50 + inkscape:vp_x="0 : 0.5 : 1" 33.51 + sodipodi:type="inkscape:persp3d" /> 33.52 + </defs> 33.53 + <sodipodi:namedview 33.54 + id="base" 33.55 + pagecolor="#ffffff" 33.56 + bordercolor="#666666" 33.57 + borderopacity="1.0" 33.58 + gridtolerance="10000" 33.59 + guidetolerance="10" 33.60 + objecttolerance="10" 33.61 + inkscape:pageopacity="0.0" 33.62 + inkscape:pageshadow="2" 33.63 + inkscape:zoom="1.3364318" 33.64 + inkscape:cx="448.37508" 33.65 + inkscape:cy="648.10677" 33.66 + inkscape:document-units="px" 33.67 + inkscape:current-layer="layer1" 33.68 + showgrid="false" 33.69 + inkscape:window-width="880" 33.70 + inkscape:window-height="1141" 33.71 + inkscape:window-x="889" 33.72 + inkscape:window-y="6" 33.73 + inkscape:window-maximized="0" /> 33.74 + <metadata 33.75 + id="metadata7"> 33.76 + <rdf:RDF> 33.77 + <cc:Work 33.78 + rdf:about=""> 33.79 + <dc:format>image/svg+xml</dc:format> 33.80 + <dc:type 33.81 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 33.82 + <dc:title /> 33.83 + </cc:Work> 33.84 + </rdf:RDF> 33.85 + </metadata> 33.86 + <g 33.87 + inkscape:label="Layer 1" 33.88 + inkscape:groupmode="layer" 33.89 + id="layer1"> 33.90 + <rect 33.91 + style="opacity:0.44897958;fill:none;stroke:#000000;stroke-width:0.10000001;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.39999998, 0.1;stroke-dashoffset:0" 33.92 + id="rect4618" 33.93 + width="413.02609" 33.94 + height="158.61386" 33.95 + x="216.25447" 33.96 + y="368.18201" /> 33.97 + <path 33.98 + style="fill:none;stroke:#422fac;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" 33.99 + d="m 219.06883,401.37498 c 128.4693,0 128.4693,0 128.4693,0" 33.100 + id="path11721" /> 33.101 + <g 33.102 + id="g11990" 33.103 + transform="translate(-60,0)"> 33.104 + <path 33.105 + id="path11907" 33.106 + d="m 298.82881,392.82004 c 0,30.42814 0,30.42814 0,30.42814" 33.107 + style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 33.108 + <text 33.109 + xml:space="preserve" 33.110 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 33.111 + x="298.7023" 33.112 + y="376.52615" 33.113 + id="text11715-4" 33.114 + sodipodi:linespacing="100%"><tspan 33.115 + style="font-size:9px;text-align:center;text-anchor:middle" 33.116 + sodipodi:role="line" 33.117 + id="tspan11717-9" 33.118 + x="300.05582" 33.119 + y="376.52615">Suspend </tspan><tspan 33.120 + style="font-size:9px;text-align:center;text-anchor:middle" 33.121 + id="tspan11940" 33.122 + sodipodi:role="line" 33.123 + x="300.05582" 33.124 + y="385.52615">Point 1</tspan></text> 33.125 + </g> 33.126 + <g 33.127 + id="g11984" 33.128 + transform="translate(-60,0)"> 33.129 + <path 33.130 + id="path11911" 33.131 + d="m 378.82881,392.77746 c 0,29.45519 0,29.45519 0,29.45519" 33.132 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 33.133 + <text 33.134 + xml:space="preserve" 33.135 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 33.136 + x="378.7023" 33.137 + y="376.52615" 33.138 + id="text11948" 33.139 + sodipodi:linespacing="100%"><tspan 33.140 + style="font-size:9px;text-align:center;text-anchor:middle" 33.141 + sodipodi:role="line" 33.142 + id="tspan11950" 33.143 + x="380.05582" 33.144 + y="376.52615">Suspend </tspan><tspan 33.145 + style="font-size:9px;text-align:center;text-anchor:middle" 33.146 + id="tspan11952" 33.147 + sodipodi:role="line" 33.148 + x="380.05582" 33.149 + y="385.52615">Point 2</tspan></text> 33.150 + </g> 33.151 + <text 33.152 + xml:space="preserve" 33.153 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 33.154 + x="352.7023" 33.155 + y="400.52615" 33.156 + id="text11954" 33.157 + sodipodi:linespacing="100%"><tspan 33.158 + sodipodi:role="line" 33.159 + id="tspan11956" 33.160 + x="352.7023" 33.161 + y="400.52615">Program </tspan><tspan 33.162 + id="tspan11958" 33.163 + sodipodi:role="line" 33.164 + x="352.7023" 33.165 + y="410.52615">Time 1</tspan></text> 33.166 + <text 33.167 + sodipodi:linespacing="100%" 33.168 + id="text11960" 33.169 + y="412.52615" 33.170 + x="278.7023" 33.171 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 33.172 + xml:space="preserve"><tspan 33.173 + y="412.52615" 33.174 + x="278.7023" 33.175 + id="tspan11962" 33.176 + sodipodi:role="line" 33.177 + style="font-size:9px;text-align:center;text-anchor:middle">Trace</tspan><tspan 33.178 + y="421.52615" 33.179 + x="278.7023" 33.180 + sodipodi:role="line" 33.181 + id="tspan11964" 33.182 + style="font-size:9px;text-align:center;text-anchor:middle">Segment</tspan></text> 33.183 + <path 33.184 + id="path11996" 33.185 + d="m 446.59318,401.37498 c 138.89067,0 138.89067,0 138.89067,0" 33.186 + style="fill:none;stroke:#a94c26;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" /> 33.187 + <g 33.188 + id="g11998" 33.189 + transform="translate(166,0)"> 33.190 + <path 33.191 + style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 33.192 + d="m 298.82881,392.82004 c 0,30.42814 0,30.42814 0,30.42814" 33.193 + id="path12000" /> 33.194 + <text 33.195 + sodipodi:linespacing="100%" 33.196 + id="text12002" 33.197 + y="376.52615" 33.198 + x="298.7023" 33.199 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 33.200 + xml:space="preserve"><tspan 33.201 + y="376.52615" 33.202 + x="300.05582" 33.203 + id="tspan12004" 33.204 + sodipodi:role="line" 33.205 + style="font-size:9px;text-align:center;text-anchor:middle">Suspend </tspan><tspan 33.206 + y="385.52615" 33.207 + x="300.05582" 33.208 + sodipodi:role="line" 33.209 + id="tspan12006" 33.210 + style="font-size:9px;text-align:center;text-anchor:middle">Point 1</tspan></text> 33.211 + </g> 33.212 + <g 33.213 + id="g12008" 33.214 + transform="translate(188,0)"> 33.215 + <path 33.216 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 33.217 + d="m 378.82881,392.77746 c 0,29.45519 0,29.45519 0,29.45519" 33.218 + id="path12010" /> 33.219 + <text 33.220 + sodipodi:linespacing="100%" 33.221 + id="text12012" 33.222 + y="376.52615" 33.223 + x="378.7023" 33.224 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 33.225 + xml:space="preserve"><tspan 33.226 + y="376.52615" 33.227 + x="380.05582" 33.228 + id="tspan12014" 33.229 + sodipodi:role="line" 33.230 + style="font-size:9px;text-align:center;text-anchor:middle">Suspend </tspan><tspan 33.231 + y="385.52615" 33.232 + x="380.05582" 33.233 + sodipodi:role="line" 33.234 + id="tspan12016" 33.235 + style="font-size:9px;text-align:center;text-anchor:middle">Point 2</tspan></text> 33.236 + </g> 33.237 + <text 33.238 + sodipodi:linespacing="100%" 33.239 + id="text12018" 33.240 + y="400.52615" 33.241 + x="590.70227" 33.242 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 33.243 + xml:space="preserve"><tspan 33.244 + y="400.52615" 33.245 + x="590.70227" 33.246 + id="tspan12020" 33.247 + sodipodi:role="line">Program </tspan><tspan 33.248 + y="410.52615" 33.249 + x="590.70227" 33.250 + sodipodi:role="line" 33.251 + id="tspan12022">Time 2</tspan></text> 33.252 + <text 33.253 + xml:space="preserve" 33.254 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 33.255 + x="516.70227" 33.256 + y="412.52615" 33.257 + id="text12024" 33.258 + sodipodi:linespacing="100%"><tspan 33.259 + style="font-size:9px;text-align:center;text-anchor:middle" 33.260 + sodipodi:role="line" 33.261 + id="tspan12026" 33.262 + x="516.70227" 33.263 + y="412.52615">Trace</tspan><tspan 33.264 + style="font-size:9px;text-align:center;text-anchor:middle" 33.265 + id="tspan12028" 33.266 + sodipodi:role="line" 33.267 + x="516.70227" 33.268 + y="421.52615">Segment</tspan></text> 33.269 + <path 33.270 + id="path12042" 33.271 + d="m 267.24968,477.37498 c 232.74658,0 232.74658,0 232.74658,0" 33.272 + style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" /> 33.273 + <g 33.274 + id="g4352"> 33.275 + <path 33.276 + style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 33.277 + d="m 364.82881,468.62956 c 0,29.31256 0,29.31256 0,29.31256" 33.278 + id="path12046" /> 33.279 + <text 33.280 + sodipodi:linespacing="100%" 33.281 + id="text12048" 33.282 + y="506.52615" 33.283 + x="364.7023" 33.284 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 33.285 + xml:space="preserve"><tspan 33.286 + y="506.52615" 33.287 + x="366.05582" 33.288 + id="tspan12050" 33.289 + sodipodi:role="line" 33.290 + style="font-size:9px;text-align:center;text-anchor:middle">Tie </tspan><tspan 33.291 + y="515.52612" 33.292 + x="364.7023" 33.293 + sodipodi:role="line" 33.294 + id="tspan12052" 33.295 + style="font-size:9px;text-align:center;text-anchor:middle">Point</tspan></text> 33.296 + </g> 33.297 + <text 33.298 + sodipodi:linespacing="100%" 33.299 + id="text12064" 33.300 + y="476.52612" 33.301 + x="504.7023" 33.302 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 33.303 + xml:space="preserve"><tspan 33.304 + y="476.52612" 33.305 + x="504.7023" 33.306 + id="tspan12066" 33.307 + sodipodi:role="line">Virtual</tspan><tspan 33.308 + y="486.52612" 33.309 + x="504.7023" 33.310 + sodipodi:role="line" 33.311 + id="tspan12068">Time</tspan></text> 33.312 + <path 33.313 + sodipodi:nodetypes="csc" 33.314 + id="path12088" 33.315 + d="m 238.93024,423.61086 c -1.25694,9.23477 24.14401,17.15062 68.20717,23.60165 56.44943,8.26442 56.82059,19.8861 56.82059,19.8861" 33.316 + style="fill:none;stroke:#422fac;stroke-width:0.99999994000000003px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" /> 33.317 + <path 33.318 + style="fill:none;stroke:#a94c26;stroke-width:0.99999994000000003px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" 33.319 + d="m 464.69712,423.61086 c 0.98989,9.23477 -17.61775,14.97151 -52.53717,19.11208 -44.45606,5.27138 -45.92693,24.37567 -45.92693,24.37567" 33.320 + id="path12090" 33.321 + sodipodi:nodetypes="csc" /> 33.322 + <path 33.323 + style="fill:none;stroke:#000000;stroke-width:0.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.99999998, 3.99999994;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 33.324 + d="m 281.91415,423.61086 c -1.11723,12.05605 9.34615,12.84312 48.3972,21.29812 48.67875,10.5395 57.28475,35.47541 57.28475,35.47541" 33.325 + id="path12092" 33.326 + sodipodi:nodetypes="csc" /> 33.327 + <path 33.328 + sodipodi:nodetypes="csc" 33.329 + id="path12094" 33.330 + d="m 517.32918,423.61085 c 0.89929,13.92511 -19.38736,26.89157 -51.01833,33.88658 -32.71104,7.23385 -34.04727,31.68861 -34.04727,31.68861" 33.331 + style="fill:none;stroke:#000000;stroke-width:0.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1.00000001, 4.00000004;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 33.332 + <g 33.333 + id="g4338" 33.334 + transform="translate(8,0)"> 33.335 + <path 33.336 + style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 33.337 + d="m 270.82881,468.62956 c 0,29.31256 0,29.31256 0,29.31256" 33.338 + id="path3246" /> 33.339 + <text 33.340 + sodipodi:linespacing="100%" 33.341 + id="text3248" 33.342 + y="506.52615" 33.343 + x="270.7023" 33.344 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 33.345 + xml:space="preserve"><tspan 33.346 + y="506.52615" 33.347 + x="270.7023" 33.348 + sodipodi:role="line" 33.349 + id="tspan3252" 33.350 + style="font-size:9px;text-align:center;text-anchor:middle">Suspend</tspan><tspan 33.351 + y="515.52612" 33.352 + x="270.7023" 33.353 + sodipodi:role="line" 33.354 + style="font-size:9px;text-align:center;text-anchor:middle" 33.355 + id="tspan4072"> 1,1</tspan><tspan 33.356 + y="524.52618" 33.357 + x="270.7023" 33.358 + sodipodi:role="line" 33.359 + style="font-size:9px;text-align:center;text-anchor:middle" 33.360 + id="tspan4068">start</tspan></text> 33.361 + </g> 33.362 + <g 33.363 + id="g4345"> 33.364 + <path 33.365 + id="path3276" 33.366 + d="m 322.82881,468.62956 c 0,29.31256 0,29.31256 0,29.31256" 33.367 + style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 33.368 + <text 33.369 + xml:space="preserve" 33.370 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 33.371 + x="322.7023" 33.372 + y="506.52615" 33.373 + id="text3278" 33.374 + sodipodi:linespacing="100%"><tspan 33.375 + style="font-size:9px;text-align:center;text-anchor:middle" 33.376 + sodipodi:role="line" 33.377 + id="tspan3280" 33.378 + x="322.7023" 33.379 + y="506.52615">Suspend</tspan><tspan 33.380 + style="font-size:9px;text-align:center;text-anchor:middle" 33.381 + sodipodi:role="line" 33.382 + x="324.05582" 33.383 + y="515.52612" 33.384 + id="tspan4070">2, 1 </tspan><tspan 33.385 + style="font-size:9px;text-align:center;text-anchor:middle" 33.386 + id="tspan3282" 33.387 + sodipodi:role="line" 33.388 + x="322.7023" 33.389 + y="524.52618">start</tspan></text> 33.390 + </g> 33.391 + <path 33.392 + style="fill:none;stroke:#422fac;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" 33.393 + d="m 238.89805,423.61086 c -0.4091,9.23477 7.28119,14.97151 21.71296,19.11208 18.37311,5.27138 18.98102,24.37567 18.98102,24.37567" 33.394 + id="path3284" 33.395 + sodipodi:nodetypes="csc" /> 33.396 + <path 33.397 + sodipodi:nodetypes="csc" 33.398 + id="path3286" 33.399 + d="m 464.68079,423.61086 c 1.41991,9.23477 -25.27107,14.97151 -75.35984,19.11208 -63.76822,5.27138 -65.87805,24.37567 -65.87805,24.37567" 33.400 + style="fill:none;stroke:#a94c26;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" /> 33.401 + <path 33.402 + id="path4334" 33.403 + d="m 367.06883,483.37498 c 57.09423,0 57.09423,0 57.09423,0" 33.404 + style="fill:none;stroke:#422fac;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" /> 33.405 + <path 33.406 + style="fill:none;stroke:#a94c26;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" 33.407 + d="m 367.06882,491.37498 c 95.45,0 95.45,0 95.45,0" 33.408 + id="path4336" /> 33.409 + </g> 33.410 +</svg>
34.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 34.2 +++ b/0__Papers/PRT/PRT__formal_def/figures/Time_layers.eps Sat Aug 03 19:24:22 2013 -0700 34.3 @@ -0,0 +1,869 @@ 34.4 +%!PS-Adobe-3.0 EPSF-3.0 34.5 +%%Creator: cairo 1.8.6 (http://cairographics.org) 34.6 +%%CreationDate: Sat Nov 20 00:16:39 2010 34.7 +%%Pages: 1 34.8 +%%BoundingBox: 0 0 206 75 34.9 +%%DocumentData: Clean7Bit 34.10 +%%LanguageLevel: 2 34.11 +%%EndComments 34.12 +%%BeginProlog 34.13 +/cairo_eps_state save def 34.14 +/dict_count countdictstack def 34.15 +/op_count count 1 sub def 34.16 +userdict begin 34.17 +/q { gsave } bind def 34.18 +/Q { grestore } bind def 34.19 +/cm { 6 array astore concat } bind def 34.20 +/w { setlinewidth } bind def 34.21 +/J { setlinecap } bind def 34.22 +/j { setlinejoin } bind def 34.23 +/M { setmiterlimit } bind def 34.24 +/d { setdash } bind def 34.25 +/m { moveto } bind def 34.26 +/l { lineto } bind def 34.27 +/c { curveto } bind def 34.28 +/h { closepath } bind def 34.29 +/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto 34.30 + 0 exch rlineto 0 rlineto closepath } bind def 34.31 +/S { stroke } bind def 34.32 +/f { fill } bind def 34.33 +/f* { eofill } bind def 34.34 +/B { fill stroke } bind def 34.35 +/B* { eofill stroke } bind def 34.36 +/n { newpath } bind def 34.37 +/W { clip } bind def 34.38 +/W* { eoclip } bind def 34.39 +/BT { } bind def 34.40 +/ET { } bind def 34.41 +/pdfmark where { pop globaldict /?pdfmark /exec load put } 34.42 + { globaldict begin /?pdfmark /pop load def /pdfmark 34.43 + /cleartomark load def end } ifelse 34.44 +/BDC { mark 3 1 roll /BDC pdfmark } bind def 34.45 +/EMC { mark /EMC pdfmark } bind def 34.46 +/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def 34.47 +/Tj { show currentpoint cairo_store_point } bind def 34.48 +/TJ { 34.49 + { 34.50 + dup 34.51 + type /stringtype eq 34.52 + { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse 34.53 + } forall 34.54 + currentpoint cairo_store_point 34.55 +} bind def 34.56 +/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore 34.57 + cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def 34.58 +/Tf { pop /cairo_font exch def /cairo_font_matrix where 34.59 + { pop cairo_selectfont } if } bind def 34.60 +/Td { matrix translate cairo_font_matrix matrix concatmatrix dup 34.61 + /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point 34.62 + /cairo_font where { pop cairo_selectfont } if } bind def 34.63 +/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def 34.64 + cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def 34.65 +/g { setgray } bind def 34.66 +/rg { setrgbcolor } bind def 34.67 +/d1 { setcachedevice } bind def 34.68 +%%EndProlog 34.69 +11 dict begin 34.70 +/FontType 42 def 34.71 +/FontName /f-0-0 def 34.72 +/PaintType 0 def 34.73 +/FontMatrix [ 1 0 0 1 0 0 ] def 34.74 +/FontBBox [ 0 0 0 0 ] def 34.75 +/Encoding 256 array def 34.76 +0 1 255 { Encoding exch /.notdef put } for 34.77 +Encoding 1 /uni0050 put 34.78 +Encoding 2 /uni0072 put 34.79 +Encoding 3 /uni006F put 34.80 +Encoding 4 /uni0067 put 34.81 +Encoding 5 /uni0061 put 34.82 +Encoding 6 /uni006D put 34.83 +Encoding 7 /uni0020 put 34.84 +Encoding 8 /uni0054 put 34.85 +Encoding 9 /uni0069 put 34.86 +Encoding 10 /uni0065 put 34.87 +Encoding 11 /uni0068 put 34.88 +Encoding 12 /uni0079 put 34.89 +Encoding 13 /uni0073 put 34.90 +Encoding 14 /uni0063 put 34.91 +Encoding 15 /uni006C put 34.92 +Encoding 16 /uni0053 put 34.93 +Encoding 17 /uni0064 put 34.94 +Encoding 18 /uni0075 put 34.95 +/CharStrings 19 dict dup begin 34.96 +/.notdef 0 def 34.97 +/uni0050 1 def 34.98 +/uni0072 2 def 34.99 +/uni006F 3 def 34.100 +/uni0067 4 def 34.101 +/uni0061 5 def 34.102 +/uni006D 6 def 34.103 +/uni0020 7 def 34.104 +/uni0054 8 def 34.105 +/uni0069 9 def 34.106 +/uni0065 10 def 34.107 +/uni0068 11 def 34.108 +/uni0079 12 def 34.109 +/uni0073 13 def 34.110 +/uni0063 14 def 34.111 +/uni006C 15 def 34.112 +/uni0053 16 def 34.113 +/uni0064 17 def 34.114 +/uni0075 18 def 34.115 +end readonly def 34.116 +/sfnts [ 34.117 +<00010000000a008000030020636d61700076f10b00001a9000000064637674207d0742a80000 34.118 +1af4000002706670676d49d7df9200001d640000060a676c7966e942e463000000ac000019e4 34.119 +68656164d5ceeae00000237000000036686865610f7e06ae000023a800000024686d74784af9 34.120 +067a000023cc0000004c6c6f63613a8c41da00002418000000286d617870037802c900002440 34.121 +0000002070726570292ded1600002460000004ad00020080015e0380045e0003000700264016 34.122 +059c039d049c070017003700030000079c019d049c00002ffdfded012f5f5dfdfded31301311 34.123 +211125211121800300fd800200fe00015e0300fd00800200000200960000042605c3000a0013 34.124 +0108b9000cffea40170c0c024b0b180c0c024b670701021045070b4401440207b8ffd8b41010 34.125 +024b07b8ffdab40b0b024b07b8ffdab40d0d024b07b8fff0b40d0d064b07b8fff4400e0e0e06 34.126 +4b07471507022702020002b8ffeab41313024b02b8fff4b41010024b02b8fffa400b0f0f024b 34.127 +02040b0b024b02b8fffeb40d0d024b02b8fff0b40e0e064b02b8fffeb40c0c064b02b8ffe840 34.128 +2d1010064b0247143a124a125a1203350e450e550e0303050b120c000e180c0c024b0e160d0d 34.129 +024b0e4909090212b8ffe8400b0c0c024b12490502080502003f3f10ed2b11392fed2b2b3332 34.130 +113311335d5d0110e62b2b2b2b2b2b2b2b5f5d10e62b2b2b2b2b10eded10ed5f5d3130002b2b 34.131 +0111231136332011102122031116332011102122015ec8e32f027efdcc22727f070174fe7328 34.132 +0234fdcc05b90afe55fe1202dbfde30a0125010c0000000100960000031c0443000e00af401e 34.133 +0a400b0d024b081018102810c81004c70ed70e020e06094d064d68070107b8ffecb41313024b 34.134 +07b8ffeeb41010024b07b8fff240110f0f024b07040b0b024b07040c0c024b07b8ffeeb40f0f 34.135 +064b07b8fffcb40c0c064b07b8fff2b41010064b07b8fffc40250e0e064b070f170a270a370a 34.136 +470a570a670a0600050a400e0e064b0a02520c0806070a0c07003f3f3f10edcd2b325f5d0110 34.137 +d62b2b2b2b2b2b2b2b2b5deded10c65d5d3130002b01262322061511231133153633321702cd 34.138 +3e3f6597bebe68cd336003782bba83fd9a042fabbf1200020041ffec040a0443000b0015013c 34.139 +402517401010024b17400b0c024bb7050101381701114e17063706470667060406041010024b 34.140 +06b8ffdeb40f0f024b06b8fffcb40b0b024b06b8ffe4b40c0c024b06b8ffd4b40d0d024b06b8 34.141 +ffeab40e0e064b06b8ffe0b40c0c064b06b8ffe440760d0d064b060c4e87009700a700b700c7 34.142 +00e700063800480058006800040000101010024b000e0f0f024b00200b0b024b00200c0c024b 34.143 +00160d0d024b000c0e0e064b00100c0c064b000c0d0d064b00166a030165090103670e016813 34.144 +0102450e550e650e034a135a136a13030e100f0f024b0e520913b8fff040160f0f024b135203 34.145 +09180f0f024b09180f0f064b090b03b8ffe8b40f0f024b03b8ffe8b50f0f064b0307003f2b2b 34.146 +3f2b2b10ed2b10ed2b5d5d5f5d5d5f5d5d0110d62b2b2b2b2b2b2b2b5f5d5dfdd42b2b2b2b2b 34.147 +2b2b2b5ded5d5f5d31302b2b1334003332121110002322001310213236351021220641010bda 34.148 +e6fefefce0e5ff00c8011d8597fee4829b021af80131fedbfefcfefdfed5012e0100fe6dd8bb 34.149 +018ed40000020050fe5c03c804740030003c0160402c48195819681978190400272b372b0202 34.150 +65017501020320101c12064e282b382b482b582b682b782b882b072bb8ffeab40e0e064b2bb8 34.151 +fff0400f0d0d064b2b193a4e1c0e1010024b1cb8fff440860c0c024b1c120d0d024b1c3e0023 34.152 +4e0d344e12060e0e064b120c0f0f024b12120b0c024b12120d0d024b123d17010188199819a8 34.153 +19b8190488189818a818b81804280c380c02006701770102026a317a31026537753702031020 34.154 +37281a171f181537180f0f024b37521f40090a064b1f9708a708b70803970ba70bb70b030028 34.155 +530825530b01b8ffc0b41114024b01b8ffc0b40b0c024b01b8ffc0b41114064b01b8ffc04009 34.156 +0c0c064b0103522e31b8ffe8400d0f0f024b3152152e0e0b061507003f3f3f10ed2b10fdc62b 34.157 +2b2b2b10edd4fd5f5d5dd42bed2b10c6123939111239395f5d5d5f5d5f5d5d5d5d0110d62b2b 34.158 +2b2bedd4edc610d62b2b2bedc6d42b2b5ded111239395f5d5f5d5f5d31301337163332363534 34.159 +2322062322353436372611343633321737170716151406070706061514333236333216151404 34.160 +2322260122061514163332363534266067a68c8195bc20a82fe46b4fe2eaac9e595f7c7249ca 34.161 +a49d1c5e622bb62c9eb1fef7cb68e6014d637d796765727bfedb986f59428220ac3556136a01 34.162 +06a8e0417275565f99a2dc101003251e291f978694b64a05048c6470938f74648c0000020050 34.163 +ffec03e40443001b002501d3b627401010024b25b8ffecb40b0c024b25b8ffee40490d0d064b 34.164 +071317130201672077200202280f480f0200b70fc70fd70fe70f04010025150f053718471857 34.165 +1867187718871897180718254d0a4d881501150c1313024b150c1010024b15b8fff8b40f0f02 34.166 +4b15b8fff040110c0c024b151e0d0d024b150c0e0e064b15b8fff040440f0f064b150c0d0d06 34.167 +4b1527214e38050100050c0f0f024b05160b0b024b05100c0c024b05120d0d024b050c0e0e06 34.168 +4b050c0c0c064b050c0d0d064b05263a0301032500b8ffc0b40d10024b00b8ffc040320d0f06 34.169 +4b480058006800780004000218191c520a080e52080f180f280f380f480f580f980fa80fb80f 34.170 +c80fd80fe80f0c000fb8ffc0b41317024b0fb8ffc040240d0d024b0f124a1e5a1e02031e52a8 34.171 +08b80802580801006a087a08020347085708020008b8ffc0b41414024b08b8ffc0b41313024b 34.172 +08b8ffe8b41010024b08b8ffe8b40f0f024b08b8ffc040131313064b08080c2352020c521219 34.173 +0b020b1207003f3f3f10ed10ed11392f2b2b2b2b2b5f5d5f5d5f5d5ded5f5d10dd2b2b5f5ded 34.174 +10d5ed10cd10dd5d2b2bcd5f5d0110d62b2b2b2b2b2b2b5f5ded10d62b2b2b2b2b2b2b2b71ed 34.175 +edc65d10c41112395f5d5f5d5f5d3130005f5d2b2b012b250623222635342433321710232207 34.176 +273636333216151114171522260326232206151433323702e472eb7eb9011ddd3c4ce8b26050 34.177 +36bf57e9d35474732b5a2490b6c5906f7b8fb788a3e11a0104609f2c3fd4e7fe808d2f5f4201 34.178 +df149465a789000100870000061d0443001f01b8403821400f10024b21400c0c024b071c0101 34.179 +08216821022721372157219721c72105004d371f011f101313024b1f081010024b1f1c0f0f02 34.180 +4b1fb8ffec40170b0b024b1f180c0c024b1f040d0d024b1f0e0f0f064b1fb8ffed400b0c0c06 34.181 +4b1f101010064b1fb8fffe401d0e0e064b1f084d37070107101313024b07021010024b071a0f 34.182 +0f024b07b8ffec40170b0b024b07180c0c024b07040d0d024b07080f0f064b07b8ffedb40c0c 34.183 +064b07b8fffe40180d0d064b07061010064b07104d071117112711e711040011b8fff8b41010 34.184 +064b11b8fffa400b0e0e064b11100909024b11b8fff4400b1313024b11040d0d024b11b8fff4 34.185 +b41010024b11b8fff440110f0f024b110a0b0b024b11080c0c024b11b8fff440530f0f064b11 34.186 +100c0c064b1120171c271c371c030118400d0d024b18401010064b182c0d0d064b4718571867 34.187 +187718040018400e0e064b18400e10024b18160f141603521b0c52161f0a080a110a1b071607 34.188 +1206003f3f3f3f3f3f10ed10ed10ddcd10cd2b2b5f5d2b2b2b5f5d0110d62b2b2b2b2b2b2b2b 34.189 +2b2b2b5f5dfdd42b2b2b2b2b2b2b2b2b2b5dedd42b2b2b2b2b2b2b2b2b2b5ded5d5d3130005f 34.190 +5d012b2b2111342322060711231134262322060711231133173633321736363332161511055f 34.191 +db457816be776239811bbe7c3f6ea5e65c20ae5ca6b602a6fd5536fce802f94f5b5835fcea04 34.192 +2f7c908f3d52c5b2fd34000100120000049305b900070080401e270701280401079301042c13 34.193 +13024b049301442702010002081010064b02b8ffe440111313024b02180f0f024b02100b0b02 34.194 +4b02b8fff6b40d0d024b02b8ffe640200e0e064b02120f0f064b02010c0c064b02220d0d064b 34.195 +02074804480502080502003f3f10eded012f2b2b2b2b2b2b2b2b2b5f5dede62b10e65d5d3130 34.196 +011123112135211502acc8fe2e04810505fafb0505b4b400000000020050000001c105c4000b 34.197 +001100d9b613400f0f024b13b8ffc0b60d0d024b097b03b8fff4b40e0e064b03b8fff8b40f0f 34.198 +024b03b8fffab40c0c024b03b8fff940200c0c064b03110e0c4d7711010011041313024b1102 34.199 +1010024b110e0f0f024b11b8ffeeb40b0b024b11b8ffecb40c0c024b11b8ffe6400b0d0d024b 34.200 +110e0f0f064b11b8fff8400b0c0c064b11120d0d064b11b8ffd640100e0e064b11081111064b 34.201 +11130d511000b8ffc040120f0f024b007c06400f0f024b06100c0a1006003f3f10d62bed2b10 34.202 +ed0110d62b2b2b2b2b2b2b2b2b2b2b5f5dfdc610d42b2b2b2bed3130012b2b01321615140623 34.203 +2226353436031123352111014b314545313045443793015105c44530314545313144fa3c038f 34.204 +a0fbd100000000020041ffec041c04430019002201ff408724400b0b024b58170103b807018a 34.205 +079a07aa07ba07ca07da0706025705016808780888089808a808052808380848085808680878 34.206 +0888089808a808b808c808d8080c00571877180208221010024b08180f0f024b08180c0c024b 34.207 +082c0d0d024b08100c0c064b08100d0d064b081f4e471e0102171837184718671887189718a7 34.208 +18b718c7180918b8ffe0b40e0e064b18b8ffdeb41010024b18b8ffdcb40f0f024b18b8ffe2b4 34.209 +0c0c024b18b8ffd4b40d0d024b18b8ffe4b40c0c064b18b8ffe4406b0d0d064b18011e4e014e 34.210 +87100138104810581068100410100e0e064b10101010024b10100f0f024b101c0b0c024b1016 34.211 +0d0d024b100c0c0c064b100c0d0d064b102387079707a7070300270537054705570504020752 34.212 +2a083a084a08030357086708770803070817080208b8ffc0b40b0c024b08b8ffd4b40d0d064b 34.213 +08b8ffc040350d0d024b080c1e50470157016701a701b701050001400f0f024b01400d0d024b 34.214 +01400f0f064b010105581a011a5214100f0f024b14b8ffe8b40d0d024b14b8ffe840200e0e06 34.215 +4b140c0f0f064b14671401024a145a140205100c0c024b05520c0b1407003f3fed2b5d5f5d10 34.216 +2b2b2b2bed5d11392f2b2b2b5f5ded10d52b2b2b5d715f5ded5f5d5f710110d62b2b2b2b2b2b 34.217 +2b5d5deded10dd2b2b2b2b2b2b2b5d5f5dedc42b2b2b2b2b2b5d5f5d715d5f5d5d5f5d313001 34.218 +2b0121141716333237170607062322272635103736333217161514012207060721342726040d 34.219 +fcfc675b8fa36d502c5b728cca8d9da190c5e5827efe247f56520b0251484f0205bc65585f89 34.220 +2c202a8997ff0109a08f817ccd3f0169524e74734d5400010087000003d905e60013010d400d 34.221 +15400b0b024b07101710020100b8fff8b60c0c064b004d13b8ffecb41010064b13b8fff8b413 34.222 +13024b13b8fff640171010024b130a0f0f024b131a0b0b024b13080c0c024b13b8ffd6b40e0e 34.223 +064b13b8fff6400b0d0d024b130e0f0f064b13b8fff840130d0d064b13080b4d084d07091709 34.224 +2709030009b8fff2b41010064b09b8fff4b41313024b09b8fff4400b1010024b09040d0d024b 34.225 +09b8fff440110f0f024b090a0b0b024b09080c0c024b09b8fff4b40e0e064b09b8fffa400c0f 34.226 +0f064b09146a047a040204b8ffe8400f0f0f024b04520f130a090a0f070a00003f3f3f3f10ed 34.227 +2b5d0110d62b2b2b2b2b2b2b2b2b5f5deded10d42b2b2b2b2b2b2b2b2b2bed2b3130005f5d01 34.228 +2b2111342623220607112311331136363332161511031b766b458b25bebe26a95aaac102a178 34.229 +8a5136fce405e6fdd33b4fe0c2fd5f000001000cfe5c03e6042f000f0105b9000dffe0b31010 34.230 +024bb1020243545840120d0b0452030e0e060b06030d0f0e0d0b0c0db8fff4b70b0b024b0d0d 34.231 +11101112392f2bddcd10ddcd10c4003f3f3fed123931301bb1060243545840150d0b0452030e 34.232 +0e060b06030d0f0e0d0b0c0d0d11101112392fddcd10ddcd10c4003f3f3fed123931301b4058 34.233 +4c0801380f0127000103270401004701010237010103081128110200380d480d02020d0d0c45 34.234 +07010707040e4f0f110c4f450b0103040b10980da80d020167060102270d470d570d670d770d 34.235 +05000d0f0452030e0f060b06003f3f3fed11395f5d5f5d5f5d0110d6c65f5ded10d6ed11392f 34.236 +5d11393d2f5f5d5f5d5f5d5f5d5f5d5f5d5d5d31305959002b05060623353236353426270133 34.237 +010133022025ed9277aa3e31fedec2013b011bc2b66688aa6f5058ab7e02e9fcc4033c000001 34.238 +0041ffec02fc0443002100e7402b23400b0b024b081f181f02070e170e022823482388230300 34.239 +3a0c01351d0103c8110111054e671d771d021db8ffeeb40e0e064b1db8ffe0405a0d0d024b1d 34.240 +1700174e480c01970ca70cb70ce70c04000c040e0e064b0c22e81901271b0101280701270f01 34.241 +28200102651a751a020307191a0314034812581268127812c81205120f370147015701670177 34.242 +01b701c70107000103b8ffe040141113064b03522014181113064b14520f200b0f07003f3f10 34.243 +ed2b10ed2bc55f5d10c55d111217395f5d5f5d5d5d5f5d5d0110d62b5f5d5dedc610d42b2b5d 34.244 +edc45d5f5d5d5f5d3130005d5d012b37371633323534272e0335343633321707262322061514 34.245 +17171616151406232241439f61b0aa835b4321c09b75b2367172445d75887d72cab3a940b468 34.246 +946a4c3c3e4f593384944ab05a403167353e39926e90a300000000010041ffec03b504430017 34.247 +0119401e450501a1010103281938190200870d970da70d030200070d870d970d030db8fff4b4 34.248 +1010024b0db8ffeab40f0f024b0db8ffeab40b0c024b0db8ffe840610d0d024b0d074e381248 34.249 +12028712a712b712c712e712050012101010024b12180f0f024b12200b0c024b12180d0d024b 34.250 +12060e0e064b120c0e0e064b12120c0c064b12100d0d064b1218250a350a450a032a043a044a 34.251 +0403030c52070d170d020db8ffc040160b0b024b0d0f015208001800020000400b0b024b0004 34.252 +b8ffe8b40c0c024b04b8ffe840190d0d024b0452150a180c0c024b0a180d0d024b0a520f0b15 34.253 +07003f3fed2b2b10ed2b2bdd2b5f5ded10dd2b5ded5f5d5d0110d62b2b2b2b2b2b2b2b5f5d5d 34.254 +fdd42b2b2b2b5d3c5f5d5f5d5f5d5d3130010726262322061514163332371706232200351000 34.255 +21321603af5e1d93479bb6baa580824b99e2dbfee20129010253c203d8861d34d9bdbcc563a0 34.256 +630126fb01000136460000010096ffec020705e6000800c7b9000affc0b41313024b0ab8ffc0 34.257 +b41010024b0ab8ffc0402a0c0c024b070a170a270a370a470a570a670a770a08070617062706 34.258 +0306024d070117012701d701040001b8ffecb41313024b01b8ffeeb41010024b01b8fff24011 34.259 +0f0f024b01040b0b024b01040c0c024b01b8ffcc40170e0e064b01180f0f064b01130c0c064b 34.260 +01160d0d064b01b8ffec401b0b0b064b0109b705c70502010a081a082a083a08040652070b01 34.261 +00003f3fed5d5f5d0110d62b2b2b2b2b2b2b2b2b2b5f5dfdc65d5d3130012b2b2b1311331114 34.262 +1633152096be6350fe8f012f04b7fb695663aa00000000010050ffe7038805d2002601ccb102 34.263 +02435458401907221a0e180b0b024b0e120c0c024b0e22070e1a0425131714b8ffc040120c0c 34.264 +024b1411000401251749110304492509003fed3fed10cd123910cd2b1239121739012f2b2bcd 34.265 +2fcd31301bb106024354584086082401071001002520452065207520042a0b01034828a82802 34.266 +68130113074507223722672203221a001a45380e01870e01000e2777040102351e651e751e03 34.267 +351f451f651f751f040a0c3a0c4a0c6a0c7a0c0533220103380e010a0b1f1e04254814581468 34.268 +14781404141137014701570167017701a701b70107000125174911044925091103003f3fed10 34.269 +ed10cd5f5d10cd5d1217395d5f5d5d5d5d5f5d0110d65f5d5dedc410d45dedc45d5d3130005f 34.270 +5d5d5f5d5d1b4086082401071001002520452065207520042a0b01034828a828026813011307 34.271 +4507223722672203221a001a45380e01870e01000e2777040102351e651e751e03351f451f65 34.272 +1f751f040a0c3a0c4a0c6a0c7a0c0533220103380e010a0b1f1e042548145814681478140414 34.273 +1137014701570167017701a701b70107000125174911044925091103003f3fed10ed10cd5f5d 34.274 +10cd5d1217395d5f5d5d5d5d5f5d0110d65f5d5dedc410d45dedc45d5d3130005f5d5d5f5d5d 34.275 +5959373716163332363534262727262635343633321707262623220615141616171716161514 34.276 +042322544938a742758e4f9f769677e8b6f35f3b28a44666752a4b74789679fef7dec343b829 34.277 +3780634a7f4b3746c087a4d84fae1d36745b385c3e383947c598a5e60002004bffed03ec05e6 34.278 +000e0019011e40161b400b0b024b004d0d190c4d470d010d201313024b0db8ffeab41010024b 34.279 +0db8fff6400b0f0f024b0d080b0b024b0db8fff6b40c0c024b0db8ffe4400b0d0d024b0d0c0f 34.280 +0f064b0db8ffe2b40c0c064b0db8fff240660d0d064b0d140c0c0c064b144e87060138064806 34.281 +020006080f0f024b061a0b0b024b061a0c0c024b06120d0d024b060c0e0e064b06100c0c064b 34.282 +060c0d0d064b061a251635164516032a113a114a110303580368030216180b0c024b16100f0f 34.283 +024b16520311b8ffe8400e0b0c024b115209480901020e0a03b8fff0b60f0f024b030b09b8ff 34.284 +eeb70d0d024b09070d00003f3f2b3f2b3f5f5d10ed2b10ed2b2b5d5f5d5d0110d62b2b2b2b2b 34.285 +2b2b5f5d5dfd2bd42b2b2b2b2b2b2b2b2b5dfd3c10ed3130012b253506232202353400333217 34.286 +1133110326232206151021323637032e63bdc9fa0120c7a656bebe487d99bd01602d7e10014f 34.287 +630120f0f101554e01f1fa1b03366ce4b0fe7d39200000000001007dffec03e3042f001200fb 34.288 +402714400b0b024b7714010a4d074d070801170847087708a708048708b708e70803080c1010 34.289 +064b08b8fffab40e0e064b08b8ffecb41313024b08b8ffec400b1010024b08160b0b024b08b8 34.290 +ffeeb40d0d024b08b8ffccb40e0e064b08b8fff0b40c0c064b08b8fff440150d0d064b08004d 34.291 +e812f81202071217122712030012b8fff8b41313024b12b8fffab41010024b12b8fff640230f 34.292 +0f024b120c0b0b024b120c0c0c024b12080d0d024b12040c0c064b12040d0d064b12b8fffa40 34.293 +110e0e064b121303520e090a0e0b08061206003f3f3f3f10ed0110d62b2b2b2b2b2b2b2b2b5f 34.294 +5d5dfdd42b2b2b2b2b2b2b2b2b5d7172eded5d3130012b011114333236371133112335060623 34.295 +22263511013bd75e9c19bebe20c15cb0bb042ffd55f86c4702f0fbd1943f69caba02bf000000 34.296 +0002000300000000001400010000000000340004002000000004000400010000f012ffff0000 34.297 +f000ffff10000001000000000006003000000000001300000001000200030004000500060007 34.298 +00080009000a000b000c000d000e000f00100011001205e6000005b9001905b90014042f0014 34.299 +0000ffe70000ffec0000ffecfe5c000005c30000fe5400000338000005d300000253000005c8 34.300 +000a000000000000000000000000000000000000000000000000000000000000000000000000 34.301 +0000000000000000000000000000000000000000000000000000000000000000000000000000 34.302 +00000000000000c800cd00cd009600b400b400000000000000be00c800c8008c00a0009b0096 34.303 +0000000000be00c800c8000000aa00aa000000000064007d0082008c009600a00064007d0082 34.304 +008c009b00d20064007d0082008c009600a002300136011801a401d600460218012c01c20000 34.305 +01d600eb00eb01d1017f0154011301450168012c008d02350159033f0505012c00b4006e0136 34.306 +015e01cc01cc04d8006e006e01d600d2005f01f4012c007802d00190037f00800280006e00b4 34.307 +000000a5fea2003200b9008c0000000000000000000000000000000000000000000000000000 34.308 +0000000000000000000000000000000000000000000000000000000000000000000000000000 34.309 +0000080005e6000005b9001905b90014042f00140000ffe70000ffec0000ffecfe5c00000000 34.310 +0000000000000338000000000000025300000000000000000000000000000000000000000000 34.311 +0000000000000000000000000000000000000000000000000000000000000000000000000000 34.312 +000000000000000000000000000000000000000000000000000000c800cd00cd009600b400b4 34.313 +00000000000000be00c800c8008c00a0009b00960000000000be00c800c8000000aa00aa0000 34.314 +00000064007d0082008c009600a00064007d0082008c009b00d20064007d0082008c009600a0 34.315 +4036544b214a494847464544434241403f3e3d3c3b3a39383736352f2e2d2c2826252423221f 34.316 +181411100f0d0b0a090807060504030201002c4523466020b02660b004262348482d2c452346 34.317 +236120b02661b004262348482d2c45234660b0206120b04660b004262348482d2c4523462361 34.318 +b0206020b02661b02061b004262348482d2c45234660b0406120b06660b004262348482d2c45 34.319 +23462361b0406020b02661b04061b004262348482d2c0110203c003c2d2c20452320b0cd4423 34.320 +20b8015a51582320b08d44235920b0ed51582320b04d44235920b0042651582320b00d442359 34.321 +21212d2c20204518684420b001602045b04676688a4560442d2c01b10b0a432343650a2d2c00 34.322 +b10a0b4323430b2d2c00b0282370b101283e01b0282370b10228453ab10200080d2d2c2045b0 34.323 +0325456164b050515845441b2121592d2c2045b0004360442d2c01b00643b00743650a2d2c20 34.324 +69b04061b0008b20b12cc08a8cb8100062602b0c642364615c58b00361592d2c8a03458a8a87 34.325 +b0112bb0292344b0297ae4182d2c4565b02c234445b02b23442d2c4b525845441b2121592d2c 34.326 +01b005251023208af500b0016023edec2d2c01b005251023208af500b0016123edec2d2c01b0 34.327 +062510f500edec2d2c20b001600110203c003c2d2c20b001610110203c003c2d2c00b00743b0 34.328 +06430b2d2c21210c6423648bb84000622d2c21b08051580c6423648bb82000621bb200402f2b 34.329 +59b002602d2c21b0c051580c6423648bb81555621bb200802f2b59b002602d2c0c6423648bb8 34.330 +4000626023212d2c4523456023456023456023766818b08062202d2cb00426b00426b00425b0 34.331 +042545234520b003266062636820b0032661658a2344442d2c2045b0005458b040442045b040 34.332 +61441b2121592d2c45b1302f4523456160b0016069442d2c4b5158b02f2370b01423421b2121 34.333 +592d2c4b515820b0032545695358441b2121591b2121592d2c45b01443b0006063b001606944 34.334 +2d2cb02f45442d2c452320458a60442d2c45234560442d2c4b235158b90033ffe0b134201bb3 34.335 +330034005944442d2cb0164358b00326458a586466b01f601b64b020606620581b21b04059b0 34.336 +01615923586559b02923442310b029e01b2121212121592d2cb0164358b004254564b0206066 34.337 +20581b21b04059b0016123586559b0292344b00425b00725082058021b0359b0052510b00425 34.338 +2046b0042523423cb0072510b006252046b00425b0016023423c2058011b0059b0052510b004 34.339 +25b029e0b0072510b00625b029e0b00425b00725082058021b0359b00425b003254348b00625 34.340 +b00325b0016043481b2159212121212121212d2cb0164358b004254564b020606620581b21b0 34.341 +4059b0016123581b6559b0292344b00525b00825082058021b0359b0042510b005252046b004 34.342 +2523423cb00425b0072508b0072510b006252046b00425b0016023423c2058011b0059b00425 34.343 +10b00525b029e0b02920456544b0072510b00625b029e0b00525b00825082058021b0359b005 34.344 +25b003254348b00425b0072508b00625b00325b0016043481b2159212121212121212d2c02b0 34.345 +0425202046b004252342b0052508b003254548212121212d2c02b0032520b0042508b0022543 34.346 +482121212d2c452320451820b00050205823652359236820b040505821b04059235865598a60 34.347 +442d2c4b53234b515a5820458a60441b2121592d2c208a08234b538a4b515a5823381b212159 34.348 +2d2c00208a49b0005158b04023208a3812341b2121592d2c462346608a8a462320468a608a61 34.349 +b8ff8062232010238ab14b4b8a70456020b0005058b00161b8ffba8b1bb0468c59b010606801 34.350 +3a2d2c208a2349648a2353583c1b21592d2c4b505845441b2121592d2cb0024354584b53234b 34.351 +515a58381b2121591b21212121592d2cb1020042b123018851b1400188535a58b91000002088 34.352 +5458b202010243604259b12401885158b920000040885458b2020202436042b12401885458b2 34.353 +022002436042004b014b5258b2020802436042591bb940000080885458b202040243604259b9 34.354 +4000008063b80100885458b202080243604259b94000010063b80200885458b2021002436042 34.355 +59b94000020063b80400885458b202400243604259595959592d00000001000000050000093f 34.356 +e5da5f0f3cf5001b080000000000ad61b71900000000c142e956ff50fde708a8078b0000000a 34.357 +0001000000000000000100000783fe39000008e9ff50ff7808a8000100000000000000000000 34.358 +0000000000130400008004760096031c0096044b0041040400500434005006a4008702690000 34.359 +04a5001202480050045d0041045f008703f2000c033d004103f60041025c009603d900500475 34.360 +004b045f007d0000002800d20144020c031204340540054005940622075a080208a4094a0a00 34.361 +0a780b980c540cf2000100000013004d0007004b000500020010002f0055000002f001ff0003 34.362 +0001400a54bfa50140a5111546a4b8010cb2321fa1b8011540b21f1f6fc731216ec731216dc7 34.363 +31216cc731216bc731216ac7312169c7312168c7312167c7312166c7312165c7312164c73121 34.364 +63c7312162c7312161c7312160c731215fc731215ec731215dc731215cc731215bc731215ac7 34.365 +312159c7312158c7312157c7312156c7312155c7312154c7312153c7312152c7312151c73121 34.366 +50c731214fc731214ec731214dc731214cc731214bc731214ac7312149c7312148c7312147c7 34.367 +312146c7312145c7312144c73121b80137b26f0821b80136b26e0821b80135b26d0821b80134 34.368 +b26c0821b80133b26b0821b80132b26a0821b80131b2690821b80130b2680821b8012fb26708 34.369 +21b8012eb2660821b8012db2650821b8012cb2640821b8012bb2630821b8012ab2620821b801 34.370 +29b2610821b80128b2600821b80127b25f0821b80126b25e0821b80125b25d0821b80124b25c 34.371 +0821b80123b25b0821b80122b25a0821b80121b2590821b80120b2580821b8011fb2570821b8 34.372 +011eb2560821b8011db2550821b8011cb2540821b8011bb2530821b8011ab2520821b80119b2 34.373 +510821b80118b2500821b80117b24f0821b80116b24e0821b80115b24d0821b80114b24c0821 34.374 +b80113b24b0821b80112b24a0821b80111b2490821b80110b2480821b8010fb2470821b8010e 34.375 +b2460821b8010db2450821b8010c40ff4408216957311f5857311f5657311f5152311f464431 34.376 +1f4544311f4f4e311f4d4e311f2097309740975097043088010f8c018f849f84af84bf84cf84 34.377 +058f689f68af680360697069028f5b018f5a017057018f509f50af50bf50cf50058f519f51af 34.378 +51038f529f52af52033f7c4f7c02507b607b707b03704e01708f01308f608f708f03008e0100 34.379 +8e01408e708e02008e308e408e508e608e708e06107040700260740160730170440100282800 34.380 +000012110840370f3fce16010fa21fa20218c7312114c731210ec731210dc731210cc731210b 34.381 +c731210ac7312109c7312108c7312107c7312106c7312105c7312104c7312103c7312102c731 34.382 +2101c73121407c00c73121e0180821dc140821d60e0821d50d0821d40c0821d30b0821d20a08 34.383 +21d1090821d0080821cf070821ce060821cd050821cc040821cb030821ca020821c9010821c8 34.384 +000821230e45220c45210a452008451f06451e04451d02451c00451a08180816081408120810 34.385 +080e080c080a08080806080408020800084bb807ff524bb008505b58b101018e59b0124b004b 34.386 +5442b9000101ff858d2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b 34.387 +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b7342011d4bb01b5358b096 34.388 +1d594bb0325358b0001db1160042594b20b0325323b096515a58b0301d592b0145695342014b 34.389 +5058b108004259435c58b1080042591610703eb13737456920b0005458b040605944b1300070 34.390 +b33200300019701870737373737373747473737373737373737373737373737373732b2b2b2b 34.391 +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b 34.392 +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b 34.393 +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b742b00000000> 34.394 +] def 34.395 +FontName currentdict end definefont pop 34.396 +%%Page: 1 1 34.397 +%%BeginPageSetup 34.398 +%%PageBoundingBox: 0 0 206 75 34.399 +%%EndPageSetup 34.400 +q 34.401 +0 g 34.402 +0.864145 w 34.403 +0 J 34.404 +0 j 34.405 +[] 0.0 d 34.406 +4 M q 1 0 0 -1 0 74.329308 cm 34.407 +67.75 3.387 m 124.164 3.387 l 124.164 18.609 l 67.75 18.609 l 67.75 34.408 +3.387 l h 34.409 +67.75 3.387 m S Q 34.410 +BT 34.411 +8 0 0 8 70.70321 60.248497 Tm 34.412 +/f-0-0 1 Tf 34.413 +[<01>-1<0203040205060708>1<09060a>]TJ 34.414 +ET 34.415 +q 1 0 0 -1 0 74.329308 cm 34.416 +147.75 3.387 m 204.164 3.387 l 204.164 18.609 l 147.75 18.609 l 147.75 34.417 +3.387 l h 34.418 +147.75 3.387 m S Q 34.419 +BT 34.420 +8 0 0 8 150.70321 60.248497 Tm 34.421 +/f-0-0 1 Tf 34.422 +[<01>-1<0203040205060708>1<09060a>]TJ 34.423 +ET 34.424 +q 1 0 0 -1 0 74.329308 cm 34.425 +106.148 56.188 m 162.566 56.188 l 162.566 71.41 l 106.148 71.41 l 34.426 +106.148 56.188 l h 34.427 +106.148 56.188 m S Q 34.428 +BT 34.429 +8 0 0 8 109.10321 7.448497 Tm 34.430 +/f-0-0 1 Tf 34.431 +[<01>-1<0b0c>-1<0d090e>-1<050f07>1<0809060a>]TJ 34.432 +ET 34.433 +q 1 0 0 -1 0 74.329308 cm 34.434 +3.75 30.586 m 60.164 30.586 l 60.164 45.809 l 3.75 45.809 l 3.75 30.586 34.435 +l h 34.436 +3.75 30.586 m S Q 34.437 +BT 34.438 +8 0 0 8 3.603992 33.048497 Tm 34.439 +/f-0-0 1 Tf 34.440 +<100e0b0a11120f0a02070809060a>Tj 34.441 +ET 34.442 +0.8 w 34.443 +q 1 0 0 -1 0 74.329308 cm 34.444 +95.039 19.262 m 94.672 27 101.449 32.363 114.461 35.277 c 133.074 34.445 +39.445 131.441 55.703 131.441 55.703 c S Q 34.446 +133.785 22.595 m 131.344 17.571 l 129.949 22.982 l 130.996 22.032 34.447 +132.547 21.884 133.785 22.595 c h 34.448 +133.785 22.595 m f* 34.449 +q 1 0 0 -1 0 74.329308 cm 34.450 +173.063 19.262 m 173.43 27 166.652 32.363 153.641 35.277 c 135.027 34.451 +39.445 136.66 55.703 136.66 55.703 c S Q 34.452 +138.168 22.982 m 136.773 17.571 l 134.332 22.599 l 135.547 21.876 34.453 +137.098 22.036 138.168 22.982 c h 34.454 +138.168 22.982 m f* 34.455 +1.12 w 34.456 +[ 3.36 1.12] 0.224 d 34.457 +q 1 0 0 -1 0 74.329308 cm 34.458 +111.125 32.664 m 111.125 34.766 109.418 36.473 107.313 36.473 c 105.211 34.459 +36.473 103.504 34.766 103.504 32.664 c 103.504 30.559 105.211 28.852 34.460 +107.313 28.852 c 109.418 28.852 111.125 30.559 111.125 32.664 c h 34.461 +111.125 32.664 m S Q 34.462 +[ 3.36 1.12] 0.224 d 34.463 +q 1 0 0 -1 0 74.329308 cm 34.464 +163.922 32.664 m 163.922 34.766 162.219 36.473 160.113 36.473 c 158.012 34.465 +36.473 156.305 34.766 156.305 32.664 c 156.305 30.559 158.012 28.852 34.466 +160.113 28.852 c 162.219 28.852 163.922 30.559 163.922 32.664 c h 34.467 +163.922 32.664 m S Q 34.468 +0.8 w 34.469 +[ 3.2 0.8] 0 d 34.470 +q 1 0 0 -1 0 74.329308 cm 34.471 +104.352 35.625 m 60.328 37.32 l S Q 34.472 +[ 3.2 0.8] 0 d 34.473 +q 1 0 0 -1 0 74.329308 cm 34.474 +157.684 36.473 m 145.832 47.477 60.328 40.703 60.328 40.703 c S Q 34.475 +Q q 34.476 +q 0 0 207 75 rectclip 34.477 +% Fallback Image: x=0, y=0, w=206, h=74 res=300dpi size=796293 34.478 +[ 0.24 0 0 0.24 0 0.169308 ] concat 34.479 +/DeviceRGB setcolorspace 34.480 +8 dict dup begin 34.481 + /ImageType 1 def 34.482 + /Width 859 def 34.483 + /Height 309 def 34.484 + /BitsPerComponent 8 def 34.485 + /Decode [ 0 1 0 1 0 1 ] def 34.486 + /DataSource currentfile /ASCII85Decode filter /LZWDecode filter def 34.487 + /ImageMatrix [ 1 0 0 -1 0 309 ] def 34.488 +end 34.489 +image 34.490 +J3KW%GU+$o#COBr:T)u+*=mro@So+\<\5,H7Uo<*jE<[.O@Wn[3@'nb-^757;Rp>H>q_R=Al 34.491 + C^cenm@9:1mM9jS"!dTMT<$3[GQ$8#0$s<4ZX!SPQ1`B[F7^jpq0?^FN,^V01s.HIuWPG[6 34.492 + W[B=(iZ<kDqOh/Bf.DHAorf'R[o?>ioWjnAY&^gM+`4=1jRLW!YA=M/6)*KS9PE`kN%="Tc 34.493 + _Aoh+fk'&t\ctIN)4XQLiVp8<#YAIm[Y7B-r[TbficW^RQh!2M]<QfX_h/>87rW`7R`ng.Y 34.494 + r2oA,QcS@]\G\$U6`4nep,_pH-TAH`l>Cq)%f_I)hX5T5S6nLebM0LLI6LH!bN&*#rP(P"+ 34.495 + 0X8e4n!IWoKM[fr;O?J":"rmYZ)P=/W\C+#VBr\)#_11HnPfAcpQOe^lZJT&O\>6,mqMI<) 34.496 + 45nOSh6A`,RV,'LOT#CDfKZUgkE6.nj"d8#o$0"3&T&G8<[<jDuS:ne?\^ag-S(!6C:UB-p 34.497 + 7A"HtB0En$.'9/:TN,0H!@_^S6b'YcLslSP@q9rfh#(Vt(oQS:oZX&O[%1[41VTk`T"YUi< 34.498 + hWi8i09bg+EP\hF2dM.Ze8^`j*/PFP,br&5EPjLV0e.iE];:1TU%b7tHH5`j1e1'iRTrQXR 34.499 + INPu"D-PU,STS1=Q+_<Ies5WL?n57mLLOB9jb[-n29h7qf%+-#B\@P\VLI6"]sDG,[^EYYg 34.500 + \(fSCg4@h[qK%?D7a322>td=>o,*#G[4CIPBG^U($C!N\$_3;hY6\sHs_)@$XM]bjl;&$\7 34.501 + PhXh`*LjAmmZb(Q2_3`ZK_<p_AjFA%77DDdrK2-]MXs7L+uW=-cXF@lZG?OC`^75F#jVAY# 34.502 + <%\`S*rB">p.TkF2OIA9u6p5b>IpL\&@@QHqnTP$6]S#BkDG%7Req3JLkBtB=iV!+7RbHbk 34.503 + a-HE+Q3$uPElru[,[I%1alaH7$VVSE@=Pga+Dd1NS^$GKL!O-L47coJ*a2J%0EJR=cHRe=' 34.504 + ["!-:cS`u=SF8VeoGnH2dI`t_:"/bU:K>s<SSqfcp)T3*g%Lu?D;4e*cZS(<SaV!ap`9s"i 34.505 + V8utNT9gU:R1&;So:1_qAt]ol2%!TXm>j*caE0;SonVc[qKnq5bPJ>&r1NUs4-f@T5WQ[rZ 34.506 + @3_q>R"imJHo*ch78:TC;^Xhuj(2:_!Ol=:G;h6j\E@/d=Sn*<Y5Q&V<hS$:.cG"lR<:K2? 34.507 + Fq6.e=*i<1<W:lZ/T=A9+\6n*gdXqj@V>mM??%O#@C><YR"X9[MEL%+LO6eHetiWMQ';%=d 34.508 + <=H*pP6qN54/ga!=SJ1"9;2S4G.RdIA&#"ghL1E1\O>k=_h`2.$;-l"I=Nq`D6tqWXXu8c% 34.509 + h&GC-EK3oA3_*<>*TP(RM^.XAO1;bbUASC@0;6T[R11>#7#@%(/k/Cb*@'WuOciU;8kE/;- 34.510 + /dj2O0S[L_hc>[,m9p+;N=XI=\U@,7&cGLY#\0J>q=fKRW9![>/Oii(h(XBQ4iUl9A+_Hjo 34.511 + iMf;\!81=cG/u6n+Ei10P4AD#'kH@[C"?C/%j5*_"<+$F=Vf:"d3=k60b6;iYln=j8ti7-U 34.512 + 7@Y'*Rnh)jeQnX`\)H;@]24m0cZT2Y0,:YG\,#&OC0nY1N[=q*d]71#Ye/r!3V*CK%E&Y`5 34.513 + =51*N"%4/)^L@X>"coO<[klb'#e;OB*>"qTQ74G'4Y*Mu>>taF90r@pqRT!C,:$KVWVc<)U 34.514 + ;qcXql30JP<=Ya&>)cDE74o@@/s+%uP>gb#;6!VkW`<6)<U.P+X&X&?<:G07ke,0.nd7\ol 34.515 + C1rB7;7SMN([1)h-93!ENW<e\lW)&?0fH_WFF;`74Rn9lihsE<XuuK>7G$*[9j0(L-JP'!> 34.516 + jhhe$$2Tb#qh>>:Fe/ZW:th=kc)Pm002j<fYU3>>8i!7B*[qY1?e2?#/h]Z*m]Yg07cuD=, 34.517 + <Q[oVqR>71%%/@8*W2YQ-8>E*Xj7EN)A0'6EnSTF4QdC0gq`E:5BA16Q&\2S<n?.^<4.9P$ 34.518 + 2=*jFD=JoKiAUD);(7#/oh0SODnVKN>qGNf_io8IoZ*QKN96m9bCGk[u=:YGh$<;>*Q3>$+ 34.519 + /eq]M=*h)]0>4j0#iT#?#VVi&^=@i58'CRJkhZ96\6fkX=cn97:'eejY80CI*D3Pj/VKKb1 34.520 + ug-(NSkiq_fd[Cah&Q@DU&:')%Ro`4Ae^*<^k,5/b\3#;iGa-)9/(7.V-bG8h[ekL0/pIh2 34.521 + FdGZE@W[;9L34I$9rh7O6+*UF9`A+dDSAEPgC8PNA.GIV*0gXEI)WB.X"RieD$?fq1NC>KN 34.522 + >u5&JZn+#mrI*HuS$-I0SG/a&WiJ#b2_dopW0kUK6!2!1L-)BtAYX[N2rDPu#aHUuRj-9j> 34.523 + h(r)A$&F#`eXnBUKe%c&^CRol-2'jQugAUm5SVaW5p8n<5^KB&;q_U1=aP'ims(f;p[5Pt" 34.524 + fH:9)m?cM2[eA[EHRi]@NFe^P%cZ;KYA7H-f=U+HgY9>uE,Q3Q,PNN)b?LHKCJ?N?ZgRSG> 34.525 + 2seaSd3*m:@bn7$[V<&*?DW74PtC194cpp^c6f]dsMskES0BiX60TD]R,f2Sg/Bf[f=,_Q^ 34.526 + 27O3Ql]$A`OgQOn0W2'KJ??bF6a"Ac;eVq?Ak>r<K&bc=b4t?1,_G(T'UGF2[VC4NlJLVY+ 34.527 + 1Ed/(4SL]&<LFIXf2]*(@_q;7'II@jY%a'n@:_lS$qh$Nr?pZB0(\m^N_Q8dE+l8tc5G@(5 34.528 + ZHZ+E':i!T0DWfsU6kep5;grA^c_!<qOe^b<aa$u-iHL'4o%n6dGeIPGFM?,h5',.G+"?H& 34.529 + 6icft^Wh(s>lK-Ec10Qcd;m!/mH%uYJ:[=K;]qRu`+Qn%?OUcK?ZDhkKCKj%0Al]SS+=RQ+ 34.530 + 8'uaf"^Zu+$KA6pg4]pI!?$(?`29HhZ)e:s't7Q:US,jHhL$lFTC\4B`;?QD#W&`p`G:9V* 34.531 + ?p'<4gT;DWL-/Q@VikrboCIa7TB:jSqhKs,C.Km-=$m)!nC$kH:cb&298ChLJ4Yr3.s/YEJ 34.532 + o=IfF>8s.O-+mR$6><9Zpk"0\$nn3F,=klHZ;!QkWEn0n!L/G*mi#H8LABEG#ckSu:4'_%' 34.533 + XiSb(sI/++KJM4t>E'0e3VVP%Jrp!PjE/P"e>mV\5$"sbR8/DU$SI-gL#7gItmF)Hie;l;6 34.534 + J.TMG!RhN4BVa"6'_']Q&?a%bVV[C<"gIS.&EO%0;%Bi!"-EN'E6RK_q#^'o&ZFFnVuI4ho 34.535 + _Jnmr]njCd3B4hAIiXq$E*\48+R@N;%h81eIaXXnIjiaUuLi['X:o&&Kqk8RhIMgP&H'j:r 34.536 + pb@5fKufgX/-5EH_F<:6G'b(G(mi/7fPKbk@(E'sV*`l9qG+_VNQF(h`FX%DNV9HQ-rUV'. 34.537 + ]8kO]V]`:tJmV3/k=@=!INL`A,7)mC7X5oBG17&9?jIPH$e&_s2P^(X$)q@WH3C.f2epDcJ 34.538 + [$Hc-bB@e/Drt%dtqXMr.:R<&_8-uQq+UD3i&VR"o18N>L+7^-cnc/Y&*?0#A)A4>:ngPOK 34.539 + 3e.dP(@SFHc\!?r2]&U&(\0J\&D\8Fh]D<tr_^?K#P0($:8Lh6,_uUEESDkh;&k_Zq.`hLV 34.540 + r9"SHQO_3+*%/QEY\td.fN<N*)^i#n;/;BM(:&S,]V7]&"tCd9_ktE/1=FA&O*'>m\M[#,N 34.541 + 1L*1<h)Me>0D',uWNKP$7X$?DVY`-:g!3:b(aLGo@>5MG[k+b#3_n\KY\N%J'e#ZClYCiZ0 34.542 + eQVN72FL\i04$4RVKIBtL!Wa.D.h$co!q6N"4C/HCQHD_:C*HNj1Z6([hFXHBX2j7f2O+0( 34.543 + ::o;]^IrTBaYK6t3.41%Z-IK"UBBM$j;)T#%2X4@$8)Z7F3i6s_!9`f-8q@W(9,f[f3,2SX 34.544 + #MCtlFZ%P+2p[*s'7^CqK_l*p336aR&V2Q)m%lLeVXnR/PH:X&m!k4[4`ce_-n-k^FYQaa0 34.545 + shpWdiU1sC4B1@2D9\<ZO$=UAMrZ0$^*iSF2iYc!iOMH5En"%1cTpSp8=!h6ON?O-p]Hjn> 34.546 + 9-/Y*<=BnEQs7N5a-@_=.Hod/&<8A:??bV")PpZn39);*D9J#rFiD<,R,+7]3VU8CUD3'N0 34.547 + A/=#g8M7]PWD-oFP:T-I;.Y;F'c&@AB8G(F`LoJ)g5F<=7-f,@<n)Mf(f\=6SQRAV=?, 34.548 + o#MW%0j$dmU*>#b=DjNP*8:GZ<V(h4.-e1"pEi!j_-Ycp_o=TKO"YC@X09:T*Pn&5H\K);M 34.549 + ;Q&<HnEX%0deT%CV3MJr8(CRY[\].gK[fNb^]@LJkm5g=I<3o7[9j<L@gP"2V%m`o<JmUF+ 34.550 + %_7@$^H1;20sgpR+dap7W\'IeFchA92fs0;Xb+o[0%r"k>74h=>^X.'bpXHM,n@m=^fc`&E 34.551 + ?Z'<E.FA>JSW_#ME=HcRj9(**&^TojelH9.8.rV3Ot['il4eStu&(=CL/k192f/799%,1,R 34.552 + .M[LZJ@'4GWM@C?2=Q.Vp5Ndd9:Up]!+eX]^'[&%pEJMc*Z1u?Fjj^r1_68S2/<a'oKf0H? 34.553 + 97Ao:EO.0c0lQ'_C;?uM51tEc?[pFjO+Hj2Hp3ri]K4,#dA8st8Z5WJ%>bs?AIFa4NG.N+0 34.554 + P@rGo>4sHo'ZY!QQ"Y,mV3\uHQH'-8RN<(h9]tFtF3oIqVV60n8ubU!<d+7]JSnJiB<Qeu: 34.555 + p:otMcki(Bbo9JG*cTlmqL0>>um_>^mf<Ko4l>9*bnCFpAC_ph^hhDC_n0jQ:##D\qG5UB( 34.556 + dfaW_mk]F`"T^5mQ^n2cbB+V$=8Y0B`"H%u,Z/?PRHY:)7Pgk^@'nFJlP:CNj91kP&:_G7M 34.557 + [h=Z8<gG?\&<nSQmNK61[O-e3@KGBNNG6>sVTe&d!'dqo?[I!=4kep1c7,_(m>/@Mp:f(Rf 34.558 + uqdSiIH+3TppM>>gV.@r3J%)Oh=0[/cm<a%lKJ`4H!WRODPCa&^JsZJ4pHr"?c[uJoIFpN. 34.559 + =5p$aR""epV&)CJf7srZ(O6j"LUWOsC3_pCI=h1mC5;UM2XNR[j(\9)I+MYPntTc`Ck2!=% 34.560 + ^`--Q+Mh(1GTeuCq,`AfUn!ZeSr$rM.bd9E5-ros*lV_Is5=U0BIsH/S>oTIop]FE<%"=H! 34.561 + \"UMV+`$(GpY%M[7sqV>/kJ(n$$O*K+$LO&mul\7h\Jnta=jM\j^!W!e;5d-nJKOgn[lN)N 34.562 + Km&>bT"F74ArG@cd/r>&N:O1>RSoWN^Ac@6RmK_[Khpk\^U.]6@=PBcPN),Ydl4"L,>LcH' 34.563 + 3q#uCr@uZAGJbZb-pq;rm9pK`fP4?;N3JEeRK9)CHMKDpQBAo)an!=kKPp*K$MK+pVWJS0m 34.564 + K@hc6q0/9q#FS]aO6W]h:a"1_,kLMH:!XuFg#.S:?^l=GJ_@eh3H(CbeT9+C#hFtkG"M`PT 34.565 + n5:lIX1^e=d,;bbELW$Fd`].)B5Ch'p]a_T3;N#FVaQ?HH$YJo/)(<\ar?q++%0YU/gqn\c 34.566 + $N5,7Za:TR#sR\dkZ"/YP2FU1ccfq8JFVD5MU'T"!.J3\l8S'cEFsSiVga3Tm</6'f(GS2t 34.567 + D6Qj0IV9r=)7G*ap('[M.&++bDN&)'[MHBjo/\YiWMVoW)/m>72kH`>(2V]+A=>,%p@Vlb7 34.568 + pJ!RjLn[GPXdAr_FUj;@2g.eZ:Ffr=YV_5rZ/R=ocAY%2sW;@R?q&mcs,mg$.:AY&a;p;&G 34.569 + N.1WlP/-jAq?!NnO.r(dJ!7]@_&96Kl*S&1X;W+[qan3LS$8?[IImWJBN_GHJ#uo`K">s1q 34.570 + G_q`3i'@LIJZ@.4%H`+=FXOMUt_*A>0F%;>IHV#ZE\,Tg+U&V8\8,NXCp4r(#F_WLBho?Z2 34.571 + ;atg68a3-`7lXTP*;b0aN6Wk,%YF'3UI0]$7gS3P3u7]:+5a4+"QNq7?J/N-kN<]F2;4$,. 34.572 + 5`LV%Z[gNgV>Q`p9oITtQUBCWg)W.%t5V;(=Mqu=63TtafI`-\DZq_,@'_j9'gHo(<18:A- 34.573 + m)0jo^`i(K&4AURA;BP[,GF(+E\93d'=+A9JT^T&_R)R#!Q+^EK[9=HbBK<-*n\e[8_*"d6 34.574 + *1P#.\UZb_UMQQtY?@Xt/],$(b_P/t[oJG9f/%/EaH_0h)a2:[d175A^tc'-4RpC<mE5bgb 34.575 + $=\`S3s`T<NpkEc'TE'r+-V5Bu\sGJin%k]%b8P0g;+UBefuJ)5d[][E9K4`Ofun3Jn?3D_ 34.576 + lF_PW7XC)mdie\(+`]cs3?o?!GdKA'*Ml+8A42*8GtO!Z#!uQe]6uSA=uk`KGXXalj1!0:U 34.577 + D;`R>biIW@c,>CY-5YLIOOe?kL"Q8QiKNR4))eXa1i4IO-CkLTO#pcWYGSTi\q;6^RsYtrb 34.578 + lO4@iJ)r>AFZ7O8+I663=l-m]5>;fPOO+4VYrhQh]$^-4nh*\m2?-]A(bmKGEReb7ArQK]c 34.579 + d!M&/S]#tZlDI^e>$ZU)4bF*4LU*KDOT$_XrVWSBft9>Ei38F'rNEQa("GGAI_Hf#\m;MR- 34.580 + .op&k.WRr4i?:BoAaS,j/<^?2iHNul02jtdJb`O*dOSjdpnn2i&cRk'[ipCe^-HiIhsQtZ+ 34.581 + o(`$0"*2idH[BStG4/p!nM=I9sjhh333"4TtD*"Y^#^DSP2&8q<MW+9#2'hQ>n2YS?AZl[0 34.582 + <3VsE[6E?BYedN4+sq"O.r_;KdSm@=:48+l97C[O<pJ\I9'/q<,X7"IOmkQi-rVqpJJ?kJ[ 34.583 + rJ!,s((KCsXM)05UiZ=j>d`3<l=ShOQ4E9m?>?U<ap[oS%mscAQrmgfllS(JIe/LO\]Kh#& 34.584 + *nNM!b5X,j?R9`4a5J&^op*IFhd?(2NV7>Op:N-Ls/pilmItOEpUJWFs'aI8L%-84e]9K?S 34.585 + n\-fkP[UsrmRSa%gR^/#^h7)+V:#7)#1"a1a3J*PYNYBMacY<R$b<B$A8p8&(qWe8GeT7V% 34.586 + RFrM>J]L4m!Cobg'2eRms:hRFLYM4eGO6'H.\rM++1:knKRd/t#G3;sG)9Ptn;YX$r3%R.M 34.587 + i(?)uTD()itTiEJ-AlrKTUY1[[$>OE0DV9ZOV\ZIJCS(6ruFbCZP(X*X)SRf'10USA20,]b 34.588 + i:1Jn0gjjZ$P!:6jku=ro0pt`]dqAA=8YsmMobsB%Y?@ud<`7Q-"a-ZEgK\o+IFdk4]s->d 34.589 + =+0fRM*K[$%6Rrs6Z^H6F8?mCN_VqdP0)f@Cuh?S0U]XeZ[RsralW,>r>qCc_e$4JD;iW\5 34.590 + L+uSA(Jc:T7?>*rMhgbo7[-/Ca4tU^l:_@q`_3QnGPWaKHgdN:7=;f1=!H(br\K13psWK$V 34.591 + (NAE?n0j7.;/J^HKt3"E;?H37*I"$R./=S1fe2pr0N!HKRO$X9B\:C.&KkaGY^i(rgQq.iZ 34.592 + MZoQMQQEhc\CThrA&bW?'Y2\*H]q`oS:;QS%t9_1[#Sjc;R=Z%_n@q@YqBM7nCc1AmE[7CY 34.593 + [Kfr-c2#aN#1SkGicI<RB74L(('.fcW]/&`LEr',s]F>7f7FQA?4&7^i@^e9pl:T,e<:i$U 34.594 + ;j!5[8QSpUV"g!HeV$dbeuCT%<)k`F='!og"[,>Mm]@W@_fVVW0Jh)[1D*_IKqi?cB[oG1< 34.595 + -G!fZ64jd<nSXWN,NOfF3S6L<gP'0>MUb,[Xq`,otZ>f=(U\RfO+k)8B[1hPtP8D'Zk]0GU 34.596 + <eAg</EgK40"9EH<bUSf77WGa9k<;0U"PA(#8Nrm0%,*Arc9GpZ/<@0fT4P@]#M:PYV[7U" 34.597 + [.R?hWX65[t*ID]1K.dio%DF8(!qBh,q.To(MQ"^#+Rbq]7#%OPg)5a=4C@,nZb0*bK]+/3 34.598 + $re#c;)^`b-kq/JAZYb&!#H2BACD3`94/V;NCJ_sYSnlnN4b.&^*ppd_GHT>in=2u]U[@i; 34.599 + 'Z"[7G9b3WgW$dQC]!fi&Ft534$di?=$=rQHt)WnXh9EbeT'BHNP/I3m_aS9?!hC%6@ArOg 34.600 + \6(39AV3?:Oh>=*H$)RB@O[TiV@q4U"oIXL7R4J/n4b>HCi-;io>CKA)u>"cbo90hLET;A: 34.601 + C/rU\I&TgO"9qIXA;GqA7ubId:%]7t5+-qu8nU!<?LA"+ZIK"$h)C!ant8JWMbp5klK*@$D 34.602 + =VOB)`TGVKD1e/O%%Fq6n6-6+0@_/Z[:TUR&s$=O&fKoi_Z6MOst@?`R&OOb@<G]<rtP8\m 34.603 + 'FlYLUPmO0!6RhDr?:9%#&n4g5M30\D7/3Gi@['fKO]Eu$Gd/#ne6@inFtY@*9+_Kk?]:,5 34.604 + 1IcW:)Il`^NKLY.7ekp\iT"3NY%6u_2MW-Ee9`Su)E>e5!?bneK92636V)J7)4Q;,,-iOc8 34.605 + GODSA<`:@P#b4C[WM6gWloHZJjr?-5Y`QrQ^!Z!;bD=4.V2S>O`H1Vb5#HsAX'NeP1;oi2_ 34.606 + NuujEGPQdSS-_68p5&WgJtc@n_0111jM/R?KOA9_kA=AsCc5P?)HnH*K8>eD$IVG&L+N_)Q 34.607 + 'Aj.)=!F&%"L3N#il,86eq:ANj2B9`"ZPLb(VH1=(2eGGfRqL:GkkiO2G5`ZSaK2?k*?GsM 34.608 + b#a@6&66P5RBU'6"U@sLAl7kY>U&CVsjmPSD4\"ZN,G^#-j;gL28SM0T4JJ:2*84M?.-l5D 34.609 + CjKDU)IlNVeK^mNGTbK3G>N#dXD/4LTpsbJn_]l[I^L5p<;?,^85MaTPsVNOEqHgMOl*2Dl 34.610 + D20Cm6N&bH)n?=ZTKr!>%pE<Xd-8lMH\q=^_Lpm`jW(glB`l5D0<%IouMoH!*7='I^#+PSd 34.611 + E"?<ks-AYf<-DdoU*_ltqrlNEep*Ejc6ieWmJ,)?#BN[KeB!SM?EoJQ$=&:+[cm[>\3b>4T 34.612 + *&m?Of^Q'=:5EjcFZe[7)3RU'*O`@n@T_mkUm?<hP^4"aOP\Wk#`h"%lfDO&I!(Aa*DWf;- 34.613 + Re_<qGG4-@nR<WW2j.RUXo+eLiH>asA]$UHC>V"ERDj!70J1CF2]3ZnhSbnIk/-hHF21TW( 34.614 + =1u$(S'i8]JoFU""unHAfDtGnn<;lPQrM`I9JM4CNWlLC#-q[=6&89TA]0:?WWZQqMI$ju` 34.615 + J&+0@e&cCED]BHPRe:74E6BUYb/siC^+D@093=OP7G,;Xb0l@ONL$M\.f`*AGi*/#2W9:6U 34.616 + *)4*3e6P0KHf_X"9JTR:L/8?d+q&YC\m`<l@1;bh9D!NniOmo9!5n3S-2'bej<2c?IU&oV0 34.617 + ouhH%J4K?r6dP);sGO0SKTd@(o2kF.g1oQHGHKN<R1ijJi/d,*6?=&1JGRA`a1;Uh._MeNR 34.618 + VL\3R+c\>[4lLMA+FdB,[MVrSlHsQg\fVmDje:6bB%pnr&_p,Zd30g^2Z:S*8fnq%@m..Re 34.619 + [ZL4:RepJrS.W)Nek\bIaAhR*\%#?khZGs)Xl;UhZSoNVgfq62kV.!oD;O^;M"FO4F(@)9f 34.620 + '7;*daR>1Zb:T!'AMND&isn8_GD+"KclV^KFT06pKgVR>ZUrhTL$Rih@0ZM98df]S0p</Z5 34.621 + ,QhM/V+5LNo^>jd3&EEq<jkH#GJuUX,D1^2R,hQTO6]Z\d?fC!^ak.Kph,XauLo4F1'ql%Z 34.622 + YkLJq_8qNgO3q2_EGHWc71J[,a@GH>rY*&Teh"mgqZ,BeM$eT_U4m?U]tpA3lU`Xd.X^!sP 34.623 + )i+_%?fEUes?b^cU;-5Q^/+270_IYI1!dn"9ZU;pVG]+^+_uGoY60l^5T%1'XO.38g8'`,) 34.624 + Sec_:UFDrGdqbEU7l4WKo,\+KEisuX4dB;05muEd+Xui-T=ZK2TAON_1Z&#k<Z1g>bk'_;n 34.625 + nHAa*.V8VHlriLr`@PmB7(eLF(?Npf.?^k_s2[H=%.i2EWBZe$N>MepcXb6$\,P:"^g6554 34.626 + 5HL?e1AGYOH@Z-i4okp\R(*#Rum:\kmXdPLh@<4[/K;^flUFOKF(e#Sm7A3YKVh=P58;%L3 34.627 + s_3b/!$S.@%cbCXgJ%?MOF/-8*6Q9E;]1sc6(;T4BL(coSF_*f1iRi$p\T7R@%/^PFmJ9Jc 34.628 + 0HG7`r_-jCKYQ[0D@68!;_?;264.?JE/\hpX4n*NQF92\h/3R5bR4H;_PUm&YR#aU;":3[4 34.629 + O9:3d1cr&j_V@$qr%>L0+:XMk!?8cX\Dk9U&dm7s6ei<*\2H_Op]@L2#IHCU+NcU#BfjBS$ 34.630 + TKt/&19ehgC1_a%?hla@K/HC28h%?,\03QGU8?2#fR/2L#BrSXA_K>#me0L!J2RMn2A73FU 34.631 + '`tP>GW*X4m[eDoKefJim?`6qW(W?l,Ka6Kf]7/5SbCkranu`LLNb&=5id1(BGQ!%Z@uMrY 34.632 + 6?AB)hQ$J8%lka]RP-H)iI7iY&hBbUcAF@IZ(MVDcs(n?2JGTq4J!(].@W-?:l`5AMga4T& 34.633 + Fr-pd>C-@ema#&Al,Q%[D+q*lg86gLsGd*/=5Y-dCJ.UBh5T5L':ElGD8D1o%./egPO?GkD 34.634 + 8+7&!n1VmE.QP9RL.%=8cqm;]9#96;6DNC.*03\%r"e2sak59+a:Lg3W56,3U-NQf.#c109 34.635 + ZL+$79V',X+JI/oFCXNb*jR[/?9'!\-4ChJi&Ade?:'8"A9"qb8@VlUpC.+ZkK7B!sCp(S= 34.636 + <-(\0#E([tJHW+]XA,V8O9"-"r8JpfC,`'2/gkU-l%UM!#2X-TM`5$4rI1\/3A:OVQoCK^c 34.637 + %YJ7uMB'L\]<KcJB&[("79clX*i"2*&Q8@l_*b6fcn5B8!%/D!O.VS4=(JQY$$lk@VLi^<K 34.638 + !,!\<9ln40;3ki*G';V6X\9&(:6*Q#VNK=rOCc]@Bc\]HC-fjPfXQrWolqYdl:>G84m-c9? 34.639 + B$Un@#f+'e3!tY/>e5;%M>0KbBiN<pU5%%!Q!<eb82X2T+O:n^8jQFu,h._S!//h8!&0)/O 34.640 + =7umW&(AWaOh(<TJKDl0Ym>ELsXj%[0ogE$rG1X:tddu]_r,Rk!n#aXO%N4[1`kg)9dpu77 34.641 + aYdbH?J?%uql0#5!2+89E7h[`'q([3-n*N8jui+;:PIJ;gDCAI41;$IIl\;I(VID'r5(%oJ 34.642 + .A%2>U*fE`.`.oOSrLA6Z-r@\h[4>'HR;NXD"I5;P4$p`0ZN[U4sXZ',q3WcuT7>s.Q3/ga 34.643 + 0-e$=';r'W9l:4a31'tnZ4UF/G**7c.XVFNiN(_^D7!Jd(5`A[c9eb6)"\T:YbGfGZ;<5@q 34.644 + OHpE94AI,[dF;dWY`$uJ;7.SfeQl3UD-'_c=B1>`<Lm;nW)cp/p/Hj+\r^.C@6.7^^GGr2b 34.645 + :n6/'U9$[$jJ"`$fc>-NB%Dln'%8UMVSpL[9biS?a4sUeg,jt0T/prNt$eSRBXRMYliSpT# 34.646 + ;Vs"2(jg67'Z#`k\QQf0I""XYU$,?iU1Lf@\-e(f$g#/WlR5f'nRK!/4JhH5U:7Mlf6H8=p 34.647 + L(0j'E__/KXpXP8\5-^1?h=E(uO\9*ChO@O!5%f.OR<Kg*-n^ntA=>5E\7?/63Ko4]@fm'. 34.648 + oXd`-E8dk6)!-EO>TQ+-0`50PV#6gi)Tdg@jc35-d'h`(foTt78:=/s)#b@7e7@.14MV3fH 34.649 + =e2W*?t7n&6UmFq>8uQ0e#/D+;Hi;u_X&FLC*WlR\16TOg6d_#VuU#7[2<2O#Z\$3aJ'dIL 34.650 + E]'?9DDQpE4$=03<[=?>O_tdX/FCO-VnDDfM/p^rOZ:Q`Y]`0LeYV=aG\;^6A.eT-s0-Gb= 34.651 + dY\i`d6P:0BqJE!oh8kDHKT?(!`0=@:m5W!$tn"?#%-!(\Y+:!c_F_L!=,r,<D3^k"4$"3o 34.652 + t5U]\+("M^V"gpjHA_1LIp^XkX7#gAiiR+Y&-N7muG=m_cS5TS`Fin&^WL)otnX#=;:V?&j 34.653 + U6RpcI"I96\#D4o)U-'EL`W&I03\Z9N*HH\4qg^fUT&-,5?\*Q1^]7X-#"e=;:`,ch,RVGX 34.654 + ,[&t$`Md.iaJ"<:&/1^.i>r11=;g'X3XUl:?-l'-_)b)WeLq2?#dm;0!BOKj!M2*`12GO!r 34.655 + WQ^ZG$oJ!?\S*&ffDU4M[^F?^M#4HW[#)?$r=Aj@-.t+a?a:G3X&hA@K<43#UU4\hhi`M/G 34.656 + h$Pa[4rG);uE(aCq*s!(dj"al1B:?@tea:n1tn/f,QP?Ih5or+Hb>J-nQI@obE1?799K.L@ 34.657 + 5U!tId6UiZg45)M5(PFNm)jY]@?1:5IT;RG7gOJ,Ns3_HVcj,tJ!7QTCl4,W7T>fK=##!J, 34.658 + 5<mV.63d@UL#\M?2o40YQ%RI$#hC@W#TNiX$8N8BSpo_\#Y6!31';P+HF$p0WfEsNJM"M&* 34.659 + 7EXZ1?l"Juk0!,sku>)nWJnCf?cWRe.P58RU;H_*b?PH">Ok4rdTH":@/sB\SW7<r<=AM$B 34.660 + 0fU2hL9'.3a>KT$W_6hmW)qq-J`c53n<n9i1/(*.VF+_B8ml<R*e:h3&uDRkJ1eC?0^Wn>\ 34.661 + EbPApIA$0XtdE?,U<NU29qj/`m/[?=OH3M.#%I<@ia1-qa]Ib2/!\8@9-T3G0`IBPqTlIKN 34.662 + o4Tk;<+'n29WaHfME(R(XjAb``CPl[W.>fa5*K9MIPN#u#TbD'?./H'qPl7+t%Y0U4Z_lg& 34.663 + (S_mVjNbJ+il<.5(DLPs^>STr7MhK8Z@6$]p/HoBK@$2p/R)mP&>D6X:LKmQ1<VtS`6q:&X 34.664 + m$]?SBiMq1W/FZM#6ZgrV$:.hRVRq3B`>SUk^caZ"q;8"`-.<O\@0+[3_#]5Lr;?j<B1,mi 34.665 + $+*q%#l(Y,r%TNbMAOs82qo50$/WY.)Ra]:$=aX5[=\UAs>1C$Z1r:@l[QN]^69AkMFXO?F 34.666 + rF$L;2qpB'b%VQ4@eQ@ci'665IXVI4^8Z]>mg)@n*CnA)L6*M3KpOMiQa*PrAiEU<ee;>C\ 34.667 + @u+t1O%N^jpNA[AgD(#mRtrM"Za!Zqb:*ZF0sN/mksZ_KSic+@9>6X7q($Jh$\R<TE*r0:E 34.668 + &;..*eJL#5S`USL7U]?@9R6)(iJJ@88ZHS'i?>eH#C>k7aEYsc#mGD`4b6-4khp,\!%cW(< 34.669 + LI>2>aOl4Q[dbR0)N)>4,5pF+c!GE-@gXb7nHUV%`D$V2=+If\Cteg,Ki"LsP#6R!k6#p+h 34.670 + ;:SQqP%lfnpT8('uLABnSjF1$-XYk<[7sh6,9Y9$-K@UpI"3u!\!X62@i=?2NI/A954MSnu 34.671 + imgnLF'k\TI@,,P[4]Ym1rW*Gmr\AV-h:B-5g8o0oYY-7l7@7jHh+,_NR3?c[#*k_g5;M`B 34.672 + f&8Q?r"BjNI^N69j+=GS[;[Ke"MF>(q@0n#/j^sN-hC^Sr;p!>cRc-gS6@ni>ml@>H0T6"b 34.673 + ?YgZMJp17STD=6<-0K!F&/H'BT$QjsjHu+N6o:W*aY$).gS<0t:G3+2_Kun@2E<u%DpfqU^ 34.674 + f$JCPUFs;RA$lYVaL]Di.$if2FTEQYi5,3_(\Jo0FYJjj7oYC"<Le$6EUrR@k\FUm)P?_L# 34.675 + gU6YcX"nF[DWJL.!K('Ddg2q+iJ#+F]'fX7Znt>1Nb,DU=C@fd#=]A!R_qr:h,MS(lMa/@H 34.676 + :fMhp$<3B#mHCUf>p\TCs2^Q^8)A\g$3.NH#oo/P#NM"eo;u!Br#e'O`c<QTEZDlgc;]fGR 34.677 + 595][0Z$[Bkb@"6$[/qn5_CSqc/1\!n*)iq4XB9uAOY>=g&`q]X2r6V/-[i9p;*0f>$P>5k 34.678 + KR*f?+\V:FjC^BgY6u)(Ck'#kaqU@e"@#EO;#'a5[dN6].Ch\^MHhq:rH?q2A.#K?$/r7\m 34.679 + 8Q>s`>`1"P:IGW!hp61dp!IO<N:(j!@@&*KmdXdph*QuO;Xbcg.%$=]WIl6sU-+:2Eanc1# 34.680 + mSHG<'U&@j'9FEC@'Tm88MT65%KHOjok^95tLKa"==ikL-oCrpe]*Yrea!Nd<NTA2&hQGA' 34.681 + t)TL.*>M8S$7p7&Es7Q:kf;q1Qb!(k0_:PBYgDofJ\Xk-*Iml0h!65bBjbU\[a6VF2T/HA' 34.682 + S?.>UsgeTk.qYqW:\ldbk)G/7[o=_*R$6pT4:ZUp`HpLV=UF)0T7QZ`i"GC*@t<;6%1"u`6 34.683 + n)=YWs6!"ap`XsrCI"9Ng,0C.2_&U682$tpJ@s%)BL)R#=7MT*T(8jMkN+YdeXb8JI9oX_t 34.684 + g7U(]0G+b4Ee5Hi"DPco&Jr*)`A+02jrV(SNe0KlJP<%hg3$<Z[(l$7fo8c2c+<32CG!8M7 34.685 + "M]1blTdepfOHTmeV6Gds'g[oPFL0^X%7U8O,e1#l?m64:q_48Sds,$.*o##dmKb"QGXW]& 34.686 + Im!BaL7=K^egV`!f0cbn>Si45gm_k9O1>`R0'A(rfFCBW\3$_KqlQWVV4@.&[c?MPSNr<>q 34.687 + ^7'TEr$&Y,15aiQ*'-d#(sd!.-8@P5?\C["s9PjY=M8NHu>q(e!%3t*p`9MhbB\?aO:=jBa 34.688 + rC]hX.&q8E<Zb'0_ccFkq4uFW$#`KO`4TsD0W5.pm\06KZ)E=Hk.5hS+\BR^XK;eB:b\iOa 34.689 + l8[nj2J:Oc!N>NNLK!D\8p,PiPKK]WBS?L&]^?M96!\_>=3ia5R%G-5Yt><f*K\fPi.TB;S 34.690 + @3iuB\HLU;P)(]Mr#'#6l!4NgXV117pJ:gaG;eJ=pfQ2:q8iF!dB%['4+@oAl.@5c)H*J=5 34.691 + E\$WtDp^SL99<Gb)mt)N>l=;Au"RhoO$:LT:-.?]&;j@NUNg8JJ3UN@;RUOO5WhfgAUS)b! 34.692 + 2ij!Ion.Dd]FNIgno+9H0"fJB&,iI6&C\=u`L2A\Cm0_%h\&KL'iKc@:jQR2?umi$MA`,t: 34.693 + pDE"Z_:U6.&CX1mf=):XJDmI"%+m#i+G'V7chE`qs")^Iql*bG5^@7PgpT[$rn'+ZD^l06O 34.694 + nmL)bM3l/94Bk,pn]+uZOrSkA$<QfD`I(l->i&JnoA'@3d&`T8q&J=,nnT<)pe#VFUiI\YD 34.695 + ]CDmW`aM`B5iZN"Ce$6Ul+VVgJ"C%)nHJ!Z"05H-'sDCG9-.:ZqK77Mn2R6mP9l5aT&a:XQ 34.696 + rB=k+Vb2TT_ri+/jo-?X+E9HWY;XLA".kAbD6]RN(58B\B*YpLH,6^Lu\%*a@VIc]G)gB<X 34.697 + a]>9>'UbQkH5+=3\S(iZ]ML+IiZDV%/j&Fb),KSW$c!q[d;+db:,Po:\W(la6o.)I!UOUT= 34.698 + cZ5jM4<k@H_%cQJ3LW%-'M\q*XiZY=4+=0aUR"#b&a[o-_kS5#//JQ,3<H82DI'mD2)PZ7M 34.699 + !/*WF..W!(,:$iZd@?Oa7nc+/gSnT+XWT[SKLoI#U3L77j=$4(s$hP\+qaAC)\Zj"M*-&[; 34.700 + =4@GF[hq_#nA46\;i`(Z:a15I$#$6pW2>#!JlBLIBlPJ^B-ej?/1?,-I(48_d`Ve1mO2X1- 34.701 + Q<f(.2JD(^&4AKgDJW"sr6C"k*?q"?D/AJjO8]ZQ9dg!\cXsA2%_PS6Sc'7X'kiieHKe<j. 34.702 + >,2Wj)VS&iD6"c:27N=6AUU'5ZM3PRW&ES;4%@+<.!BI:kGq,O-:Hm3MHBL*pB(j#\":`9L 34.703 + &h#(np;6b^Bie8?Z4E=kMd>"+s/leON(]Y'65>bp$@gO>cUI6G2OpX?BaAe4b&"8]e$<'Gf 34.704 + r?S0o7Ie!R;]u]OOJ=.ZhpP+]!6G*`UK"mcb;'qe8@hfj<"c!+R[$e']<[+]OO+kQ3gV=-< 34.705 + @,r3.+OM\cN/C6LJ(2'!8>A)>EB&]!RQ/DR]TcZASjlc(k&0Z&l9g!5';MGYEB1V6V_TH1b 34.706 + TbJ8OmUgKOO0c,[i1&3?(a&q4MqT(lUn`.RW)B*0eB%02k1gQ"0oS+qA^R=CNECWW<osO/> 34.707 + W7b#\FW=VdmQ?H\Gb1=`HlBX=Bjc^'J-;k>k.,5,&5g60!^D:oJHp?L*kfc!6n)kF5]*/Hg 34.708 + g4`!Z#ZQ1sRG[#N84=UYO+nZJW?5pk.mihuUGFU8APUL3W-0H4kQF@P?'7AujTl&qR<)e"8 34.709 + 4\3/)(1]^O!#4+5YD*4rfGp1.$KUJ&V$jHR`k4es8RBJK'GA^6e.Ddq?tGV[+kUaq4M"3RV 34.710 + "#\8A1ifQWe:?u6Jj'@A;&r?1NLQ/?6o).f@$^Q7^:5h`NIN'[mD$mLrL>fQ@U=AS45k[aU 34.711 + Y\RES3kX&kFXP/>JT5%hPgk8b%<2aH[Pme24F^1F?\Wfpn%]*7^#SF@Ql[]VB(q\q=ICTpF 34.712 + V_H'?dSL.%ne"hFOkBG*!sF8.=19Y_k-%-=5UAamN2SV#e\Im\17&&NEVL>cSrC%;k/NoYd 34.713 + n&=cX#DBU$Y9Lhp0$p[C$&Id.L>!>)Gd3s"j0\3cn-5#$SWc_GieYFj"jAI(`dWS6H3p'<) 34.714 + ?#?l$l;k=(nDk4QIR:IQ@+im_1$IH$[eAfT<+)J?)AO<n2X@#<A)U/=Z6#Q(p?`pU]ia^ml 34.715 + ujl";'H!=Hu<sY0K8$K)1.^#E#P":kXGu'=?fDZP!=X+?CE+ME&8.9W^^@k%(FrS>M@@X5P 34.716 + V2c\9cbeOKFAZ[V!,(<8Wl!Y#7d##moYiXFa`cA$N.;)n;\")tJB%CO'Rnjo"-iD0]j(GS` 34.717 + g4h&XfU@1CZ?#RVa\Zq,<\("*hT;]9]S(E+;*2S.mHSKbPI-Ha7/:O1M*]i2:]RCU-YD@L" 34.718 + 6hRiG942V>*%O>1YO_$^VcjLpP+KS&'8g4Y4&jJE!rVMuKXE3<6a#iG:-c9_[q3(ZJ,kAPp 34.719 + NVLCYGBt$6J_dBRH65PV>4CH9iB+.t#4:X%WC_f\2*d8m2seLZ[7S8og^/IPciR"J4ok'02 34.720 + pLIM4t"<b?*_$1I3ugg?C8U6<0Lm!8$KXO;XkeLf(l$]n\1nT8fer;aY0^hIaJN"SicCW?R 34.721 + +[Bp["]_U[e>E0AldY%/f1!'p,K4n\=8cs23+rO91"8+C3nPF"dMXj>%k9N\hlb!Q!Xp"CA 34.722 + i/rn^'V6f:_ai;hm,&He+U>QS_L.cSk`'^b>J_FIr.c5QN\9#o/Ymr-qKYL`sHhZdt'/<?t 34.723 + 5O5g$JFQW($#I%n4OF7?&A7Dd!f^It`d!-c&B^cRl--u-*0D>RqV[ANc,_on9&@.5t+qUui 34.724 + mSKu2B_XOG+B`,I%)`]LV_Sd%ecrA4#8#`:@!N5Rpn+S344(eS&Fr:dOPn:Hq.^oFTqm9Z< 34.725 + p)(nPs>>SK!>/'>7g*W.r<lN0>@`h(Ab+R&Z]UOE0NpjSE1<Dfl9.gY_;TY]b9Y6/<HM)&> 34.726 + ]n7<u$fX-fi:I!ZVPeAt:Y[,qJHcEH36'I2@r`*(%Fi+gDkRpks[PlOD>e`$cY2Q6QD:)9= 34.727 + Z0!-V%EXW!==)UY]Od.l$C9#;.R,Au]g0'mrR3tt!gVns.f_S6_E]c?BR0B0dcn^/B:W;H] 34.728 + <aT=[A&OQg27&?rb*cPU&:l?GMNuYBerA"fr&eQ7[ruIa5*?rN=&QKb_-R+T!C&r\`Z8*U- 34.729 + GQhTr,,-hA-(;Un+?tD/N+-=7%_rgU3Y*Hn!+o%h!\dVf4!X<3-Glr*:e7:@Qsl*[+n<Lha 34.730 + 4;E7Ua&R-fP^>XJPQP+pC^97eFJW`!j:*0Tb+L>,0[XMU,rqWR/DOP")U_HbbZd5[g*$H/? 34.731 + imPceSfRRisLN+`a0rdZ>sl,3Y2.0%018Db;3=A0M>)!sM@9nieJ>>j:9*'Cu\ZkcRlq_K* 34.732 + J!,7dD@_g2DQfFkM?olBRY'/G@T5]j"9mB;a_&\A2*72u:-#I@0N&L&?u%-O?"2*rrRU(Vq 34.733 + '^=EPc[15[6d5^YLWmr:-Z/aC[a(0QCas8OM*^NR[JdRR&@kB0W+07Z[+u8-g2_.;=J--ZL 34.734 + +uM<]7!B<M,1D3i;i)W[\4TZF/$m>Le'T78f()]S+LAMNo=Hs`4$3b94AkUl+r3*[$3Tns0 34.735 + 49c)$,d2`M@['$<!<OA9unO<Ifa[K6.?rsc/gX2*eFjr(_Nj?1]Rfu+D2fP))ON%$.D9#Oq 34.736 + X'P%Q$p?TJ&`#+S=YO2e,0@LnKF`q'4B47au<%P&fs<G7YC5r3@@h1:C"S-Tq"QrXu:T["M 34.737 + t1La/)@nUa,"aUYZ%Pj]+l8OX:aOFKg??Tc]%##L]oaWX:<"\UJ"nVu65_D)lnYZA_\><kY 34.738 + U/J&9=k(Mib9Ok"_"LL87j$sg\:W(U0/HQD\$3:@L(!uM=,9R3M+Dp(!;8C(I&U4Q,AclXM 34.739 + 2rZ`OJ:BeV58IY(^0q[!inb_5s&>7U,kQ49%cK6=/Hlc7Vc'fG;j]F7-QuF=4ES"Ve)3C^B 34.740 + Hu\Nc';p6EA]4Ui&5GM/[<P\m<5^G;-0!i3Nd!R;q"e_CKbUk8IsoGe$W=j7p34Cn1LFJ!\ 34.741 + bJA`r)O@>f&1!JHRpnkQk2B$C0HVFlQ:icWh+n'D2d&@d\8Fa&LUd7c_T8BJN^'@e=,])tj 34.742 + b@BC$*$(FA&\?AYgYC.R]!F^g!m,7F<Seh^f&92uQ%1bKFu@RDuPqL6nQ4+S5o&agr8l@!K 34.743 + [2J<YGda_LmO'(h&3+n$jkCuXYE$U--8Omu91\4YkTNfI6e#e-oXVD(`Y;W)II`WL/8&7;G 34.744 + E$<eS0D9Zq(5>;c]/MH%9G.SEG&%$mV*<J/IjE3MEofLta<=P=l!Y"%j?s=Jk;;+CMA#igZ 34.745 + k+GsFFsj`,5+]^;5,:H,)QU@#:YH9pCg;tc@b'c_U&>uMu>u[]i8#kEm=_"f.qtF)Q^$S]W 34.746 + C`Lif+>>$4V2Oo]7;b[K8W"\8;9S3sO\^:9ZV-)Sai5)tCU^pN(OF2.Na7A+Fl='jT3B$$U 34.747 + TO-IV,Li_G7s8fZ%D_Uh8Yp#6BfV0[n:#ULQkFrDO.-ZL93nV$fH@Q(s(!hNjU,3*ib^d?D 34.748 + W%7<P:H<(djkD)gm!pn!](,nK&b0h?)l$o%ZJ&X*6f/=e0b%\r<guMQWM"k]9+^>2>E+$LL 34.749 + ;E07E\gE#E5AqAN=>D*%X+Qb?AUqmBUTd`2:Oi.4KYg0%Z+4B[=Yu4<m^J%+pgXgNO@Gsn6 34.750 + Qs-u!]Ch(GAZG"%(La\N=Z<HLB@&ELuKPj+LWKrHUmW*+LMXU[P/i'NXMQq^a"")R'PKI:g 34.751 + TKipOq0e=%Wp5Rn*T6I`/U;ZN-H8De3$^NP[>i+['s7'^<$F(rVs"l*!fpAf2!T5mEF)Dh] 34.752 + J,=97(^UmC9jD!n%J.!KR2NVOZZ!`aq2Gg`i!&7I/R3AU[QBT0fe<GUD',)l3ed=)oRhR2& 34.753 + C;YE'0quTt'+iOp,JhV,()*_Rg$5maOQmleq@d1F*2tAq7NE/E?RLRr.:fcFHDfcWPW4rP* 34.754 + BOnJk@?`jt$'S1G18-4Y@M9t//"2&RhGKRZUVuHNU7K3+3gf[e$f(KC$pHpT6b&.Q<,*Vu< 34.755 + q2G-,?6f85^@^`:(AR89@PdB'btc"X.Ymg,Io/[(P's.K_bEuT\:IS=ZG=up`>9q>f!rdU+ 34.756 + S'lXu_6UG^&+m7+jq.-jNHSI3WonfiTJ5KEuK6;?4U&-.Mjnr$*"#nV$0PGJR"H+ajRm2tH 34.757 + [0.>0[g3_bu+7%lTe@OOoY0r^*_DhG8U!F_urZqF:L45-hip[f[3N)c]YKUO#.ie_-]/lcD 34.758 + p6tE]q\tBd*W&g;$&Q,&0Kq!%u+ThD:$;('sPpeS:Z9A9gYJN#hDp+Rn0_OI*MphM,Rh@]W 34.759 + /dpis_U&c=2b"u#$]Va6ZIpIr&H@p#I4+euZMQi?=sZKEoHQ`:Q3=n'\2'T9RX!I+9op/i- 34.760 + 0Ulb,:kLTeSHf,L`dpVM"--d]+<)N!\k`@5`"HD2fr"#j*irLhbt^X%:Jlh[GD7DfM-n,]# 34.761 + [[Z)md.Zq(]<1-tSiMWQn1aa1Rnb]\CP8@PA\Sf=_"8^"_9i!\KgE_7kVmN*E^%84j9EW%g 34.762 + d;[XlnFV<Pc_-*J8P18?HX"R>`u'guLc@P7h2@NCQ'*:]BRR;&%_b0)P4\\Y!mbsA,(JMAm 34.763 + YrYTr?Do0P8)Ypo_e$L*!P?TheoQtgC0?)^]d@3SE_E93B>8PHk44GgM+`KLXm?pA_9`XS& 34.764 + )7gra=36m$?CV?XO:!pdO>JdU%P[&70iULnb<j'#[grSM68b#=)&6"FU>/>`a=-SJOilU-b 34.765 + `_:C&'N3!0?`X'Q(5knTE'QY"hVV>Z'XFQ_#@:Jm4kKS0GeT!AV)p;RN\i'SK)_!(hL]%<J 34.766 + >]MZaq1*4Yj_kERRAI8u5a8_o4o.1Etk`IbRa47)pUC=DipjHb3T,r'DV4fJi`(1Dh`U*9J 34.767 + I#lD0rO,?aW_pQ?Ye_9PXRcCEG/#%u2oK=C<VCnYdW;M6neYIM@mI5KeeQKgA=X.>t'^a)< 34.768 + /O(oCWO\\=4)M,#6aE(l?bag`&gVq76SNG\0NRDc?KpG/]dDN<HkMM/\e"-@"%HXXckaLPM 34.769 + 4A--Y+tWAtW%Wc"X[,sI3nQ,46+j2CEM>CofK[-?W:tq&j5*#]"XE$d/t%::^gLft*"D"9= 34.770 + 65&_hqDiG5$R-C'VA]B15`RdGX(9g:N5/Vj;>YHQc^N>jVYVp=gc_k]%u@31217&^W<UU+m 34.771 + (mWA6$5k,l0I:+qut[Cr!Za$\BNJScS1Z/`*m:d_[$=50*%^^#/h@mFeP;_B2WVn?%uB+rU 34.772 + !RIc'TnD="qdZ_#S%IeW>&H0r?OnCUNli6!5[7]hsMHU8A&!%EI@&+YnRn%'66]P6rO2KSm 34.773 + +o:J6W=7rg@=<XL+e7o7<4*Vp-",C<#oH.EaIkSfF(\;!Bp;S3Ghf&6gEC>(W+]sI'hX[=# 34.774 + NZo:9pOA575@q0KB@?gBq8K-'5G.dMn&YRr+orqc$3F4=Q6EcD".lXkJ&:h"Q$39c1qqH:? 34.775 + d_;kU]"QS'r$Q@_AHErBUbAQ+r_^(ht$/Aak^hNh]`%#90hD(=>V'2$&(_)OP"Y=+VBQ!if 34.776 + R?M?83=W7cTW`oR9(LO\"Pr=Yu^.n<Eu"P1aQH@47O;k*&rThJkQH:?Rhoo_sD-Tgm[6:^n 34.777 + IO/2C,eFP'5ETE;)j5R"0q3jDhi<pQ%)omX_cYu[L*=66"IBmj1P0=rb.f(saKmZ3jF[JbB 34.778 + 01p<09C^ht+_-lc">W*Z9M3:K&([5JGdu)7XnsNak?SRtn7OlBWV+:a7d:VE?Qgj`H<!@$l 34.779 + Rb]=*@BnL%p7#;%^<ZYbghjLsNRI-:[-=c<gi`d:alRR=SDBJe*!"'$\t*0:?a8;L34kW`< 34.780 + D\b8m6B/c?A]-<j7R`sT&4b+-+L<cXd5ONYCUc,5&V79](fu#.;2-O5d3'U"@4_@(C!10F< 34.781 + :cT0U*pl6EmgM$pu_u2\&3ZoKNmT0bd+j7'SR*$,nNTVYETbFC,kS0p2J-&5J(;*'12U@3- 34.782 + nL%">cWEYO9Q8?t!qq);*Co\Q[Oqss^#Vt5fH^f%PC/5%bJ[k:=ZoY3(R1DIkb9X?S%1efc 34.783 + *f/?@0FPf&Q1?;R_cEjnH4ARERlTPCAnu*[-/u_i;3[G4G4]+%9(Igja96U06dW=q,3(M_Z 34.784 + s1$OC2bm;Yofl8P2&/VZ<4+SZ<(o*E)cftHF^H>Tool+X<j#@p(0;uY:L5t;Kn!K42A6<ca 34.785 + `;.T8iRHALArI;oq!@22O11T>.1iBCg/gJ[r,EYotPHN2\jAR>dlT:FBph*f61H/Fl.FM2j 34.786 + NQP>==J>@Ga#opO4lq[JgWn0*B/RQP_NQ;rK\'(PZA.E]7I"D<("TY#MItAkI;s2i_CXp-4 34.787 + XL3>7g-Ot*2d!1LGsC*R;iTN.@2q&X1;B!O$6M:,Eo/S.i0`bhA^3YmLFBY$)b4s$AoQDtA 34.788 + )F(EZ9cA=EYB_o0@X>9Uj,5^P`%P^W0]$A@%CqDUOZu%?:q6hc':>U24/UE^<.[jHgJ"GCq 34.789 + pV(RF5.;kJRG7:Zfm=2d^MuA;(WLI-G)gWa+?(XI&q%#BH1N.k2QB6ZIm;;"]EO?DkIUqJd 34.790 + .KP'=4VN-F5"p>JU_:V'7I0b!r"'4GLuT&p1r(F>qWl@GQ'O^jEWpjQC\oLF/!8m/@]]b.Y 34.791 + ="jk'K;B@Gp<T)tfh>?JifoI(qVdd'UV2euB3eF!tr*/r=B?I35re(ONa^$,^m-_uG5u"p$ 34.792 + tI(*R'?<!1JnrtnTD"%o4+Jdfd'5r^9/?dfa>O+kM<=?-UooH/_k<VVR&U+p(2M?ZnQWWtL 34.793 + d#[qg./9"n2Z$2*7+ga1`&EXuIctO"_TQ#\k*,S)"U,$174,FOpRmSR;iF(/-M@i<,76%53 34.794 + TP0*1O/rq\E>o]dTH/t&/h4k#a?q.\a`rbV1<-iW)e3sC)0*UY_D;H1A$JuA1$1F8\CVVPo 34.795 + AF`ZMEXQk#pEh8@kHo?$'de2,>/mKOp?63$>Cq4jKpt/ct5PZ\M#=@oUh?UoIJ'>W"e>J@s 34.796 + PrePE^(9.qK-mK!Ju,7]BfJA[Jq5#gK@UU8S3ko"HX5k$\umGRPnBa*uIYdmI9#1M1aTRKe 34.797 + jlbrCUnb4mi`"].8)\YD)i7*:KA*cFe6aZ3ug=TjqaW^'u"=%@)q1^-]\cT0<7>m0)I'/Fo 34.798 + 1\bSI&nJDXU"KDUi#ZkZ+\N1tLKhqO^g1S?!PB8^>;*$-hKO#BDJ:<Imd1]#InirkUKr`Sp 34.799 + q]MjQ-`%NS6]8NXFD#jc.m[X4'gSNgBiR*(P`dECMKr!3oMHWO"R(ctLfT'q7k0)pV,R5X_ 34.800 + l;/uWO53p<B&4Q7=A5\/-HEI8@g$<E:g43%^?a9at-(;m&^tD7+Fo^U?[.&XgQ0Z=#W<K%e 34.801 + +,7%Rb@@](f8,om\1i]Q)RZ$uTkuj!+XI`>oQ,@ou:"JKT98#TDr=;C-7IQ<MO9]/\H[*M4 34.802 + X\C^'t\86$_(3$MBC9%pLJCIX#]+Z.7k#!6Kq7MNW]U5IbgLN;atGuR99%aNich.A#L`46[ 34.803 + 2jY>H@Q@M-EBu-#nh)Kp)!eo50G@[]VbIBnXM^TmW.aNc0U)i\VC:sVUod-7IHV`J@^'@Qr 34.804 + 7P!MIDmf=8!uh+c.#]oPI=)?8]^UT$nUXE2o;("X"^nt[Gfsb0_?mK5KOQ6:L,s7T=>p[,C 34.805 + _8$KhB0ZQK\52cfklPFdS5?E'k/^rYmW;X@SLkO9082mEOIgH"q3t2[*fJinJG<%!Ao?9M/ 34.806 + G&n7k(rl,\4QUP=auaapFr2$aMZ$19tMbJNG5jZ@.nAk$Q=MKnpLI'U\8J*alkD1GW4SRn8 34.807 + oPc.U,tB/0iDJsp0bRH0ISJ81Iu#'A2pG;s7V$))@[PgKehdK:HP7VaJ]!np.6k\V_7ZlYL 34.808 + ])J9-]D)dmdAtL?'RboFE7MYRHVi99A-"@_mpS1.PZT=jaCHIU^Fg>1P+L2:d<<t(;m#;Ys 34.809 + dopI6Ks>eYCnMqg/IGdN9ZqiS"USoeNNJ8@p*S>E)eP?Ac+'%T0&OagaAM@^YH<?#g='85F 34.810 + DeeF5Gjh*9&b2C'9_*\:5DX%)n/FWXnBGQo]*L?*3'#<#[BsZMW"e.4n-/bTQfQ.iYou=L2 34.811 + JHZGdeLL*+t7N^,a5YpE/H9LQQU@8]c6:-fl>GQ#[F1b=\QZ#$e@""tjQj3O)O>]ZZje^3S 34.812 + %MpHRj^#GH/gqnu1#&*Vgs8o2=9Wd8kbl5`BoFZueTHFHuA*AaN/SrqV#p2fJhA$L2@ak;# 34.813 + "BC-_;[3b7Kf?>mRmG5f:Fro8kHae4f*Tt+[^A(>_DfURnWCUdUpPh#%JFOL=\ej[b1^=PP 34.814 + /%'nR;YeLT:60np-%EFMT/hnD?,/roFnBrh*TfKsAFN50iG/34>Wk<To@ku=qB',?r?6X^h 34.815 + UJ7p^NK!`\">*52r?cjDH/jG_oocl<]X#Z8T=FFqB#[i)"31N?:Vs`59K2)T6^/0olKm2]B 34.816 + ]@hHhIbigAHWQmf&j3;h#**r-u-)raK+.5ER;kJ)C3&TAE4*MuB1CqE+:\^]S45;4P9KA[R 34.817 + Hu^g`nMkQ!jF#+Sp!!!E*`P<hGq)'PLR0rtbunrpk:#f-8M5bncR)Sj/3_D.Pj4?O:nEc]& 34.818 + )g-L*!&];f-,T4D5IZ;Oe^1'=?C^%Yn+K$b-XqW#u<"d$[,=+^<0n]Zq>&_;o,smc!66n"L 34.819 + 4<t(].gWcb_UL36,V$\$XMVn0Ln$(b,Vu2H0LJ.$6Q@t>F>H:+320A06]n%ZCc[AG3((VIT 34.820 + nGHoiL.Tr5DT/"6kht\X?T*-O2MGk`$@ahEWAKq8!r(#_rO;*PY7W*8;RAU"5tgj^a?>=7K 34.821 + o#RL<NPOf]\Plf7nrS`;EUGHrLEiW!Hp67:U^6EO/'/4iF^$7H*W%d#XA]1e&0WL<,7kJNU 34.822 + mGW^QbdN,Y<+OG1\FUrHYE6*&GN9L_<A*i.9:7I4ob*++Nl2oW:_7QES#LmLSup;\SM`d!2 34.823 + -30qTVZ:2u"7GMfOZ/<S%NlP7U4EthHGq4h]LWA(/`M?\X)"pK;Y"2*D81[e43O-Vp3le=K 34.824 + aJ%2*aGrenL*^MTa*<n$I"=b%-qMF\aVj53N&aG!MTJ`BaLkHn#`D,JW^[OV8H?LLN09'?S 34.825 + /tXn_i0i%>b@O&QAF%]#],[H+qR@+TZTjd8`Vg%oUng-^If&rb#j>>1ma/3;2(608X*XUd" 34.826 + tBQUr_2JaOmL\i.nPD:rZF]-/=93;(W(GXMl0e%!5=MY`)"K?-)408X`r.]V3GlYY(jJbCG 34.827 + HWUje+VI`p2f9/3k)+C<$Uf?9t394=ho5`X$PXda.<Z/!*OgnqtoVojtGRnTf;`5.6(kXLb 34.828 + `LiDS!BeI@%Z%uYPMG0(ee?'(RcNm4KP4Z*)+Y8H)g_1B&Xb>B0I(ddWHqf]Zbs7jqBS9&1 34.829 + jpFdYb]tm1r-loL0$JR!:(]2*+D;+(cpL4K9dK;!,h!%3e5!+0Z.te3A9c+I`X57radB)!# 34.830 + _Y_D0ho$ac2`d!fegYRL.n!k:P<a^#d;NuK?f:03u#koK`%$5[gD-c6Tjp82%,k[oE_h#aP 34.831 + =JReDH?%:rXW2aP?fSFUs9jondf*#^iq88mR6`]rZVYLcf,tI1_9oV9\;);%uq75fQKFF3n 34.832 + lZc(G&)q[68oK2McF9AJp^bl`jr"GgTbP._`i<?b1#q%+7\dA8.Cl)C,MLJ^mJ/:?R-:mFb 34.833 + "a&5I!d%iEn[1#ubU!V;!;cP?(>^k)UeUhWB%!8\/V%X/X!/On1$$;SkXZV+;#m`+39l29a 34.834 + AO6a#-O?6dLm8e_]cr;LhbZ/!$Pc-,j\AR4^Jn0]4FGaU.#:e=Q;B.hN,:^U(lD+fUsnh)d 34.835 + qg_eI5ocnRa[eE'6P9ofW#4r(KCHi:k4k^n;#PMQO&!*M.Kc."\/i(6rX`%asBgi[;/NkBM 34.836 + 'jn:NZDgV+=YVKiCK4#fL1GBKcb$>/Kr:e]i9*%:.Kj1J+-M<paHl"_#ln;UKnHLi$Q,D#K 34.837 + 0$F&UV08(DJ_70/6V@u8/D(enTTh*+oZ.+gAV=IcEoXUnM9o[_QG!!&,3^l6lE0%XZY=Wrf 34.838 + ,Knr@b1_,I>95RVP4c@nILkoVt;cn\%7>2"a1lLqFf;0kJQ&JcMRmn]7P;SS.%0Tgf3a)EK 34.839 + fZalZ9l/Nd;:eKV]u4^)XDGRT+$Oh1g>TbK4eGnpCYF24gB`R6^m7ufK[rjtLks&O.*#;pG 34.840 + hP<X>F:W/3AjttHWHuJgW5]7<O1AE]j(HHe6,Ss0V;JV/Qj*sggPWbrEn>&PYb&Ma#sLEkc 34.841 + .iXNDfD^gL[ZqNJgtBOPI@d7/Y*Ym0-XHO,9FX>V4=V"i44#f3>*(>t*ET<Q)b^`S>=dQ4: 34.842 + mdXhR;a^066+#^o\%9iKek!)kS6fQD^MIGbBbLKum#;ui68S\a-Y.GbW-h-b`\V<uMqL"LP 34.843 + 0N31l%S_[T5oTaRV<,L@r*Qd%VDu^&97m4bHUp\\-p>-pGhG*/>(&2-Ymp=f4?lf2NrTB#K 34.844 + Qf&>"?eBkcl%KPjo0S`7?WIMu?1qQpkZ\f+i'iZ^^#[c`U;pi%asGHc'pf3&rs1L_?u?/U9 34.845 + q2R@mb[pQ?*4t$2=-,NIgSnIN'7P7<XN6C+HseR?Ig#b%KbQ(,7#n88-M(SR$C76dl`=+M, 34.846 + ihtAc#ph)[KH($#3c)J:ba?ABT+N7-2n=gf7hAQ<C<FbhU>BDD-kg)-\-NhZ\kd7I)\b3(u 34.847 + ucb102n(*>k$+CZ*POu=Lllt9cr"P@ijRp_1]0ec]UcXFfVj(U;Zn:K:)3+RhujF/?\4um& 34.848 + K3au,8im<<g=Ye`kWJ2B36Hhf-(.)S`)<<\I@+GqO*Ym[%$WT%Q#ej6#hA'Q\NFPO3cM3-* 34.849 + d4ls(45`YchG-t*hG@g-)W3dfk$=lnVI^D6@YtX\65EYaNc1&'=lFNqjShR,7NH+aMG)'k> 34.850 + ia%\efJE/N_E<M=s[0-`4IQsMW^F7%!56Ijse\MU/jgBk?(GK4rEASGh_Y$hSraS%Yk=Sbi 34.851 + SPJ(f#<UV5c^:X$tR?20H#MhJd00L1_)B$Dpe@2JthkDeT]HNujFH(oh8V3GCl$Bi^O6Yj6 34.852 + "C(smu^`"ncWSsnoXTT3WSO''D3$t3']#XlD!6%5JA(8m.pU(59sAA4o(_sHU:H>)@B_Li! 34.853 + VL9HfLW=H`phRmakA/B!(Y\R([CCofgCmjJ]E62Fm_*56l?Fu0![d1`5CSVR.[_;#-_s>mh 34.854 + MWVXgrkIeH`/>DIlqjd"1_4Cl`pAehlt4B"ri<dtXN6^0_L#BMm`TGIlKk\#gd]LPY0BO-c 34.855 + 9U6h^4+LIG,W-E`^,pBN5ioR^<#]=gkiJemEh?iZjCThhX1r=D<Bf6T&7>$i9iMbM#QE%@$ 34.856 + >Ir#&[K)m\#M(GXu_gkjI$hmcNs*p@%GSnF%._mj@Vo2Y6B,o^>iRmq2:^G5(H[q!XOEn## 34.857 + sM[eoO5r9r58mtU03L/p];l0b_ULn"^^mfW&L"RoIrn7Msj``C#2!H9CmLj&r?G73o\%.Mj 34.858 + XnDQAn1skVf-JI>aE?MK)[gqpu'_,6>nRi8Lr:0:bk32gXnY!!%:hkYR*:_W$n`Lt`pE/r2 34.859 + +S$<lng>XP2^@l`,k>"_nn0<?G:2s:..W]Rnu!u.[k%$i/FqCEo&h09^B!eaO",o'o-Z<b0 34.860 + V7d#1\4[*mADf4B/fF:`H-5_o;=Y8#<DCb4S.-co>a#cpHRTAj#,^ZF=0ECT[O9q_3rC"nI 34.861 + \D'aLCes8G&6?oVY=R[nHA69_?q2o]K!ApJ:Ge;"YW%od<Z12cKB><:s<mok.=uG?=Hm=S8 34.862 + "`oqu!d[p/OG>kQ]Sp#fZSpL!V!@.kCFp*X>C2e2POAG0)9p1J"2GA$W)B_Id&_:^-)2b#r 34.863 + >8-d1(NR)M9pM]d2E;(/gpEt"U2fn^`FSAjZpLe[DGB`e:Gk[PMpSW?3[sRkiI.u6@pZI#" 34.864 + pODrCJG9q3pa:[g2hUlqK_SW&ph,?VGDGsKM"m<npns#E[u:%%N;2"apud\4pQ,*"[_*IUp 34.865 + :.Gb#Q~>Q 34.866 +Q 34.867 +showpage 34.868 +%%Trailer 34.869 +count op_count sub {pop} repeat 34.870 +countdictstack dict_count sub {end} repeat 34.871 +cairo_eps_state restore 34.872 +%%EOF
35.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 35.2 +++ b/0__Papers/PRT/PRT__formal_def/figures/Time_layers.svg Sat Aug 03 19:24:22 2013 -0700 35.3 @@ -0,0 +1,198 @@ 35.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 35.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 35.6 + 35.7 +<svg 35.8 + xmlns:dc="http://purl.org/dc/elements/1.1/" 35.9 + xmlns:cc="http://creativecommons.org/ns#" 35.10 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 35.11 + xmlns:svg="http://www.w3.org/2000/svg" 35.12 + xmlns="http://www.w3.org/2000/svg" 35.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 35.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 35.15 + width="744.09448819" 35.16 + height="1052.3622047" 35.17 + id="svg2" 35.18 + sodipodi:version="0.32" 35.19 + inkscape:version="0.47 r22583" 35.20 + sodipodi:docname="Time_layers.svg" 35.21 + inkscape:output_extension="org.inkscape.output.svg.inkscape" 35.22 + version="1.1"> 35.23 + <defs 35.24 + id="defs4"> 35.25 + <marker 35.26 + inkscape:stockid="Arrow2Mend" 35.27 + orient="auto" 35.28 + refY="0.0" 35.29 + refX="0.0" 35.30 + id="Arrow2Mend" 35.31 + style="overflow:visible;"> 35.32 + <path 35.33 + id="path4008" 35.34 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 35.35 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 35.36 + transform="scale(0.6) rotate(180) translate(0,0)" /> 35.37 + </marker> 35.38 + <inkscape:perspective 35.39 + sodipodi:type="inkscape:persp3d" 35.40 + inkscape:vp_x="0 : 526.18109 : 1" 35.41 + inkscape:vp_y="0 : 1000 : 0" 35.42 + inkscape:vp_z="744.09448 : 526.18109 : 1" 35.43 + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" 35.44 + id="perspective10" /> 35.45 + </defs> 35.46 + <sodipodi:namedview 35.47 + id="base" 35.48 + pagecolor="#ffffff" 35.49 + bordercolor="#666666" 35.50 + borderopacity="1.0" 35.51 + gridtolerance="10000" 35.52 + guidetolerance="10" 35.53 + objecttolerance="10" 35.54 + inkscape:pageopacity="0.0" 35.55 + inkscape:pageshadow="2" 35.56 + inkscape:zoom="1.3364318" 35.57 + inkscape:cx="426.82234" 35.58 + inkscape:cy="692.65809" 35.59 + inkscape:document-units="px" 35.60 + inkscape:current-layer="layer1" 35.61 + showgrid="false" 35.62 + inkscape:window-width="730" 35.63 + inkscape:window-height="1141" 35.64 + inkscape:window-x="889" 35.65 + inkscape:window-y="6" 35.66 + inkscape:window-maximized="0" /> 35.67 + <metadata 35.68 + id="metadata7"> 35.69 + <rdf:RDF> 35.70 + <cc:Work 35.71 + rdf:about=""> 35.72 + <dc:format>image/svg+xml</dc:format> 35.73 + <dc:type 35.74 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 35.75 + <dc:title></dc:title> 35.76 + </cc:Work> 35.77 + </rdf:RDF> 35.78 + </metadata> 35.79 + <g 35.80 + inkscape:label="Layer 1" 35.81 + inkscape:groupmode="layer" 35.82 + id="layer1"> 35.83 + <rect 35.84 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0.60163802" 35.85 + id="rect2383" 35.86 + width="70.518539" 35.87 + height="19.030159" 35.88 + x="336.78796" 35.89 + y="189.7659" /> 35.90 + <text 35.91 + xml:space="preserve" 35.92 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 35.93 + x="340.47986" 35.94 + y="203.13492" 35.95 + id="text3161" 35.96 + sodipodi:linespacing="100%"><tspan 35.97 + sodipodi:role="line" 35.98 + id="tspan3163" 35.99 + x="340.47986" 35.100 + y="203.13492">Program Time</tspan></text> 35.101 + <rect 35.102 + y="189.7659" 35.103 + x="436.78796" 35.104 + height="19.030159" 35.105 + width="70.518539" 35.106 + id="rect3184" 35.107 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0.60163802" /> 35.108 + <text 35.109 + sodipodi:linespacing="100%" 35.110 + id="text3186" 35.111 + y="203.13492" 35.112 + x="440.47986" 35.113 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 35.114 + xml:space="preserve"><tspan 35.115 + y="203.13492" 35.116 + x="440.47986" 35.117 + id="tspan3188" 35.118 + sodipodi:role="line">Program Time</tspan></text> 35.119 + <rect 35.120 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0.60163802" 35.121 + id="rect3190" 35.122 + width="70.518539" 35.123 + height="19.030159" 35.124 + x="384.78796" 35.125 + y="255.7659" /> 35.126 + <text 35.127 + xml:space="preserve" 35.128 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 35.129 + x="388.47986" 35.130 + y="269.13492" 35.131 + id="text3192" 35.132 + sodipodi:linespacing="100%"><tspan 35.133 + sodipodi:role="line" 35.134 + id="tspan3194" 35.135 + x="388.47986" 35.136 + y="269.13492">Physical Time</tspan></text> 35.137 + <rect 35.138 + y="223.7659" 35.139 + x="256.78796" 35.140 + height="19.030159" 35.141 + width="70.518539" 35.142 + id="rect3196" 35.143 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0.60163802" /> 35.144 + <text 35.145 + sodipodi:linespacing="100%" 35.146 + id="text3198" 35.147 + y="237.13492" 35.148 + x="256.60583" 35.149 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 35.150 + xml:space="preserve"><tspan 35.151 + y="237.13492" 35.152 + x="256.60583" 35.153 + id="tspan3200" 35.154 + sodipodi:role="line">Scheduler Time</tspan></text> 35.155 + <path 35.156 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" 35.157 + d="m 370.89947,209.61086 c -0.45745,9.67339 8.01218,16.37862 24.2787,20.01984 23.26745,5.20837 21.22395,25.53343 21.22395,25.53343" 35.158 + id="path3202" 35.159 + sodipodi:nodetypes="csc" /> 35.160 + <path 35.161 + sodipodi:nodetypes="csc" 35.162 + id="path3204" 35.163 + d="m 468.43014,209.61086 c 0.45745,9.67339 -8.01218,16.37862 -24.2787,20.01984 -23.26745,5.20837 -21.22395,25.53343 -21.22395,25.53343" 35.164 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" /> 35.165 + <path 35.166 + sodipodi:type="arc" 35.167 + style="fill:none;stroke:#000000;stroke-width:1.39999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:4.2, 1.4;stroke-dashoffset:0.28" 35.168 + id="path4610" 35.169 + sodipodi:cx="384.12698" 35.170 + sodipodi:cy="355.53677" 35.171 + sodipodi:rx="4.7619047" 35.172 + sodipodi:ry="4.7619047" 35.173 + d="m 388.88889,355.53677 a 4.7619047,4.7619047 0 1 1 -9.52381,0 4.7619047,4.7619047 0 1 1 9.52381,0 z" 35.174 + transform="translate(2.1164021,-129.1746)" /> 35.175 + <path 35.176 + transform="translate(68.116402,-129.1746)" 35.177 + d="m 388.88889,355.53677 a 4.7619047,4.7619047 0 1 1 -9.52381,0 4.7619047,4.7619047 0 1 1 9.52381,0 z" 35.178 + sodipodi:ry="4.7619047" 35.179 + sodipodi:rx="4.7619047" 35.180 + sodipodi:cy="355.53677" 35.181 + sodipodi:cx="384.12698" 35.182 + id="path4612" 35.183 + style="fill:none;stroke:#000000;stroke-width:1.39999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:4.2, 1.4;stroke-dashoffset:0.28" 35.184 + sodipodi:type="arc" /> 35.185 + <path 35.186 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:4, 1;stroke-dashoffset:0" 35.187 + d="m 382.53968,230.06589 c -55.02645,2.1164 -55.02645,2.1164 -55.02645,2.1164" 35.188 + id="path4614" /> 35.189 + <path 35.190 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:4, 1;stroke-dashoffset:0" 35.191 + d="m 449.20635,231.12409 c -14.81482,13.75661 -121.69312,5.291 -121.69312,5.291" 35.192 + id="path4616" /> 35.193 + <rect 35.194 + style="opacity:0.44897958;fill:none;stroke:#000000;stroke-width:0.10000001;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.4, 0.1;stroke-dashoffset:0" 35.195 + id="rect4618" 35.196 + width="257.40311" 35.197 + height="92.786636" 35.198 + x="252.16335" 35.199 + y="185.59641" /> 35.200 + </g> 35.201 +</svg>
36.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 36.2 +++ b/0__Papers/PRT/PRT__formal_def/figures/VMS-core__internal_workings.eps Sat Aug 03 19:24:22 2013 -0700 36.3 @@ -0,0 +1,1926 @@ 36.4 +%!PS-Adobe-3.0 EPSF-3.0 36.5 +%%Creator: cairo 1.8.6 (http://cairographics.org) 36.6 +%%CreationDate: Sun Feb 06 23:03:28 2011 36.7 +%%Pages: 1 36.8 +%%BoundingBox: 0 0 366 156 36.9 +%%DocumentData: Clean7Bit 36.10 +%%LanguageLevel: 2 36.11 +%%EndComments 36.12 +%%BeginProlog 36.13 +/cairo_eps_state save def 36.14 +/dict_count countdictstack def 36.15 +/op_count count 1 sub def 36.16 +userdict begin 36.17 +/q { gsave } bind def 36.18 +/Q { grestore } bind def 36.19 +/cm { 6 array astore concat } bind def 36.20 +/w { setlinewidth } bind def 36.21 +/J { setlinecap } bind def 36.22 +/j { setlinejoin } bind def 36.23 +/M { setmiterlimit } bind def 36.24 +/d { setdash } bind def 36.25 +/m { moveto } bind def 36.26 +/l { lineto } bind def 36.27 +/c { curveto } bind def 36.28 +/h { closepath } bind def 36.29 +/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto 36.30 + 0 exch rlineto 0 rlineto closepath } bind def 36.31 +/S { stroke } bind def 36.32 +/f { fill } bind def 36.33 +/f* { eofill } bind def 36.34 +/B { fill stroke } bind def 36.35 +/B* { eofill stroke } bind def 36.36 +/n { newpath } bind def 36.37 +/W { clip } bind def 36.38 +/W* { eoclip } bind def 36.39 +/BT { } bind def 36.40 +/ET { } bind def 36.41 +/pdfmark where { pop globaldict /?pdfmark /exec load put } 36.42 + { globaldict begin /?pdfmark /pop load def /pdfmark 36.43 + /cleartomark load def end } ifelse 36.44 +/BDC { mark 3 1 roll /BDC pdfmark } bind def 36.45 +/EMC { mark /EMC pdfmark } bind def 36.46 +/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def 36.47 +/Tj { show currentpoint cairo_store_point } bind def 36.48 +/TJ { 36.49 + { 36.50 + dup 36.51 + type /stringtype eq 36.52 + { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse 36.53 + } forall 36.54 + currentpoint cairo_store_point 36.55 +} bind def 36.56 +/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore 36.57 + cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def 36.58 +/Tf { pop /cairo_font exch def /cairo_font_matrix where 36.59 + { pop cairo_selectfont } if } bind def 36.60 +/Td { matrix translate cairo_font_matrix matrix concatmatrix dup 36.61 + /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point 36.62 + /cairo_font where { pop cairo_selectfont } if } bind def 36.63 +/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def 36.64 + cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def 36.65 +/g { setgray } bind def 36.66 +/rg { setrgbcolor } bind def 36.67 +/d1 { setcachedevice } bind def 36.68 +%%EndProlog 36.69 +11 dict begin 36.70 +/FontType 42 def 36.71 +/FontName /f-0-0 def 36.72 +/PaintType 0 def 36.73 +/FontMatrix [ 1 0 0 1 0 0 ] def 36.74 +/FontBBox [ 0 0 0 0 ] def 36.75 +/Encoding 256 array def 36.76 +0 1 255 { Encoding exch /.notdef put } for 36.77 +Encoding 1 /uni0047 put 36.78 +Encoding 2 /uni0072 put 36.79 +Encoding 3 /uni0065 put 36.80 +Encoding 4 /uni006E put 36.81 +Encoding 5 /uni0020 put 36.82 +Encoding 6 /uni003D put 36.83 +Encoding 7 /uni0056 put 36.84 +Encoding 8 /uni004D put 36.85 +Encoding 9 /uni0053 put 36.86 +Encoding 10 /uni002D put 36.87 +Encoding 11 /uni0063 put 36.88 +Encoding 12 /uni006F put 36.89 +Encoding 13 /uni0042 put 36.90 +Encoding 14 /uni006C put 36.91 +Encoding 15 /uni0075 put 36.92 +Encoding 16 /uni0061 put 36.93 +Encoding 17 /uni0070 put 36.94 +Encoding 18 /uni0069 put 36.95 +Encoding 19 /uni0074 put 36.96 +Encoding 20 /uni0052 put 36.97 +Encoding 21 /uni0064 put 36.98 +Encoding 22 /uni0067 put 36.99 +/CharStrings 23 dict dup begin 36.100 +/.notdef 0 def 36.101 +/uni0047 1 def 36.102 +/uni0072 2 def 36.103 +/uni0065 3 def 36.104 +/uni006E 4 def 36.105 +/uni0020 5 def 36.106 +/uni003D 6 def 36.107 +/uni0056 7 def 36.108 +/uni004D 8 def 36.109 +/uni0053 9 def 36.110 +/uni002D 10 def 36.111 +/uni0063 11 def 36.112 +/uni006F 12 def 36.113 +/uni0042 13 def 36.114 +/uni006C 14 def 36.115 +/uni0075 15 def 36.116 +/uni0061 16 def 36.117 +/uni0070 17 def 36.118 +/uni0069 18 def 36.119 +/uni0074 19 def 36.120 +/uni0052 20 def 36.121 +/uni0064 21 def 36.122 +/uni0067 22 def 36.123 +end readonly def 36.124 +/sfnts [ 36.125 +<00010000000a008000030020636d617000a2f14100001fdc0000006c637674207d0742a80000 36.126 +2048000002706670676d49d7df92000022b80000060a676c7966489d9ecf000000ac00001f30 36.127 +68656164d5ceeae0000028c400000036686865610f7e06b2000028fc00000024686d74785bc6 36.128 +0894000029200000005c6c6f636153405a880000297c000000306d617870037c02c9000029ac 36.129 +0000002070726570292ded16000029cc000004ad00020080015e0380045e0003000700264016 36.130 +059c039d049c070017003700030000079c019d049c00002ffdfded012f5f5dfdfded31301311 36.131 +211125211121800300fd800200fe00015e0300fd0080020000010050ffe704d305d2001a0137 36.132 +403a1c400b0b024b55060103370e470e570e670e04006a167a16025516010506150645060303 36.133 +680078000200160c0c024b000f0e0c44170f370f020fb8fff0400b1010024b0f0c0f0f024b0f 36.134 +b8ffe8400b0c0c024b0f040d0d024b0fb8ffeab40c0c064b0fb8fffab40d0d064b0fb8ffe840 36.135 +571010064b0f0645181638160200160c1010024b16060f0f024b16200b0b024b16100c0c024b 36.136 +16120d0d024b16120c0c064b16120d0d064b160c0e0e064b161b080168017801030223100103 36.137 +2813011803380302020c510eb8ffc0401a0c0c024b0e090118000100001909100b0b024b0949 36.138 +1303491913b8fff0b70b0b024b13091903003f3f2b10ed10ed2b10cd5f5d3210d62bed5f5d5d 36.139 +5f5d5f5d0110d62b2b2b2b2b2b2b2b5f5dfdd42b2b2b2b2b2b2b5dfdcd10c62b5d5f5d5d5d5f 36.140 +5d5f5d3130012b010726232200111400333237112335211106042320001110002132048d5397 36.141 +91e6fef60105e1a063cb019350fee287fed1fea101810147e50553a570febcfef5fefeca6001 36.142 +57aafd824453019b0155015401a7000100960000031c0443000e00af401e0a400b0d024b0810 36.143 +18102810c81004c70ed70e020e06094d064d68070107b8ffecb41313024b07b8ffeeb4101002 36.144 +4b07b8fff240110f0f024b07040b0b024b07040c0c024b07b8ffeeb40f0f064b07b8fffcb40c 36.145 +0c064b07b8fff2b41010064b07b8fffc40250e0e064b070f170a270a370a470a570a670a0600 36.146 +050a400e0e064b0a02520c0806070a0c07003f3f3f10edcd2b325f5d0110d62b2b2b2b2b2b2b 36.147 +2b2b5deded10c65d5d3130002b01262322061511231133153633321702cd3e3f6597bebe68cd 36.148 +336003782bba83fd9a042fabbf1200020041ffec041c04430019002201ff408724400b0b024b 36.149 +58170103b807018a079a07aa07ba07ca07da0706025705016808780888089808a80805280838 36.150 +08480858086808780888089808a808b808c808d8080c00571877180208221010024b08180f0f 36.151 +024b08180c0c024b082c0d0d024b08100c0c064b08100d0d064b081f4e471e01021718371847 36.152 +18671887189718a718b718c7180918b8ffe0b40e0e064b18b8ffdeb41010024b18b8ffdcb40f 36.153 +0f024b18b8ffe2b40c0c024b18b8ffd4b40d0d024b18b8ffe4b40c0c064b18b8ffe4406b0d0d 36.154 +064b18011e4e014e87100138104810581068100410100e0e064b10101010024b10100f0f024b 36.155 +101c0b0c024b10160d0d024b100c0c0c064b100c0d0d064b102387079707a707030027053705 36.156 +47055705040207522a083a084a08030357086708770803070817080208b8ffc0b40b0c024b08 36.157 +b8ffd4b40d0d064b08b8ffc040350d0d024b080c1e50470157016701a701b701050001400f0f 36.158 +024b01400d0d024b01400f0f064b010105581a011a5214100f0f024b14b8ffe8b40d0d024b14 36.159 +b8ffe840200e0e064b140c0f0f064b14671401024a145a140205100c0c024b05520c0b140700 36.160 +3f3fed2b5d5f5d102b2b2b2bed5d11392f2b2b2b5f5ded10d52b2b2b5d715f5ded5f5d5f7101 36.161 +10d62b2b2b2b2b2b2b5d5deded10dd2b2b2b2b2b2b2b5d5f5dedc42b2b2b2b2b2b5d5f5d715d 36.162 +5f5d5d5f5d3130012b0121141716333237170607062322272635103736333217161514012207 36.163 +060721342726040dfcfc675b8fa36d502c5b728cca8d9da190c5e5827efe247f56520b025148 36.164 +4f0205bc65585f892c202a8997ff0109a08f817ccd3f0169524e74734d5400010087000003d8 36.165 +044300110103401813400b0b024b070f170f0201771301004d11101010064b11b8ffd4b40e0e 36.166 +064b11b8fff8b41313024b11b8fff440111010024b110a0f0f024b11080c0c024b11b8fff440 36.167 +110d0d024b111c0b0b024b110e0f0f064b11b8fff8b40c0c064b11b8fff8b40d0d064b11b8ff 36.168 +f440100b0b064b11084d070917092709030009b8fff4400b1313024b09040d0d024b09b8fff6 36.169 +b41010024b09b8fff4400b0f0f024b090a0b0b024b09b8fff8b41010064b09b8fff4400b0e0e 36.170 +064b09080c0c024b09b8fffa40110f0f064b091204520e110a090a0a060e07003f3f3f3f10ed 36.171 +0110d62b2b2b2b2b2b2b2b2b5f5dfdd42b2b2b2b2b2b2b2b2b2b2b2bed5d3130005f5d012b21 36.172 +1134262322060711231133173633201111031a6779418e26be823c5ed50160026fab894e39fc 36.173 +e4042f8a9efe54fd690000000002007a018b03c0036c00030007002d401b0105870207061706 36.174 +37065706770605060803840207840706010006002f5f5dfddeed0110d65d3cfd3c3130011521 36.175 +350115213503c0fcba0346fcba036c8d8dfeac8d8d0000000001000dffec04a605b900060133 36.176 +b10202435458b90004ffe8400d0c0c024b040402010502020201002f3f3f111239012f313000 36.177 +2b1bb10602435458403804601010064b04400c0f064b04100a0a064b47080100370401010808 36.178 +18082808580804054606034602067600027601040400754701010104b8ffc0b42227064b04b8 36.179 +ffb0b41a1d064b04b8ffc040261416064b04240b0b064b480401370401170427043704570467 36.180 +0477040600048e010906020202003f3f3fed5f5d72712b2b2b2b012f5ded39192f1810ed10ed 36.181 +10ed10ed5d5f725f5d3130002b2b2b1b40414708010037040101080818082808580804054606 36.182 +0346020676000276010404007547010101480401370401170427043704570467047704060004 36.183 +8e010906020202003f3f3fed5f5d7271012f5ded39192f1810ed10ed10ed10ed5d5f725f5d31 36.184 +30595905230133010133029465fddede0179016bd71405cdfbc90437000000010014ffec05a3 36.185 +05b9000c01f0401401400e0e064b04400e0e064b0e401010024b0002435558401d0c0e180e28 36.186 +0e380e03080e180e380e480e580ea80eb80e070606080702003f3f012f5d7110d631301b40ff 36.187 +4a030145020143087308024c0a7c0a0203280301280a0127080102970101980401870701880b 36.188 +0101180e280e380e03080e180e380e480e580ea80eb80e070000460c0546380c480c02370647 36.189 +0602022806480602270c470c020672070c720b01010a0b04040875070a75680b016707010b73 36.190 +0207730309090275c70301270377038703a703d703e703060003770901016709010809180902 36.191 +680988099809a809b809c809d809e809f80909580101580401004a0201034701014704010107 36.192 +011701020701270187019701a701b701c701d701e701f7010a07041704020704270487049704 36.193 +a704b704c704d704e704f7040a070117010217014701570167017740490187019701a701b701 36.194 +c701d701e701f7010d0704170402070417042704470457046704770487049704a704b704c704 36.195 +d704e704f7040f00097102017104710702090c0806080b020702003f3f3f3f3f10ede410ed5f 36.196 +5d715d715d715d715f5d5d5f5d5f5d5d5d715d5f5d012f5f5d71ed39192f1810ed10fd5d5ded 36.197 +10ed39192f1112392f1810ed10fd5d5d5f5d5ded10ed5f5d715f5d5d5d5d5f5d5d5d5f5d5d5d 36.198 +5d3130592b002b2b2103012301032301330101330104e5aefec032feb7aabe01125b015d0142 36.199 +5a012903adfc3f03c1fc5305b9fbd3042dfa470000010050ffe7038805d2002601ccb1020243 36.200 +5458401907221a0e180b0b024b0e120c0c024b0e22070e1a0425131714b8ffc040120c0c024b 36.201 +1411000401251749110304492509003fed3fed10cd123910cd2b1239121739012f2b2bcd2fcd 36.202 +31301bb106024354584086082401071001002520452065207520042a0b01034828a828026813 36.203 +0113074507223722672203221a001a45380e01870e01000e2777040102351e651e751e03351f 36.204 +451f651f751f040a0c3a0c4a0c6a0c7a0c0533220103380e010a0b1f1e042548145814681478 36.205 +1404141137014701570167017701a701b70107000125174911044925091103003f3fed10ed10 36.206 +cd5f5d10cd5d1217395d5f5d5d5d5d5f5d0110d65f5d5dedc410d45dedc45d5d3130005f5d5d 36.207 +5f5d5d1b4086082401071001002520452065207520042a0b01034828a8280268130113074507 36.208 +223722672203221a001a45380e01870e01000e2777040102351e651e751e03351f451f651f75 36.209 +1f040a0c3a0c4a0c6a0c7a0c0533220103380e010a0b1f1e0425481458146814781404141137 36.210 +014701570167017701a701b70107000125174911044925091103003f3fed10ed10cd5f5d10cd 36.211 +5d1217395d5f5d5d5d5d5f5d0110d65f5d5dedc410d45dedc45d5d3130005f5d5d5f5d5d5959 36.212 +3737161633323635342627272626353436333217072626232206151416161717161615140423 36.213 +22544938a742758e4f9f769677e8b6f35f3b28a44666752a4b74789679fef7dec343b8293780 36.214 +634a7f4b3746c087a4d84fae1d36745b385c3e383947c598a5e60001009f01fa024b02a90003 36.215 +00254017280368037803a803040307002700370003000004014800002fed0110d65f5dcd5d31 36.216 +30133521159f01ac01faafaf000000010041ffec03b5044300170119401e450501a101010328 36.217 +1938190200870d970da70d030200070d870d970d030db8fff4b41010024b0db8ffeab40f0f02 36.218 +4b0db8ffeab40b0c024b0db8ffe840610d0d024b0d074e38124812028712a712b712c712e712 36.219 +050012101010024b12180f0f024b12200b0c024b12180d0d024b12060e0e064b120c0e0e064b 36.220 +12120c0c064b12100d0d064b1218250a350a450a032a043a044a0403030c52070d170d020db8 36.221 +ffc040160b0b024b0d0f015208001800020000400b0b024b0004b8ffe8b40c0c024b04b8ffe8 36.222 +40190d0d024b0452150a180c0c024b0a180d0d024b0a520f0b1507003f3fed2b2b10ed2b2bdd 36.223 +2b5f5ded10dd2b5ded5f5d5d0110d62b2b2b2b2b2b2b2b5f5d5dfdd42b2b2b2b5d3c5f5d5f5d 36.224 +5f5d5d313001072626232206151416333237170623220035100021321603af5e1d93479bb6ba 36.225 +a580824b99e2dbfee20129010253c203d8861d34d9bdbcc563a0630126fb0100013646000002 36.226 +0041ffec040a0443000b0015013c402517401010024b17400b0c024bb7050101381701114e17 36.227 +063706470667060406041010024b06b8ffdeb40f0f024b06b8fffcb40b0b024b06b8ffe4b40c 36.228 +0c024b06b8ffd4b40d0d024b06b8ffeab40e0e064b06b8ffe0b40c0c064b06b8ffe440760d0d 36.229 +064b060c4e87009700a700b700c700e700063800480058006800040000101010024b000e0f0f 36.230 +024b00200b0b024b00200c0c024b00160d0d024b000c0e0e064b00100c0c064b000c0d0d064b 36.231 +00166a030165090103670e0168130102450e550e650e034a135a136a13030e100f0f024b0e52 36.232 +0913b8fff040160f0f024b13520309180f0f024b09180f0f064b090b03b8ffe8b40f0f024b03 36.233 +b8ffe8b50f0f064b0307003f2b2b3f2b2b10ed2b10ed2b5d5d5f5d5d5f5d5d0110d62b2b2b2b 36.234 +2b2b2b2b5f5d5dfdd42b2b2b2b2b2b2b2b5ded5d5f5d31302b2b133400333212111000232200 36.235 +1310213236351021220641010bdae6fefefce0e5ff00c8011d8597fee4829b021af80131fedb 36.236 +fefcfefdfed5012e0100fe6dd8bb018ed400000300960000043705c6000f0018002201ac406f 36.237 +24400b0b024b05060103580a680a02a805b805c805030178150102480a780a880a980aa80ab8 36.238 +0ac80ad80ae80af80a0a0a1545380748070207200b0b024b071e0c0c024b07160d0d024b0710 36.239 +0c0c064b07100d0d064b07220e0e064b070d10441a44011f45070d170d270d370d040db8fffa 36.240 +400b1010024b0d100b0b024b0db8fff4b40c0c024b0db8ffd8b40d0d024b0db8fff4b40e0e06 36.241 +4b0db8fff4b40c0c064b0db8fff4400f0d0d064b0d24070117012701030001b8ffecb4131302 36.242 +4b01b8fff4b41010024b01b8fffa400b0f0f024b01040b0b024b01b8fffeb40d0d024b01b8ff 36.243 +eab41010064b01b8fff0b40e0e064b01b8ffff40330c0c064b0123671c0101371c471c571c03 36.244 +020a0a111348190722014722572267227722041722372247229722c722f722060022b8ffc0b4 36.245 +0f0f024b22b8ffc0401f0f0f064b22100d0d064b22221a17021048041a1c200f0f024b1c4801 36.246 +080402003f3fed2b3210ed333211392f2b2b2b5f5d717233ed3239192f5f5d5f5d011810c62b 36.247 +2b2b2b2b2b2b2b5f5d10d62b2b2b2b2b2b2b5ded10eded10d42b2b2b2b2b2b5dedc45d5f5d5f 36.248 +5d31305d5f5d012b212111243332161514060716161514040111163320353421220311163332 36.249 +36353426230238fe5e010b76d9ee985cae9ffee5fe423f5d011cfefb644f6737bcada5c105b9 36.250 +0dbbae66a8152ac2a7c1e60519fe5b06e7cbfdb9fdd10a8d9a8f8800000000010096ffec0207 36.251 +05e6000800c7b9000affc0b41313024b0ab8ffc0b41010024b0ab8ffc0402a0c0c024b070a17 36.252 +0a270a370a470a570a670a770a080706170627060306024d070117012701d701040001b8ffec 36.253 +b41313024b01b8ffeeb41010024b01b8fff240110f0f024b01040b0b024b01040c0c024b01b8 36.254 +ffcc40170e0e064b01180f0f064b01130c0c064b01160d0d064b01b8ffec401b0b0b064b0109 36.255 +b705c70502010a081a082a083a08040652070b0100003f3fed5d5f5d0110d62b2b2b2b2b2b2b 36.256 +2b2b2b5f5dfdc65d5d3130012b2b2b13113311141633152096be6350fe8f012f04b7fb695663 36.257 +aa0000000001007dffec03e3042f001200fb402714400b0b024b7714010a4d074d0708011708 36.258 +47087708a708048708b708e70803080c1010064b08b8fffab40e0e064b08b8ffecb41313024b 36.259 +08b8ffec400b1010024b08160b0b024b08b8ffeeb40d0d024b08b8ffccb40e0e064b08b8fff0 36.260 +b40c0c064b08b8fff440150d0d064b08004de812f81202071217122712030012b8fff8b41313 36.261 +024b12b8fffab41010024b12b8fff640230f0f024b120c0b0b024b120c0c0c024b12080d0d02 36.262 +4b12040c0c064b12040d0d064b12b8fffa40110e0e064b121303520e090a0e0b08061206003f 36.263 +3f3f3f10ed0110d62b2b2b2b2b2b2b2b2b5f5d5dfdd42b2b2b2b2b2b2b2b2b5d7172eded5d31 36.264 +30012b01111433323637113311233506062322263511013bd75e9c19bebe20c15cb0bb042ffd 36.265 +55f86c4702f0fbd1943f69caba02bf0000020050ffec03e40443001b002501d3b62740101002 36.266 +4b25b8ffecb40b0c024b25b8ffee40490d0d064b071317130201672077200202280f480f0200 36.267 +b70fc70fd70fe70f04010025150f0537184718571867187718871897180718254d0a4d881501 36.268 +150c1313024b150c1010024b15b8fff8b40f0f024b15b8fff040110c0c024b151e0d0d024b15 36.269 +0c0e0e064b15b8fff040440f0f064b150c0d0d064b1527214e38050100050c0f0f024b05160b 36.270 +0b024b05100c0c024b05120d0d024b050c0e0e064b050c0c0c064b050c0d0d064b05263a0301 36.271 +032500b8ffc0b40d10024b00b8ffc040320d0f064b480058006800780004000218191c520a08 36.272 +0e52080f180f280f380f480f580f980fa80fb80fc80fd80fe80f0c000fb8ffc0b41317024b0f 36.273 +b8ffc040240d0d024b0f124a1e5a1e02031e52a808b80802580801006a087a08020347085708 36.274 +020008b8ffc0b41414024b08b8ffc0b41313024b08b8ffe8b41010024b08b8ffe8b40f0f024b 36.275 +08b8ffc040131313064b08080c2352020c5212190b020b1207003f3f3f10ed10ed11392f2b2b 36.276 +2b2b2b5f5d5f5d5f5d5ded5f5d10dd2b2b5f5ded10d5ed10cd10dd5d2b2bcd5f5d0110d62b2b 36.277 +2b2b2b2b2b5f5ded10d62b2b2b2b2b2b2b2b71ededc65d10c41112395f5d5f5d5f5d3130005f 36.278 +5d2b2b012b250623222635342433321710232207273636333216151114171522260326232206 36.279 +151433323702e472eb7eb9011ddd3c4ce8b2605036bf57e9d35474732b5a2490b6c5906f7b8f 36.280 +b788a3e11a0104609f2c3fd4e7fe808d2f5f4201df149465a78900020087fe5c042c0443000f 36.281 +001b014d40161d400b0b024be71d01164e470af70a02470a970a020ab8ffe4b40f0f024b0ab8 36.282 +ffeab40c0c024b0ab8ffd4b40d0d024b0ab8fff4b40e0e064b0ab8ffe6b40c0c064b0ab8ffea 36.283 +401e0d0d064b0a111101044d014d1702010702170227028702e702f702060002b8fff4b41313 36.284 +024b02b8fff6400b1010024b02040d0d024b02b8fffa40110f0f024b020a0b0b024b02080c0c 36.285 +024b02b8fff4b40e0e064b02b8fffe40330f0f064b02020c0c064b02020d0d064b021c580d68 36.286 +0d025707670702024514014a190114100e0e064b14100f0f024b14520d19b8fff0b40e0e064b 36.287 +19b8fff0400c0f0f024b195207010e03060db8fff0b40e0e064b0db8fff040140f0f024b0d0b 36.288 +07100e0e064b07100f0f024b0707003f2b2b3f2b2b3f3f10ed2b2b10ed2b2b5d5d5f5d5d0110 36.289 +d62b2b2b2b2b2b2b2b2b2b5f5d71eded103c10d42b2b2b2b2b2b5d71ed5d31302b2511231133 36.290 +15363332121114002322260311161633201134262322060145bebe6c99e4feff00f2449b1612 36.291 +74370162a8b928743bfe2105d3586cfee4feeef4fecb30032cfd901b310190cbbc3800000002 36.292 +0050000001c105c4000b001100d9b613400f0f024b13b8ffc0b60d0d024b097b03b8fff4b40e 36.293 +0e064b03b8fff8b40f0f024b03b8fffab40c0c024b03b8fff940200c0c064b03110e0c4d7711 36.294 +010011041313024b11021010024b110e0f0f024b11b8ffeeb40b0b024b11b8ffecb40c0c024b 36.295 +11b8ffe6400b0d0d024b110e0f0f064b11b8fff8400b0c0c064b11120d0d064b11b8ffd64010 36.296 +0e0e064b11081111064b11130d511000b8ffc040120f0f024b007c06400f0f024b06100c0a10 36.297 +06003f3f10d62bed2b10ed0110d62b2b2b2b2b2b2b2b2b2b2b5f5dfdc610d42b2b2b2bed3130 36.298 +012b2b013216151406232226353436031123352111014b314545313045443793015105c44530 36.299 +314545313144fa3c038fa0fbd10000000001004fffec02fc0558001500cab90017ffc0403f0c 36.300 +0d024b0813181302281701871001109708010809010006090309010c0c064b094d4800580068 36.301 +00f8000400000c1313024b000a1010024b00120f0f024b00b8fff2b40b0b024b00b8fff0b40c 36.302 +0c024b00b8ffe8401d0d0d024b00160e0e064b00100f0f064b00260c0c064b00280d0d064b00 36.303 +b8fffc401b0e0e064b002c133c13020f0d0205070d52120152085207120b0706003f3f10eded 36.304 +10ed10c63c10c65d012f2b2b2b2b2b2b2b2b2b2b2b5f5ded2b3c103c10cd10dd5dc65d5d3130 36.305 +005d012b13233533353711211521111416333237170623222635cb7c7cbe0126feda5b65494e 36.306 +1c768d7faf039996e049fed796fdec877225a71ebd90000200a0000004a805c8000f001a0106 36.307 +4017670e770e02010e040b00460f0f1c16060d0d064b16450bb8ffe8b40b0b024b0bb8ffea40 36.308 +120d0d024b0b471c1044044407052705020005b8ffe4b41313024b05b8fff2b40f0f064b05b8 36.309 +fff0b41010024b05b8fff4b40f0f024b05b8fffcb40c0c024b05b8fffab40d0d024b05b8fffe 36.310 +b40c0c064b05b8fff4b40d0d064b05b8ffeab41010064b05b8fff040290e0e064b051b481701 36.311 +0245150103570e01025513015a196a197a1903101906090e1103134901010519b8ffe8400d0f 36.312 +0f024b194909000805080902003f3f3f10ed2b11392fed333233113311335d5d5f5d5f5d5f5d 36.313 +0110d62b2b2b2b2b2b2b2b2b2b5f5deded10f62b2bed2b103c10ed111239395d313021012227 36.314 +112311322433201114060701011116333236353426232203c3fe794391c80b0121420210aa75 36.315 +01a9fcc04844b4a4b0be1e02750afd8105b90ffe5c8add1bfd5e0505fe240a74957b6c000002 36.316 +004bffed03ec05e6000e0019011e40161b400b0b024b004d0d190c4d470d010d201313024b0d 36.317 +b8ffeab41010024b0db8fff6400b0f0f024b0d080b0b024b0db8fff6b40c0c024b0db8ffe440 36.318 +0b0d0d024b0d0c0f0f064b0db8ffe2b40c0c064b0db8fff240660d0d064b0d140c0c0c064b14 36.319 +4e87060138064806020006080f0f024b061a0b0b024b061a0c0c024b06120d0d024b060c0e0e 36.320 +064b06100c0c064b060c0d0d064b061a251635164516032a113a114a11030358036803021618 36.321 +0b0c024b16100f0f024b16520311b8ffe8400e0b0c024b115209480901020e0a03b8fff0b60f 36.322 +0f024b030b09b8ffeeb70d0d024b09070d00003f3f2b3f2b3f5f5d10ed2b10ed2b2b5d5f5d5d 36.323 +0110d62b2b2b2b2b2b2b5f5d5dfd2bd42b2b2b2b2b2b2b2b2b5dfd3c10ed3130012b25350623 36.324 +22023534003332171133110326232206151021323637032e63bdc9fa0120c7a656bebe487d99 36.325 +bd01602d7e10014f630120f0f101554e01f1fa1b03366ce4b0fe7d392000000000020050fe5c 36.326 +03c804740030003c0160402c48195819681978190400272b372b020265017501020320101c12 36.327 +064e282b382b482b582b682b782b882b072bb8ffeab40e0e064b2bb8fff0400f0d0d064b2b19 36.328 +3a4e1c0e1010024b1cb8fff440860c0c024b1c120d0d024b1c3e00234e0d344e12060e0e064b 36.329 +120c0f0f024b12120b0c024b12120d0d024b123d17010188199819a819b8190488189818a818 36.330 +b81804280c380c02006701770102026a317a3102653775370203102037281a171f181537180f 36.331 +0f024b37521f40090a064b1f9708a708b70803970ba70bb70b030028530825530b01b8ffc0b4 36.332 +1114024b01b8ffc0b40b0c024b01b8ffc0b41114064b01b8ffc040090c0c064b0103522e31b8 36.333 +ffe8400d0f0f024b3152152e0e0b061507003f3f3f10ed2b10fdc62b2b2b2b10edd4fd5f5d5d 36.334 +d42bed2b10c6123939111239395f5d5d5f5d5f5d5d5d5d0110d62b2b2b2bedd4edc610d62b2b 36.335 +2bedc6d42b2b5ded111239395f5d5f5d5f5d3130133716333236353423220623223534363726 36.336 +1134363332173717071615140607070606151433323633321615140423222601220615141633 36.337 +32363534266067a68c8195bc20a82fe46b4fe2eaac9e595f7c7249caa49d1c5e622bb62c9eb1 36.338 +fef7cb68e6014d637d796765727bfedb986f59428220ac3556136a0106a8e0417275565f99a2 36.339 +dc101003251e291f978694b64a05048c6470938f74648c000000000200030000000000140001 36.340 +0000000000340004002000000004000400010000f016ffff0000f000ffff1000000100000000 36.341 +000600380000000000170000000100020003000400050006000700080009000a000b000c000d 36.342 +000e000f001000110012001300140015001605e6000005b9001905b90014042f00140000ffe7 36.343 +0000ffec0000ffecfe5c000005c30000fe5400000338000005d300000253000005c8000a0000 36.344 +0000000000000000000000000000000000000000000000000000000000000000000000000000 36.345 +0000000000000000000000000000000000000000000000000000000000000000000000000000 36.346 +000000c800cd00cd009600b400b400000000000000be00c800c8008c00a0009b009600000000 36.347 +00be00c800c8000000aa00aa000000000064007d0082008c009600a00064007d0082008c009b 36.348 +00d20064007d0082008c009600a002300136011801a401d600460218012c01c2000001d600eb 36.349 +00eb01d1017f0154011301450168012c008d02350159033f0505012c00b4006e0136015e01cc 36.350 +01cc04d8006e006e01d600d2005f01f4012c007802d00190037f00800280006e00b4000000a5 36.351 +fea2003200b9008c000000000000000000000000000000000000000000000000000000000000 36.352 +0000000000000000000000000000000000000000000000000000000000000000000000000800 36.353 +05e6000005b9001905b90014042f00140000ffe70000ffec0000ffecfe5c0000000000000000 36.354 +0000033800000000000002530000000000000000000000000000000000000000000000000000 36.355 +0000000000000000000000000000000000000000000000000000000000000000000000000000 36.356 +0000000000000000000000000000000000000000000000c800cd00cd009600b400b400000000 36.357 +000000be00c800c8008c00a0009b00960000000000be00c800c8000000aa00aa000000000064 36.358 +007d0082008c009600a00064007d0082008c009b00d20064007d0082008c009600a04036544b 36.359 +214a494847464544434241403f3e3d3c3b3a39383736352f2e2d2c2826252423221f18141110 36.360 +0f0d0b0a090807060504030201002c4523466020b02660b004262348482d2c452346236120b0 36.361 +2661b004262348482d2c45234660b0206120b04660b004262348482d2c4523462361b0206020 36.362 +b02661b02061b004262348482d2c45234660b0406120b06660b004262348482d2c4523462361 36.363 +b0406020b02661b04061b004262348482d2c0110203c003c2d2c20452320b0cd442320b8015a 36.364 +51582320b08d44235920b0ed51582320b04d44235920b0042651582320b00d44235921212d2c 36.365 +20204518684420b001602045b04676688a4560442d2c01b10b0a432343650a2d2c00b10a0b43 36.366 +23430b2d2c00b0282370b101283e01b0282370b10228453ab10200080d2d2c2045b003254561 36.367 +64b050515845441b2121592d2c2045b0004360442d2c01b00643b00743650a2d2c2069b04061 36.368 +b0008b20b12cc08a8cb8100062602b0c642364615c58b00361592d2c8a03458a8a87b0112bb0 36.369 +292344b0297ae4182d2c4565b02c234445b02b23442d2c4b525845441b2121592d2c01b00525 36.370 +1023208af500b0016023edec2d2c01b005251023208af500b0016123edec2d2c01b0062510f5 36.371 +00edec2d2c20b001600110203c003c2d2c20b001610110203c003c2d2c00b00743b006430b2d 36.372 +2c21210c6423648bb84000622d2c21b08051580c6423648bb82000621bb200402f2b59b00260 36.373 +2d2c21b0c051580c6423648bb81555621bb200802f2b59b002602d2c0c6423648bb840006260 36.374 +23212d2c4523456023456023456023766818b08062202d2cb00426b00426b00425b004254523 36.375 +4520b003266062636820b0032661658a2344442d2c2045b0005458b040442045b04061441b21 36.376 +21592d2c45b1302f4523456160b0016069442d2c4b5158b02f2370b01423421b2121592d2c4b 36.377 +515820b0032545695358441b2121591b2121592d2c45b01443b0006063b0016069442d2cb02f 36.378 +45442d2c452320458a60442d2c45234560442d2c4b235158b90033ffe0b134201bb333003400 36.379 +5944442d2cb0164358b00326458a586466b01f601b64b020606620581b21b04059b001615923 36.380 +586559b02923442310b029e01b2121212121592d2cb0164358b004254564b020606620581b21 36.381 +b04059b0016123586559b0292344b00425b00725082058021b0359b0052510b004252046b004 36.382 +2523423cb0072510b006252046b00425b0016023423c2058011b0059b0052510b00425b029e0 36.383 +b0072510b00625b029e0b00425b00725082058021b0359b00425b003254348b00625b00325b0 36.384 +016043481b2159212121212121212d2cb0164358b004254564b020606620581b21b04059b001 36.385 +6123581b6559b0292344b00525b00825082058021b0359b0042510b005252046b0042523423c 36.386 +b00425b0072508b0072510b006252046b00425b0016023423c2058011b0059b0042510b00525 36.387 +b029e0b02920456544b0072510b00625b029e0b00525b00825082058021b0359b00525b00325 36.388 +4348b00425b0072508b00625b00325b0016043481b2159212121212121212d2c02b004252020 36.389 +46b004252342b0052508b003254548212121212d2c02b0032520b0042508b002254348212121 36.390 +2d2c452320451820b00050205823652359236820b040505821b04059235865598a60442d2c4b 36.391 +53234b515a5820458a60441b2121592d2c208a08234b538a4b515a5823381b2121592d2c0020 36.392 +8a49b0005158b04023208a3812341b2121592d2c462346608a8a462320468a608a61b8ff8062 36.393 +232010238ab14b4b8a70456020b0005058b00161b8ffba8b1bb0468c59b0106068013a2d2c20 36.394 +8a2349648a2353583c1b21592d2c4b505845441b2121592d2cb0024354584b53234b515a5838 36.395 +1b2121591b21212121592d2cb1020042b123018851b1400188535a58b910000020885458b202 36.396 +010243604259b12401885158b920000040885458b2020202436042b12401885458b202200243 36.397 +6042004b014b5258b2020802436042591bb940000080885458b202040243604259b940000080 36.398 +63b80100885458b202080243604259b94000010063b80200885458b202100243604259b94000 36.399 +020063b80400885458b202400243604259595959592d00000001000000050000f72805665f0f 36.400 +3cf5001b080000000000ad61b71900000000c142e956ff50fde708a8078b0000000a00010000 36.401 +00000000000100000783fe39000008e9ff50ff7808a800010000000000000000000000000000 36.402 +00170400008005690050031c0096045d0041045f0087026900000432007a04b3000d05ad0014 36.403 +03d9005002f0009f03f60041044b004104870096025c0096045f007d04340050047500870248 36.404 +0050032c004f04a800a00475004b040400500000002800f40166029e03400340036c041a0532 36.405 +06520672072807f0090009780a160b380c0e0c9c0d240dd60e920f98000100000017004d0007 36.406 +004b000500020010002f0055000002f001ff00030001400a54bfa50140a5111546a4b8010cb2 36.407 +321fa1b8011540b21f1f6fc731216ec731216dc731216cc731216bc731216ac7312169c73121 36.408 +68c7312167c7312166c7312165c7312164c7312163c7312162c7312161c7312160c731215fc7 36.409 +31215ec731215dc731215cc731215bc731215ac7312159c7312158c7312157c7312156c73121 36.410 +55c7312154c7312153c7312152c7312151c7312150c731214fc731214ec731214dc731214cc7 36.411 +31214bc731214ac7312149c7312148c7312147c7312146c7312145c7312144c73121b80137b2 36.412 +6f0821b80136b26e0821b80135b26d0821b80134b26c0821b80133b26b0821b80132b26a0821 36.413 +b80131b2690821b80130b2680821b8012fb2670821b8012eb2660821b8012db2650821b8012c 36.414 +b2640821b8012bb2630821b8012ab2620821b80129b2610821b80128b2600821b80127b25f08 36.415 +21b80126b25e0821b80125b25d0821b80124b25c0821b80123b25b0821b80122b25a0821b801 36.416 +21b2590821b80120b2580821b8011fb2570821b8011eb2560821b8011db2550821b8011cb254 36.417 +0821b8011bb2530821b8011ab2520821b80119b2510821b80118b2500821b80117b24f0821b8 36.418 +0116b24e0821b80115b24d0821b80114b24c0821b80113b24b0821b80112b24a0821b80111b2 36.419 +490821b80110b2480821b8010fb2470821b8010eb2460821b8010db2450821b8010c40ff4408 36.420 +216957311f5857311f5657311f5152311f4644311f4544311f4f4e311f4d4e311f2097309740 36.421 +975097043088010f8c018f849f84af84bf84cf84058f689f68af680360697069028f5b018f5a 36.422 +017057018f509f50af50bf50cf50058f519f51af51038f529f52af52033f7c4f7c02507b607b 36.423 +707b03704e01708f01308f608f708f03008e01008e01408e708e02008e308e408e508e608e70 36.424 +8e06107040700260740160730170440100282800000012110840370f3fce16010fa21fa20218 36.425 +c7312114c731210ec731210dc731210cc731210bc731210ac7312109c7312108c7312107c731 36.426 +2106c7312105c7312104c7312103c7312102c7312101c73121407c00c73121e0180821dc1408 36.427 +21d60e0821d50d0821d40c0821d30b0821d20a0821d1090821d0080821cf070821ce060821cd 36.428 +050821cc040821cb030821ca020821c9010821c8000821230e45220c45210a452008451f0645 36.429 +1e04451d02451c00451a08180816081408120810080e080c080a08080806080408020800084b 36.430 +b807ff524bb008505b58b101018e59b0124b004b5442b9000101ff858d2b2b2b2b2b2b2b2b2b 36.431 +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b 36.432 +2b2b2b2b2b2b2b2b2b7342011d4bb01b5358b0961d594bb0325358b0001db1160042594b20b0 36.433 +325323b096515a58b0301d592b0145695342014b5058b108004259435c58b108004259161070 36.434 +3eb13737456920b0005458b040605944b1300070b33200300019701870737373737373747473 36.435 +737373737373737373737373737373732b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b 36.436 +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b 36.437 +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b 36.438 +2b742b00000000> 36.439 +] def 36.440 +FontName currentdict end definefont pop 36.441 +%%Page: 1 1 36.442 +%%BeginPageSetup 36.443 +%%PageBoundingBox: 0 0 366 156 36.444 +%%EndPageSetup 36.445 +q 36.446 +0.0823529 0.580392 0.0823529 rg 36.447 +BT 36.448 +8 0 0 8 222.394666 145.083551 Tm 36.449 +/f-0-0 1 Tf 36.450 +[<010203>1<0304>]TJ 36.451 +ET 36.452 +0 g 36.453 +BT 36.454 +8 0 0 8 244.004041 145.083551 Tm 36.455 +/f-0-0 1 Tf 36.456 +<0506050708090a0b0c0203>Tj 36.457 +ET 36.458 +0.0117647 0.0117647 0.721569 rg 36.459 +BT 36.460 +8 0 0 8 298.536267 145.005426 Tm 36.461 +/f-0-0 1 Tf 36.462 +<0d0e0f03>Tj 36.463 +ET 36.464 +0 g 36.465 +BT 36.466 +8 0 0 8 314.161267 145.005426 Tm 36.467 +/f-0-0 1 Tf 36.468 +<0506051011110e120b1013120c04>Tj 36.469 +ET 36.470 +0.588235 0.0392157 0.0392157 rg 36.471 +BT 36.472 +8 0 0 8 162.495227 145.005426 Tm 36.473 +/f-0-0 1 Tf 36.474 +<140315>Tj 36.475 +ET 36.476 +0 g 36.477 +BT 36.478 +8 0 0 8 175.963977 145.005426 Tm 36.479 +/f-0-0 1 Tf 36.480 +<050605110e0f160a1204>Tj 36.481 +ET 36.482 +0.8 w 36.483 +0 J 36.484 +0 j 36.485 +[ 0.4 0.4] 0 d 36.486 +4 M q 1 0 0 -1 0 155.935211 cm 36.487 +106.051 133.129 m 85.43 122.164 70.191 113.375 70.191 113.375 c S Q 36.488 +72.852 38.791 m 69.273 43.08 l 74.777 42.131 l 73.484 41.564 72.711 36.489 +40.213 72.852 38.791 c h 36.490 +72.852 38.791 m f* 36.491 +Q q 36.492 +q 0 0 367 156 rectclip 36.493 +% Fallback Image: x=0, y=0, w=365, h=155 res=300dpi size=2955450 36.494 +[ 0.24 0 0 0.24 0 0.895211 ] concat 36.495 +/DeviceRGB setcolorspace 36.496 +8 dict dup begin 36.497 + /ImageType 1 def 36.498 + /Width 1525 def 36.499 + /Height 646 def 36.500 + /BitsPerComponent 8 def 36.501 + /Decode [ 0 1 0 1 0 1 ] def 36.502 + /DataSource currentfile /ASCII85Decode filter /LZWDecode filter def 36.503 + /ImageMatrix [ 1 0 0 -1 0 646 ] def 36.504 +end 36.505 +image 36.506 +J3P/PW$E,P#D#)]Yda6_*=IZk@Smti:+[9:6_dMgggVWNO%&)l3,F<u-'Lr3ni8Oi=Xo4rAe 36.507 + MXrJnFtN9]iX;9Zh9:P"TG/l2;B;6]T<ce+t'$M+3>"ku50(ntAUMcm)Oo767PIW6f'4L\5 36.508 + \kA?XR`oI6ngb@$B1Xu2,k(=?iT>clVY*TH%*\_C`i]H,l'I_aEM\,-pfWJ.h;Yh9F33aZ( 36.509 + 0aK`4DVIpEFWTEaCRq?tVS%dgY=GpbJ,H]O/Zl3]AP@]X%lggJ"c<!$+dd8mf/\XH'QJ?:, 36.510 + HbLg3Kn/(Q2)]l+lRfO)EV)>+[?Ad(f6041Y3,bl8*7kdSpsb88$VLUH@&DRa+9rLG^FoND 36.511 + ^X2u4q@0,r4R%'`mh`+CX3-Y/Xua.5d1A%#rg$9-NZ;D;c(\#%]h;k6Ed`o#K06XUA708PM 36.512 + G:_:Ffu[_f+m=#JX*b1AAfWRnX)R%nq*]_D+/;'#*l]AK8dRj:r0DD<q!/7PT4,JtE[WXFh 36.513 + Z%&tXd"P3e-lbG\<=0[)<K9emh`JeIZ!o0gPR9_.hr2bc)[-TY#%SBE?*drat:bDCoB2p^\ 36.514 + n#+s4[[-p+RZg?d-;3YfA5:Fucq*iMlPhS^T'W!*CVY!QK7oM7p0hYCXV+jc^<9,W0bnVuW 36.515 + ;'\#1='3nWbstl423K1f,Ls10@9#0RG=gC$oaOu)1lX_4:f_(]?<@nYX%h,EofY]E<IM,fg 36.516 + %F`jAD5UfkAaVsrQ/n[<rLW7fTbd7Q.hRAiHnn?75\r32k?jj?WEB-I+[!jc#M*rogs_mfE 36.517 + s?Xc5;8)LI&ErrJ'7?Sb[6`R%2i`h\a?dOAraOhg&WhV?)Y,pngWC_>'<<HV8THbEl\k:2c 36.518 + M()#a&;<d>/)Cuj8$UR*aGhHQ:WH5:"[<k4sRR:84"Q_J2?[7Qun)E$3<CV!K)0ZoQXn$AW 36.519 + J8e-9C3NfWck=j1?U$@Y$#G*$IhNOmRD5QKdgRF38]B"+s\\.F#4,(H7qlMS1E11ArOmUq9 36.520 + L@aukN:"^W=oK/O>l7o(VX,8eMp?*>#:mN.qtEUlFd_W<c>Yn4=0H,Zf/(A1]qs%_DgQtSd 36.521 + rO.QKg9Z!7glQlR\+k)oNfIXcLtO.;;1iK[iMO@*Ij(9pn#6MAp?Km\^u.5-`PRA*VL)_o3 36.522 + DmSNrCnS"dFBUs0L'u*S7sa?&NlR:(;K_=8q==S#Loj[HfrQmdhD3[sZIF#JesToA!9NI]q 36.523 + `/_$9E*hFn`'mVW'A`_uo19C-Om*W8<jB*D^jb%U4rk<_,gpgJ7EGjW?Z_1pn5Tr\o\&8@h 36.524 + ([`8\_qrBIBJg%mB56BR*4akPJpd=17oO/F/I.1;i6PcKkU4a5-YiZ9]UDF?2)ZbX)4r>s* 36.525 + aU;=j`em/1[C2Ih5"I0%7EPKS.<Cl4;m_'I#l-8#1R*t66B.%?*^ut4qP'-`NK8m`"=4p5+ 36.526 + V"i/P#;H2UY.PTj><,mE\^69.6`&'H8Lf5AjeHY)^(tFX-(iOk=HO`WMP0`Pp^<CSTt/de1 36.527 + @MaZ>rV`q0sgSS;B53(.-27%ZViTk`HM??6_I!2!"#'R7S`58U4(BAq[=S;d+*6fi^&lN7= 36.528 + .L12T[pf/=sB,b/Qa782qCPG[..T/$mpapIG\,h1tD1M0_7oO0m0]Z6RB*`u)rP<W2M!M=G 36.529 + !GgP]E4"%]"BG7D(:>-.CB8jEskH]BYl5;j`XV.=KqMEWM0g)ERs.r[-Qr4hg6k4V*85mA[ 36.530 + OHKs:)e+([eIJ<Q;eJt-77jIY/uDV%SQ"g-;6!VkW`<6)<U.E1X#4dt<SG,flNL^u<K=@c> 36.531 + *Va]2/00mY-qBbh-93!E@3Wd\lW)&?0fITY>qa4=1\?;lihsE<Xu]BgBh<T7>\9M0#f"_f4 36.532 + /WNOg8"_b#[g;ASf>"NW]Zra.aJ:m002j<e,s/4&'GV7B*[qY1?e26YUC[Z*m]Yg07cuD=, 36.533 + <Q[3TeK>MFREmKLG:<gqlM4,n7I?*LjU0%SgYR<.eMdCNA?NSQ[uFmd5^\@6)<>8s,WDEZm 36.534 + i(QS&lHae9=7Hq@LT(QD_`HuIHn%KU`qHH&7I;d+#[9)5`>q>#dDJc#](_6Z)bR&jhD?don 36.535 + )ZSa-M1DgR&\T#3$"7&9KeTpG_73\YiLE&UDQY)"=%<[.4)'IhQ70](Y1qr?f+;[4&B1$_) 36.536 + Im#hNUb"Ka&qdOA))KnnchD$=Uu]e>`Fm:7S1^)0.(5bSWiW!;9E$;.V2keQ1Dptb?8a9AZ 36.537 + -o68+p64=cY=M>g8].7VU+MY;U"Jh4+"jER%_53bM^bSb'jHcWT^#BAEHXoEGULOjUS5Pi% 36.538 + A*%Z/S:01KX2*M`7]Oj[E/8nhQ_V=_cqdopZbC#(qMo`h,6`61J\><S?j=SNp>^gIA^fIF_ 36.539 + i44Y=n=R/+eX`_Xjf37';lOg9J`?!>IUS)^Ec&JlL5/#WQb]=1iMfa,U`S!=KA8PV=XEGHE 36.540 + \g'mAM1)A2pBJ_TTh$V<@>GpkY2A&>>@)2dlZKZR;Vc\TG&*XuY\o3KhL"^;K>"%e2Ko#TS 36.541 + .BH']t;(i7^:f3RriV@#J51LnD'NqJT#sjYrJWZffT2sD&tLNp!3fQ)foq;Y"c_,?.7WbIs 36.542 + LJM-+pcQ+6)&<N,p%W\2`Trj4rNpMSOTML,aSlU[]i!/re9T7nMrN0;`jJS^[Fj;<hF_;// 36.543 + E&:WM%a[=];Z#GE[MJ6-+E4bL"_?HLmt+)1)tX0`;o(aCYho,L,U[J+"Th7I<FlpH;-MgM5 36.544 + V"i#<O?/NMCY//nK(")4gpVHWC*Spr2-Ns@^`q`sLgA+IknfXRJGlKGOH[g&'IWs4cn.jkC 36.545 + s*aORHe*G&(!sX$Z0WNMb'Iu;hL*Sqo7#TIp?pm]4@d'XhA=[I%fu15B5@1l6cJta47+Yln 36.546 + bM&N"ac`4mf'-*pYLh>I@n45^+I\+s*qZj@6Q(8Vs4.eYP*G&h>@5-nbunAqL;d$eVE1#O# 36.547 + _gCI4r\Amdg6nJFmd\p@#l/O2guL$LJ@i\aQ!gE"i=KTXmqt!\\HfbF\SB/H?=b\aP.P%p& 36.548 + bsQN8b:ordHMmhl6=W<-k1!jG;c&2:YV2$NFV"07gln2CS)p@#1_n1[iD0H.K`*sYTV"cK& 36.549 + Xd!l6/aL]`2#r$,d0F%EYM$G_&\I_=6!J1d=hYtm4$a@;PnA,Me`=-_-%'[tbn'_4F$IH\F 36.550 + s/jB2%TqVkB"@=$kE,&^:3*n*G2s50fe,\'mR[m@;$h,>iNVb.:0dWJ-P5]a%VqIBYko#lr 36.551 + 7T?qg/0-R;#\"f!tt#t"tQ#$EB)lr'*=:4&i!)mbEihR"P`G:\T%9XD>OtsQP4@4i))VI&O 36.552 + @28D\R.p'X;'!;,Fe8<>7/j&ro$2/l!+R=p;)!$S]%!&YU*tV&F?Q)R6C_nZa#f[2Wn6%8b 36.553 + XA932E2,k=gC*3ma.n^/@-QldL2*\j,l;:Q^BjW8F+*jP)RnaR\UocJ!@ctbW\n+dqWhX(l 36.554 + 6+-I'Une!#tN?+/:n?JN-;B[5>,pI@Y,-idEnhD@?QQ+1D+=gG3;@=^I73lnF,cm%MOl%&I 36.555 + 9dOg_-*gf&nmNk#AL;B2,E"W.b>TYuaX30r-aJ.Jl]3>)*?GiE.'eg\nrY@VPppaA.BF%,d 36.556 + +CXgg^6g.,Vko?o!']#%NhDN)hD0-ZFqe%^)]M2)=k0do$K$EeLbgp/[F1R66+L\DU@`\[1 36.557 + [TPEo/N*oe1@]0=(O0o)UO$"Yb!(0WTaW1&iK(kg^;1+E#XXdg\&g,r0Nj1:&Pfo.`$W2)B 36.558 + ;5dSg_W1''+MV^eur1UBe4o2.A$<Aei#27$RGo3jO#s!eA.1f=K,OpNtHH2nV(2m[i/F+$# 36.559 + %`AfZ$[ZcP,lj#NAGrATh3O>8:o-,51fGT7e)1a7Ti@54dBFB>?&qDJoTIW)h\N8\"3e<\S 36.560 + JGD>aL`J;(\F\>n1Pn7;ppM>'5-p?\!MM_6H5e[8\+B//%c.e]PQ1]Q5dUS.<"RSgiAqYj6 36.561 + *0rAOhicYEA@',]egHi!FuWR2*c6o5qQ-FPQs/]Pe&[45]bsK1]eNd<C'=O6n;n=bQ10@DA 36.562 + TZo2md67XT:c\&OSh26]U%k'Nl]GDar5i`q4C@1cIEo3Yk\I6.DF4+eTGk,>'+'(;QjUNuL 36.563 + ^,WCh`U(85LeN1TJI5=S?b5P,=Wi0ut$bS@t$("9uno=[m4^J6WM:34<7@Ak2TWA'Q9)"WS 36.564 + O$]dXgM,10^8!A9o979!t2+WsN[kp`GeKHl8j[nd6&YU*^odh'?"or(O;ft0#Ps&)(5uX%( 36.565 + (1Ceq6,FTbm^DdW;rM^oMk`t(CJ<7*9f)@f<G>/B&C+5u-PGf$cG_OHZWB"/5]h9>'Lr%$A 36.566 + @V;j=gNDgoq9V'QF1k4^6P_,26P5IM-8;[=Rid^oJ'RnJQjZU>BRJ8[D]J<_+/T(__p%;!7 36.567 + =g[,6j1W9;-+BPf2&$aNq6>30_`.!S/=.f0!$o@'o6-eEo@3aYGaP5c]rQZ\:j>K2G9k30X 36.568 + KQocIH1Pu&4V\WpB/og`$56"Ete;X8%-Fum1!p9f&e2q@oT2Hr,K?WWBg1_UT5ZYq[`n@Wi 36.569 + "@oN\:!Dci3O$m$'\e]]s[3j1B<jYnn]XF9:'SeW3DU2@1B_.'o&[uK?>A>8]C2?UZ[]ML> 36.570 + YdN&h^37\21!a0def/$s'hjfu/N[e8lXhquAoXYT2?u<e&NkWS*T=N92XhPL`Y___42JoX6 36.571 + ,t`<'f_J%[o<;dQ70/k;B.UUZnqIr2Aun&Bkroh7eE.V2^_D-jZW=a\J@\Wp-Ws;>S"XJ)f 36.572 + &qp(J;3h.^TuU5aED5;u^P^JTeKgc4t[ab>]H)F;I6C';7L4TfO,Y;AC_*EH?b+pDUCQ'gM 36.573 + @+EqY2HQAKr(NEIc-H?8[C1^@g?heQ;*](a@p=.NpP$[NurHblD%Zhk\CcH#\.AlmSblUQB 36.574 + Ti#=PYH]08"G@MQ"i3b3L*<D<@+bC0=h!Yf+aB/YqGQ?"=F*\Ym)IX*n!=qq(`GkPa[kl8a 36.575 + QS3@mlF6NR2j^VReGDLTfX<X@3EJDPFu)(b$%OPVFphkEJasVnHl]XcLI'Y%Qu.SD.t>`ZJ 36.576 + p6W$%'auVKo"8rM%&Qkp2ImU#BFsTLlS<`25uJV=_JLF5&B2*R'aT;Yg:t"<AG)DCit]1_d 36.577 + ure_"c<5:sFRWA/_.('@,3iJNV$+jO6*GFuKO@=>`0`nPY]hL$N;9=#.4O><)@$[^?Q)=AH 36.578 + 96qi2&(Lb!9Z!K\>p=q*aH)Rt?@2*$heLM43>NNGBhd+:1cUOW)5\("i,FVSJpcV[fC[b!r 36.579 + 2<0]uG4[F6;P`%muq&_QK)RYp25.>;k<e6R;EBj36H1VK1PuEi]7r)6>Q)d]Hi;#mZ)+YH+ 36.580 + Cm_>l'U+nd7^[NHRp!:gMe.hbI()+n'3UAZ3KoET]q'Ep=fYIe<e6VoHUTbkJ$Y$>H,3"WK 36.581 + 0E<q[.J9k2'kCF<k<RP[CP%_i;&s(f:I'PQh5!a=qV@7$FJLtQP4d2=r+PLbEk5uQZJ-G3L 36.582 + -/G[A5<?Cc3KF<LgMl02Yn,!#+IA=P9:68#=!$[[K]GoTtZ_;l?'6[X'#\\@\J<7-YW_[DD 36.583 + 2M6.G:D[?")k9R3b>CKkbbm=Y)nO`_O2FDEis2RV5-7*B:\(W/eT.AcmF]GW;a\Ns6]=0;> 36.584 + RQaaAe\ocFX5F"&L_HL`R=^>NZ&Sg$%Zk^hq==K*[l]dhM3;X%)qTEX,L:,bTVj1bllVUoV 36.585 + %p\uFHMV!SZ\*[q2d;b5Xa0r;4#"'H,A?s$[/&6M.nr2$CJm%=ZT?&k)aQmH'=N$,Chp5Xq 36.586 + 7=.A=(g8k[+,,b)Eh6XGGu>'\(QU&4*ar?9<iW3BGI4UgRXdZM5Rki=K>pt>B<\(VRTi]SJ 36.587 + l^KgR]<&UV']iZe!"%RtkKXMls0HWN0UEb^7)6/"s$j6Q7*m[.5-"j:6`k%ZBLY$Vc][#S* 36.588 + *['LA`595-FQiYMX0(DnfX2@hmuafC>N_H\P,fJ.;cZ,;K6:0[k-4?^Qo09@<e_8/QmN7"a 36.589 + @H+'bbVRK."eKL)+=bS^V@d@<s\Wk'TO1mDqT7N$3<;Xae!C/\b[aer^3(+EQBh8,BaNZrP 36.590 + MeuIeSdFAFPP.SN>NiN-pr`NScZrAE3EF!V\Y+#mMR6)T>]-oM3B0)#+8=5L4EYsE=3c#+$ 36.591 + ,#T#\k0PM6&'/T@l2MQgOjOqq6@S\d(>L_Y2@PKs)S"3ZMO."=fZsP1pq`"dPp0m<#*`Dcd 36.592 + ')/cp@]YMbVZo):DeXX?AGelTqrTfX?2;5eRcBb<^1I)%%<g[5s)#fLc,_Z6/a\fR&TU*1P 36.593 + Atq78E/eJet/)jrY>rjY)BU\riW*GPnoDRA5BdJT?_SW?1pPL?"sF$6)HSY-:u)1nnfeQl> 36.594 + (I9h<WrR!]Dc1C8H.mq@@O2sKMY5?PPq<ldWCX*UIZuc8746F#cX#IM1c/&<+h;-QG6e.lW 36.595 + F$3rGSUH524j`h8OPRO<1P=)f_UI93[D#8@Or7TBOq8c<mhDaO_32<+)/Xq)JN+G4*c:&&K 36.596 + ^UJ27N+AL)M%5Rc_'&9[2gpaSS#:=-_EE:hGaSApE-j&A@gK)`rH-AI&YlRB0O$(dZiEZeE 36.597 + b$M&&TM>ZohFVPJQTY?,Q@JmBl1A>Y_`ag$KjF:>Xr*94L_%05hc:mFDq4hVuc6)saP'Ed5 36.598 + 4=D-(d:Y?F":lWp90X&\,)1<"RQB`1Z61YJY;PsE#/^!lG_1O6';<V!SHo'IaH$Y0tQ:`S" 36.599 + iog-jGeQZ%BijW8k[>e3/F\EfW=;uER;`QNPm,P&CeQ]C<;-o$be*lJq[J9`\Y5ac_T:,<" 36.600 + Qg33(aDTo2H2EE(o9MP_`d`n1^SAEQ\%A2X]?>9;5HglRPGJ/RK"eST*T`_.-GS,Hs$@$qX 36.601 + <U#4H.L^!\%#B[%0hIa#mGrIekhG2/f:LA6/^&pPU0lPMa>t"Qt.s$(P>3<&B@J)4XG\),n 36.602 + Rq0Y"%Z>7?<WM$jm4ELFM:?H$gB3+bibU')D/PK*=tHj>:u.^*N3.d9lF/m"V,JTuQ3%#`M 36.603 + Ll>,bLPZ>.'fa&&!F,uVi26=P>1^nMTJe:*0m]#geNS(.k$1mb^k'mnDA?H9rSD"g%k(7Qg 36.604 + $aDo`]>^F_1-J!$t.0]PY=3aBV%NH5O9nm0;,o"M_<hWl^<Fa_JK`bU"SQN&j41+ikD34"_ 36.605 + <3=[=)_9!%nm"<Fk8-kFD'N6]%.<58b/3]%MD"`kb3sQP*Zl2ZalW,>r>qS4YM&<!-%S=bL 36.606 + We_9GIEuJ5FWr#J]4,?WG;Aq0H96Y5c(]`.NO8+UrAjY!J(<hE$Qn:5pE*Q"[15mg8g2F!j 36.607 + <1t$!T`h\uLE[\]%,1PnD""oKY6$d.C]G/;XG^QEeiCI*]^9"G63-VKjWuP(9Wo$Ckak`uu 36.608 + _6<21^0Ou/:M8M[Z7Fe6WW?<8(7FK[Dl1;q?jJu56mC+(k8__OpWK\n%L1KmL/MhRh736]j 36.609 + 9b'9O+N1WBuNA>O0W!U(b_^eD!P,$#jZqh[=0"Ns<[7>hOa%,b@JttoAZP&2+XF3AO7ZO3u 36.610 + 9#^5H4[dfIm5[qmFeVJ/J7Z]<>h9;i7XUXOM<%-gVYtXC$0$6!T\.f6FN)pufl5p((36'NQ 36.611 + =j3sB%qKgTk#%L!TdM?Cf4sg<XAl6[FI!j6Z`;:F\t_9UIF'b7'$RSON.rcL5K<][:FmEc8 36.612 + G]MZM.PuK0-$EHEAL#L#0j(GN'J\,^2E!JNS_]3e$,Pk!FK,GpYk,A*<8@Ip@r&GCla:Ec4 36.613 + Ui/n0@.UbS(UT$h-2'X0HQRmOT]X.:/j<(Hq2NTVil=Rp1HqO3jQCtiRnBiqZMfVi\83NOB 36.614 + >DLI6f\q2*!C:Y].]eoq&GC?qt;QlM!>:pk`Uq+5-p#X^V@$TkFP-qWkGhRA:,C2Za\uON8 36.615 + 7Yu,&*khVj/]2h3E`upFaC^sJ/]49P:0<*dPh,hhDKr>)+EC_`fsg/r%a`2dl6M%3T4cis? 36.616 + PhPMH/5%Y-Um!=IOC'6GlC$&%5DIG,"TMRJUjjAAPlG:HLS:!#!pB:WU"mq":t"tISYZOa1 36.617 + %B%cLiU?LW-lt5@5OAguFI0iI+5>rB)l#LHUDYJ/njPmi-pFAe'BZ9?%P'(eL8VV6mg"e+i 36.618 + H.M;^TFfHs+]>RaK54Y@<P-O!GkB7hI84f([S!FV(@K5$i\%J?OrhCJ:J/7bB?UM<.'P5cd 36.619 + 9:lCN+'J\Rg$\u[g+<iXQEaC"R-cMZ$R)1+JR*4_:bu'+Y-h9LDUCh3RJUJ4hAJ<-.^a.;9 36.620 + gCWIM5oPjeL;\Zp_^OHLf&GCfZ-GE_&H!W)g:g^0hDn).@V"Mm5nsHoF%8e6*S,i$N[iU10 36.621 + XDc9hha^XNG_=^.4TAq=[7Fibnirj!9dmk.?kH7:.bgDMolC&PQ1bY\AnIFfJIM//?+jhB5 36.622 + oOogEpJ?W^`._?Ap(,@XY@9`h!DN<T?Y>Qn[@-)jm![*%]$ra.cVG"&b+hflSUj/c!V7'f[ 36.623 + :6nsBP@EZ$dq31Y,j+Hh,3]%>b!Rrn"fEtpu7e424U.6*oR/p,@KW9me7niP;IJkHEr4Qj! 36.624 + ,C(n0m2.r+:&JY)5ZW///Z2[9!KbC)Co_,3aieE0nD[l::P>Z^(8nh0gI"[`2%\_DG`X$Gk 36.625 + a<:^%VkSp;oe.=R6BF@;0SZP-*^8cKnC')Hp;ln^VNeNSTu9-N*%@SU6nup.RQX)Q'`OKiR 36.626 + "iV8''RFX<?ZH^DpS_=<T8)9M?C`!&@T2Ll?iIkamCUC'^hQ$.<C)T?4/$sS78,kF@u&:5` 36.627 + f1GR4J,.0m4&D_ZDrgi&h;q$+2:>EKD@04P-V]Y(mRt$PCJ5_D+nid((B=7BH7aNFP58em_ 36.628 + <d@cO9k[_X)qP'q2'n]j14RFod<_G9-)!1IF2g.Oehj4?ou*%!;kf*cq1X-AI&(K"Hh0u"g 36.629 + ]L"]ah:-TA(Fus30KcJM0K97>N\5rNL]ba65=sG#$U<-,e9YMMZRK<I$PuB@OP5Ri6:;&== 36.630 + iP3oLES9+L6:j#]B]PmB2&N&W@[d+Jj9Wq9-NeY`LqU<AlN>MF$UNdWOWuSm/["<K)C1M__ 36.631 + =u=?PNq0[=S!YGb_BBG`]l,[E>ZPofT9:*Z%seKBHl$s=\/1%ISLp0Z]0t>&Bg3!O&W6gL/ 36.632 + 0%)L&6YhZ/EdqO`Y.cLOt>j9Zah_NFf-!=GKVg`.I]cA5%WAo*02&B7B^#.*a9`IUp[$hG% 36.633 + T5l(>9l#frmH/4uqkTem7#`&SJXAJ^K"b.^-g3=+U*da5Vr?>1gunnY&t5tIt%44K^c;egO 36.634 + Mp)b'NeQ!<Vl4be(#FOKj7P:JZ;ueL@og(pjGfA2!Vk8$r_9N5BOdd]HTCc/tcrn+<AB[/) 36.635 + PUR`jaTjWLP(so%AEINnU6O7sQ!KS"GYb<ciRh\E#0n2;ZM%gbDM6-CNRmGiQ=A**AGTd%# 36.636 + 2hZ!$XoXIB]Rmp(Wl1[[M95nL.D/HPf-^`]%85VMUj.]W/c*J//]jJal]=$:nksGX.X>Z46 36.637 + &CjQgc%L\"er6O^,;-XmqK.#CLr](NF-EmV:d;g>5sZ!.1*;e/F(Acs$)9@Vd<^a@_/\CFo 36.638 + 3Pn+'fGW.)j^)_?ni.mZQ]<gJ3J>23<Yn5M.t60UfSVD\nhT_da5SPBTTc/MH:q&*8g70\T 36.639 + hPJo,A7Pr,jop%8g<'dR5`9U?C5]lra6o`?td>4uU@[Y-=C=^Wlp<p>]JgoI^08j5l/F`JT 36.640 + !TSSDbfRIuCXB3_`%aXQjOY<&q&^-tHXF#!-^2BV?Q\>ihb`!eZec735eXiQPPBJcXSR>iM 36.641 + qT8l.N\mi@%OLc1[^nW1kqdj56LV.fA$1XK2m?l/Q+Ht[43*VkTLUp;,A_>5K"T0TN[Frp& 36.642 + XFP2K.fAIP]Z*VmGn7;o^X<j?,6qO#(Re$b&A?mZj8j%F];1.rl<]$EMguP+oR\j*ZYF$9& 36.643 + q45_@(m\B2Nk"HOJ[S"$UD+=="BNOWYR\B.]82ul%@f0MrmNt[BX]=^Ao6jU(K0R3+I.T\< 36.644 + s\X^P;*71CdJ=WF=nN[KoOqL'KY]pE*]a(;&0,d1aHmXcA/%Mp"LpNhAK(+d?.$fHIL=l16 36.645 + WaD\\aU*=lMEBr\+GC+(rBZ@o_e^(*H,M\qjM3:t^4ZCiqi6n#\[_i$5Np)&F5Mus]fXseR 36.646 + 1$bI>U?hK4.C$BVDBD^o(\/!j?l<q`$;%m6f#CHVo.0K7'Mr\^j&!5fgIfm73Eqr1fQnk5" 36.647 + /Cd6V-^`<&m"G8I?FV^_AuHPQ+!a=:[ej-H&JE9Mdu";+&gS7:]IfS0CCt@n$;k`fmhr"Ap 36.648 + 8r@>J-E7[W/SA5"s^?SpPQ6_XH9K2nlhP/:IH7pL4"$BZfPnW:$<KS\U-R0&E_q8]`J.T"q 36.649 + cS9DpaiPBSM^YDs^$+M<E>=G&VaAGl,"0TW0:.P-=\$7Hb!:mr/%`%)8PO&Lpljj@QO$JA[ 36.650 + ^o3/^^o0g]M%!=AMQE)GLn__+;&kgd6aJ12!.mN/,7If2]IQ7`b_&-UCW:Hu7]Y=c>a1BS/ 36.651 + <!G503N0Qn;g14U<8"g8s"WW_X3BmW_,7DN#8&#nkR=F_(GMa66*3:KRlcADFcm'6/.$RjK 36.652 + 8c1Y<Aqo81[l_3.f!;=1X<"[\U9"N"el<`C*=&`*43!9>EksW'CY(,;`]L/7(uELGAAN8[. 36.653 + a+9SCK+oZUgPbf$-qe)`YYVb<Pl7D+FMI*ma,&^6p=bd=%#N6d=6gI>/X87^/6WMiNb;oJ% 36.654 + Vbp:@KK[!4"c:Se+^&6's9ZXQX<(,539lR)?m,?2OJkgiSc,,^c1\a/PX\R+-:>'YXn:El% 36.655 + n>YGTa,<to,Oc6uLc+8c%eT3bjO6U=kJj=:9l0%5U+8BB_+f<s`giYlN8VJKg!=X/Kb/!Q& 36.656 + M'rQMob]U:fItHjTe?l#El[7LkLo;N=,`g$+Ij4:i-Zg&>G\YL9;K?$n0#ROe;u3/f`+MbN 36.657 + OPVPTC>B1Ig/5cg:DD/G`*ua$'%7a;kd&m&Z)lE0c+H8p]sC`?N1H?3n0//ut=:>ong3_6i 36.658 + gm:\;%XN8i*WJ'DM;;Rs1>bpbi(d8,Gr1aOZt<8Gaeo>F7+-.6);@iW]T&Bmi!O]*T"bi)J 36.659 + cafSd0NZ>J9,YClB5L*B5;lh*;r;*^'eVIKm;oKa*\JCG*_F`fb`e?m=gha1k'i]<*4sBkQ 36.660 + D+H^Y)cWWi:6c`R]g=>fpr=[M<7IWlbs&Ne1JE=NeNFpO'gmp[4]IR^::'H8`@'47?rdQDc 36.661 + Y.obW)!QfooJJ0cRia)4ElEspR_`[eg1>q/;-rm)q)Z7]/r-P=I-T>r)0(\;[gFj'k%R"ag 36.662 + Z&4NuXB\V$7?6G)ne2O%jnVI<sD4U_T[I41rgs;Md\li(9\r#0EKnnhX(Wk,qZ$5rfG'j\< 36.663 + HG51[,==#o?hpr+#$TSBQm3R&dNjWlB:K@4%f;JBB<c!aZ4<n1/W<m=k!>qsSULE\M^5+PZ 36.664 + lWc_F/.oso^LkR]@Z.p3K2bZ%u535GR<?,/D;V?HW<m>MZORK^&O&Rua=#G"t$anF55ZZDi 36.665 + 9p;V]Ccjh^SQTN$c]htp/W#X=U;<<+X`F]d.Vi6Fg!c4mgDuP_4dT5#[FDiKWBIW@A7sW?q 36.666 + 9n'Lg@_p$rE^$lFBGBY>[><LTS$$:q1h4GL.JFOE:VegTNo?E4F?s(4NC\9XP%;h2W@BUg8 36.667 + J50W`e/t#kGpLJeX7\H\_RPM0t0o+p\^%g64,COR:`Je<2cXc5!0K]:hZQdaM/DK@'hD4Of 36.668 + a%r+'$%;2ik]e6HnJOHD.$TYYd";S4)K*S$`MMcf>HLpca)h=9.ro.K<m6SS4%1_U4]7FdA 36.669 + q=^C5bmCQB#W=L$D,.NThNRV5+LYoeG>$_!ZV)5HFgY)Cc)&jN_$QU2%D?f$A#&n3_QtHY3 36.670 + C(mR4$>?l-1+G##k)&c0i&.>fj+P\%92R4]?KLJY?4i2s'%Di>>HLra!4h&JT\^YuaA*]^" 36.671 + s$VW=pbHVM;<Tu!:o+ir*DpVf*^Wop%qf2r/WH?$'#O&6O52af;e^2#rX!eh<3OPs0qtKiC 36.672 + MGN]kg/E(4ZQ)i@QcGQ!G#O.>-b4eNg7r`Xn@m0*q1l@p"e%*>2j5BOfi+M@M8<28bKG`8: 36.673 + J^A6c6AeF4#($jtJW&1m>^D9*6Gn\:?'-ImM"4p$N<m8r\Ni_CE2PJNCKV^T85hjmeY@.:t 36.674 + R18(u\5\5/qoF2:.b7c$WO*4cl/m[;q>)Fogf0$7bX/emQ9I,mu%iuS<ORGR94HC\C=?r?] 36.675 + -7rZ&dAQ"ej`25G/13I6,M<QGb)UJaSoTW40p[F_,]36+ohWTXk@0Ga6nGT;#&FQ/:sK7G> 36.676 + -9&Z:$N29e`BN?^`Af7IPfpNctBD1B@XWJ5k<UlIUHId*Q1F(GZo]\.1dn)!B:aWlfSud*b 36.677 + ?CJ#UJ<Yn<'hTOMoDK)G,l]P-rd.M[]s@>r0=0b2A4"A5s)cNGSP"Nfs]CPTt:m85>>N#aX 36.678 + `^92/6736@$<(kc!'KB(uL/fp@8p6c=HdqW9UlBR\[@'c+`VWNS)idQ65Sr]$%OGJJ9>Ac= 36.679 + `\7=CP<RnO+l6r!.<hO)MT4q<h*+$2^.+#5ZL57_cM7R9#BoD;Un`r1SCJ,^Y][./>^WCZ5 36.680 + laET\XqXtrSqH1H$jOL_>Y+0o^hKB;&dC^aN^W$le87kFgsolb3<HVYm[gT5SuDBa2.ST4g 36.681 + .1R*js=j0(083:S?UC7W&W/d5g'L74lo\#g;U(/:lc`M1TVVQMk9-E%<kY4h/9;"2_aoBd4 36.682 + =YCp1>B3h>Yph7D4uQ]tMuP$GO:]K^''leaGKhhqmFM[MQFZa)2BQ#>!8,L9ZU<X?7gImW! 36.683 + 7/n=@+GGM'g,?V?m@\i[*2YsNi>_O5:>*s-)@-uJaMmIl+i[2.o5(Lf:NnAc(%ena"E:YOt 36.684 + BE7Sa8#eBHes7#Gh$8.-5AN#r>2qf+0BYKFe[Z0M86.5QG$Z%%n"]mJL=:.uinTM2Iei9Is 36.685 + q$6o<1AosJR-ScY;fYp;.&AH$3>(i/=ZZ^E@cfM\NoNhu-_HGJo00]geJ(tS:htgIl\P:U& 36.686 + Jt!bV&R4,F($-Eh\AlNF`R!aEsFF>O!]^=1<%hlnCG>_!o]E!JM).+'o+nf]N+SpT1.X'$G 36.687 + Sn6"T3?'HO2VfT0F`b7acffe*t+PF]suG@"[OM"_>]<.H0Y*B_B,cnAjX!mG229%?sgm.o3 36.688 + =NF*iehLF.,Q[jP0n$Y[B>q9a9_<br:I$sdu%GrFK'MkGY2TXEG@&<f&+#U)M9$$sB<1OBH 36.689 + >E"]p*+]+?r.N!@hTQ]gWGElOF#_mL>P?];3fMf99^l-`k;\9"e-$[83a(Go5/.,E8_5j[, 36.690 + (k9M5_Mp>0h)3Rio?_6Pf^.OLpnqih-'&I5T1WO*\h=7&e0p4)N5G'k#AC5P:35Z-I&!E*G 36.691 + je#ha'Vu:T3q9TFo3?AUgJ>dBkPG><<[kl(6N*<>5A@[n%b4Wf)Y*uk&FLonZ=]C/dLq'N+ 36.692 + ge&'r]Rh3oQ3ejC<[/E7WE[9,*7].LM=kF>7fl&>aJrcjMh4BLbOr+GY:=&8W]cl/$k"GI! 36.693 + XQ&:6ksHW(W(W5X,]^&pmAH1mC,caAW2WJNp"M@[d]B?@_l[gG@0BOA:UcajB0b5B!_Lc;L 36.694 + -`(8Mc[W?VSO(Zo=[)mXpU[PD/I)o$0fXC_A?G+m'F)Qqm0>r2sU\dj-HnVc$#`AtdM2@9k 36.695 + kEr2rC>+*Vc]"LIqo?[(O0Lh"K`4M+Ef],$+6nO2i<A\jrkMZcfB%fBRX9G(3cF5+nFguh< 36.696 + ;EHfJ"5s"i2C186n+e%^G55uRo]jtrWNCU5Mg9*'7FW'A=uaQ=G.9<DDrkm5cD&!0&'AUSa 36.697 + E<(7Ki'l1n"^bN+Q'+O\996q1Qb!1R_$Fi!I?aEgiRXB@>K)ApBc8;,NR'Jb#'p!#'(r)4I 36.698 + .n9Ur;$daj+_d9EVJAea6A12UO,=^ZC!"PV78JQhH,qh<&OF1*Tg9&Q^G.s\hbYF#.[#5a% 36.699 + g@*n7n4O4C_\j8%6HsR1*KZRPb9iVnR+-Xu]Ee.K0Am^b2kqTbt7]'s/SCfGoAaM9^2PhKC 36.700 + 27#^*@BurMGBSuO!i2aE=Z3o678mtRFRsXFSkXj+l'^;5r-jE5G<FmZHenRL$jO63Gs$!MK 36.701 + C30mI'd'1,sn<Mjna5DjS!MeeKR4"Rr>9FqjFGRkaB.<S&YLF`UVZJ]uQ5a2&`\%!14O5RF 36.702 + MX,A8)s#^kmWZE1ZR0eGbqU"Aol-%`3>A`$Yq[k,Th\N^bT26/\'2$6#S"-n6._)S2s8Gb< 36.703 + $uoRO*c8UOXkWU_fXlR$VQG+Qh^KP'!e0q;:@W3LG3(nECOW34/IS=5s!&aBZ?[V:,c-;2J 36.704 + /_(I!&4RhOQW`4_Q/b=lqIo&Z&#st8K4V:(YZk<5'(8?ndQ%;@8:(tTG]eN40<8BQ0e("=^ 36.705 + :t/Jc8Q+'g4],2/<F&a.e^](II%D^F,`J*8Gi)V)<S_q,f@B^B>,@-cW_X;XOiUoI$(;btf 36.706 + LXPdBA)u-4I@21;:TA)p=5pTgX_(0:V0[JS0lJEH[b%hDJdJ%:J2D[Y/TTEEBG*0/G;8%o` 36.707 + Y>_?`C1-E8XA,\9FEoiFji"XSXAu$\f85@4'5T<*UC(`YXT;=E19^RYeI)N&0,8#EE<9L+' 36.708 + @h3#tt$A]`5&=Y<dmF#G@h[UGLLapOO_TT`+(WjfAoBqWbOc.7!mpD]pjX\.okR-6#sNbE! 36.709 + m\mZ%1g>96?_(W.b&#JbugTPC:=nAt:>614q-?1rqY&!p#[S;ru*jHGmR[qKIU)W-cY[$FR 36.710 + !9gE;)I%<o'CF__kSu+=K("(;PJ8F6Su82N>(U;Ll$MQ]l6]UD(p>p+AICk&1eecP;:L:G8 36.711 + lFEiC"i::^N&''?/KqapYGk#i:p:%AQi=2[;k1$?=0,_TU'ob>7,tV1[,7<.V=AM[cb/YqT 36.712 + 0nVR@r^ZXmXr:=3KXVIWEVU.GC8+l))`J(7B4^1nJOUL_o<u3D&a:5I)L6Qh-_qNEqR(6UD 36.713 + dt!-Bu*<+h%g6GZ.MV)-/BGcN/XB$Be+0#G1&QRFUO@+g>kE-T"3&o,S4*%ZX&V!4)0jBPs 36.714 + f1F@q;))U>g$q_tO,Y6.QV50>Qfo(Yd8A643aEgdIWqJ%1fqO\/R[t2j#!8dBR(2^+D,)!m 36.715 + L$Ip4`YR]nO'sq3m?j<7pr(b1&d3'ieIk?[["+6c?S$$P^_A]''o4C./1h&#_ka#.>l!'7/ 36.716 + r5r\dt$[Sd;OmmOfFSsnD>J>09:e+73.S3!E8VP3R>D:"P@Q9$-ZD5VQ&&n7ohhZgoXFG&O 36.717 + nhS,.HBmG*^S5>YCK-0'20-QdYk@9BV2=e[i;Y1EL(#P%sUsM'![/8SSoOMY<?NcWR&_<B^ 36.718 + KFZ:4uII6]3EM&3QRk5<@RWL3<HPifMK**t5e!1kR4Cl?RY6=2H.507hL4^q8_.E;me&0n( 36.719 + !*3to]PNGfXg%@A(AIY?_0mV.B,t-S=Ec,NT'-MB`4j0!!DSqG7*a.W]O?*t?EK'o+JWMt7 36.720 + KPrDSkn5o^/pQU%nrC(RJOG*7=sDp'U*L<&:M2Rc,/Z$H"bLp)K%Q(G9h([fW2EU\XB]CgR 36.721 + \!97KpFcA-E"02MIR]iNYIZV_r8M2j:7j/d`RO64A:Qil$1R<aV5(C5q)?_ZVY[J?AgA6+0 36.722 + $McfFdj.a6^&Wl98@Q$#<9eAW<tG50-kG-"QA;c6(1?G`C[qAo-:l*ojJJ=^+=.m3ST.eag 36.723 + l#Jr:uC26F:;^=ZX/ASgb1[9(qPe(]dtDUn?YQ'McnW-;F?CcekeMH8S=S!A$^A^.d;53Q8 36.724 + kV0).$^pd?FlePdQG4+JJ]@VN$>l1g3Y8uT7`N_m7$\;_;0eT^@`oLHQja?NnotK&7r*Prd 36.725 + IdcB#Y#I7:f7Iibf.Hs:fH16(S/$YFAT;^iB(Fm7c#9`g_&o!R=^MDHKWsSZ_q9GM@N7gmn 36.726 + KmtI0HCso_f1Ro0`R_u9WjmJ98rD<29+;+*&W+>;X2Of]63uC==`%iXt>JT2D6._S<]9.Ak 36.727 + gD#5:C(]pQ&nh>&o`%.:o$WQLa0D^Nf1Zj\3@)1'36J\IRV*l]#AWM;ESH3=][&)k=73ER* 36.728 + 7`46Kl=T#T1J771<VMB);^o?N'9H4WQ++a>XN!;mo@j$[T%%A^>_mMb+jn..7p3AdV(dWua 36.729 + W%^FT0#?b3Yg)j,UN:o(rR$0sA^JsKH.A'$uJ'^7"=R)FlUCR9`dMh:KCQ0j@oZirY>9>rl 36.730 + *Cb8G.+$Wd#?:!5>`*ZYd+[4^>&.sYYVprNf6TAGmG5=DoX:,KqJ/iD4g2(J<i"7"X(UfO? 36.731 + :+B%ld)!p'^-"8]sk0%b^9A?4066h;8eN/.+]7(*YlQeB+<hL5Co+q,K&_gA[hIBiCaT9R^ 36.732 + +XaaTlonL&f$b\Kp&Ii=I1WTi)=cY9eSbRUVipaiiiH/lG&M</QmT3JJs$k1nR]/HOK])#< 36.733 + &-K_(i-:6[++^_fLFLQV3MP,,WQ.7HA&QLul<d[ikH45A/]os-C!3RQaISGTR7Ss@\!.Gj: 36.734 + JCU!KN^XG5a.I%qmo6"A>b<*aKjsPY_G-7%^3T!!g^!!*k6c%OT3o'.o5EU3IKAO2SI.1HI 36.735 + "aBqpk5=>=bYoj_M_5D<.Hm\2rcck<T2k1T@fkY,56(K6-cNDV)6gbiQA`Ps(mL-?(?4-=G 36.736 + CM?j]V6h?*_W>TUV#H37re$hS&9V<1#"ft8GZ[MMtm;=jF4jhjW3fkrK"mm^/;lFT-KisT* 36.737 + s@;+4p@[)s_t1jn=g,_Z!mUn+g>.qA0+m2,DNpY(HK0]^5+^m;E^<%cIC@&H7`BqiC14:Pq 36.738 + 7FNr`h%s3G6Y&2ODb2Zo.'"4078&43eNBYA>#]qS[N$<.\S3!56\47DP:_D;6\^B0K>r(o" 36.739 + '&-3!S\H$-O!3ds=Dr0m-is%0Bl)u5p0Quc$Ain@T#d6"/0*#$lT)C:b!0<l]:W3T,]((l4 36.740 + l#;[[E0CUtQohOC$dZp%0#%a4cN$bjq@D6dJhILAM[Qbpn^,)NYTF9lo(^N_%aK\3&4I.-# 36.741 + 8!"*&CD"#&JGaR(+rESis[R#9[Y6goH%H'*^RR]"B8R`e?b8uZV`ikYsT3;7hb2F*eDNT`) 36.742 + PP)8JG#p'sV*\Ma"Km^9Z_p'p3DLd;]ok-m!4D*oZQ(;1fZ>LD1p.+!L4;60'(aKbb8W'p1 36.743 + -_,Z>@rR2V3E'_,'i0io7?[i)H_(.5nRZ)\hKR2;!6(_O:u;0<`'ORNjI*APqYOeEFWYoWA 36.744 + T)UVCs9fF,u`>e>\ZOu.;dK6b;b1EnJ+*%Ar&_@mTQQZt\(%LB(;<]7OlPf<a*0LgT90BQn 36.745 + )'b;+,LSe%&jmpB7jO$W]e%D2Yorc1,p]<R(6W#NZ=>4ZB-rdW-IQf[&p#EuG:/Q"/b2Zrl 36.746 + N5<DHoqG3.)8>%&5O^;QRS)e.FOh<&u-pSV^dk1.`r\Y%r3IhPq(e7%l1jH+b_IF].B,g/C 36.747 + Mir'%8F1f.E0?/^Y:FdY.hME@p/W:nTm'!ce^Tp6Pf(0@KkRm6oWJlS+M10[gOe',**!(GV 36.748 + *m0p:O]dcVp?%$MlS!Ac?/@H*<ad3[ac1"/?D'14TT7l6E&1t,5X%$`RV/Ai,8$hI[V"6.n 36.749 + 1^(W;<2UcL7o2@SHG;k_42q*79'8&8CL3Rc@.!#k>PEGrfQ7W)t3R`gG';ITeV`L$B3n(8o 36.750 + '=)nd/<t:;0Yp7A"-<MH`Z4TmJD_Y8'@T)fF$5_p4k&:P'B;8Tk<>*q50bR[bC$OX>;3jP5 36.751 + JsdJ8!rBP#=+/G)&)I)'GEc3(I=9)6.?uC$X5]U;)OI\0VQZW"2k1LZ3Bk^68Unp'LP8f7m 36.752 + rS77+=uBdu?+]$5$6@C2)IJ@*M/?B1??&Ho+\j'QZcDG=RmE8(<#J:+RJdLIdWB/`9c'#,V 36.753 + keQ?cDl*g8T2'S/kUVb32S9%:%;'XK%,r3/#78<W$UP.<.fT1k"I!qadB-\>3Hh+a-g9sfa 36.754 + M<9$_Qk>%9-:=S`.$meGD]H9cK5Ea\k@,c[O!$PccGUikM'b`9#o21bl;:Qad'dHUV-CH\j 36.755 + .rsl*lN9i=02Q&[;oaKt6E)cK.9)R*<7OcE'iS+4<^ft7iq/3^'amiIEWHni*VF;od>f;)D 36.756 + c`-D<L&&9'n]UgLKKh"8+Z;:7om-A`@R[e=k.+4ZY`gpVco@d>1Kf\'sh*:OK\>B&iH(,dk 36.757 + `c;'3YHZ#Be=9dka-ef0+\+>?0Qe(#rV#k?aG>-<4<9FT3nhlk=Na.=_M.!P)T.G=g9j@+5 36.758 + Wlee;Im(L`UK@FcLB'eNcja9U9G.=`RO!1.1\qdY0jA&0U)!=r^+pLJf.ACHhF@[U_VqdL= 36.759 + FA_(4#(1UrWB+Ro\8@2GLTtb5@!!".*B?"CX!XCN]Qq&>'*nH>bp6#W'Q39+8>QtFHiU'+# 36.760 + Vaf6OC=]S((:.dW[qh29:j%pCPkZ>#@4K,T'hoIqJmCjsVacuH-)DG,DM[\XCK)LG<-Gll( 36.761 + @uHFpMZApDo98#e;%k*K2$ID:"8-?pChOJ(NGc\ERnQ-<%TgjVfJ(45a7dhoat%W!n:9nF4 36.762 + WWu(IN:G7oD8j-$'i.e^lr_14])`.(8SdQXb2?B6KVWG171Iet5rbF]XcF=4_A8(P?s6LNo 36.763 + /D0Xl+%'+6prcZc^4='(B-(Sc:XVg=]18%4U9Es`b.[qLR.>ut#h(#+&da*a5sI+Q\m%N`K 36.764 + M;dseU<oMqWErSi]fjM9?jVAGV2tMN#pOAP,J'8KT2q`4M'!O;(:"ON;p_/3\(P.qmJ^7nX 36.765 + 0cthM$%$*9H`,P32VCQo97ck"K@iDA(disHR=[93Jo^,qGZ05oASoK@Fi&9E(e9<_B82dhL 36.766 + =gBB=0YqQ$\6(LE>W\O(k[WHLPV=QLK>jD\*OBe0R]9FIPhpt\>+p`Vi$kBI+XK72cG)(,B 36.767 + ]AY4VXSGfWC*7a,HD/N7Sl('o@.$RM.W0N;2:j(upWYk?D';0_^onJMRqDH]FKjO4aJo)$> 36.768 + Flm4d0B/K!8f2ns_V`K44AOkCh>)'_QE9/8@XHSYtVpZ!pSI\W7o3B36/Qgp5A8!KE7PhAh 36.769 + n=Xc\H:GGrZLS<L"\P\YqB9ns$QIUV9@J=C0/MVMZ?:;\`(6=/Wc"ae-R+[Og)3^IdBhria 36.770 + E,u>>+h*hIgR=I5MrM@'3L?4<\!retS'P5V2TKGFMhdZ/L\\]U):P-Zf:@kKOHU&mJZ"_=7 36.771 + X:AlF*OCL\auFrpRdlM^:!K8fia4YnV^d!*-r-a_;U=jrLoZ!U"UT_$Y*D+o3:sQ=;]Y8\I 36.772 + kPs2kug'UY7niqBqp^)1_n$#F\C:J3B_t<Y$*QK&oZ?\md6..THmT/%.i#,t!_.H!FgG$X/ 36.773 + !ZFu0MO;l+&*V4d@Tj\'94Yt?<:VS]=1"]qNc4=Q_QW&?N3J36hXEKL!H<8*[<>+/F%Sgg+ 36.774 + hW`iE&[Pb)]L+&]:XkL6p>.R0,:TOVcVBJQ3(g\RNbZ.iEXWWp0H@?5gRB=7HXoT'978]Dg 36.775 + WNQ*hRc:<MKi/)d-7PBY#Fbgnq['Cd<"dqH/K'FFgD@$H@T?ma%6I<bHR8p./#<%sY\u^(g 36.776 + H#u%5D+YcZpK\Z>=pEX:(99`Z@\"B79?sZ?8W[5VK]IK'Po??E`H=<[09R9_O7n[<OdB`;n 36.777 + DG-iJ4rf9=]C1<I5+Og4?%:BiWe[J7UOJ,)`II=f'6fBY%WL6G'+K:TT/+W[1$@j+4F<f;g 36.778 + +QO]PL!49@,2O/XEsY.%c>77k4fFhZs9YJQ3t`Drj@qGg_0QhomGnmA);kX6WBZ6`AaicW* 36.779 + a;o3k8ZXm(P_Ps;!42BiuZ)(7"6?0p):W+Gu`+;fM>;`Y?/$:ufYueFc]O"Rm@K7B[<81E\ 36.780 + Rk@]GF2ZjW<BH-i]0K?-ng?PQ<?%L<V,bV=MmD)C\:[T"!ia=28]lX)\V3u*)h#,@J[0WV[ 36.781 + /@Wm]YZ+ek#C*"/%j3NqffU4;nXAt\n+gOY@:J#Z+aG(<;c)4SFBMT^aQhh]Qe([jAXC!F1 36.782 + lmZ]rHlO"]<WuWQpsQ_n'bs77ECt'4i-"$X<G?>)Fl_l[IOI^jRgaNY<_o25ut\WSKe=*CI 36.783 + $AdD?gP_HO4p3jm"t&]`ViesaM-h)lZ>4f,a9Wh"L@*Ik2CFg/IgYs"$]K$h`[8][E\<4lr 36.784 + n*,\aRRG+0+<?+mcS5rRYaoEHj<.2C3]X>6.Fj%FaZTO[VI,l]g``.B>h8N%34lsq:l*\4l 36.785 + [J^5-IInmmpf(PPd8)kSRsE7_V9QWOc24S@SeNP83`MX].@qX>*;.K;q5#(`"h`V"4Q%i_2 36.786 + pQg\cF^X4qn,p7(aiT0dJ-5"[(_g8:-94o&Q[T>`CLa#LR<<i<5Fd_)2FY,;4<'jQu@HK"[ 36.787 + eR)gc#l>%('U[T!D@5=qZ:8hBc+a@9r**O1ShsR!olO5+Cg*J%^C&D4\<(D-Q>An5Xq2RX( 36.788 + s\i_/Y8C/j'?Kmpr,^>@DSj6O.N<t;lC*pnZ1S*[\@klHrI(c1X[L[[4"mKHVV+ZXD3&+6W 36.789 + Nmc59cq4mK:On(MdnmPd'@N5q;g#p=Uo05/C,u@`1JXC:4*/.8^=BG%S=."F8<1d1`P[!h; 36.790 + Z^><*p4$i+IrU0E=8%,hKn"JLIt;?a<)n85pn_!cpfH]k:\NIsq5%*c]1>q.I;PUT<F;k^A 36.791 + QSF$Q%^M]qnJM$79B!Pg%.CGL/b[J[`(oY9.bSFh*M,AJO&.T=>V'2$&(_)OOsB`+D-Huib 36.792 + c343\_M37cTW`oR9(LO\"Pr=Yu^I.@!NeP1ark@540Dk*&rThJkQH:?Rhoo_sD-Thss;=u@ 36.793 + @`8Yo>LPhL7DTi%dglBPP\?EmY8<pQ%)omX_cYup8ZlSJ7]r3\_jQJ5@/d/C:8XI!/!/hGb 36.794 + 7?JW*F]Ii)n!+>;`7NNWNM8`roR+ujL+d'lWnsNak?SRtnB(MGGp4#B%d:i0@>rJ<PWRYbE 36.795 + 2`m#4pT`CUmPd:@hf2<"]=49cm`T[fiGeR^?8isgalRR=SDJHSU!`+HqOLs%?a8;OA@:!XI 36.796 + B.!qg=a)e=Q<3(7.km)DP))FA@qYbrbhbFS+6=QIfH%toD\eU0GF`n5d3'U"@4_@(C!1*Mn 36.797 + 6EjY5?0DY"p;_lBq(f,7[)Fl,O>j9F9Xo`2ktS$q2mM<u+60FC,kS0pH;h7^9==*(Ma5G3) 36.798 + %%S:7t"%CCC)-KiU59Z]%hP]OsP/>"=_16e[d9!Yh-/5%bJ[k:=ZoY0\4cN@_1[ZV=X0JcU 36.799 + @cR$i6SDQ0K1R.&`::%=r4ARc_pHDBZo`%0B;\Ag\9X(<D\kjqO:D0n0%3EV41mC-q6Uj3R 36.800 + 9N*du2bm;Yofl8P2&/VZ<4+JDf?A:]bsYOrbNsGeQ'(N=1.S0Yp/`n5VcQs-om^@O2AM!V= 36.801 + Kl6"A.#bFQXuDiFcC'<2NtYW2A@`G+kgZuAD^UlNO<_12\jAR>dlT:F?5O))T!"$FjkSA2j 36.802 + /#Wd$D?UCu/mF)0PuoH,@ZI#I=&\0/qGmKOHi@(PZA.F<,M][rCkmijcDX6-uOcYr#qS>4[ 36.803 + =iC['Qp9m>e%'B@bH=-dEt[SE@+a%9'q$+[AKRgGnAG>[K2mX763)0DQD*]0ZT5j:<NQ_ma 36.804 + 7c0le*\nd\CgTC'uWTuUr/k0Wfp.n/;)]!Tk)B1TCL$2*ns.&Ea).g<j\*H2b1e$j#_J\K$ 36.805 + -+`I_pA_pI/M<Yqh\bebL=^RkfpOTqU$l,JQ%osoEjh:ib[$\LdDj<hQJbneCju5ImAq@MZ 36.806 + PjSa8BZ.FVWPtmgp^qMG.k2\_E9l=o@oq&[Z:s;/<0[njZW'njAS1eQU^-m*1tn8Sr-<:;8 36.807 + #\Zl1R8m9>,7*^A70l58VB2I&V=26[*oBbg"DqSD,@7IqRs@97Dm#ct)sG:[!0W>M1:(O[c 36.808 + Ec!9i>2GCZmJ"[KR7m?ajl@u;P!Lo;^-TX5Mej2qf`ACgYk;so4@L(QB.&jP2F@;Ja4G!K_ 36.809 + A9Ubf(J<1bp6<EO_Tc?"H&ETc*26>bD<"^Md9p<6_b.ea%s"[,qEP)E6V4lC7M?kCE&1FF_ 36.810 + RknSs`Y:U*\+^L@F@.`8mENLud2,c5,BY_LS"a#n+!WQA,H=p*Z?EnE+s@D@NaRo;Q?O*<, 36.811 + ]/P%L"+!2$I2j#`.l3r4NNZuLuT.XN04='2cfSgd48`SEUZ[mis-\EUg>:.at:Y'],ch:,T 36.812 + AM8Z:S`;(>I4RBFFes"P.P:Uc`9:0n=L>nBiLlr4&%'DHTK^ec6sO4-Tjp3MKS97i@JLNMI 36.813 + %S1J(\W)Y?d_mjsMlOg?OuKPZq"IQ4%#QFeBBE/sMo(6dF^2l5m!&!FSb9efF$9H0Ia6ukm 36.814 + YH0bMV_$cH)Du`Jg:GQC=#GDhWY=$9.mZ/>Q-1M:jcBZ>L*/X9,k"1t#Zdu;C<?J"AAh(Z# 36.815 + #pRSEruk(-JNUt<8#\'e0Q`t@\sc[jh*Ygl1r=BtMI0%+OUdnglCF*,KOG/)-`E[>QHbiL: 36.816 + flu7-1pnp;t:Gn-7pRAm](Q")P%paaU)MHk+,KR>tV-0MlC^TIb#uW=U6lU0X[^9f#%ciR? 36.817 + ]XG%Z6deOt_^WlccEj,-+@/F^Sub6RJ)p;:nod>DOkMW)_!;5V`LMd4LA$PtFKq8jd6-oq* 36.818 + V94fD3JAg]/f*'HpLH7id=eW&SGZkg[7.O[p^;(Grt':#)sW[L*oj^#=u+d9IK0[-$:!hMe 36.819 + <h(rhl.EF*UZ"=d0OE^n9g@X/CaGoV^=.OE64d73n/100"i'FMrHr7@JAR-1Tf5ARRPr7Kf 36.820 + `EB_BCi)-SQ^pV$R_Z[AonFT1@$b1Maa'^W^h]_ml@98G.W3@Z]5eXU>ML8^-kg-ZU^bhrb 36.821 + ;g:VFr3C'(C6tp-qUQ\@^r>Ij48/MIkDKYB6[s<@Pg`78,QmBe+F=2ZO$QrHY-nMqFScF"G 36.822 + lQ]0uP=N%F+_HcNluJ_4tWMj%55`me-O`"N)HnbWn4/ps?pH3rI-ilk=3SqF%j)Pi(W8J-Z 36.823 + nl+P7:<gYC1uYYDIM)<X-q#LLKG2%Y$F)+Mt_)T^S<&n'D]7;0,ZOU(dYD@E,\&8;EqEL"\ 36.824 + [L(;Eo=eA+Q\HUE_gImXN]4MWqOs.A7<+V!(9:G4T$+c(Ll<EaChqF(26oRm&P$&N5(:#(T 36.825 + $QD*cJ4qg1Z,noe9RmRG@!,T[eP4(em(D7DYiu;=>1A8X6O0bc<h)>$lW./:ZpM4Z!8GF.> 36.826 + G>C/6=`M4bYLZq?LflDC@9Uq]3]2fmA*3pLpA1d<06Qj1e.2Q^Y'kc@;59CYrG;af_ZA9CJ 36.827 + )"034B^M)>4?M<^EG4)3Wh@2</\:8]aY+8Sf@0JT;bg\Oa^4[e\fsB]9]:bV!YlRkpBBmU; 36.828 + Z>@40ZHr[lEt>"6'JPNS?tR.KkPctC!?,J4D_o0Nh%N%XAF/`@?2Jd5D%kr.c'm"Y,dgX?H 36.829 + ^:8!"DKQ^"jbdRON+H/_*f:l=]H*c@GGe[PrY2j"QTa'[CA"'_oXaW2D7$0X=#'T!Yg*Vf+ 36.830 + kbPi0?D9s?Z0O4kGuLjW?G4-816:q;</p]<)9KQNVhY+b5Pfu)eST9nCEBh8HSVYE'Q25>r 36.831 + S55P7dCe7c]fONkQ#tTi'uW0G4:U/OgGSDdOtRBQTl18;r-.orVr_[X7qG`mtL9nfcbL*o9 36.832 + T5+&bl3Yd-^k#KmeEo6)bocQ&Od_7A&X,Ihuf0T;Tbl5O\3#q<5DON^)j72/l#A)INhlp,E 36.833 + HI3-^0AlfGjEg-Cl/S,#@Dl]%MZDa;b#![I)jZ,`fQq&Gn35pR)#,-rgDbeW_"VsE(VF8%q 36.834 + Y(bh$uLbom`ETjej\1H(B/=Z8;e/L]bVRB\J5[3mf3YJA)n0C[-M'O31$m,a;*/0UtUX4ZK 36.835 + dtU1O(pNWW#m:77.rgLrNuj3/5'"_&lc]Va]<Pi$V\"t2A1Oi3R6m,f6$r4@#an&1PJU!GZ 36.836 + uRY5F=4(F'1<O#Rm@;rW?85cncl0aU0n8$;ij-CI^pFb7&3G3J^ubAgd;300uM:'e![:*:) 36.837 + e8hLb!PW6_Zo#<(.B3];.)Jr%UHq=$,1a5_N.-e#3O7;^tI8^"A[dHnG^&=[1[n`Z+*Y]=n 36.838 + [d9=#1^5J-39q3aPP2ET'06<mTJls2(l,/u/378-n)g`FHt?9T=-`O&CYZua8RLI<ib&d1V 36.839 + C8=cAn%h_J07soX'ZuSY2J#DXG6'Qc6b[<pTI`CT:Wp-%<ZXLJ!?cVeW8/tVt$g>Y7@Rt<S 36.840 + 8:5tY#b4>VN6!H;83AFoP`*K`Ku8".aNT1PjB9SL\3IV[73emflF]6+HH*%BM#<6aClZDkL 36.841 + ;W@n7\lJDFC)rqS]UMbaK0a21o$bsZc?M\4]p/79W,gFW61@(b+u&[[&_?fXNK%pb2fXSKW 36.842 + fo*Yfd`c9)&Zam'Fl'[*)FVb@J')FLTGH\BC,IbG;_m[(FN"]Z\g<bN-C\oY8TQ^s!M.)G! 36.843 + ,[)>h@1\])@=3*_u1Cge>ERg:jjM/+S4N1\-1@nJ/.bbJLdjH@T[TKen]6<"iE0V(o$Q-?S 36.844 + B8X$j*g9SgoU!7D96Nd2,eCbrI1HEpAc.#GnF"08ibQpnoM,`$?b9=W"cj4II#rLd9lW?X+ 36.845 + M25-\b!bO?Z&64m+,r6$:?6H@o^C*/nBVg=cQr)-2"T$]oZpM0cXcaqFSF+7ps53#c_UE`[ 36.846 + /7C"M9J)I);>&,CB[N"E^(e[`;@tIBRrDh!Jrpe^dQFA'K]"@N)3'2WU"jo1nIOVRQdPPLh 36.847 + $ZNeCk4?$&N3t,D=ak*=B#mcV;@e:k].1bl^['%+,')U<K")lll_ab;sl):(W(U6R`=9&lF 36.848 + nX:/H[Bplj(\&r=L;1L/U1'^O2$.%!:dMeKPYP]mQ^mK)DH;WTOZoe4bt0[gakdj6cu2)E] 36.849 + M1t,G^dq&0ud;_K?(,c<O4p5ap!/s)THrHg,0f7P)&h;Ad",TBd]G/`:bY,a2*@b!kLikhi 36.850 + /J$-gQrFL7e+A4@;jBop(!W!bLuh,@]gu)86S"Ws[q*Fg']Y$;j.oCB`a(dXe9o[mL"0R** 36.851 + ha$+]g`9E:JQmGLi#`3Q!`)CF:`uU;Q.#EdG><I/K$Q\<b5moF_B9ZB\&G_etm-4[;4@4Ct 36.852 + @-RJu*@:I;d^@E)u0P<o%fJ207A<FOsN8f4B-WFa)GkGh84+f;3fF[<pNEI+QnsfB%J5omb 36.853 + TtJCj!(fHHI-H#TH/(cIiT&M6>F<!^augFlie3kR9U6p-9J78So![Ts7Hd]V5AOLsl\;B9( 36.854 + B[>iI8@b?cr]1&"0]buZDOBAmoZ=(OH_;A8!7jo&N8NiG5,o9)M);'ni;/J\G72`^(I_=<b 36.855 + /i<UG[?jaHKN[(3#jmQVD2h^%(0RTPa5E39SHT<%qH>+L2[\tW*F7>cAQY_NTB0J8FgmZn_ 36.856 + @(I_N@e]R-l1RR*/9`lR6@^2]0eD:7,*F3N+8BEBm8$Z:VXT>_c.>^/WU/\J#*lZ7h[M20p 36.857 + t3:_H_f<O)fe,Mg#k`abWXN1qB#=]+R[(JmBTH["H[14iXZtpJFJ6glc\PA^S*:Fr^ZXZ`T 36.858 + il%,"A'2V`o#]a_>PaID"<V;0gjh$r+DUCgeV;r&kr>rrt\9uB=X;ma(ISOtfK"GKg7T#OT 36.859 + $?C@4q8TnEFOP^M6hci(K>`gOFY9a6r28u!;/Ip;gL7+n*N",3LgIp@,01/J!:^O?\ZZDPZ 36.860 + oSG`t2b!\TII8%3ml5aRU>=e6!u>&$oiWu(?;$nt:"k=abM4EVi?:8-bq';E]*p:(!GNO/- 36.861 + 5X$K1H>3hhoN[QSeC"tY[D$pQNR<C&14Zf`EQNA[_+j]E/*?d)n*C?3D#dN4#L-.k$\rPWo 36.862 + `uSeP&HN;i-_=g;5u1bO!a2Q=<N(@Tupn^*co*S(`#='RID5ANJNCUJWoYeBAlk4fID3[+1 36.863 + G3QXrhr*']ns.GcsC>l\j(ETQ52J)Xn#RjKNC?2%eL0SmiZ0k->W:+i,M0?!QU2qW@+ZCb- 36.864 + 7*9@r5P+6ZVOW[EGdpZ(i@:?sbEn<I7;ItrjiSDFS7%QMA56qmPjJktLfrl@Fn!E9gV;c/4 36.865 + g/C[aOCdOo-\c"J]C"CB1*sU[0q*PHAPn/EJKo&<1/]X"->"Q;5%\b?_-9EoH2XZSHsgo8e 36.866 + Vtp3o*XV2<Z;YLft<5Qd%9B&PG<#8k(Vu1P%7C(9'3f,OOP;=c@/#r35pVI=tX82V6.MPA6 36.867 + CO3j1pU85f.'^S-D(rVS,LFIJ17TK&\S/BK<6X%YX&oY+4?_Lc0f3IR5RtZS2/aM6T]e0q2 36.868 + iG!CfC]k^Jl1p3E('HIW4W#k!),mX==XBB_lgl=QoUL/UK+1UI<:cL&6uaW*RmDa<H*M]<9 36.869 + o$k_cJY_mU-R%m)_DQsaJZ\jDhlTnSW`j^Uj\EfHk"pV[)DS+34V%AZcPXT*l%TSH/<ft<h 36.870 + L9*k_IMrFtif$@>Cg`t&,=Up!`fL\OMKSdMDTNV&Oc1n6CrXcO(;1=VLME(@lE1le\\H1DG 36.871 + t4aXD.BeYXi'HT4m]&sO3ZF99.F0>g(WVnD2-k`nSho#dH+EWj^uu(Z'!(g9];T#mU5;GI^ 36.872 + ;m`k)]5j$5M#t.)KTYknCM^$m*]3f'eke.TS)/>HZt%%c\/']nVZ5mntEn"@h*Lmq6n(m\] 36.873 + IehWO9lkjPbRDlB7t`K9QA4H##5n0\;,0'2R5"I/kq$YJsEV(Lu@(6QH-5mUbi!6D+me0su 36.874 + )Dj]KPPhubgc/_G;.djHBA[:J/87IllRd?P$?MlV1rpWbGnW9=+qD+oHC2ojdn`LsM0&W1a 36.875 + o'hC_E02)tHe4$l[uRp9N8reh9U:Lh?.shJSGB[8JA9T8!!phTADA-pdZ<pR+*/5Qo-Z<b0 36.876 + duSs^C:C_!!^7O^@cDU]o85l)%FDb4l_QS.b%N5>ug*I*h`rP-42B6#o)Q4"@-K1ORiu=oO 36.877 + gYcG=V:V!V8nUM.pT+/SGnbHAZo)F)`.-G]I5R:W/"+`0SBh-ADuIj97\Nh/J@RmKF!%5me 36.878 + jqBZi'q[Yh@Broo`2ch(qQmmZl0@.kCFp*X=0-V<TjQ7.l=F9%s*k4BSK=.6R"^Fp(W$7b: 36.879 + >`JA^*<*r[urr!23Ka?cbl5r+o6fE,ZK_>X\G@u*nGB`e3a*'_9p0H0[8>Ps/,*B=8^uh_g 36.880 + EE[=aY]IOG#g.H@mWBp0%LD?CRG*+bDCAW4IktJ%BU,@W"q;8aEoQO"j5(@,Zc2^6FBqL.U 36.881 + CNmOLdl<C32nYrk426O@Y/IBKjK:9Vs:9cY_HuG/,7/+@\FEY!V:MBGkr5MqBr$60VnH1R7 36.882 + o/$RP.D(2`CA\)=/V<lmGZs;&"!4Mm1U83CaW7Y"tS-46><,k5rFP]s(jU3]mVuOY<n77dI 36.883 + [?i[eRq>,5fdmTus?D0aj&#i8"TKj%ipb4tsp2_7YQ^kDVEDgP6RHs`HhLS4K.aS_CHr27\ 36.884 + o3mf,E'NS#-o]``"8e5cGJ\<#!6(9[74(\2>\;Ue?h^/Z!1GJ_.l<l3iLaqe5o.&`)Onk)t 36.885 + g)Lh&e;G^?mBVH!;?t_WK.8MBHb\aR?uF0afP!#Lqe(,T=QPE0P<++U8E<B@"D/n4?HmM[@ 36.886 + 'O:4TeGn>5=Kp,!,hPSIqSKTGPD,PL)7>CmM@#\DpFKBj@>O>%[B$:!.[+<:\Z1N%0n5s5S 36.887 + 1G8_Arl6+!OP&@id35N'Yoi\BGj2n6&:lZ.83,.1;6=Ui8mf;HF^"b@I[,C^JQ2BMN/;Bft 36.888 + LN09=7enHk_oKc-2o-1b`n2MWiZJ1:%GAQBZT-I&Q0=HW/Y5)<0IQ)`VKWf4.,B+q7-Su6& 36.889 + '^Z0%-D9h0c]O#MX]B/bbJ&#H2=?HtH%:VG/E1":M2][t#A9(g8VH5@9b[tp!]]OE$T?q7n 36.890 + >!44!9rHKUF]uIj[p?2iCj'#GVUo[oghq=?^#o';J:DNFS2]=ANPg30H!D0Zs!Bkl91?NXG 36.891 + ?5!slr^k/0"$tbh['")?7'l_*H7pqR.Acl[c9f?qP"\TbdQ?(RnIP&s$^hNX.^pkY_FRi_q 36.892 + J&)!br(;,YW"EPJ:j!U5uNSlJf]$.nY9'5**"LYc9B,pn'pl@QOOeX&>Pt+R&ZM'IbO7],A 36.893 + VNW]LVD$rh'aa-#_:+35''Kd"O#/<(mr&knQ:ac^J2-d!'\V('QMXJk5&Y!\0.\8oKT.j48 36.894 + 1Gj.8Q"*St7"l.Wcc#Z26,::8QjZ1Uuo^)1L.\'n$6P-j>[_q=W2[qW!@PL57PQX[35j2V' 36.895 + 8#*:,(B^^oRMQ77oKiho^IXS>4KfH6:;>0!'$.jd8>IYc,O&sI\?&\iA;3;>2/QQin\V$=N 36.896 + toW^?e?,'KjiW"/WF8n(/:'*fp6KGBA+,\V&m11`3h1hDFD.qf+Sk>(><U=OEXrr/^!-Z1d 36.897 + +*teLFJk6W)l1>?.t$$:?u-FW+=U,7o/M!lM!#:Oo1#U'jgEb:W'`?PguCI\9bW(9AiujnP 36.898 + 2!3-I0,`!T-RKHZ__#l#U.U<APTbI,fa[aifi?=fObAXV\KY&0Zk):!AqkF(adTBI1'KZRE 36.899 + #<Ne"/:0kD7gW;OTE+j&4[d?-h1#&afg<R+.*1H6aO%"7ro2=pKJn($GFABWF`0!_OK2jTX 36.900 + &QbXo;Hl>]HTohZWG!&&W8`Xc@Buq\h[N(R#X0lSjkN,JK(%p#n\Xc$;PLLo2*Re[Z$^:^Q 36.901 + uef/7FCau029pg*D]\copp#,fCfJ.M_)B(`fbeoqI?:u9YH<bY+1s<L#>MWngNnkl"]+mE- 36.902 + kh+jtM\[>_KdlVE<mHIY(shmd)\P]l&W*,7u&i1ZXMk8NO-AU%"D=Vl"^%.84Sb_XGIJJ&; 36.903 + $&TpYrt]NZ?/GL-bW]OD`A+=%8E:bDr;fGt(PKFrf4:'s9h/8lPu7n\U`V&\*/R,-e!K'>9 36.904 + H/ndqi$u>\^O3*;DU]Nk&ZO&@FOG5th_Y_qa3(2k2I5(cN:<B74+E+giT&L7i'Y9lHn-Sk' 36.905 + _NMus*%E0Dam29\QsX((%Xda%/&F5>!JjtdMp[P?7TdnQj$[U@;6DfHf\ILjlksuK+YLU]] 36.906 + 'dY7:P)0jD^S*S*tg:%O@c`E-KgR'8UCneAPM28;@:<D0nb%0/k*[%lpkNJWJ8?#8WcOD9& 36.907 + E/>PN3WWa\mm.M0rHic6asYdP@^>EKQLiiE!2HWoYDRE+i+!!(JD[0BNDRQr=K(9Nd?0k![ 36.908 + =Z7e(7a3&\5'o!W8;jkdfCX#83Cfp^r$ihu@1nfkHO,8-sW+O[^uJ-9(!Z]KmHVt2F4ba4- 36.909 + K+H4KE9+d""H9m4_Q-0GDoB-e[SqZk89/6q18>M991W[R3ip'#MI.3P>:0pTY-Um7<)5C/K 36.910 + N`"Ln8*L1#AS3b-**7%GAs@N`Om8&J'\k$LKe]GV>]uM!9)"3hWI-;k+2[(Q9&Gde0G8P5O 36.911 + kJDPaNZX`,^"\o(Bd@nYr.>JN[+T0-W(t"6`B?6L_FHq5_'#"I0s,/PiD3]@OS.9ocV7NKa 36.912 + C.\%4t^^<?5-jm9T%sH*:69^/s%e?g/!D+,aQDa&d6.ktE4gOGX:l8nDMsUGST:9SCM#7pD 36.913 + ]YI'U[)T2ZM(8EJh9F%WZl'B6W;a8K#Foh9t$C)holbMRZ2qTZ<*S=_7H6^0?bQb7"*C5A. 36.914 + R[E8q]96Tr1gmK7T%%=2#HSVSI_rMrYg%cD1C-drtlB?-mJXG_F$g8lLYR+LE/)/*immZKS 36.915 + =0D7'gYI5FJl7V0%-!>Km7HY2At!hEC;Au/<+c8#46)?;SiO5iCID7)CndUo_[QI471(0]2 36.916 + 2rD6-3,Oo@k5^E8&NL&.S-r.T9A,e:@(#F*&\S@A5`oN,p)%5gn:a+cPVf(*J.NU!6!/4nJ 36.917 + BdLFJ'(_^*u8:j?/EanjZ3m=YD+4gmreqSbC2nlMO?qoh($G/:n2>670e_O].3f:9!$jU@P 36.918 + =a8tF*fZ?:DbHAZ#><YVij1p`B-:dcqe1On[P\]SAnj@Z"U&Xf@._]*i!kI,R\DF['UD"ED 36.919 + C=D6$hjFZRm?:*p3(=#/FZd,<78md]da)/&NQTQF'F/^J56iM]S`VlgnD%+PN-R.k>D6<KN 36.920 + \^sIgj(6`k2YI?efNSkq'`7'%19>])=7X?rji7[o3Q'LN[n:L#XH0clf@sMJDJe4BBPNHtY 36.921 + .K1(DHkYrh6i!6).-t:S,3;+r827g(7I?4[dc:7q;4q&D\CbU^A%p6i*6e%DA"D5pa6C,;\ 36.922 + e!<,E]9>qVQm#"+)oF]THrC-bqhtNc1Jpa*@n5jBR_,n7W?Bq'RWQ:fE+UDBB*75$$YsLQ: 36.923 + a"TKAi;/*C+!O7U)6ch[l4J_<RoFC'sS\DKX;>qOHEf4i.bL?hMLmrrU#)]pjO@iNN//o0E 36.924 + iQhk?']tF*EG$`GHqaYAf?*A\EM!<,EP#gju""d5]Z%5[\#=uJFQLpd%hrtAVn/`+WG[Cp= 36.925 + r'uV&LBbS2NR`K(SlkEM^Ob&'+&(D'MXsag_0NdYkPYXZoNmU,1<cMXa4)'r-9,CZd1P^CL 36.926 + ThjAbh)SQlN=f/QP28IdehmFkC**@pg4QkHs_m'c&\dFB,YG$7<hq@H)LAm;?cg?28%?_g[ 36.927 + ?0FC]'7,!e(C3r*PNUIUC@qr]b;C>X6DYqd;NLYEJVK2m2K7^l\E5=U:/moRGI\r%J!K0Eh 36.928 + Gq#lq1<i(i'qkj1'CgaOnN1s`&aa;F'aT]\!>!peeF&2=9+3<QKK"7SRPX6/O3T`JXKVLc> 36.929 + _0NA9EYl66.no,k*DDHJ*YXiX[ih4NQ&46\;k23;Z][1p00SKdOM$U>EJZbOHO4`9K,_@W6 36.930 + #7tuJDlj4r\Hq]+9Fs&gn?iXC\I5XT$fu@2B]f\?,6dPui,C)tmA14&fLW6Q%C"e$0]`d`k 36.931 + mjIc!@ge5mUY`]jSFZHbV$4$KS]W/])M3d&EA*HnIZ@Q)%j+o&b-tcmi("7i:7HT%++p'/- 36.932 + buZ,4@pV$=Xk@d3B?8;\;ku'_,$80i\s,cD6;f%l#RFA?,ba3qk9[pQ8Sp,<HUeFVh<2(\* 36.933 + %n/sd<rkj@i-k%b`a8m_6fG4RGB)<PWLOeE\5W>`%D)XV/J$O[_%PmOB3Q]X[+n$Mt34W>! 36.934 + W:W,"iDG_DDfc@?R*V&(k:Di3@MZHR_)m3k+.0L^[]^+Y*8C-l=/BJqg#U$CK+L2S&1)1sQ 36.935 + (jFB8%$<1^a<$#;DW_S_+gNdn&e?3B3?tgm,P"*&dN8usnJN`"*"ZjU:i>9sUEhRf,B@':1 36.936 + 1_eQBdTX.,]U@4%@D`DT-]LN'B?C6&lU.)FX@`X..WKL16j:u7jen/YqdT`0[a4Q/LcfZ.+ 36.937 + 54J1:8WQ\LXDt(lo[b18,d<+V5($&4D9bM$kEoN#r)W*T;SZ^t]\jQ3hTr0%0&<o(=Xkq(E 36.938 + BZ067(FTtV;9C,-sl)r\Oc',<1,(GIWc0(TPlj!-6dCGE.I0p==Ho'.u]U_9@O1@m@[1E%) 36.939 + 1edZ+<1k=17'3-hE!AgE!16Ycr;ctn4-qCSJ/(8Js/cn%r.NQ@m2tM/O-@m][.4ObS/;PA] 36.940 + Dmhd%S4M$m+`YBnTmdFndLs>0!E6*^'<aJR\N=lG4&`sWZbnl`W1jA8*J(.-PJo\+^HIe$4 36.941 + nH!C!N7b0aqI_054dMn1Z:CT-l=)`%J0*SF9OhD;?ie/16`+MZi`U8ofQ1N%HAm'PQsL\of 36.942 + f^!#L3i#F+lu'38e[JN&3CZZp^^"Kba-e37,hu.dj[foW05L5j:rsd;6*#SG8dU#/G(B<-: 36.943 + Nk_*Z$_5#c_mFG2nWkTb2%8FsS\Zi<T2Kfi<J5njc"P_29o,=dup6F4m*dr.Wr\P'#l6g8q 36.944 + c1qcRoQP+:t"OiDWbdL4XQkLXh:#dFg"uOC4fg.FL'S'3fFR`.+o1sK,:UL4!Pm'tA<Z=>$ 36.945 + 'a#X#iNsP(#uS)4;:PnKo`J&WZnaKI'bqlj2'l-X3DX-5)'K+o<Ad^_2cO4!$36_SPthZ$7 36.946 + ocri:c1KL6Rc$c8QN5B;Y2U_-=9GGa]Glu9B$p]0S*<uLfe\g9b^Md#TT1^LKUAr/E3nMU' 36.947 + S*(@NgZ40N#jY&^'ljm5ss4=JH0qFhq=*aJ:Qa%e\4T2:<95fj(r?9\#1FnoX/q,p..(/`G 36.948 + PA,V_b4%^Q-8`hNJU1=%(]M-I=&>P6i+[DcQ4).Bro@IFY3031]-BS%ufk2VCWc!(HS%6HH 36.949 + [@M.!i<^C8>8S#8'n.<PUZ6:!&qZ\G`=d>L6[PfXV<o28.pf9I;p-3*I=(-8tBD-mi2MB_% 36.950 + P6k.*1+e"qEVj5j?"0`U-`ucM2Dc]H7PIc4!#)+![W2CLGA(cs6OlmoG.h^8a_\E0f%*b&P 36.951 + Ya+()I@2g20PM'WfL?D""J/^+-2I_FU;&kcQLfT6l*a[[fp_p$#lp;@Sn[2f%MD=*]1=bJ^ 36.952 + Vc'_5D<`3[<pi`M45$9YE$E%/dP^F14GW2aqh+=WVIP37$2%O;K]*Tl&giETe?%:@Q`M.TU 36.953 + ZT0p]"Y2b5gWAp&[YRc27&_0pPOHlSi5(di:apNLn,R<c93F>&m$:RP>f*]n8#HL.I3e5WW 36.954 + +2.-Lg7VZKN(S3MYH8<_(bk8!^D'U?KUe.8'$in++5r\rH0mP\W9K*'$GP-H0q1#`+FMj45 36.955 + %oX5Z-;&JiJWZ8m<8JVh.^YpjPIJ5T`/f;@*[\uiD$As;KSb-Oj#d"uI\Uh,==&WF8VFTI8 36.956 + bWf4<[hUY-"[141s%h#!rZ=S$G^m^C2APYl$15t@S%CsITPc_eTB^!H%u*RM"m*h,`@@39. 36.957 + +`OOD_a="&/u:)djrXs$2Ck(mHf.-nmtOIRW6Da_n/r9%;c"MaVcEpcXEm6[nG8Mg43@39? 36.958 + 01D.p.Gju<]?=:Tn*0%q).2#+\CK4Buf!1arN-1#Tf7"L=r_1VN:A6B)!3@0i6-o:YcATa2 36.959 + 280<Q)$HJm=AuC?1;E.Lt/7)AV9-RCabtWUDrZY<Lg7l%'il#m>6ZJj/cpsr>XXAp>#0.S- 36.960 + ,Gk<mU*WJNCa^$M.QMr>\J[Ih*K@UT6T=V"\YYa?WLBRSP3u[oG$,Io>_+f+GZLV)!X)Gpp 36.961 + b?rq?]l6jXDk<$W5HXdC:3mc36YEGU9ik>SToB'(&`=8?GbaPW9]g(l-Z,VCRK7IRB<HVp; 36.962 + <?Q)54V^U$$!;'MXc.%>B]#6PnH&lX%I9ShP?S>``/7q.G*URshbZ+pgST+aTI7l&d7n,74 36.963 + :Zb07lAi2WNVR%an`_&0cDl&<_<,l"AglED<9+f8`K#'gnQRLB4#&2q$eU)K`*3i-q#R9ji 36.964 + ?Jla-kQR3V\*(C<([=S[o@d'`-*HOX#+*'VIH'0`&4=_?$;QV&bQeGkXhRUE&TRm*QC%/$S 36.965 + pmi;L+pX'tg4tU>NZsA!8(s</UM6_(Vm3iSZ1`lt/+7UYa-0%7G"`:>ir[&/2I8H$0,`*%& 36.966 + hkk?n4*%)UEZ>0)I>)mK!RIgS9f^NNFKMtb<m0L-#(`)=UD#$F.$+gL_rFO3?b[IM7C0WF0 36.967 + F-"G)qhHS?CuiPG596HVcG`^nrgq,:-'c$-k]9A1nmFa,.aOqkgG%\>_&57EU'bLh![d^7I 36.968 + E#NB;WLH\8<Mh2&\(^AIH82Bf*4/%MT#JM/[-Gq4K608G;1WWF.d/N:K)0ZP)O^!&ZrqX(k 36.969 + :rO2)rPK9*"UTLd\fsjo0RQL2\4@R22M8,;(^X\["op^ZrMh[(pL<ki:'*0rnJV'C$K,\>D 36.970 + ln?0/H+U.L^#BCWg#+JULiQX+PIj",HWlY=F0Q\EOh<ciRMBc]8]n]Jb4N6_gR2B8T-'Gq/ 36.971 + b/q"n+FdU2/@BH7bhju!qaM<efrG7?_#T_=uXL2e0DO`ZU4=lg695f43AN*Z$YfT*3mk=$. 36.972 + ,tpb>KQf8/mVg9onjZbg[*A][T2L=i'+g\/EK-4FPL;I@ijY,)V)HC!=m36:(sB0ErJN7!9 36.973 + Wfe/^j7:>K4q_;lR:_3+X[d+r\h@HH*K7G#5$f>/3S4`b.^&Y"!QJU'4G[Z^prc'27K5f"s 36.974 + Th',Aa.AM700?TQgHm0[/MAn+!e"SU]>u/;g?-#)7H`EChS>V>CZuqiUfR;^eeA7.Cj'7"j 36.975 + KmC3VL9Ut$_FU1t/6`%K.M,0-INH<si8A&Fi#WG;&cjmRg15V`SFs:"$"dcD_Ybs1Ho)tI/ 36.976 + pQ%Z;4G(nglf7:=jMNPcop^V2`olCmH%SG7'Z%n)7A?BNo2.A2nD@FI6YB?Hl&B&IK74C5T 36.977 + V)!Q%"sgiWOUiN,dl@Z+T'8gnHU2JicXHYJM?+YFB$d_C<e4+cH/!V-(_[>]toiDLe;8jke 36.978 + Bd_<L?3YS3Vam5>hAPg<Z?qob/F+BYnLA;sq.qlLbiIcP;l_&`#WSh+3$';/e=5*%u-WR>5 36.979 + djFE[e\2:fA/B5@W\3^@oG23&u19.ED[2N7<^9/p\n_7M[#(1?E[U8,;iUsrkp$kWA;=0Di 36.980 + UQ9('ZO*u(KR)J7UYmUTnf-:>"-G9gCK1A-!5FV*5n3X<+n;-Kn\Qt)s%7,JLV[P4`Be$j) 36.981 + >_=%;tRq.Z^ccd_8DjV*%Mj_GM^[>+4^=>f`42(U:p-XQkrK/Y+n1onglaYiNN9(dK<kS+9 36.982 + 2Z]%LE;k#%8#:;P\%b9*0Z@n5M)Vs,0>+&X_'c3?=/Nj:W<j)@%IM7bSK>e?#,kP!G(l'P, 36.983 + I820@+(%!g@@q$&ZOj_:V%%Q-+Mccm)*'b/$XVb9Ufl2<V<2g!6Y&pVZ)Ypj?eUbel1bo'W 36.984 + ^</hCr<J&n@[p/8:)jS]%9WT9g(JE<Hq0g"bn/*,\%gds-@IY2)<\G>Ma(+ZX*0sALQ-3b1 36.985 + )4]8r3M"K/oGS_cO%H1sC%WC8<j,Z.f5('sfCmJd[=2uMH_&aDq6b\<hq3^n%Gf"`EOZoAk 36.986 + :R/pkA5G]2kNf#ea%@JrLT'g\_Xbk.hHP>:$.u;%XfB?<FJ2\Mo?l;.&VFVoshi<)&c$)>= 36.987 + Q"A&$uD!0$/G/4?u_2'*U[@A/bb>n:W"m6?&_N$UX@$1CZ]jj?!l>nH;2k43dqUhD\0`DVm 36.988 + H*4:J;UmSfL)\\W)OfKb9:LE/]S&0i8enbL3K7a\QXJuX^G1uK3+@)42kP(V@8-/j6Oh`^1 36.989 + =ieTd=,eCr;b+g/]/Fo56r6*=.E.^F)7,'Xpo7Z-a:335s4&5Cco0#ljjSM/;oE><G7'3e8 36.990 + 'H_2Q<nX_iEaKY?:0;c'\b$O`Hd_$31JLe=;;VZuFT@7q<-9+]9#)nb^o&CI9."]0j:u,9e 36.991 + oNEXobTL&2#&7*OrI?G.P_F016;:R19?c<!Au"+AWpb0p4]8U>'?aCCKgGNZY`oijh#G8lY 36.992 + QoV`:Q2*g;T".)Nmtb%3nHa[fZE`3;91jGi%ZnOX&Cic!&09kID7W#'_G2K-Z%,&rtRWN43 36.993 + /$&@/E;TW/A\X!l.:a8emnJidP:Q>SdHA9fLpP@XJY;jCp>Am:U5q1S]d>`hJ!hpH7#Dk.C 36.994 + 6k'N]X&WJ(Sd[>tRm%!@ZFCE$UhO667qM(Ydl?Xro@,GNV4+B$Irk!A^nrO$[)>b`s/D$80 36.995 + /#p4"?9,F#f_Pi7mJEdH]5IMco=]'hk52o3r!*;?`7-\\'jURQM6ES7VY&i=g5dJURrF[XX 36.996 + B9i_goj^]b!3#7/cd3E!?EN&Oph4T5[po#aLEjFU?>S[o.:RZUahnTBZofl(?aLtrWe)7G^ 36.997 + _#uj*:PnPN@'"#&+d\]L.<(nRs!`jhVDVki9hb\c9q?#rb&m[tUHs#Q4NZ8-F-#n(T[CJ-U 36.998 + MsIXe9]qgSRcoDO/gkPP8kG6gDI3f%bAh<?npAE+RQG92i';F'n?1shDV;fGa04J]tiL_FZ 36.999 + R,eVJ-3'[cn&t/i?Q%LmErsD='h\Ms9B*cm($cH`+&n4Pc56p9WU!u/ZOS0b`pjiuc'LR\2 36.1000 + Fd]a:ob(E5kXNlpJN[W74CXI=MM6o0USf_A*`Eu!bS\J5LqlHtlsh/GhD63]313%%CK%JQs 36.1001 + ,47SQ@Mf%!rudLPVVZ5@s!'YOnM"0q#MUK'SDL+Sg0<;P9NNH95u[E"MInR+\[5Q3q?8@4L 36.1002 + i!M9Sh)[J::9%)*gX;0HcU4IT$D!:jU'-X"hN-D@OF_)!-REQ?(PZ96k5(-+(4LP0AB9On) 36.1003 + pN8BVlkmUJnhOY:<;g_I]9`!u6M/LEU&RZgK\N^81L$p`DY@ZG4tRD1Uh)!dB?'RUm'_`DE 36.1004 + 5aW@4MF;S.d/14]^Q]]@G7nDu]iP^&*;tb]:q>iip'a(+n(5!J2%fk[$#Ed7<"YU)M0F,ge 36.1005 + 3pdu@TSLHr>aQ8$O.6H7.R7qkR-c*X?BY@]:dKXI.uXSg`sn_?.VH)$@C4URdqWS:LWiXMU 36.1006 + DuIQg2Bf%bsSB39o#*E?Dsk=7B(Cc3!KHs4t:D;WcZa''/KtW#,'JG[<AP^!R*8f.>=W5b- 36.1007 + 0=;cTU<iG8r@!g!P-)>\fUGY*ISM=*jAoUcUE,BmM-,#b^#"qaj:k739E9Jrnt4))4H%`s+ 36.1008 + %:7E.3K!7k+-=`QbA/C=Y:(3IXK>.n)k'fr7I&t`,1dqW_=Be^>J,$Gpn6n3U^NjcsXe69" 36.1009 + ".a;2+f%R@Z1C7_H<M:*\MRHRNo5\_KbINrtk?RnXFAU]NJ2Al*,!,a3>HtbkWbs_g(aB.5 36.1010 + ,,VVaGfH5m1a;Bc(E']jl]JUI!!m6q^#gs+>C1]k.G40g[/U!\McaETFoSJMbeqs]LOsB^= 36.1011 + >6"TY$e=1DsJ](^m*soN:A#9/ij0.QV.itr'?-Y(*gbbQP0u.W1crGd"'6Lm)^%.E$!EH?J 36.1012 + (dnfY[\hST%gS=S2Wg66H>pGi^I`FFh])Zt/>ZmN"YSB4TeiPHopAb#qdoja=%n13!4NjqN 36.1013 + +kr3Mc2[URE_P]p#8&3InYg<>to1$8DV4Cp7'S:a<jAmFem-Z&6*KC%R[SDg+s./GuGR,[< 36.1014 + ]"e:>CYFfsP)ef0nUi_odd[F614MtiNYuWB*\()%!qB97)<J5("7EN(UUIaAk3%slF;33J[ 36.1015 + XD!j%)iZ8UP`#%0?IR]?RQ!n*rIM1r(;ndo(Lnj#'"N,NNOofe-fYEpj7Pc9EcG>m`KA'<m 36.1016 + kK>.>BQJEE\8?@&H`R@PeK-Ro(n.rV;7J"?Yk/L]Q]\5hOE,DDf\.K8)/s)Y>8e5%ABR=c8 36.1017 + -Kpo&Yob&KO-U*iidIh?[F2_?ZCCg20&Y>i";O37f,0S9L$6r^!g@&\=*%-0OOR5H#ON%3C 36.1018 + jm;8F(r6E]UBK([uW$8-9d`V2I"TGeCD60lmC%E[Wn-qOj\PW9BhSM6h4+HDNn-0fsEe 36.1019 + 2C)61NLQ.*[kqHN4D6[D7[ppOuLe*YQd29gio&\#NY)E87*\c`:l+P]\GCK$rH3j0N^%]9c 36.1020 + mFWk7c\(_C978r%VdHq3g<rksMB,hQ>_]GGUhBT>q/?T$<PZ0&*H</ebE^J&0;J02QdZcj# 36.1021 + Mf8BX7_4^_jd4o!]md9lODF%Gk7s44_\t.6];6Hn:g@FPEQ7O'Q3huG<ihXan_PfkBK3h8K 36.1022 + lF+qO^a?Bq7,Z0jfdphTp_!<pB6I1sm(pn==j_,O];&VU8pV2ZE7O)Ln)@U4i_kIt$E^I95 36.1023 + #"TD/@E]<+:_5en?=^aoQqq\5A9m5A1K&JLEKb3h9W?&)Yl'_tS;C@WbY35F7/#0[Sei$,u 36.1024 + G%>0Rk2nDD7_t$%7j?PgC6#7?'Hl,/-HRmdd]o%Q2H+bqrJg=#*\<)W+0ET*!T8k`L3=H2( 36.1025 + Ri[>a'gLIk6>S#9Hmh=?.4_INTHb445n?5+]KZsZ_+R]FF,IA'6(F?GJJ_"s3/`Hs2#sF1# 36.1026 + %TYR6le"P/1[d__ON\T]KAR*4[[p$+:<ffA&UY'`\rY3\>V24!,4LpQbCg2%H.8sqojR-?: 36.1027 + :0=_Fo3jn8,1n@gN8j#UD&/nFAuqK0u_(74_A+4B+aC<>ff=S1DN!Lr9Eq=XdTZ7B@RFK>k 36.1028 + >.8%9KU_($Y1E'utt,)t!lW:2=W4,tRZKe.a/,iE?ldqKeX1.I`+L1lPWpe/WJKE03!72rd 36.1029 + $P7GQ:ECV!h7kA^O3Bk@PAO="@$lO0n0m4!//KeL-4(r.p\F)+kB.it?+J]<(WM9sECIf?X 36.1030 + XLL.o*.nO/abHbN3;eC71,As@4NO"0Kp6>d3,Z6A,UHP_Ju"G?J-H8r&BPnPUb#D67$L8:P 36.1031 + t>5H8SIP/X;_QnGDIepN;Rt4ask!pc&Uch`n9T;@#Z/57AA.f#@sS44JY>P$7BmY+0484#U 36.1032 + )!+D%5!n3UBF#5d;TV>/1t?X+Z\YFKeCHYtH(B9.7YKKKq4No/gV08d&Be'O<>1(sA:tW:X 36.1033 + [4BM^d:o`SAg9Bh!187>0t8k^2=!'J.)(aVjIrAiM;7#2ONGlPWS;*&Kbb0[4/&-5"+Y=A= 36.1034 + F`sf:Jr6S.Hd7kUdb=$M=Bb8CugEm$X"O'=FKT8a2.B/,&T:ep'\4fW<Mn:ZoK:Lg]+?rU0 36.1035 + fa/q&/"Eff,ih]oj\B(C6'Th^j4Q`7]Ys#b`;&a-ZBP>7iJ9/n:@*KP;1L\(T$1T#c+$KW6 36.1036 + c#:_m>*8o:,L63AC""eq+mOW:TXFU,j3.!m`ps-69=PMTQQ>)`.Ct]L`eM#3T\C;Fq?@a8/ 36.1037 + Q+jn-dU%>J4,X:orW+FUU@epHR/H4/Dc#r=Dg8&Q'KVcc[*MfqH.]\&4'i67D]3kYtA,JZB 36.1038 + FA*_bLEn:?4?*=0:J::&LpW(G8O1=@)Q:-B3(O>P@M,uS"q;JddZI4/!Q.8l]d;QVHI]e!( 36.1039 + +/Q1CW;XH,8r@h.Z0iK)J;^jJR>r5D$O$!k-;f+HlI5k/b3E)J0;lr,[]G6?h<hL.Lc@d.a 36.1040 + 8\IllJPkq)Qi`=D)kY5$^]fE]*1D^J-m+6c(d>=n.8!:]V'=62OACin#dkpV`DBPD;,nW7< 36.1041 + @q-L4]GEU<E3=*<Gbf8eMI>5:5J!i<IJ(O]j+R^>uf]e;fh2]ANds/e&2[o)n]jmS4!o^Bn 36.1042 + I\iKH4\H/+u`]bCN@.Z03pn\DogC,hCYt!Bk?Obp-(#:Y"iQ="SJp4`jb"F]Vjl=)E._79J 36.1043 + *-NRb.Tf<'C$]mNo+I2/kkMZmM;m/9\=5VY@(9$dRj4O"nnncd!e#e\fG&11M=76Yj?(c8# 36.1044 + k4`FBJ\Q%Zcf,0Z?3%Mp)O]`]f=Y5h?4d9)DQ!%CY=`'L.I@+/sR9?)L=fn/r]pr6MSQXd? 36.1045 + =m_harLd='TirJ2=tQLQ4eu7UV-7+k$H78AOGqhjJq6q%>%Oa<]rYD^X]jP`>4&LsrNKK8P 36.1046 + h?4&Mff\8R1.>;\iF<08%<(@8Dm&V&=k[L*YMERPFfeXM[DhA"V_e6A<7HU8;AM.=Nq=Lm1 36.1047 + 39`O%4`.g4dR.D*s+2VqcNHg5pnG]uhs55p))H#rT'0Ct-GK'cUBXajF@T=X+bC:L.,Ia3` 36.1048 + [&C6'e$$I*r9!q"_U-mW*@jjsqQgg$:QD9UiEOPGYD>b/pjY^tTKi@DmlfBA?%r7!S%d56f 36.1049 + ](c*;]RD-:\+Fkt^"-AG;!*Fg&nM2(5[eV\l!k[:M&7+dW8Zh+3H[FTlJ_i9)?9j'J<VS)@ 36.1050 + k1o@e^;8tqKXBAELRZcI]uA\:&G-"F14n?e)sW8b+EAll*oNE:KanJ5!8>?+hDe?5&cD+T9 36.1051 + oU1\r_biR&UiSEc4i4.q$7`3>(uhR"oMe$\6n(1MUWP0>sCBP@[jdMe0+t4:eMHQSX[^W!X 36.1052 + 9kMAgBFe,c)Up4#Bp`3&?H2CP*TQd-]cK@"I3Y).M?/@9<M<D0]Q=(ujP,iLm]r9C4RdJCF 36.1053 + Ju^jt4UPR5.)#:U\\MSK[2]O)SXXU)SQL_qN"pu#QX;dTO+=C>BCXi+\_&sRPQj!I8Q^+Wt 36.1054 + "=lU.3jEcGg0XtQ(=4'243kQGlRt:lf(D)#,MS^&HZ1<U=mXU#8?*Gs8TG9l%F4TgoL_plg 36.1055 + ]'/$O&)tBU@b+1`q\s(*1l[BY`Wfp(F!Nnd8i85/-lu%iIHX]XJ\p/=M1-NX>k8<dPaf<R4 36.1056 + no6;OE"n>a5bs>eo3p2*51IZ&DZCdf^;1p?:LFU<Z^[Sk%MMBW/YH+s5k&!%?>)75%WocB4 36.1057 + e:sABk,`];S;[#@<h2eiQi38I28X21V'FJYn>EkZ?ulbX4?^b7'>9gnn^a_p='\doKcT#%& 36.1058 + -ge;m_'$Qu]g8<@K3%%=[+$8Dj$ON.^8MWn5pML`!'X:1LDSMoo-#UZ/MStHD+j_;MgC17) 36.1059 + (i94hNdqB5B-k<4W"7/#mP.<a&?Bhs*)b>TfYm;?m*!HR@pd8gi&*;=<krtILr;tkGR'tZe 36.1060 + C2iTVYf!Z'XU3sLCXPoBi="of=Z+#&C3I63`i*PDJn.O*C8S#/ri=ZEK;:u=NQrO-?E]B@( 36.1061 + 'UX>;b#&a?I/!KcYX`MD'mYI0%=_4`!2G^m69-=2V;kAfS0U8$p\8`*nTeFh/1Hmm:MB:Ks 36.1062 + s)0!!r#LD3!WChU65m_R*A(mV_'%Lj$Fu_X-.BDFWr/a_^CJm;@.pmSLc<B'sQnldJ3iDOM 36.1063 + @0(A)Gjea78Dmr%ZI?J5K``,C\.ms`aQnAK7JqX3kSCLm<XG'K=,-0tVnlo>AdVOJ-X!t5[ 36.1064 + 6b0[=/mfoT6#EZ\(NfM"mU*+8CfF@J3E9lQ%'@lGma/A@HiO6kZ(<bMDb`.En$!Rb@!!Ncr 36.1065 + @+!RBW`^r(6DZAk*<9.YK6Xsh(cr$/)Qd'VK[S\\Ii'ksYm`90nf$8KcR12L,4[rHX#gQ,B 36.1066 + ,>RAgMrPuEmk23\AFVG.]KTmN(5V%^F>76s%ffu&-6ON_#K;^@gRVfM"_7Is#Z.r3Jela9" 36.1067 + 9q>[gADA4bu$\_!mG-#&TIR4H5+(M'=-_e`4,K;K3c!CgN97509kf!97Ze%9Ro=$.s;[Zh! 36.1068 + $5ob*_b!5^E306)b&MjkW@pJW<'1lN@YFc)VAOMZ$V<NQRASX31GgBD_e_0)qhEJH(;cReW 36.1069 + _<V7_D.P\=>2_fJ*S+UI4G%c_U&GpNRqK$@dC3I>l#6Ggq$m2ZAMiO532aEh8F,2JkPFllT 36.1070 + G=IW++nUKboT5F"+%ddh&rAe/1ukRi5n$sode4m4"X[IK0GX@QKm5h:GYa(h?\\Ya`!/e8p 36.1071 + kOcPIuJW5Mh+u6/C;<=c.dL#Oa,37JR=9;&B&iIQ$Fa9L=4BV,;f\WQ2&ssH)I,:;YI.8cM 36.1072 + =*(H)YNOMOOA0Rs?ZR"[Ks#O.gkqLA?n$"\5D8+.DspM>49QqQHiBO,egB`-Tb-qA5@k:TJ 36.1073 + g1LAE>%p=/p3k;W,T:3<^lCS+*&Ybha6N=(3/i&HY[/te*KXp?Z^&,<.8fRi@,SKR/G$Zo& 36.1074 + L&&8GnSo^j7$Ps)!#+r?l[trpcMg?u](WHkJ^C#2'SZo)NGInjhEJc^#L_5N#pof%-%=D!> 36.1075 + S]%628'C.qR\a]*Hha4k8(TZ?XVMVFI7TW\^p80&b"\53GE@c3-ek#]Q2=[.IB]N'.GOe+f 36.1076 + 81;gLa]e3n4e=eSpe\a*uF!eG_1?(C3QNkGHi.KYC*,nIGFG\0!#8%!4f`M^]0i697@n@5D 36.1077 + "$Ejo7n/H3[CT"9&H+JjEekGXNkn$\h#Wd.i8`,nl/)@aTG=Ai1Nf7q9sB"GQj6OoQcUGra 36.1078 + ka,*kl5deSR9AM]cLB#^7WU3,mr9rHJ8`9L27Th44-=Ye-b8>\ut'_kBcTgGS,U:"/<*jk1 36.1079 + 7'5Q+O6))=gYYh+Ca+<g3AYrOc[47/"h/&lkXq9l0!i85g)CF(JV)#(a]YLX>b:VQ\N5f7> 36.1080 + M6)BJ!@Y\=WVGaJ%e2SYkB#=57X>`@_SW[iHqcp>PL<?C;#N#`OVPk\26r0mCLoqcl7<dP# 36.1081 + 7#qk#OuIq^./^!bN<kkh#;u?9@KalqV<45B=6L^GC/0G#D^'-VFlm]L\IYBl[F2/hZ%Mrqr 36.1082 + rT(r7&n[KR*Hg$\-J8&9\tHTe$?J:b3+Z)N9UU#/SZ6+UGq]RQOQ(Tr\h/6G]`P%`?Zk5nL 36.1083 + nI+i<fHE>27a`DKfFS..-gHPSjUMU%eA96/+N[jp@bK,:fj@!FMBdjg5.WY3\6W(dm3W@cP 36.1084 + -+W;Kh6KXh/C>oZ$8EhpNKZQeAC2D*b1=721Z+@UGTlQ</0;T$'Ng\*\bg<i,80m?T,ni(X 36.1085 + Tf/sYmX`Xh9_>efdo>il:J!W_QHdN7#+EhYX+5as.p@'Z9ksm8*h]ikR1`">&qZoTlLcWVd 36.1086 + O77*SPTNB%83r?b^WKf9I"/*d&QaL(ss\T(GIS/Z;FQGeV-2h7SnGh#Is1rQY>)RSZ%+NAL 36.1087 + jeHg:#hJDVNb@_!sOE6d50c:Li+,h,dh9q*'kF<?T%PicP2(Yabju5g[^i#$a+d!J'*/S2Y 36.1088 + lt:u2G1iE0D'L.%.[c\CF]Sg]<3f9RnT9o*'s/mm$FMc?B"_`5r8/GaKd+kV1EIq*.;GraI 36.1089 + ciYQ!Q'j;\3Tkd"PLePsd?VT[>p2-'A19+1m+o4N$6t?X:P_ccI3o-a/)7DqmBW31mVBjm$ 36.1090 + )6X#YEXJ[Z-pE-DPkH<FM_)IA,I)+l<lM?eR=:c4U"Yr0Wll.-0W.`/.`&[U/leBRM0qN*` 36.1091 + o0t3Z=3:YT..qRgq"eOW4+6/qE@\tepVXACY*d-6k<*"oj(p*GkK[UGlGJIQ1KVo&6j;$G? 36.1092 + s*OE8\4\%>8r>+,T!PR:eGlptfAFk[NgHmH2PKbbgs]>NS;hT_lS<bp;j0&*,#,Jf0el<^H 36.1093 + bE,Pcal@b>RWGbHhg@SEGAM#BWI,$RauAS=d<Wt?/d8Xh^KIB#$r^:1%7hoVR&`'sYS#Q4; 36.1094 + R=Uom0&@'"Do\5>J5pC8*n\FjGO9sAqE/b;j_6O^S^]XfaE#i?m`pu_>ld@)^,b5p1(Cd)! 36.1095 + 4XR<sU`F(o&#(=<Ls[3.4lUSH#d^+."7ac-&bP;uRH\aimF\UDAqXHj^d0(lgdHt;(ulbSG 36.1096 + O^+?7Te1Zf'Fq60.JkM(tS<$/('>Ggp3m-2[ThKpIelp*"_7p+@m^t!"[;81AM@eN`5\$jL 36.1097 + .R@f<@j#0b8u#kgL6$$pri-D,de0N_'jJ,fqm.ARq$r8V.C"V-FaeP(B$c.5jP)+97YE2G: 36.1098 + iR>:^oE6^*7I;A#d4e/S=+,&lJ)6`H&#j!6l<YmP);)5T1BUe2pF0T*g-qWJ_p;2UC%ai0$ 36.1099 + G^"oCbG0BR6bt6GHgmi"E87$I8)<>l!E@..gc?qWCk`Q\QEfUAISNSuX6XRJ<J<+ApR_hbo 36.1100 + #SK798f:gV.9o-uqb<]Y]q,q;C1(DA!1"qZNfuB?-fti*TO]g8ch]XGBULNLA6r]mg'LH/* 36.1101 + 3::tfRqWI3C)iIIOnHscpKfV5"I6G,kEL[<0nO[MA4F:<Bd?]':h"UHP)+8So(Wqf".aV<c 36.1102 + XC]/P\jI3MQ,SA+`I$<g4mlSdb+j<PGsS\`s/B]lC3u8puo70,k:5?W>$!WlmFi73B1nTHk 36.1103 + FC96(5t.7kq^!q`3c.W@ip,s\DL^66?rfh*^h3j;"qahiB\:$JIeZGe]j&aLBKi)M.cG)a, 36.1104 + f>"rfZh6`6Ob/)Q=D#/"fU4lX2e!A0UDl*,)W5P.#=*p1=C100&f.@P;)khB#oi.O1^ktjc 36.1105 + \Q8"[orIE*PV6V<=X*fVSMsI=+n>E?LD[`Af=(G1iSZX!j3+Q`*k*a0Upi#10>FaDG)]A"H 36.1106 + nU$3(deTAb(l0\Y>,NnFl\cWBZknhrPcX^>q[''G$cB9,8[J<PK8UbL@+4CB#V;?@4<4RBr 36.1107 + RICP1E)7]DmcUFgJR?Eu7`*=cD^5/@_'W+2:ufO0$>[_YFQ`iG2e_Z4.j%\5G<ADujuuG#^ 36.1108 + j&1mD8CXFmg2P@iCMLV\".LkmiF.>AhrigTV-abA<KQXG[+WjR$]Ml!K'L@>h&`Aq#Mjdd9 36.1109 + q5TUO.l_c]L(ub*Nhde@UUIsFeX%,\.b\J("fO,*r(et*^0nN7PjN\YK:`UN!7?SA.dPT9A 36.1110 + g^A:k9Y!2=<%%`6;COnqh%A0Qm[Xt2Bpg__9$''nR)/o!Y6buTY_oro>EU8fF'6oC;B3)B. 36.1111 + fHQTXG"$m1L'7*>H2\Oe8@?D?s0V6PB&i^DOZ0?@3S(<j!I[HRYQ,-r3/c`f'thkZ&J&G(e 36.1112 + (7b-A9sii:"AG7l,:1,$E!9<P#`3@]eM5&SCOOZlp6,oO+cu%u_23#!?u[LX@anqrlSD^(F 36.1113 + El``Woul!5qY[*G.-<R6;;Sn(Of*pM@f:R#BQ\[D/)k6\YRBUEE7W<hA,\9iF-93,Ro/8^9 36.1114 + Ofcm,4!c+:7q&Yj83/("mA^gB.&s7G&k]KEC97"3TJ649(FhN:SYo_UA=S&)FNlj=PQWiZ; 36.1115 + G@'\M"kVWt0]^V'G:a;;i5qkf,hpqf*8^\6;lL_gh6*De:D-'?/tX=M,D?Z?]+sqZ-I6gq5 36.1116 + -S_<jS^5Rj*Z&=BV[@!\J!`gBSY42X]HFO<g_?>EJSpJF@^\XA*3<Ff^KDadQ:kGZEdE9Cd 36.1117 + *JeINI7QHTo@$%WcPCYJGUm!2O*<<`A]=cdkKCI^=LDWk36Xee4qLrXr$#LcJB(6jrHLiZI 36.1118 + rAYAa8^e)p>?1&PDc&H7a1peT&qNq=F^cBh3%qIu>d.!G?()C'//!"TYB_L24")#Q&>eUjZ 36.1119 + J:\9"3X=<Em,fMVB@MJC7(aA-,c=PYeM84,R^u?i^ibQX-:+l`hC*E%@XJ?9bcW&;Mo$Pes 36.1120 + >Au&9E.i5WC?:LojmSA$mk"ajRNX>1h+5Ql9;JHo`-^f2J#)'IA9e;HLtlp)mg=*k#[6Qr. 36.1121 + ^?4P+H;unNgf=PK#@q(l"*sj8IXKj#2(CU.utV;08a]PAq@tQ4:p?L"N!iA&5I3.KL-+X^m 36.1122 + `J$o%=Tm"-A8G7VrVeb43`S$fVg,`qp8*'b-2e+jiIsL2>dB,l]=H!H=SE65ot;,o'lp#_i 36.1123 + tH&I/<q+R)`2$j%^P0Ad)?8g@j0]5U^kL"suC>4\BeoAh#8+heoSA2t6l$#uUWiG'.5?Q-c 36.1124 + l#7`6hB8dZ-edZVm)A0OiAcEMk,93aA!0&DTcYV^],3BH))Xs:)%t=p_JJ(`<!%rU4DMH*1 36.1125 + .Q4/_/J#`5Y979#P_:2TDIUuk_UNI?G9Mg#Z!t5)anXA[%f#QR$*bs,WZ;L`:>]nr0_.($U 36.1126 + ?)f%fY?u:kNPl!P!gF'859bA-*g@W0K/m3>0LI+,Xe1KYfcsmnG1DR+i*kf`(9drIih!%,S 36.1127 + G)5$54\J;LIql.<-FUJdWde!%ZKp+7`th5oD0c>Ur][gksJo1#jgI>$FnG+7]IhWuB5:!:K 36.1128 + =M/+NC__&+Z',aPOI+V?XKNmo5(Uc0X=0]P:]!Y#S.kTG_`kjmU$KP_dUAJ`3@(_BU(EJDc 36.1129 + a*>m'EcV>asOUa,S)DLZm0k&urb8N%?"V%Lh8&Tm5_UU'/"AHgO0^peEX"I)p<Y(Bt+7ihl 36.1130 + ;e%22D&Xf2)enIe5u0(b)#g6Q1P%DAdm4co"@SFQ'*>g*1C#?1T/mUTkQ(E8d6JnrXtd1'3 36.1131 + cYZ?On0SHaQKY:0>eqe!nBAPd-[$4$Na*",In*$^?)P;e'Lf@&QKlm.\G0.[dni)E!.<qe7 36.1132 + 6\I+_quM1;P)i:)ktk0JCcqO?bCMF"4M`bd-=Ei^-.obVKE/+d<Bidq&<>2J6KE6c2JZ@UV 36.1133 + X22+-J&2l-X-8l[._m_lJ1ISZ:1F2fE26ngGh7hg43;#Fnad7>K&7<68T_i0@("[@!./BES 36.1134 + bo!C.#'1kM4-W@9=jc9KhQOtDd!qUb*K*+[h#qE9#+On^9;'Q_$j"]OL1+j3u:H#iV0_<aM 36.1135 + Xu),,_V%<Y(=iRR9acb,[#S%IRPYW]kEQ9JCAM')+=S$:H*_sXdt4-4W%^'0HD8kc@_kjD+ 36.1136 + Y'jK7P<dakj_?C#ub>)fi/$kPQaBr7Q0p45\l9KoLLr_l9Q*P#q\3SFIsK#qO*GC7b(Wp:Y 36.1137 + /Q"dOS9G/[2W(oM&H(O$\HR2PeR)P$]h.q`H[E+EQHM'?_Y0TNKaS-3WKgF5nclNZjUA1kN 36.1138 + Y%d*XR75<U/I&5:G*Q),Z+Ip>n'>a"8T`+q20nQTZ\%2IJKe9;<Wh-crm.^R\:Pfi'Pd9e\ 36.1139 + %1UYn3cos1=O\6H<&XFske_a[WeQO5I[?8aZd`5FO<D#$g&J5!cPd=7%90e=@_bf;@@K]B' 36.1140 + 8?p+]YA!qL.0S@I0K5m2Z0(CR7/[mq#+F+e$rjV.e,<"+q%$?+:$Jsa&VDiYM)**j"k,73$ 36.1141 + JnC:``')sO7^U2FZLXgL/s3Tl[hnmK]`n?;#h<9-qP7,[an,Qg+1GJD@KlRVg202^J]p=AM 36.1142 + >l2oY4<O`G=P'.JCX`Q!u.C%NpaEk^jdU@%(0*Qll%H/ogVVQ=Lp\@rAS6860"Eo:&%?-ZX 36.1143 + D]F2`\_<$`s<dqk*(/]52$`!oc[h)nBg5?:D[Fa\I29d:I$GSc!W6:#.KLB4hZ*[gAf2J7- 36.1144 + +*htCb+mit?m:fpMROD,h+@iYS`B7o+jD=1'n$`l2=#3iW?6Eqk<Y.c9/$iu3,kFi6(q-[d 36.1145 + nWL$:D0i5pEFK2k<U/bq..6=:Y&^d:6'#]Bq)m2aHmcgTp]YgX#qK\IDkmt`l)Aqp\Uf>3I 36.1146 + b/$P=41p8M^l/>HU>D!!XNQH[3/NW'2]bG[=_J%R=l]PKQ_idE63YXhg^;,G$l&.U`gcQF* 36.1147 + Q"YGF3iTMALs`Ko"BBLf]Lk%gdLnY'jE-FCIBd;0ZdjHm#k?';>nhQ"X(6`IO]CHu@@U2o/ 36.1148 + 4r1HWKjq_n0B=4YYUgJ1H,16*:EPjK>&n>\3UFb2I-=Ge8'WImfh`2qcp/[L<mBeblTEk!> 36.1149 + !:K!cDSg'QlBWn6S'+i'k[0]sGEqm>!l5PFRXtS%\KlpLp/\-dae5uFZagD1:3-0jc+,@@l 36.1150 + oU(8s!Z]dTWKqgJQOoXC6mu>LGF.!4Qf5E@=`RtRRi9BX6'_p+`a8QqY_A5Er%:aaXdLBAO 36.1151 + ,Gs>\2a'pGhCsLh"*AdiT\@b%eq;%k3fI=Roob6&+P&!)0@bCJdi"k/Idi!fpNOr,+6NmGZ 36.1152 + `]<U7t,4._.:)R1";IY*\*C=d@`aVS@lH4-bniG1C[_:1KZN6'b\).l&D_,B82o0r*Gdn<n 36.1153 + GdH+B^S^R3DU;UR:H)$sOZ3Z\@'9Obd\.BT$LYei#25uM=iDo2]PBk=I9<VeclqFDe@0hur 36.1154 + OC?HIM2",3pV(fA1')%TJ%=t'MR@nk1FBYq[7D"[bki:p\V)#/nNGKd7SrsudkIP`4<Fmd` 36.1155 + -(qj,R90ujiWZGff'Sp7-@-aS\9W8o.AX$cUA8aZ\ppp\$a@jWUdQN-RgrVJ:J,*,X\0b=+ 36.1156 + t$=Rrl+P94F'd4)XIG@X<_bLHkAf3"R7FgC9T`</K5HKg5V+.Xc@\FXm[%n(gEQBZ`\AkF? 36.1157 + 6J2]'rpM]7P/UZ5)qFKmBbgj^@PF[^m9bq`$$[_7":*$B0;cS!Y`e/"PFT6e_2t'mHpA\$. 36.1158 + l2PLJ9u]>qRR&P7hC8]3]u>KTB=*D,>:A"`XZG;N'reZ'Rl+M&j%/T$f[:Un;sZ*2'OgZOn 36.1159 + befj\GS,/8TlGB\CAKKMpWm$="qes#Ib(mTWSuS'i(I6[njhL9sPZsuX4%HhB%B^9:\SOo@ 36.1160 + )%\nL[9##&]o1@Or+!a:CW=KfYp:NN+]ZRQHcMhVa;f*.K;aS]cZn%b^NS#Ck0[eiZbk3*$ 36.1161 + QDIU40="4otKgG7UkV2p7%eh%CK]pC7!h<0Nij,l$eMcn_u^V3O*9;FeG6TbFAl\LjC/\ef 36.1162 + H!I)r0o.4RaEng`=PraT)?%SCb:kho*A:R[VRARr,bVn\gX:`4Zi&*(E%VllACBcWp)`6,4 36.1163 + HZ\"[m$a@`;KI7)MT9@V8g]]tQk4\i"]h0<gsb+.B5]0u%t#hB^-JLiPi<o]F]4O)LUp0:7 36.1164 + 8>eD5a;2shR_,Ta/$Iopd3[>Tem/-H/H54C=T?2M\V49!bJpl2f5?55?,oA;8IC6O'O.Sa- 36.1165 + frH?^4Xn5`?ekSpdYR"MrO/gk8)B,uI4o"o$AapPoA8c)a$'EnI9hX,gRt%2*u=5V![.Qr$ 36.1166 + n'IN5l%852hBV5'&a+lFFB@C4;b3hTr::/s,hH$a<atliL:am[TqYM*>dX>i5YaZ5og?6*G 36.1167 + %mS2C)BhO.>=Z&BCp0C!c=XN$r0(h=ceukMMc.ic/&VhHHL\&)Y;i[tr#\UEQ$hR%@UcWAU 36.1168 + Z0Ff[>9D2E]J#10ojXh/9fBH]F\+k/o0I%+s3.hnRq-1q20rH$BcB6\kT+WFS;*63LP>SnO 36.1169 + ]&K_,E?N_Gm$?dGUXp2k/#/`Jc(*Sk6Bc_]W4WE,R*S.r+kru6>ijkn'H"e?8f=e6Q[mTQV 36.1170 + <S,n7f:M6P@M"XV[NGJl\Gj]aZK8<KFkC!]YJ!5RSrr5=Om.?PRV0n.U4,UaX2',B\qrgr? 36.1171 + YfECU[&tj<8s>AQ\Xo=CELG3+9HhAs%Ou+ULs'QH'P`'S2tOuH1i$u+fsMpAmd-n`t4f4JO 36.1172 + .3>>,/TW*M<?fAA7OUqcOb?>UDc;G_#i;OB=$M&H@GNiK2]64s:Mp7,_XsZl03%NC>(Sf^s 36.1173 + VY+d#=VP#tY;;&Fp7jc5aN3Y:do9[Ao*F/C0<BM,/"`m"E&3[W58;lHLl$R)<3.9*lA3^HC 36.1174 + =;eZkZ[9g+@X]FbQg@]otZEZ\mQ<?S0(GV4)j]8mNSu$4lbTRY!mEQkQP$Xl(H5SV@AO]JM 36.1175 + 2Yf]^&Nu")EKr$eb4,nW:N)@H,c^l6L?.L).SN2OR%`I_Qg,i+"f-rWnI0eE:Ffi+D"a>KK 36.1176 + e<LQg@"^)h=NLA8@.d[S6e,q\7t&(VEBl_5G?KhFS_P1?O#?;][S4=*nPnX,O\,SE*aWAdH 36.1177 + U=MrLV`Q5N+(<r;GMYr_bIdk/*uEYOYZ4(U(1N!]^E8%]L:a<!rmrW:81?1XM=lN^!sC,/H 36.1178 + T>oDD<>.)Z1K]Vm'\X/7SX2%;p1Zoe=ClJoni7PU(9R&Wm'XFE_flumhJZ1NMea(OaZIlGW 36.1179 + qR"W/oY]uEX6#:(URmtdr'np\(XX]f/5uAMqCHDJ06;/"?f$#]:1lb$7K=Ht:87^M3c48R/ 36.1180 + 0$^f0W`f`2KWcoP,(`Al%21LAR\S=.:I238/E8W<1hn<M1UKcN'd@X/-Oh<J'el1R8,Q.QY 36.1181 + (q]s9H^^B+&>Z);?#LM;8$%5/'uI:7Fj?'m,\[36/c&"[Io#W,P@E(eNHo+f/d"l;C,hY8c 36.1182 + $P4fliXYC/3***r/!cX;t'eKOR(S+KPIME][)X9*E(T/_7*_[N-&O25qdA_+Y2F-J$\2$om 36.1183 + jPO:;9;U[ATfXs['-m%c#1'EZ@OM7O(LWtoR*MDqf@E.LLke:er7&ep0H8B;^8rOoLARZ5< 36.1184 + 7@AmoR^ebc4Af5lms':t3b,I&h>8`7F#X[-n,8:OY,bt.''r.Dnp62@Q33Jkk'd9MkR-$Gk 36.1185 + C9(t-@\ghH8N*uHW-R'CStUI*c)2eR1];u'KBC4[[:qtZ[\0'->*iq^VK&:r)C9[)D(5m*H 36.1186 + I3$/ekL%\2AEIUM1"HNC(MChN)fe@Dos3T-SNaq[EWp@oK=![M)[F5h6Wfg:J#&88=gF<op 36.1187 + qF^W*8o9QeFL0H3n&TN4LaIG<QWeF58/bLZE_E=-r%nR(AF',a'K7NlUqo5pEe9-amW6^A# 36.1188 + ;_5.N^/-Uq6F>F4WcSnmKe^N\RMlMjZqX8X3Mn,+[5ap[G50)FNO$D%2Y-U,Wj/-CG7,i:& 36.1189 + X`hSDWC*eiBK/[dFlpu/n=Xl.:Q?Eb4$i9cI"]<@&ec(50$g]'4+iP,Cf*.!4q,0X(_&2l< 36.1190 + ]\F`Z+OGN95IKoMQ5V$";$J0_2f(qoS%+8f^"4gV:*u].Q[#>Y"[%%%'k4OOMZf%&Woc'.S 36.1191 + t"8#_sT6(kH=Mb)ri'eQ'F,Fk0-u(:5^jH3CbhIr1?V8I^.<a8%!gW!!E1\KmkV9Lhe,6>Q 36.1192 + o]J*^`K-r.#2d+sRRH1Eu!*"sN=O,t_H2VLkDF<?XdXBOVrIL]g,g&r9FtAl+Ws5:)2T,=! 36.1193 + rC7S>]G&P+`KQAZqi8H8aE--EZR,pFe]q2$h<1;Ju^)F+oP^-?*9@[[mk*O6KD)@.m/6-l, 36.1194 + \^:<,Vj4pf-'#&9,3:+k]UJm\(V!lSH>ik#<bFM7=Q4g/i4B95@JBe4C:UV\?a>:LSV+Eqo 36.1195 + _A#_k$]7=bk_p6e;Lb,$Z(EdoGY4[&6_4So6H/m'aAMqL"6/eoO8o8!P(5nkN=^jk%ZXDB@ 36.1196 + ^HOa-!A,t8P*qg5DUlkT9SGX94A8]-W@'gFQi!`&lgXN'h>5<,d0n.q%lURbt#\:WDtsP). 36.1197 + $"f,:o^.`lRU/UO>ajF0\G>"1:-m[-4TVUodZG0ft4b(cPHp$^A/,>`Vj?,uh%Z=0r2ZJ-C 36.1198 + (Z'J,>"qBI:W2%1pU&;aKPJROC6E?\$a^Y&Z4W@Un\+VIV4dXhj=LiSt-[PWhC82<^Uc(;, 36.1199 + )V#o,_#u@Hl]3(<5d^PU1C6!F),8D-O>J#/8l<sge"Fat-$E$lK)EjOOS;Y*R["Du@?&d4* 36.1200 + hVC8l88C&,XVY%*7lfI*X-K1tO>cKsqXG^S<TCat(>)]eR;#4jTHKIF<*NN@@EAYo:c(_%> 36.1201 + (S`rCq1R`f7dn'b=Fp1o`_dc9aDQIkX4K,ik7<>j''5!CSr32Uj*<)h[Ah)N\.a`f'<iU4@ 36.1202 + o&qr-u>sNi42WMc?R:6Us"?ji3dYK._Q6\heOCj1=W#k;uedR0E<?g>cJ/<Ii.[f(+o<fog 36.1203 + Aq*cY:;pF'e56*Q!A_6sRYbJjXMR"LI5o?P/eH@nI^I=ArqV_$J5:QtBi,f5pPFZ?0Va[qJ 36.1204 + @+LgMmQ2Em5E>EoJ)?j@)H\+bm=T"U$73Ki;@l87rf>aa*)o"GKTX;)Ea3j'Cl*]-*/!A_. 36.1205 + C)9Va9U8!55,6I>"#\ss;A4*D1aH8*.HQP$7j+(56:?/^Q7H@2WF[0ae*AW%%>QpN7[q[RC 36.1206 + 3pk/!BVkKa!;PpJnP%U[<Ah)d$UVkBR-15nU8N(<F>f$Mk*p(`8')D*.AELn2#`2NSW@,GE 36.1207 + ,OR0V?XY]/uoi%In0bGE223,"tS'/Nm:=[&`(QB2XgbS&0.dZBo3\[,tDSWnU"Niqu6?CP4 36.1208 + R:XBB&b(!hhNDF^/+0+PpI-6uQ4!ksbO/Z#W@flDZj["&A1k+(V*'qM[n?BZ=<M#_uf9OSg 36.1209 + J%ZdY>4uL'6c2tAPh;Zt>-1OLl:"uHb.!*o1O-/EaB%RG-iUf>&G,G30e`5r5Z%PKGFj1*B 36.1210 + ?jmRi:'#l"_(r)skLCdY[qll+b-q`Y*&kW<Xs'2'QQ"mJ)i8T^*O.K"Lub-mg+#GgCN!YAi 36.1211 + gse]pcE?8Xm;D8hJe8ADK4mR2lEIi+WG9tRF!u26E8a"-="i]<r-Em\m@&37lH^rhm/$jVL 36.1212 + &5a^:W"o%qC).iuhX2J;1c[$17]2Y4k-FN-HpH_j"NX&`3WI^>5gY\Sp:89\[Y%hi[G6Dj% 36.1213 + ]@(&*U*(r6'=NHq]FH[e9;\"7p&CN9`MI1t$F;uAlod5gHN#OrrqlU<iR7QN9Z[hEd:ZZA: 36.1214 + I[^D%N+B..3WWYCcTtg*k3odCrJX=)4Z5TI?]/o4BfI"E"SN_tB4/9Cm$e;l3UUm5G53l._ 36.1215 + )VZir_nSa'0FJ;Tqo6'#n\5b15Io=D&;%`#XM<c0TaD#adb$"b2ScYVZEk!+b3?[he<M7/^ 36.1216 + _?bmUb'CsPX$]O4`MOM9&m]kU9Tp8Z(p$^/).)iVnqF<VYd@0WTFjBN'^b[4tI8W"0k-:ZT 36.1217 + $%`6eI#YlkV[9(I"f'5.[FU3m`^o0o2VE[M2=c9I.,Y*'^eOM!ODd6W_,E$Gaj*`:5e!gJB 36.1218 + ><h7j=MLf25\S0CC@O/>RP7)HZ)g:9>?PsjZ^6NgW5")(%MX2%+[6VD@)C?7g(84.q4#H2_ 36.1219 + L5h?,!Bh"2+#"W:+6rKb,$pV<+7+>(rPRkJb5p+!pKUcc`XE-"qDo3P1^76"RZb)a.egK-K 36.1220 + />Ps-Zs^"/$o11N7d,TG;t:84MA7Bc^I1.S4B]EU;i'sA2L)@@C\J)38A@e2`(S%i6N5#e! 36.1221 + &'Rb7DS\m1M&'\<e(="^>*):oTZ]k@DF]&_c,4-;3XOac9\I"_o-C6ZlP@CEC9pAa\a\4e1 36.1222 + AX\F$?B:6'@p'fDn&CT83>lb$qXrb_&=IK+R"5]1B@;>cA!5p^+8\$TmOg["$-gL)^Vl#]" 36.1223 + #gKW,Dg`3g/59&Mm*Ya7iU]WXC*/Ej>VlAlrj+33`GVrV*Gkop@S_9=1A#IMC6LpOs7,re: 36.1224 + sa[Em;K+^a`P=@&j7QX&VA(aG9dL<,c)e5rNC(Lb<OeID8+cs"'UgC,WI[i^,$S73lJ\@N+ 36.1225 + 8@lqaaP;J<1lRqaR@rm(YV;N>CaZu]oV!^",&$0f!rYH-d>.YNMHI\hJ<!4]VTJJOO)3m\X 36.1226 + O^,(s3?#Db\HOf)48PtGeo9I.MBK[e=Xm*lRGJZ8F2#+Ef(/3OrJL?6`f'37'eRdKMS:0`N 36.1227 + Y(SkqJ4Y^JB*/1W";A,*Y;Cp*rbO&Y-t,ZIfj"P<mF5ct*TfV$K5#".lSN[e.d&":$tTEO: 36.1228 + SGN,t'pjR7nN;pFi#c]j'?>7M<'LPV2oPf2ZZ^lM:u6-oIf(_%EZLp,+BWR6VY'ZCss%-aC 36.1229 + SlHm?9dMjc9/?D`3=K^0CR=+PCFPEr$H7)CBbuA(H>pcK.:!r;N$TXk'1Ji_beASkZ%!iYF 36.1230 + XT-7Ta%spa:"X,Rkc#P07N?B;#jfur;16]rk"=:G+HVIZ41-A%^&pX20MOV7C6;C_0df[#& 36.1231 + X<e<m):u28'HYp<2EBkPtWeE1X*0n`^C$%U^,9raXCgs.!Wb5.#4c7OpikjLP$!CqnZ9HT# 36.1232 + dVM:(k^[N$'Rb_C;!o:!FZ6RZ*+BNNYIX(A(HD//;#]oT#J&b+aYI!/8teo2YRJdSd6rAPc 36.1233 + 9Gc.1WdLfJ;J,eg<Z.f`R#&8Xkg&q3agGc'ugb$<oMeTs*\1tP`U,\9U\NDWdI!`\iDfJ7R 36.1234 + $&<=+\%ok_Mbh:C$PXNK@;i$?;KohD#`3<,1rm=PuYf.M7j[k8=Ut.r<b92SAOJ1$oL:B:% 36.1235 + ei8Uk=RB.r7+hGf#pjMf2/q2-kh2MeLkV;MU?YfkG7\>1=k[@eSYN%'@G-U.dV@2soq`u5J 36.1236 + .Q[Hg9<Zm`N7e7>MA2<&7pIIort4QKS\`Dbe,g\%91^p#YCdkYJ\)3m%hCTL"FD$b"[6;]s 36.1237 + osP*)iMc0D1qCj<)83'A0i"<j7\?a>=73S/I<W>7fe!3l0<o7P:g:a+Z(j.Hj[ka.qalgu: 36.1238 + K!-&l&U@p9N\=cLb%`N!313a2d<h/XZC+GsA\;c*[.\iaQ89[6]b4KklMgl2D57)iAO;F3G 36.1239 + LYi)Uq^nojJFktjO32OV\'QRK(hVJ.Dg(ZurHq)_9/MTX2hO6I[p$\Z5K?,&->pZ_ReP9Ha 36.1240 + 5i#H5U93#(FnhPFfSJn:fO`de6.sdfRF*nSb8#q4fhC5h^>Ku.PpD2jV;EtC`OOt#g2Q63X 36.1241 + =.42MI(s$^.%i*"pi(($.iJL8gV[;h9<LN$mV&,i?Bc"NP8a_UZ"r]UXf(sEWfa((u_19?_ 36.1242 + t&jba20)ZsBoiT%J')rZIg>-!OYTRYD7WFT\Zc!meJ\5GdASXp0uQHf0/3@R]ln=Et.5:4U 36.1243 + \#@cf=Qk[fE$6Xcpqik9_B._,``21o3giqQB%5SQgIo4'6qiAN`k%?Y,$aOq=k+BB=hnb;" 36.1244 + 65ia)'iP!oQb[XqU*ad"A&j9?XAc:H8k8R*#JnrOtjDJAdZ,/+@ff<[)hBihp1Z;A$f,dOq 36.1245 + 77^)EULc1WA%l"*L02gB5\6):j;qLd_)p^;M;P_Iaai4.H:64qo]29n?hE>XKf*2DWT-Yq? 36.1246 + qpc57VEQQp<rp#?0.Yi4hAtJ>is%*jPFP.>mob+DB;PSk9b956igkrFIa1Ok@Sq!AmL4@ft 36.1247 + ^WqNNQ[4VI>NT@\"8D6>_2(hJhE&.63t/gSnf)r?0(FBFe]QAJTM"reG)tL/2E$\NgLTTF0 36.1248 + o&NG-KIk;J-1#*?9rFgeH4kr+R+p313dQ&_/U#^1McHj1&PCPGARl*d)G\:!PgnR=*L<G$' 36.1249 + dSr$k*M;iE(0Pl9V"BK-IjD"mVAEILg@kqe:E9>u&BX$`Ui-0q6;$NsrBg.OWW&b+_3bmSM 36.1250 + #,$*nTa$5_EJ>6glW\]Km]Yj,l%D$,"?s#E=F19TP&&-]lMeAJ3/E1E=p!isB[2V'(:%]CZ 36.1251 + g118kl.OIL<-Y1Oq'[WlJA]12R)KgZKu22CM(%k@63c#\neaeCY$48f"^OZ_/(IBlpf7d?F 36.1252 + 1BKQ#)c?NTQQ5DO=khHWsM*;'qnGY^[8KHj=n?mO$t3.s6WcCun]JLik@`d"g4BULs-BaL/ 36.1253 + fuW/0X8DUGRoj62\<#ifTam&'9"in!/X54]#BlL,d,=4XF4GZP*r=)E,un$]H:!=%p.NpGn 36.1254 + 6#5DG>8F(3Hk_<Je#%k(-n6?8I"R?!gL1#i+Y-;`f_1Lgm&8oPU[g_cU/P-"JaUmb+QMPO7 36.1255 + #jC.COCnTMVZ-&a!045s%Y"_&7fVsas6sq/E/,%q`sH\!$?3DVO?tB]%h8(AM`k*%.Xb2Qm 36.1256 + =rj6g)i-X6^ulf-?%]WLJ*$)LJ57e%e=9ir(F8G%",^Er/q>[^C0tA0L0`M<E]ebE6U"5jW 36.1257 + :Dd.X8[.p2btBlDBHqj$Jbi`beO>LDY:A(l)q:&FakhCMo*sG`Qi`kk&!<#E,a"rtYnV`9R 36.1258 + @mLQ<DEcjGSQ'a;V$lfeIia!(*l;:'4kWUC@XO$7Kr^iTN@Li5TJT0eWO\*XC0#j4[;Ip<I 36.1259 + B96?3!M'ko6^Ir[gYOp\bE+^0_q#Tl\;KcH1D8:lQCs'GGR;uOknn^<9pF'W\D2<'0OHfk' 36.1260 + $M`LZE-$k/G7(cLD.(,h8Bio/;jO9<LH>!dD'WaSY,:pXI]#l"p^T3tCB%>*-X@3PJIXlLm 36.1261 + 5DZHk1&k6ZA>E1#QJ<"#8$P0HtF1,ppZ1S.;VQ`Q0fp1n%XAn+,:=ZOU`akDnfh=k.^-\L' 36.1262 + XE,G_V4QQXt15@<)m;H*T#B/^7VkOEQL8)#%c:O!ZnlYJ[8"G:8;I!PX1Sd;l'N;bnu3U\` 36.1263 + J2;k-_m=XSV'<7r*W44D9Ie(m4aJH>McE[Oq8/t]E>T(hj$c&P#O(oOhPpUC\$<GMgBM"d8 36.1264 + "cHc6(*/LM!ESeQWR9a?YS,=YNV9[3mkIDB^`=:_E%Bm?Vhn'0_]E#.K#a^<np98M4JpEfZ 36.1265 + q6.\a"cE-$&]6I9-?_gjYFo17LV:0kG1Y*M:U>J$Tm,[^n]tVNa+&7?Y&R6k!3_UmO3I,He 36.1266 + VI9>Bg@IQ2b`ofM=e7[KW&O:Y0?li9(5X7IP8D@<lTR=r+ic0NNW\+GWH-)?i[CTM!qftG? 36.1267 + 4MtY\[)Hn`s(tVL8?7q>[0>Hq23T^YXCadf&&rLmW]RhTi@*:b)Ti^Yr#!A1?O6Gel_O,Wd 36.1268 + .[$].>\d@dR!)'"`-jA@oWH9Dd`XrH\[X$%sV$Hl>QV8OQ@0SQnTD+LZJ3B^e1fMZH1(6&b 36.1269 + U/IR[cUB'OKL/Uj0.S4ZS(m2b:n>XAI`q",JR]7dt8R0tN2]_;.h6r9=\,\-_4.?`IDS0:o 36.1270 + =1dSfrI;UjE*,4L(Cc/<@W>M_AiC`kaC/Bm4/Q!IQbU;A:Yb"%4T!K=F3i(jpGDljl>d!OA 36.1271 + lJa^fP7ZD`hQB^$3b;@4,0JD26u.ZG[*E[(QHJrEd:a*8CVFdh/c&u^8G&7fBd[-?+\:8]r 36.1272 + np-cQ'K[EmCi(1E?nFjQWX?RRF$<%s2mBbcFB#;9CH-r2cR6/+3GPDu_Am'M5qH"@.e(&B2 36.1273 + <GikBE2Ya`kD/ZS*>%3s%n\H\jDlPqb"NrnCaSdsg]'uc;O>o1KmN+EmHOfWC=`t?K;#KMg 36.1274 + CQQNksF>!2>0H*FT4pbHSQ+i+0m.J+I,PqR2&(CaTb,L%8L<E40Z@bed9HoV9E2p_t__<pr 36.1275 + !i)b@4YMDl',n@pYqQ0i(ie'u4jT>YrBJX@Zr&nI9Zo?>ZcCT27C4Ws:I)0Z@!L9]!GlN)2 36.1276 + U0.4hD`r<4\rLb[7*sBNHINc]2"VL"ZfXP?!#SlN*brm1a=^9:%0oKPV7k]d%dU5@[sAjDq 36.1277 + 0*,6]+$iX2rW8X!B*SF`rR,;duc"W+^!0WkGCd&ITk&3f@IA;_#7fUW>cNM^Z"@7r0Er^#6 36.1278 + oKK1tYH<`dQ=IG^CYrI<`B%L%E^Z/?]G8/9"mQs+-^HAGYf2;AP=<[,nN=Qq]jA5,_9R]7f 36.1279 + ;Jk]r*fZ^(Pg?KA5[G-j-]YiM8e\n1eLc*Edj/Oue&D`3j-Ac&BA`]1PCQ(tM@%'iUV<OFb 36.1280 + ?U;W[.f@c&XUQ(91^tHIV]iF4.+lP(`E(eRXo>l;`q:t7[FEr#glk`;drAFUql]=u]%*Wnn 36.1281 + [bo_WA#lK]%Z_JfW'e!c&&lVV]n]qToJ)8b+W0R$<IqW-60USqP8L['oArj/mF38CW@QOk+ 36.1282 + Jd<N_PO&l[,paa(<rtSZcnbpDqLiK4+gcXhRSdPS(_^Hm_I_nE:rLJ_dtJ%F6HY4LrQ^r2# 36.1283 + t-H&N9"KW+h/p#n+N!gV.^<Ypk,H:S!6eabk=O#g%i7s4Y,T<IVtl44)p^?UqKpskU+UJ]$ 36.1284 + F]!^QJV,Y"5Chdsr5Bn1Ni.8^^-LFhRkT^8h_e<s_79c=)-LmI3/hO8OM)&NSn.mP@+`CJ> 36.1285 + 1*iaoRD^dg_RPU_'*S/4WVeJD@#cDi(9UH_2I,]IJ!,S;a9(EL.PEd[6fX!gd5(KL0hs2e= 36.1286 + KN=t`*#O3nB.O#I!-Y/6>tr)&J_fH6)%=,@cSFB&EY+YO*\s)OM2_MG>f'C`,gr8aMYp47h 36.1287 + ^[U5\LT=oL)6/P+8UF>)k/5a7@f$?\:j$nS1Zf=Y/q^af^,)nc"Tu7VGL.Sq(FH\%lJ;!ZM 36.1288 + OTDGX39aa%/Bh:**!0NqRO=_ruRg\QQ#E\N[K%%O#M/S3usWk&fX0jbe-N9RcYP$!J](mI] 36.1289 + <:20)cVkZ,.'J(BNc1OQ6N?[F6_2N@X(G->kJVg0p6thl7],>NKkCiAs;pK\>(q<iqngp-' 36.1290 + _I,@ui('Y1<g_tu@h?bJRcCLKRL_;GT;ee2BO#nX-6@")=h*a0<>(g8)/%/P2`]>tl'qrI8 36.1291 + =g(J4_[>6V+5,kR;$hNjQWKtFO!`$`jXWu0lrTcc*9mLaJW`X6"#?3HB1pD(BW\gWAPf8$B 36.1292 + \7<:3*CQPmXNF+f$DPX\,QZoJ2/#CG'/J01DpYnuhco;,CfX6Nek];0fht(+Nad<).5V(Y` 36.1293 + 4=]\%@li5:c2O@%bCrH-P0ZCdk<8=4CAO4/uE<jNk^%g5e1[SFtJ>:jFQSG+XWjVZQ8QW]W 36.1294 + r7]eR+,"NIc>-09nXqQ,l;5C<MlfE>Y`Yog[3p^9jnHPYp"eM'T@-G\*(9n&*`KLV<A#Uo[ 36.1295 + V"S9[>hbc=WG-I<FMU>5=ZoJ*)gJ8,b+5:WHNbkr%Cu4m4V7_T!l.XQ&#&]q*;NZ8mj7Ko6 36.1296 + L6B1"]cuN^_j-8IL\<TB/86s7YhlceO]PiC$d&O@WDO\gH6Ejk&(_a[a^AiUB`R19]_d&`5 36.1297 + 7[m;Yd95K<b]ma^6SnM=F%a`Cdkh(FqLqkl^&t(_+p<fP!RH"`:Ns0*>Vq[;7O>Y/g7b$U^ 36.1298 + G9@W99BQr1l\A5`ScZ;Dhr=G4LqP:L\D?<PHK?Kdt!`*R/9rd[u#e%eOICLB53Vin(L5g6^ 36.1299 + ,cFrAR(TR0jR:P+7VJsjO;Yja7=+2gN1oqD&s!(bskfH6oI$GhN4_b?k1-B[,,nf-*MFTO@ 36.1300 + ]mJ1>,q>8Z.>LHJ\Na-%_dYDPM0%OQeQT.WC=;j75R&mgff4KFJg$kqV$,2N]F*m#JV:<A! 36.1301 + @rIq$KXVKVon//Y;S0[Qd(V"a[W"L7?#4I@d019G1kVE-SC`9VI$(c1k4n)R[S';:,>;9bu 36.1302 + ]6M._/clpOS1H<;>6]9A<FPcLKd])a</+o7#5lrC7]&\>AEAP6rPM[!*U!m+m:M$AG7sGY_ 36.1303 + meSMFWXrM\3#<5VR>*N<[_Oe(7qP&al'aletoek"/E!C7P+!$<lt>gJiEY&$V<.:hAri1f_ 36.1304 + D%>&C<(M*CEd<#:6@5`S\0DoIU(Z(Bb3;13D4'9)95#Kl,_E$AD")m<0X!d!/qojDU;Jq19 36.1305 + RT-Yn;`V2gDZ6usatE;QS(g#))rJAVLNt-!pHS-F"b.iLKfJ-<%4-)J8G+0=*,fYf\:c,0$ 36.1306 + dOO3ZVBeNAn,3E7i^dTp-D7/fO);K'^/!_;\r/*hRuFYoj4bMntm%?HmKg^lSJqSYUJALpQ 36.1307 + m.I4GERkalGJm*%;q&K6tHSm^;E'0RY=/(]QQ1EUM-JVB=0M^8P;Fa/o/FCrl:`\m@<&M/) 36.1308 + ):Z.!mDG0PL%7Q6]P$IN)TIt-l-,BRgj+nRn;R.2-5Hi8H?pA_>ss6p0kcj9\+$NFQ41P6Y 36.1309 + h!Se^B%0>r'!Y>kD@HJP\a>+q&*5Tl$:cSS24T]'Y*C811+ljUD_#pnh"V;q$%Rr0]qB$n) 36.1310 + "7T:p:hUfap`AD^1!f:f0PVV:TGe7$]k;F,6$O3,i;O:D(P<(uYYPJ-B*Bso"b]c.U&$SWT 36.1311 + *k(&W.F4gd'X5mTaU?!!?q=@E#T23bl;,6*'qLu+mL'Kd1#N\"7Y"b&4m#O:_fXR#S$^Y,\ 36.1312 + GD=Us%eS=JB>NJc7k#M%G93@Vc,Y.%(ZcK%"UVas>sjc&BZZ32<RBARW+\Dh,^.7ha4%0df 36.1313 + HBcCF`?Y!'\J_1EAD-bqG)8hP$WqiPG*EG62a<qXPJ3ACX_d0UB-$MLZ@i(4d*6FRP#C@Wr 36.1314 + iFWu/FVc+61MF5cN6Ao[p/<&eF*>EFVj)I790i0G6<>*>5N39$kb"V*JD&i)m09<dX!o3]* 36.1315 + `ZJb-r2n9BmF%n.e7gD$'e@ZRD<UAFd(I79cB7oEdJG&%i%^p3#_7aSEZ$"!<mRNbck79?O 36.1316 + sj==S.U;h1!@<UE]G58bS[%21"#S;Y3-'_=!CN_,-k,kdP*E&dMu.V-7Mt8!H&\5*@?>U-; 36.1317 + mhfOoR5B"XS2?-XfCGi(c$NC'm5&-W3Mai2%VJo-[64i"'ce7Xh+FXp^9t.qaBlU5^[@&BV 36.1318 + 1@d4^<\O]re7R#H(.q2r*>P.]t;0cGZ;g/>"%YDgCp6H"si*A[:@EqqA`$Pro3.^IAMiKbH 36.1319 + ,QQ]9>0d/P3DL.EM<@d-n(Bg'Vd_ROAMUq@<KHViY/8m4`2&`V]_=KuJZJ*uQ/2&d?0QQCJ 36.1320 + UCd:_mi9dS2DY(KDZni*^,,2p*_sm"Nm?HUdV4k7-o.$PEdBI'Ij];lJto1u&ecF0KfSSS+ 36.1321 + p/u7'9P<g=X,.1,BKtK?kjpW68>g!3j.*Q+TN&\K0#3[+EB+s!uWEVdlJ+]-Ltq8o>N\a(H 36.1322 + D$M]b6)KUEM(Mo-H/[.DRYc5ro*U2_%[X3eQjR&],0Zn1TP//u@!A:Q%)m*u`#)4RIqSY7` 36.1323 + !H-9Ul&EM?\bMB=EK:,%nW6IAFX@bjE2d4do2/J0Hd;-lZ]o/9Qf7l5?Adf;G9(5tZ6-<)$ 36.1324 + >FAdI;Y=Pjn7>F\k'K.C>3Zn!!(">QqoL:-K9(PnR0D(AYnK9L7UIG<T4S35>1L0f6G>.I, 36.1325 + 2MDSK9<TB#68XYC2eLA6$bC%N_a!^:*\.m`bL]Mtd3.He3O20f^_-Yk.68-<1%WdSOs`D51 36.1326 + u5PW3YT1P8t@=q/chU`*4'%E[21r'8Q!AE4k1cU_f7jb)^c?u,r=mB;t3h-#=!6g.2>bJPQ 36.1327 + NseT0%UI$m<GR%g,N2lNRC\4-XI[&S"nmNEGk8jOANZ-Z)rf\P0Ci=d>fDPgjGhDb\Ku:(G 36.1328 + ?qZ0Jr`mU1V$)W@h:_&<ona^!B>>kQWQ2;)7Mh-G0\>bUp7!Uqh[ar!Eu?5<-=[J*ubr#4N 36.1329 + \'I+e@5u8:2qd6%;&&A)J?r."-M@e_W@.hY]iG'.'+rVUO&p>R.ei-s0cl"!i0u=,8Fus&s 36.1330 + 9k0Jb!jF:3[DQ6m:LN-$&])g36'SCX0k46kB/WV"G!BL^)BU-`*`bpHG)'>kk5M+pB_I?s< 36.1331 + ek"(l7o^8?T+<eG)9J,gbHXT'u=0iG,o8!ZF$AIB(icC!C@m)'j$:12RTE"_,Y?FT5F&P't 36.1332 + *:?j-*SfMf!Y-D`76uop9T/hATGq#Zh-f_)6,jKj"WNDq>]RFfKqVY3[dZgonstFh7N-IrS 36.1333 + s5;ZI^?2`Med4`_E)7kaQT^t!P#f6$aR0i7ekf%"miQ3[.l/mouKG=i<1NHX??DU`TIf6MS 36.1334 + LI"F9RGNP%u(Pj\d$3;9SGr@,fUIT:naLP<GGZU]@[i1Hs+#c,)*b-*N7pua8<DJgoH=HLN 36.1335 + GK;CE3ILQ$)HXn+A!:=drH;7S',TbYK(jD)]cEI'?Qj-5AP$=':_6_/<eDW@=1s)C%=n3bG 36.1336 + @Z#XY?ui,oN$JGJgB[b3%,7r/U]*?H0h_\3$!XM[<emQ9od#R'6Gug\=L,:4*SM]pcKt?[t 36.1337 + WjI!4ZPTfP-&LCbXEI'`^CPAa>*1M13a\Ii*Q0"%i[*N,<e`!)W4l!C)FEn/c'OJ=)+LGc? 36.1338 + RqQZtKk;olUgQ+R:/@M-H&N&+[j9s92:Z]+'_KED"I;fRJWZVEk*K^M9_,IN5Mcll'5&#AO 36.1339 + lGkl<Gmu#]Y#l+X>91t-9%>D<BqtU.d@)nD>\3(RgL#BBU=XeX"8M9C+GBk!gGr_(_NJeZ: 36.1340 + 7lE+8Goeiqp]+]ePp&qg@I9>Ss)AoDQ6sq;=0*Lr7nr<T1)U?+fm/ppH^1;k7@<J&iD#]:e 36.1341 + i["]Q<2%;JWp3RS1]'i#iXI*GlNmcKpb>;M4m.uVUP]N]FObRK*(S#=g=L-c&.oTSE+&qg" 36.1342 + DjK8mofQ%&&<FH'0Sd@@^Qj?[6@=3H&+^EpUf\Kp\q[3XLr,Xe>0'#<DBt3@l9Ag`6C6U*+ 36.1343 + $AH5hh=X`^?UFE8+jH9%b34eqj>UcLr?H:apD9r.V_V)hVQH<I)U?)@C+VE/"1J7kG+h1C/ 36.1344 + 4&fPj43d<'`ae=$3W&K3s,#)q4T;GeSWB-<DHC:bDSZ2IZW]H?#H>T.%)63Gd)k+1+fZ<?e 36.1345 + '<#*M;Ao0]=P6mp,?n=9Bt9"Y)A@rf*X@#MFS(Qo25cU1l3n4\*5WMc3B<hnTm\u&YWE#mH 36.1346 + O6pg%C#^AYr`]*HPs*#(PY0^$/6^?HRL_^J$,7qZSe/LJiqU'*OGW/Zo^^`HV(TV9sjbs!' 36.1347 + =2`!-T#;?'lMuZWgs0qSk+lh/X?)bk$0&g'*Gn6+?[F"Ik&`>D]e1cWC12\K^4)^`XF4SWl 36.1348 + 25./O%Q)l^E\Xh+D7]0!F-?qn8C!"`68+^6V0gW@+5e$FWFZeMt&HeH*Eh7`^EYlHGkGUs= 36.1349 + YIMr8([QDaKA6$(4\$l%9XV\?[Rb*VtOpO2O!dk_Vg\CYu6]'e<(*"WAJ7FN]cajVfD'GYT 36.1350 + _9&&!4i@1``&pK,HqD8h9uQs,`B7/>Hs+G$?,c_M`]RhPHtgS[\$P!'`uo`LGA\87TtGala 36.1351 + ?5.Cqp6L:hoP_2aZPj1I$r*hS]Uf'aulNB5eY=P5QI=Y"['2<H7C)MouMNr3?.lGquMf4"c 36.1352 + `eX^prjSi8:c/EWGo9'`>h+>80&j,L6(C"2*Zd)l(\gL_AMEYkoTBf&LXWo>hpMd6/2iI#H 36.1353 + B^(WX,u[6Ocuh'`qb/WesdbP`I1@i<L"U!1&e:,TSkGe9/j0@]qF[6Y8PI5lg@l8Y3>_*B> 36.1354 + "@*dE7c-O(,1'"`6HNFDBI?]'>7[Yt&feqAENS*PQJSFY*]oXsdC_9kQ"F[,Yn*+Ng!Rk>D 36.1355 + gEQC@_N31arR>%oTK+tJh8uq4)@U0ngIH!R`*OBGh"S9Q%3=QcJUQ,I1=2TA0c>KCSbR&HF 36.1356 + p#Y$>X>MII1b@#%H-J&dCp/F>?G`dAcc+^a1BaRqRZP@c/F++gOcW1]5`i/8).6+F2?&,!0 36.1357 + -'Q1#iH?h1SfHIT_onZfV*FW#]m>!r<TPCei]e!LiEmIX!]Z#M=$)fY2(`IY`2S($MBK^?" 36.1358 + [e)^Ga@g(dm%1**Xa*Y%.84u6@=XSMlTSjAR5*UES5Gk-XnqIg68c/el&<ZY4/=%3N<gb)t 36.1359 + dmQ#jESaR*c1$p/ZDLTW_1Ct7LrPAi4kS.loT(2<b$u+RZnG_2M!p?GNmLhR**@W/kZX9d5 36.1360 + &)CQn./l6B5.>R'8TNKN3P]F$^a&KbT:B7@C#7E&+cl;s,po=(O4kE4Io7GuiXm8Pjs-qb^ 36.1361 + MESYHr_=&m3.nmH,'pMCD.qXl@4<2h_HJ4b8ri1gb.!=.Zb%++-b^:q`ZD'AcPTBHi*d&%0 36.1362 + KiGT?6uhH8\/f,%)q!*c)N4\"(3Iqh.uDTB6'elpi.Mro9"6?hMKiRNN.9'Fk!EI_jp'Qdd 36.1363 + W*$%>1tYZLH,.2@b0it7[.DE/_u8)ki9&->EL(<PVMR8g=l/XK,m',d%[Bf1jC-PBS3O97X 36.1364 + &:WcWPXUYQtUJ7^%RT1u.9rCqT'cN?4W>M2VlP5K^2Rr"T<$Fog&73I)?s2d'RoQWED7<!) 36.1365 + 2]C*'l#41>mh_JDmeKX8hs4&H(&&#g_dW'PS5q9\NQ5Q")'"r<.@#gDo+c:PD_7O+BCm&f/ 36.1366 + rm<VdqEkBSQ;psXk.3):CE`E?P8/^T6m-Y3[#-fdj.<']UW3@j)OH9^/\DCbtW9=cT[K[W! 36.1367 + Vc?q](XJDn4]"<VbmZo;4(lo,g+1H242'de>@X&3#*b_qt9=l5(6HbjkK.5O\aH^PscP#6; 36.1368 + R/6k]_iE+Bmm61BL@bQ7(Z3=*Lk`#d<jXXd0U_smjs&O^?6@f@\`Z4M\u:"g6:TWoGfiM@, 36.1369 + 3C;q03_QHMOBZOg.,b]U;@`WPrM^(W.$%!sE:Kjo2am)]b.3tXHWc-&N4L39t;*;6>9C-0o 36.1370 + !hL&.b;2i`7+4"fF(/tm_P172HHp!$lT7kggtOtK&DT<TcZB<m5u;939WYCXlY;%r&Q0W>7 36.1371 + Hg71)(0;J#tlQl]e\`#@i[Uj'f?,;9".?BUJk(`78h.IjuTY7<U*NT/(SD_qcd'#_J(W!mA 36.1372 + 4l2:fA"4f[ogCMdol_7?]URl.\-VZnsPC6s3QbRm*l)2#h=FG3-<]=t74`73C#j)VuV(oP7 36.1373 + $r<3<i"#1nQ`PaD-;@s\6C_9[O8fB)j[]P>$f-Dk[Cju_MiRGNL^3+V/thpsr7Bihg!.g4K 36.1374 + S`T<"fGih)KA,-00Ag^W#;/dn,(.4*clG^)pAbh'iMWF$Q;O59YAK;Rm#aAah,]ohrR7P?3 36.1375 + MNo,!6@&XC^e:Uhi49u)2QKE;/ZU.iVR',D)O1J_>WAUmYqe;UYDm@F7anb^HXf:&Uq&!BG 36.1376 + j\t"laq&Q%eI-^=^nS$DgVcl2WfiKCmJ]C`)qHCk`1'&h.\d$_+^Yk.W+b?+"hEN#+m9h6! 36.1377 + C!nM%nbg3R\6s7mAcpq*r9PFm>"0Sa?<1CYO%2`n@hsRu_XJ-G/Pe^\@^TMXBni-Oc:1&RQ 36.1378 + 9m>s*ReG&gnEeKl$85kqI.-'u6t/\"@7nGqGhF7X^m6T]h!M20#0QCia6K"kYd5LsG[GO,2 36.1379 + OrK;<l^UO:E?k`]2%dX0WfEhOa#s*<M-3lg,hXUXKasBh;ILs@5MaugS6k2JF0%_:?cPlp9 36.1380 + :m@N1#Z+aD6n9OUhA7Z_6OZUdpJp3,QB"LT^&VRf8jOS=6hk2D?b;#A0a6H!dRsQ!1eW[f2 36.1381 + CB;S%0@`#[t/(U#/rR,(.c@VJqU!/6%TlO)<-d)-OHH9=L:Sia]B2H[I9\qZO$rmoIXfgH\ 36.1382 + sfP6k.S=C([=-&\#>&P&aAFjVW%C.1cWX;!O1*r9Zm2P7_>HH\hlg,tU*O-=kUlMC;Y&\-T 36.1383 + *+,.sP4O:!U3,!Q6jd1'`+2DQ!J-S/-eZ^-aG`PLI5#ULo%4><FA&bt:/%Y8g>o+Vp5E_?b 36.1384 + X7([oGl8FN?<=$b-AjF:b:!IfA(ron9+EM@AbemR/+IoC#%*D1m#qn;O<9p*7N_Z\Og=2r) 36.1385 + !0hQEHTC=cU.KI,H.',2'_N$)b\XeU;r!GF''p/X:^`tMi'Irh+[M[32'f*&?P-dX0;FXjH 36.1386 + K;Iq&l9`B727&A8Skpfan85.<9Kf/Wg?W[@&<%70k:sCHIGK*aCiXD;.K9i;t;"Ib+/Q8;c 36.1387 + L_48#]6S*=+7e_E&5%3CBfFCmWM;X&6g$9,caj("IC<ea[KYC71'O;0K4Hg0%:R4_q0b[0T 36.1388 + \lgq0Pk*j.BND:>o4\S:_%W%tl^b7Q*R//5Okmn(U?MT5V@=aM0t1c8D)$"Q:9PE$C2Tplo 36.1389 + %)Tp8]O>O>(1f:GX_&08\KFE63HRrU+/EBol!0S'Y>Q>s*BhXhigKT#DC+Fnj[O!A'=e^#R 36.1390 + Nt"m8Q-F/MRujX#`;?I>rXC:Z@pu&/8Z*4c2Fc-h,6q3l!Yd%*%-t`M?qJucpMc:K>L?L?& 36.1391 + U(R(V.<:CRRp,*n@ha(g0VD]IW*VX[qd>e>4Q3KmKHZ>EX(Nl7Bp,Oh@!$//XtPIRYr56Ne 36.1392 + =f5>hr"YChVKJ\:s3-&L$b%6p;h0(mbFgOm.a8m+\f(W&ir9:0VXOaeMd.SWqoFHuZjn0GP 36.1393 + AWiuEW3EY0h:Wtub@EbB>.'JL`9_'YAYR/ZM36ct4G#86WHKPl3)BCVDSfScdL:Jj>26LQ] 36.1394 + 39[H@<0KI:WL@l/L(^b>G=jE0L2O;!fZ"+;E.9Z'P><I5OCK>Z+RMPj4<HFe+.59.;QA^m< 36.1395 + 23!LJm!osL6YUWWQ0r&ZEB$R?@73=X1BfG%=EMF2&T!-ZXs"lJ@>bF$@6_i\j+jFr*=VmdX 36.1396 + ,;(G<@@)[eT,<+M>dXd=RcH&m<,^X<Gp1k'4D*)LeJ/ffd0^%S_7*1V7'^b4'HD)l--MPE1 36.1397 + F,]3*Lp^lo%EGWK/'h["41Li,Dr`gfZnSHVEui_I^*n(?&JI&FJ[U[Gn,8=uRIc*X_XVA0J 36.1398 + \b#D[9ogTsj$$'7SdQISlW7nHCj^oqnZD6>&'9`En,fKamFV\c9*+rSm0_!o(BRqI[>CZ^p 36.1399 + V!Efs?28nAr<s1gd?,nck6SCe/4Vj0;/S367IfiU@<1h\>(/)5XB^-RA@o+eCep>hKi^sTX 36.1400 + ohr"eH$jZc,cVb5%C:X(D@5]X[)I&P5sI4!IH`.eQI9)!<\fMq;#q3B'JZUQaCfBe&H$J^E 36.1401 + *;0j7uJS.A&gHg-qRTdKI,G/95_$ge9_nIo0$7pE8N,.I1uMDWX$`[D`&Go9=)ue*1b`rdY 36.1402 + BMNa7Oi1]CuV1agjn$\iG)Sd]Lpt2PH`3A.",'AS`H05U<S*fe79\[IV?#do=4Qq&_<Tp2r 36.1403 + =>,<f7?HBZ,,ToYlDT9o./01rF_!?D&KHhP(362CPC:\P!=\RiANQVj?LSXk_@%iEe$*!$' 36.1404 + 3!\?<J5Wee)3(UhgWrQ*(&tped$j;CPmhRGJM4=sH"7e^I%RB9?5=o+qbKd^*Qba9d5E$+= 36.1405 + 8=.)iNk`2G3E+eLg3C6NX0=;/P,Ke!W(A3FI]R4+_,1`@3i`7N+rGDE#c%fn,SNHonMk#DV 36.1406 + P>6M4=NUbAAJ:O6<K+3_ph"ej$?'_6M`9m&MCHF/@dfj];&1_@rj?@?+p^!%bW"[.=2)Q.7 36.1407 + 4+=JeU=*+KZg6-c>6^KK)jt$Sqt==@=Z$4gZK"r%/4c7@l=F_mDs&M*8_\<CCXmWa%.t/2' 36.1408 + DU0L94([feKKRclua1T+IW$G1*a3)IRsV&pf^"4UF4"ATL.%E5D37C]CNb[!<2[mWm^7*)1 36.1409 + B\`-#)=iN"&&j/c$9M7hTO?%rS]2?=)A7NKH:Hu(8[-RWYi<VNV?+@gX6dWrB81d=O#m^:% 36.1410 + #/WGkR-bi[GfKYcJ1Pq*e+puT&B8+I7M4Ot,]uW4ILpm;\0QD,g57s7E2JGp'm$`(9MNRo% 36.1411 + S!N8`k-3#9Jeb4$qB;eQn&u*XB,N=N_!R0[t&&1EiX_4Op0'n5id5X]RYj7Hm1[#]jrP4oU 36.1412 + /:<s$uk(2.0,"bah>PABF&V6u7F2e5V8"qmXJqPOt;09SWo71;2H[73aJ*QmYLnP/Ed&b"0 36.1413 + lI#Z=5*X["!>%rc5K9U*JsQ,(>D^sn^Co@D(&[S(;a8[-1V=M7+:l\`<6#m@i53Y]^ufunI 36.1414 + ?bE.XuFGWF)1;T2bL1J4bE(hM'gkD9=9CU+CFKPr&),-uLbe,1D*+_c)KM:A'8(>US%+,K* 36.1415 + \3#'m.7BfPo-TMS0oo_,YT!QtP\;*PBh]Po9E9uE'Ac?6hoK5P"o;_[:pUNtgC.hXba9_P9 36.1416 + BO&ibt%sM$?VT)bg9*9l;":j9dms)^q7Y)?\p>-Lr:2<,bn(tffNEl::%f4d#(QIVp$\ia4 36.1417 + thjiMH_\qE@%6$qkpJFHJSV28te5c>0<%;lNS*oM1qRcohL=I-_8,LJ1,A:jO)d,h1+aQHo 36.1418 + q1Jnml4TiNSpJM94W`f0N99;PE\JiPV^c.r%cN.rF)>!+KiSD`K4>nII[L]Bj_2C"[oFWEq 36.1419 + '!#2g(M!Z:T]`V-&,#ThU:g$'2r,5$?JNs8;aB^#KjUqh2S3ncubTdJ.o'*pMIMbU7;Yut: 36.1420 + jQ4gGW.st$2BeqIkZ:6E*g@rnLtt"\XWc.>3`Du8;F*QHM".?imYN+RbIRr,Kf_/7.>Ra-/ 36.1421 + *)Q'N;(GVL'@s\!Q@S6D+R\DWl-;f.^62Y]UjjOIT()U$&(ChrD?F_4B35_e.kn<D*lQ[7# 36.1422 + I6e"#X1\NEFN2`^mJ)c2/&,$=uiC</Hu4ebH6I%:N0hDb0Os<To[t%:iLEd8_c1#h;mTHPk 36.1423 + :;h$qM-<G8>2,=+nW`)X1?L"1,C/TD(G4'%H2;s42^eTD+>G"JN?f.`1b<HqT8L/rGC#T[U 36.1424 + 1])5U&EYN7B#Ljead%o7B-n$&mdc?h6qAhs#<`dY60(>$UoncdeXB0h*#T\1m]o>F6HWSaF 36.1425 + f\5+^j>,?`%9O1;=<s892(^MqKLq?ULW'PP!1(U&%F:\4=Z&sR3Jjq^R0`bMg$PFtoo@Y;O 36.1426 + 4jrPfb$]rF_jt"_ceoA5!2i!%-#pINEQ4X>.a@Z*I:m@X=ISP/)3t@bV[DCKA,_!63XAk]r 36.1427 + P@#[QA?.=.QKuC7JK+.lgV"&7oc<=@EEb70F038EIV@otXfQ_-AS-gc`MZ5\:6dAhTNtLJ> 36.1428 + Zk:!$Y"b$7BVLCe_9&?#f#FbZI0gmuVo%FA>sHjASW$@lH<#[Z<bem0$AKFgf]J4p<;:^3: 36.1429 + `?%(L6Fi4H&D,XQ9>M[$Le^<3t_1j(Q"sBiLJ:%TUia-K\>fFqpIEl*jiER,IL$N#K9nuqY 36.1430 + \R+T`gO4<NNUJRFe(NHH=6Z6CeLXGV/\$$;K[:<]W(I&lq-TuohlZf`^&;<Gra3qL"Sc\ap 36.1431 + o"D$Fp>AS?p4JH7K24>rJ!RY#!f*j?u1O/"^nJ;?sX7KW-F*=G`%#;L+kpO[LD*.&HVB"Ja 36.1432 + fXj?rhkk&RfPi?e@1=eCP%epYUuIi>rtH:e6=S8;_q;LQHN7Fr]JSs'U!U$@W:hVBTB=%tk 36.1433 + tig!R$,iZhi.ceddRik''b!Sl\.cX.G=.$_@[2>&`d'[>roiN=>6:(,ta!=F8W?oB=j*][T 36.1434 + 1,@HN<j&S2!^('#aVrDSVA,Z5^2A?La'k(]6j9>NkNZ!_/1h8d?@)a5GkbmD=+QRu>A#9Lk 36.1435 + [O#FL-K9:Kbs9/Ni-0q6;$Nsr?r/lg!'4[>;$N\9L7lYC&93F>qW3fI%/qjeYX=.16f7BUL 36.1436 + U(iTAm^=!s(0hMLr_1PTIsXg<97FbATh/ap+'VOC,EXV$:[m(-<"JF<FocUAWBpTY$'l+$] 36.1437 + E#7AbKL<DIMZ[?=lZ<AnGrCITML-04q5/gAGbQIAOD)Q+&hdjDI*D%KBpM!T5S'jL+gDXs@ 36.1438 + MkKP2,!j5(;T#(u+L6"*M'kair.:oWX_N+'FkiV"C-mXXLtVd`CEAF!<'d&#RV=(Fd1%%^^ 36.1439 + [k$`tZDhZ2CMr'hZFiB)Hs(S-2$#ZABp77#bM<7>]B#r*VRg'"gB*=kfL&(7RL8X<sWbS-+ 36.1440 + C6kr9Y,m="C5!e0lFsB9%^9^iXQojqLF?VhJ9(sgF)*,-CG*,4I]<VAGZH5jL1kZ5DRXE<\ 36.1441 + Ei:W#Io2;^.iD:_JAS@KNMdg=K1RtVee9%CbD`&k-#,R4bae:m"W`"NU,n2[VUIh#*;S<?> 36.1442 + GChQ>(McN0]uiesYd*Ru>kIMe8OEm[EDFRd(X-C*n\mY+o_sd7p&69rT?\^jCq5C2PBY"%M 36.1443 + ;<7cWo3k&+MgDF)I5Gc-9mAI!tQmV_-(cKoH*l_o>_$@qIJ7dKLam;F?67=]4@=@rf.o5AO 36.1444 + ;ms&RT&93Sp3.m$&mrn,;L?jnT@#B!ELXuBB%fL92*!_TmB>fVR7Aa$gH<sEm#C(V,T*XqA 36.1445 + $#m'TE5)_KcO4^=I#$`_ML#_ek6u=e&of!,E7Y\WfRAV.W,UsJnNRZV7i?<-$Ab40$;SAA^ 36.1446 + DLtJ)=cX/LQHoQ0W>;EI0ZAdE^(W7d!CJukmEIVE^q$gL!nd:Vhg.XnqSc:89aT*((,O-E2 36.1447 + Dc+<g5G\PmOm4B4+*fTSmF-Q>.8YA[ZSi\;tKO[r\4MA)70%BU.^ss(HqAD,/W8`W]rkaD+ 36.1448 + WWj=ZR'(6&Zf7,s;Z@s3KAcA(R+VWg$2BQ+=Mn>?Ae?j!T%iPpc9-B%N1N8^(^hhP"defJK 36.1449 + W3+J%%"dglY&BpGT:CG3!hqhja:l=jUhXb^-o7d#%Y`JC[[WWdno>U\"d$8\7LZ%=M@).\B 36.1450 + %mfALa60E-E%'k&a)(J%!VY,_p?-@<%rc_7DMB9C#B6U^+EM`SEH_A+GAh_M@)6mIVf,(KG 36.1451 + JA@ra)KT@?j`:(#&ep7%t+-h>QWh95-V"3:gSA_Gk`Y0+^Vc<fPlV\L3TnWG3E+`W-*&Bo& 36.1452 + >Z#fbuP`<dn4iHXb$+@)k"/^G:YKF5Pk\&9hUl=."n@<bFo$l'>^ap/VI^R-G.Zl"<?+8gM 36.1453 + Sa9QWd&@uj'9O&Y)Q7uDIKqHb.`TVch?9OpXf$?&[]pS6c8:l:=/HEKd7:.B@rXl1%VoS6K 36.1454 + +(K^9fASi9Nq/-+VGm=)3Wr&HhH*.&;+HL/@rV>**q<lu4rSEKgCCku3Ge]"2:ORFGF:*M? 36.1455 + GdkY>7r7peW->_mI)!aVa*r7%-MRhiI"uZc2hVO!Kma3PpO@u0c\_TZbkGb/pt7t&6r;IJo 36.1456 + tsgZ_e5.eB9V6IPdEB7M5Rrrs5<N]Ef8ORhr^O:s.<Z\Du9RoLtCJ?StgT>A(KC\HN0pNYH 36.1457 + \Fam,MCPok3^Na/KDQWdbKfG&XAUcgtZW'BlklHNo$"fV`EGZJ`L(qKGL'G?B!M$?`(f#Qt 36.1458 + &0"+igHd!.r*&f""B@?B\h.O>ac7:OYh`(hBnLrNrPki=uZ+-K(HNjba;E8OnhV/(nrSZ*N 36.1459 + ^aC9'(bJlkR=r/Hjq?.7#6NBtse7K^JK1i(?C!\c-:#lBWXt#]OX^8D<Y#[('])>Wb`-5/= 36.1460 + .V1E)_/$4./2m@:_;P3s64ZS`c+<Rb^0AN"('W8'9d[2bG73gY\6N_*TckPAo+.&'f22g.p 36.1461 + ,WQ>E4th0N<Qk-[<6)gg3l@1jRAr1:E''3qdfZZ5;pj$`oh19g-9aVm8!t@"s.c,TE/sYLW 36.1462 + eh$H//CS8#=]"FaDkma(Mg7iQ`fL?N=(1`^0>]hLA%mJ"1KJkh>XKAj[*t;\8;K4GW58FhO 36.1463 + >ZHhql^l,l?iOQ[YGn=f&N'aCI18k+Y!aa#@KP-BTh8u;"a%1"(jPRR]/"qej`2(@InLQ7) 36.1464 + hk_hl>U)t'nd./\*+\*F2EKiql7$,CLEO8ddLO$DZNA<TNU:"o=R3p&(I%_t2;Oj^9b0mki 36.1465 + (mH2$67is^e?L^O;]7Crbg&271qle-p7T>W%,-BM0E_7S]BL"="@:/8&I;1ZFR9E%d)7LFc 36.1466 + DW:2&3ga=%h_:T6r=[fO`X_CVm2cn)UgFREui<)%"BD@E[st[Pd3g[UmQ3L=]X)'I:67/<J 36.1467 + +@P4q3E^g:$ClE8A"*rFXM<U#V0oKshGQAD(!hR:b.'I@0Ii%i`]*>1U9Tp/]FjYmdE`!F2 36.1468 + K>LI%;pV$NMrLSa4'A<>SYAG$2VE:!=FhGB(?GL-#p6Vh$T]fgf$Z/\Pt,Vd-TK]*^EK1oV 36.1469 + HFSLL<GS@tW[1YIJ<(V8Q3KE.Pr]uY,<ck`%4>QQFOl]_FbQlB+<P(Q02[.0@>fiE\FJ60I 36.1470 + -$Hp[IH,alQf[UjT\%bQHXG8j*J!B'(7*!KcOLP@7lY(t9k!nLN.U&8H68&%oefTHAU?Vg[ 36.1471 + -_(&Z!,7,\piPGXke8/[ak7d[NP8aMWJb\rrKq)>TX8T>#9@@_XUOC[C=nN^;#$41Q!p)Uf 36.1472 + jE<(Xc/q-)m\FU'VbcRbBEj,Z-m=KVi"CF+:*%m2UaXFGn&dY..eNL7oUX+0+Xf$7@jnYJL 36.1473 + st4?\Q0GPM\30o[ej?_Q][?D"4^WL5<L0DaP[d?`nR>I2DH4^m?5El`_aKm:D7?A\E4DaC& 36.1474 + k*Vr0_o[L+UgE?H"/^QfiU#h@pAkuR?Jp.]1h%4ee"^UX4F@7;2-\mLE+'B,),RNQV;c;9] 36.1475 + 94iO4ILng_7$JX1mVW/m\LXBKh+-252N%UP\&2CSTc>qEd,#a0Pd'u0$]0X8r4tAF9]OFA3 36.1476 + bX%D:I*>Z[tnheJd;)W+il(.889#aD01IsneDZ8W[N`n"t6Ej'[MUM<\mOR)%_R:q\5G8Ma 36.1477 + SHeZbd4lc?mf-/8cS#R.VN\jF'ZMD="Qqr?02QhDM:/n/]#tKHa#K,;Cr33Pl:08ISrKc`T 36.1478 + &mQ0(K0Ta-L<H8-*>_LS'=."#]1dmf$E)PA?MNMKlUO>u5m)B;j?&9.A0km9!(jLoN:PiKW 36.1479 + $8I@uRFDe=mh`$p3EM8kNQd\-39c9bbU>ZW<dnX7<.>&3BgB`rL&5&'uaF,(C"c1HM3=n0[ 36.1480 + rhZ[eJ^S@g5e&Ha-\PQl`X,-J'h87e+X*Fug%pe0-;,A(>^dq*$BWs7FJH,/NtYuY;&U`Ke 36.1481 + k=Y+mqR_QaUD&-60Of^as3UDFu(Qn-)@<!PYO0r3CkFY81U]D:a?>6=$3"EWV2gsWa>5Rd8 36.1482 + #uaiR1MT90SLar#:jrT$%H!5fnT972-_kd#]bEcA]7mo'21aR^H2B4MWi'E0![aN3=Qr0Q9 36.1483 + k0UVf^7>3fa:XiE8FO0S*m`V=MWQ.ig-;7\>pHod`sI/'N&5)%@)@\=C=JKfou5O;@M+I&j 36.1484 + Q:]qR4/=@3P;HTdEpubCEA6aO:/uVOtNrR5gLjsH5#86o#AuKFaU%S-3>8q-iaIO(l9VU6. 36.1485 + H8\X!m=IhaI.2p]H6:_oJKO@qK%SM"@S,sF6h[7)cME/fY++^6KSmuL9<2TZl&N*s-I>Z1+ 36.1486 + P8/dV5CMXkRsUmC<Ug$276oKh](ZpC@Of]9uP^c1N_I3I*/P^1:59kkCE%K"i/b2[9*7m=; 36.1487 + #u`75XO)OJ\NO?V?Nfo^8^.;?Z0ONSLfu;Hm*/6[#^TU9^Ya2oXMl)XK:u6.)g=T8Q]oLog 36.1488 + DYc_Vj3M!jm(7QnfErYjO#+)Wh9dC3[&hPE=S6bo@Q!gaUPiB/VT88]4Y`'120`X-3/mN0# 36.1489 + b7&S_9>s6E_.C"-'$'G^(.q"Ho`c%*#@q^p`'e)P'V(([I"!grA=cLM5s$.-"l?i#/+#irY 36.1490 + ],SriE$ec,RB%DpkoD(GoVRm0==Z^CA?05bE=-_IFjF&]/HT9b<6Ns9&':l]Ao-TRb_A1"5 36.1491 + eBaWnN!%"cn3N!_LZJsD6MCAs'TXX>EFYY7+b53,Cg2dVXB15amM4MC&),7E7"X7D.]a&I8 36.1492 + ,MTIO<7MF"gP[>A!P2B%AqLL[.*"C3@8S<!]g9'DpQ^mt9!57>!ejIJ$rh)+D:/UAV('aaY 36.1493 + X4N5,3N!9jse_Y@aQiRPD2Ds[mro+fKci)K/MU(_R;[EdTUI#;D@=.BV9'm)Nu0XUXEapY3 36.1494 + *`?[YXQX+i5p%K!Zgu"V>Tcu9\Lk6J\$_I\J:,U!T3FgekAYjE*,XA:;$Qq9"ocBnaHD(P& 36.1495 + HtMNnm]G&R2)E3Q/u<Gja1+ZA,3'Nh&oHI@X\CkkeKedk'`M@3cOV`]gWZI+LSqiWiJd!Vr 36.1496 + a'Ni!Pc_#@c1>V7;u<7=pd-%n-`>j%,iX@laVij68-CTT/GcP:D*)D9dt+![&:^@l($67L? 36.1497 + 0fsXZ$0Y`2"1Um[ML#4,F%4V$C7:?WK\q^N/Ys]V+jONQlk6`VA=4j=H=QbS(M]_\c1u;Vt 36.1498 + =a&``*LG>$jY0$$A-M%/9/QeVDcJ*q9RfBsWamsG&`;gZ>LhQANG(%(V`J"tTa?4`'?BNHq 36.1499 + `-"_*L(auR-rhX'1JQ`A363k>%#LE[$78X)I*_Gf_rr\u\0>;,^D!nC5,)?_lWBq`,-u+SY 36.1500 + `QlE4/D*^S85k)ZTWV2rNQCu@S:!]@gMGCDUJh"V0).i!a,hGLOF%5ZIQ283OX%%2Y@\tKm 36.1501 + e&7j,&fM(/$^::5U8mbj8p[pd$u5_R-X6E"n#.jY[GV-mfm^V$a/4^!_E9d;X[,OrZ\NEE. 36.1502 + JJ<<rVPQ,-UWmMTW][rkK$_^eil[cjKj6_Z;G-%u0`Xd0C6#SH;XK3QF6L0VffPhX&W0,%o 36.1503 + KUYpR'P.g0h"JRf2&L_b+EN$*gE&[4\3OLG$]fL5)Yj3POMU+do__$4QgP9U59+9;2!%i5h 36.1504 + !(Jj?&6aIAX/J6AR"Mu)j7l(eB?P::bQ,t<\;)I+E.hdriNY.lsk&=ctM%jP7Bop@LmopMZ 36.1505 + 0,7qf#3FJ`&Ra=lAJt#M0!NY"k7nG8Wsu=W^qlNY_;Z2<<ZLYu+#38?&E;/5$s+m8nEgj,% 36.1506 + Lb3IW#74a+\naR1)`aR!'(Vb*^lD,ck-:Q.NL9"(/d%"&iu)Y$R0UX>9c,M"0ee#h&<"YLs 36.1507 + Me=1018+Ba\g_ioTnT62peBh'T>C'r%0D_HPKP\0DJiC$@ne&ST3W*=$UQ4Q/+8+Z'O7@L@ 36.1508 + .J.Pd\H;QD:gCDX9M]'e@'&1hHIV^6p,-aCVg&nNEs:a!&]C%?<mEQ0Bsa!^CO-na_jCW[$ 36.1509 + HXSn+EQS?j61#<]Yj!sA,%:Ia*U>6ocjWpu/+3*IdBNkG?mPP+)H,8G_nFHW8,qpRM,-_.m 36.1510 + m3s:doeZ1q1dWK#1&a5qhREj66HT3OkT__^%5lKpln[WEKu!&n;!u1)@0OImkc.IR=M$>2- 36.1511 + j#kr15[IMh$#T[.rgk[%H@.<Nj[<!1h3NqTn!WZOZHs<1c)I"K<ZpO[5A:VPi4,MJiu)f/N 36.1512 + iKI-ZRKJdr$P>EZe;(82GPnUbYcqN4AH54^sa@0%0W+QTd]?W^T5he!qfufe8?O1+i"ae%/ 36.1513 + X:1*%N66:2"bU5_Kj2+%MI0QRRSZOSjPTN;dBKi%(indR?!?SZ[Pi=PY?<#dr_2C)-$d^-B 36.1514 + ;oP$bC75Ug9s3tpt;/6s>GW7L[3qN):!_Z#4Mb+"H47mYN'TuZ7&63Q<6#QPFb_cpqXuQ%r 36.1515 + .?kr7oWA^V'2-;A9=1i6Pfaj8cU[$@4d7Bh6Am'sAOBB&0Z\/S_O3->p>Bj&7q5=M9Qr7FS 36.1516 + K\UK8]-la!Zsm14@q:m;)JS41ib`F\P`G1;G-9cFVnX'I6(@Z1t74@'f7'jO&ORq,P79aoH 36.1517 + 4ch:(('"*u.jV7A3<YX"Vp%.C:6mni@3dThOF*3:nK[U6er6O&n2'9soaXF<jHMfI4*T)AS 36.1518 + Q<Zo:`nD,-gkd.81de4_^a:`P?e>=3U'7f,W^=u0.c+ghe@,E<n_HX.A'9ORZjiY,SuHV>Y 36.1519 + g9@]=H!eFE1i]Yf6&X;0I,?-9qH!NdA?WD\%<Jb,#8R@W8'31,BoY"=YfHSeR?1n=Jp(TR< 36.1520 + 5U&Qs?kPL[oke-t3%,P"6<5K_eic?#+=$J*@pm\oZ9)RT_d!E!;8]OoDPRNgD?)S8!HrW+G 36.1521 + 'dgITi2[*BB%07P_j'_$Y's5BgMu&K;hjZnK-Xi$214r[]1alI;9Ua=`n(D9_SHb)D'I';* 36.1522 + p=1Jsg&!N$<ESD,qTJj3^pQO'[NK=k#N.P7^1aQVR0E:K3d$<<G#mZmZ[-!k$*1"-61LnSM 36.1523 + 9k=a&,!eT`:gl#E$@EE29J<$?9>LK;rZD0Ei?[InTNh."qC;.9KE"I!^JX)ik!?C*lqdP`= 36.1524 + /=*9+U?(s#Q(GB1JB5e&<An.8g@n%6,X`sgZGXYJN2f`&%K6Y7cBX<J>2cFuZ4_^[[(tYWp 36.1525 + "!@Y6:^7fCH0(0(NqZ.h^Ik5mH-#SYj'-Wb4a$mfES!TA_@e_Kl#Xe,?/rJ(<QnKEjt63g0 36.1526 + e%l#.`NQ3s&uTB1=@COpU2=@"`T*d=EimMTsK=%C]G.u@$al5@gR#fQm,Vs.(/`!_6P3$=' 36.1527 + ajI6BQ2==4LEi$ZZ=UI:=XQ@MN5a.:)=hK==GQ(%lW8O'bs8+P8&NpI6?O4+os-I,YBcFKd 36.1528 + X4(a3"327Rd[\/g<kO_lA-<nN-L<$>QA,Dm<H=a,$H($H,e^&n)IF5`mQR']mqOc7.5H#m\ 36.1529 + F\:'>p@sT^Z1QHts5Y[9j4qp!JNTFMoYgn*ifk_JDNQHU*6B?l<5COf;K=I\)U+q&(fh:A7 36.1530 + OZ(U9o]9tUTl.r,1sZPZUMYMV4s*l.dC$ZK@Qf8U4']6hK)ubYfbPc4hdBF+,%F\u!\K'M> 36.1531 + F)^[OCAYc)-qraFs@k<6Bni%(hnkYs&aQ&8[hW=3Kt_3,8U*E,9e_.'f$oa>>(4ZPbi#NJs 36.1532 + m[i^(Iom=P%"1i&R=\[T3+MSH:*sDq8+e4(2/\.($[G+tmIm:S'fPAAM&Q!\\"_dpn#7F<W 36.1533 + /B1bj#/*G"k/4SW)&H1.@cpRel]?hR!_,*/H:'qa"SATh5d(13VGIuY_)*]cb(qFbGYI:jZ 36.1534 + )S=3=r>$Ic_`K.>%O7D1j,(H,Lm@N#ZT,K4j[U#Rb@<S(sU6\n=\hBuae"8MpTt)tW[;I1u 36.1535 + >4>X@VYM&Wg&%G91fY:`R,X`f!l9@emkIl6s-EC_f)'u?"f:2jPjnpB3?+_Sh3NAS25<m83 36.1536 + ?a.EH^`Z*Qi\\P>.,Wc$7OR;+GE[Z3L?pY#F63$=/%@6ifAkH"gK82Km@N@'nK'TWNK\pOl 36.1537 + D@lUTBoY)OgNN+PF=N+mlYU9F4p$.Y%c$jH9lI?aN5?SQfPGRG0sfRPf>(EB&Z;@M=/Mafr 36.1538 + AE.,kK@=3\4K&X%?JTOY<^]74ucJg.gtFdo$HpM5B8T68n%KGm0$_fcgm^'f;*GX)qMUYH" 36.1539 + lcauTKVC/#N!C.Wh0H>GuCB<-<S'-t`$!DVu\s]]m3$DCNp,]S<FgU'N]EOW@Z^:OIW&tfs 36.1540 + \]M/X!EYaLF*f5_g:AfG^QVVa:?ola:(NSYdNI8p3d=lIRgpmsO+a6e9A'KbJh=i)!PZ)K< 36.1541 + >h;ues!We!MUbf_-7$bHuI%dq';A;&Y'rWi\SW#A35-%4@@6/!XH)a&3&R#b!:g+J-jBQm9 36.1542 + m^qb?V$iS@cu"^W[\8bZr34SBK.3ccmHYc!8lFSD2<Dhp*5%c<TPXSCtc1s0d:'[a@oS@om 36.1543 + \/'ukh)?C!%NGa]R2JdJuKLnON&q`C-Eo1ZZ]+IaDppg,YA@oGN,LE)C:pJ\:2PIHl,+ItB 36.1544 + Gp!=o=5Cu$b+PfR:r>i+eV'EO3MUg+4*DOYRVn7Nl)I7Lp*I7_aJ'/R_!e#jL]o1P!O4bP; 36.1545 + fj0rtSX\<gOq?HD+PYJARMjK.&^a^OLtu:d_A.<dA%:LtemWpVTmAeYlYN:GR^RpkJr1d9c 36.1546 + nL*_g=_T_]`FR2$aM!]a5VZe_S*hn\!(b%+?VSN[.gZO=#0OY`#M0+>YE&Ffr"m'QBF2Hp= 36.1547 + (6E/\:Ytdf$a&S`cV.K0+MEWa6km(Et7@\)c99iVd-FFsDilj2it(,[3XL4J!YR\*!bgk?P 36.1548 + @s*^SuGJ*7r+k['&.Sr;ghO6I^K25(QFJdp$f[Eij*=a4Z/Jg\p>&"5f5R[u;0HLp!X`R#e 36.1549 + \QpV2H+siW4_f37^+J,q*F=XO8g#TlW.)*mj*p"0o]pfWj74)%s_;677hs\D<*eEr)SSfR= 36.1550 + 6UCeonN^USSsAj'+7^Kunm<d8T.BH^;NO5!01rE64fdsQTC1S"+PkYZ>`'`:lT.5f3rEp"h 36.1551 + $(PUKHiH\`?L6*r^X:=4B3J->l-!.]^OaG/Uo\E6i8^S'LXmc"?1YJEH_<>>LEu^Hk$.4'g 36.1552 + /Jl@*09.bJ\lpdJc_R5I_k!%HIR<668A@!1VNr9AS/tkuWf)T=r7Ye`9%#j?L',hr4R,dDd 36.1553 + 5::?"Y'S$hCq!9/PR+G,t7!YG`m6K+$YF?Ui[M+$?c=L;Bh)3%,GOkB;T5p;@]i^e>Nr_Y+ 36.1554 + $b2MdqFJ`J$R7ub,=g[%*3Lrq.PM,U-JO,u+k`f5\eUVcLV#n$8D).)JWDB!@=CO%j;j]<* 36.1555 + OMsA3I(cdP.u\bT4_8?#\8@>IKt`1>Ct7i/WZ43BAZo2`[O(=(\M_&elfrg+NYc95_l,OsA 36.1556 + bteVa\RX@&WJiA>$7/sH//+C6(u\>o>(;]0UJc-]Ch#OE:708fh")k?+/X1\_V/tS)*^E[D 36.1557 + A7[G`_V@+%aT9EopG\"qDB%_r'uD)5fNFNeQOSPFHnck_tt]&XMa9pTZK?4?NO5It,'jo_L 36.1558 + ;+f2(6?B`1tkB""WB!LF?#"TZ7j1_02Pj2;_-+4,$)#XTp"-ON2%N#[=4nC!186`=Bs&4:F 36.1559 + O7hS4p1esT*Dj0IX77iU:(a4KIB!T*d=rQYF@VQu%%uK(I'ZH%?JJ:09'TF(bni?^o8+KlR 36.1560 + -bba;:3`BYM_M"W`#4M"aKkHQ0MEr7fPnZ'@X;W\,)k(Uc)oo03"49#k;lAE[-p+Q1Xu._: 36.1561 + UB]n5Ys9P#=;7o2%N)P1fY>X(A)WXQ&R5-?SPHc[4b.O$<4?,!johO9iNc#TZK@<>f`O2Ns 36.1562 + oo\53GQWYG$i4RcRS*rChoF$11]G]T3u8L0$t.G_K5I7:`&nLeWk)[#D%=::!XURqc-8Z^0 36.1563 + &@m6ajES!NQsDunQ(GR`H8A^>I(2c\IQ?+4t6G[4kAk2EhKF,j\_pX5sD=77_9[T+hpHFft 36.1564 + tl=jfQ(1`=D+d''-"JKh`K%j^R7Lt,D0jLTS^T[P;!Pip85DZ#;=RcU3n:W3<jgfIb#X]IK 36.1565 + ispj+r'Qn83S&D&@gPnXPXp`')'5^0!b\4#cJi]9V)W3+LU6hn93Z,o;Mc8\BpPiRlPPqpS 36.1566 + *F^BZ6mYuXKPCB;W`85D7S41Kk0HlostnXYcGD:qpJ"_DnC2m^i2"S,>"IH(D"GT[+)=Xe( 36.1567 + dQ)r='Td.(a8N7_Og/3tbK5\+(N?);,?2M9>l=a$hCt.K7H0W"sk#Bm%+UB)(+=fU%hp`YW 36.1568 + hZp;n.7i-(\.LZ0Xu+\LcT*\I,kFM0^O<dGBV'oC-%dM8VC/rKJTUicu$9'fn#1n`m^%RC0 36.1569 + lDGEfYDFtm'#sro\k^@%JmUc&>3Nd68s$-,TB2'EJ0rI(J#7F"KK_4I>QQf0D'Alc'%KrXD 36.1570 + Cp"%9_C'3:M^rq$!LOL2@#'TC_(ob1Q!,SPmP2*qfDu@gEA;>6-2/3agC6Qh2[;%tNr_4br 36.1571 + ZQYRL^AdP&E]`!@Pbq:@oQ<[0lRuhA57ub$-f7^<<=AF6%k>YhS@W/XeM7X@o7Xu7OYS3h0 36.1572 + RI)E?6u"[sUN%9=Q`%hDkqAkRsYp"cie4$q@c&+&*]pGq8#A,'V'Bd;36MY=5Lgp>Hemqup 36.1573 + .Q"J?>#9!ZUUBbj=O9Lr5]PbdP4*i%56%cQ2,V'Mq&Z4*JA_A<X'$h-Inc2'@g?A.;0WdeP 36.1574 + 2&3niJ04jZCJ8uPs2:[`ZT'X=WE)!SXpeK>79,E2!/;-THI.bQPMC(,M!)5e,22FZQBp1ZH 36.1575 + :#H%3&MtqR,r%!gaaZBT*&/TL\Blhd\0#@f,+f!G@SaPj5A0LJLh&Cfch[r6<NP2;dXHknB 36.1576 + 2_-moaG]bHA";X&Mb3Z%ZD**#>mE%);K#4T[\Zf`mPM>bp';&e>*u1Z7mRRFX![rp-:9TPt 36.1577 + XmdS>$Z<N(-DrLnoS.S<>mi;9:ae.E%.Aa2V.='[BOOJGhftc<<!Q/q^"u\KOl=Ut*!,0PJ 36.1578 + DBEobZ@OGX6:VUWO2C:U1g\#@pcZ99@baIq,e#knal?UIhP!(X>,eXia#<R.h<fBV-d/.5g 36.1579 + $Yu7ch8XX$$"R'j0Y-(n`j#d;Eni8++@+hd+B5&Ls$^QOi=u_'u>apJTQDW1FLR`!oCSS/` 36.1580 + (8MW\93GX2'=IKC[b.&Fk\89L!#>Kfg\N"2Cb.36`b%']]9m;,3=DY(*,/\4m<(\Ef-0(Xm 36.1581 + 9JDUn>Vfb?PdifdE?SdD;ATAcV0#I,emL'FQU6e/Xb+7d;Ub@i\&b6)-#9qb,U*bA^%RZ96 36.1582 + gbC#YeL;(aZrIl\RT31YO!#p.Z28>m(FmAWma/7P#e93=_01_?;(i+*(8I-KSr*mZd9D-4j 36.1583 + Ah.n,@taY7.m&W6sdN?Lje)\S@Kktcjh`u%5^A$SsmD=ItRoN[*`r$G)PFQ=T*&Lo)?<B?U 36.1584 + U$HieDJ[0(dLkiEG'cD`f"Jc"t^c#iJ=_BTDCJ<4tVJFHhXpYf"dS[?AH]h#4/`EbW;)#FL 36.1585 + 4RKQa_:^%6o$edaX;%(8HMC5Xer$2doU3R06P+-,9V`QH9bTTP!%s-S6A"N#"hdG.[4qt&q 36.1586 + PR'Q[4caFA`;1)ZPaEN)4k6]HXU)DZ-gfFU1"[C^JPY'h]*SPoTd>&G8C)A&p^]t^0N,Z4d 36.1587 + KIfpOMP9^;.Z3"Dl>n+X\$6fd+m*O]T;W*l2;4<To>#!dS&WT'Rf%YBLTA^RnTao4(k3Me% 36.1588 + up^5/riYsa-`E!3jb*+\Bi\\cNmKShfMFX[pS<',&j.#@J/$F\_kNAq6P]hFC=`8p?,?O_4 36.1589 + alsXh#Xg))N!nB50M:F/qe!:@jX38Rc,\QajOe$08V807%j*3(Ll1DbRqCnQ+!JdLA+msZ5 36.1590 + Eb8l'#H8C8>XJ+=;J]UaRYl.ebZN1<S:'%+o>N5PaCcPB[G`iI9#FE402pQZ0V6egie;Q]) 36.1591 + ;>FC>r.M=hb==5fm:iNQ*Rs7!!A@1p$f^f!sD[a*k;lQi1A&G8rn<b4$2n[9&_+(Gmj=?fc 36.1592 + C<4*n%:CM8gPdp$'Pb?8JoZEJ='Uldfl4%RX/BYWkho(eKclfs7F<!k]bm>i$:(4s.gjHsD 36.1593 + @%hi[M0^-9miC;O2u%"9dg%b>1R_dW7_?F4E$qIK$3hK!c68_<"9G9=$eS9`7@^6UP"_WC^ 36.1594 + ]<RB=W475<PqKMA-6Fse%]JDU*bO[7elTZW\4;aJA#_Xj>90c]H'd@$8+\TFVoXf0`^,u8( 36.1595 + MPi-!]">1q.]^3.lYM(RD84j>_*f!-"18iLK,!Y15uO19/.KFS)Ok6u.jNb6ZlP5hb7#oJ( 36.1596 + k@q_q[o*?PE,]tZ-]Md:q+/l#f&h:$3=3_:olno1,4%k&hA#f81)+d#Js#J_H:J<CWo"a*3 36.1597 + pP1$&^#?fS-g[d"k%90d@#9]-oJ21a4`J3WpKQ$i;0$r&T(X4-VldA,_9Ws1$epJ-7&N.(2 36.1598 + ,E1rCge"61gt;@'Oc-'\l]#Q#m\&;@n39#)Y@])cY3WnfmLMEoSE_".OaW<pBJX1Qf]]Au7 36.1599 + HPZbu"K>e.46#jo\KNb9i)9(ZDP8"u:"6N&U@Yulq4P5Q7fU4\fMF2.34V4;GOVioWbE4<m 36.1600 + .)]_RS7d]&D$ZAD6ZA&F)sF"Y4?o?G-1jA?@kWVB4G@m$a$WkF+G<-=WCF[Y2hRM*k`3[c8 36.1601 + ;Rap_JsA#1e,)N$'_eo[Nm7_oM_B.s#->H]=_2_Zb<3rGf[7MVJtG6;Ehp*8r(K:#KT_rTM 36.1602 + W`EP"?L&LHoIm_EPs2Q-"",7MK<'I$oi$ZFkMD!c-*i'MLHDf=ai4Lg/Der0^(I"H"/BPmh 36.1603 + 2cm%"=HSe3L$"Come]@7!GfRlQEX[6%0oW$%6Kh;nTas3(8#dun4a[/ANMbL@J"EP?KRNak 36.1604 + :96@\&S9]VfHDfu9LQH,&BR%_IG_Y^+#I)RfUEd^1CC.AJ9!kZQY_50PT?B&I"686(d;(rd 36.1605 + V_*R+Pl-2"]P+qDL'fHB[\Qp>!LU=.&]K)!`Jh?%<7R_]ND/=q8F4nn4I46Vg56<+badE^e 36.1606 + D6^$fV;][:#Z+FK](,uR`hM=-ZB@lOBs"g>V-4pU(#pS/Er"EcQ15bV6&(:][EXpe$dcUcD 36.1607 + 9sU&s5qRn[M9H:Gh'*`2q9Yp<RcRbed`4"S\ESiQn=S:-+iB,iqd0oM0?X:4aTa/Gm\&lO" 36.1608 + WY2Pc.g(iiG]1sg@MOJ,?6,SO!#$IH'N:`TqLbk+`]\BeFjd/kOeFH+OuK-a?"#68$5Li%j 36.1609 + *'nqHS#;B[c$(ar#)9I:(U_8:*jQ=a8kg;4ZaO0"p*7rTBJ']ubaE1EWbZ9]@PFO32:@o1F 36.1610 + "X98:3!Je2![(Ho,qOWj153e)d\SYH';3_60ul]ndkrtPI3H4;?dR%T6e*+(KO<-DOO;k`; 36.1611 + =+B]r$S$)i_s@q;hZHQo4_*$!C^PI5nMDkF(%jQ0i4Die!VnA?rhkf`W>R-Jb;R`eP32X1= 36.1612 + YAN;ajL4'bF;l;8:pI<AYXnWe46\!`/apU&@m>9GGti\^F#t9aq78'h,&8gla6ZaK8U-4\= 36.1613 + /&:=QsNeeM`H;Ee(QA\[%teobZO%9Z_qNR^I4^-u&LeE,*>!)`C`f"fTNY]PN=4GM+$f0+1 36.1614 + ,9j3D86<1u-e3*-J8C.Q8HB!&of>)dceL3tY=B5lMNpU:T[7j[+K%Mfo<c*K#%;8j?d"D+& 36.1615 + "8EL^fFli%MHHF(fYrf;*Ga<VK\"ZOf&]"poo?Iho2"n=/L>QHh02lDGd&AV<X"Wq'nKCCJ 36.1616 + m"A.fte<R9q8THL0<H5S6OoSrLqpgCbC#m5J<f3OaA_ar?qPEO<$I;;[$;]='7l;fhe5BAU 36.1617 + $u#Q_Wr8g6ejBTuPYHYhM%AMC"hJ6LNP"[>E_4XGEfZFh-8"S(Qi6X^."AI?<!%WE[6eg8s 36.1618 + Gg>X,OT)G"Ok:;oS(m-ZPZ.+"g*M9W;_FgBeVb1f@m>dCM:D9Rij\/])*>m74^^!Nad]dNK 36.1619 + O&.QB[,*:Rgs'-Cc3e4/j`Pg"9-;?@Hbsd-<=I<?TVHftRh?AjC`Sd[@c.riT'^amd<JK<M 36.1620 + jeqe#-gfD`IHN!Vf%"oph2%h3SO2/76qEI>?D)f(kR)k89RunW#Dd=(&:"KldK`m$#@6s," 36.1621 + o2N%o\ZeHhmNC>`Vn](F,-E0N?E7sQu_)u!oMQ2?fhIJ89TcuG)Zh*L[G:QQ3CYk$K$qk#L 36.1622 + Ic+#^cm8HsiNR@&=IlP`LU@d"d^1LR&N\%Mdq&E"+,u#At8bDAcgT!"BtM?mZXtQ4Mr.nAJ 36.1623 + O!+)Cg`np]FQcsB#XiZ9Ar:$1G56/I:UgZ>Be*[[['lWUmB>0*5fgk]*U``\#9</'/c)9)[ 36.1624 + o9`Z*Z"$g,o6RpiN2WJC-<Zogk4u^1[3b*-+'[Y4Gc9#Ou3f7<G#09gS%2]:=53'@Ej'ZX- 36.1625 + ?u$2W:PP64j>KQhn])(S,NP.Y'^dr?*]`;Q9B0VHiZ7";U-<$<c=F>nAKFh"SgJ#H,N=#mh 36.1626 + NcW&C*;N@o\.:$@L^4Q5^uU"/mM\-ir.Y-rS:ci0pM)]j#GHH:,V,#B&p`7jNu:bk%EcF:? 36.1627 + ;K%j5+E\W!_Si5n+#bB&7Cc<^mN&7q@?kB1>7J-<''(FQSD+k+6PSG&,tF;.Z3EM.K._??T 36.1628 + tqIaY)oBCZjMH=,co.Hh*TjeuEj`'@cHQ.<R6jo+YhV=<V%`o]`I@odkfDJ3"H3E4"XA2\` 36.1629 + BmVM+D9BPY.d>j<$:3#?48*O'6k?+PEIQM1ectAA\jM$a_G'dm_s5biVk?qs.:q,^2&e,+g 36.1630 + LT#=[(8>PUV<W5tl@,VqL8jHGBnof)N?E1qLiDX>Y3MmfC6l)YfQW)&dK[L1L;pH5<j1h$Y 36.1631 + _OoY#;FM[jhtq@Yj8I'LN%TqE7!OYH>C7'li+,D\:(r%cj*s*#A1d<<krGkXQnZ]laFfJB! 36.1632 + LYS-KkZ*TD!i4oXmi`^<?GiMDACPm(Md+^254Gm5EJ]0%J.tQNu0im<7&t<n(uPg?h=W#O' 36.1633 + Ni3-0kpgMNP>mI\-9^s[&ui9dE%mKV/FfPQDBdKZ(QbKf0d2WX9(#&G^6m1d6b^`3P@k2Nt 36.1634 + oilIX!h'LqL]]KqXAgQ@==DW[n8Hrj"Dg(noIe\T3BEZ-!"i,&1`q]#bq="%QE!H=2%fc!X 36.1635 + on?Mr"Xn-i0*-$)!cW>an:4l$&7:D,&o_apE5)hNI^=dEd,E"SE5r4R#5IOEFq"^k#>f,S* 36.1636 + t`L*&;6.nE0+Gs?Pd^S")pa6EM"6?Ii.0?Snu79C&Q4f@E&NhGm>25KSX5nNg\t"Mrn'!l, 36.1637 + P49i$N.,+*(s\`SQ`jrfZi6VeJ>5kt`r&QBl/9QZErqA>%<3?Rt/kNpO0KW@aq9qBKh*3:1 36.1638 + nX=[,%&[lnfJ>Qq'0LJZ@hpiUZH6M'A-eSqs7\BbF'Dfdp$oS5qu*<$BmkOb*/FLYQfS<XO 36.1639 + #&:k*pFO*eTcohK\0F\7KoYt*E``sg-L>(0^_#7P6mdo4`3VBjcbuZ!0_:io=b46EFnh25I 36.1640 + #:/kI1ZUJB%2Unq2J6a&cfr2$A2c&uSs"/,5NE<=A1qNXh_GW>F*=^/EdhVDL3I]^-#C>%S 36.1641 + YnNTLK&AV<;1<ToH-A@#>o\p9_;0.oP]&"d/`g3dIanlGMQ>Bf[=m9:j<4toS6=e0[KK+8* 36.1642 + F6q`Bact>J#-Go%h"KG=RVee;O"ONLWLFgkT7,Dd`-+-$K8C@lB9i(R'_hArQIspA\h8QYL 36.1643 + ]k`cCk#k6II<GA[i`DgBoHq,`k%DjOe.F85:DG>gBoDhN?GG`;qop^_oL\BoHGVL#IOGNdF 36.1644 + us*FOSk4g#no`(lb7tkf1GR*,"pjQKCMZ8d@nlM-6=8/KeQat#cNr,NZGm,u.J%^Qn^8/V, 36.1645 + "]/$C'mkUP_MB=&FW`gL^Vu_"3Ldf6Ju?]<fHLA-b(5>kJNqAV^_$RN%"PPcJ8b[B0E_A0( 36.1646 + kN#1K]$HqjHAimd-@iLaY2;g+5'4EgARr(rLB"(3,=I,d=r3PL)8Wn\(ps)ir0KnL@AE,+B 36.1647 + \p,=ah1Mr[6oXXH[hbcf$89I`L[Of@kuKGR!l:l;-dG2spU1]^+4sE9Hb@=7Sp"dXD/Rs(C 36.1648 + m%QfJ'?.XF%cRs1[7<nnDqEW>6Q-Bh1a'G:WSKL+QnBOiF/iGcKfnMm=F/Jj@8@Z^o.3^!k 36.1649 + 3_dj=fS'CaIPY,F[#(t&c09O>Q8d,<[<B$F:(X(uX_IYomXqqSYbna3S;`Uci)I,"]b'6d` 36.1650 + ;-1s&qb='@CK7t-G,4W3!%_/4)</nHIp-3f\)k$lDn'"YQFH7XrEd-CDcMq]p;pbZi,<j&- 36.1651 + 5R,H`+!^g]Oj)CO2tjP=ZiQ_/XO[nF'60<G<M@M3,eL`1#kKre7s,0]k1*iYL2"h'ch2DD7 36.1652 + >K^2aYdOa*k_\E-Oi)--L;KjDoNN^1TBqcffIn!</jSQe1JFHX4AJSP.ktYl%ea-^W*@oQk 36.1653 + pgc(=r.BXM%rYHOkTj`J+\n@-g-Nrg*3:^dL.^lU)V"2POB'a;9F$f&))OGkIlZ&O"VhmRL 36.1654 + "1sV\Sk^<uO;%,kO%e2(@%E/oQ<>EK8Cg=-SJ:"Ba4%Um`)93?5E_4<6I!m*3:AINO]Q+.7 36.1655 + ,KUQlPa&k`oA6W&bG*qk^8m.G'?C^Er4tsFm(G'r'+<699Tp180Yu1Z+Z%B,CH2bi$O#9E7 36.1656 + _uJ!&^Lpm"$Mdqm,pU['Fb43^bLd[-+e25@jfWfCRZJ<L)h:+dZgjc-7grO9di1QlK'KZMh 36.1657 + CN+aR[dYs3gR7<E7S2.qT7A"C5S>erJP77EotWF[8b3oJ9dl`r1TY:GsU-A!C"gJS!N#D4N 36.1658 + <3M^,Dn4&f-K7ToH.#tR#$'d[^%(Ce=Fg<9H!XNE2Ypp`r>Rb')\oeOWg>^*=;ELsY])1@d 36.1659 + Zl*Z#NeY)klXCVkMMA(5/Is^.57;ltn3,U#H=07K!M880>2.FL3<]jRH(rf",jI%M9BWQBH 36.1660 + [i7h?Cj8P4fc@TTgY%U(S*('bb0j`KS^U@e96/ndh=W%QGq=0:F/A,a!E#c@?jamVl@?UM0 36.1661 + 5C\kZs2jO(;2t?-`gblCl=EuZ`IYKe;>lIDK1Heg$[\,\JVA;MscU6mCfZVcMXr!>RiaNE$ 36.1662 + 1:&_s]]`'ueb76H,40S;UC8[!Ai$bOZD`G-^O.2L`5N.r@bf0)@X-;p1]W<RnY_s'<Hk!/G 36.1663 + )*p4GSG8p:TpI!0^s;5`=+bHPpDJGq&cFSPqrPZ7ILA])#jPi&%rZ5^+L]R#OqBC3]#3HV9 36.1664 + n+NMD-I%>l/%XePbea37,DqtM8^]u%WreoY^^[g9cp&2[2g;LPTnssk4L!d(,I*rE*WIL!^ 36.1665 + "rK,^'OZRU6pP>k"@t'`@)/:b6RE9fA6*N`/0PJLN/@ig9N]8E.5&KO()I5pUL&SCH;M<o& 36.1666 + r3Pk*lKoh@e(Q^_9!5=&DmIb$n4SB-luh_$].SH@Y0E+3$O#:MG[+u(t[dFiiH%,jcTJ[R( 36.1667 + X<[_u9WI!3%dK6Q+KqF_Jm.e#t_G(aF\e*\kkUa&jW.^]RF=1$i\re5ffZ7"G@O%336p=BN 36.1668 + K]M2j$XL`lJ*,2_H?2G)%^&u0P+%4Q<5&oL*.U*^L!!lk;%+EWY.9Pi&O,>Q&-h@@XX/*2F 36.1669 + kMWiJj^K@pHip=(>;XBoC.*1S9l#L'h%FI"68n1RFEAiR*"98Xk0.)=>*-4d_9j$nV>)7*d 36.1670 + :jF8n8\DNjTtCPk-j@abVDuEAknm@%BVL;ls4lu.F#$:k6^Zee8#(ML,Z$a%d`4;#Tl=$4C 36.1671 + _+ljkVFVPa.Yn7.o=]J&ZCB<SlAIB3I,5E.''D7jbd<jRQVX%o^O:`R@t.tm4i*Ma"`c(?V 36.1672 + *hW)d5pRU\)g#'_.F.J5k,[']FLueBV`:E$u6>%#P7(N*+fl[k<[\@oGc#46%>*WQi##!"& 36.1673 + $,a'DglJRYcM0Ec&mnDXFjN$d+R-pWI4Q*!i4S;1k7Do0b=Xd)Ym=&pV9la)ME?ilA?Rf*+ 36.1674 + 5%$,o`q>lYr5X(V_.5CJ"Mc/SN1M2&bZ:g&:$CI5VM\$*!9Rp<F!oVqUYhZT`L`Y8J.'c8R 36.1675 + @hZ;RadpSJ0C<O0WjQ.O"\W\i5gaPWKoLY=lF0gs7DXMn:<"&'gMttbZ+3pf9@o)hc7@_!\ 36.1676 + bAh2fG!4P(K+0qQ6tRXO^31r2;u2KJD=97AT]XmW=V"kbSD?RHf9")Hicq::n`nt5oob&2s 36.1677 + bbGdC4VBScKci%eQ5p?W=6ZosT$)"l+(OJ3oY<&D0[]h=4`U-n$/DfPJK]4?Y&[*XTbeNA" 36.1678 + Q'8AqZg7E"u'OkjS/FrCGJR!3R.Y8UgN:^/Jk8[uB4^p+pA!(a4Y<O)\"Z'!R-ccJou$&E% 36.1679 + =(:&V'4@dn=j]lt?n3)BGlY?[J\#<O7c=%@]N/ChIWE6C(h&P+N;*b2V70ck50nD\QAe?hb 36.1680 + o>Z&A=IVH*S5QifmX\Mc\?41QA@jRm.Y.<NB3ouiUX<R[G[T?:e_ujk^oj)uD2!J!Tq/+2X 36.1681 + o0:-L#7kN]Fo?Q'[1#k!p\L'U^U:,edFDh]$2i_`^[KkcR9G-D1)+"nRICVjGHa5,\-M]Ze 36.1682 + 8P6kNC*WX)n9dg.E#F's.p!a52YP\h_@o4hQ@o46Qd&O#%'4bZMg_kouRh,h=XS'F+]=X!= 36.1683 + b\#;&+qXT\fA^g;Bt/c>kUNq;#e93H3k<NTM*EumEeG4=+@!Q#?Z,)p8)(-=!O2BGI.r#:Z 36.1684 + 9h"Gk`r)i"%4)"1K9Th<6ka42lG.KiFIpGN(jS[6n:k>$0%MUH/jhRZ!@d1*i&7"Ee;YQ#V 36.1685 + $.73Epf/to<e+E<,`&<:$-bteO++3J3&_$'M@Y@s_Wds`B49^95:AB/"u^OYl?7^H=7s;`g 36.1686 + Wo64mKp@cpHIqsGtipq]45\=DIFKpQZqph-rp%H/m0*c$+tq(<Obsp.p\5J"?oVWnBp!7<# 36.1687 + ),HSL7[$L8#E2!>JR$/.)/MS*Ba@>4?6qY-MpB1kCFe[00;?qd2quqQT]1rp:Q]DccE,!P% 36.1688 + Q)"XWnMM=JnNGq31h):FR"M^E<.qHm%`I:',Lrl<^h?Z5@\hnAda#N>SfO7Ia,c2%B0l2=t 36.1689 + mp3toT,JHKOWkZ=FIp_UAs2Xs8?gmuDhu*ND!<=eW!,r5EVE!X4i^jLO!72SaYT3c6+Ta>D 36.1690 + !cQ/g#g+_JK__Rpq;bTQ0I[+n5m/l1"E6p8YY>8i;$AXR"_XS2,eEto=U$Qk#&n8\Y\aU6E 36.1691 + <e1?#B-RB&6qa;(C-%U#]PV+Y`/d)/=6J:""b)[b\GOCrs8+j$?2sOYcS9%YmW7n!Uu9XjB 36.1692 + 2Zu[gXt0$uj;sYg!UGd0FW=$cHBX0[gL#i=7R'!\h3]E%pC1M$%^g7IDS:;#Lpp!>$sh&9/ 36.1693 + !fYmh97&J6`4&TJ[#YoOGH+VHLU&of?5Yq6UY0bZ9!'6-#GYrrcj,3V;%NhBkpj+n+=Uq@g 36.1694 + G'k5/gnQ`^L4VfP?#I-Q1Z#(0bUt<C5Xrt#c!5,X'%.YO_(i8CC!1=\oD](9p)0)&^Z'P.2 36.1695 + fLY(W):>E%Yp1)naLiX,)e-gCTVMu._!/+G]HDbFWPo\$XW9.H*HBaQZ/$Gji>s`8*c^EcZ 36.1696 + 0`V&nK0K'AauKckVsG7ocQ!n+E@c2Z4.rI&Krmh)@[&8D%>[,N?>GOB'SM57aqm0>R9=;'_ 36.1697 + 447@,W?i.)4`L<j%GoK#VN`:a1_h#;L`KZ<[Qq-RL7WafR<"U#dWgDCfRT%0@pdEd[7kO![ 36.1698 + bY-ut.mZAcUOY6.O*..WaOK'7Rj12sEJh?aAe&j?d/==st20#;$JVUB<j-EY)M_@8p_ZHRW 36.1699 + L&ef1K$DJr$5r^E4<[*3;_^)$0o$8rZnLlZj05.C80UiSI'ebaRD9A#497Fq@`.rng/r:2P 36.1700 + D?NsJ8MVhPO<N!t_929j?S`nihW$sWF$*m)K/>.G,(S9%U;nA:C]W!a7j9A1Y89"d@5]oQ2 36.1701 + KNP?ZMbsT'fNC?A?RR3WlbXB.(*JE/7A95VV!J3;IC[I_9)\G_W`j!?>udZ2fkopWCZ[?RN 36.1702 + ddCnL[-I1V>8Y:*P6h4CP?SZ`?4[d60;94_25anFJ)Mffg^Re4IqTa=%-Bp>Jcl^E?"<79J 36.1703 + q&q@URmAn;ehZj`S#!'[aN6"DArM+er,jZ`$g,(aJB!ljKa.3dtR'pKS'Zog.f5nHp36hEr 36.1704 + <U+\[SZO,(_7+>=:J^6dObcLpp$1qnG+cAhMlDDO8@mKm<J13eQ2!M;H,)hO$%s(1HO?4_( 36.1705 + nmFg$JgfOY`Yar9Cbti!'Wjq`YtH;Sq,FapZ`5Y)R5Yae9@V$VmlE"7)@F>0l/n_<V/"sU- 36.1706 + k!EC/7F*)U>Q0]n3?Qc9XORLZsFa6VY"=GiZNj3kurL$WiOCg&L&Z"FSer.+%qkB;KDA&&F 36.1707 + i1F!E,1>9B,=$TtOCl7/#P#<+a$0_4oS&b#NH\W*o<CN9i*("]cfqFhn"GTiY08E%=oe%om 36.1708 + m3+bG(RFOu-2Ao*2GM9f6\O]N8D=Z)ThYF)-/[ma;d>%EX0FfapP)"qDcU&^.QeP(?'.TM^ 36.1709 + H$1W-biT3oGgk6f-,*`+2Pr._\;,?jK)p5iG@OXRXlV<]0pF/!9'9ukS!FReh?uH1pb7=!L 36.1710 + $"5).14nkb6H0El+Mpf!"I:J^79D1ddNXY*C+X>t2+@\@Y@KO+7?nE:NcZggRNdP=#a'Z)/ 36.1711 + NY\n.:dU5Ap.m#XW]@?:K'/gB4MN8Trf02cL!De!S/Y%KBhJilrL7:'Buk5i[>DITIb2d&c 36.1712 + sIg@2VoXGr?9c<T:s'K&D#A0EbFp0$8MmFm!Nud;:elD/1Fd((kDLi&s@6DJ2k#1UM=cRa# 36.1713 + 9b=9@if/2HHADJCo=,*\.+15HS[&9+Voh?pr8@O<q3K37jWEd&sQ[k*OK%#l!t0udO2Uie( 36.1714 + E06AD7AB7k*e2AjceTE&a]jUu[^uh6m=@USP,*g[6eIc'2`?_o\p^VW+K&E:'a$C0ceJ<m/ 36.1715 + cBEHrOa/mNH"SgPjj_[8*%ssBHL)MpQ`MJ_d'jM5SEb'`6KEq[_G]COi"C2WP"I9H7NuFQ' 36.1716 + K8=(m3+sXMbl_fI,`*qTjfWK`@cbno1lQ=fDU3o!IuJ?H-BcE&G@h;VM>tgJ62h<673K4OD 36.1717 + BI4)dm4.QlK1'Eq].p"JXjMTn"\0_h!biP_ms.67B\X]SItb*/R*$i0Y^Tm<3_CL3REe\85 36.1718 + !.18MA80m>^#`,U48Dh$:LFc0!t,0+$l.!G\?pL/MOW;7G)U_n^M#8jEW%+@N#CPs?IMg0i 36.1719 + V_W[59-j=k6hdbrN,0*3*-q'`r'R8;h\D</>iJo15D:^_,=R7e:+SP1jbq:)r+DN*eN`M-. 36.1720 + :lHA<M]%M*7O!_XNp1:2_Vj%2#U4g1P%)G/U?NA[-4otjPBf0P\NE#5$rdC!+uqlPW#RB@3 36.1721 + [0kV$MF$.!oQ<<OB5rX1=Is66IrVT`G,DmPfRu5i0BYel'NYD(P\[/2#caI=dPPAR<b3gUJ 36.1722 + bajZq?&,H9%ObU,A97I+:p1/9PVMM`EZV;D+@KG>k+i.WL/`.2U;fR`?]@/aH-J-E&bKHki 36.1723 + _!F^\<;-]AqrT6^7)\bsG4$XibqTDAg>,2m&*^dcicPZ6(6[#7Gn)'\([k<eQJ3XT>,D/"* 36.1724 + M615I&DC0-ca#md0/rB[]qCeZ@;5H:TNg=ga>$N0?7@p5&KuTjacB?H$'i!oT>h"AU["]cI 36.1725 + D-IM)V<+$7Uhrfb`.VOR,(R/%VP?\]8T%rE?+Plm\ui"-m>!8(LO-5%$1R>(S0E%V/8cj[M 36.1726 + S`E#.<Qc_>L`+;(5C[\_@eokHoei5Pu8^q+r#XK'AE4*M8],UP?6J,$[G[R]+)"A&V*shN8 36.1727 + j(c)\]&;_a3Gm"</c`1U**C0Nj8)C,6bPOh_A,`YZ6TBDW`A9$lPgYVp68m:%IUqcso%/[W 36.1728 + -$[X2_13jl5\8[c2;P_-r4:37\1Kt&_iP30Y-\:@K"CnD"e>pr#`QBr;QSj``o,CrWMT_YX 36.1729 + teso-EVUn[f673Sf@[*/W,%=Xm$ICa*Xh;8g]mJGG[5FeM*PL-rP`pPI@P7$9',q!%<ZqWp 36.1730 + %)Y'`qGsV5JrX[A/2Kf6B3o\%5s*9(UAm\d$D8<e@0R>qEmc.^?,J2d![kf>RD:$$W-0,Z^ 36.1731 + 0F7J]M1c*iO:pFPe7p9UIHIuNd29d!PE+]?qr<kU<'I"=cHH5H$%92D!]@O5^UX4noln#X, 36.1732 + 67j,+@"4C2?AiYgQu0IN&V@r/*0)XC5g7]#.%F6$pRu_9>$\2AMiX=:`W#hhtoR3'qZW;9B 36.1733 + ._-nREW#7d4K:),hoC4$g/'+U2&`hOBF.F3=j60$)0j(#[RS"W@',&Yu0"(pRkFLX;nG89s 36.1734 + )]X`?I]HZ*Ub7fl[*BhmM5pfS`+nOU1>sj?V6RQD6/%=jrHBa6LOD6bB=fY@g2%W7%pHI`V 36.1735 + SFt)drAW+%4-[b%/t46l(rQSe.Be:b/8gB!liV!4$od0eg0IM.]rg#W"jFYQ2a+Er6\!?dW 36.1736 + %2?9/NVg*cP#po?nRt_QltXCV&Z42=hi2K,'eVD;0C^4<RTmKd2>-?*&7]P"sTM#/8CQE&T 36.1737 + r=c*19,MN*X'S^)c2"T>`t(iYSfH+OS:3s4eh(Iat]pU?UJE'!*t8Y(]e";Qk_[l7?bE$W> 36.1738 + ]2>4T3K;SL%=2u+;TR9-OW+sMPekAM#"mpA&FKB.Y$]]/s+_DTNS8&?;rl"=+G%.3<G_]Sl 36.1739 + Gl?T!FcM=,^WHfPL,5sDQWEZpXdb%*Qi(-@OZRf7bY8A#;62WZX5X]u?H8PO>/=nSNY1(.Q 36.1740 + U3mSh`n60V,/mZY-BdCJfD^pU67=a@jt(fNlTZ5+<L<6j+>M_!R\(gFhRYFBI)jMI,YjiS@ 36.1741 + dSg!P#la_,*KkqEss7AFpI]j]ON>9_T-EH^"$CJ&"L=RmZXGIoZ\_XQ#rUM%&=_U6%+,E1] 36.1742 + L]5nortXa1Yh1q.?,ds-`]Y:<"!cgOC[K(?+iE-/Ff\8j_LVeq^EiJYYs^/t$YY!6b<3`B8 36.1743 + OJ1&OA,o7-:RG4k)VPCgc;4+Xn!%!S)2ND8=kQE22/#S[aT"_5C+n<d0-)%D?giXm#l:+6p 36.1744 + 97H4uIe8@8eO%87D)&/*&-'Lp^&t)_%=Y5t5jqAVsc=o/*:$31Xe<SuUK#%s3);PdZ7AE`E 36.1745 + 'Ui#SR8'SXl4k5&:8ops<St3Nj_a`tY?'PGQgJ)W<O5iq(7S=,fkn3&mM?bBrWbKh0(0@IX 36.1746 + mQCG^I!nS'4).@Kt1HE=HHQ8bDgUR_7:/$:).<+)D`1#'$E9uGXAaYXVC]&V8MQj)P'g]=U 36.1747 + If;i+m1pGV?H;mHf^id5-%&hcnEs)?+-%B[$Mn]U`+WREao9qAgWD:T;n1FlN*!B5b?9Ed. 36.1748 + C%*uC![jn!cr*hQD8`F,lNlZOhgYNb`WIK(C]f8ktb8\a4p!d_XoPR7FViZ&Sb5c0\,#<up 36.1749 + M*-mlIU(kG'BGk4f/:n!c5ssm@N`3l0Yo+3&mR_a27<)ds84DHA@WBD"r+cCb6DSXU%^Fqh 36.1750 + +#0ZD:uICkr.]sF0bd1pa`:p]-V<l^UFAfUUoQ"<o#.jd960#)Z9?NZp96_Q]Xosno0h%b9 36.1751 + k]aeVCY87QT5%%Tpn+bo>!RR5TsY#2BnoE!tL+m;,ot+@tbPL(_gEM7jLhidn(b'bpo@(`+ 36.1752 + 8mB4[ctE*n0EG3*@o8q@Y"%i0@5'*pmD'5;#EZ@j8E2SKr<aU2#0MRl&rJ?WZq)K4.l*-&Z 36.1753 + 88p-k0V8ojd=0[+:V?Y.r7V5nB8k^;0aRo\JoD]r)s#"Mp3;M%"Gf0tY'/3u/I#@6Luic&4 36.1754 + 37Hu;XoReu\>?8`>U>5ulqgfn`nHOQ1QpSFoiF*K?KcAZt,j=#3/U!%D#V@c\@sI,tO(7ti 36.1755 + 6]ko)-;0P+YAKg(g'\nCQs^"SA!pq/DGQa6q8RH:?].?l&811GJn8V:TE6KSkY^$0=OXOD; 36.1756 + ebGl_5SPm_03$iqS@6T,;L0eIG\2Y_M>s]T#u`o>=<CTS-Kha)rBS3'\O8A^?Y6$Lq`DaDg 36.1757 + UXD^Mj#T"2Sr(-OTOJR7[3.bYO4nQR2A^NmD\"V^oq`S'o\,+[Q]#!d!M-6O>ZD]8:(Ga2h 36.1758 + oD<8oAA:\EokN.gS3Rm]tdaPSesg2-G*Z36a(8?ZG*U'<mXkZ<d0plAd(M>>ubUZm)RVlT- 36.1759 + 0rl;A48fU1*Ps,Qd*3uF]M`&WRIn.u\/\Zh^YnMV;p%]b!#O6l(+2S`lP%Q`N@?s46!**,A 36.1760 + J:LN"%i>k\^aok=6pQB`F`aHZU6]:;RJ!PR`'#6kXT@p5,!kc6+e]JM(,1uW3RE@*+]8k2K 36.1761 + `,*eASc>0`#"/ief-u$E=QF,4,8h*mZ5l5b1pbaHu;3B\KZA2@T6!WNodJba&)j;kUDCCG[ 36.1762 + JF1#1S8+Q#Z*i_N1B>(h$72+\:ZD&2B(]@ebD3Mo9b"V/S]UZ6_p"'j-G$R["Kf%0SuB57j 36.1763 + Ki+Ao^-)s;Th6-p\PdXi\XjSh0%=):[nA9j?$<_H#00d^G\S!/OI+-m1ab8->5P`h>24SYL 36.1764 + hUN"MDKod6Gn..'PJDM<peTQOQ9.j7;[RMAkZiqiLJ&iI^R"QogaQ#\aa8)<hMTe7VF6GOE 36.1765 + PH:)pP_B0aYQ^oQW#"uIqnJ:,cptrO*&Ej*MKtG"9c4+9'.RZjq;FGKPk1K1epAu^Ic=oA6 36.1766 + ^2ZKIo#geqbC8aTRg^-#9".?K;Aqu@ZlKXVR.sglC1hqb]1FLj#2Fl)P`)sHD&&@841WH3: 36.1767 + rGd4":5Oc1'KtPdG/Qp]<NYW!H41-q%!S"tSrc@W%rH1WOf9:d>)lL%M7;<-j[)C/mp+Pr, 36.1768 + @6Qb>TGjB\b8<i]5@3`q/#>GbfNY8/9s=B-Jr=Z(#:[fJQo85Mp\Lu"r1_6fq(KIn=G%L:O 36.1769 + 9eP'HYP_2?O1lP<:TL3u3TYY36NS>"Sa$L[[&Ue!0`(&?Pd[731ilbJO0kP7PS$S4A:VH>2 36.1770 + .&s,7[$I#Bc-^D`/Q#mZ[^=#(Uk*!Oqk4q/,\(&!"rAl=$5$>2JVq'jBo7aV[6kMW)Zg-j/ 36.1771 + l;t5J>NDL7o<XX\;7"@$L:uEZ$($8gUieoO4j7AZg+&L]@WA?7(X!h5kXGl60O",X5Qffd: 36.1772 + @<6#dOf\nCm,_&AO@uE=A?;(N:(C]]?SHi,j.'#T1n(L3NjZof`mW<I5-V<M^2L$\iWO)oJ 36.1773 + %e%q56SGU!&m/'3tF@LQ+k>UlkNcmf3O]O4(/!3<ro-5)4OOtcFVcSn1`K`g[lkJ/4kaHcK 36.1774 + %Nr2jGCQe,ea@KiPncg%ROU;JA=!.V,=-@UT>K`FY04k'sR\BO``+BbR;*;abF&LW2oIN%- 36.1775 + EK(dk!$m[=\[IME0pYiT(bD'0JX@"o6A,8i\b*OKjl#m-@6k563])E=OZGg[?B\0=P/h1J0 36.1776 + rB'DS(!gM:DFhbR1([A`;4s^C3;A`;7n(abseUn+aL.l@`+;]!jbpAH4%(-?E``Y;eCr@=V 36.1777 + hp8csck\(bu<EBZ70tlog.?%8jKUQIFQW=)2N`6[5437,%N^D^>FZ\7kFA7ddL7B`f[iWTq 36.1778 + Soi]r(';.`r3Y4Ir%+$6A%:QYjgGEeqM`aa$(Muhb<UBbahTlLl_.PBW;S2Z4BrZT3p78Sd 36.1779 + T9(DF(0ud!>9pOYj<Xe0s!<B;JUD$18fi<lm`^'s``!eYHneE7!Qquk-e9;NN(^E(O(6ZR6 36.1780 + T2XF]W^)iO"f*V&a!3u=UL8Oa@k3O\rh7hfQW*11:Pr.':"=RA><-<.9+X8@),\RG)]b2SW 36.1781 + ZY[&Bo?c(DQ"G=9GfSCkiO+L1kG@^?Upg3StL_YEfLonDM%#k6Nd\_GLY[dd%Iu9Si=]7ru 36.1782 + pHNP.p5Qmh9LJ-g#g(2K]Uls54*=gb(RP%"=N-XH,sja;QKY$1a'N+u6*RqaUtI61!TKRuK 36.1783 + gC]-0H2hf)*tG;!&>H(Js7I".:LITO]R(P5KRJ!oqXOXeu=$[m6Q29pa3Xmc7[@)hBf-MKZ 36.1784 + ;+D_<IkUd%k\%rOd5IBJ&-a0U?kJQh-UQL+5-49T+.`SE_Kg/f+^^L6/*!/AV!so?OU(_CV 36.1785 + _umek".?*@Skt!5(ki#Z$T\rj(.u+X,)eT3CbcZT#Z@u7C"=aAY8f@o'H=T^=e^Md(C3pT# 36.1786 + TH,GC3Mpb)aV+:NmR3SlN0Aj+$=l^1Fl?hr$"G3[?9B.MXa.?!o0p1KV-%R1h]R?nR95SKU 36.1787 + [OeTR/[?"55H@HE%5O_[=m4'*&5-2a]R0(]]-%BLK-&+=WeL1V7eH/36/!j,EKfQS^ckgPn 36.1788 + Hj0>\\m6js,50EX]m=fI2_`(1KY=tck6"qskn"11W*:e8O)@AY3"WXscX5mA2=+>N2Y,@H( 36.1789 + V`)8h+OfiAO,.M!\#[4pK5t-0'3i"kHe3-6Z>;iPcT*)16]O!cg=g1FXL`1$Ale_`m@mZku 36.1790 + M^+r?OWZ=8#Xm%N517CcZ>h]TK`ZpD6O3^g10MG0(PkUO`sZ=_]O&W0F#\PMMkjOs4E`R"> 36.1791 + ceCt7r3H5K6SpqZ5t->SM5_qE)J[k@??X6]G,$/#TLi8]bW-4Lf:b_gkH1<`^I=(RlRi3FE 36.1792 + ts/M`/,q6BmHdCbj)EO"sCQS7Df**082lWOtjT]:-\blZ@q^<u(&)80"$e^aMTr/W0_?!^* 36.1793 + "p8`Pedfcp6GJBNU;1nmSnUImYE*jh$I"Jj1ULD=SF"rN$r9WB6[&rRkPb05_V@i<;9R7d5 36.1794 + S7p.H"4.64t7"a-G)hAs,Z9f/91P9Y#5_Q%.S@V@p]1]\Mb$927`4e.1V1LP>#ZDe#)jqY, 36.1795 + fbfi$M\BQg/?hf]J\mNuLK)@t]ZMt=Z:%e,apCn'jG4(@CJ4$@9aoED*7>J$]h'/@M-MgWg 36.1796 + l3=Bd`m*N$R4`/6a`8MHHFMYP*uW,`8410hZtc"J2C:<JrE$Z\1kSR[kNKRaFPBTY;Ps_9n 36.1797 + _b+SE`kNlOJciS6VotEUo$`)U?"b-b3NM"'5R,eW*2)!_i8$0NA[:\1hE"9/nBHRc_m(hoH 36.1798 + eq\aX>E5eDrkO%P4Zb1M3=0cRb%^V;QdcOC%S>m=,B#7==?Y7(S'g*6^:,RjVVd)pTjn^^H 36.1799 + 3It[J+#TKUr<;dGsY>6$X2.OHaEaI)(3R!S-%_W"$9CR`S;:2nZ%Cd%B&?`tp>V`60\MXgo 36.1800 + *?nB5,>pL]:lOd7fTshHT?dB\;Mn*YPE:=\ql%B'Z4iRWP;*EU67@X[dg;ErM^AorJq:SuN 36.1801 + b[gI/H%#UHAkB<#Z*k:S?.:d):Fd4;p@I(h$$QsD,?ml,W$O%m$H2_6QtBn,\2?c&1SSKPn 36.1802 + oc178Zg5]"p!q:_&Hb#Sd@c#V/*d#s\Y]eI>AU*E#H[e'nP!eOn&bN1disWmSoB^)4.#F[F 36.1803 + VY>?/@A<QlOb3Up,"?PqdR$],0OR_2!<moB<s<_[.+>Kp1.DH:=^(,]K_U<*ZcKo#RBX/T8 36.1804 + .I;5bg+fq>hdY2Ad*HG45F&c4Q8[WWk=Y!OCh$?&5&l=Z:BS-RVCsTVCUmU?\Yu+$AG$"Wm 36.1805 + =:Kg@`H93JJ_2t1f5W:"+O^W(3/B%`=2JS[FbNpdMcdZO=N_3'oa019NEGu^=K*b$TRo,\N 36.1806 + N*/0f8te/d*ErIM@63Z%98Nn"e&SrRp!>";H5s6opf1Ko%BEZQ.\g'Y`7=\JXE]#V+?Ks+k 36.1807 + YAueCk(u>)fLbSZ3lFN^_Ki>-4n63lhIc\d0U$"uqNEJ:sSDDP3pt'bt]nrM'W5CP]rGgBF 36.1808 + ;WU-"pRLPR)sUgq/q[BGB,[>8X@a3#9UXbtmCL^@o+Uh.8r&E6pBEnH?JgkEY%=VTXn!$lu 36.1809 + pgs+)Kh9He+5;aH.>j]oFBj4fSBNOklg/Y^!NRLI]>Zib7fg(-jd#D4:JR*e^>AUNK^kb.8 36.1810 + Js?n*?1<GP"i=PFZ/.0uN]kt7*T@?IM#[_$#U"h*34`D7dGDS'?HqjMPT[4NmG?[g#m*ZN8 36.1811 + 5k=Z4-de=>tDO4c1-;b9Nj]8N:Di4,'K\OL0FCX#j&\S7;`SHJJH!8cM:c&ToB>+_^Z[]Lo 36.1812 + '4fpkE$%T-n4ROU02A-0kg3>7jTkfnbI=+FfD39O2pGLhi5^%ME2&'4Ele==ht\7M](=on\ 36.1813 + `7?\S.n^l+0Ek*W[>M>eHM:&0Sd&VuSTO[/"6I@$rW8Vk@N@&\)iXchWKLY\&Ci$l=q5`"< 36.1814 + 5U]f&2=KT*]IJ[>o.UG0!gO9pu*\q4X1CIe0@m2bXl18BJO5SrTinBUME/*9+_2+rc@#0P! 36.1815 + pn-PBMV8fP#_j`5(+BN+h.--fih_s+NSOj]6jYH<?*NC!*\UrHNfH:Dj'GGjhG.VFR_5\Z< 36.1816 + CTbm/h:G#B8I*X,'HTbDFn'bLZ@Le#_knec;f[L"leqPhp,5.IONsB/E6G]AVIZ/c50o_YD 36.1817 + ]84AKGDp?=me_Me*(\k&p0!.+6aU-K*70i8tsek!m;9LgWC<Lh94_?-?gA?jH[&@+HBT(3& 36.1818 + 9)?<uKV@-265S]U"X@qM$S?G6Mt*3j/%IgC420-,1JrMl-kEo6Z?k/F.XW/KLIkD5\bB;P? 36.1819 + 6p1!2=j58dMAei,a5_WIO<s[@<Au`t80i;OXGiq6RMlqroOH3sJJn]XaB@qcJm[.Yd2!M.3 36.1820 + i5UleU6K>WPmG(g'uC41=n_(+JS/"'Lb=bQn::nrb@HotB$QVJ2L/c/Wp"&bC<`43Pd$#\X 36.1821 + _G#@.ZGb!7^(c/FbhAu#[M015+^U`X9a6XfCl`7\;B=\$jj'Z`7?$p#-!J4X,%g&A?L:Fk- 36.1822 + sY/_cSp"R@_An-H"u2m]e$^#NgU(D6<-FJng*pet.q-G`5[p6%B/2A9`i?-ie)qQ>5P7CVG 36.1823 + ..W2J>R5\;(7?A=d3m`KCLgMOW/m!CMqmSRi?l^cR?g'*Aj?GL($eV8dOjrg12-7e2T_2<, 36.1824 + $OVj_VfS+,?ent-IDU.WL%F9g\B^X]8@(o6>NkgHgc%cR]gpRCm?H[52M/,6FO\h%oVKRfV 36.1825 + cfB6s);a'S*K'4_o&&[U(odmRhWsV8")pI-:hH2RI6ggLmFABCcNW8A`fJj@Gi'p)k]VU\D 36.1826 + A`^l[LNd%'t3610(k2.#L<$%>Cf@P?2*h0N2J86A"\le^AmZQ_MV1MS[T/pQ:Y7E(C5d,KB 36.1827 + %Ztr_2a_rU>jnE_duR46JT3Z6(88j)3Cf>jCN6Tke=thPU$OAgU.GgMk_8muWI\-MiPNcZ7 36.1828 + OTkCAOu(F&7=)i@CK@0/Q#7K7DC)/E:unu"Wlh`aK;J>EJ,M,bpC-PZ1=kobFmka4hWTShE 36.1829 + B'3hu'nW*\:\BGu%V;^@ngA$Wh(JBT*\r@KbAMHjj:6Pss\FhK)l!UHM429QIbgt-)>?=/) 36.1830 + LsB=0+nJb[F+6Q"hd1Hl+7a7TDZ<"CNtcW,?ZnG(l$$Z]?Y4It]Ppu>9jH7+CtEiSCD/pDG 36.1831 + /%m;hekrLX6bm4p?uu=%rCt^F*Bij6+rgkm:Z/hG8T4XpO@I4T6`VdFkXlZpTJu\5Buq[Is 36.1832 + :pC2Xb=(%tYJpIeYRLGYa#KpOW*HLNn<)G`R\Z7u$f2Mg3!qGgD@BT8NF$O*L\dGn6$(095 36.1833 + iMPBfBWGu'\dhide?kl^]i"8FU)_p\@YRJF%VH,#nq\"7lkT)%99H4QZp+.rB_TmAYlH9\6 36.1834 + P:SrG.Vg;^JqJW<YT;d.?W;=9/HH3(4c`VTOYBng)H3d^ZkZ\n^6j>nEHN1/F&%-b&[X3M3 36.1835 + qiA45QahC7]6g`oH`+Q(^V0LM<X-WGH$@)P)JF?0E*CT):7*+,3$/.!8i\!6r--50T?2Jaa 36.1836 + S`fqI)jEXcd$pqc[=?kI.,G[s3Z6JdX=@-rD1mj=4DY*f6qSiI:q5]J(ad]g3p`jIF$XGhp 36.1837 + )@\AqZ#$!ao&\BAJ!VhL7-=IQuqC2s,Qbk5J`NIZN]ATBH3Wl$g+u";kW!-cH#Qmj,*S8Jc 36.1838 + @Fr6Tgu`r;n%s%i9:?gN8\om_2ZIt.9DO8=?]qgJ4s(uO;$-i3k8qZm1%-l%;!+E1FN*Yem 36.1839 + 66=I+.F@IDeLW*_"BV\rl)3.02dCB*t5pML`A28EUU.larZ&io"KZ7RZRS@DCH,Sif4.]5\ 36.1840 + e+s4PKgVS3B[h>s-C%6$;eabXKgqn;W`<faHGsL(>HV%Ceb]N)`FH2VCt<r%VU]Ij>A_sgK 36.1841 + uW4;IpHEJGMVESGCDbpf2qXk"bX[#E7fP--P_QZ@r^/tH2WPK0s1q1>eXDsS'>Se3W/#l4e 36.1842 + ^;;o\(ldQW'g4CNZ*E?H6?WfPL99?,k?9\)$IrS,N'dHc+44S#^@\-?=oQ+ugQ;(I+bDl?# 36.1843 + )C5/11(g[0334oXVsKWK!j3F72*Vq(,,H[XcNLWANJqL*hMJ&gaFqu2(YC[q8802($f!&+r 36.1844 + U&HopH>T!a^d!QuB_GHaO$Gt0&0atrrgc5k^d/60@`).LG'#`0[;&$c="9ANgBA3.`0!SAi 36.1845 + )TL1;E?*"rgj's]dJSP<aAO"7,081o)L9FjS=(_GUn",(8lD1Y.a$2NIhj]bF9`YdnXQj<b 36.1846 + YoM'1<e30d59*H>hM$[dsU+6Y"+0/!)D"UmQ=9DPkdMhe,99Hb>8Q9(X'kc%m\NA>o?,Ze9 36.1847 + rK2dSubd9%)5&0Xf8^K^hg`6cCiXe5[M\$W(X"\O4b%/Ql-)eU:k.elA8T>1V6;EB-T\S=O 36.1848 + !/"J'UAfN'#KVGM8L;,g"Y%?"iOepX6*g/acDC>.7PZ#&/qh77F@Ps(=Mflm&1Eno80d<+2 36.1849 + G?.jDWf6uV&hH-0aE$(3i@04XGAa+[$fDYf$i)h$,K&G9F&VT+F>8)?:8(Jh`9Gh@jMW3:& 36.1850 + 0oY-phDpVVf`"0u_RHrsP+PCt`iIS\m.!g2=aje;AWsbOREiu&C]J'#DKD9/fuAN4kZT$aU 36.1851 + ?L;pOI>0t2GUogQ!15Rk1OpAWp81'HO+C9`AUk7_a_J4OddE)=_`fM\#Zc<9H1De]'d>;k1 36.1852 + ^akZL$i,h6h0*hYFnSg\l&G:tO50M<ZnJF1^o]?Puc10NT<FRN.]ab3(n"mB@$+mio.[4T< 36.1853 + OKDg^mLaRWqu.OOa,^I4Z8MaosQoK*9sg@j@;ESU:a7g1O7RY%J>GXFEHiqTF\Okoh>>l!! 36.1854 + dRs/AmqGXXplLUGOj6()^e+MpGrh$%PPlAC/\bht2dIdBE?eP.M2E\HZfmX1^qYo"UcMVOt 36.1855 + fD1_T/tA@Z[ncr+d+NrqOd81DYgqXQpO@,S:;?NN!)oZqIukL`^kFiOT.BYgd!cNm(duGPJ 36.1856 + qR9"mLd='<1i)_p2/%7E5N<b$VLUZA.[Dh_Y.gT7gq2)A\K-N\:kLR,XmO3dLr\u,ekNc9o 36.1857 + 6kI9thu3b8[+pMT$JB5Y.cM6f_MhZ$m-0Jn#<6,H4H+V?0-%N<P!bArDdonOB77l.`!4Ej; 36.1858 + JY_l,UqiX#RA030[&LG^&[PHK9C@9U_A:EWTK<JolR/AK:DSYG=qMrOFaZU/(<+67;>&Y]1 36.1859 + o,)I6anop8&&g#(P-QQTRGEaiE+-63o-<[lJO]"jQ82mRtS&C)&nNL>S)20d,,&2>#&AH#< 36.1860 + M_aF'@s0Vml+5;dVW=hm:Cp'1'6\ELB!QW2"TDFreF*DF*7^QR\m.4hRgkoNk>(E1?I%dlX 36.1861 + <r:[Qd\Kr9h;lVk/>tcdrKG&npNK14QInhRX%3)B0&te5*'7VG0_Vq:2!>mRC$:Z;49@3d( 36.1862 + ID5cMbXXb!ekD/-KOFLmgAK;b@A=S!j<Y!]q;ujQ$aS-EaM=\ajG\geA5*1a1AjH.<*I7#c 36.1863 + "np7eHsklqHi(o?k,Qp)j"-"qB,-h(S,"PNuPC*`[TZ<g]jV27d.m49S`WQNe$DbI"6Gc)d 36.1864 + `R>hPgs!RE)Xn;$7e'[)KWWSNb<;;k]d.nD+3BX8`!i<\QB2bjJ<[Lg=2i#PV6AbA;Q*k?5 36.1865 + fXMB!lNDs9oTIR))b"H-+cg>RRO-Zl<GL?:Z)NueY:#.-1!0YXY,nq2PF;KC.oA*m/uG$Mq 36.1866 + [[R\He"q\=IqYn@p9sRQa<M<#1EC#:?d/k-BcVI>1YuSai0%DG1O6%7W!,O]t7&5oU/qX.s 36.1867 + 1&FZ('<TRb8'oEXCREZgmiP;Yl"_$=2&aWS7%ZS#]pK]p,pL*s>uA'nXSl]k"RL#%8C=?D> 36.1868 + @BY_"XP`Zfl/fjslAEkskE6@!.+_fR5lffS0PI,nqBc";("lJ65=@u8aB\F5BKe&=CmmhPR 36.1869 + u(fEn5ANPa+N"*[^G83KgEI8)t,cK@'RGruWm0XU[F7h[X@f]AaRmaM.ptE%26@4`pP`I1. 36.1870 + @gQb;eXH)?_kYE;A@Pa0RrbAlXGPr:;HP)uEa_^tc+<^N!f5U713UT=G97K8!p2+`@4/Do4 36.1871 + %mG9P-Q*^bkZNgkBTc<8iE-bg%KRQN=h."NQ/cQ(IC"GQSrleU*c<\bNR_oWQE/A!#eD!kt 36.1872 + FaHYV$j>])Q/S*JG'rILt.Y*W"dLZ`K#>%'Opm=(C&W5NTj!OT`tIjiQPio,M,\!!;e.h#p 36.1873 + I:Gt)rPThB4&SUUt>cGM`)=mP'W[<AlogGfb:_eCd5pB`a)S!R)k).gUl7g7i+++uJAMb#X 36.1874 + r$/s1gf^DBr?ajY,QEg%5Ds:cF?Nr!@\YCop]sk+'[:7L1$ZmhX,2BGQ'U'J/P%X2=:&*Tc 36.1875 + H<bfbnkt[m<:5Mg06<3FNcW,7-Um7T*Ir+Air(o.9lJeSs6#A%`jAL7lF`1''+Rs>q2QuhA 36.1876 + FD3f]V21u\MNG4Q\"jaL"%i";sJbZ[1nT"c$PGslh=buPFf[UqSr$m)fpE!0'h!!-\_'H*G 36.1877 + G)B;rToLHKU.FAoJ57i;5@9^jA;fp^Y"!4PuUjr6NJ!3j[^g]%HQ;hoPI'X5*0YQh>dfR<? 36.1878 + 8/g,K&3i%nZ]qG'cFIHS<<hYgK"WKls:,=CpF:!MGT`lg!n:\C2Q:B1lP;Y@NDn31n`Et5O 36.1879 + YITi;o"RB?;caDYrYK)ti;Y9q;nb'K&T)=&%R!g'R;SK8j-pGhVGV@nL6t7eFic=rHPh1qo 36.1880 + s)3eqcjp-g&kobSc#E"rEY3,R!c[a&F\&+[I",4%Xrd&k+-:TjbmIf.5apHj3(asJL\@ 36.1881 + )n;L"=9rIBWPd,.fHN^"JTN2:W+`%3o@*MqdPNfDfYgFG4/78;m9(GYZ/ilFTO7_@n2V%a, 36.1882 + LE2KGDk%$ALVCKaN%LQD?48$\d)R/XY.o81)Jcrbk3u#9pDAFt"u&AoPo`X6uTFppP$Y;f> 36.1883 + EWO?P"jE<"p4PL.7^VnTJ&g9>-LrIo"pmOJ*1r$INHe,kg/m^io^n0sIOjA8+mOQ-gb$78U 36.1884 + 7Y9n)q6=CC%1ac,s#S?tU01N1hgeQ6)$aElBd3qr3pD)(f@5+ijk6DAi)]"QZ>75UlM+!J" 36.1885 + DC4iS^0sdP/+=Sb:6MlBp2F4(%]\>[`>*t'LPocj,'OO4!,Sp#YYA"2:$T\jb10-<)Id1\k 36.1886 + pVInfW>Y;e*U9W&N]2Bppt-a#fTFQ`lAo!kgg;h(lQ[cZ&X?)-Q-ZA!0Cn#,&\ANT,M^LMU 36.1887 + ARS;6q3^#d>g<'i2:@WQuP.D$-\7*26j]huJqFe8gSE%Di&6ncl6*4rc<C(Qqs+EF;QG5:+ 36.1888 + `i?>kMB;J@K^UuFmG+j^4D/\ZT@M!smD"d4]P/aEU<`>e5]cr,%5Be%k(Cp<C%r5l&dU1l) 36.1889 + hD'u/O.E=(lEJGq0U70Ma)=a7,n+S6tXXQ"_*-.GQ9rR01cRKCn-ZZNuU1YsTI4FWh,,TE3 36.1890 + noHJgRjJ:0(/k;h`QKURR5"4J<f:S@bb#&JLG@-)X![%nnX0Ilbk<['P`j!+!;SCk^G>q1L 36.1891 + PNgEl#dij!:$m;&X,t+#RN.nE/o[mPJVX3o&BHM`@<'ZCoUg)ZIW!==DUII1*VE37Vm3'65 36.1892 + Qsu&b>BK7ja2$4X:<F3E&F!!Q-b>UGWIV3R_+g^sP%P)CSNs26,ChdI`M6E;\YA2cAifF*d 36.1893 + +-I_7HS5*P:re*\i?l<+^;$SWYe'E:<3"$ffj5a2XA`>LBa[m9R%6'N<Se/q!k,=4d=5r!L 36.1894 + KF>#uq1IG,#6^0Z"_P9GlYZKq48]>m@oM7mi;ajYe7?h!7e+R,XN,[_Ea:qoLe8IhkF%92R 36.1895 + 7u0YNe7.BgY\HX?2fsC;e;m08P=\`?8VRUB&TL%PVaPVt8X)q@['*+:ZV+9,99d"g9H7LuK 36.1896 + 1j_79U*^oeB^i'dT!8B_=Y]@<8UFbj%`S::6b$6F@/gQo1r?[:R(`PeG_U"lr>mu:_a@7eI 36.1897 + PLl'2_aF.*.R#7JAN:),aH^;O&b1eLsQ1*/*m$;\_AmeN["J6W@#,;anY"F[oFH;cQh!<L$ 36.1898 + b^eF?Ph@ocTB<g@H$b=bM0ogVr"=-\,6eUL[9Jpde,@HNrF'dHg\P?CnP=d>IZ`YD4&+Cu9 36.1899 + _0O]B5^dVHBZWf;g(W+ZC<PMa<_@]ef/YIAoe\VGV/du4C%Md`(!+0%6g(O)A>nsXb[I,VH 36.1900 + \R)\J(,btne\PU8`Xu4o>kPr@edl&Oh-;hq"ngt`Q1c.4+tZ*I@[6Wi<VdIgrZ5)k&%4MNT 36.1901 + T`n$d9tn7@3FN7p#7QS8S(pS@Ni!cFt6pC0J0^nA&?o0!0^qo&1s2/&%4#@[T!s,=^j_HA[ 36.1902 + X1((2$utGV-?o>o%<0[WuN:;e:+G@Y'gs<f:=.N\-PK?(g.jFq8;q6#$$S@b&166IfQ]/S_ 36.1903 + _t@Q#fE@4j.?)-n#iCZ)=2+He=b"`1T]D&)qb<[]P"mMr[k??Y@8(?\ttgKdh,>ekW'290W 36.1904 + Yc7LpH?Zinu2=GLMi%:8V>W(&O6SEGEc#M\W@b1cdokd_3#Srb-B/`j,K%2Pcm3Y0P"4q:! 36.1905 + J<tH]g'^u*AUkkH_V,RqJqak*/D"->+\R(s?r!S9G%0'HTKHeP)g>A.;n%,TpORQYC`6B`/ 36.1906 + O>/=f8k2$drli6%6)E]TNcg\UNAiUG@7h&[sfo[/Ug01HXWat\%ZJ+O;+GCB/dsB2pZmu4* 36.1907 + j6HJ'[U5\)\1Rl$J$2I\q1;(\hUorEt/#AXCaIU>(4%?n3'*B/dI?@b$%,D1U^!B/eRsGUn 36.1908 + 1Z0mp?C/GJgi\%RG2[V%ON&E;Gj``[u3fl=N!K&YHSAm%[!]7n7AK>Q.\V!Wo(D0OWPG@K< 36.1909 + N!1%2_Sh7I$;n.E0Q],P.?&6]iAXJW4Qu5j4T8D0>MDo=.B+TiBM0/DrFX%-L#%riq`Hc'. 36.1910 + H(ri7pMY77fm8>AHIoA4pP+qWd>d9kIohk5Q^KP;m<7+cI:CfV\)2MkfnPk/I_sQdf>2r]j 36.1911 + cJV;JjS.Bf@=lnomPGmIKJ,RQaMBRd?=7qHm70l\':,h!`'X;/U0&Qij4m3B7@@")H\#/=< 36.1912 + Wlr?nHVH;n+E55gt8#R?o7'Lq"=W=@JSO87pLqR!$Z/R?*&Rc%otERA/)^->/7Rf8Kk&RY' 36.1913 + (WK^kG^I>nqt4i57/H'sBgdtlo_S0HLRAFH%_du!kB"5(phL8UT:`K4XmNZulBH0QtAmS;E 36.1914 + Q/Xc<2\>>a!rap-DNHJ0![3&>"$5ja?#b!iMg-)3>O=`c_UmaND_)\>.V@-R$#_;ZG_V,RT 36.1915 + A#4^JVLmNL>$7WLX=P8WV]%W*!lq*fl)122V#`TQ>$5`pfqoo%VKuu/RW#*t]rFEK)LAH_H 36.1916 + @@DKK;`3'X+K%6]"b3\'<,/HUtTJginA4[LT3YRWg^&f]!*`S\#Z7VX5M1&2S:W1\.UiXXT 36.1917 + lJ@>,El4f;N^l/GeE?2G9m8l7KU?YCbH03d[m#VCc!UVn33cg4uYS&Z".rY<'4mH@d_?0;s 36.1918 + 4BZ?i@GEBYpWc)$mb/XF#R3kd2WMmN7OZm`\rHE)&,5IBr+/DF1#gK6%R>Ru-`T-D[k>'mU 36.1919 + Xe#/X]UcWT;4*JXGf=0Hu\3er[>D\32fspluVckTM<<WaFGIuVM]UR*WgX!P:1?h>q0H8c[ 36.1920 + gY]^aj1\a\^74H&g[Dlro=nN(^RP,8g],&/"2J.H^mkeJg^h4@'>[oi_42I\g`OBQ,Jm\5_ 36.1921 + ON-ngb6Pb1W*HV_jig+gcr^s6c<5"`10K=geYm/;oN!C`LL/OggA&@A&_bd`gghagi(4QF2 36.1922 + qO0a..LsgjdBbK?.;QaIJ10glKM:!'gSe~>Q 36.1923 +Q 36.1924 +showpage 36.1925 +%%Trailer 36.1926 +count op_count sub {pop} repeat 36.1927 +countdictstack dict_count sub {end} repeat 36.1928 +cairo_eps_state restore 36.1929 +%%EOF
37.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 37.2 +++ b/0__Papers/PRT/PRT__formal_def/figures/VMS-core__internal_workings.svg Sat Aug 03 19:24:22 2013 -0700 37.3 @@ -0,0 +1,1010 @@ 37.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 37.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 37.6 + 37.7 +<svg 37.8 + xmlns:dc="http://purl.org/dc/elements/1.1/" 37.9 + xmlns:cc="http://creativecommons.org/ns#" 37.10 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 37.11 + xmlns:svg="http://www.w3.org/2000/svg" 37.12 + xmlns="http://www.w3.org/2000/svg" 37.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 37.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 37.15 + width="744.09448819" 37.16 + height="1052.3622047" 37.17 + id="svg2" 37.18 + sodipodi:version="0.32" 37.19 + inkscape:version="0.47 r22583" 37.20 + sodipodi:docname="VMS-core__internal_workings.svg" 37.21 + inkscape:output_extension="org.inkscape.output.svg.inkscape" 37.22 + version="1.1"> 37.23 + <defs 37.24 + id="defs4"> 37.25 + <marker 37.26 + inkscape:stockid="Arrow2Mend" 37.27 + orient="auto" 37.28 + refY="0.0" 37.29 + refX="0.0" 37.30 + id="Arrow2Mend" 37.31 + style="overflow:visible;"> 37.32 + <path 37.33 + id="path3563" 37.34 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 37.35 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 37.36 + transform="scale(0.6) rotate(180) translate(0,0)" /> 37.37 + </marker> 37.38 + <marker 37.39 + inkscape:stockid="TriangleOutM" 37.40 + orient="auto" 37.41 + refY="0.0" 37.42 + refX="0.0" 37.43 + id="TriangleOutM" 37.44 + style="overflow:visible"> 37.45 + <path 37.46 + id="path3682" 37.47 + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " 37.48 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" 37.49 + transform="scale(0.4)" /> 37.50 + </marker> 37.51 + <marker 37.52 + inkscape:stockid="Arrow2Lend" 37.53 + orient="auto" 37.54 + refY="0.0" 37.55 + refX="0.0" 37.56 + id="Arrow2Lend" 37.57 + style="overflow:visible;"> 37.58 + <path 37.59 + id="path3557" 37.60 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 37.61 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 37.62 + transform="scale(1.1) rotate(180) translate(1,0)" /> 37.63 + </marker> 37.64 + <marker 37.65 + inkscape:stockid="Arrow1Mstart" 37.66 + orient="auto" 37.67 + refY="0.0" 37.68 + refX="0.0" 37.69 + id="Arrow1Mstart" 37.70 + style="overflow:visible"> 37.71 + <path 37.72 + id="path3542" 37.73 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 37.74 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" 37.75 + transform="scale(0.4) translate(10,0)" /> 37.76 + </marker> 37.77 + <marker 37.78 + inkscape:stockid="Arrow1Lend" 37.79 + orient="auto" 37.80 + refY="0.0" 37.81 + refX="0.0" 37.82 + id="Arrow1Lend" 37.83 + style="overflow:visible;"> 37.84 + <path 37.85 + id="path3539" 37.86 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 37.87 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" 37.88 + transform="scale(0.8) rotate(180) translate(12.5,0)" /> 37.89 + </marker> 37.90 + <marker 37.91 + inkscape:stockid="Arrow1Lstart" 37.92 + orient="auto" 37.93 + refY="0.0" 37.94 + refX="0.0" 37.95 + id="Arrow1Lstart" 37.96 + style="overflow:visible"> 37.97 + <path 37.98 + id="path3536" 37.99 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 37.100 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" 37.101 + transform="scale(0.8) translate(12.5,0)" /> 37.102 + </marker> 37.103 + <inkscape:perspective 37.104 + sodipodi:type="inkscape:persp3d" 37.105 + inkscape:vp_x="0 : 526.18109 : 1" 37.106 + inkscape:vp_y="0 : 1000 : 0" 37.107 + inkscape:vp_z="744.09448 : 526.18109 : 1" 37.108 + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" 37.109 + id="perspective10" /> 37.110 + <inkscape:perspective 37.111 + id="perspective4311" 37.112 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 37.113 + inkscape:vp_z="1 : 0.5 : 1" 37.114 + inkscape:vp_y="0 : 1000 : 0" 37.115 + inkscape:vp_x="0 : 0.5 : 1" 37.116 + sodipodi:type="inkscape:persp3d" /> 37.117 + <inkscape:perspective 37.118 + id="perspective4336" 37.119 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 37.120 + inkscape:vp_z="1 : 0.5 : 1" 37.121 + inkscape:vp_y="0 : 1000 : 0" 37.122 + inkscape:vp_x="0 : 0.5 : 1" 37.123 + sodipodi:type="inkscape:persp3d" /> 37.124 + <inkscape:perspective 37.125 + id="perspective4365" 37.126 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 37.127 + inkscape:vp_z="1 : 0.5 : 1" 37.128 + inkscape:vp_y="0 : 1000 : 0" 37.129 + inkscape:vp_x="0 : 0.5 : 1" 37.130 + sodipodi:type="inkscape:persp3d" /> 37.131 + <marker 37.132 + inkscape:stockid="Arrow2Mend" 37.133 + orient="auto" 37.134 + refY="0" 37.135 + refX="0" 37.136 + id="Arrow2Mend-9" 37.137 + style="overflow:visible"> 37.138 + <path 37.139 + id="path3563-4" 37.140 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 37.141 + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" 37.142 + transform="scale(-0.6,-0.6)" /> 37.143 + </marker> 37.144 + <inkscape:perspective 37.145 + id="perspective4423" 37.146 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 37.147 + inkscape:vp_z="1 : 0.5 : 1" 37.148 + inkscape:vp_y="0 : 1000 : 0" 37.149 + inkscape:vp_x="0 : 0.5 : 1" 37.150 + sodipodi:type="inkscape:persp3d" /> 37.151 + <marker 37.152 + inkscape:stockid="Arrow2Mend" 37.153 + orient="auto" 37.154 + refY="0" 37.155 + refX="0" 37.156 + id="Arrow2Mend-8" 37.157 + style="overflow:visible"> 37.158 + <path 37.159 + id="path3563-2" 37.160 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 37.161 + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" 37.162 + transform="scale(-0.6,-0.6)" /> 37.163 + </marker> 37.164 + <inkscape:perspective 37.165 + id="perspective4461" 37.166 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 37.167 + inkscape:vp_z="1 : 0.5 : 1" 37.168 + inkscape:vp_y="0 : 1000 : 0" 37.169 + inkscape:vp_x="0 : 0.5 : 1" 37.170 + sodipodi:type="inkscape:persp3d" /> 37.171 + <inkscape:perspective 37.172 + id="perspective14081" 37.173 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 37.174 + inkscape:vp_z="1 : 0.5 : 1" 37.175 + inkscape:vp_y="0 : 1000 : 0" 37.176 + inkscape:vp_x="0 : 0.5 : 1" 37.177 + sodipodi:type="inkscape:persp3d" /> 37.178 + <inkscape:perspective 37.179 + id="perspective14206" 37.180 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 37.181 + inkscape:vp_z="1 : 0.5 : 1" 37.182 + inkscape:vp_y="0 : 1000 : 0" 37.183 + inkscape:vp_x="0 : 0.5 : 1" 37.184 + sodipodi:type="inkscape:persp3d" /> 37.185 + <inkscape:perspective 37.186 + id="perspective14299" 37.187 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 37.188 + inkscape:vp_z="1 : 0.5 : 1" 37.189 + inkscape:vp_y="0 : 1000 : 0" 37.190 + inkscape:vp_x="0 : 0.5 : 1" 37.191 + sodipodi:type="inkscape:persp3d" /> 37.192 + <inkscape:perspective 37.193 + id="perspective3233" 37.194 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 37.195 + inkscape:vp_z="1 : 0.5 : 1" 37.196 + inkscape:vp_y="0 : 1000 : 0" 37.197 + inkscape:vp_x="0 : 0.5 : 1" 37.198 + sodipodi:type="inkscape:persp3d" /> 37.199 + <marker 37.200 + inkscape:stockid="Arrow2Mend" 37.201 + orient="auto" 37.202 + refY="0" 37.203 + refX="0" 37.204 + id="Arrow2Mend-8-1" 37.205 + style="overflow:visible"> 37.206 + <path 37.207 + id="path3563-2-7" 37.208 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 37.209 + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" 37.210 + transform="scale(-0.6,-0.6)" /> 37.211 + </marker> 37.212 + <marker 37.213 + inkscape:stockid="Arrow2Mend" 37.214 + orient="auto" 37.215 + refY="0" 37.216 + refX="0" 37.217 + id="marker3239" 37.218 + style="overflow:visible"> 37.219 + <path 37.220 + id="path3241" 37.221 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 37.222 + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" 37.223 + transform="scale(-0.6,-0.6)" /> 37.224 + </marker> 37.225 + <inkscape:perspective 37.226 + id="perspective3353" 37.227 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 37.228 + inkscape:vp_z="1 : 0.5 : 1" 37.229 + inkscape:vp_y="0 : 1000 : 0" 37.230 + inkscape:vp_x="0 : 0.5 : 1" 37.231 + sodipodi:type="inkscape:persp3d" /> 37.232 + <inkscape:perspective 37.233 + id="perspective3447" 37.234 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 37.235 + inkscape:vp_z="1 : 0.5 : 1" 37.236 + inkscape:vp_y="0 : 1000 : 0" 37.237 + inkscape:vp_x="0 : 0.5 : 1" 37.238 + sodipodi:type="inkscape:persp3d" /> 37.239 + <marker 37.240 + inkscape:stockid="Arrow2Mend" 37.241 + orient="auto" 37.242 + refY="0" 37.243 + refX="0" 37.244 + id="Arrow2Mend-8-5" 37.245 + style="overflow:visible"> 37.246 + <path 37.247 + id="path3563-2-5" 37.248 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 37.249 + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" 37.250 + transform="scale(-0.6,-0.6)" /> 37.251 + </marker> 37.252 + <marker 37.253 + inkscape:stockid="Arrow2Mend" 37.254 + orient="auto" 37.255 + refY="0" 37.256 + refX="0" 37.257 + id="marker3453" 37.258 + style="overflow:visible"> 37.259 + <path 37.260 + id="path3455" 37.261 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 37.262 + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" 37.263 + transform="scale(-0.6,-0.6)" /> 37.264 + </marker> 37.265 + <inkscape:perspective 37.266 + id="perspective4753" 37.267 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 37.268 + inkscape:vp_z="1 : 0.5 : 1" 37.269 + inkscape:vp_y="0 : 1000 : 0" 37.270 + inkscape:vp_x="0 : 0.5 : 1" 37.271 + sodipodi:type="inkscape:persp3d" /> 37.272 + <marker 37.273 + inkscape:stockid="Arrow2Mend" 37.274 + orient="auto" 37.275 + refY="0" 37.276 + refX="0" 37.277 + id="Arrow2Mend-8-12" 37.278 + style="overflow:visible"> 37.279 + <path 37.280 + id="path3563-2-3" 37.281 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 37.282 + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" 37.283 + transform="scale(-0.6,-0.6)" /> 37.284 + </marker> 37.285 + <inkscape:perspective 37.286 + id="perspective4850" 37.287 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 37.288 + inkscape:vp_z="1 : 0.5 : 1" 37.289 + inkscape:vp_y="0 : 1000 : 0" 37.290 + inkscape:vp_x="0 : 0.5 : 1" 37.291 + sodipodi:type="inkscape:persp3d" /> 37.292 + <marker 37.293 + inkscape:stockid="Arrow2Mend" 37.294 + orient="auto" 37.295 + refY="0" 37.296 + refX="0" 37.297 + id="Arrow2Mend-8-8" 37.298 + style="overflow:visible"> 37.299 + <path 37.300 + id="path3563-2-74" 37.301 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 37.302 + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" 37.303 + transform="scale(-0.6,-0.6)" /> 37.304 + </marker> 37.305 + <inkscape:perspective 37.306 + id="perspective4850-7" 37.307 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 37.308 + inkscape:vp_z="1 : 0.5 : 1" 37.309 + inkscape:vp_y="0 : 1000 : 0" 37.310 + inkscape:vp_x="0 : 0.5 : 1" 37.311 + sodipodi:type="inkscape:persp3d" /> 37.312 + <marker 37.313 + inkscape:stockid="Arrow2Mend" 37.314 + orient="auto" 37.315 + refY="0" 37.316 + refX="0" 37.317 + id="Arrow2Mend-8-7" 37.318 + style="overflow:visible"> 37.319 + <path 37.320 + id="path3563-2-9" 37.321 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 37.322 + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" 37.323 + transform="scale(-0.6,-0.6)" /> 37.324 + </marker> 37.325 + <inkscape:perspective 37.326 + id="perspective4914" 37.327 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 37.328 + inkscape:vp_z="1 : 0.5 : 1" 37.329 + inkscape:vp_y="0 : 1000 : 0" 37.330 + inkscape:vp_x="0 : 0.5 : 1" 37.331 + sodipodi:type="inkscape:persp3d" /> 37.332 + <inkscape:perspective 37.333 + id="perspective4946" 37.334 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 37.335 + inkscape:vp_z="1 : 0.5 : 1" 37.336 + inkscape:vp_y="0 : 1000 : 0" 37.337 + inkscape:vp_x="0 : 0.5 : 1" 37.338 + sodipodi:type="inkscape:persp3d" /> 37.339 + </defs> 37.340 + <sodipodi:namedview 37.341 + id="base" 37.342 + pagecolor="#ffffff" 37.343 + bordercolor="#666666" 37.344 + borderopacity="1.0" 37.345 + gridtolerance="10000" 37.346 + guidetolerance="10" 37.347 + objecttolerance="10" 37.348 + inkscape:pageopacity="0.0" 37.349 + inkscape:pageshadow="2" 37.350 + inkscape:zoom="2.34" 37.351 + inkscape:cx="470.48905" 37.352 + inkscape:cy="738.60096" 37.353 + inkscape:document-units="px" 37.354 + inkscape:current-layer="layer1" 37.355 + showgrid="false" 37.356 + inkscape:window-width="1585" 37.357 + inkscape:window-height="1135" 37.358 + inkscape:window-x="239" 37.359 + inkscape:window-y="0" 37.360 + inkscape:window-maximized="0" /> 37.361 + <metadata 37.362 + id="metadata7"> 37.363 + <rdf:RDF> 37.364 + <cc:Work 37.365 + rdf:about=""> 37.366 + <dc:format>image/svg+xml</dc:format> 37.367 + <dc:type 37.368 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 37.369 + <dc:title /> 37.370 + </cc:Work> 37.371 + </rdf:RDF> 37.372 + </metadata> 37.373 + <g 37.374 + inkscape:label="Layer 1" 37.375 + inkscape:groupmode="layer" 37.376 + id="layer1"> 37.377 + <text 37.378 + xml:space="preserve" 37.379 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60163802;stroke-opacity:1;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 37.380 + x="441.66748" 37.381 + y="404.66492" 37.382 + id="text8002" 37.383 + sodipodi:linespacing="100%"><tspan 37.384 + sodipodi:role="line" 37.385 + x="441.66748" 37.386 + y="404.66492" 37.387 + style="font-size:8px" 37.388 + id="tspan12172" /></text> 37.389 + <text 37.390 + xml:space="preserve" 37.391 + style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 37.392 + x="435.16418" 37.393 + y="244.9225" 37.394 + id="text5831"><tspan 37.395 + sodipodi:role="line" 37.396 + id="tspan5833" 37.397 + x="435.16418" 37.398 + y="244.9225"><tspan 37.399 + style="fill:#159415;fill-opacity:1" 37.400 + id="tspan5843">Green</tspan> = VMS-core</tspan></text> 37.401 + <text 37.402 + id="text5835" 37.403 + y="245.02016" 37.404 + x="530.34119" 37.405 + style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 37.406 + xml:space="preserve"><tspan 37.407 + y="245.02016" 37.408 + x="530.34119" 37.409 + id="tspan5837" 37.410 + sodipodi:role="line"><tspan 37.411 + style="fill:#0303b8;fill-opacity:1" 37.412 + id="tspan5845">Blue</tspan> = application</tspan></text> 37.413 + <text 37.414 + xml:space="preserve" 37.415 + style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 37.416 + x="360.28989" 37.417 + y="245.02016" 37.418 + id="text5839"><tspan 37.419 + sodipodi:role="line" 37.420 + id="tspan5841" 37.421 + x="360.28989" 37.422 + y="245.02016"><tspan 37.423 + style="fill:#960a0a;fill-opacity:1" 37.424 + id="tspan5847">Red</tspan> = plug-in</tspan></text> 37.425 + <text 37.426 + xml:space="preserve" 37.427 + style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 37.428 + x="368.25397" 37.429 + y="405.27225" 37.430 + id="text5849"><tspan 37.431 + sodipodi:role="line" 37.432 + id="tspan5851" 37.433 + x="368.25397" 37.434 + y="405.27225" /></text> 37.435 + <path 37.436 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.50000001, 0.50000001;stroke-dashoffset:0;marker-end:url(#Arrow2Mend-8)" 37.437 + d="M 289.73631,397.76803 C 263.95998,384.0618 244.9124,373.07853 244.9124,373.07853" 37.438 + id="path6066-9-4" 37.439 + sodipodi:nodetypes="cc" /> 37.440 + <rect 37.441 + y="231.42043" 37.442 + x="157.23335" 37.443 + height="194.79402" 37.444 + width="457.79532" 37.445 + id="rect18326-3" 37.446 + style="opacity:0.3142857;fill:none;stroke:#000000;stroke-width:0.09999995;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.39999999, 0.39999999;stroke-dashoffset:0" /> 37.447 + <path 37.448 + sodipodi:nodetypes="cc" 37.449 + id="path3602" 37.450 + d="m 261.4119,372.41344 c 26.46687,13.70623 46.02474,24.6895 46.02474,24.6895" 37.451 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.5, 0.5;stroke-dashoffset:0;marker-end:url(#Arrow2Mend-8)" /> 37.452 + <g 37.453 + id="g3232" 37.454 + transform="translate(0,-1.1337509)"> 37.455 + <rect 37.456 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 37.457 + id="rect3614" 37.458 + width="131.25447" 37.459 + height="68.687347" 37.460 + x="352.18222" 37.461 + y="309.504" /> 37.462 + <text 37.463 + sodipodi:linespacing="100%" 37.464 + id="text3639" 37.465 + y="318.80692" 37.466 + x="417.67981" 37.467 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 37.468 + xml:space="preserve"><tspan 37.469 + y="318.80692" 37.470 + x="417.67981" 37.471 + sodipodi:role="line" 37.472 + id="tspan3641" 37.473 + style="font-size:9px;text-align:center;text-anchor:middle">Physical-Core Controller</tspan><tspan 37.474 + id="tspan3661" 37.475 + y="327.80692" 37.476 + x="417.67981" 37.477 + sodipodi:role="line" 37.478 + style="font-size:9px;text-align:center;text-anchor:middle">(pthread)</tspan></text> 37.479 + <g 37.480 + transform="translate(69.355022,-312.20049)" 37.481 + id="g3647"> 37.482 + <rect 37.483 + style="fill:none;stroke:#159415;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:4.32072499, 4.32072499;stroke-dashoffset:0" 37.484 + id="rect3649" 37.485 + width="61.691765" 37.486 + height="16.01606" 37.487 + x="317.60855" 37.488 + y="667.70459" /> 37.489 + <text 37.490 + sodipodi:linespacing="100%" 37.491 + id="text3651" 37.492 + y="678.71558" 37.493 + x="347.65115" 37.494 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 37.495 + xml:space="preserve"><tspan 37.496 + y="678.71558" 37.497 + x="347.65115" 37.498 + sodipodi:role="line" 37.499 + id="tspan3653" 37.500 + style="font-size:9px;text-align:center;text-anchor:middle">core_loop</tspan></text> 37.501 + </g> 37.502 + </g> 37.503 + <path 37.504 + sodipodi:nodetypes="cc" 37.505 + id="path3655" 37.506 + d="M 318.49369,397.76803 C 357.52667,383.08168 386.37044,371.313 386.37044,371.313" 37.507 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.49999999, 0.49999999;stroke-dashoffset:0;marker-end:url(#Arrow2Mend-8)" /> 37.508 + <g 37.509 + id="g3242" 37.510 + transform="translate(0,-1.1337509)"> 37.511 + <rect 37.512 + y="309.504" 37.513 + x="532.18225" 37.514 + height="68.687347" 37.515 + width="78.674728" 37.516 + id="rect4725" 37.517 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 37.518 + <text 37.519 + xml:space="preserve" 37.520 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 37.521 + x="571.67981" 37.522 + y="322.80692" 37.523 + id="text4727" 37.524 + sodipodi:linespacing="100%"><tspan 37.525 + style="font-size:9px;text-align:center;text-anchor:middle" 37.526 + sodipodi:role="line" 37.527 + x="571.67981" 37.528 + y="322.80692" 37.529 + id="tspan4731">slaveVP</tspan></text> 37.530 + <g 37.531 + transform="translate(230.36868,-317.52206)" 37.532 + id="g4733"> 37.533 + <rect 37.534 + y="673.02618" 37.535 + x="316.63855" 37.536 + height="16.01606" 37.537 + width="47.791374" 37.538 + id="rect4737" 37.539 + style="fill:none;stroke:#0303b8;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:4.320725, 4.320725;stroke-dashoffset:0" /> 37.540 + <text 37.541 + xml:space="preserve" 37.542 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 37.543 + x="340.63751" 37.544 + y="684.03717" 37.545 + id="text4739" 37.546 + sodipodi:linespacing="100%"><tspan 37.547 + style="font-size:9px;text-align:center;text-anchor:middle" 37.548 + id="tspan4741" 37.549 + sodipodi:role="line" 37.550 + x="340.63751" 37.551 + y="684.03717">top_VP_fn</tspan></text> 37.552 + </g> 37.553 + </g> 37.554 + <g 37.555 + id="g5001" 37.556 + transform="translate(-104.17459,-375.52206)"> 37.557 + <text 37.558 + sodipodi:linespacing="100%" 37.559 + id="text4834" 37.560 + y="619.79431" 37.561 + x="339.56277" 37.562 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 37.563 + xml:space="preserve"><tspan 37.564 + y="619.79431" 37.565 + x="339.56277" 37.566 + sodipodi:role="line" 37.567 + id="tspan4836" 37.568 + style="font-size:9px;text-align:center;text-anchor:middle">Shared Parallelism-Semantic State</tspan><tspan 37.569 + id="tspan4838" 37.570 + y="628.79431" 37.571 + x="339.56277" 37.572 + sodipodi:role="line" 37.573 + style="font-size:9px;text-align:center;text-anchor:middle" /></text> 37.574 + <rect 37.575 + style="fill:none;stroke:#960a0a;stroke-width:1.07999992;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:4.32000008, 4.32000008;stroke-dashoffset:0" 37.576 + id="rect4840" 37.577 + width="149.25206" 37.578 + height="12.695431" 37.579 + x="264.97189" 37.580 + y="610.18365" /> 37.581 + </g> 37.582 + <path 37.583 + sodipodi:nodetypes="cc" 37.584 + id="path4883" 37.585 + d="m 205.94834,249.27344 c -0.0417,34.47629 -0.0725,62.1034 -0.0725,62.1034" 37.586 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.49999999, 0.49999999;stroke-dashoffset:0;marker-end:url(#Arrow2Mend-8)" /> 37.587 + <path 37.588 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.49999999, 0.49999999;stroke-dashoffset:0;marker-end:url(#Arrow2Mend-8)" 37.589 + d="m 193.94834,311.61326 c -0.0417,-34.47628 -0.0725,-62.10333 -0.0725,-62.10333" 37.590 + id="path4885" 37.591 + sodipodi:nodetypes="cc" /> 37.592 + <path 37.593 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend-8)" 37.594 + d="m 530.74391,361.79676 c -25.49902,0.002 -44.34169,0.004 -44.34169,0.004" 37.595 + id="path4902" 37.596 + sodipodi:nodetypes="cc" /> 37.597 + <path 37.598 + sodipodi:nodetypes="cc" 37.599 + id="path4904" 37.600 + d="m 485.57785,337.79676 c 25.49902,0.002 44.34169,0.004 44.34169,0.004" 37.601 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend-8)" /> 37.602 + <text 37.603 + xml:space="preserve" 37.604 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 37.605 + x="508.8573" 37.606 + y="335.07925" 37.607 + id="text4721-1" 37.608 + sodipodi:linespacing="100%"><tspan 37.609 + style="font-size:8px;text-align:center;text-anchor:middle;fill:#159415;fill-opacity:1" 37.610 + id="tspan4723-9" 37.611 + sodipodi:role="line" 37.612 + x="508.8573" 37.613 + y="335.07925">Switch VPs</tspan></text> 37.614 + <text 37.615 + sodipodi:linespacing="100%" 37.616 + id="text4931" 37.617 + y="359.07925" 37.618 + x="508.8573" 37.619 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 37.620 + xml:space="preserve"><tspan 37.621 + y="359.07925" 37.622 + x="508.8573" 37.623 + sodipodi:role="line" 37.624 + id="tspan4933" 37.625 + style="font-size:8px;text-align:center;text-anchor:middle;fill:#159415;fill-opacity:1">Switch VPs</tspan></text> 37.626 + <g 37.627 + id="g4969" 37.628 + transform="translate(-12.174591,-319.52206)"> 37.629 + <path 37.630 + id="path17769-7" 37.631 + d="m 288.45515,727.81832 c 41.78708,0 41.78708,0 41.78708,0" 37.632 + style="fill:none;stroke:#159415;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:none" /> 37.633 + <text 37.634 + sodipodi:linespacing="100%" 37.635 + id="text17771-1" 37.636 + y="737.88684" 37.637 + x="288.42194" 37.638 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 37.639 + xml:space="preserve"><tspan 37.640 + style="font-size:9px" 37.641 + y="737.88684" 37.642 + x="288.42194" 37.643 + id="tspan17773-1" 37.644 + sodipodi:role="line">schedSlot</tspan></text> 37.645 + <path 37.646 + style="fill:none;stroke:#159415;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:none" 37.647 + d="m 348.45515,727.81832 c 41.78708,0 41.78708,0 41.78708,0" 37.648 + id="path17775-5" /> 37.649 + <text 37.650 + xml:space="preserve" 37.651 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 37.652 + x="348.42194" 37.653 + y="737.88684" 37.654 + id="text17777-2" 37.655 + sodipodi:linespacing="100%"><tspan 37.656 + sodipodi:role="line" 37.657 + id="tspan17779-7" 37.658 + x="348.42194" 37.659 + y="737.88684" 37.660 + style="font-size:9px">schedSlot</tspan></text> 37.661 + <text 37.662 + xml:space="preserve" 37.663 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 37.664 + x="286.49493" 37.665 + y="724.40527" 37.666 + id="text17771-1-8" 37.667 + sodipodi:linespacing="100%"><tspan 37.668 + sodipodi:role="line" 37.669 + id="tspan17773-1-6" 37.670 + x="286.49493" 37.671 + y="724.40527" 37.672 + style="font-size:9px">slaveVP ptr</tspan></text> 37.673 + </g> 37.674 + <rect 37.675 + y="262.49448" 37.676 + x="163.84431" 37.677 + height="161.39378" 37.678 + width="329.44443" 37.679 + id="rect4979" 37.680 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1.08018125, 6.48108746;stroke-dashoffset:0" /> 37.681 + <text 37.682 + xml:space="preserve" 37.683 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 37.684 + x="396.57816" 37.685 + y="273.16141" 37.686 + id="text4981" 37.687 + sodipodi:linespacing="100%"><tspan 37.688 + style="font-size:9px;text-align:center;text-anchor:middle" 37.689 + id="tspan4983" 37.690 + sodipodi:role="line" 37.691 + x="396.57816" 37.692 + y="273.16141">Repeated for each physical core</tspan></text> 37.693 + <text 37.694 + xml:space="preserve" 37.695 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 37.696 + x="263.94568" 37.697 + y="390.80692" 37.698 + id="text3911" 37.699 + sodipodi:linespacing="100%"><tspan 37.700 + style="font-size:9px;text-align:center;text-anchor:middle" 37.701 + id="tspan3913" 37.702 + sodipodi:role="line" 37.703 + x="263.94568" 37.704 + y="390.80692">1</tspan></text> 37.705 + <g 37.706 + id="g3195"> 37.707 + <rect 37.708 + y="271.504" 37.709 + x="172.18222" 37.710 + height="105.5536" 37.711 + width="131.25447" 37.712 + id="rect17981-6" 37.713 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 37.714 + <g 37.715 + transform="translate(-104.75363,-307.52206)" 37.716 + id="g3590"> 37.717 + <g 37.718 + transform="translate(-109.01365,39.321571)" 37.719 + id="g18019-8"> 37.720 + <text 37.721 + xml:space="preserve" 37.722 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 37.723 + x="419.38776" 37.724 + y="590.22229" 37.725 + id="text17967-5" 37.726 + sodipodi:linespacing="100%"><tspan 37.727 + style="font-size:9px;text-align:center;text-anchor:middle" 37.728 + id="tspan17969-7" 37.729 + sodipodi:role="line" 37.730 + x="419.38776" 37.731 + y="590.22229">comm_</tspan><tspan 37.732 + style="font-size:9px;text-align:center;text-anchor:middle" 37.733 + sodipodi:role="line" 37.734 + x="419.38776" 37.735 + y="599.22229" 37.736 + id="tspan17971-6">handler_fn</tspan></text> 37.737 + <rect 37.738 + y="580.86206" 37.739 + x="395.11298" 37.740 + height="22.365267" 37.741 + width="48.927513" 37.742 + id="rect17973-1" 37.743 + style="fill:none;stroke:#960a0a;stroke-width:1.08000004;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:4.32, 4.32;stroke-dashoffset:0" /> 37.744 + </g> 37.745 + <g 37.746 + id="g3604" 37.747 + transform="translate(-45.01365,39.321571)"> 37.748 + <text 37.749 + sodipodi:linespacing="100%" 37.750 + id="text3606" 37.751 + y="590.22229" 37.752 + x="419.38776" 37.753 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 37.754 + xml:space="preserve"><tspan 37.755 + y="590.22229" 37.756 + x="419.38776" 37.757 + sodipodi:role="line" 37.758 + id="tspan3608" 37.759 + style="font-size:9px;text-align:center;text-anchor:middle">scheduler_</tspan><tspan 37.760 + id="tspan3610" 37.761 + y="599.22229" 37.762 + x="419.38776" 37.763 + sodipodi:role="line" 37.764 + style="font-size:9px;text-align:center;text-anchor:middle">fn</tspan></text> 37.765 + <rect 37.766 + style="fill:none;stroke:#960a0a;stroke-width:1.08000004;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:4.32, 4.32;stroke-dashoffset:0" 37.767 + id="rect3612" 37.768 + width="48.927513" 37.769 + height="22.365267" 37.770 + x="395.11298" 37.771 + y="580.86206" /> 37.772 + </g> 37.773 + </g> 37.774 + <text 37.775 + xml:space="preserve" 37.776 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 37.777 + x="237.94568" 37.778 + y="280.80692" 37.779 + id="text17977-3-5" 37.780 + sodipodi:linespacing="100%"><tspan 37.781 + style="font-size:9px;text-align:center;text-anchor:middle" 37.782 + id="tspan17979-3-4" 37.783 + sodipodi:role="line" 37.784 + x="237.94568" 37.785 + y="280.80692">localMasterVP</tspan></text> 37.786 + <g 37.787 + transform="translate(-103.63132,-319.52206)" 37.788 + id="g3580"> 37.789 + <path 37.790 + sodipodi:nodetypes="cc" 37.791 + id="path18292-2" 37.792 + d="m 317.62527,671.29009 c -5.09448,-8.49068 -8.85909,-15.29455 -8.85909,-15.29455" 37.793 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.5, 0.5;stroke-dashoffset:0;marker-end:url(#Arrow2Mend-8)" /> 37.794 + <g 37.795 + transform="translate(-7.0136518,5.3215684)" 37.796 + id="g17983-3"> 37.797 + <rect 37.798 + style="fill:none;stroke:#159415;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:4.32072499, 4.32072499;stroke-dashoffset:0" 37.799 + id="rect17975-2" 37.800 + width="61.691765" 37.801 + height="16.01606" 37.802 + x="317.60855" 37.803 + y="667.70459" /> 37.804 + <text 37.805 + sodipodi:linespacing="100%" 37.806 + id="text17977-2" 37.807 + y="678.71558" 37.808 + x="347.65115" 37.809 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 37.810 + xml:space="preserve"><tspan 37.811 + y="678.71558" 37.812 + x="347.65115" 37.813 + sodipodi:role="line" 37.814 + id="tspan17979-1" 37.815 + style="font-size:9px;text-align:center;text-anchor:middle">master_loop</tspan></text> 37.816 + </g> 37.817 + <path 37.818 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.5, 0.5;stroke-dashoffset:0;marker-end:url(#Arrow2Mend-8)" 37.819 + d="m 374.32675,655.55365 c -5.09448,8.49068 -8.85909,15.29455 -8.85909,15.29455" 37.820 + id="path3578" 37.821 + sodipodi:nodetypes="cc" /> 37.822 + </g> 37.823 + <text 37.824 + xml:space="preserve" 37.825 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 37.826 + x="269.62048" 37.827 + y="298.02182" 37.828 + id="text4821" 37.829 + sodipodi:linespacing="100%"><tspan 37.830 + style="font-size:9px;text-align:center;text-anchor:middle" 37.831 + id="tspan4823" 37.832 + sodipodi:role="line" 37.833 + x="269.62048" 37.834 + y="298.02182">readyQ</tspan><tspan 37.835 + style="font-size:9px;text-align:center;text-anchor:middle" 37.836 + sodipodi:role="line" 37.837 + x="269.62048" 37.838 + y="307.02182" 37.839 + id="tspan4825" /></text> 37.840 + <rect 37.841 + y="288.66159" 37.842 + x="245.3457" 37.843 + height="12.695431" 37.844 + width="48.927513" 37.845 + id="rect4827" 37.846 + style="fill:none;stroke:#960a0a;stroke-width:1.08000004;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:4.32000001, 4.32000001;stroke-dashoffset:0" /> 37.847 + <path 37.848 + sodipodi:nodetypes="cc" 37.849 + id="path3576-2" 37.850 + d="m 227.16268,311.46504 c 9.78768,-7.86986 17.02037,-14.17623 17.02037,-14.17623" 37.851 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.49999999, 0.49999999;stroke-dashoffset:0;marker-end:url(#Arrow2Mend-8)" /> 37.852 + <path 37.853 + sodipodi:nodetypes="cc" 37.854 + id="path3576-3" 37.855 + d="m 271.94834,302.4222 c -0.0417,4.62441 -0.0725,8.33012 -0.0725,8.33012" 37.856 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.49999998, 0.49999998;stroke-dashoffset:0;marker-end:url(#Arrow2Mend-8)" /> 37.857 + <text 37.858 + xml:space="preserve" 37.859 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 37.860 + x="201.94568" 37.861 + y="348.80692" 37.862 + id="text3915" 37.863 + sodipodi:linespacing="100%"><tspan 37.864 + style="font-size:9px;text-align:center;text-anchor:middle" 37.865 + id="tspan3917" 37.866 + sodipodi:role="line" 37.867 + x="201.94568" 37.868 + y="348.80692">2</tspan></text> 37.869 + <text 37.870 + sodipodi:linespacing="100%" 37.871 + id="text3919" 37.872 + y="294.80692" 37.873 + x="199.94568" 37.874 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 37.875 + xml:space="preserve"><tspan 37.876 + y="294.80692" 37.877 + x="199.94568" 37.878 + sodipodi:role="line" 37.879 + id="tspan3921" 37.880 + style="font-size:9px;text-align:center;text-anchor:middle">3</tspan></text> 37.881 + <text 37.882 + xml:space="preserve" 37.883 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 37.884 + x="231.94568" 37.885 + y="302.80692" 37.886 + id="text3923" 37.887 + sodipodi:linespacing="100%"><tspan 37.888 + style="font-size:9px;text-align:center;text-anchor:middle" 37.889 + id="tspan3925" 37.890 + sodipodi:role="line" 37.891 + x="231.94568" 37.892 + y="302.80692">4</tspan></text> 37.893 + <text 37.894 + xml:space="preserve" 37.895 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 37.896 + x="261.94568" 37.897 + y="344.80692" 37.898 + id="text3931" 37.899 + sodipodi:linespacing="100%"><tspan 37.900 + style="font-size:9px;text-align:center;text-anchor:middle" 37.901 + id="tspan3933" 37.902 + sodipodi:role="line" 37.903 + x="261.94568" 37.904 + y="344.80692">5</tspan></text> 37.905 + </g> 37.906 + <text 37.907 + xml:space="preserve" 37.908 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 37.909 + x="297.94568" 37.910 + y="390.80692" 37.911 + id="text3935" 37.912 + sodipodi:linespacing="100%"><tspan 37.913 + style="font-size:9px;text-align:center;text-anchor:middle" 37.914 + id="tspan3937" 37.915 + sodipodi:role="line" 37.916 + x="297.94568" 37.917 + y="390.80692">6</tspan></text> 37.918 + <text 37.919 + sodipodi:linespacing="100%" 37.920 + id="text3939" 37.921 + y="390.80692" 37.922 + x="355.94568" 37.923 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 37.924 + xml:space="preserve"><tspan 37.925 + y="390.80692" 37.926 + x="355.94568" 37.927 + sodipodi:role="line" 37.928 + id="tspan3941" 37.929 + style="font-size:9px;text-align:center;text-anchor:middle">8</tspan></text> 37.930 + <text 37.931 + xml:space="preserve" 37.932 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 37.933 + x="503.94568" 37.934 + y="326.80692" 37.935 + id="text3951" 37.936 + sodipodi:linespacing="100%"><tspan 37.937 + style="font-size:9px;text-align:center;text-anchor:middle" 37.938 + id="tspan3953" 37.939 + sodipodi:role="line" 37.940 + x="503.94568" 37.941 + y="326.80692">9</tspan></text> 37.942 + <text 37.943 + sodipodi:linespacing="100%" 37.944 + id="text3955" 37.945 + y="350.80692" 37.946 + x="503.94568" 37.947 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 37.948 + xml:space="preserve"><tspan 37.949 + y="350.80692" 37.950 + x="503.94568" 37.951 + sodipodi:role="line" 37.952 + id="tspan3957" 37.953 + style="font-size:9px;text-align:center;text-anchor:middle">10</tspan></text> 37.954 + <path 37.955 + sodipodi:nodetypes="cc" 37.956 + id="path3175" 37.957 + d="m 350.74391,361.79676 c -25.49902,0.002 -44.34169,0.004 -44.34169,0.004" 37.958 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend-8)" /> 37.959 + <path 37.960 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend-8)" 37.961 + d="m 305.57785,337.79676 c 25.49902,0.002 44.34169,0.004 44.34169,0.004" 37.962 + id="path3177" 37.963 + sodipodi:nodetypes="cc" /> 37.964 + <text 37.965 + sodipodi:linespacing="100%" 37.966 + id="text3179" 37.967 + y="335.07925" 37.968 + x="328.8573" 37.969 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 37.970 + xml:space="preserve"><tspan 37.971 + y="335.07925" 37.972 + x="328.8573" 37.973 + sodipodi:role="line" 37.974 + id="tspan3181" 37.975 + style="font-size:8px;text-align:center;text-anchor:middle;fill:#159415;fill-opacity:1">Switch VPs</tspan></text> 37.976 + <text 37.977 + xml:space="preserve" 37.978 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 37.979 + x="328.8573" 37.980 + y="359.07925" 37.981 + id="text3183" 37.982 + sodipodi:linespacing="100%"><tspan 37.983 + style="font-size:8px;text-align:center;text-anchor:middle;fill:#159415;fill-opacity:1" 37.984 + id="tspan3185" 37.985 + sodipodi:role="line" 37.986 + x="328.8573" 37.987 + y="359.07925">Switch VPs</tspan></text> 37.988 + <text 37.989 + sodipodi:linespacing="100%" 37.990 + id="text3187" 37.991 + y="326.80692" 37.992 + x="323.94568" 37.993 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 37.994 + xml:space="preserve"><tspan 37.995 + y="326.80692" 37.996 + x="323.94568" 37.997 + sodipodi:role="line" 37.998 + id="tspan3189" 37.999 + style="font-size:9px;text-align:center;text-anchor:middle">7</tspan></text> 37.1000 + <text 37.1001 + xml:space="preserve" 37.1002 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 37.1003 + x="323.94568" 37.1004 + y="350.80692" 37.1005 + id="text3191" 37.1006 + sodipodi:linespacing="100%"><tspan 37.1007 + style="font-size:9px;text-align:center;text-anchor:middle" 37.1008 + id="tspan3193" 37.1009 + sodipodi:role="line" 37.1010 + x="323.94568" 37.1011 + y="350.80692">11</tspan></text> 37.1012 + </g> 37.1013 +</svg>
38.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 38.2 +++ b/0__Papers/PRT/PRT__formal_def/figures/VMS-core__plugins.eps Sat Aug 03 19:24:22 2013 -0700 38.3 @@ -0,0 +1,365 @@ 38.4 +%!PS-Adobe-3.0 EPSF-3.0 38.5 +%%Creator: cairo 1.8.6 (http://cairographics.org) 38.6 +%%CreationDate: Sun Oct 17 19:38:15 2010 38.7 +%%Pages: 1 38.8 +%%BoundingBox: 0 0 116 67 38.9 +%%DocumentData: Clean7Bit 38.10 +%%LanguageLevel: 2 38.11 +%%EndComments 38.12 +%%BeginProlog 38.13 +/cairo_eps_state save def 38.14 +/dict_count countdictstack def 38.15 +/op_count count 1 sub def 38.16 +userdict begin 38.17 +/q { gsave } bind def 38.18 +/Q { grestore } bind def 38.19 +/cm { 6 array astore concat } bind def 38.20 +/w { setlinewidth } bind def 38.21 +/J { setlinecap } bind def 38.22 +/j { setlinejoin } bind def 38.23 +/M { setmiterlimit } bind def 38.24 +/d { setdash } bind def 38.25 +/m { moveto } bind def 38.26 +/l { lineto } bind def 38.27 +/c { curveto } bind def 38.28 +/h { closepath } bind def 38.29 +/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto 38.30 + 0 exch rlineto 0 rlineto closepath } bind def 38.31 +/S { stroke } bind def 38.32 +/f { fill } bind def 38.33 +/f* { eofill } bind def 38.34 +/B { fill stroke } bind def 38.35 +/B* { eofill stroke } bind def 38.36 +/n { newpath } bind def 38.37 +/W { clip } bind def 38.38 +/W* { eoclip } bind def 38.39 +/BT { } bind def 38.40 +/ET { } bind def 38.41 +/pdfmark where { pop globaldict /?pdfmark /exec load put } 38.42 + { globaldict begin /?pdfmark /pop load def /pdfmark 38.43 + /cleartomark load def end } ifelse 38.44 +/BDC { mark 3 1 roll /BDC pdfmark } bind def 38.45 +/EMC { mark /EMC pdfmark } bind def 38.46 +/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def 38.47 +/Tj { show currentpoint cairo_store_point } bind def 38.48 +/TJ { 38.49 + { 38.50 + dup 38.51 + type /stringtype eq 38.52 + { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse 38.53 + } forall 38.54 + currentpoint cairo_store_point 38.55 +} bind def 38.56 +/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore 38.57 + cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def 38.58 +/Tf { pop /cairo_font exch def /cairo_font_matrix where 38.59 + { pop cairo_selectfont } if } bind def 38.60 +/Td { matrix translate cairo_font_matrix matrix concatmatrix dup 38.61 + /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point 38.62 + /cairo_font where { pop cairo_selectfont } if } bind def 38.63 +/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def 38.64 + cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def 38.65 +/g { setgray } bind def 38.66 +/rg { setrgbcolor } bind def 38.67 +/d1 { setcachedevice } bind def 38.68 +%%EndProlog 38.69 +%%Page: 1 1 38.70 +%%BeginPageSetup 38.71 +%%PageBoundingBox: 0 0 116 67 38.72 +%%EndPageSetup 38.73 +q 38.74 +Q q 38.75 +q 0 0 117 67 rectclip 38.76 +% Fallback Image: x=0, y=0, w=116, h=65 res=300dpi size=399300 38.77 +[ 0.24 0 0 0.24 0 0.327072 ] concat 38.78 +/DeviceRGB setcolorspace 38.79 +8 dict dup begin 38.80 + /ImageType 1 def 38.81 + /Width 484 def 38.82 + /Height 275 def 38.83 + /BitsPerComponent 8 def 38.84 + /Decode [ 0 1 0 1 0 1 ] def 38.85 + /DataSource currentfile /ASCII85Decode filter /LZWDecode filter def 38.86 + /ImageMatrix [ 1 0 0 -1 0 275 ] def 38.87 +end 38.88 +image 38.89 +J3I@:BHu(:pOk^R:T.dk*=mro@So+\<\5,H7Uo<*jE<[.O@Wn[3@'nb-^757;Rp>H>q_R=Al 38.90 + C^cenm@9:1mM9jS"!dTMT(d8$g?t7s\'HOJg#PSPQ1`C/m<k<ioH)<bk^Hj`\=EYZP^B4!g 38.91 + 3;B=(iZ<kDqOh/Bf.DHAorf'R[o?>ioWjnAY&^Hf#!Qo!:QLNm9ApfKo@"^St*EZ$@h7Iu_ 38.92 + dAb*B(hHM_+c/A3_/KTg;O43>N3c+5)[@l+5FLs\BULUaal`3%:<o887eo3Me/cP3]=PdZ! 38.93 + go`"\NO%+%3I?d9;j#,$np4Qs03bd8X)RpL$EoAk_=@@arU18[WS6S6H@0(,e%b2Fq7f.4D 38.94 + ^FtK.-a-^`ir&L%0OEX9GI`IODGpB_@VYP$,Ve*/ITH-bVY3W/8C>o*cVOQKd#X?9bX/(9N 38.95 + ;hHOZZn_7?NO1(WM6kAK/XoKPq^J0sl-?a0F-D'h>PLB,o"@,_I111+\T;ajP!l-d!&iT.% 38.96 + e/>a[.cdZeMs92bu*/kbcJV__#PoP$$N1M#)o:%M?)+j1Opk9%o(KO6Z6F4AYo:,E+N3D]7 38.97 + S$Tq2Sh"*j$'D3;6:imCW5#QKF,=>9a`@jVR['[;:;RD-F8Q#.+Ki:rn"\Vipojq&s7-Kf$ 38.98 + _Sb_TSJ.XGc#m=DQ0j!,fG4pM@G$ktNFUWW9pK;CQ>N1*g(o[EC"elTX_ZZ,c*_ECQL2A(g 38.99 + _UF=ESQm4c#_\W:"=CB22WBi.$5D:LW)d^m<d_,c1QMBQgOa$i"uq-J`)nJ%>3UV:)/KAQu 38.100 + 3q"iY[\%M;jo*/W8X+c8CUAR-m+uj;AFrOlVo_9p=ZV20BS3MB`J*?BIu]RHBp?D4B]+c?5 38.101 + ]@RI5KqkSaqbU$.ptNMGKY>YUNWW&A%=?FiV&WToqTXfLb+cF'e?RdRkmll-E@V&u.7m?bb 38.102 + [L1RW,Rr7&kmMh2J\aGrimCVg)-HTDpW&bNXT=`DQ_=3sJ%E%]U:DLk=Rg/S?A_M=UIHiq5 38.103 + /^*`*cS`u=SF8VekhLIRaI]tm.CJdg:K>s<SSqfcp)T12d<(p<.t3UdaN`Q8SaV!ap`9s!@ 38.104 + !J'lalE/&:R1%2IVq&SqAs"?l1^&^2HP5HVmYHE541ShO^?qahNOQa4?*3\+4ONnR+^6grE 38.105 + kB*k*pgLU\T:d[PdCdhoE)F+9NYtE"2h18'32$46_:!8bNO9h#&:!e/D.XNPR?G"C@kl*Nr 38.106 + c8_2"3S"2k7kOEoeM0dar7"=/4fnY%j0i4MRd[WMuM*^`a)%H55cLJ[C[6eHc4U')3_E;Cb 38.107 + H=H"rn6Q6`E/gEd:SIQ'!n7-Eh-cK26$Y%!pL7n)f7G)VrUB;P<nW#7l;%FPsf\qfeQ8S^K 38.108 + O>,Zn9T?<'.)e.H*9*n<O%adEa4TnqirE8A;3F/^fZkZ#9P]`p4Bb;,2^:beMi$u&E5uAV, 38.109 + bci9"4?[(8Vhd:6<bLp;L0EO#[4B6@utE-Q-$X\q%i';:5AsT+Uol1&L2[C'XHR;7ohJ^-0 38.110 + .(E!4FIHBnHm@%"eTP*ZR^r&iaK63gVC4--Nio'F[[$Rdt2g"M(]k=R9OcF%0dsW@9^``/p 38.111 + ,P2KV<3.5n&^ggdXACWZrP*i?TI@Y9,Y$b?4#kP?>CCaIe-\7FN!r32`ri`XH.(GsdgeY.$ 38.112 + ZN6DTr0]jokRPTMT:+<A,=Nos!ZpBXJ.GI9.`>4j4ac9.h2]-09KUJ'UN)D+P3geEYTl[qT 38.113 + a*H\dkFA*2PM(u=3MSd*S;2mH>(TA$QR\IdP$W"*KJ2U*0VZarX&X&?<SG,flNL^3eLDWi` 38.114 + Xq@'l[BoC!J"0pECMGnENW<e\lW)&?0f17LR"9[er%pBlYOSA',%r[>7G$-7>\9M/[3j*G@ 38.115 + )1E"fa>`WOdDV%4i64X#;`Y=kc)Pm002j9KL3]X!#5pPA%8-\UE&mDd4k7Z*m]Yg07cu<p_ 38.116 + Fu[-`mO&'/(iC]t-O2SRGjH]<%57EN)A0#knWQN\m&]sm=M[Tk:>@.%UZ]2rn<?/*$5D9Ou 38.117 + KC_"tF/#u[Q(]^u\IeI+&h0\UEhRkQ!nZXOeAM636](TmU?Q8rnn-/p/<YkL]$gPNCo6n,- 38.118 + UA`k?qge0j&].XG$9<JAJ_1/50oc14=<&9+XtCI-=H=)(>YN^f^!Nskos7i&o"P=A0b4!)) 38.119 + @67XM=JK<'3OZB0d36OiP=-f=Q^l=<uHlbPt`@KV:!Y(>7C'\;0)c5.RT/D1`1[''2[Unjk 38.120 + Q]!o)j-W)(R%$#\0(b^1#8])BIq:*tH5$EH.CO5%e-PSaU7\cU2n?BAE>kZQ^a-A.o.0N== 38.121 + VlZo_]a#].D_S"nb6NsWBJ6g7j8IIo.XdnPX.l.CELfLW<t;YFq:=FI(>7O?M$UK$O0]r6X 38.122 + L50_:r.L(]WUGHFDe_9HtlFU,^2<M_h)8o!4Adg_D6q5@opKYV\KsU6.)Qd,VBPge$'D96E 38.123 + e"[s/Cdo)'o%&tZHIj`c[NDsO-B?LLCJZ\[4MkQfYg/s5+)FZq_Y#tcfm;7.j1VS0g7H%4S 38.124 + -+@!8>Ec'S2qA^/V3@S&IpX]"3ULu3U&,W3`n<NN4[>`me.$i,K>o&X:ouBr\Y9FLBZd;T- 38.125 + `"bRq20;/*9Nh7W6[3^EL?(?r6<;m[/,h([!uF>j6e.YtlE%2]\(jdH7_gscEJaU#RIs 38.126 + U'^p*9.lV)qB_nDDX+kG=RH!VNY^:W$<)ZT/ok==pRJ3W%RbMnWHAZu[-%QZOed@D5]FU`H 38.127 + 1]0&4>h,/R=*[d`U,Z<IG(L$R`mCiARO_/RBJ\qt-jLiADkYU82EHl]U=6<\AIN'CsY3Ng1 38.128 + Rg8>"kDjf#SAk:Vn1d$LShPV5%XCjQi>o\WqqicZ.Y]SA55X=ns)0eX;#g7f&Uejf>!MrW3 38.129 + nql&fWWRrk9En?qQ(dCG>,Zdq5cXQr@/k1s,6^+5?P5KU\6C5&AGmIfTN;i7)OKs^&NEbms 38.130 + HeS`F],J.!!a3:1=aB@*^`cjs:#(o'nBf!N&?b93>OfNZHIq!i$5H0HBX:l2V?l?Orn*%7F 38.131 + OkieHmXs.BAdL%<WPNf^Cha6rBS:)<Q#%093pTkJQ:cX-c.FCWRk*hsY3Ab*7Q5f)r5j__G 38.132 + ]DfT3'DUtZQ$#HPIY+"_YZ<se9QKAU50VXAa;IFHX$]o0)&=E2gD[<Sg@k`6"n:J>(f*neg 38.133 + $RfunjmrU_!<<CF#po65/@bT=nH3YOdI!8)7JR=g"R[hQ"lKCVOMlo$)%]7t&WkZ>c*e2r, 38.134 + nb2E*DnB7-Hc*6bkPuGLN(iWmB$BH!>#f)fdLtScNmls2ZooEoM;:.7M-6P&HpEF?dWCkcq 38.135 + P6%6Pf2Wngqel/mAuA?MI=I]$WXY0m_OcDZn.$$ml&U-1Me6!q58')@sp;L(t0=D\fU%)Ng 38.136 + 3]Oab8hK$\>ZfBgqnYgjU'^=CRp)6f^e9g"38lsK8kU626YEUO*O]c(R/n\tkUW-%sb)]s( 38.137 + NplWG!/#;a:JCTd@LJ^8YX]#S*D\\!*i95M(7K4&s`<=HK'SYu7m&q+!OC+r\f!,/N0+'Eg 38.138 + >_b&(?a*5P;>eT+#6#'$LTQCT`Uo=QjNbaQ+#4tsOq+l1JJ`Ac(p"Sln;/O[;%EqN->!DAn 38.139 + lfF!QiI[&%Z,fe`UPEkfdd7!,"SaYL%cIA$O^qea0LsQbFGZ8<?Vs+`NkC'0[dl0+"Ze0,> 38.140 + QZpOH,(ck$TsH"-Htu'(V$`[16*Z/1g)N%N&TY[#))_?df:>Y!g>"]a$=Vo+HYaP1h'Od_? 38.141 + ARQ1<<P1FgcA:tZD_p1S@h"p5t[%akOUP*/l/N9]WS8De6a!=mW"mDAB*:>K`1+@ZdbP7KT 38.142 + [Rb3es?k),F;T&PEk319AkAgkc0!-npaXD3h#P1"t''1-4T^kuD4*/'JPGGq@L3Bj?..SB? 38.143 + ;nkIOeNI[74=h(,Cn2Qi4Xh&t5-sW?lG5X-1HlEf5#N<2'Ce=E"[H]d5=PSBKDtGjb7h5.1 38.144 + _^6^oH?OK"[L'*!Y'Ze6%)*D<C:jf(Gn9A<'`o/6uFh0?aMC)oLD>,<CLN^`k`\t1grj1@N 38.145 + )Uf','+WP)VnpF[pOuF&73Ee8n-eKh-<AD_t6\[#mp:P\mdg8T^LpoUt+uq&#:R8i3YBoW\ 38.146 + )[a!"*T3qTaOoYF3J3D$Ts9XN&<jrmE_d7n`99sbF'Eo04Uh+i(V9[nO/P_*eoUB7gu:UL' 38.147 + ro`7lH"]0=J:pga/oat%Y'iB)k;7.EAoc[3j,uSk7;RJ)SoeBB&-8D@o!qeELog)P779"D$ 38.148 + <4,G"ohe^H<E4/UIn)X1oG2?0N=5Dn<jcdFol4%jF]W^2=0TE9L%:URI9:WK=LF,jooWB7P 38.149 + ujuIF0sIu8b#r+V-8#@>.(J9os%T^csN&l>;a)uotalj`E[PF=f48_jn9R7e=[-H%L/t7Fi 38.150 + drIj^*)o?FB-T[=DU!]3b1+?a]i>p&S6;b]@k;bg=^D&;;`KV-XFL`g.WRp*!m'-";$H@^[ 38.151 + jtp+^&82.LeiA%"O1p-E4I7:^R5A@>3Cp/,BZ<Fp=r$T;7Fead&>p4mfoB!uPgp2O_'F_>l 38.152 + CB=<5$p46l'<eiR<8(&&:1]%Fn&MrRW@=S?9FR$Y\pkJKO?Ii`)etTrX/;KOKCOoi.i2^ZP 38.153 + `GAJb4nCHXP]9<lmpS$!Bbm7S(:(^kV>qC3+82lDG2g:Q[YK%;CNN0UQ-`l=fg41*=t"H0( 38.154 + @o0tkAI`s@94)R[e>JWqJ0.2?ZfdAe'1,^Z#/]?EVC0089o32Ys+L:^%WabL]VBo.UQ0CX` 38.155 + V6/2bA(7%#5W2FK=)7FgbY$)f<'#\X-'H(FI*6d][]C-s"YVQSCdm1hubE#FBbM[r@HE\TD 38.156 + p4H0a.-k\k\mZ#sXLE&V3OVR(QWXLn5$?ak5uQc?QpYQ,KHCA55F$RJHQo5I`uHoGYlpM51 38.157 + -Z[B6Z"h.uk9='%jg8oLQZ1j/4"A^#'%rHOVG!J0FGOp=mQ%,-CHC'tM99k$/;RrJ2\a5Ls 38.158 + %*LgmQ%>.*I0Pa[=>7:Q-sp'%Kf=E:f"$EF_0tG6He+O:[[Va>T6%MJJp0J8G=@#5_2#(RK 38.159 + 1J@P=:2Ff%m"oqKNDN8p\np[;2C-kKlr$"bP@$_MhW#CL.8q4L$a#m7UF[OLH$?1=<i_sB8 38.160 + Y74M\`RW95fX+fo,t3L;iR#\F@hgp`+PSN7];/R,GE_fk+@BD]&Vb\E/Pa4"XQ!**>Pi'k2 38.161 + (5Vi^4UOERaf[iLWi4-:l,keN%=q*C5G]p*VU'3<RW7d#q[1pgC;DV6agR9$S<3Eapo@+c` 38.162 + A\Q+qG5F&`_QV0c5FjEf#:IPKPQT9H"R<b(m9pk5WQkg!q=;Gd7NL>\>R5fnPq5KZ^\T1fc 38.163 + RJ<87(R&#>cZ&[\Rk#AFfV=t[':IF2D"F]'(=ejUFc@`)-e[!]q9b"Dn""a5FVp0>o;JkgD 38.164 + j\)uS>M@=g%K$Go:$X2Y8Pu63:3;?a**m[B\F&lVGX%3Z_JD-T=9B@\_E8=WKd\LRV%>LqD 38.165 + `#s23%H2U"VYV3^KJXCI)+@P$/6=`i#XO>%Cf<OP4l\g)b;N$`9<2DAl2^>'6b*5Gu%JWCj 38.166 + e$-SM2TNMbj;W@I8c':PuuYqegLWL71ob."AU/ZM*.XKa2e5s)2.rJ_^FBY(<)o5M`i%,?e 38.167 + c?.&;"/k7n[AL6qm'3<7`Bdi2rL=/ePb4<5*V<t)kmbA`B2c<c#NQT_I-*T!<Y\bJd]*oSh 38.168 + OT[BC0f!q/P&/E)lt\YqR<lZL>/YEi0;uD(IbH0!)V^jiSmm`ji@*F>dn(pj`6PM=&BLKE- 38.169 + 2TRa$J)Z/Z!1gI)f"Fc+#O6-\4HY0P#3s^CUWUP\-A#$]2#MU;K8)CM>0Z5-E3s+K<=]"l: 38.170 + E]B&Y=ciI#P:+?PAT`'.4_0h72S8,YfjIL'bQWk37mAl.WX^]<Sstj1Ap)`ZZr;>S4e7&fV 38.171 + f.Pd\u.+oes[*KU&9C0SbdcW8Ihgsi1j&:o0>d^^H[U(NOd_oR82!WOZI[c):(iq!rs/X\/ 38.172 + rCgg0Y__0ZlY2@.P5n?E]`BXFmHZKmpe&CmIa,T`7W-u_s0dS"%\L;g<VM2fJ"KX]kC:NN. 38.173 + >U=ZaWM_iA@Znf?P.^^?A,mQ<?dfh87Ib&=6=81D*Pg&-)s%ht\mHGl"hQY$@/++Le]>`4c 38.174 + )>P8[nb@Tra5AS`>kY.k]M\C_9.)AV>&Z?2Z8I_Fbt1YS+l$94<oEi[C,dR_PWI4ju4(Om; 38.175 + ?pI%")d7H]9e82%cBXc6<2t>h3;'qoo>'b$>jbgo>+ZYGQK,]@b6S=Ja2g/^@r^s'\^<8;Y 38.176 + &D9tl$U)Eir$I,Wb+jk7=XaA.`J*Eh(cD'4s0!Bmf&SScsC\^r1+f6P-,H&7Crp"2DfSsiI 38.177 + 0jrFV(C6Dkf&P_f*nO;"Tq'pf,!I`oK*OX`uD!?;hfWS#qL&p1pH.g__C7W8t>>`f##KkjJ 38.178 + ]Nlt&g-nb"e%>S1?2]K+rVkR?8sc+70YNn)`U>>&n\q#N,OLW6h=Mff>M;imjD_4Zr9j&\= 38.179 + il&FjrF1tP8i)d&;NC`j1ZXZ4ihADc/Ug>5(8H*Hc4Y;6=@7b!)1#OIV%8?BAVFg^SrsF^& 38.180 + crWFmMEolEL6PqkMZT\6p;4NP<6Y#.`^lNclJ,Bc`T%g#$r(kBm%Cl5i0_rha(mSLbgT`dO 38.181 + WLIAc0IpW3^(n=?90rlOYMs/uA9?eg$cruJf%JqlFTE*hYoB3jr&O7)OlGoKo=*^/>kA)7. 38.182 + *c2RkF*jt\<'AH)-faT4_S,`&>J&@!GI=B`-h\5.,!VX8dLYm#/^N*]Q(E8,;oD_'uT1!AM 38.183 + 8OiV$b<=OqR]H-de+L&<qjn\r^BsrF!R*+[d@RRN4SQiWoD$(Sp4'dFs+/'/Ckh??r8,k1F 38.184 + &^<>P&ERUq<(^"%gW^J#mGpP+V4?I/f>+R6fJ[pPYNYBKd#IfB[]R6(5KZ#&'5LE8G861AJ 38.185 + .MNmTBFS70f"nci@9-O%ndNRE0]"1RO4N<#QJ5B*G!JO-H'',l$>r6sVYcKhWFbU;7sJ#c1 38.186 + c,7t9,7K\I3d]fB$El\jLs7]+Nh>O.MeKeeudV`8E+.]$=P=g6Q=<`lZN$!aL*)`X4]h[$N 38.187 + b@'UXe?/E+/6c<T2fq)h&S^1s@)BBTS8YsmMobsB$HF$k0*]89]Am2_bBi(T9knEUY]p!Bk 38.188 + d]$aE>lBNmGl\sf/9f@lBkN"]oZ*Sq\Fo_788]`[g$a)99A83.]jQ]K0(?Hq+5)F\T0+jnM 38.189 + l4>BYnMN3ro_o/1\eWJ]@)BrDef'".?F<T\j*@f2$Z1E"":4Ubee,>VU0r?"ea225l&+WoG 38.190 + gRX9T%PU]8H15pF>XD%`Y^!b[VM[EMR@NTPD)G)`3PKY1klA$:^2Skt4M*\?XgukdkL3P+= 38.191 + n%Jg0n*nq%;_0sA_E/>t>X*j_+%X0BX=d57Nn^Mb;D.Ej1cY/8F3PeT+/1E%bp:1tm?[`QZ 38.192 + 3,bi/3K/3mhZf6$`UJ,Gh4.t#j4L^:U/G?nJ81YCD_fDjE6IU&<4&7`=aqIQ+&aG8rW%H29 38.193 + PrIqnlJX%gI7D^XB[VB55SM&>`Mq@]Y,4k]&fC,cnKbM%-rT=T0A)K2`@o19CZeA6Pd2XJf 38.194 + kZ0rVGX:/P)(a`lAK#Np'MUEgFDJ?Cf2$^RqK!,MPFm9(9/X]Z+$/0EKp*\DOaMESH+Gl8C 38.195 + KSK<sU>Ecp$mGDOJF:JnDpKl;_mni:t;JNAK)dM]H;Aaa]E_q'JatSG>R'h+1&T=X'\bK8k 38.196 + sKoqDn"ApMC:cf:rU+.ZI.iX)5im]HPL?q>GHK4*B__apeDKZbl3kdHG&/(6foKd+hMd^;O 38.197 + M@dbbFOR@t3D"u#%K4FdG<E/(FD-D;SE]mp@W*-,.S*p19qM&5/oOksY/FKTkkm20kK'A]K 38.198 + Z@_'MS/dsN#d"T2hl4j9RHt3=kAG70#=D8R83KDh1`L`8Q#8U2l^;kYT(7JOI>;Re9Dn_sp 38.199 + *P+CCnUM5@YN!6.i3WNWQ_@s$F<hc0sb;Ef/T:;?0XSt,@#hCAgk<gN2$+)#K#!_LaLgF./ 38.200 + ckA,$!&LA+QCbO9+'`s.XY:;<r.rJ(j3TY:mXg,lPo5q&i'cr[%mJ=l9<IE5W@,&B>JN*+M 38.201 + 3Zld3&((:p4K+ZVu&`13OmY.[AIK7S!-'+id:!$=$F,-RgdO(DLqc6IL\n&>+>aDaJ4b.2i 38.202 + &jF>(SnIK(!ep.NqjX:foo2HrIKEN0d]qs(A>:U1FcZM*,Z`_6fS(f'dQ*[Z8#mXRp<Hf_m 38.203 + .E3Pg@GqeX9<4V,2)-p_@f_U!V%ghe<ndsi>XKb#"Pt*XJ8ek31Ni3:SuYeh+!Ja/N<t9U^ 38.204 + Sl,s&2J<hn.nGCZ,6'*]L[=-/a#$Gk80d"76or]3?s9c?jJRg.1t+i+,/E;'9_(6c(597eF 38.205 + _5rRIc>lnM@?SW;#9#Xt&dD4!sU;/k1J,O%u-:OQTM[8'HOG9Ys+]#]1btHp`p72161(J5b 38.206 + U`&Y$($=pN0d?7-[lP`,ekYW.goU0DJZA.hoT=_=EM#rlqH[0Jk)K_MA=I$(^#)ik'21785 38.207 + >=#"BDQ'\/H80jq&;5SCN(oFU2m1LPe@@U$?@62J?/nM5h)'k"'2H"B9V3JET,A7tq+F+?H 38.208 + ,goJtGBiXK[1QN:iXCoY_ZaMS$u/0F.F[ob0FM;f3sn//UmZ*d$p?s.-\dH)65:_@\`&$,[ 38.209 + U+IiSp8G9O/R'VLK&j^Qfu[!/[Y'3a_#0V.=EIQca%=aLZqF1I=&/_o[M>.AjWJu'5b*1!) 38.210 + `$<;]`hU-W2e5`6o#VaE<4f2&0jlE[kA[rAb1l4R0eQ4@CE^&Z.FeMUq)(/r5c!/6!ID]gB 38.211 + \=#d%I$b_!B'l:C4kZ`]c1*Lfd'rGZWh_^P3[GI3dtip"'lT:c3Z&Cor?e9"P<'uGK"U)ud 38.212 + %XcTPO<2!=XW48\(14lkmcqg,U!hdAE@J2I6dG%VsTWOn3[l3ESX)CXJbH,SkhVM/"I,;"0 38.213 + /r19_(Dof@QPMa&73tY)d&\(=DD[iS&pEA42Zme6"gA<2P`8'Z.^3*`GdEAtWS+Q`IHqLD, 38.214 + *FkfTrEhJ/WgaZQ%6@']&$JF4H2/$O]c%[=^<I5K<Gn)kt$\59BbD&/bm(#21-TND++KJ2? 38.215 + %d+H]I*'9G4mQnd<TW^BVgg<kQ@$)Wh?f6!r(3[D`K[?O<#eP-.TYVM?6*m!YGrQ:o2]IT- 38.216 + t?pGh^X0QjS/M20mu'm*K7%XL">=/u(g$(ZmtKG,i#m&,"`\Z<Sc/O?rfC@?".VBaR>!*`> 38.217 + >p>UP$`oKJY&58Tko6t8YBgm[l'2+pQY'Iip%nRf,_T)-M,1's$PJ]^0:\=NsdM;3m5]a3" 38.218 + <pmZMADXcQn=-74WMS(LF(Mp/kH"#nj!\,hZOj-i@S*/i=BD_d?UBI%%^*C\dg38Fc0`2HC 38.219 + m!')CI#@UqE)2'"5meYPoI912)[RNfd+]dB`%qun/X+;R@'r,M^>LrL>1aICMr*:^?B\o>h 38.220 + nDsa%dg#W+Aq+.Q3J@J.64RG+kk!4J:%S4\7^\bidETUpBTP>73>.I8m#e;j4<g%!!]9+o< 38.221 + dFm*6gQ\=G21[NoN"4bKk\cQ2>/bE(G;/XJ0/V`X68R?72peo-":/?kr8mOg8-[heJ`e8Fo 38.222 + 9IX5NdL$F?i%DHp^2Fgb8IXPB4h<8;oe#/NDaS,WZddF.Aq`g80DhuF#Y.Elor`\YFgTe=? 38.223 + %--er6,pU:LiP6W]*OE8Xp.514d0ALI)N>ZKKA7fIAB4bX[sHpjM?2K$1-OSIW#,bK62-Td 38.224 + W@%l,(;$Mpr&S-I#c\H\%b!$m="'T+Q6UN(oinV/ZJ=RVsLt_3$+ds^+kK=6s.aKH+5#`r: 38.225 + @Y5^@MR%H7U9HoI8rK58PeGKbSdOXcVrtnqjo]kJ/bO&JGta!]Rd.H*DgSP+'lT:l%<&M(4 38.226 + FN$EI:$fV^r14sjcgRp'GDoA^*,j9`^%Ru73Kqo$!c`O^]AYS5'eU[8l)&\DPq2r!pii?uI 38.227 + QadeP@P^E-7YjXBbF,ud>%f>36C\T?Rq(*]A.#]/qo62YcbR!_J]eG:!Gm(I!3P1+bYULtc 38.228 + Y^aMgQ'5VQ^[)uK^s>@k0YN*'-p^\/$,StfJjDqs^/Mq`A/BgWOI>uXZ;_qPK3>AL*lE(F5 38.229 + ,pM/.NbpQM)UqL`(F"*JNQ*<EPd%<6AmIe3CUVXTYLB\M8@A(!/W=CLI6U\]:fKq;")2]]S 38.230 + B0,Nq>3?$=L^>cG7k5$PXqSoAU^*49,LI#kU;?=I;C,kJ<AG[#@K\>VnjSUF4f%`b:&k^kK 38.231 + &c0IO*2XYBR[&PBp]kI&\'.\$JDqPqEEFh\j/`6a"8*)<%;-Gs5]2&ogbg/LS+P_tA3LhO5 38.232 + Z',3^a7M1!uPjr]?qXBV^1.IDb&1C!V1k^TFI7-oZ,FT_kgg7E'&Y1I7*"65p(lLj6V7:$4 38.233 + `^@!pK-WXB^;q1r_##smqb9JRlaYH3`Oq$5HEY:qKs``i%8:aK]99,@"=5T1XpfJDF3hM?O 38.234 + $YCn8m9t?an!7uU'Sj_4;4M8o7WnJ@m4^l5Fc:V4D$JJ=@Xn.6sNtbCdoBAC']3&%$[@,3_ 38.235 + W1M'?Vk$8j&tDXLfK8?^jHDb+n%1+r@gg]=MC*5'2t1lc2R`N^=uo8Y_9g,asT9)p<k]1[N 38.236 + +QS2ST,"\Wlu99[Z<Pe50;cl9X1RlnBD]>9n<eP#f$Z7C[J"/hVF6+h`Ka7uMD'T9u$btD$ 38.237 + Cbe2+Kb)=BWKen*47_;kuX%Q$;j1`am`64L;4"S.*cGt=ZcCF/lCcWF*W&spV'f<Wj<50k4 38.238 + _b/-;`!Mu/N#PMod5nAN6+cWu]P\(8CnS$&8X)fl1S7;[bf_Ob:21#/HmhaK\k]@.:`CM!E 38.239 + YV?mim-;R:@(-hqV=GQ`!D/Y:m`G'XU>4_$qW:nb5D2I2"aStl;6]!`pkr^(tHfH&P^4Yc= 38.240 + <E/r;T1@!)OsZ;41;+)7*$fK:@GC:D4sB>A$e5aO'kW3n4t$D"s%fR#oQ,9RO0E.VHudnkl 38.241 + 54;OJBLZ(b+6e!3n_6gWAG'_=A^+?MG(c6/k"_A#g#S;Y$>5@Fdk\Cf57bX)1^UfAg;I4A1 38.242 + /4:R9#)>J!rkZ(R[5Z@nC,OEoB/AOPo*m4-te!qX(jKSuDS&YO57"jWWU[X.KmRg>(;hX#T 38.243 + <@1Mt(8l3\3s@%]bu7V&S^90BVKupO!8p`5o@!Jt97X32Lp954&l4[eMfS=8Emu!R:/n=me 38.244 + G>J0X;KJVA6)7Be(PelC2(i/OKIje\<Io\"\&pf,LlVK&7eqi]_X@HPRnsIUhKs2PY"amp" 38.245 + $\r<]"@<<HhMhSQ92>8HciN&b+>6Fk*/$<R":bCg'iNF[UA$;(HZW$qFAn-R?BK9J(KkD21 38.246 + Eqla-fu<FkR!X]SKmW1gn?=@gl\km&VqUl'6]V`PMa9p'r+qj2\-^!V*[N8RZP-WifH9\fU 38.247 + rPo%JW\_)>$=kiRNMgnit9>On$d#D/[bGj1RqO:HTg-H!H>cq7AW)cW<+_@>R70l9R7*sbg 38.248 + Tf%7%fZ@<=cW^"H:aN*74aL'rU=Pg5<irWoal#^A1Esb0gM%MZ"R0-e]M#Z<Tf'11-&c&.N 38.249 + EaVY3I1N0RJf$q"M;Xh%@+P%%E7+LY$9Tm[O@>A]mJHj[TnAI78Yj4IE`3i`n^O?3pk$3?" 38.250 + Z,sBWqZU>!:8qZ:RT%L5N*!h.Xl8%GG+".,??Q>OALr9cmZW:+%XG0+r@C,fSUBDHX!Tfu4 38.251 + fb7HZ2gh&icU;Wrl;[Hdi.ls@co!_j+iV<?_3Qef(=?Q*q@M>CPK_$Fko>'ZiD`U[A`\DC5 38.252 + Tau/s$Wbtg:TGok/hq25lmJgP_H/K,Obt*4YH+I5P_91T<R0E=l[KdlhnR-eP+/SQFodi_; 38.253 + 6IO]5?WI>7\W(!7$/l3<@#bh-.GE^Z>N!0.i6:[o*T"mXf2b'.gr:"9WS6;X)e$k&iB^UT< 38.254 + :=7,Md9$He$MDLVB',+^>['W@Tf71iDJS,#0fQ:eUAYINV244NSt'g@bH6?<\@kWKAplH@Y 38.255 + A2mX!-)rA)WDjiLSNSc7iaR:?(t,A!o[D&Ph@3O5i(diiL_].@K2H3b/O7A!TDk.2cX#:1M 38.256 + -Vj45#QV@I*9L1=fPj>KUBSjHtj9FY#j'])7aV5f<QX5n5S@_N?ic9Ppc<"0U9j\Ahc%S`0 38.257 + ?:5GK;i8.>hmDi\],@tau%5q5JhHr?]r(,TV:fG0S2@NL7(<p.WjfV-]Ag68Q?fm1Nhj%'O 38.258 + k!*IDC^LYRPNGu'Q1S.d8*7NjAqk-b.'I4MF(\+mAdQiHk_S%XBOa;aKYDaM0p2ZgHsZ2TB 38.259 + 3'Htrb=:`,%p=pB3h,q-=KN&6]J2P@kK31F(8_A^Z:u;ka[pg$S5nkk[tZgBBF&oG'=4HDq 38.260 + :52B\nU/7ZqB/NflqWku_ifDO5'XBj_rKAl`jl2H/j(Bk]JqAr`+H%U&"LbNC4Ckq7Iop42 38.261 + ELF_U*eAH#Ef=l3r-Uh/,JC5u?[;8R#VeS-))B$RC@hGe6p_!8eLjj(&B2Ql?u9'ZMm>bYu 38.262 + f7YoPpZte`t\H\hpNaHR!^?:5#B9ogf(;";+\^`%<li*pI@bbL+RV<PICaNM)5/q*(]Gp"< 38.263 + >0ZMPIUDGbb@:atS%d##p;QCD<:%RB>4$QO,"6>$[d%H,iI7HbdQS0$d'@%99sXQR6D)qXC 38.264 + @)XNf'/caIbHT;3EY7fD7t!051:b=e/Lm&Lj42_CP"MWGj^T?>?Z%!)*1kOd1;Vag0Gn*S> 38.265 + :#MB9Sckfj+FsVW3m&o:bm=Rm,rl:1iM*&*kD]<4KP6=RKCAgd&m=:Rp\<!_\^Em7D"%8$! 38.266 + *I$,:E3_!alaln\NU74r=oKk2T8muG.+o9uRX$1Lp@n+&n%nd<8L&FT5"nC+(M@DJ%n6uc! 38.267 + ;EDUdtD?8agL[4(QA[^jY$5;qU\oG[#nDZVdo6FC8f(%0$mo\7VrBb*c+Rta]llH@LOrTA@ 38.268 + fs;]]$TncR9S"qJg`h!E[h2,nq[J>n0>aDq4fdt5qB-202b'hfLgKJP$E%bmZkLD6(")9\8 38.269 + hd3RK!74;8&=riiZZk^Db\]-$Yan<0)c,t2G$ee5oTXA.1qBf/rMe-^FIk,YZX4m4Y8Dko/ 38.270 + lF.X\VlR.e4_7nhOltG$5/Y$$!)u+YlOW!4'SjlgGc?^n`fFMIgYcQS@W[`Gk.j2`SFa>[A 38.271 + Z@:+o3FUXTgU3F@f)#W:`$UJ:@_T'_?Dp.J=UpkJLDBg8e-m`.>J^LLK1.eZYEDS2\8rD'L 38.272 + 3;%6l1#]BA!%jkp1f-*(i8-^Q!HT1N*LG^mCFB:=,03K\cMXR_W(6]U.EWbs\V\bjMX^]T* 38.273 + OLqVbCC:"_1&$)bk>)@d'j[/T+C@>Vo,f]j?[-"*NoJP)l*Y['KpS0^<0'D&;PWi:hGt2BG 38.274 + cPZU\:o1K7U//,Kg14q%u#;<?h"cepINhY>*70PrbYt=F[m?D2ThnH=?p!o<7GtT*)h(-E( 38.275 + 8BsF:akBOqb$=k3h>mp0As?%fqG[9.WnlHS9:0"QXY6Suh*==f5iVG)T5rND)bT[hl+>kaB 38.276 + K/n?o#47&OS`3A.Q!\W$,86q6VAEsVUbeG:kQl2N&<LV0"oW-I6uG9=7!;fNRC>kT8LE%Q0 38.277 + N2m.&k+]1oA*!<bIKD4^BCNk*>Hp:7Tj4sT,R_K6SIFh7Er!pqn3;mc]NKhQ]'#/gEe9m@3 38.278 + GA_#?\V'h&*"0C_6Ss;2O4%0jK>G3X<2'nD"Xa1<M7YgPr(UZ!L5c(t]j1#pmKW7^Dnd[j3 38.279 + /E-)]4HIV&6X4\[^31-n0MZ<[E]$X!X&LQ_-kW7/.NBrKL91ppk2*_'8f4fd<NSMi>[KfNt 38.280 + M02L.*>F+lq&')bO*TInO.3pVb&<1O@;X08J?Eq`BXq-dg=Y#"_1V7>'*7m.bipVGh3YpbQ 38.281 + NX9r^]b[<QM^[9Ke!WeB#YDCo=TfceTJ7=MjaJjc]k3n-p^(qIKN[0st9ob2<%CN<rJ6@pe 38.282 + ^:p5+k7OA(=[6i3,op/'*n;Q2jf,/gL2'&p<eG8m1?$gA5WUdTX[\BI/BObnID+p]>ZeAA6 38.283 + Fh%8-CV,D\.rqMOZ<],2nRd/m[,,j#S\JgDpg+JV[A/MV1[^lJ[11\W9ca)UWt2H(m&[oKr 38.284 + Un'4d:E0cbeKT"jFm@^+"r!p\,6/NYN[hGTWk,*q#\/]U5K.=-rM2UTk]^qW2`DQdgDhnRn 38.285 + Bfpj$VVs^($#bVSC:&g5Wp^)W^c\d9@7<X%gf?g,I1'JDhTlH2-Bk/ja13-V<;CV*K$XT^' 38.286 + ,R>_s`0/#up+_lMQ,qS*U5oRo"gd]BNBOCYg7/s0+!.\nYLRXn'$<7%>WBgVn$Y`=VN1sS] 38.287 + 5U689M1_A7qW&-8\6Y[hma,c&CY8#,lr5o"5l5ZuYQaAS9LX,L^.#5d`6t&]enX<;nUe,B? 38.288 + QmPD!Cm_bNCRuS<FOEN$+_k"[=JC_U)MPOl7-e*k("Eg.Tp#A#KMlk"\;++`;d!7+88Qk;c 38.289 + )>so<S;PcnLuE#*"bAb$Mk1_)#!fq9@>52B[*5o8ss!jFn4:%?-"V9L!qu,1JT1%nj?5D$+ 38.290 + l4dT!@mT+<iQTi<!>AKj9=4(d"W&SMrkaDj^/A2.eM_>/,h:fTXiV9N^tGOA".O7g?(,7Bp 38.291 + VNZq`Jd?"bgYY:>oN=dYm`H6$\W\YWkG[.XhO"@<fC4%6tG;\o";f&bAV6.uLBP\Ab2j`mQ 38.292 + B#,mDcaBe:ohc19YIp^h3:l-"C3E<HR7F'SfT_M+aL$d)YZpnrcl4JkM42N"T+DUluK0p(D 38.293 + #J1S9'n9BN)NDdITQAu]DlnCUgAC!q55]t.>+Ht8F#MaO^nD<p%DH^qc>8'p#]=a<3aFl0T 38.294 + 4Q[Pc_quug:'DCX^b!0+h[gaas%i*!43pj-LSU@gi<S>+S_9MM0XUVFkBD,Z3P[Oa@<UlCT 38.295 + ,7eIO=q)C4#m/4pC?(W^U7\I7qn*f;$&/TSkQOQfRj5=q;DuEpKraYiQKue._RR`c^#g7Z_ 38.296 + 0=)-V88$3$"[55n(e%t3YuMl+DmZk*m4K':2,+#kJ)*MF'q`G*^3'a4a]!)7%.ncZcg.0Z@ 38.297 + V<Aj7[aM;g<%74kSKBCgH,5/8P`-auT0chT.JZBF2ZMRU2fs.PfIWM4Y(N'?^\OBDd`1/Pd 38.298 + E6?uo(Xl!N@DK0iO=CCM7REGH9E@J`9gM5M%VVJmQ%BUF42:>.(u__,/+6Lr1/]TJN@]2sX 38.299 + r7,Rpp<TJ8HO$F+kD`6?R!hO5'F3r1eE9-db1$*OG83O-f_pT@lsaQEJdR5pq5FY8erQY3] 38.300 + IuOj?]Q:Wf=#\NQ>7>*MfC:HNXZB9@BF,=5p#_nO\8M8VFr&@g[Y5/ndrsV)6\tN;sSRK?4 38.301 + `0,j(oY019sG:$KVPjnJhC1QClD2oQHU4(NaqFt8(KZT9J0oq'XfLs9Y<6)N!/S!2i^1'^N 38.302 + =BHo@(Z^uc1f><Q1iQ7JsQ>o\<k<`jY'r&saI6k;_#@2@iU@\WQ8g)MOkp"9CnIC_Cq2#dE 38.303 + M)^B6U5;S?;bZGP2*fZ%^qmtH7p%W,RVY"1Ypt/ud9S+Y<77%mL&.c_FNLBn27V*bM,`c:< 38.304 + @!gf2_?M]&'J4aX*&h+`"b"!.4n,jEuq4+$,'#17:<7J^9?(EF]PPqYTRUs;BflA?H^;WVR 38.305 + 7`@%p-t<haGVhF[@WZ.f!Q?AI5M=DOnm!4_&<)Q(GD[Ue[nI'Im[JWTRFXf%Vcim3L/cm]q 38.306 + jU.XPlHAZ^kk@[Ye]NB=3un?EYL`EM9pKH?\.46^&cgT-#UTZYQT<hd[[]-hR@c+I<"Tafc 38.307 + ^NH6_G(Ub$TficJFB;Zbd\u"C((<$DFQui!tl;I2@)p``^V5KIlVWD!nfMQPnCV41YoSY6N 38.308 + S?L37^2+kVelgNj&`pC+koTkh7\2lp'a#QA5gn.20*tNUQGFuhpJ%.95H\</,5<b7)#PD-% 38.309 + /plZ;;hF^Ccm9Q%4&PB[dF_>Q]/o?29+::[pA?$87>X/_96-sS\.s_ce]P3Qu7E767Isd<^ 38.310 + 1<.U.XJdP`0U!+3!qsQ_Y:g:E>0Nb'6Z=Q]-Z.Eun[IGo2.Zgln.rmSG03Pk!idfRGZY(Wu 38.311 + Jj/?h7GC9m69U3Y",8loX51CTliq(b=HCP/*u-57X")DW04-!mqZI(5t)IHI&^LNKVK9\N= 38.312 + ;B[mWeZp>(=g+H(a.;qC]5c<$Rnb_N%3^<5:ee\,;1M`P(Y(n@;M62BFfK<V2(a`L0q0Q8+ 38.313 + Lq75Y##EcQY@ZojmgM+%]HOMO65B6CZ<4Bt.p?J5k,gYFp5>!bXWM<$c-$8KS-[iE:M`ABZ 38.314 + rFKm%G%\umZN`6VsMecYW*RR.]>Jbp."_kkY;@AD.Mb8G,uZ1Q:3S2ql)gbW0G5Rd1P2EW! 38.315 + FsuO2Y%OjZLr#FPZNEXUg)@c9mHLd0S+S7.g"**_1I^H/YWRX7<;=AK6UA@iU,]CH_+MpW3 38.316 + J`jBk"<%/%EE2[%IXkC[[c[$C3+/EZ%KRmC\?7N/W-@r=qO)K$#*pD517_uH\KNi;NTIWDr 38.317 + fG_L:=fsQX&>r"QmT+J!>Z?dI2kb&$QO`$@MkBRQi\as>'qaK36EIHYRUUbM`_`-M2_fOmu 38.318 + q8qIYff:^EdJc/<(;D*Fo-]gG?=1/2o"i/SlYc1j"H(R4NIcI'[IDl;pugBt1V@(doAbVHi 38.319 + 56YS4IHp>Dr6F8+!i%cUnQU,[j?=CPD;4Y^@Ar?d$:`fgrUYY1-[%er(i\Jrcc]`\c^NkT3 38.320 + o=ac3*cQ,Gf3PEV2KG#l;JF#Ul.TWdd)W25pB$:W1dr./_)Po5-*ll]/[IVTj&IGiGV$!X/ 38.321 + O@/gA28JZ&)>:?^DmbieFqhQP@BO4H9Bpf&]nWCpjsV,FINW8Om",)ebe$iL$c`qSZg(T*- 38.322 + s:9Ok@#6hssqG:5uU*BjRAHIH/R`%h]L.MW3G6:Rq#>g!r&3sli7+^p%XRG-lmgf(F')-.8 38.323 + pTU=fOMW2sVZLaPs00`PJg+&E<t#RJmL+uO.j500g<l"(:9_fhE1IF,PmO0,%;pe.M/XL<E 38.324 + 3+iP$BRf8`km+bYkILPnID)tWtPm2!sl-!"#2FP&CMa6n58^)#ga-*:_^fD(u0*nJ'dQSbY 38.325 + \U!p*$\$'Z)(%7VNG&gB=FoI#Wg*0BEem[h95<nV/%GVk35V'T`n)![%L*&Loks:4afpQ,4 38.326 + r5Lg:nX-=`(gnW84XDU0.-VID97+E<8^d@;418H6Wo*'u4q0p3^MWZ3[?(+'n7B"[$*::j@ 38.327 + ?+gA?QOLZ1Qc>KPD*Nj^,ENFCt#Vj4<N9@),@K,<*l>u,I&.&"QO&Uf\"r-5-DU3_M%\"Q' 38.328 + ,':*nj/'L51&`@P)^*QM+7]uuiXI&E,:%g7j_'Bk0t;0oF!Hi#o?lE&n`$)oC8HlnWQkSUA 38.329 + f1cS\GW+.IY9<uE%]N](l*n-N2Uk7&sF0s<cI%>m3l*GX_/k5*piHT/Wu.hd\MYn??">]L@ 38.330 + $79"`4c)"Y!/?-GgcQkUA#64!t3r-VfdFC)\52&0/"P)m]Jt!QQlilEi5bMiY17#44$P0TV 38.331 + C:ogc$J$_I,Yq#>&C%1tHA%:'h7raN,riT!,PmPbG-0bap7'MOQ%O/h'C%M=l'0k)djY;-E 38.332 + j+H>t<`%rho@K/+30Q49`1Ld='%D+MR$J#]2!Rg7=o'Z!Cgdc9rXY1$MEebD$VQKEu(R(g[ 38.333 + $K!iIg_9:j#'7OA'>PQ.`sSk*`Y!7"d3?%3-Ta-<W0=>*1Yk5eWB4h6n8k2pe"ZA2k<G0f1 38.334 + o[Z8m56aWq`p$S5,lLbm>!hZpHZ)(U=8'%ZlMJ)nNc?OYRtc#o?`qiV*]8bSs1B4ZopfKWC 38.335 + !Sr5r:G`;q0.c7n&>15OH8QZs-!k]gSj!7.Pf$1\X@\G+(6R2,nil#N&"MVaft%6$!E)1m3 38.336 + a'I7[D,K(Oed:LuPii<:aD7oZ$P#>[pUZV-%Z8dV7`Z_3ad3D6a%=]Dk(eC%Nb^7#bR5;^D 38.337 + Qo[Q]*@nd[#:;nYVM3gr\%nRK(:W1^W[/Wrj=\gK#6KZ6''QC;Je0&-f;:Qad'dHUV-W63[ 38.338 + ;UmF!'f/cg2cGu';q4*3'gkr#7oYaH<7OcE'iS+4=&kMi;;_a]"9/i]O=PHZ<n2+i'm!GVG 38.339 + ?:&V=4Me&'n]TG-WlK:W9[q7D?!5&+r$<2&J^pA!BXI`#m6Hn>1Kf\'sh+E[p,-0>LgJn'u 38.340 + O9V`dUlp_fa(,("6Ggf3OZr?.Ih=(#rO+&C/_q"V^D0;6jsdj'Ga_?e,0a('@rF#@NhK>gK 38.341 + <U[M*(M(L`UK@FcN)p#r."pF$dKC4N^%!/Y2d2e/.8A(EkT(.2V57q@oYACaOf(/ndF=(R\ 38.342 + %A_(4#(1UrWB4dHFB%Cm5(3=(#&g5!5B@_3=(5$:$LM3!3B\&5Y(6`H5QYDab':,5J;n<Y6 38.343 + _ePCT)fVgmPc8"*.jJ%!CY$7:(;g8!:.C;t*`,LF.GJ!FFXT/eD:[T^(?.QBPkI!%*k'Z.0 38.344 + BYY[j_pI^Dq=n9QKTNY.-Yp0E#0%)(DCd)"<qt!4S9G-0m>f?'loWkEn92hJgGEWb<n33&[ 38.345 + r3ipHs%(7nM;f+u]gFQ7[3F=*9j67@-[l(K#336$:dpG1UXHf3fcfZY`aPE48hk(P?s6LB6 38.346 + "K+k3>A<q18*JU!NNH.SY3f8QD(m;_cXH$6fG(UJHi[_):0+W"Z4^ls.:P)/%?I+PoW(Xme 38.347 + *8UJ;bHl(C`(ZTs;=ad"RF)(r#\#k+'pOAP+X:9%_m<=(TH5r-l-`liZfDU8&(P.KuIJ=b5 38.348 + (aFW)iIUbOK%M`/$aD^YPBYY8K@iDA$3PmSRP4a1K\0(S(fQ,j=,!#;J-0DfG[#o)B81u0L 38.349 + ;RUBpiD1WGDDP\*;Ft@@=O)8H\e%k&,;/D@nVWfQ\>GnM8OLmTc],YVA8m,L'Pt\Gd7hSC` 38.350 + 3"fLKLs@R!p%8An"lYM3sG^ps"T(S.bUiLq(ujR&Un]GE*Mr`rcj-+hs&IH]2(J>PRrJK6N 38.351 + >Y!JX^N2gF#;Qs5S=%>82Y?^7m*8:_=p_A'O12IVB)'u]eInF-%O!Vno<Fta;(^I;W*T=(s 38.352 + 63DqbLb?HtV'Y,l\28bVeTG#pn>ZjF()+a$19jI@rPp"L6FiBZ?/X?EmP?,m]q1k9rCR=_/ 38.353 + Ddr;[),ZYe$^%0AOnGo@,+k-cZ'F"#R.*R"3BLET4otJ!P]a[(U@jcHI@=ogP'+U1UD8t1N 38.354 + L!_/06rgf3R*mhfpu8m>5<Z828bf,]q2dM0cBLd"*^0@]p[mMRQ9&g)6$aq0X-d<.J^/Nfs 38.355 + 3'[[p&Ue0feEdj(FlY3LlN1SJcXD[Lo5O<if<9UVd\>)@ABK&R5*+>Ii083S0o!g,=51QF[ 38.356 + B-).k>oBj9:+PrYC'3ZS-EV4o41Ie*6.@Q#7\VlH2dWnOYW)RHGrN](H7X'39>)T#!3AiY1 38.357 + TXP2"#KQ2n.n#[M_X!-B'"*P`SkH3J(WhJOX"*P_HpTE6H?eW(;])/]th5k*$XLe_?g=.iD 38.358 + Dm:5JY$1(p]$IP\jf_k`Z9$76j(kssg*Z[;-Ta8h)\b"g)71=+2eDrp]"bFWi\u33[5t_%3 38.359 + h:S[I=G?d[bG`0#q;=TF17Wc\&ITW':hEnJ%1u+\A_U\2RFQ1QaXMe\_Eaf"*dcIRR[L&Y] 38.360 + kH)@J$e!S%G0%]A(*5)oK<ma1Rnb]\CcG)q2K)f=d[.^"_GY)rnY:kJ!GO^>&+k)tUgKpV3 38.361 + 3p^YAe(*!<u]#Jci;^t]I:*#$.n(VuUU7g#&"+9~>Q 38.362 +Q 38.363 +showpage 38.364 +%%Trailer 38.365 +count op_count sub {pop} repeat 38.366 +countdictstack dict_count sub {end} repeat 38.367 +cairo_eps_state restore 38.368 +%%EOF
39.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 39.2 +++ b/0__Papers/PRT/PRT__formal_def/figures/plots_exec_vs_task_size/cray1_pthread_vthread_8_32_128_512thds__o30000__perfCtrs.eps Sat Aug 03 19:24:22 2013 -0700 39.3 @@ -0,0 +1,1135 @@ 39.4 +%!PS-Adobe-2.0 39.5 +%%Title: cray1_pthreads_vthread_8_32_128_512thds__o30000__perfCtrs.meas.eps 39.6 +%%Creator: gnuplot 4.4 patchlevel 2 39.7 +%%CreationDate: Thu Jan 26 18:06:46 2012 39.8 +%%DocumentFonts: (atend) 39.9 +%%BoundingBox: 251 50 554 482 39.10 +%%Orientation: Landscape 39.11 +%%Pages: (atend) 39.12 +%%EndComments 39.13 +%%BeginProlog 39.14 +/gnudict 256 dict def 39.15 +gnudict begin 39.16 +% 39.17 +% The following true/false flags may be edited by hand if desired. 39.18 +% The unit line width and grayscale image gamma correction may also be changed. 39.19 +% 39.20 +/Color true def 39.21 +/Blacktext false def 39.22 +/Solid false def 39.23 +/Dashlength 1 def 39.24 +/Landscape true def 39.25 +/Level1 false def 39.26 +/Rounded false def 39.27 +/ClipToBoundingBox false def 39.28 +/TransparentPatterns false def 39.29 +/gnulinewidth 5.000 def 39.30 +/userlinewidth gnulinewidth def 39.31 +/Gamma 1.0 def 39.32 +% 39.33 +/vshift -46 def 39.34 +/dl1 { 39.35 + 10.0 Dashlength mul mul 39.36 + Rounded { currentlinewidth 0.75 mul sub dup 0 le { pop 0.01 } if } if 39.37 +} def 39.38 +/dl2 { 39.39 + 10.0 Dashlength mul mul 39.40 + Rounded { currentlinewidth 0.75 mul add } if 39.41 +} def 39.42 +/hpt_ 31.5 def 39.43 +/vpt_ 31.5 def 39.44 +/hpt hpt_ def 39.45 +/vpt vpt_ def 39.46 +Level1 {} { 39.47 +/SDict 10 dict def 39.48 +systemdict /pdfmark known not { 39.49 + userdict /pdfmark systemdict /cleartomark get put 39.50 +} if 39.51 +SDict begin [ 39.52 + /Title (cray1_pthreads_vthread_8_32_128_512thds__o30000__perfCtrs.meas.eps) 39.53 + /Subject (gnuplot plot) 39.54 + /Creator (gnuplot 4.4 patchlevel 2) 39.55 + /Author (msach) 39.56 +% /Producer (gnuplot) 39.57 +% /Keywords () 39.58 + /CreationDate (Thu Jan 26 18:06:46 2012) 39.59 + /DOCINFO pdfmark 39.60 +end 39.61 +} ifelse 39.62 +/doclip { 39.63 + ClipToBoundingBox { 39.64 + newpath 251 50 moveto 554 50 lineto 554 482 lineto 251 482 lineto closepath 39.65 + clip 39.66 + } if 39.67 +} def 39.68 +% 39.69 +% Gnuplot Prolog Version 4.4 (August 2010) 39.70 +% 39.71 +%/SuppressPDFMark true def 39.72 +% 39.73 +/M {moveto} bind def 39.74 +/L {lineto} bind def 39.75 +/R {rmoveto} bind def 39.76 +/V {rlineto} bind def 39.77 +/N {newpath moveto} bind def 39.78 +/Z {closepath} bind def 39.79 +/C {setrgbcolor} bind def 39.80 +/f {rlineto fill} bind def 39.81 +/g {setgray} bind def 39.82 +/Gshow {show} def % May be redefined later in the file to support UTF-8 39.83 +/vpt2 vpt 2 mul def 39.84 +/hpt2 hpt 2 mul def 39.85 +/Lshow {currentpoint stroke M 0 vshift R 39.86 + Blacktext {gsave 0 setgray show grestore} {show} ifelse} def 39.87 +/Rshow {currentpoint stroke M dup stringwidth pop neg vshift R 39.88 + Blacktext {gsave 0 setgray show grestore} {show} ifelse} def 39.89 +/Cshow {currentpoint stroke M dup stringwidth pop -2 div vshift R 39.90 + Blacktext {gsave 0 setgray show grestore} {show} ifelse} def 39.91 +/UP {dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def 39.92 + /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def} def 39.93 +/DL {Color {setrgbcolor Solid {pop []} if 0 setdash} 39.94 + {pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse} def 39.95 +/BL {stroke userlinewidth 2 mul setlinewidth 39.96 + Rounded {1 setlinejoin 1 setlinecap} if} def 39.97 +/AL {stroke userlinewidth 2 div setlinewidth 39.98 + Rounded {1 setlinejoin 1 setlinecap} if} def 39.99 +/UL {dup gnulinewidth mul /userlinewidth exch def 39.100 + dup 1 lt {pop 1} if 10 mul /udl exch def} def 39.101 +/PL {stroke userlinewidth setlinewidth 39.102 + Rounded {1 setlinejoin 1 setlinecap} if} def 39.103 +3.8 setmiterlimit 39.104 +% Default Line colors 39.105 +/LCw {1 1 1} def 39.106 +/LCb {0 0 0} def 39.107 +/LCa {0 0 0} def 39.108 +/LC0 {1 0 0} def 39.109 +/LC1 {0 1 0} def 39.110 +/LC2 {0 0 1} def 39.111 +/LC3 {1 0 1} def 39.112 +/LC4 {0 1 1} def 39.113 +/LC5 {1 1 0} def 39.114 +/LC6 {0 0 0} def 39.115 +/LC7 {1 0.3 0} def 39.116 +/LC8 {0.5 0.5 0.5} def 39.117 +% Default Line Types 39.118 +/LTw {PL [] 1 setgray} def 39.119 +/LTb {BL [] LCb DL} def 39.120 +/LTa {AL [1 udl mul 2 udl mul] 0 setdash LCa setrgbcolor} def 39.121 +/LT0 {PL [] LC0 DL} def 39.122 +/LT1 {PL [4 dl1 2 dl2] LC1 DL} def 39.123 +/LT2 {PL [2 dl1 3 dl2] LC2 DL} def 39.124 +/LT3 {PL [1 dl1 1.5 dl2] LC3 DL} def 39.125 +/LT4 {PL [6 dl1 2 dl2 1 dl1 2 dl2] LC4 DL} def 39.126 +/LT5 {PL [3 dl1 3 dl2 1 dl1 3 dl2] LC5 DL} def 39.127 +/LT6 {PL [2 dl1 2 dl2 2 dl1 6 dl2] LC6 DL} def 39.128 +/LT7 {PL [1 dl1 2 dl2 6 dl1 2 dl2 1 dl1 2 dl2] LC7 DL} def 39.129 +/LT8 {PL [2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 4 dl2] LC8 DL} def 39.130 +/Pnt {stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore} def 39.131 +/Dia {stroke [] 0 setdash 2 copy vpt add M 39.132 + hpt neg vpt neg V hpt vpt neg V 39.133 + hpt vpt V hpt neg vpt V closepath stroke 39.134 + Pnt} def 39.135 +/Pls {stroke [] 0 setdash vpt sub M 0 vpt2 V 39.136 + currentpoint stroke M 39.137 + hpt neg vpt neg R hpt2 0 V stroke 39.138 + } def 39.139 +/Box {stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M 39.140 + 0 vpt2 neg V hpt2 0 V 0 vpt2 V 39.141 + hpt2 neg 0 V closepath stroke 39.142 + Pnt} def 39.143 +/Crs {stroke [] 0 setdash exch hpt sub exch vpt add M 39.144 + hpt2 vpt2 neg V currentpoint stroke M 39.145 + hpt2 neg 0 R hpt2 vpt2 V stroke} def 39.146 +/TriU {stroke [] 0 setdash 2 copy vpt 1.12 mul add M 39.147 + hpt neg vpt -1.62 mul V 39.148 + hpt 2 mul 0 V 39.149 + hpt neg vpt 1.62 mul V closepath stroke 39.150 + Pnt} def 39.151 +/Star {2 copy Pls Crs} def 39.152 +/BoxF {stroke [] 0 setdash exch hpt sub exch vpt add M 39.153 + 0 vpt2 neg V hpt2 0 V 0 vpt2 V 39.154 + hpt2 neg 0 V closepath fill} def 39.155 +/TriUF {stroke [] 0 setdash vpt 1.12 mul add M 39.156 + hpt neg vpt -1.62 mul V 39.157 + hpt 2 mul 0 V 39.158 + hpt neg vpt 1.62 mul V closepath fill} def 39.159 +/TriD {stroke [] 0 setdash 2 copy vpt 1.12 mul sub M 39.160 + hpt neg vpt 1.62 mul V 39.161 + hpt 2 mul 0 V 39.162 + hpt neg vpt -1.62 mul V closepath stroke 39.163 + Pnt} def 39.164 +/TriDF {stroke [] 0 setdash vpt 1.12 mul sub M 39.165 + hpt neg vpt 1.62 mul V 39.166 + hpt 2 mul 0 V 39.167 + hpt neg vpt -1.62 mul V closepath fill} def 39.168 +/DiaF {stroke [] 0 setdash vpt add M 39.169 + hpt neg vpt neg V hpt vpt neg V 39.170 + hpt vpt V hpt neg vpt V closepath fill} def 39.171 +/Pent {stroke [] 0 setdash 2 copy gsave 39.172 + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat 39.173 + closepath stroke grestore Pnt} def 39.174 +/PentF {stroke [] 0 setdash gsave 39.175 + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat 39.176 + closepath fill grestore} def 39.177 +/Circle {stroke [] 0 setdash 2 copy 39.178 + hpt 0 360 arc stroke Pnt} def 39.179 +/CircleF {stroke [] 0 setdash hpt 0 360 arc fill} def 39.180 +/C0 {BL [] 0 setdash 2 copy moveto vpt 90 450 arc} bind def 39.181 +/C1 {BL [] 0 setdash 2 copy moveto 39.182 + 2 copy vpt 0 90 arc closepath fill 39.183 + vpt 0 360 arc closepath} bind def 39.184 +/C2 {BL [] 0 setdash 2 copy moveto 39.185 + 2 copy vpt 90 180 arc closepath fill 39.186 + vpt 0 360 arc closepath} bind def 39.187 +/C3 {BL [] 0 setdash 2 copy moveto 39.188 + 2 copy vpt 0 180 arc closepath fill 39.189 + vpt 0 360 arc closepath} bind def 39.190 +/C4 {BL [] 0 setdash 2 copy moveto 39.191 + 2 copy vpt 180 270 arc closepath fill 39.192 + vpt 0 360 arc closepath} bind def 39.193 +/C5 {BL [] 0 setdash 2 copy moveto 39.194 + 2 copy vpt 0 90 arc 39.195 + 2 copy moveto 39.196 + 2 copy vpt 180 270 arc closepath fill 39.197 + vpt 0 360 arc} bind def 39.198 +/C6 {BL [] 0 setdash 2 copy moveto 39.199 + 2 copy vpt 90 270 arc closepath fill 39.200 + vpt 0 360 arc closepath} bind def 39.201 +/C7 {BL [] 0 setdash 2 copy moveto 39.202 + 2 copy vpt 0 270 arc closepath fill 39.203 + vpt 0 360 arc closepath} bind def 39.204 +/C8 {BL [] 0 setdash 2 copy moveto 39.205 + 2 copy vpt 270 360 arc closepath fill 39.206 + vpt 0 360 arc closepath} bind def 39.207 +/C9 {BL [] 0 setdash 2 copy moveto 39.208 + 2 copy vpt 270 450 arc closepath fill 39.209 + vpt 0 360 arc closepath} bind def 39.210 +/C10 {BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill 39.211 + 2 copy moveto 39.212 + 2 copy vpt 90 180 arc closepath fill 39.213 + vpt 0 360 arc closepath} bind def 39.214 +/C11 {BL [] 0 setdash 2 copy moveto 39.215 + 2 copy vpt 0 180 arc closepath fill 39.216 + 2 copy moveto 39.217 + 2 copy vpt 270 360 arc closepath fill 39.218 + vpt 0 360 arc closepath} bind def 39.219 +/C12 {BL [] 0 setdash 2 copy moveto 39.220 + 2 copy vpt 180 360 arc closepath fill 39.221 + vpt 0 360 arc closepath} bind def 39.222 +/C13 {BL [] 0 setdash 2 copy moveto 39.223 + 2 copy vpt 0 90 arc closepath fill 39.224 + 2 copy moveto 39.225 + 2 copy vpt 180 360 arc closepath fill 39.226 + vpt 0 360 arc closepath} bind def 39.227 +/C14 {BL [] 0 setdash 2 copy moveto 39.228 + 2 copy vpt 90 360 arc closepath fill 39.229 + vpt 0 360 arc} bind def 39.230 +/C15 {BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill 39.231 + vpt 0 360 arc closepath} bind def 39.232 +/Rec {newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto 39.233 + neg 0 rlineto closepath} bind def 39.234 +/Square {dup Rec} bind def 39.235 +/Bsquare {vpt sub exch vpt sub exch vpt2 Square} bind def 39.236 +/S0 {BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare} bind def 39.237 +/S1 {BL [] 0 setdash 2 copy vpt Square fill Bsquare} bind def 39.238 +/S2 {BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def 39.239 +/S3 {BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare} bind def 39.240 +/S4 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def 39.241 +/S5 {BL [] 0 setdash 2 copy 2 copy vpt Square fill 39.242 + exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def 39.243 +/S6 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare} bind def 39.244 +/S7 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill 39.245 + 2 copy vpt Square fill Bsquare} bind def 39.246 +/S8 {BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare} bind def 39.247 +/S9 {BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare} bind def 39.248 +/S10 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill 39.249 + Bsquare} bind def 39.250 +/S11 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill 39.251 + Bsquare} bind def 39.252 +/S12 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare} bind def 39.253 +/S13 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 39.254 + 2 copy vpt Square fill Bsquare} bind def 39.255 +/S14 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 39.256 + 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def 39.257 +/S15 {BL [] 0 setdash 2 copy Bsquare fill Bsquare} bind def 39.258 +/D0 {gsave translate 45 rotate 0 0 S0 stroke grestore} bind def 39.259 +/D1 {gsave translate 45 rotate 0 0 S1 stroke grestore} bind def 39.260 +/D2 {gsave translate 45 rotate 0 0 S2 stroke grestore} bind def 39.261 +/D3 {gsave translate 45 rotate 0 0 S3 stroke grestore} bind def 39.262 +/D4 {gsave translate 45 rotate 0 0 S4 stroke grestore} bind def 39.263 +/D5 {gsave translate 45 rotate 0 0 S5 stroke grestore} bind def 39.264 +/D6 {gsave translate 45 rotate 0 0 S6 stroke grestore} bind def 39.265 +/D7 {gsave translate 45 rotate 0 0 S7 stroke grestore} bind def 39.266 +/D8 {gsave translate 45 rotate 0 0 S8 stroke grestore} bind def 39.267 +/D9 {gsave translate 45 rotate 0 0 S9 stroke grestore} bind def 39.268 +/D10 {gsave translate 45 rotate 0 0 S10 stroke grestore} bind def 39.269 +/D11 {gsave translate 45 rotate 0 0 S11 stroke grestore} bind def 39.270 +/D12 {gsave translate 45 rotate 0 0 S12 stroke grestore} bind def 39.271 +/D13 {gsave translate 45 rotate 0 0 S13 stroke grestore} bind def 39.272 +/D14 {gsave translate 45 rotate 0 0 S14 stroke grestore} bind def 39.273 +/D15 {gsave translate 45 rotate 0 0 S15 stroke grestore} bind def 39.274 +/DiaE {stroke [] 0 setdash vpt add M 39.275 + hpt neg vpt neg V hpt vpt neg V 39.276 + hpt vpt V hpt neg vpt V closepath stroke} def 39.277 +/BoxE {stroke [] 0 setdash exch hpt sub exch vpt add M 39.278 + 0 vpt2 neg V hpt2 0 V 0 vpt2 V 39.279 + hpt2 neg 0 V closepath stroke} def 39.280 +/TriUE {stroke [] 0 setdash vpt 1.12 mul add M 39.281 + hpt neg vpt -1.62 mul V 39.282 + hpt 2 mul 0 V 39.283 + hpt neg vpt 1.62 mul V closepath stroke} def 39.284 +/TriDE {stroke [] 0 setdash vpt 1.12 mul sub M 39.285 + hpt neg vpt 1.62 mul V 39.286 + hpt 2 mul 0 V 39.287 + hpt neg vpt -1.62 mul V closepath stroke} def 39.288 +/PentE {stroke [] 0 setdash gsave 39.289 + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat 39.290 + closepath stroke grestore} def 39.291 +/CircE {stroke [] 0 setdash 39.292 + hpt 0 360 arc stroke} def 39.293 +/Opaque {gsave closepath 1 setgray fill grestore 0 setgray closepath} def 39.294 +/DiaW {stroke [] 0 setdash vpt add M 39.295 + hpt neg vpt neg V hpt vpt neg V 39.296 + hpt vpt V hpt neg vpt V Opaque stroke} def 39.297 +/BoxW {stroke [] 0 setdash exch hpt sub exch vpt add M 39.298 + 0 vpt2 neg V hpt2 0 V 0 vpt2 V 39.299 + hpt2 neg 0 V Opaque stroke} def 39.300 +/TriUW {stroke [] 0 setdash vpt 1.12 mul add M 39.301 + hpt neg vpt -1.62 mul V 39.302 + hpt 2 mul 0 V 39.303 + hpt neg vpt 1.62 mul V Opaque stroke} def 39.304 +/TriDW {stroke [] 0 setdash vpt 1.12 mul sub M 39.305 + hpt neg vpt 1.62 mul V 39.306 + hpt 2 mul 0 V 39.307 + hpt neg vpt -1.62 mul V Opaque stroke} def 39.308 +/PentW {stroke [] 0 setdash gsave 39.309 + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat 39.310 + Opaque stroke grestore} def 39.311 +/CircW {stroke [] 0 setdash 39.312 + hpt 0 360 arc Opaque stroke} def 39.313 +/BoxFill {gsave Rec 1 setgray fill grestore} def 39.314 +/Density { 39.315 + /Fillden exch def 39.316 + currentrgbcolor 39.317 + /ColB exch def /ColG exch def /ColR exch def 39.318 + /ColR ColR Fillden mul Fillden sub 1 add def 39.319 + /ColG ColG Fillden mul Fillden sub 1 add def 39.320 + /ColB ColB Fillden mul Fillden sub 1 add def 39.321 + ColR ColG ColB setrgbcolor} def 39.322 +/BoxColFill {gsave Rec PolyFill} def 39.323 +/PolyFill {gsave Density fill grestore grestore} def 39.324 +/h {rlineto rlineto rlineto gsave closepath fill grestore} bind def 39.325 +% 39.326 +% PostScript Level 1 Pattern Fill routine for rectangles 39.327 +% Usage: x y w h s a XX PatternFill 39.328 +% x,y = lower left corner of box to be filled 39.329 +% w,h = width and height of box 39.330 +% a = angle in degrees between lines and x-axis 39.331 +% XX = 0/1 for no/yes cross-hatch 39.332 +% 39.333 +/PatternFill {gsave /PFa [ 9 2 roll ] def 39.334 + PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate 39.335 + PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec 39.336 + gsave 1 setgray fill grestore clip 39.337 + currentlinewidth 0.5 mul setlinewidth 39.338 + /PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def 39.339 + 0 0 M PFa 5 get rotate PFs -2 div dup translate 39.340 + 0 1 PFs PFa 4 get div 1 add floor cvi 39.341 + {PFa 4 get mul 0 M 0 PFs V} for 39.342 + 0 PFa 6 get ne { 39.343 + 0 1 PFs PFa 4 get div 1 add floor cvi 39.344 + {PFa 4 get mul 0 2 1 roll M PFs 0 V} for 39.345 + } if 39.346 + stroke grestore} def 39.347 +% 39.348 +/languagelevel where 39.349 + {pop languagelevel} {1} ifelse 39.350 + 2 lt 39.351 + {/InterpretLevel1 true def} 39.352 + {/InterpretLevel1 Level1 def} 39.353 + ifelse 39.354 +% 39.355 +% PostScript level 2 pattern fill definitions 39.356 +% 39.357 +/Level2PatternFill { 39.358 +/Tile8x8 {/PaintType 2 /PatternType 1 /TilingType 1 /BBox [0 0 8 8] /XStep 8 /YStep 8} 39.359 + bind def 39.360 +/KeepColor {currentrgbcolor [/Pattern /DeviceRGB] setcolorspace} bind def 39.361 +<< Tile8x8 39.362 + /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke} 39.363 +>> matrix makepattern 39.364 +/Pat1 exch def 39.365 +<< Tile8x8 39.366 + /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke 39.367 + 0 4 M 4 8 L 8 4 L 4 0 L 0 4 L stroke} 39.368 +>> matrix makepattern 39.369 +/Pat2 exch def 39.370 +<< Tile8x8 39.371 + /PaintProc {0.5 setlinewidth pop 0 0 M 0 8 L 39.372 + 8 8 L 8 0 L 0 0 L fill} 39.373 +>> matrix makepattern 39.374 +/Pat3 exch def 39.375 +<< Tile8x8 39.376 + /PaintProc {0.5 setlinewidth pop -4 8 M 8 -4 L 39.377 + 0 12 M 12 0 L stroke} 39.378 +>> matrix makepattern 39.379 +/Pat4 exch def 39.380 +<< Tile8x8 39.381 + /PaintProc {0.5 setlinewidth pop -4 0 M 8 12 L 39.382 + 0 -4 M 12 8 L stroke} 39.383 +>> matrix makepattern 39.384 +/Pat5 exch def 39.385 +<< Tile8x8 39.386 + /PaintProc {0.5 setlinewidth pop -2 8 M 4 -4 L 39.387 + 0 12 M 8 -4 L 4 12 M 10 0 L stroke} 39.388 +>> matrix makepattern 39.389 +/Pat6 exch def 39.390 +<< Tile8x8 39.391 + /PaintProc {0.5 setlinewidth pop -2 0 M 4 12 L 39.392 + 0 -4 M 8 12 L 4 -4 M 10 8 L stroke} 39.393 +>> matrix makepattern 39.394 +/Pat7 exch def 39.395 +<< Tile8x8 39.396 + /PaintProc {0.5 setlinewidth pop 8 -2 M -4 4 L 39.397 + 12 0 M -4 8 L 12 4 M 0 10 L stroke} 39.398 +>> matrix makepattern 39.399 +/Pat8 exch def 39.400 +<< Tile8x8 39.401 + /PaintProc {0.5 setlinewidth pop 0 -2 M 12 4 L 39.402 + -4 0 M 12 8 L -4 4 M 8 10 L stroke} 39.403 +>> matrix makepattern 39.404 +/Pat9 exch def 39.405 +/Pattern1 {PatternBgnd KeepColor Pat1 setpattern} bind def 39.406 +/Pattern2 {PatternBgnd KeepColor Pat2 setpattern} bind def 39.407 +/Pattern3 {PatternBgnd KeepColor Pat3 setpattern} bind def 39.408 +/Pattern4 {PatternBgnd KeepColor Landscape {Pat5} {Pat4} ifelse setpattern} bind def 39.409 +/Pattern5 {PatternBgnd KeepColor Landscape {Pat4} {Pat5} ifelse setpattern} bind def 39.410 +/Pattern6 {PatternBgnd KeepColor Landscape {Pat9} {Pat6} ifelse setpattern} bind def 39.411 +/Pattern7 {PatternBgnd KeepColor Landscape {Pat8} {Pat7} ifelse setpattern} bind def 39.412 +} def 39.413 +% 39.414 +% 39.415 +%End of PostScript Level 2 code 39.416 +% 39.417 +/PatternBgnd { 39.418 + TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse 39.419 +} def 39.420 +% 39.421 +% Substitute for Level 2 pattern fill codes with 39.422 +% grayscale if Level 2 support is not selected. 39.423 +% 39.424 +/Level1PatternFill { 39.425 +/Pattern1 {0.250 Density} bind def 39.426 +/Pattern2 {0.500 Density} bind def 39.427 +/Pattern3 {0.750 Density} bind def 39.428 +/Pattern4 {0.125 Density} bind def 39.429 +/Pattern5 {0.375 Density} bind def 39.430 +/Pattern6 {0.625 Density} bind def 39.431 +/Pattern7 {0.875 Density} bind def 39.432 +} def 39.433 +% 39.434 +% Now test for support of Level 2 code 39.435 +% 39.436 +Level1 {Level1PatternFill} {Level2PatternFill} ifelse 39.437 +% 39.438 +/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont 39.439 +dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall 39.440 +currentdict end definefont pop 39.441 +/MFshow { 39.442 + { dup 5 get 3 ge 39.443 + { 5 get 3 eq {gsave} {grestore} ifelse } 39.444 + {dup dup 0 get findfont exch 1 get scalefont setfont 39.445 + [ currentpoint ] exch dup 2 get 0 exch R dup 5 get 2 ne {dup dup 6 39.446 + get exch 4 get {Gshow} {stringwidth pop 0 R} ifelse }if dup 5 get 0 eq 39.447 + {dup 3 get {2 get neg 0 exch R pop} {pop aload pop M} ifelse} {dup 5 39.448 + get 1 eq {dup 2 get exch dup 3 get exch 6 get stringwidth pop -2 div 39.449 + dup 0 R} {dup 6 get stringwidth pop -2 div 0 R 6 get 39.450 + show 2 index {aload pop M neg 3 -1 roll neg R pop pop} {pop pop pop 39.451 + pop aload pop M} ifelse }ifelse }ifelse } 39.452 + ifelse } 39.453 + forall} def 39.454 +/Gswidth {dup type /stringtype eq {stringwidth} {pop (n) stringwidth} ifelse} def 39.455 +/MFwidth {0 exch { dup 5 get 3 ge { 5 get 3 eq { 0 } { pop } ifelse } 39.456 + {dup 3 get{dup dup 0 get findfont exch 1 get scalefont setfont 39.457 + 6 get Gswidth pop add} {pop} ifelse} ifelse} forall} def 39.458 +/MLshow { currentpoint stroke M 39.459 + 0 exch R 39.460 + Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def 39.461 +/MRshow { currentpoint stroke M 39.462 + exch dup MFwidth neg 3 -1 roll R 39.463 + Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def 39.464 +/MCshow { currentpoint stroke M 39.465 + exch dup MFwidth -2 div 3 -1 roll R 39.466 + Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def 39.467 +/XYsave { [( ) 1 2 true false 3 ()] } bind def 39.468 +/XYrestore { [( ) 1 2 true false 4 ()] } bind def 39.469 +end 39.470 +%%EndProlog 39.471 +%%Page: 1 1 39.472 +gnudict begin 39.473 +gsave 39.474 +doclip 39.475 +50 50 translate 39.476 +0.100 0.100 scale 39.477 +90 rotate 39.478 +0 -5040 translate 39.479 +0 setgray 39.480 +newpath 39.481 +(Helvetica) findfont 140 scalefont setfont 39.482 +1.000 UL 39.483 +LTb 39.484 +602 448 M 39.485 +63 0 V 39.486 +stroke 39.487 +518 448 M 39.488 +[ [(Helvetica) 140.0 0.0 true true 0 ( 1)] 39.489 +] -46.7 MRshow 39.490 +1.000 UL 39.491 +LTb 39.492 +602 715 M 39.493 +63 0 V 39.494 +stroke 39.495 +518 715 M 39.496 +[ [(Helvetica) 140.0 0.0 true true 0 ( 2)] 39.497 +] -46.7 MRshow 39.498 +1.000 UL 39.499 +LTb 39.500 +602 983 M 39.501 +63 0 V 39.502 +stroke 39.503 +518 983 M 39.504 +[ [(Helvetica) 140.0 0.0 true true 0 ( 3)] 39.505 +] -46.7 MRshow 39.506 +1.000 UL 39.507 +LTb 39.508 +602 1250 M 39.509 +63 0 V 39.510 +stroke 39.511 +518 1250 M 39.512 +[ [(Helvetica) 140.0 0.0 true true 0 ( 4)] 39.513 +] -46.7 MRshow 39.514 +1.000 UL 39.515 +LTb 39.516 +602 1518 M 39.517 +63 0 V 39.518 +stroke 39.519 +518 1518 M 39.520 +[ [(Helvetica) 140.0 0.0 true true 0 ( 5)] 39.521 +] -46.7 MRshow 39.522 +1.000 UL 39.523 +LTb 39.524 +602 1785 M 39.525 +63 0 V 39.526 +stroke 39.527 +518 1785 M 39.528 +[ [(Helvetica) 140.0 0.0 true true 0 ( 6)] 39.529 +] -46.7 MRshow 39.530 +1.000 UL 39.531 +LTb 39.532 +602 2053 M 39.533 +63 0 V 39.534 +stroke 39.535 +518 2053 M 39.536 +[ [(Helvetica) 140.0 0.0 true true 0 ( 7)] 39.537 +] -46.7 MRshow 39.538 +1.000 UL 39.539 +LTb 39.540 +602 2320 M 39.541 +63 0 V 39.542 +stroke 39.543 +518 2320 M 39.544 +[ [(Helvetica) 140.0 0.0 true true 0 ( 8)] 39.545 +] -46.7 MRshow 39.546 +1.000 UL 39.547 +LTb 39.548 +602 2588 M 39.549 +63 0 V 39.550 +stroke 39.551 +518 2588 M 39.552 +[ [(Helvetica) 140.0 0.0 true true 0 ( 9)] 39.553 +] -46.7 MRshow 39.554 +1.000 UL 39.555 +LTb 39.556 +602 2855 M 39.557 +63 0 V 39.558 +stroke 39.559 +518 2855 M 39.560 +[ [(Helvetica) 140.0 0.0 true true 0 ( 10)] 39.561 +] -46.7 MRshow 39.562 +1.000 UL 39.563 +LTb 39.564 +602 448 M 39.565 +0 63 V 39.566 +stroke 39.567 +602 308 M 39.568 +[ [(Helvetica) 140.0 0.0 true true 0 ( 0)] 39.569 +] -46.7 MCshow 39.570 +1.000 UL 39.571 +LTb 39.572 +1035 448 M 39.573 +0 63 V 39.574 +stroke 39.575 +1035 308 M 39.576 +[ [(Helvetica) 140.0 0.0 true true 0 ( 1000)] 39.577 +] -46.7 MCshow 39.578 +1.000 UL 39.579 +LTb 39.580 +1468 448 M 39.581 +0 63 V 39.582 +stroke 39.583 +1468 308 M 39.584 +[ [(Helvetica) 140.0 0.0 true true 0 ( 2000)] 39.585 +] -46.7 MCshow 39.586 +1.000 UL 39.587 +LTb 39.588 +1901 448 M 39.589 +0 63 V 39.590 +stroke 39.591 +1901 308 M 39.592 +[ [(Helvetica) 140.0 0.0 true true 0 ( 3000)] 39.593 +] -46.7 MCshow 39.594 +1.000 UL 39.595 +LTb 39.596 +2335 448 M 39.597 +0 63 V 39.598 +stroke 39.599 +2335 308 M 39.600 +[ [(Helvetica) 140.0 0.0 true true 0 ( 4000)] 39.601 +] -46.7 MCshow 39.602 +1.000 UL 39.603 +LTb 39.604 +2768 448 M 39.605 +0 63 V 39.606 +stroke 39.607 +2768 308 M 39.608 +[ [(Helvetica) 140.0 0.0 true true 0 ( 5000)] 39.609 +] -46.7 MCshow 39.610 +1.000 UL 39.611 +LTb 39.612 +3201 448 M 39.613 +0 63 V 39.614 +stroke 39.615 +3201 308 M 39.616 +[ [(Helvetica) 140.0 0.0 true true 0 ( 6000)] 39.617 +] -46.7 MCshow 39.618 +1.000 UL 39.619 +LTb 39.620 +3634 448 M 39.621 +0 63 V 39.622 +stroke 39.623 +3634 308 M 39.624 +[ [(Helvetica) 140.0 0.0 true true 0 ( 7000)] 39.625 +] -46.7 MCshow 39.626 +1.000 UL 39.627 +LTb 39.628 +4067 448 M 39.629 +0 63 V 39.630 +stroke 39.631 +4067 308 M 39.632 +[ [(Helvetica) 140.0 0.0 true true 0 ( 8000)] 39.633 +] -46.7 MCshow 39.634 +1.000 UL 39.635 +LTb 39.636 +1.000 UL 39.637 +LTb 39.638 +602 2855 M 39.639 +602 448 L 39.640 +3465 0 V 39.641 +0 2407 R 39.642 +-3465 0 R 39.643 +stroke 39.644 +LCb setrgbcolor 39.645 +112 1651 M 39.646 +currentpoint gsave translate -270 rotate 0 0 moveto 39.647 +[ [(Helvetica) 140.0 0.0 true true 0 (Ratio of Total Execution to Total Work)] 39.648 +] -46.7 MCshow 39.649 +grestore 39.650 +LTb 39.651 +LCb setrgbcolor 39.652 +2334 98 M 39.653 +[ [(Helvetica) 140.0 0.0 true true 0 (Cycles in one Task)] 39.654 +] -46.7 MCshow 39.655 +LTb 39.656 +1.000 UP 39.657 +1.000 UL 39.658 +LTb 39.659 +LCb setrgbcolor 39.660 +3538 2919 M 39.661 +[ [(Helvetica) 140.0 0.0 true true 0 (pthreads)] 39.662 +] -46.7 MCshow 39.663 +LTb 39.664 +1.000 UL 39.665 +LTb 39.666 +2793 2289 N 39.667 +0 700 V 39.668 +1491 0 V 39.669 +0 -700 V 39.670 +-1491 0 V 39.671 +Z stroke 39.672 +2793 2849 M 39.673 +1491 0 V 39.674 +% Begin plot #1 39.675 +stroke 39.676 +4.000 UL 39.677 +LT5 39.678 +LC7 setrgbcolor 39.679 +LCb setrgbcolor 39.680 +3717 2779 M 39.681 +[ [(Helvetica) 140.0 0.0 true true 0 (8 Threads)] 39.682 +] -46.7 MRshow 39.683 +LT5 39.684 +LC7 setrgbcolor 39.685 +3801 2779 M 39.686 +399 0 V 39.687 +775 2855 M 39.688 +28 -401 V 39.689 +924 1709 L 39.690 +249 -553 V 39.691 +1658 827 L 39.692 +2629 643 L 39.693 +4067 572 L 39.694 +% End plot #1 39.695 +% Begin plot #2 39.696 +stroke 39.697 +LT6 39.698 +LCb setrgbcolor 39.699 +3717 2639 M 39.700 +[ [(Helvetica) 140.0 0.0 true true 0 (32 Threads)] 39.701 +] -46.7 MRshow 39.702 +LT6 39.703 +3801 2639 M 39.704 +399 0 V 39.705 +1064 2855 M 39.706 +111 -618 V 39.707 +488 -826 V 39.708 +2631 949 L 39.709 +4067 767 L 39.710 +% End plot #2 39.711 +% Begin plot #3 39.712 +stroke 39.713 +LT7 39.714 +LC1 setrgbcolor 39.715 +LCb setrgbcolor 39.716 +3717 2499 M 39.717 +[ [(Helvetica) 140.0 0.0 true true 0 (128 Threads)] 39.718 +] -46.7 MRshow 39.719 +LT7 39.720 +LC1 setrgbcolor 39.721 +3801 2499 M 39.722 +399 0 V 39.723 +2210 2855 M 39.724 +429 -685 V 39.725 +4067 1557 L 39.726 +% End plot #3 39.727 +% Begin plot #4 39.728 +stroke 39.729 +LT8 39.730 +LCb setrgbcolor 39.731 +3717 2359 M 39.732 +[ [(Helvetica) 140.0 0.0 true true 0 (512 Threads)] 39.733 +] -46.7 MRshow 39.734 +LT8 39.735 +3801 2359 M 39.736 +399 0 V 39.737 +% End plot #4 39.738 +stroke 39.739 +1.000 UL 39.740 +LTb 39.741 +602 2855 M 39.742 +602 448 L 39.743 +3465 0 V 39.744 +0 2407 R 39.745 +-3465 0 R 39.746 +1.000 UP 39.747 +602 448 M 39.748 +63 0 V 39.749 +stroke 39.750 +518 448 M 39.751 +[ [(Helvetica) 140.0 0.0 true true 0 ( 1)] 39.752 +] -46.7 MRshow 39.753 +1.000 UL 39.754 +LTb 39.755 +602 715 M 39.756 +63 0 V 39.757 +stroke 39.758 +518 715 M 39.759 +[ [(Helvetica) 140.0 0.0 true true 0 ( 2)] 39.760 +] -46.7 MRshow 39.761 +1.000 UL 39.762 +LTb 39.763 +602 983 M 39.764 +63 0 V 39.765 +stroke 39.766 +518 983 M 39.767 +[ [(Helvetica) 140.0 0.0 true true 0 ( 3)] 39.768 +] -46.7 MRshow 39.769 +1.000 UL 39.770 +LTb 39.771 +602 1250 M 39.772 +63 0 V 39.773 +stroke 39.774 +518 1250 M 39.775 +[ [(Helvetica) 140.0 0.0 true true 0 ( 4)] 39.776 +] -46.7 MRshow 39.777 +1.000 UL 39.778 +LTb 39.779 +602 1518 M 39.780 +63 0 V 39.781 +stroke 39.782 +518 1518 M 39.783 +[ [(Helvetica) 140.0 0.0 true true 0 ( 5)] 39.784 +] -46.7 MRshow 39.785 +1.000 UL 39.786 +LTb 39.787 +602 1785 M 39.788 +63 0 V 39.789 +stroke 39.790 +518 1785 M 39.791 +[ [(Helvetica) 140.0 0.0 true true 0 ( 6)] 39.792 +] -46.7 MRshow 39.793 +1.000 UL 39.794 +LTb 39.795 +602 2053 M 39.796 +63 0 V 39.797 +stroke 39.798 +518 2053 M 39.799 +[ [(Helvetica) 140.0 0.0 true true 0 ( 7)] 39.800 +] -46.7 MRshow 39.801 +1.000 UL 39.802 +LTb 39.803 +602 2320 M 39.804 +63 0 V 39.805 +stroke 39.806 +518 2320 M 39.807 +[ [(Helvetica) 140.0 0.0 true true 0 ( 8)] 39.808 +] -46.7 MRshow 39.809 +1.000 UL 39.810 +LTb 39.811 +602 2588 M 39.812 +63 0 V 39.813 +stroke 39.814 +518 2588 M 39.815 +[ [(Helvetica) 140.0 0.0 true true 0 ( 9)] 39.816 +] -46.7 MRshow 39.817 +1.000 UL 39.818 +LTb 39.819 +602 2855 M 39.820 +63 0 V 39.821 +stroke 39.822 +518 2855 M 39.823 +[ [(Helvetica) 140.0 0.0 true true 0 ( 10)] 39.824 +] -46.7 MRshow 39.825 +1.000 UL 39.826 +LTb 39.827 +602 448 M 39.828 +0 63 V 39.829 +stroke 39.830 +602 308 M 39.831 +[ [(Helvetica) 140.0 0.0 true true 0 ( 0)] 39.832 +] -46.7 MCshow 39.833 +1.000 UL 39.834 +LTb 39.835 +1035 448 M 39.836 +0 63 V 39.837 +stroke 39.838 +1035 308 M 39.839 +[ [(Helvetica) 140.0 0.0 true true 0 ( 1000)] 39.840 +] -46.7 MCshow 39.841 +1.000 UL 39.842 +LTb 39.843 +1468 448 M 39.844 +0 63 V 39.845 +stroke 39.846 +1468 308 M 39.847 +[ [(Helvetica) 140.0 0.0 true true 0 ( 2000)] 39.848 +] -46.7 MCshow 39.849 +1.000 UL 39.850 +LTb 39.851 +1901 448 M 39.852 +0 63 V 39.853 +stroke 39.854 +1901 308 M 39.855 +[ [(Helvetica) 140.0 0.0 true true 0 ( 3000)] 39.856 +] -46.7 MCshow 39.857 +1.000 UL 39.858 +LTb 39.859 +2335 448 M 39.860 +0 63 V 39.861 +stroke 39.862 +2335 308 M 39.863 +[ [(Helvetica) 140.0 0.0 true true 0 ( 4000)] 39.864 +] -46.7 MCshow 39.865 +1.000 UL 39.866 +LTb 39.867 +2768 448 M 39.868 +0 63 V 39.869 +stroke 39.870 +2768 308 M 39.871 +[ [(Helvetica) 140.0 0.0 true true 0 ( 5000)] 39.872 +] -46.7 MCshow 39.873 +1.000 UL 39.874 +LTb 39.875 +3201 448 M 39.876 +0 63 V 39.877 +stroke 39.878 +3201 308 M 39.879 +[ [(Helvetica) 140.0 0.0 true true 0 ( 6000)] 39.880 +] -46.7 MCshow 39.881 +1.000 UL 39.882 +LTb 39.883 +3634 448 M 39.884 +0 63 V 39.885 +stroke 39.886 +3634 308 M 39.887 +[ [(Helvetica) 140.0 0.0 true true 0 ( 7000)] 39.888 +] -46.7 MCshow 39.889 +1.000 UL 39.890 +LTb 39.891 +4067 448 M 39.892 +0 63 V 39.893 +stroke 39.894 +4067 308 M 39.895 +[ [(Helvetica) 140.0 0.0 true true 0 ( 8000)] 39.896 +] -46.7 MCshow 39.897 +1.000 UL 39.898 +LTb 39.899 +1.000 UL 39.900 +LTb 39.901 +602 2855 M 39.902 +602 448 L 39.903 +3465 0 V 39.904 +0 2407 R 39.905 +-3465 0 R 39.906 +stroke 39.907 +LCb setrgbcolor 39.908 +112 1651 M 39.909 +currentpoint gsave translate -270 rotate 0 0 moveto 39.910 +[ [(Helvetica) 140.0 0.0 true true 0 (Ratio of Total Execution to Total Work)] 39.911 +] -46.7 MCshow 39.912 +grestore 39.913 +LTb 39.914 +LCb setrgbcolor 39.915 +2334 98 M 39.916 +[ [(Helvetica) 140.0 0.0 true true 0 (Cycles in one Task)] 39.917 +] -46.7 MCshow 39.918 +LTb 39.919 +1.000 UP 39.920 +1.000 UL 39.921 +LTb 39.922 +LCb setrgbcolor 39.923 +2022 2919 M 39.924 +[ [(Helvetica) 140.0 0.0 true true 0 (Vthread)] 39.925 +] -46.7 MCshow 39.926 +LTb 39.927 +1.000 UL 39.928 +LTb 39.929 +1277 2289 N 39.930 +0 700 V 39.931 +1491 0 V 39.932 +0 -700 V 39.933 +-1491 0 V 39.934 +Z stroke 39.935 +1277 2849 M 39.936 +1491 0 V 39.937 +% Begin plot #1 39.938 +stroke 39.939 +4.000 UL 39.940 +LT1 39.941 +LCa setrgbcolor 39.942 +602 715 M 39.943 +35 0 V 39.944 +35 0 V 39.945 +35 0 V 39.946 +35 0 V 39.947 +35 0 V 39.948 +35 0 V 39.949 +35 0 V 39.950 +35 0 V 39.951 +35 0 V 39.952 +35 0 V 39.953 +35 0 V 39.954 +35 0 V 39.955 +35 0 V 39.956 +35 0 V 39.957 +35 0 V 39.958 +35 0 V 39.959 +35 0 V 39.960 +35 0 V 39.961 +35 0 V 39.962 +35 0 V 39.963 +35 0 V 39.964 +35 0 V 39.965 +35 0 V 39.966 +35 0 V 39.967 +35 0 V 39.968 +35 0 V 39.969 +35 0 V 39.970 +35 0 V 39.971 +35 0 V 39.972 +35 0 V 39.973 +35 0 V 39.974 +35 0 V 39.975 +35 0 V 39.976 +35 0 V 39.977 +35 0 V 39.978 +35 0 V 39.979 +35 0 V 39.980 +35 0 V 39.981 +35 0 V 39.982 +35 0 V 39.983 +35 0 V 39.984 +35 0 V 39.985 +35 0 V 39.986 +35 0 V 39.987 +35 0 V 39.988 +35 0 V 39.989 +35 0 V 39.990 +35 0 V 39.991 +35 0 V 39.992 +35 0 V 39.993 +35 0 V 39.994 +35 0 V 39.995 +35 0 V 39.996 +35 0 V 39.997 +35 0 V 39.998 +35 0 V 39.999 +35 0 V 39.1000 +35 0 V 39.1001 +35 0 V 39.1002 +35 0 V 39.1003 +35 0 V 39.1004 +35 0 V 39.1005 +35 0 V 39.1006 +35 0 V 39.1007 +35 0 V 39.1008 +35 0 V 39.1009 +35 0 V 39.1010 +35 0 V 39.1011 +35 0 V 39.1012 +35 0 V 39.1013 +35 0 V 39.1014 +35 0 V 39.1015 +35 0 V 39.1016 +35 0 V 39.1017 +35 0 V 39.1018 +35 0 V 39.1019 +35 0 V 39.1020 +35 0 V 39.1021 +35 0 V 39.1022 +35 0 V 39.1023 +35 0 V 39.1024 +35 0 V 39.1025 +35 0 V 39.1026 +35 0 V 39.1027 +35 0 V 39.1028 +35 0 V 39.1029 +35 0 V 39.1030 +35 0 V 39.1031 +35 0 V 39.1032 +35 0 V 39.1033 +35 0 V 39.1034 +35 0 V 39.1035 +35 0 V 39.1036 +35 0 V 39.1037 +35 0 V 39.1038 +35 0 V 39.1039 +35 0 V 39.1040 +35 0 V 39.1041 +35 0 V 39.1042 +% End plot #1 39.1043 +% Begin plot #2 39.1044 +stroke 39.1045 +LT0 39.1046 +LCb setrgbcolor 39.1047 +2201 2779 M 39.1048 +[ [(Helvetica) 140.0 0.0 true true 0 (8 Threads)] 39.1049 +] -46.7 MRshow 39.1050 +LT0 39.1051 +2285 2779 M 39.1052 +399 0 V 39.1053 +692 1306 M 39.1054 +18 -111 V 39.1055 +31 -149 V 39.1056 +801 842 L 39.1057 +922 697 L 39.1058 +1172 589 L 39.1059 +486 -65 V 39.1060 +970 -37 V 39.1061 +4067 473 L 39.1062 +% End plot #2 39.1063 +% Begin plot #3 39.1064 +stroke 39.1065 +LT2 39.1066 +LCb setrgbcolor 39.1067 +2201 2639 M 39.1068 +[ [(Helvetica) 140.0 0.0 true true 0 (32 Threads)] 39.1069 +] -46.7 MRshow 39.1070 +LT2 39.1071 +2285 2639 M 39.1072 +399 0 V 39.1073 +692 1319 M 39.1074 +18 -134 V 39.1075 +30 -176 V 39.1076 +801 845 L 39.1077 +922 690 L 39.1078 +1173 582 L 39.1079 +485 -60 V 39.1080 +970 -36 V 39.1081 +4067 472 L 39.1082 +% End plot #3 39.1083 +% Begin plot #4 39.1084 +stroke 39.1085 +LT3 39.1086 +LCb setrgbcolor 39.1087 +2201 2499 M 39.1088 +[ [(Helvetica) 140.0 0.0 true true 0 (128 Threads)] 39.1089 +] -46.7 MRshow 39.1090 +LT3 39.1091 +2285 2499 M 39.1092 +399 0 V 39.1093 +693 1386 M 39.1094 +18 -167 V 39.1095 +30 -161 V 39.1096 +801 865 L 39.1097 +923 711 L 39.1098 +1173 595 L 39.1099 +485 -67 V 39.1100 +970 -39 V 39.1101 +4067 474 L 39.1102 +% End plot #4 39.1103 +% Begin plot #5 39.1104 +stroke 39.1105 +LT4 39.1106 +LCb setrgbcolor 39.1107 +2201 2359 M 39.1108 +[ [(Helvetica) 140.0 0.0 true true 0 (512 Threads)] 39.1109 +] -46.7 MRshow 39.1110 +LT4 39.1111 +2285 2359 M 39.1112 +399 0 V 39.1113 +692 1425 M 39.1114 +19 -158 V 39.1115 +30 -179 V 39.1116 +802 892 L 39.1117 +923 725 L 39.1118 +1173 602 L 39.1119 +485 -70 V 39.1120 +970 -40 V 39.1121 +4067 476 L 39.1122 +% End plot #5 39.1123 +stroke 39.1124 +1.000 UL 39.1125 +LTb 39.1126 +602 2855 M 39.1127 +602 448 L 39.1128 +3465 0 V 39.1129 +0 2407 R 39.1130 +-3465 0 R 39.1131 +1.000 UP 39.1132 +stroke 39.1133 +grestore 39.1134 +end 39.1135 +showpage 39.1136 +%%Trailer 39.1137 +%%DocumentFonts: Helvetica 39.1138 +%%Pages: 1
40.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 40.2 +++ b/0__Papers/PRT/PRT__formal_def/figures/plots_exec_vs_task_size/not_used/cray1_pthreads_8_32_128_512thds__o30000__perfCtrs.result.eps Sat Aug 03 19:24:22 2013 -0700 40.3 @@ -0,0 +1,818 @@ 40.4 +%!PS-Adobe-2.0 40.5 +%%Title: cray1_pthreads_8_32_128_512thds__o30000__perfCtrs.result.eps 40.6 +%%Creator: gnuplot 4.4 patchlevel 2 40.7 +%%CreationDate: Thu Jan 26 18:08:51 2012 40.8 +%%DocumentFonts: (atend) 40.9 +%%BoundingBox: 251 50 554 482 40.10 +%%Orientation: Landscape 40.11 +%%Pages: (atend) 40.12 +%%EndComments 40.13 +%%BeginProlog 40.14 +/gnudict 256 dict def 40.15 +gnudict begin 40.16 +% 40.17 +% The following true/false flags may be edited by hand if desired. 40.18 +% The unit line width and grayscale image gamma correction may also be changed. 40.19 +% 40.20 +/Color true def 40.21 +/Blacktext false def 40.22 +/Solid false def 40.23 +/Dashlength 1 def 40.24 +/Landscape true def 40.25 +/Level1 false def 40.26 +/Rounded false def 40.27 +/ClipToBoundingBox false def 40.28 +/TransparentPatterns false def 40.29 +/gnulinewidth 5.000 def 40.30 +/userlinewidth gnulinewidth def 40.31 +/Gamma 1.0 def 40.32 +% 40.33 +/vshift -46 def 40.34 +/dl1 { 40.35 + 10.0 Dashlength mul mul 40.36 + Rounded { currentlinewidth 0.75 mul sub dup 0 le { pop 0.01 } if } if 40.37 +} def 40.38 +/dl2 { 40.39 + 10.0 Dashlength mul mul 40.40 + Rounded { currentlinewidth 0.75 mul add } if 40.41 +} def 40.42 +/hpt_ 31.5 def 40.43 +/vpt_ 31.5 def 40.44 +/hpt hpt_ def 40.45 +/vpt vpt_ def 40.46 +Level1 {} { 40.47 +/SDict 10 dict def 40.48 +systemdict /pdfmark known not { 40.49 + userdict /pdfmark systemdict /cleartomark get put 40.50 +} if 40.51 +SDict begin [ 40.52 + /Title (cray1_pthreads_8_32_128_512thds__o30000__perfCtrs.result.eps) 40.53 + /Subject (gnuplot plot) 40.54 + /Creator (gnuplot 4.4 patchlevel 2) 40.55 + /Author (msach) 40.56 +% /Producer (gnuplot) 40.57 +% /Keywords () 40.58 + /CreationDate (Thu Jan 26 18:08:51 2012) 40.59 + /DOCINFO pdfmark 40.60 +end 40.61 +} ifelse 40.62 +/doclip { 40.63 + ClipToBoundingBox { 40.64 + newpath 251 50 moveto 554 50 lineto 554 482 lineto 251 482 lineto closepath 40.65 + clip 40.66 + } if 40.67 +} def 40.68 +% 40.69 +% Gnuplot Prolog Version 4.4 (August 2010) 40.70 +% 40.71 +%/SuppressPDFMark true def 40.72 +% 40.73 +/M {moveto} bind def 40.74 +/L {lineto} bind def 40.75 +/R {rmoveto} bind def 40.76 +/V {rlineto} bind def 40.77 +/N {newpath moveto} bind def 40.78 +/Z {closepath} bind def 40.79 +/C {setrgbcolor} bind def 40.80 +/f {rlineto fill} bind def 40.81 +/g {setgray} bind def 40.82 +/Gshow {show} def % May be redefined later in the file to support UTF-8 40.83 +/vpt2 vpt 2 mul def 40.84 +/hpt2 hpt 2 mul def 40.85 +/Lshow {currentpoint stroke M 0 vshift R 40.86 + Blacktext {gsave 0 setgray show grestore} {show} ifelse} def 40.87 +/Rshow {currentpoint stroke M dup stringwidth pop neg vshift R 40.88 + Blacktext {gsave 0 setgray show grestore} {show} ifelse} def 40.89 +/Cshow {currentpoint stroke M dup stringwidth pop -2 div vshift R 40.90 + Blacktext {gsave 0 setgray show grestore} {show} ifelse} def 40.91 +/UP {dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def 40.92 + /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def} def 40.93 +/DL {Color {setrgbcolor Solid {pop []} if 0 setdash} 40.94 + {pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse} def 40.95 +/BL {stroke userlinewidth 2 mul setlinewidth 40.96 + Rounded {1 setlinejoin 1 setlinecap} if} def 40.97 +/AL {stroke userlinewidth 2 div setlinewidth 40.98 + Rounded {1 setlinejoin 1 setlinecap} if} def 40.99 +/UL {dup gnulinewidth mul /userlinewidth exch def 40.100 + dup 1 lt {pop 1} if 10 mul /udl exch def} def 40.101 +/PL {stroke userlinewidth setlinewidth 40.102 + Rounded {1 setlinejoin 1 setlinecap} if} def 40.103 +3.8 setmiterlimit 40.104 +% Default Line colors 40.105 +/LCw {1 1 1} def 40.106 +/LCb {0 0 0} def 40.107 +/LCa {0 0 0} def 40.108 +/LC0 {1 0 0} def 40.109 +/LC1 {0 1 0} def 40.110 +/LC2 {0 0 1} def 40.111 +/LC3 {1 0 1} def 40.112 +/LC4 {0 1 1} def 40.113 +/LC5 {1 1 0} def 40.114 +/LC6 {0 0 0} def 40.115 +/LC7 {1 0.3 0} def 40.116 +/LC8 {0.5 0.5 0.5} def 40.117 +% Default Line Types 40.118 +/LTw {PL [] 1 setgray} def 40.119 +/LTb {BL [] LCb DL} def 40.120 +/LTa {AL [1 udl mul 2 udl mul] 0 setdash LCa setrgbcolor} def 40.121 +/LT0 {PL [] LC0 DL} def 40.122 +/LT1 {PL [4 dl1 2 dl2] LC1 DL} def 40.123 +/LT2 {PL [2 dl1 3 dl2] LC2 DL} def 40.124 +/LT3 {PL [1 dl1 1.5 dl2] LC3 DL} def 40.125 +/LT4 {PL [6 dl1 2 dl2 1 dl1 2 dl2] LC4 DL} def 40.126 +/LT5 {PL [3 dl1 3 dl2 1 dl1 3 dl2] LC5 DL} def 40.127 +/LT6 {PL [2 dl1 2 dl2 2 dl1 6 dl2] LC6 DL} def 40.128 +/LT7 {PL [1 dl1 2 dl2 6 dl1 2 dl2 1 dl1 2 dl2] LC7 DL} def 40.129 +/LT8 {PL [2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 4 dl2] LC8 DL} def 40.130 +/Pnt {stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore} def 40.131 +/Dia {stroke [] 0 setdash 2 copy vpt add M 40.132 + hpt neg vpt neg V hpt vpt neg V 40.133 + hpt vpt V hpt neg vpt V closepath stroke 40.134 + Pnt} def 40.135 +/Pls {stroke [] 0 setdash vpt sub M 0 vpt2 V 40.136 + currentpoint stroke M 40.137 + hpt neg vpt neg R hpt2 0 V stroke 40.138 + } def 40.139 +/Box {stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M 40.140 + 0 vpt2 neg V hpt2 0 V 0 vpt2 V 40.141 + hpt2 neg 0 V closepath stroke 40.142 + Pnt} def 40.143 +/Crs {stroke [] 0 setdash exch hpt sub exch vpt add M 40.144 + hpt2 vpt2 neg V currentpoint stroke M 40.145 + hpt2 neg 0 R hpt2 vpt2 V stroke} def 40.146 +/TriU {stroke [] 0 setdash 2 copy vpt 1.12 mul add M 40.147 + hpt neg vpt -1.62 mul V 40.148 + hpt 2 mul 0 V 40.149 + hpt neg vpt 1.62 mul V closepath stroke 40.150 + Pnt} def 40.151 +/Star {2 copy Pls Crs} def 40.152 +/BoxF {stroke [] 0 setdash exch hpt sub exch vpt add M 40.153 + 0 vpt2 neg V hpt2 0 V 0 vpt2 V 40.154 + hpt2 neg 0 V closepath fill} def 40.155 +/TriUF {stroke [] 0 setdash vpt 1.12 mul add M 40.156 + hpt neg vpt -1.62 mul V 40.157 + hpt 2 mul 0 V 40.158 + hpt neg vpt 1.62 mul V closepath fill} def 40.159 +/TriD {stroke [] 0 setdash 2 copy vpt 1.12 mul sub M 40.160 + hpt neg vpt 1.62 mul V 40.161 + hpt 2 mul 0 V 40.162 + hpt neg vpt -1.62 mul V closepath stroke 40.163 + Pnt} def 40.164 +/TriDF {stroke [] 0 setdash vpt 1.12 mul sub M 40.165 + hpt neg vpt 1.62 mul V 40.166 + hpt 2 mul 0 V 40.167 + hpt neg vpt -1.62 mul V closepath fill} def 40.168 +/DiaF {stroke [] 0 setdash vpt add M 40.169 + hpt neg vpt neg V hpt vpt neg V 40.170 + hpt vpt V hpt neg vpt V closepath fill} def 40.171 +/Pent {stroke [] 0 setdash 2 copy gsave 40.172 + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat 40.173 + closepath stroke grestore Pnt} def 40.174 +/PentF {stroke [] 0 setdash gsave 40.175 + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat 40.176 + closepath fill grestore} def 40.177 +/Circle {stroke [] 0 setdash 2 copy 40.178 + hpt 0 360 arc stroke Pnt} def 40.179 +/CircleF {stroke [] 0 setdash hpt 0 360 arc fill} def 40.180 +/C0 {BL [] 0 setdash 2 copy moveto vpt 90 450 arc} bind def 40.181 +/C1 {BL [] 0 setdash 2 copy moveto 40.182 + 2 copy vpt 0 90 arc closepath fill 40.183 + vpt 0 360 arc closepath} bind def 40.184 +/C2 {BL [] 0 setdash 2 copy moveto 40.185 + 2 copy vpt 90 180 arc closepath fill 40.186 + vpt 0 360 arc closepath} bind def 40.187 +/C3 {BL [] 0 setdash 2 copy moveto 40.188 + 2 copy vpt 0 180 arc closepath fill 40.189 + vpt 0 360 arc closepath} bind def 40.190 +/C4 {BL [] 0 setdash 2 copy moveto 40.191 + 2 copy vpt 180 270 arc closepath fill 40.192 + vpt 0 360 arc closepath} bind def 40.193 +/C5 {BL [] 0 setdash 2 copy moveto 40.194 + 2 copy vpt 0 90 arc 40.195 + 2 copy moveto 40.196 + 2 copy vpt 180 270 arc closepath fill 40.197 + vpt 0 360 arc} bind def 40.198 +/C6 {BL [] 0 setdash 2 copy moveto 40.199 + 2 copy vpt 90 270 arc closepath fill 40.200 + vpt 0 360 arc closepath} bind def 40.201 +/C7 {BL [] 0 setdash 2 copy moveto 40.202 + 2 copy vpt 0 270 arc closepath fill 40.203 + vpt 0 360 arc closepath} bind def 40.204 +/C8 {BL [] 0 setdash 2 copy moveto 40.205 + 2 copy vpt 270 360 arc closepath fill 40.206 + vpt 0 360 arc closepath} bind def 40.207 +/C9 {BL [] 0 setdash 2 copy moveto 40.208 + 2 copy vpt 270 450 arc closepath fill 40.209 + vpt 0 360 arc closepath} bind def 40.210 +/C10 {BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill 40.211 + 2 copy moveto 40.212 + 2 copy vpt 90 180 arc closepath fill 40.213 + vpt 0 360 arc closepath} bind def 40.214 +/C11 {BL [] 0 setdash 2 copy moveto 40.215 + 2 copy vpt 0 180 arc closepath fill 40.216 + 2 copy moveto 40.217 + 2 copy vpt 270 360 arc closepath fill 40.218 + vpt 0 360 arc closepath} bind def 40.219 +/C12 {BL [] 0 setdash 2 copy moveto 40.220 + 2 copy vpt 180 360 arc closepath fill 40.221 + vpt 0 360 arc closepath} bind def 40.222 +/C13 {BL [] 0 setdash 2 copy moveto 40.223 + 2 copy vpt 0 90 arc closepath fill 40.224 + 2 copy moveto 40.225 + 2 copy vpt 180 360 arc closepath fill 40.226 + vpt 0 360 arc closepath} bind def 40.227 +/C14 {BL [] 0 setdash 2 copy moveto 40.228 + 2 copy vpt 90 360 arc closepath fill 40.229 + vpt 0 360 arc} bind def 40.230 +/C15 {BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill 40.231 + vpt 0 360 arc closepath} bind def 40.232 +/Rec {newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto 40.233 + neg 0 rlineto closepath} bind def 40.234 +/Square {dup Rec} bind def 40.235 +/Bsquare {vpt sub exch vpt sub exch vpt2 Square} bind def 40.236 +/S0 {BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare} bind def 40.237 +/S1 {BL [] 0 setdash 2 copy vpt Square fill Bsquare} bind def 40.238 +/S2 {BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def 40.239 +/S3 {BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare} bind def 40.240 +/S4 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def 40.241 +/S5 {BL [] 0 setdash 2 copy 2 copy vpt Square fill 40.242 + exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def 40.243 +/S6 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare} bind def 40.244 +/S7 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill 40.245 + 2 copy vpt Square fill Bsquare} bind def 40.246 +/S8 {BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare} bind def 40.247 +/S9 {BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare} bind def 40.248 +/S10 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill 40.249 + Bsquare} bind def 40.250 +/S11 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill 40.251 + Bsquare} bind def 40.252 +/S12 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare} bind def 40.253 +/S13 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 40.254 + 2 copy vpt Square fill Bsquare} bind def 40.255 +/S14 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 40.256 + 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def 40.257 +/S15 {BL [] 0 setdash 2 copy Bsquare fill Bsquare} bind def 40.258 +/D0 {gsave translate 45 rotate 0 0 S0 stroke grestore} bind def 40.259 +/D1 {gsave translate 45 rotate 0 0 S1 stroke grestore} bind def 40.260 +/D2 {gsave translate 45 rotate 0 0 S2 stroke grestore} bind def 40.261 +/D3 {gsave translate 45 rotate 0 0 S3 stroke grestore} bind def 40.262 +/D4 {gsave translate 45 rotate 0 0 S4 stroke grestore} bind def 40.263 +/D5 {gsave translate 45 rotate 0 0 S5 stroke grestore} bind def 40.264 +/D6 {gsave translate 45 rotate 0 0 S6 stroke grestore} bind def 40.265 +/D7 {gsave translate 45 rotate 0 0 S7 stroke grestore} bind def 40.266 +/D8 {gsave translate 45 rotate 0 0 S8 stroke grestore} bind def 40.267 +/D9 {gsave translate 45 rotate 0 0 S9 stroke grestore} bind def 40.268 +/D10 {gsave translate 45 rotate 0 0 S10 stroke grestore} bind def 40.269 +/D11 {gsave translate 45 rotate 0 0 S11 stroke grestore} bind def 40.270 +/D12 {gsave translate 45 rotate 0 0 S12 stroke grestore} bind def 40.271 +/D13 {gsave translate 45 rotate 0 0 S13 stroke grestore} bind def 40.272 +/D14 {gsave translate 45 rotate 0 0 S14 stroke grestore} bind def 40.273 +/D15 {gsave translate 45 rotate 0 0 S15 stroke grestore} bind def 40.274 +/DiaE {stroke [] 0 setdash vpt add M 40.275 + hpt neg vpt neg V hpt vpt neg V 40.276 + hpt vpt V hpt neg vpt V closepath stroke} def 40.277 +/BoxE {stroke [] 0 setdash exch hpt sub exch vpt add M 40.278 + 0 vpt2 neg V hpt2 0 V 0 vpt2 V 40.279 + hpt2 neg 0 V closepath stroke} def 40.280 +/TriUE {stroke [] 0 setdash vpt 1.12 mul add M 40.281 + hpt neg vpt -1.62 mul V 40.282 + hpt 2 mul 0 V 40.283 + hpt neg vpt 1.62 mul V closepath stroke} def 40.284 +/TriDE {stroke [] 0 setdash vpt 1.12 mul sub M 40.285 + hpt neg vpt 1.62 mul V 40.286 + hpt 2 mul 0 V 40.287 + hpt neg vpt -1.62 mul V closepath stroke} def 40.288 +/PentE {stroke [] 0 setdash gsave 40.289 + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat 40.290 + closepath stroke grestore} def 40.291 +/CircE {stroke [] 0 setdash 40.292 + hpt 0 360 arc stroke} def 40.293 +/Opaque {gsave closepath 1 setgray fill grestore 0 setgray closepath} def 40.294 +/DiaW {stroke [] 0 setdash vpt add M 40.295 + hpt neg vpt neg V hpt vpt neg V 40.296 + hpt vpt V hpt neg vpt V Opaque stroke} def 40.297 +/BoxW {stroke [] 0 setdash exch hpt sub exch vpt add M 40.298 + 0 vpt2 neg V hpt2 0 V 0 vpt2 V 40.299 + hpt2 neg 0 V Opaque stroke} def 40.300 +/TriUW {stroke [] 0 setdash vpt 1.12 mul add M 40.301 + hpt neg vpt -1.62 mul V 40.302 + hpt 2 mul 0 V 40.303 + hpt neg vpt 1.62 mul V Opaque stroke} def 40.304 +/TriDW {stroke [] 0 setdash vpt 1.12 mul sub M 40.305 + hpt neg vpt 1.62 mul V 40.306 + hpt 2 mul 0 V 40.307 + hpt neg vpt -1.62 mul V Opaque stroke} def 40.308 +/PentW {stroke [] 0 setdash gsave 40.309 + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat 40.310 + Opaque stroke grestore} def 40.311 +/CircW {stroke [] 0 setdash 40.312 + hpt 0 360 arc Opaque stroke} def 40.313 +/BoxFill {gsave Rec 1 setgray fill grestore} def 40.314 +/Density { 40.315 + /Fillden exch def 40.316 + currentrgbcolor 40.317 + /ColB exch def /ColG exch def /ColR exch def 40.318 + /ColR ColR Fillden mul Fillden sub 1 add def 40.319 + /ColG ColG Fillden mul Fillden sub 1 add def 40.320 + /ColB ColB Fillden mul Fillden sub 1 add def 40.321 + ColR ColG ColB setrgbcolor} def 40.322 +/BoxColFill {gsave Rec PolyFill} def 40.323 +/PolyFill {gsave Density fill grestore grestore} def 40.324 +/h {rlineto rlineto rlineto gsave closepath fill grestore} bind def 40.325 +% 40.326 +% PostScript Level 1 Pattern Fill routine for rectangles 40.327 +% Usage: x y w h s a XX PatternFill 40.328 +% x,y = lower left corner of box to be filled 40.329 +% w,h = width and height of box 40.330 +% a = angle in degrees between lines and x-axis 40.331 +% XX = 0/1 for no/yes cross-hatch 40.332 +% 40.333 +/PatternFill {gsave /PFa [ 9 2 roll ] def 40.334 + PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate 40.335 + PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec 40.336 + gsave 1 setgray fill grestore clip 40.337 + currentlinewidth 0.5 mul setlinewidth 40.338 + /PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def 40.339 + 0 0 M PFa 5 get rotate PFs -2 div dup translate 40.340 + 0 1 PFs PFa 4 get div 1 add floor cvi 40.341 + {PFa 4 get mul 0 M 0 PFs V} for 40.342 + 0 PFa 6 get ne { 40.343 + 0 1 PFs PFa 4 get div 1 add floor cvi 40.344 + {PFa 4 get mul 0 2 1 roll M PFs 0 V} for 40.345 + } if 40.346 + stroke grestore} def 40.347 +% 40.348 +/languagelevel where 40.349 + {pop languagelevel} {1} ifelse 40.350 + 2 lt 40.351 + {/InterpretLevel1 true def} 40.352 + {/InterpretLevel1 Level1 def} 40.353 + ifelse 40.354 +% 40.355 +% PostScript level 2 pattern fill definitions 40.356 +% 40.357 +/Level2PatternFill { 40.358 +/Tile8x8 {/PaintType 2 /PatternType 1 /TilingType 1 /BBox [0 0 8 8] /XStep 8 /YStep 8} 40.359 + bind def 40.360 +/KeepColor {currentrgbcolor [/Pattern /DeviceRGB] setcolorspace} bind def 40.361 +<< Tile8x8 40.362 + /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke} 40.363 +>> matrix makepattern 40.364 +/Pat1 exch def 40.365 +<< Tile8x8 40.366 + /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke 40.367 + 0 4 M 4 8 L 8 4 L 4 0 L 0 4 L stroke} 40.368 +>> matrix makepattern 40.369 +/Pat2 exch def 40.370 +<< Tile8x8 40.371 + /PaintProc {0.5 setlinewidth pop 0 0 M 0 8 L 40.372 + 8 8 L 8 0 L 0 0 L fill} 40.373 +>> matrix makepattern 40.374 +/Pat3 exch def 40.375 +<< Tile8x8 40.376 + /PaintProc {0.5 setlinewidth pop -4 8 M 8 -4 L 40.377 + 0 12 M 12 0 L stroke} 40.378 +>> matrix makepattern 40.379 +/Pat4 exch def 40.380 +<< Tile8x8 40.381 + /PaintProc {0.5 setlinewidth pop -4 0 M 8 12 L 40.382 + 0 -4 M 12 8 L stroke} 40.383 +>> matrix makepattern 40.384 +/Pat5 exch def 40.385 +<< Tile8x8 40.386 + /PaintProc {0.5 setlinewidth pop -2 8 M 4 -4 L 40.387 + 0 12 M 8 -4 L 4 12 M 10 0 L stroke} 40.388 +>> matrix makepattern 40.389 +/Pat6 exch def 40.390 +<< Tile8x8 40.391 + /PaintProc {0.5 setlinewidth pop -2 0 M 4 12 L 40.392 + 0 -4 M 8 12 L 4 -4 M 10 8 L stroke} 40.393 +>> matrix makepattern 40.394 +/Pat7 exch def 40.395 +<< Tile8x8 40.396 + /PaintProc {0.5 setlinewidth pop 8 -2 M -4 4 L 40.397 + 12 0 M -4 8 L 12 4 M 0 10 L stroke} 40.398 +>> matrix makepattern 40.399 +/Pat8 exch def 40.400 +<< Tile8x8 40.401 + /PaintProc {0.5 setlinewidth pop 0 -2 M 12 4 L 40.402 + -4 0 M 12 8 L -4 4 M 8 10 L stroke} 40.403 +>> matrix makepattern 40.404 +/Pat9 exch def 40.405 +/Pattern1 {PatternBgnd KeepColor Pat1 setpattern} bind def 40.406 +/Pattern2 {PatternBgnd KeepColor Pat2 setpattern} bind def 40.407 +/Pattern3 {PatternBgnd KeepColor Pat3 setpattern} bind def 40.408 +/Pattern4 {PatternBgnd KeepColor Landscape {Pat5} {Pat4} ifelse setpattern} bind def 40.409 +/Pattern5 {PatternBgnd KeepColor Landscape {Pat4} {Pat5} ifelse setpattern} bind def 40.410 +/Pattern6 {PatternBgnd KeepColor Landscape {Pat9} {Pat6} ifelse setpattern} bind def 40.411 +/Pattern7 {PatternBgnd KeepColor Landscape {Pat8} {Pat7} ifelse setpattern} bind def 40.412 +} def 40.413 +% 40.414 +% 40.415 +%End of PostScript Level 2 code 40.416 +% 40.417 +/PatternBgnd { 40.418 + TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse 40.419 +} def 40.420 +% 40.421 +% Substitute for Level 2 pattern fill codes with 40.422 +% grayscale if Level 2 support is not selected. 40.423 +% 40.424 +/Level1PatternFill { 40.425 +/Pattern1 {0.250 Density} bind def 40.426 +/Pattern2 {0.500 Density} bind def 40.427 +/Pattern3 {0.750 Density} bind def 40.428 +/Pattern4 {0.125 Density} bind def 40.429 +/Pattern5 {0.375 Density} bind def 40.430 +/Pattern6 {0.625 Density} bind def 40.431 +/Pattern7 {0.875 Density} bind def 40.432 +} def 40.433 +% 40.434 +% Now test for support of Level 2 code 40.435 +% 40.436 +Level1 {Level1PatternFill} {Level2PatternFill} ifelse 40.437 +% 40.438 +/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont 40.439 +dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall 40.440 +currentdict end definefont pop 40.441 +/MFshow { 40.442 + { dup 5 get 3 ge 40.443 + { 5 get 3 eq {gsave} {grestore} ifelse } 40.444 + {dup dup 0 get findfont exch 1 get scalefont setfont 40.445 + [ currentpoint ] exch dup 2 get 0 exch R dup 5 get 2 ne {dup dup 6 40.446 + get exch 4 get {Gshow} {stringwidth pop 0 R} ifelse }if dup 5 get 0 eq 40.447 + {dup 3 get {2 get neg 0 exch R pop} {pop aload pop M} ifelse} {dup 5 40.448 + get 1 eq {dup 2 get exch dup 3 get exch 6 get stringwidth pop -2 div 40.449 + dup 0 R} {dup 6 get stringwidth pop -2 div 0 R 6 get 40.450 + show 2 index {aload pop M neg 3 -1 roll neg R pop pop} {pop pop pop 40.451 + pop aload pop M} ifelse }ifelse }ifelse } 40.452 + ifelse } 40.453 + forall} def 40.454 +/Gswidth {dup type /stringtype eq {stringwidth} {pop (n) stringwidth} ifelse} def 40.455 +/MFwidth {0 exch { dup 5 get 3 ge { 5 get 3 eq { 0 } { pop } ifelse } 40.456 + {dup 3 get{dup dup 0 get findfont exch 1 get scalefont setfont 40.457 + 6 get Gswidth pop add} {pop} ifelse} ifelse} forall} def 40.458 +/MLshow { currentpoint stroke M 40.459 + 0 exch R 40.460 + Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def 40.461 +/MRshow { currentpoint stroke M 40.462 + exch dup MFwidth neg 3 -1 roll R 40.463 + Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def 40.464 +/MCshow { currentpoint stroke M 40.465 + exch dup MFwidth -2 div 3 -1 roll R 40.466 + Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def 40.467 +/XYsave { [( ) 1 2 true false 3 ()] } bind def 40.468 +/XYrestore { [( ) 1 2 true false 4 ()] } bind def 40.469 +end 40.470 +%%EndProlog 40.471 +%%Page: 1 1 40.472 +gnudict begin 40.473 +gsave 40.474 +doclip 40.475 +50 50 translate 40.476 +0.100 0.100 scale 40.477 +90 rotate 40.478 +0 -5040 translate 40.479 +0 setgray 40.480 +newpath 40.481 +(Helvetica) findfont 140 scalefont setfont 40.482 +1.000 UL 40.483 +LTb 40.484 +518 448 M 40.485 +63 0 V 40.486 +stroke 40.487 +434 448 M 40.488 +[ [(Helvetica) 140.0 0.0 true true 0 ( 1)] 40.489 +] -46.7 MRshow 40.490 +1.000 UL 40.491 +LTb 40.492 +518 792 M 40.493 +63 0 V 40.494 +stroke 40.495 +434 792 M 40.496 +[ [(Helvetica) 140.0 0.0 true true 0 ( 2)] 40.497 +] -46.7 MRshow 40.498 +1.000 UL 40.499 +LTb 40.500 +518 1136 M 40.501 +63 0 V 40.502 +stroke 40.503 +434 1136 M 40.504 +[ [(Helvetica) 140.0 0.0 true true 0 ( 3)] 40.505 +] -46.7 MRshow 40.506 +1.000 UL 40.507 +LTb 40.508 +518 1480 M 40.509 +63 0 V 40.510 +stroke 40.511 +434 1480 M 40.512 +[ [(Helvetica) 140.0 0.0 true true 0 ( 4)] 40.513 +] -46.7 MRshow 40.514 +1.000 UL 40.515 +LTb 40.516 +518 1823 M 40.517 +63 0 V 40.518 +stroke 40.519 +434 1823 M 40.520 +[ [(Helvetica) 140.0 0.0 true true 0 ( 5)] 40.521 +] -46.7 MRshow 40.522 +1.000 UL 40.523 +LTb 40.524 +518 2167 M 40.525 +63 0 V 40.526 +stroke 40.527 +434 2167 M 40.528 +[ [(Helvetica) 140.0 0.0 true true 0 ( 6)] 40.529 +] -46.7 MRshow 40.530 +1.000 UL 40.531 +LTb 40.532 +518 2511 M 40.533 +63 0 V 40.534 +stroke 40.535 +434 2511 M 40.536 +[ [(Helvetica) 140.0 0.0 true true 0 ( 7)] 40.537 +] -46.7 MRshow 40.538 +1.000 UL 40.539 +LTb 40.540 +518 2855 M 40.541 +63 0 V 40.542 +stroke 40.543 +434 2855 M 40.544 +[ [(Helvetica) 140.0 0.0 true true 0 ( 8)] 40.545 +] -46.7 MRshow 40.546 +1.000 UL 40.547 +LTb 40.548 +518 448 M 40.549 +0 63 V 40.550 +stroke 40.551 +518 308 M 40.552 +[ [(Helvetica) 140.0 0.0 true true 0 ( 0)] 40.553 +] -46.7 MCshow 40.554 +1.000 UL 40.555 +LTb 40.556 +962 448 M 40.557 +0 63 V 40.558 +stroke 40.559 +962 308 M 40.560 +[ [(Helvetica) 140.0 0.0 true true 0 ( 1000)] 40.561 +] -46.7 MCshow 40.562 +1.000 UL 40.563 +LTb 40.564 +1405 448 M 40.565 +0 63 V 40.566 +stroke 40.567 +1405 308 M 40.568 +[ [(Helvetica) 140.0 0.0 true true 0 ( 2000)] 40.569 +] -46.7 MCshow 40.570 +1.000 UL 40.571 +LTb 40.572 +1849 448 M 40.573 +0 63 V 40.574 +stroke 40.575 +1849 308 M 40.576 +[ [(Helvetica) 140.0 0.0 true true 0 ( 3000)] 40.577 +] -46.7 MCshow 40.578 +1.000 UL 40.579 +LTb 40.580 +2293 448 M 40.581 +0 63 V 40.582 +stroke 40.583 +2293 308 M 40.584 +[ [(Helvetica) 140.0 0.0 true true 0 ( 4000)] 40.585 +] -46.7 MCshow 40.586 +1.000 UL 40.587 +LTb 40.588 +2736 448 M 40.589 +0 63 V 40.590 +stroke 40.591 +2736 308 M 40.592 +[ [(Helvetica) 140.0 0.0 true true 0 ( 5000)] 40.593 +] -46.7 MCshow 40.594 +1.000 UL 40.595 +LTb 40.596 +3180 448 M 40.597 +0 63 V 40.598 +stroke 40.599 +3180 308 M 40.600 +[ [(Helvetica) 140.0 0.0 true true 0 ( 6000)] 40.601 +] -46.7 MCshow 40.602 +1.000 UL 40.603 +LTb 40.604 +3623 448 M 40.605 +0 63 V 40.606 +stroke 40.607 +3623 308 M 40.608 +[ [(Helvetica) 140.0 0.0 true true 0 ( 7000)] 40.609 +] -46.7 MCshow 40.610 +1.000 UL 40.611 +LTb 40.612 +4067 448 M 40.613 +0 63 V 40.614 +stroke 40.615 +4067 308 M 40.616 +[ [(Helvetica) 140.0 0.0 true true 0 ( 8000)] 40.617 +] -46.7 MCshow 40.618 +1.000 UL 40.619 +LTb 40.620 +1.000 UL 40.621 +LTb 40.622 +518 2855 M 40.623 +518 448 L 40.624 +3549 0 V 40.625 +0 2407 R 40.626 +-3549 0 R 40.627 +stroke 40.628 +LCb setrgbcolor 40.629 +112 1651 M 40.630 +currentpoint gsave translate -270 rotate 0 0 moveto 40.631 +[ [(Helvetica) 140.0 0.0 true true 0 (Ratio of Total Execution to Total Work)] 40.632 +] -46.7 MCshow 40.633 +grestore 40.634 +LTb 40.635 +LCb setrgbcolor 40.636 +2292 98 M 40.637 +[ [(Helvetica) 140.0 0.0 true true 0 (Cycles in one Task)] 40.638 +] -46.7 MCshow 40.639 +LTb 40.640 +1.000 UP 40.641 +1.000 UL 40.642 +LTb 40.643 +1.000 UL 40.644 +LTb 40.645 +2798 2538 N 40.646 +0 420 V 40.647 +1491 0 V 40.648 +0 -420 V 40.649 +-1491 0 V 40.650 +Z stroke 40.651 +2798 2958 M 40.652 +1491 0 V 40.653 +% Begin plot #1 40.654 +stroke 40.655 +4.000 UL 40.656 +LT1 40.657 +LCa setrgbcolor 40.658 +518 792 M 40.659 +36 0 V 40.660 +36 0 V 40.661 +36 0 V 40.662 +35 0 V 40.663 +36 0 V 40.664 +36 0 V 40.665 +36 0 V 40.666 +36 0 V 40.667 +36 0 V 40.668 +35 0 V 40.669 +36 0 V 40.670 +36 0 V 40.671 +36 0 V 40.672 +36 0 V 40.673 +36 0 V 40.674 +36 0 V 40.675 +35 0 V 40.676 +36 0 V 40.677 +36 0 V 40.678 +36 0 V 40.679 +36 0 V 40.680 +36 0 V 40.681 +36 0 V 40.682 +35 0 V 40.683 +36 0 V 40.684 +36 0 V 40.685 +36 0 V 40.686 +36 0 V 40.687 +36 0 V 40.688 +35 0 V 40.689 +36 0 V 40.690 +36 0 V 40.691 +36 0 V 40.692 +36 0 V 40.693 +36 0 V 40.694 +36 0 V 40.695 +35 0 V 40.696 +36 0 V 40.697 +36 0 V 40.698 +36 0 V 40.699 +36 0 V 40.700 +36 0 V 40.701 +35 0 V 40.702 +36 0 V 40.703 +36 0 V 40.704 +36 0 V 40.705 +36 0 V 40.706 +36 0 V 40.707 +36 0 V 40.708 +35 0 V 40.709 +36 0 V 40.710 +36 0 V 40.711 +36 0 V 40.712 +36 0 V 40.713 +36 0 V 40.714 +36 0 V 40.715 +35 0 V 40.716 +36 0 V 40.717 +36 0 V 40.718 +36 0 V 40.719 +36 0 V 40.720 +36 0 V 40.721 +35 0 V 40.722 +36 0 V 40.723 +36 0 V 40.724 +36 0 V 40.725 +36 0 V 40.726 +36 0 V 40.727 +36 0 V 40.728 +35 0 V 40.729 +36 0 V 40.730 +36 0 V 40.731 +36 0 V 40.732 +36 0 V 40.733 +36 0 V 40.734 +35 0 V 40.735 +36 0 V 40.736 +36 0 V 40.737 +36 0 V 40.738 +36 0 V 40.739 +36 0 V 40.740 +36 0 V 40.741 +35 0 V 40.742 +36 0 V 40.743 +36 0 V 40.744 +36 0 V 40.745 +36 0 V 40.746 +36 0 V 40.747 +36 0 V 40.748 +35 0 V 40.749 +36 0 V 40.750 +36 0 V 40.751 +36 0 V 40.752 +36 0 V 40.753 +36 0 V 40.754 +35 0 V 40.755 +36 0 V 40.756 +36 0 V 40.757 +36 0 V 40.758 +% End plot #1 40.759 +% Begin plot #2 40.760 +stroke 40.761 +LT1 40.762 +LCb setrgbcolor 40.763 +3722 2888 M 40.764 +[ [(Helvetica) 140.0 0.0 true true 0 (8 Threads)] 40.765 +] -46.7 MRshow 40.766 +LT1 40.767 +3806 2888 M 40.768 +399 0 V 40.769 +746 2855 M 40.770 +848 2069 L 40.771 +255 -711 V 40.772 +1600 935 L 40.773 +2594 699 L 40.774 +4067 607 L 40.775 +% End plot #2 40.776 +% Begin plot #3 40.777 +stroke 40.778 +LT2 40.779 +LCb setrgbcolor 40.780 +3722 2748 M 40.781 +[ [(Helvetica) 140.0 0.0 true true 0 (32 Threads)] 40.782 +] -46.7 MRshow 40.783 +LT2 40.784 +3806 2748 M 40.785 +399 0 V 40.786 +1089 2855 M 40.787 +15 -106 V 40.788 +1605 1686 L 40.789 +991 -594 V 40.790 +4067 858 L 40.791 +% End plot #3 40.792 +% Begin plot #4 40.793 +stroke 40.794 +LT3 40.795 +LCb setrgbcolor 40.796 +3722 2608 M 40.797 +[ [(Helvetica) 140.0 0.0 true true 0 (128 Threads)] 40.798 +] -46.7 MRshow 40.799 +LT3 40.800 +3806 2608 M 40.801 +399 0 V 40.802 +2508 2855 M 40.803 +97 -193 V 40.804 +4067 1874 L 40.805 +% End plot #4 40.806 +stroke 40.807 +1.000 UL 40.808 +LTb 40.809 +518 2855 M 40.810 +518 448 L 40.811 +3549 0 V 40.812 +0 2407 R 40.813 +-3549 0 R 40.814 +1.000 UP 40.815 +stroke 40.816 +grestore 40.817 +end 40.818 +showpage 40.819 +%%Trailer 40.820 +%%DocumentFonts: Helvetica 40.821 +%%Pages: 1
41.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 41.2 +++ b/0__Papers/PRT/PRT__formal_def/figures/plots_exec_vs_task_size/not_used/cray1_vthread_8_32_128_512thds__o30000__perfCtrs.result.eps Sat Aug 03 19:24:22 2013 -0700 41.3 @@ -0,0 +1,851 @@ 41.4 +%!PS-Adobe-2.0 41.5 +%%Title: cray1_vthread_8_32_128_512thds__o30000__perfCtrs.result.eps 41.6 +%%Creator: gnuplot 4.4 patchlevel 2 41.7 +%%CreationDate: Thu Jan 26 18:09:54 2012 41.8 +%%DocumentFonts: (atend) 41.9 +%%BoundingBox: 251 50 554 482 41.10 +%%Orientation: Landscape 41.11 +%%Pages: (atend) 41.12 +%%EndComments 41.13 +%%BeginProlog 41.14 +/gnudict 256 dict def 41.15 +gnudict begin 41.16 +% 41.17 +% The following true/false flags may be edited by hand if desired. 41.18 +% The unit line width and grayscale image gamma correction may also be changed. 41.19 +% 41.20 +/Color true def 41.21 +/Blacktext false def 41.22 +/Solid false def 41.23 +/Dashlength 1 def 41.24 +/Landscape true def 41.25 +/Level1 false def 41.26 +/Rounded false def 41.27 +/ClipToBoundingBox false def 41.28 +/TransparentPatterns false def 41.29 +/gnulinewidth 5.000 def 41.30 +/userlinewidth gnulinewidth def 41.31 +/Gamma 1.0 def 41.32 +% 41.33 +/vshift -46 def 41.34 +/dl1 { 41.35 + 10.0 Dashlength mul mul 41.36 + Rounded { currentlinewidth 0.75 mul sub dup 0 le { pop 0.01 } if } if 41.37 +} def 41.38 +/dl2 { 41.39 + 10.0 Dashlength mul mul 41.40 + Rounded { currentlinewidth 0.75 mul add } if 41.41 +} def 41.42 +/hpt_ 31.5 def 41.43 +/vpt_ 31.5 def 41.44 +/hpt hpt_ def 41.45 +/vpt vpt_ def 41.46 +Level1 {} { 41.47 +/SDict 10 dict def 41.48 +systemdict /pdfmark known not { 41.49 + userdict /pdfmark systemdict /cleartomark get put 41.50 +} if 41.51 +SDict begin [ 41.52 + /Title (cray1_vthread_8_32_128_512thds__o30000__perfCtrs.result.eps) 41.53 + /Subject (gnuplot plot) 41.54 + /Creator (gnuplot 4.4 patchlevel 2) 41.55 + /Author (msach) 41.56 +% /Producer (gnuplot) 41.57 +% /Keywords () 41.58 + /CreationDate (Thu Jan 26 18:09:54 2012) 41.59 + /DOCINFO pdfmark 41.60 +end 41.61 +} ifelse 41.62 +/doclip { 41.63 + ClipToBoundingBox { 41.64 + newpath 251 50 moveto 554 50 lineto 554 482 lineto 251 482 lineto closepath 41.65 + clip 41.66 + } if 41.67 +} def 41.68 +% 41.69 +% Gnuplot Prolog Version 4.4 (August 2010) 41.70 +% 41.71 +%/SuppressPDFMark true def 41.72 +% 41.73 +/M {moveto} bind def 41.74 +/L {lineto} bind def 41.75 +/R {rmoveto} bind def 41.76 +/V {rlineto} bind def 41.77 +/N {newpath moveto} bind def 41.78 +/Z {closepath} bind def 41.79 +/C {setrgbcolor} bind def 41.80 +/f {rlineto fill} bind def 41.81 +/g {setgray} bind def 41.82 +/Gshow {show} def % May be redefined later in the file to support UTF-8 41.83 +/vpt2 vpt 2 mul def 41.84 +/hpt2 hpt 2 mul def 41.85 +/Lshow {currentpoint stroke M 0 vshift R 41.86 + Blacktext {gsave 0 setgray show grestore} {show} ifelse} def 41.87 +/Rshow {currentpoint stroke M dup stringwidth pop neg vshift R 41.88 + Blacktext {gsave 0 setgray show grestore} {show} ifelse} def 41.89 +/Cshow {currentpoint stroke M dup stringwidth pop -2 div vshift R 41.90 + Blacktext {gsave 0 setgray show grestore} {show} ifelse} def 41.91 +/UP {dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def 41.92 + /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def} def 41.93 +/DL {Color {setrgbcolor Solid {pop []} if 0 setdash} 41.94 + {pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse} def 41.95 +/BL {stroke userlinewidth 2 mul setlinewidth 41.96 + Rounded {1 setlinejoin 1 setlinecap} if} def 41.97 +/AL {stroke userlinewidth 2 div setlinewidth 41.98 + Rounded {1 setlinejoin 1 setlinecap} if} def 41.99 +/UL {dup gnulinewidth mul /userlinewidth exch def 41.100 + dup 1 lt {pop 1} if 10 mul /udl exch def} def 41.101 +/PL {stroke userlinewidth setlinewidth 41.102 + Rounded {1 setlinejoin 1 setlinecap} if} def 41.103 +3.8 setmiterlimit 41.104 +% Default Line colors 41.105 +/LCw {1 1 1} def 41.106 +/LCb {0 0 0} def 41.107 +/LCa {0 0 0} def 41.108 +/LC0 {1 0 0} def 41.109 +/LC1 {0 1 0} def 41.110 +/LC2 {0 0 1} def 41.111 +/LC3 {1 0 1} def 41.112 +/LC4 {0 1 1} def 41.113 +/LC5 {1 1 0} def 41.114 +/LC6 {0 0 0} def 41.115 +/LC7 {1 0.3 0} def 41.116 +/LC8 {0.5 0.5 0.5} def 41.117 +% Default Line Types 41.118 +/LTw {PL [] 1 setgray} def 41.119 +/LTb {BL [] LCb DL} def 41.120 +/LTa {AL [1 udl mul 2 udl mul] 0 setdash LCa setrgbcolor} def 41.121 +/LT0 {PL [] LC0 DL} def 41.122 +/LT1 {PL [4 dl1 2 dl2] LC1 DL} def 41.123 +/LT2 {PL [2 dl1 3 dl2] LC2 DL} def 41.124 +/LT3 {PL [1 dl1 1.5 dl2] LC3 DL} def 41.125 +/LT4 {PL [6 dl1 2 dl2 1 dl1 2 dl2] LC4 DL} def 41.126 +/LT5 {PL [3 dl1 3 dl2 1 dl1 3 dl2] LC5 DL} def 41.127 +/LT6 {PL [2 dl1 2 dl2 2 dl1 6 dl2] LC6 DL} def 41.128 +/LT7 {PL [1 dl1 2 dl2 6 dl1 2 dl2 1 dl1 2 dl2] LC7 DL} def 41.129 +/LT8 {PL [2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 4 dl2] LC8 DL} def 41.130 +/Pnt {stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore} def 41.131 +/Dia {stroke [] 0 setdash 2 copy vpt add M 41.132 + hpt neg vpt neg V hpt vpt neg V 41.133 + hpt vpt V hpt neg vpt V closepath stroke 41.134 + Pnt} def 41.135 +/Pls {stroke [] 0 setdash vpt sub M 0 vpt2 V 41.136 + currentpoint stroke M 41.137 + hpt neg vpt neg R hpt2 0 V stroke 41.138 + } def 41.139 +/Box {stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M 41.140 + 0 vpt2 neg V hpt2 0 V 0 vpt2 V 41.141 + hpt2 neg 0 V closepath stroke 41.142 + Pnt} def 41.143 +/Crs {stroke [] 0 setdash exch hpt sub exch vpt add M 41.144 + hpt2 vpt2 neg V currentpoint stroke M 41.145 + hpt2 neg 0 R hpt2 vpt2 V stroke} def 41.146 +/TriU {stroke [] 0 setdash 2 copy vpt 1.12 mul add M 41.147 + hpt neg vpt -1.62 mul V 41.148 + hpt 2 mul 0 V 41.149 + hpt neg vpt 1.62 mul V closepath stroke 41.150 + Pnt} def 41.151 +/Star {2 copy Pls Crs} def 41.152 +/BoxF {stroke [] 0 setdash exch hpt sub exch vpt add M 41.153 + 0 vpt2 neg V hpt2 0 V 0 vpt2 V 41.154 + hpt2 neg 0 V closepath fill} def 41.155 +/TriUF {stroke [] 0 setdash vpt 1.12 mul add M 41.156 + hpt neg vpt -1.62 mul V 41.157 + hpt 2 mul 0 V 41.158 + hpt neg vpt 1.62 mul V closepath fill} def 41.159 +/TriD {stroke [] 0 setdash 2 copy vpt 1.12 mul sub M 41.160 + hpt neg vpt 1.62 mul V 41.161 + hpt 2 mul 0 V 41.162 + hpt neg vpt -1.62 mul V closepath stroke 41.163 + Pnt} def 41.164 +/TriDF {stroke [] 0 setdash vpt 1.12 mul sub M 41.165 + hpt neg vpt 1.62 mul V 41.166 + hpt 2 mul 0 V 41.167 + hpt neg vpt -1.62 mul V closepath fill} def 41.168 +/DiaF {stroke [] 0 setdash vpt add M 41.169 + hpt neg vpt neg V hpt vpt neg V 41.170 + hpt vpt V hpt neg vpt V closepath fill} def 41.171 +/Pent {stroke [] 0 setdash 2 copy gsave 41.172 + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat 41.173 + closepath stroke grestore Pnt} def 41.174 +/PentF {stroke [] 0 setdash gsave 41.175 + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat 41.176 + closepath fill grestore} def 41.177 +/Circle {stroke [] 0 setdash 2 copy 41.178 + hpt 0 360 arc stroke Pnt} def 41.179 +/CircleF {stroke [] 0 setdash hpt 0 360 arc fill} def 41.180 +/C0 {BL [] 0 setdash 2 copy moveto vpt 90 450 arc} bind def 41.181 +/C1 {BL [] 0 setdash 2 copy moveto 41.182 + 2 copy vpt 0 90 arc closepath fill 41.183 + vpt 0 360 arc closepath} bind def 41.184 +/C2 {BL [] 0 setdash 2 copy moveto 41.185 + 2 copy vpt 90 180 arc closepath fill 41.186 + vpt 0 360 arc closepath} bind def 41.187 +/C3 {BL [] 0 setdash 2 copy moveto 41.188 + 2 copy vpt 0 180 arc closepath fill 41.189 + vpt 0 360 arc closepath} bind def 41.190 +/C4 {BL [] 0 setdash 2 copy moveto 41.191 + 2 copy vpt 180 270 arc closepath fill 41.192 + vpt 0 360 arc closepath} bind def 41.193 +/C5 {BL [] 0 setdash 2 copy moveto 41.194 + 2 copy vpt 0 90 arc 41.195 + 2 copy moveto 41.196 + 2 copy vpt 180 270 arc closepath fill 41.197 + vpt 0 360 arc} bind def 41.198 +/C6 {BL [] 0 setdash 2 copy moveto 41.199 + 2 copy vpt 90 270 arc closepath fill 41.200 + vpt 0 360 arc closepath} bind def 41.201 +/C7 {BL [] 0 setdash 2 copy moveto 41.202 + 2 copy vpt 0 270 arc closepath fill 41.203 + vpt 0 360 arc closepath} bind def 41.204 +/C8 {BL [] 0 setdash 2 copy moveto 41.205 + 2 copy vpt 270 360 arc closepath fill 41.206 + vpt 0 360 arc closepath} bind def 41.207 +/C9 {BL [] 0 setdash 2 copy moveto 41.208 + 2 copy vpt 270 450 arc closepath fill 41.209 + vpt 0 360 arc closepath} bind def 41.210 +/C10 {BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill 41.211 + 2 copy moveto 41.212 + 2 copy vpt 90 180 arc closepath fill 41.213 + vpt 0 360 arc closepath} bind def 41.214 +/C11 {BL [] 0 setdash 2 copy moveto 41.215 + 2 copy vpt 0 180 arc closepath fill 41.216 + 2 copy moveto 41.217 + 2 copy vpt 270 360 arc closepath fill 41.218 + vpt 0 360 arc closepath} bind def 41.219 +/C12 {BL [] 0 setdash 2 copy moveto 41.220 + 2 copy vpt 180 360 arc closepath fill 41.221 + vpt 0 360 arc closepath} bind def 41.222 +/C13 {BL [] 0 setdash 2 copy moveto 41.223 + 2 copy vpt 0 90 arc closepath fill 41.224 + 2 copy moveto 41.225 + 2 copy vpt 180 360 arc closepath fill 41.226 + vpt 0 360 arc closepath} bind def 41.227 +/C14 {BL [] 0 setdash 2 copy moveto 41.228 + 2 copy vpt 90 360 arc closepath fill 41.229 + vpt 0 360 arc} bind def 41.230 +/C15 {BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill 41.231 + vpt 0 360 arc closepath} bind def 41.232 +/Rec {newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto 41.233 + neg 0 rlineto closepath} bind def 41.234 +/Square {dup Rec} bind def 41.235 +/Bsquare {vpt sub exch vpt sub exch vpt2 Square} bind def 41.236 +/S0 {BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare} bind def 41.237 +/S1 {BL [] 0 setdash 2 copy vpt Square fill Bsquare} bind def 41.238 +/S2 {BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def 41.239 +/S3 {BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare} bind def 41.240 +/S4 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def 41.241 +/S5 {BL [] 0 setdash 2 copy 2 copy vpt Square fill 41.242 + exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def 41.243 +/S6 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare} bind def 41.244 +/S7 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill 41.245 + 2 copy vpt Square fill Bsquare} bind def 41.246 +/S8 {BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare} bind def 41.247 +/S9 {BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare} bind def 41.248 +/S10 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill 41.249 + Bsquare} bind def 41.250 +/S11 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill 41.251 + Bsquare} bind def 41.252 +/S12 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare} bind def 41.253 +/S13 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 41.254 + 2 copy vpt Square fill Bsquare} bind def 41.255 +/S14 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 41.256 + 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def 41.257 +/S15 {BL [] 0 setdash 2 copy Bsquare fill Bsquare} bind def 41.258 +/D0 {gsave translate 45 rotate 0 0 S0 stroke grestore} bind def 41.259 +/D1 {gsave translate 45 rotate 0 0 S1 stroke grestore} bind def 41.260 +/D2 {gsave translate 45 rotate 0 0 S2 stroke grestore} bind def 41.261 +/D3 {gsave translate 45 rotate 0 0 S3 stroke grestore} bind def 41.262 +/D4 {gsave translate 45 rotate 0 0 S4 stroke grestore} bind def 41.263 +/D5 {gsave translate 45 rotate 0 0 S5 stroke grestore} bind def 41.264 +/D6 {gsave translate 45 rotate 0 0 S6 stroke grestore} bind def 41.265 +/D7 {gsave translate 45 rotate 0 0 S7 stroke grestore} bind def 41.266 +/D8 {gsave translate 45 rotate 0 0 S8 stroke grestore} bind def 41.267 +/D9 {gsave translate 45 rotate 0 0 S9 stroke grestore} bind def 41.268 +/D10 {gsave translate 45 rotate 0 0 S10 stroke grestore} bind def 41.269 +/D11 {gsave translate 45 rotate 0 0 S11 stroke grestore} bind def 41.270 +/D12 {gsave translate 45 rotate 0 0 S12 stroke grestore} bind def 41.271 +/D13 {gsave translate 45 rotate 0 0 S13 stroke grestore} bind def 41.272 +/D14 {gsave translate 45 rotate 0 0 S14 stroke grestore} bind def 41.273 +/D15 {gsave translate 45 rotate 0 0 S15 stroke grestore} bind def 41.274 +/DiaE {stroke [] 0 setdash vpt add M 41.275 + hpt neg vpt neg V hpt vpt neg V 41.276 + hpt vpt V hpt neg vpt V closepath stroke} def 41.277 +/BoxE {stroke [] 0 setdash exch hpt sub exch vpt add M 41.278 + 0 vpt2 neg V hpt2 0 V 0 vpt2 V 41.279 + hpt2 neg 0 V closepath stroke} def 41.280 +/TriUE {stroke [] 0 setdash vpt 1.12 mul add M 41.281 + hpt neg vpt -1.62 mul V 41.282 + hpt 2 mul 0 V 41.283 + hpt neg vpt 1.62 mul V closepath stroke} def 41.284 +/TriDE {stroke [] 0 setdash vpt 1.12 mul sub M 41.285 + hpt neg vpt 1.62 mul V 41.286 + hpt 2 mul 0 V 41.287 + hpt neg vpt -1.62 mul V closepath stroke} def 41.288 +/PentE {stroke [] 0 setdash gsave 41.289 + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat 41.290 + closepath stroke grestore} def 41.291 +/CircE {stroke [] 0 setdash 41.292 + hpt 0 360 arc stroke} def 41.293 +/Opaque {gsave closepath 1 setgray fill grestore 0 setgray closepath} def 41.294 +/DiaW {stroke [] 0 setdash vpt add M 41.295 + hpt neg vpt neg V hpt vpt neg V 41.296 + hpt vpt V hpt neg vpt V Opaque stroke} def 41.297 +/BoxW {stroke [] 0 setdash exch hpt sub exch vpt add M 41.298 + 0 vpt2 neg V hpt2 0 V 0 vpt2 V 41.299 + hpt2 neg 0 V Opaque stroke} def 41.300 +/TriUW {stroke [] 0 setdash vpt 1.12 mul add M 41.301 + hpt neg vpt -1.62 mul V 41.302 + hpt 2 mul 0 V 41.303 + hpt neg vpt 1.62 mul V Opaque stroke} def 41.304 +/TriDW {stroke [] 0 setdash vpt 1.12 mul sub M 41.305 + hpt neg vpt 1.62 mul V 41.306 + hpt 2 mul 0 V 41.307 + hpt neg vpt -1.62 mul V Opaque stroke} def 41.308 +/PentW {stroke [] 0 setdash gsave 41.309 + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat 41.310 + Opaque stroke grestore} def 41.311 +/CircW {stroke [] 0 setdash 41.312 + hpt 0 360 arc Opaque stroke} def 41.313 +/BoxFill {gsave Rec 1 setgray fill grestore} def 41.314 +/Density { 41.315 + /Fillden exch def 41.316 + currentrgbcolor 41.317 + /ColB exch def /ColG exch def /ColR exch def 41.318 + /ColR ColR Fillden mul Fillden sub 1 add def 41.319 + /ColG ColG Fillden mul Fillden sub 1 add def 41.320 + /ColB ColB Fillden mul Fillden sub 1 add def 41.321 + ColR ColG ColB setrgbcolor} def 41.322 +/BoxColFill {gsave Rec PolyFill} def 41.323 +/PolyFill {gsave Density fill grestore grestore} def 41.324 +/h {rlineto rlineto rlineto gsave closepath fill grestore} bind def 41.325 +% 41.326 +% PostScript Level 1 Pattern Fill routine for rectangles 41.327 +% Usage: x y w h s a XX PatternFill 41.328 +% x,y = lower left corner of box to be filled 41.329 +% w,h = width and height of box 41.330 +% a = angle in degrees between lines and x-axis 41.331 +% XX = 0/1 for no/yes cross-hatch 41.332 +% 41.333 +/PatternFill {gsave /PFa [ 9 2 roll ] def 41.334 + PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate 41.335 + PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec 41.336 + gsave 1 setgray fill grestore clip 41.337 + currentlinewidth 0.5 mul setlinewidth 41.338 + /PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def 41.339 + 0 0 M PFa 5 get rotate PFs -2 div dup translate 41.340 + 0 1 PFs PFa 4 get div 1 add floor cvi 41.341 + {PFa 4 get mul 0 M 0 PFs V} for 41.342 + 0 PFa 6 get ne { 41.343 + 0 1 PFs PFa 4 get div 1 add floor cvi 41.344 + {PFa 4 get mul 0 2 1 roll M PFs 0 V} for 41.345 + } if 41.346 + stroke grestore} def 41.347 +% 41.348 +/languagelevel where 41.349 + {pop languagelevel} {1} ifelse 41.350 + 2 lt 41.351 + {/InterpretLevel1 true def} 41.352 + {/InterpretLevel1 Level1 def} 41.353 + ifelse 41.354 +% 41.355 +% PostScript level 2 pattern fill definitions 41.356 +% 41.357 +/Level2PatternFill { 41.358 +/Tile8x8 {/PaintType 2 /PatternType 1 /TilingType 1 /BBox [0 0 8 8] /XStep 8 /YStep 8} 41.359 + bind def 41.360 +/KeepColor {currentrgbcolor [/Pattern /DeviceRGB] setcolorspace} bind def 41.361 +<< Tile8x8 41.362 + /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke} 41.363 +>> matrix makepattern 41.364 +/Pat1 exch def 41.365 +<< Tile8x8 41.366 + /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke 41.367 + 0 4 M 4 8 L 8 4 L 4 0 L 0 4 L stroke} 41.368 +>> matrix makepattern 41.369 +/Pat2 exch def 41.370 +<< Tile8x8 41.371 + /PaintProc {0.5 setlinewidth pop 0 0 M 0 8 L 41.372 + 8 8 L 8 0 L 0 0 L fill} 41.373 +>> matrix makepattern 41.374 +/Pat3 exch def 41.375 +<< Tile8x8 41.376 + /PaintProc {0.5 setlinewidth pop -4 8 M 8 -4 L 41.377 + 0 12 M 12 0 L stroke} 41.378 +>> matrix makepattern 41.379 +/Pat4 exch def 41.380 +<< Tile8x8 41.381 + /PaintProc {0.5 setlinewidth pop -4 0 M 8 12 L 41.382 + 0 -4 M 12 8 L stroke} 41.383 +>> matrix makepattern 41.384 +/Pat5 exch def 41.385 +<< Tile8x8 41.386 + /PaintProc {0.5 setlinewidth pop -2 8 M 4 -4 L 41.387 + 0 12 M 8 -4 L 4 12 M 10 0 L stroke} 41.388 +>> matrix makepattern 41.389 +/Pat6 exch def 41.390 +<< Tile8x8 41.391 + /PaintProc {0.5 setlinewidth pop -2 0 M 4 12 L 41.392 + 0 -4 M 8 12 L 4 -4 M 10 8 L stroke} 41.393 +>> matrix makepattern 41.394 +/Pat7 exch def 41.395 +<< Tile8x8 41.396 + /PaintProc {0.5 setlinewidth pop 8 -2 M -4 4 L 41.397 + 12 0 M -4 8 L 12 4 M 0 10 L stroke} 41.398 +>> matrix makepattern 41.399 +/Pat8 exch def 41.400 +<< Tile8x8 41.401 + /PaintProc {0.5 setlinewidth pop 0 -2 M 12 4 L 41.402 + -4 0 M 12 8 L -4 4 M 8 10 L stroke} 41.403 +>> matrix makepattern 41.404 +/Pat9 exch def 41.405 +/Pattern1 {PatternBgnd KeepColor Pat1 setpattern} bind def 41.406 +/Pattern2 {PatternBgnd KeepColor Pat2 setpattern} bind def 41.407 +/Pattern3 {PatternBgnd KeepColor Pat3 setpattern} bind def 41.408 +/Pattern4 {PatternBgnd KeepColor Landscape {Pat5} {Pat4} ifelse setpattern} bind def 41.409 +/Pattern5 {PatternBgnd KeepColor Landscape {Pat4} {Pat5} ifelse setpattern} bind def 41.410 +/Pattern6 {PatternBgnd KeepColor Landscape {Pat9} {Pat6} ifelse setpattern} bind def 41.411 +/Pattern7 {PatternBgnd KeepColor Landscape {Pat8} {Pat7} ifelse setpattern} bind def 41.412 +} def 41.413 +% 41.414 +% 41.415 +%End of PostScript Level 2 code 41.416 +% 41.417 +/PatternBgnd { 41.418 + TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse 41.419 +} def 41.420 +% 41.421 +% Substitute for Level 2 pattern fill codes with 41.422 +% grayscale if Level 2 support is not selected. 41.423 +% 41.424 +/Level1PatternFill { 41.425 +/Pattern1 {0.250 Density} bind def 41.426 +/Pattern2 {0.500 Density} bind def 41.427 +/Pattern3 {0.750 Density} bind def 41.428 +/Pattern4 {0.125 Density} bind def 41.429 +/Pattern5 {0.375 Density} bind def 41.430 +/Pattern6 {0.625 Density} bind def 41.431 +/Pattern7 {0.875 Density} bind def 41.432 +} def 41.433 +% 41.434 +% Now test for support of Level 2 code 41.435 +% 41.436 +Level1 {Level1PatternFill} {Level2PatternFill} ifelse 41.437 +% 41.438 +/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont 41.439 +dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall 41.440 +currentdict end definefont pop 41.441 +/MFshow { 41.442 + { dup 5 get 3 ge 41.443 + { 5 get 3 eq {gsave} {grestore} ifelse } 41.444 + {dup dup 0 get findfont exch 1 get scalefont setfont 41.445 + [ currentpoint ] exch dup 2 get 0 exch R dup 5 get 2 ne {dup dup 6 41.446 + get exch 4 get {Gshow} {stringwidth pop 0 R} ifelse }if dup 5 get 0 eq 41.447 + {dup 3 get {2 get neg 0 exch R pop} {pop aload pop M} ifelse} {dup 5 41.448 + get 1 eq {dup 2 get exch dup 3 get exch 6 get stringwidth pop -2 div 41.449 + dup 0 R} {dup 6 get stringwidth pop -2 div 0 R 6 get 41.450 + show 2 index {aload pop M neg 3 -1 roll neg R pop pop} {pop pop pop 41.451 + pop aload pop M} ifelse }ifelse }ifelse } 41.452 + ifelse } 41.453 + forall} def 41.454 +/Gswidth {dup type /stringtype eq {stringwidth} {pop (n) stringwidth} ifelse} def 41.455 +/MFwidth {0 exch { dup 5 get 3 ge { 5 get 3 eq { 0 } { pop } ifelse } 41.456 + {dup 3 get{dup dup 0 get findfont exch 1 get scalefont setfont 41.457 + 6 get Gswidth pop add} {pop} ifelse} ifelse} forall} def 41.458 +/MLshow { currentpoint stroke M 41.459 + 0 exch R 41.460 + Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def 41.461 +/MRshow { currentpoint stroke M 41.462 + exch dup MFwidth neg 3 -1 roll R 41.463 + Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def 41.464 +/MCshow { currentpoint stroke M 41.465 + exch dup MFwidth -2 div 3 -1 roll R 41.466 + Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def 41.467 +/XYsave { [( ) 1 2 true false 3 ()] } bind def 41.468 +/XYrestore { [( ) 1 2 true false 4 ()] } bind def 41.469 +end 41.470 +%%EndProlog 41.471 +%%Page: 1 1 41.472 +gnudict begin 41.473 +gsave 41.474 +doclip 41.475 +50 50 translate 41.476 +0.100 0.100 scale 41.477 +90 rotate 41.478 +0 -5040 translate 41.479 +0 setgray 41.480 +newpath 41.481 +(Helvetica) findfont 140 scalefont setfont 41.482 +1.000 UL 41.483 +LTb 41.484 +518 448 M 41.485 +63 0 V 41.486 +stroke 41.487 +434 448 M 41.488 +[ [(Helvetica) 140.0 0.0 true true 0 ( 1)] 41.489 +] -46.7 MRshow 41.490 +1.000 UL 41.491 +LTb 41.492 +518 792 M 41.493 +63 0 V 41.494 +stroke 41.495 +434 792 M 41.496 +[ [(Helvetica) 140.0 0.0 true true 0 ( 2)] 41.497 +] -46.7 MRshow 41.498 +1.000 UL 41.499 +LTb 41.500 +518 1136 M 41.501 +63 0 V 41.502 +stroke 41.503 +434 1136 M 41.504 +[ [(Helvetica) 140.0 0.0 true true 0 ( 3)] 41.505 +] -46.7 MRshow 41.506 +1.000 UL 41.507 +LTb 41.508 +518 1480 M 41.509 +63 0 V 41.510 +stroke 41.511 +434 1480 M 41.512 +[ [(Helvetica) 140.0 0.0 true true 0 ( 4)] 41.513 +] -46.7 MRshow 41.514 +1.000 UL 41.515 +LTb 41.516 +518 1823 M 41.517 +63 0 V 41.518 +stroke 41.519 +434 1823 M 41.520 +[ [(Helvetica) 140.0 0.0 true true 0 ( 5)] 41.521 +] -46.7 MRshow 41.522 +1.000 UL 41.523 +LTb 41.524 +518 2167 M 41.525 +63 0 V 41.526 +stroke 41.527 +434 2167 M 41.528 +[ [(Helvetica) 140.0 0.0 true true 0 ( 6)] 41.529 +] -46.7 MRshow 41.530 +1.000 UL 41.531 +LTb 41.532 +518 2511 M 41.533 +63 0 V 41.534 +stroke 41.535 +434 2511 M 41.536 +[ [(Helvetica) 140.0 0.0 true true 0 ( 7)] 41.537 +] -46.7 MRshow 41.538 +1.000 UL 41.539 +LTb 41.540 +518 2855 M 41.541 +63 0 V 41.542 +stroke 41.543 +434 2855 M 41.544 +[ [(Helvetica) 140.0 0.0 true true 0 ( 8)] 41.545 +] -46.7 MRshow 41.546 +1.000 UL 41.547 +LTb 41.548 +518 448 M 41.549 +0 63 V 41.550 +stroke 41.551 +518 308 M 41.552 +[ [(Helvetica) 140.0 0.0 true true 0 ( 0)] 41.553 +] -46.7 MCshow 41.554 +1.000 UL 41.555 +LTb 41.556 +962 448 M 41.557 +0 63 V 41.558 +stroke 41.559 +962 308 M 41.560 +[ [(Helvetica) 140.0 0.0 true true 0 ( 1000)] 41.561 +] -46.7 MCshow 41.562 +1.000 UL 41.563 +LTb 41.564 +1405 448 M 41.565 +0 63 V 41.566 +stroke 41.567 +1405 308 M 41.568 +[ [(Helvetica) 140.0 0.0 true true 0 ( 2000)] 41.569 +] -46.7 MCshow 41.570 +1.000 UL 41.571 +LTb 41.572 +1849 448 M 41.573 +0 63 V 41.574 +stroke 41.575 +1849 308 M 41.576 +[ [(Helvetica) 140.0 0.0 true true 0 ( 3000)] 41.577 +] -46.7 MCshow 41.578 +1.000 UL 41.579 +LTb 41.580 +2293 448 M 41.581 +0 63 V 41.582 +stroke 41.583 +2293 308 M 41.584 +[ [(Helvetica) 140.0 0.0 true true 0 ( 4000)] 41.585 +] -46.7 MCshow 41.586 +1.000 UL 41.587 +LTb 41.588 +2736 448 M 41.589 +0 63 V 41.590 +stroke 41.591 +2736 308 M 41.592 +[ [(Helvetica) 140.0 0.0 true true 0 ( 5000)] 41.593 +] -46.7 MCshow 41.594 +1.000 UL 41.595 +LTb 41.596 +3180 448 M 41.597 +0 63 V 41.598 +stroke 41.599 +3180 308 M 41.600 +[ [(Helvetica) 140.0 0.0 true true 0 ( 6000)] 41.601 +] -46.7 MCshow 41.602 +1.000 UL 41.603 +LTb 41.604 +3623 448 M 41.605 +0 63 V 41.606 +stroke 41.607 +3623 308 M 41.608 +[ [(Helvetica) 140.0 0.0 true true 0 ( 7000)] 41.609 +] -46.7 MCshow 41.610 +1.000 UL 41.611 +LTb 41.612 +4067 448 M 41.613 +0 63 V 41.614 +stroke 41.615 +4067 308 M 41.616 +[ [(Helvetica) 140.0 0.0 true true 0 ( 8000)] 41.617 +] -46.7 MCshow 41.618 +1.000 UL 41.619 +LTb 41.620 +1.000 UL 41.621 +LTb 41.622 +518 2855 M 41.623 +518 448 L 41.624 +3549 0 V 41.625 +0 2407 R 41.626 +-3549 0 R 41.627 +stroke 41.628 +LCb setrgbcolor 41.629 +112 1651 M 41.630 +currentpoint gsave translate -270 rotate 0 0 moveto 41.631 +[ [(Helvetica) 140.0 0.0 true true 0 (Ratio of Total Execution to Total Work)] 41.632 +] -46.7 MCshow 41.633 +grestore 41.634 +LTb 41.635 +LCb setrgbcolor 41.636 +2292 98 M 41.637 +[ [(Helvetica) 140.0 0.0 true true 0 (Cycles in one Task)] 41.638 +] -46.7 MCshow 41.639 +LTb 41.640 +1.000 UP 41.641 +1.000 UL 41.642 +LTb 41.643 +1.000 UL 41.644 +LTb 41.645 +2492 2232 N 41.646 +0 560 V 41.647 +1491 0 V 41.648 +0 -560 V 41.649 +-1491 0 V 41.650 +Z stroke 41.651 +2492 2792 M 41.652 +1491 0 V 41.653 +% Begin plot #1 41.654 +stroke 41.655 +4.000 UL 41.656 +LT1 41.657 +LCa setrgbcolor 41.658 +518 792 M 41.659 +36 0 V 41.660 +36 0 V 41.661 +36 0 V 41.662 +35 0 V 41.663 +36 0 V 41.664 +36 0 V 41.665 +36 0 V 41.666 +36 0 V 41.667 +36 0 V 41.668 +35 0 V 41.669 +36 0 V 41.670 +36 0 V 41.671 +36 0 V 41.672 +36 0 V 41.673 +36 0 V 41.674 +36 0 V 41.675 +35 0 V 41.676 +36 0 V 41.677 +36 0 V 41.678 +36 0 V 41.679 +36 0 V 41.680 +36 0 V 41.681 +36 0 V 41.682 +35 0 V 41.683 +36 0 V 41.684 +36 0 V 41.685 +36 0 V 41.686 +36 0 V 41.687 +36 0 V 41.688 +35 0 V 41.689 +36 0 V 41.690 +36 0 V 41.691 +36 0 V 41.692 +36 0 V 41.693 +36 0 V 41.694 +36 0 V 41.695 +35 0 V 41.696 +36 0 V 41.697 +36 0 V 41.698 +36 0 V 41.699 +36 0 V 41.700 +36 0 V 41.701 +35 0 V 41.702 +36 0 V 41.703 +36 0 V 41.704 +36 0 V 41.705 +36 0 V 41.706 +36 0 V 41.707 +36 0 V 41.708 +35 0 V 41.709 +36 0 V 41.710 +36 0 V 41.711 +36 0 V 41.712 +36 0 V 41.713 +36 0 V 41.714 +36 0 V 41.715 +35 0 V 41.716 +36 0 V 41.717 +36 0 V 41.718 +36 0 V 41.719 +36 0 V 41.720 +36 0 V 41.721 +35 0 V 41.722 +36 0 V 41.723 +36 0 V 41.724 +36 0 V 41.725 +36 0 V 41.726 +36 0 V 41.727 +36 0 V 41.728 +35 0 V 41.729 +36 0 V 41.730 +36 0 V 41.731 +36 0 V 41.732 +36 0 V 41.733 +36 0 V 41.734 +35 0 V 41.735 +36 0 V 41.736 +36 0 V 41.737 +36 0 V 41.738 +36 0 V 41.739 +36 0 V 41.740 +36 0 V 41.741 +35 0 V 41.742 +36 0 V 41.743 +36 0 V 41.744 +36 0 V 41.745 +36 0 V 41.746 +36 0 V 41.747 +36 0 V 41.748 +35 0 V 41.749 +36 0 V 41.750 +36 0 V 41.751 +36 0 V 41.752 +36 0 V 41.753 +36 0 V 41.754 +35 0 V 41.755 +36 0 V 41.756 +36 0 V 41.757 +36 0 V 41.758 +% End plot #1 41.759 +% Begin plot #2 41.760 +stroke 41.761 +LT1 41.762 +LCb setrgbcolor 41.763 +3416 2722 M 41.764 +[ [(Helvetica) 140.0 0.0 true true 0 (8 Threads)] 41.765 +] -46.7 MRshow 41.766 +LT1 41.767 +3500 2722 M 41.768 +399 0 V 41.769 +610 1551 M 41.770 +19 -143 V 41.771 +31 -191 V 41.772 +722 955 L 41.773 +846 769 L 41.774 +1102 629 L 41.775 +497 -83 V 41.776 +994 -48 V 41.777 +4067 480 L 41.778 +% End plot #2 41.779 +% Begin plot #3 41.780 +stroke 41.781 +LT2 41.782 +LCb setrgbcolor 41.783 +3416 2582 M 41.784 +[ [(Helvetica) 140.0 0.0 true true 0 (32 Threads)] 41.785 +] -46.7 MRshow 41.786 +LT2 41.787 +3500 2582 M 41.788 +399 0 V 41.789 +610 1568 M 41.790 +19 -173 V 41.791 +31 -226 V 41.792 +722 958 L 41.793 +846 759 L 41.794 +1102 621 L 41.795 +497 -78 V 41.796 +994 -46 V 41.797 +4067 479 L 41.798 +% End plot #3 41.799 +% Begin plot #4 41.800 +stroke 41.801 +LT3 41.802 +LCb setrgbcolor 41.803 +3416 2442 M 41.804 +[ [(Helvetica) 140.0 0.0 true true 0 (128 Threads)] 41.805 +] -46.7 MRshow 41.806 +LT3 41.807 +3500 2442 M 41.808 +399 0 V 41.809 +611 1654 M 41.810 +18 -214 V 41.811 +31 -208 V 41.812 +722 984 L 41.813 +847 786 L 41.814 +1103 636 L 41.815 +496 -85 V 41.816 +994 -50 V 41.817 +4067 482 L 41.818 +% End plot #4 41.819 +% Begin plot #5 41.820 +stroke 41.821 +LT4 41.822 +LCb setrgbcolor 41.823 +3416 2302 M 41.824 +[ [(Helvetica) 140.0 0.0 true true 0 (512 Threads)] 41.825 +] -46.7 MRshow 41.826 +LT4 41.827 +3500 2302 M 41.828 +399 0 V 41.829 +611 1704 M 41.830 +18 -203 V 41.831 +31 -230 V 41.832 +63 -252 V 41.833 +846 804 L 41.834 +1103 645 L 41.835 +497 -89 V 41.836 +993 -52 V 41.837 +4067 484 L 41.838 +% End plot #5 41.839 +stroke 41.840 +1.000 UL 41.841 +LTb 41.842 +518 2855 M 41.843 +518 448 L 41.844 +3549 0 V 41.845 +0 2407 R 41.846 +-3549 0 R 41.847 +1.000 UP 41.848 +stroke 41.849 +grestore 41.850 +end 41.851 +showpage 41.852 +%%Trailer 41.853 +%%DocumentFonts: Helvetica 41.854 +%%Pages: 1
42.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 42.2 +++ b/0__Papers/PRT/PRT__formal_def/figures/plots_exec_vs_task_size/not_used/vms_pthreads_8_32_128thds__o30000__perfCtrs.result.eps Sat Aug 03 19:24:22 2013 -0700 42.3 @@ -0,0 +1,819 @@ 42.4 +%!PS-Adobe-2.0 42.5 +%%Title: vms_pthreads_8_32_128thds__o30000__perfCtrs.result.eps 42.6 +%%Creator: gnuplot 4.4 patchlevel 2 42.7 +%%CreationDate: Thu Jan 26 18:11:43 2012 42.8 +%%DocumentFonts: (atend) 42.9 +%%BoundingBox: 251 50 554 482 42.10 +%%Orientation: Landscape 42.11 +%%Pages: (atend) 42.12 +%%EndComments 42.13 +%%BeginProlog 42.14 +/gnudict 256 dict def 42.15 +gnudict begin 42.16 +% 42.17 +% The following true/false flags may be edited by hand if desired. 42.18 +% The unit line width and grayscale image gamma correction may also be changed. 42.19 +% 42.20 +/Color true def 42.21 +/Blacktext false def 42.22 +/Solid false def 42.23 +/Dashlength 1 def 42.24 +/Landscape true def 42.25 +/Level1 false def 42.26 +/Rounded false def 42.27 +/ClipToBoundingBox false def 42.28 +/TransparentPatterns false def 42.29 +/gnulinewidth 5.000 def 42.30 +/userlinewidth gnulinewidth def 42.31 +/Gamma 1.0 def 42.32 +% 42.33 +/vshift -46 def 42.34 +/dl1 { 42.35 + 10.0 Dashlength mul mul 42.36 + Rounded { currentlinewidth 0.75 mul sub dup 0 le { pop 0.01 } if } if 42.37 +} def 42.38 +/dl2 { 42.39 + 10.0 Dashlength mul mul 42.40 + Rounded { currentlinewidth 0.75 mul add } if 42.41 +} def 42.42 +/hpt_ 31.5 def 42.43 +/vpt_ 31.5 def 42.44 +/hpt hpt_ def 42.45 +/vpt vpt_ def 42.46 +Level1 {} { 42.47 +/SDict 10 dict def 42.48 +systemdict /pdfmark known not { 42.49 + userdict /pdfmark systemdict /cleartomark get put 42.50 +} if 42.51 +SDict begin [ 42.52 + /Title (vms_pthreads_8_32_128thds__o30000__perfCtrs.result.eps) 42.53 + /Subject (gnuplot plot) 42.54 + /Creator (gnuplot 4.4 patchlevel 2) 42.55 + /Author (msach) 42.56 +% /Producer (gnuplot) 42.57 +% /Keywords () 42.58 + /CreationDate (Thu Jan 26 18:11:43 2012) 42.59 + /DOCINFO pdfmark 42.60 +end 42.61 +} ifelse 42.62 +/doclip { 42.63 + ClipToBoundingBox { 42.64 + newpath 251 50 moveto 554 50 lineto 554 482 lineto 251 482 lineto closepath 42.65 + clip 42.66 + } if 42.67 +} def 42.68 +% 42.69 +% Gnuplot Prolog Version 4.4 (August 2010) 42.70 +% 42.71 +%/SuppressPDFMark true def 42.72 +% 42.73 +/M {moveto} bind def 42.74 +/L {lineto} bind def 42.75 +/R {rmoveto} bind def 42.76 +/V {rlineto} bind def 42.77 +/N {newpath moveto} bind def 42.78 +/Z {closepath} bind def 42.79 +/C {setrgbcolor} bind def 42.80 +/f {rlineto fill} bind def 42.81 +/g {setgray} bind def 42.82 +/Gshow {show} def % May be redefined later in the file to support UTF-8 42.83 +/vpt2 vpt 2 mul def 42.84 +/hpt2 hpt 2 mul def 42.85 +/Lshow {currentpoint stroke M 0 vshift R 42.86 + Blacktext {gsave 0 setgray show grestore} {show} ifelse} def 42.87 +/Rshow {currentpoint stroke M dup stringwidth pop neg vshift R 42.88 + Blacktext {gsave 0 setgray show grestore} {show} ifelse} def 42.89 +/Cshow {currentpoint stroke M dup stringwidth pop -2 div vshift R 42.90 + Blacktext {gsave 0 setgray show grestore} {show} ifelse} def 42.91 +/UP {dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def 42.92 + /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def} def 42.93 +/DL {Color {setrgbcolor Solid {pop []} if 0 setdash} 42.94 + {pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse} def 42.95 +/BL {stroke userlinewidth 2 mul setlinewidth 42.96 + Rounded {1 setlinejoin 1 setlinecap} if} def 42.97 +/AL {stroke userlinewidth 2 div setlinewidth 42.98 + Rounded {1 setlinejoin 1 setlinecap} if} def 42.99 +/UL {dup gnulinewidth mul /userlinewidth exch def 42.100 + dup 1 lt {pop 1} if 10 mul /udl exch def} def 42.101 +/PL {stroke userlinewidth setlinewidth 42.102 + Rounded {1 setlinejoin 1 setlinecap} if} def 42.103 +3.8 setmiterlimit 42.104 +% Default Line colors 42.105 +/LCw {1 1 1} def 42.106 +/LCb {0 0 0} def 42.107 +/LCa {0 0 0} def 42.108 +/LC0 {1 0 0} def 42.109 +/LC1 {0 1 0} def 42.110 +/LC2 {0 0 1} def 42.111 +/LC3 {1 0 1} def 42.112 +/LC4 {0 1 1} def 42.113 +/LC5 {1 1 0} def 42.114 +/LC6 {0 0 0} def 42.115 +/LC7 {1 0.3 0} def 42.116 +/LC8 {0.5 0.5 0.5} def 42.117 +% Default Line Types 42.118 +/LTw {PL [] 1 setgray} def 42.119 +/LTb {BL [] LCb DL} def 42.120 +/LTa {AL [1 udl mul 2 udl mul] 0 setdash LCa setrgbcolor} def 42.121 +/LT0 {PL [] LC0 DL} def 42.122 +/LT1 {PL [4 dl1 2 dl2] LC1 DL} def 42.123 +/LT2 {PL [2 dl1 3 dl2] LC2 DL} def 42.124 +/LT3 {PL [1 dl1 1.5 dl2] LC3 DL} def 42.125 +/LT4 {PL [6 dl1 2 dl2 1 dl1 2 dl2] LC4 DL} def 42.126 +/LT5 {PL [3 dl1 3 dl2 1 dl1 3 dl2] LC5 DL} def 42.127 +/LT6 {PL [2 dl1 2 dl2 2 dl1 6 dl2] LC6 DL} def 42.128 +/LT7 {PL [1 dl1 2 dl2 6 dl1 2 dl2 1 dl1 2 dl2] LC7 DL} def 42.129 +/LT8 {PL [2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 4 dl2] LC8 DL} def 42.130 +/Pnt {stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore} def 42.131 +/Dia {stroke [] 0 setdash 2 copy vpt add M 42.132 + hpt neg vpt neg V hpt vpt neg V 42.133 + hpt vpt V hpt neg vpt V closepath stroke 42.134 + Pnt} def 42.135 +/Pls {stroke [] 0 setdash vpt sub M 0 vpt2 V 42.136 + currentpoint stroke M 42.137 + hpt neg vpt neg R hpt2 0 V stroke 42.138 + } def 42.139 +/Box {stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M 42.140 + 0 vpt2 neg V hpt2 0 V 0 vpt2 V 42.141 + hpt2 neg 0 V closepath stroke 42.142 + Pnt} def 42.143 +/Crs {stroke [] 0 setdash exch hpt sub exch vpt add M 42.144 + hpt2 vpt2 neg V currentpoint stroke M 42.145 + hpt2 neg 0 R hpt2 vpt2 V stroke} def 42.146 +/TriU {stroke [] 0 setdash 2 copy vpt 1.12 mul add M 42.147 + hpt neg vpt -1.62 mul V 42.148 + hpt 2 mul 0 V 42.149 + hpt neg vpt 1.62 mul V closepath stroke 42.150 + Pnt} def 42.151 +/Star {2 copy Pls Crs} def 42.152 +/BoxF {stroke [] 0 setdash exch hpt sub exch vpt add M 42.153 + 0 vpt2 neg V hpt2 0 V 0 vpt2 V 42.154 + hpt2 neg 0 V closepath fill} def 42.155 +/TriUF {stroke [] 0 setdash vpt 1.12 mul add M 42.156 + hpt neg vpt -1.62 mul V 42.157 + hpt 2 mul 0 V 42.158 + hpt neg vpt 1.62 mul V closepath fill} def 42.159 +/TriD {stroke [] 0 setdash 2 copy vpt 1.12 mul sub M 42.160 + hpt neg vpt 1.62 mul V 42.161 + hpt 2 mul 0 V 42.162 + hpt neg vpt -1.62 mul V closepath stroke 42.163 + Pnt} def 42.164 +/TriDF {stroke [] 0 setdash vpt 1.12 mul sub M 42.165 + hpt neg vpt 1.62 mul V 42.166 + hpt 2 mul 0 V 42.167 + hpt neg vpt -1.62 mul V closepath fill} def 42.168 +/DiaF {stroke [] 0 setdash vpt add M 42.169 + hpt neg vpt neg V hpt vpt neg V 42.170 + hpt vpt V hpt neg vpt V closepath fill} def 42.171 +/Pent {stroke [] 0 setdash 2 copy gsave 42.172 + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat 42.173 + closepath stroke grestore Pnt} def 42.174 +/PentF {stroke [] 0 setdash gsave 42.175 + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat 42.176 + closepath fill grestore} def 42.177 +/Circle {stroke [] 0 setdash 2 copy 42.178 + hpt 0 360 arc stroke Pnt} def 42.179 +/CircleF {stroke [] 0 setdash hpt 0 360 arc fill} def 42.180 +/C0 {BL [] 0 setdash 2 copy moveto vpt 90 450 arc} bind def 42.181 +/C1 {BL [] 0 setdash 2 copy moveto 42.182 + 2 copy vpt 0 90 arc closepath fill 42.183 + vpt 0 360 arc closepath} bind def 42.184 +/C2 {BL [] 0 setdash 2 copy moveto 42.185 + 2 copy vpt 90 180 arc closepath fill 42.186 + vpt 0 360 arc closepath} bind def 42.187 +/C3 {BL [] 0 setdash 2 copy moveto 42.188 + 2 copy vpt 0 180 arc closepath fill 42.189 + vpt 0 360 arc closepath} bind def 42.190 +/C4 {BL [] 0 setdash 2 copy moveto 42.191 + 2 copy vpt 180 270 arc closepath fill 42.192 + vpt 0 360 arc closepath} bind def 42.193 +/C5 {BL [] 0 setdash 2 copy moveto 42.194 + 2 copy vpt 0 90 arc 42.195 + 2 copy moveto 42.196 + 2 copy vpt 180 270 arc closepath fill 42.197 + vpt 0 360 arc} bind def 42.198 +/C6 {BL [] 0 setdash 2 copy moveto 42.199 + 2 copy vpt 90 270 arc closepath fill 42.200 + vpt 0 360 arc closepath} bind def 42.201 +/C7 {BL [] 0 setdash 2 copy moveto 42.202 + 2 copy vpt 0 270 arc closepath fill 42.203 + vpt 0 360 arc closepath} bind def 42.204 +/C8 {BL [] 0 setdash 2 copy moveto 42.205 + 2 copy vpt 270 360 arc closepath fill 42.206 + vpt 0 360 arc closepath} bind def 42.207 +/C9 {BL [] 0 setdash 2 copy moveto 42.208 + 2 copy vpt 270 450 arc closepath fill 42.209 + vpt 0 360 arc closepath} bind def 42.210 +/C10 {BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill 42.211 + 2 copy moveto 42.212 + 2 copy vpt 90 180 arc closepath fill 42.213 + vpt 0 360 arc closepath} bind def 42.214 +/C11 {BL [] 0 setdash 2 copy moveto 42.215 + 2 copy vpt 0 180 arc closepath fill 42.216 + 2 copy moveto 42.217 + 2 copy vpt 270 360 arc closepath fill 42.218 + vpt 0 360 arc closepath} bind def 42.219 +/C12 {BL [] 0 setdash 2 copy moveto 42.220 + 2 copy vpt 180 360 arc closepath fill 42.221 + vpt 0 360 arc closepath} bind def 42.222 +/C13 {BL [] 0 setdash 2 copy moveto 42.223 + 2 copy vpt 0 90 arc closepath fill 42.224 + 2 copy moveto 42.225 + 2 copy vpt 180 360 arc closepath fill 42.226 + vpt 0 360 arc closepath} bind def 42.227 +/C14 {BL [] 0 setdash 2 copy moveto 42.228 + 2 copy vpt 90 360 arc closepath fill 42.229 + vpt 0 360 arc} bind def 42.230 +/C15 {BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill 42.231 + vpt 0 360 arc closepath} bind def 42.232 +/Rec {newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto 42.233 + neg 0 rlineto closepath} bind def 42.234 +/Square {dup Rec} bind def 42.235 +/Bsquare {vpt sub exch vpt sub exch vpt2 Square} bind def 42.236 +/S0 {BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare} bind def 42.237 +/S1 {BL [] 0 setdash 2 copy vpt Square fill Bsquare} bind def 42.238 +/S2 {BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def 42.239 +/S3 {BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare} bind def 42.240 +/S4 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def 42.241 +/S5 {BL [] 0 setdash 2 copy 2 copy vpt Square fill 42.242 + exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def 42.243 +/S6 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare} bind def 42.244 +/S7 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill 42.245 + 2 copy vpt Square fill Bsquare} bind def 42.246 +/S8 {BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare} bind def 42.247 +/S9 {BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare} bind def 42.248 +/S10 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill 42.249 + Bsquare} bind def 42.250 +/S11 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill 42.251 + Bsquare} bind def 42.252 +/S12 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare} bind def 42.253 +/S13 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 42.254 + 2 copy vpt Square fill Bsquare} bind def 42.255 +/S14 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 42.256 + 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def 42.257 +/S15 {BL [] 0 setdash 2 copy Bsquare fill Bsquare} bind def 42.258 +/D0 {gsave translate 45 rotate 0 0 S0 stroke grestore} bind def 42.259 +/D1 {gsave translate 45 rotate 0 0 S1 stroke grestore} bind def 42.260 +/D2 {gsave translate 45 rotate 0 0 S2 stroke grestore} bind def 42.261 +/D3 {gsave translate 45 rotate 0 0 S3 stroke grestore} bind def 42.262 +/D4 {gsave translate 45 rotate 0 0 S4 stroke grestore} bind def 42.263 +/D5 {gsave translate 45 rotate 0 0 S5 stroke grestore} bind def 42.264 +/D6 {gsave translate 45 rotate 0 0 S6 stroke grestore} bind def 42.265 +/D7 {gsave translate 45 rotate 0 0 S7 stroke grestore} bind def 42.266 +/D8 {gsave translate 45 rotate 0 0 S8 stroke grestore} bind def 42.267 +/D9 {gsave translate 45 rotate 0 0 S9 stroke grestore} bind def 42.268 +/D10 {gsave translate 45 rotate 0 0 S10 stroke grestore} bind def 42.269 +/D11 {gsave translate 45 rotate 0 0 S11 stroke grestore} bind def 42.270 +/D12 {gsave translate 45 rotate 0 0 S12 stroke grestore} bind def 42.271 +/D13 {gsave translate 45 rotate 0 0 S13 stroke grestore} bind def 42.272 +/D14 {gsave translate 45 rotate 0 0 S14 stroke grestore} bind def 42.273 +/D15 {gsave translate 45 rotate 0 0 S15 stroke grestore} bind def 42.274 +/DiaE {stroke [] 0 setdash vpt add M 42.275 + hpt neg vpt neg V hpt vpt neg V 42.276 + hpt vpt V hpt neg vpt V closepath stroke} def 42.277 +/BoxE {stroke [] 0 setdash exch hpt sub exch vpt add M 42.278 + 0 vpt2 neg V hpt2 0 V 0 vpt2 V 42.279 + hpt2 neg 0 V closepath stroke} def 42.280 +/TriUE {stroke [] 0 setdash vpt 1.12 mul add M 42.281 + hpt neg vpt -1.62 mul V 42.282 + hpt 2 mul 0 V 42.283 + hpt neg vpt 1.62 mul V closepath stroke} def 42.284 +/TriDE {stroke [] 0 setdash vpt 1.12 mul sub M 42.285 + hpt neg vpt 1.62 mul V 42.286 + hpt 2 mul 0 V 42.287 + hpt neg vpt -1.62 mul V closepath stroke} def 42.288 +/PentE {stroke [] 0 setdash gsave 42.289 + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat 42.290 + closepath stroke grestore} def 42.291 +/CircE {stroke [] 0 setdash 42.292 + hpt 0 360 arc stroke} def 42.293 +/Opaque {gsave closepath 1 setgray fill grestore 0 setgray closepath} def 42.294 +/DiaW {stroke [] 0 setdash vpt add M 42.295 + hpt neg vpt neg V hpt vpt neg V 42.296 + hpt vpt V hpt neg vpt V Opaque stroke} def 42.297 +/BoxW {stroke [] 0 setdash exch hpt sub exch vpt add M 42.298 + 0 vpt2 neg V hpt2 0 V 0 vpt2 V 42.299 + hpt2 neg 0 V Opaque stroke} def 42.300 +/TriUW {stroke [] 0 setdash vpt 1.12 mul add M 42.301 + hpt neg vpt -1.62 mul V 42.302 + hpt 2 mul 0 V 42.303 + hpt neg vpt 1.62 mul V Opaque stroke} def 42.304 +/TriDW {stroke [] 0 setdash vpt 1.12 mul sub M 42.305 + hpt neg vpt 1.62 mul V 42.306 + hpt 2 mul 0 V 42.307 + hpt neg vpt -1.62 mul V Opaque stroke} def 42.308 +/PentW {stroke [] 0 setdash gsave 42.309 + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat 42.310 + Opaque stroke grestore} def 42.311 +/CircW {stroke [] 0 setdash 42.312 + hpt 0 360 arc Opaque stroke} def 42.313 +/BoxFill {gsave Rec 1 setgray fill grestore} def 42.314 +/Density { 42.315 + /Fillden exch def 42.316 + currentrgbcolor 42.317 + /ColB exch def /ColG exch def /ColR exch def 42.318 + /ColR ColR Fillden mul Fillden sub 1 add def 42.319 + /ColG ColG Fillden mul Fillden sub 1 add def 42.320 + /ColB ColB Fillden mul Fillden sub 1 add def 42.321 + ColR ColG ColB setrgbcolor} def 42.322 +/BoxColFill {gsave Rec PolyFill} def 42.323 +/PolyFill {gsave Density fill grestore grestore} def 42.324 +/h {rlineto rlineto rlineto gsave closepath fill grestore} bind def 42.325 +% 42.326 +% PostScript Level 1 Pattern Fill routine for rectangles 42.327 +% Usage: x y w h s a XX PatternFill 42.328 +% x,y = lower left corner of box to be filled 42.329 +% w,h = width and height of box 42.330 +% a = angle in degrees between lines and x-axis 42.331 +% XX = 0/1 for no/yes cross-hatch 42.332 +% 42.333 +/PatternFill {gsave /PFa [ 9 2 roll ] def 42.334 + PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate 42.335 + PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec 42.336 + gsave 1 setgray fill grestore clip 42.337 + currentlinewidth 0.5 mul setlinewidth 42.338 + /PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def 42.339 + 0 0 M PFa 5 get rotate PFs -2 div dup translate 42.340 + 0 1 PFs PFa 4 get div 1 add floor cvi 42.341 + {PFa 4 get mul 0 M 0 PFs V} for 42.342 + 0 PFa 6 get ne { 42.343 + 0 1 PFs PFa 4 get div 1 add floor cvi 42.344 + {PFa 4 get mul 0 2 1 roll M PFs 0 V} for 42.345 + } if 42.346 + stroke grestore} def 42.347 +% 42.348 +/languagelevel where 42.349 + {pop languagelevel} {1} ifelse 42.350 + 2 lt 42.351 + {/InterpretLevel1 true def} 42.352 + {/InterpretLevel1 Level1 def} 42.353 + ifelse 42.354 +% 42.355 +% PostScript level 2 pattern fill definitions 42.356 +% 42.357 +/Level2PatternFill { 42.358 +/Tile8x8 {/PaintType 2 /PatternType 1 /TilingType 1 /BBox [0 0 8 8] /XStep 8 /YStep 8} 42.359 + bind def 42.360 +/KeepColor {currentrgbcolor [/Pattern /DeviceRGB] setcolorspace} bind def 42.361 +<< Tile8x8 42.362 + /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke} 42.363 +>> matrix makepattern 42.364 +/Pat1 exch def 42.365 +<< Tile8x8 42.366 + /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke 42.367 + 0 4 M 4 8 L 8 4 L 4 0 L 0 4 L stroke} 42.368 +>> matrix makepattern 42.369 +/Pat2 exch def 42.370 +<< Tile8x8 42.371 + /PaintProc {0.5 setlinewidth pop 0 0 M 0 8 L 42.372 + 8 8 L 8 0 L 0 0 L fill} 42.373 +>> matrix makepattern 42.374 +/Pat3 exch def 42.375 +<< Tile8x8 42.376 + /PaintProc {0.5 setlinewidth pop -4 8 M 8 -4 L 42.377 + 0 12 M 12 0 L stroke} 42.378 +>> matrix makepattern 42.379 +/Pat4 exch def 42.380 +<< Tile8x8 42.381 + /PaintProc {0.5 setlinewidth pop -4 0 M 8 12 L 42.382 + 0 -4 M 12 8 L stroke} 42.383 +>> matrix makepattern 42.384 +/Pat5 exch def 42.385 +<< Tile8x8 42.386 + /PaintProc {0.5 setlinewidth pop -2 8 M 4 -4 L 42.387 + 0 12 M 8 -4 L 4 12 M 10 0 L stroke} 42.388 +>> matrix makepattern 42.389 +/Pat6 exch def 42.390 +<< Tile8x8 42.391 + /PaintProc {0.5 setlinewidth pop -2 0 M 4 12 L 42.392 + 0 -4 M 8 12 L 4 -4 M 10 8 L stroke} 42.393 +>> matrix makepattern 42.394 +/Pat7 exch def 42.395 +<< Tile8x8 42.396 + /PaintProc {0.5 setlinewidth pop 8 -2 M -4 4 L 42.397 + 12 0 M -4 8 L 12 4 M 0 10 L stroke} 42.398 +>> matrix makepattern 42.399 +/Pat8 exch def 42.400 +<< Tile8x8 42.401 + /PaintProc {0.5 setlinewidth pop 0 -2 M 12 4 L 42.402 + -4 0 M 12 8 L -4 4 M 8 10 L stroke} 42.403 +>> matrix makepattern 42.404 +/Pat9 exch def 42.405 +/Pattern1 {PatternBgnd KeepColor Pat1 setpattern} bind def 42.406 +/Pattern2 {PatternBgnd KeepColor Pat2 setpattern} bind def 42.407 +/Pattern3 {PatternBgnd KeepColor Pat3 setpattern} bind def 42.408 +/Pattern4 {PatternBgnd KeepColor Landscape {Pat5} {Pat4} ifelse setpattern} bind def 42.409 +/Pattern5 {PatternBgnd KeepColor Landscape {Pat4} {Pat5} ifelse setpattern} bind def 42.410 +/Pattern6 {PatternBgnd KeepColor Landscape {Pat9} {Pat6} ifelse setpattern} bind def 42.411 +/Pattern7 {PatternBgnd KeepColor Landscape {Pat8} {Pat7} ifelse setpattern} bind def 42.412 +} def 42.413 +% 42.414 +% 42.415 +%End of PostScript Level 2 code 42.416 +% 42.417 +/PatternBgnd { 42.418 + TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse 42.419 +} def 42.420 +% 42.421 +% Substitute for Level 2 pattern fill codes with 42.422 +% grayscale if Level 2 support is not selected. 42.423 +% 42.424 +/Level1PatternFill { 42.425 +/Pattern1 {0.250 Density} bind def 42.426 +/Pattern2 {0.500 Density} bind def 42.427 +/Pattern3 {0.750 Density} bind def 42.428 +/Pattern4 {0.125 Density} bind def 42.429 +/Pattern5 {0.375 Density} bind def 42.430 +/Pattern6 {0.625 Density} bind def 42.431 +/Pattern7 {0.875 Density} bind def 42.432 +} def 42.433 +% 42.434 +% Now test for support of Level 2 code 42.435 +% 42.436 +Level1 {Level1PatternFill} {Level2PatternFill} ifelse 42.437 +% 42.438 +/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont 42.439 +dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall 42.440 +currentdict end definefont pop 42.441 +/MFshow { 42.442 + { dup 5 get 3 ge 42.443 + { 5 get 3 eq {gsave} {grestore} ifelse } 42.444 + {dup dup 0 get findfont exch 1 get scalefont setfont 42.445 + [ currentpoint ] exch dup 2 get 0 exch R dup 5 get 2 ne {dup dup 6 42.446 + get exch 4 get {Gshow} {stringwidth pop 0 R} ifelse }if dup 5 get 0 eq 42.447 + {dup 3 get {2 get neg 0 exch R pop} {pop aload pop M} ifelse} {dup 5 42.448 + get 1 eq {dup 2 get exch dup 3 get exch 6 get stringwidth pop -2 div 42.449 + dup 0 R} {dup 6 get stringwidth pop -2 div 0 R 6 get 42.450 + show 2 index {aload pop M neg 3 -1 roll neg R pop pop} {pop pop pop 42.451 + pop aload pop M} ifelse }ifelse }ifelse } 42.452 + ifelse } 42.453 + forall} def 42.454 +/Gswidth {dup type /stringtype eq {stringwidth} {pop (n) stringwidth} ifelse} def 42.455 +/MFwidth {0 exch { dup 5 get 3 ge { 5 get 3 eq { 0 } { pop } ifelse } 42.456 + {dup 3 get{dup dup 0 get findfont exch 1 get scalefont setfont 42.457 + 6 get Gswidth pop add} {pop} ifelse} ifelse} forall} def 42.458 +/MLshow { currentpoint stroke M 42.459 + 0 exch R 42.460 + Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def 42.461 +/MRshow { currentpoint stroke M 42.462 + exch dup MFwidth neg 3 -1 roll R 42.463 + Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def 42.464 +/MCshow { currentpoint stroke M 42.465 + exch dup MFwidth -2 div 3 -1 roll R 42.466 + Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def 42.467 +/XYsave { [( ) 1 2 true false 3 ()] } bind def 42.468 +/XYrestore { [( ) 1 2 true false 4 ()] } bind def 42.469 +end 42.470 +%%EndProlog 42.471 +%%Page: 1 1 42.472 +gnudict begin 42.473 +gsave 42.474 +doclip 42.475 +50 50 translate 42.476 +0.100 0.100 scale 42.477 +90 rotate 42.478 +0 -5040 translate 42.479 +0 setgray 42.480 +newpath 42.481 +(Helvetica) findfont 140 scalefont setfont 42.482 +1.000 UL 42.483 +LTb 42.484 +518 448 M 42.485 +63 0 V 42.486 +stroke 42.487 +434 448 M 42.488 +[ [(Helvetica) 140.0 0.0 true true 0 ( 1)] 42.489 +] -46.7 MRshow 42.490 +1.000 UL 42.491 +LTb 42.492 +518 792 M 42.493 +63 0 V 42.494 +stroke 42.495 +434 792 M 42.496 +[ [(Helvetica) 140.0 0.0 true true 0 ( 2)] 42.497 +] -46.7 MRshow 42.498 +1.000 UL 42.499 +LTb 42.500 +518 1136 M 42.501 +63 0 V 42.502 +stroke 42.503 +434 1136 M 42.504 +[ [(Helvetica) 140.0 0.0 true true 0 ( 3)] 42.505 +] -46.7 MRshow 42.506 +1.000 UL 42.507 +LTb 42.508 +518 1480 M 42.509 +63 0 V 42.510 +stroke 42.511 +434 1480 M 42.512 +[ [(Helvetica) 140.0 0.0 true true 0 ( 4)] 42.513 +] -46.7 MRshow 42.514 +1.000 UL 42.515 +LTb 42.516 +518 1823 M 42.517 +63 0 V 42.518 +stroke 42.519 +434 1823 M 42.520 +[ [(Helvetica) 140.0 0.0 true true 0 ( 5)] 42.521 +] -46.7 MRshow 42.522 +1.000 UL 42.523 +LTb 42.524 +518 2167 M 42.525 +63 0 V 42.526 +stroke 42.527 +434 2167 M 42.528 +[ [(Helvetica) 140.0 0.0 true true 0 ( 6)] 42.529 +] -46.7 MRshow 42.530 +1.000 UL 42.531 +LTb 42.532 +518 2511 M 42.533 +63 0 V 42.534 +stroke 42.535 +434 2511 M 42.536 +[ [(Helvetica) 140.0 0.0 true true 0 ( 7)] 42.537 +] -46.7 MRshow 42.538 +1.000 UL 42.539 +LTb 42.540 +518 2855 M 42.541 +63 0 V 42.542 +stroke 42.543 +434 2855 M 42.544 +[ [(Helvetica) 140.0 0.0 true true 0 ( 8)] 42.545 +] -46.7 MRshow 42.546 +1.000 UL 42.547 +LTb 42.548 +518 448 M 42.549 +0 63 V 42.550 +stroke 42.551 +518 308 M 42.552 +[ [(Helvetica) 140.0 0.0 true true 0 ( 0)] 42.553 +] -46.7 MCshow 42.554 +1.000 UL 42.555 +LTb 42.556 +962 448 M 42.557 +0 63 V 42.558 +stroke 42.559 +962 308 M 42.560 +[ [(Helvetica) 140.0 0.0 true true 0 ( 1000)] 42.561 +] -46.7 MCshow 42.562 +1.000 UL 42.563 +LTb 42.564 +1405 448 M 42.565 +0 63 V 42.566 +stroke 42.567 +1405 308 M 42.568 +[ [(Helvetica) 140.0 0.0 true true 0 ( 2000)] 42.569 +] -46.7 MCshow 42.570 +1.000 UL 42.571 +LTb 42.572 +1849 448 M 42.573 +0 63 V 42.574 +stroke 42.575 +1849 308 M 42.576 +[ [(Helvetica) 140.0 0.0 true true 0 ( 3000)] 42.577 +] -46.7 MCshow 42.578 +1.000 UL 42.579 +LTb 42.580 +2293 448 M 42.581 +0 63 V 42.582 +stroke 42.583 +2293 308 M 42.584 +[ [(Helvetica) 140.0 0.0 true true 0 ( 4000)] 42.585 +] -46.7 MCshow 42.586 +1.000 UL 42.587 +LTb 42.588 +2736 448 M 42.589 +0 63 V 42.590 +stroke 42.591 +2736 308 M 42.592 +[ [(Helvetica) 140.0 0.0 true true 0 ( 5000)] 42.593 +] -46.7 MCshow 42.594 +1.000 UL 42.595 +LTb 42.596 +3180 448 M 42.597 +0 63 V 42.598 +stroke 42.599 +3180 308 M 42.600 +[ [(Helvetica) 140.0 0.0 true true 0 ( 6000)] 42.601 +] -46.7 MCshow 42.602 +1.000 UL 42.603 +LTb 42.604 +3623 448 M 42.605 +0 63 V 42.606 +stroke 42.607 +3623 308 M 42.608 +[ [(Helvetica) 140.0 0.0 true true 0 ( 7000)] 42.609 +] -46.7 MCshow 42.610 +1.000 UL 42.611 +LTb 42.612 +4067 448 M 42.613 +0 63 V 42.614 +stroke 42.615 +4067 308 M 42.616 +[ [(Helvetica) 140.0 0.0 true true 0 ( 8000)] 42.617 +] -46.7 MCshow 42.618 +1.000 UL 42.619 +LTb 42.620 +1.000 UL 42.621 +LTb 42.622 +518 2855 M 42.623 +518 448 L 42.624 +3549 0 V 42.625 +0 2407 R 42.626 +-3549 0 R 42.627 +stroke 42.628 +LCb setrgbcolor 42.629 +112 1651 M 42.630 +currentpoint gsave translate -270 rotate 0 0 moveto 42.631 +[ [(Helvetica) 140.0 0.0 true true 0 (Ratio of Total Execution to Total Work)] 42.632 +] -46.7 MCshow 42.633 +grestore 42.634 +LTb 42.635 +LCb setrgbcolor 42.636 +2292 98 M 42.637 +[ [(Helvetica) 140.0 0.0 true true 0 (Cycles in one Task)] 42.638 +] -46.7 MCshow 42.639 +LTb 42.640 +1.000 UP 42.641 +1.000 UL 42.642 +LTb 42.643 +1.000 UL 42.644 +LTb 42.645 +2492 2372 N 42.646 +0 420 V 42.647 +1491 0 V 42.648 +0 -420 V 42.649 +-1491 0 V 42.650 +Z stroke 42.651 +2492 2792 M 42.652 +1491 0 V 42.653 +% Begin plot #1 42.654 +stroke 42.655 +3.000 UL 42.656 +LT1 42.657 +LCa setrgbcolor 42.658 +518 792 M 42.659 +36 0 V 42.660 +36 0 V 42.661 +36 0 V 42.662 +35 0 V 42.663 +36 0 V 42.664 +36 0 V 42.665 +36 0 V 42.666 +36 0 V 42.667 +36 0 V 42.668 +35 0 V 42.669 +36 0 V 42.670 +36 0 V 42.671 +36 0 V 42.672 +36 0 V 42.673 +36 0 V 42.674 +36 0 V 42.675 +35 0 V 42.676 +36 0 V 42.677 +36 0 V 42.678 +36 0 V 42.679 +36 0 V 42.680 +36 0 V 42.681 +36 0 V 42.682 +35 0 V 42.683 +36 0 V 42.684 +36 0 V 42.685 +36 0 V 42.686 +36 0 V 42.687 +36 0 V 42.688 +35 0 V 42.689 +36 0 V 42.690 +36 0 V 42.691 +36 0 V 42.692 +36 0 V 42.693 +36 0 V 42.694 +36 0 V 42.695 +35 0 V 42.696 +36 0 V 42.697 +36 0 V 42.698 +36 0 V 42.699 +36 0 V 42.700 +36 0 V 42.701 +35 0 V 42.702 +36 0 V 42.703 +36 0 V 42.704 +36 0 V 42.705 +36 0 V 42.706 +36 0 V 42.707 +36 0 V 42.708 +35 0 V 42.709 +36 0 V 42.710 +36 0 V 42.711 +36 0 V 42.712 +36 0 V 42.713 +36 0 V 42.714 +36 0 V 42.715 +35 0 V 42.716 +36 0 V 42.717 +36 0 V 42.718 +36 0 V 42.719 +36 0 V 42.720 +36 0 V 42.721 +35 0 V 42.722 +36 0 V 42.723 +36 0 V 42.724 +36 0 V 42.725 +36 0 V 42.726 +36 0 V 42.727 +36 0 V 42.728 +35 0 V 42.729 +36 0 V 42.730 +36 0 V 42.731 +36 0 V 42.732 +36 0 V 42.733 +36 0 V 42.734 +35 0 V 42.735 +36 0 V 42.736 +36 0 V 42.737 +36 0 V 42.738 +36 0 V 42.739 +36 0 V 42.740 +36 0 V 42.741 +35 0 V 42.742 +36 0 V 42.743 +36 0 V 42.744 +36 0 V 42.745 +36 0 V 42.746 +36 0 V 42.747 +36 0 V 42.748 +35 0 V 42.749 +36 0 V 42.750 +36 0 V 42.751 +36 0 V 42.752 +36 0 V 42.753 +36 0 V 42.754 +35 0 V 42.755 +36 0 V 42.756 +36 0 V 42.757 +36 0 V 42.758 +% End plot #1 42.759 +% Begin plot #2 42.760 +stroke 42.761 +4.000 UL 42.762 +LT1 42.763 +LCb setrgbcolor 42.764 +3416 2722 M 42.765 +[ [(Helvetica) 140.0 0.0 true true 0 (8 Threads)] 42.766 +] -46.7 MRshow 42.767 +LT1 42.768 +3500 2722 M 42.769 +399 0 V 42.770 +715 2855 M 42.771 +58 -684 V 42.772 +984 1411 L 42.773 +1411 947 L 42.774 +2263 700 L 42.775 +3965 573 L 42.776 +% End plot #2 42.777 +% Begin plot #3 42.778 +stroke 42.779 +LT2 42.780 +LCb setrgbcolor 42.781 +3416 2582 M 42.782 +[ [(Helvetica) 140.0 0.0 true true 0 (32 Threads)] 42.783 +] -46.7 MRshow 42.784 +LT2 42.785 +3500 2582 M 42.786 +399 0 V 42.787 +947 2855 M 42.788 +38 -338 V 42.789 +427 -979 V 42.790 +849 -507 V 42.791 +3969 747 L 42.792 +% End plot #3 42.793 +% Begin plot #4 42.794 +stroke 42.795 +LT3 42.796 +LCb setrgbcolor 42.797 +3416 2442 M 42.798 +[ [(Helvetica) 140.0 0.0 true true 0 (128 Threads)] 42.799 +] -46.7 MRshow 42.800 +LT3 42.801 +3500 2442 M 42.802 +399 0 V 42.803 +2070 2855 M 42.804 +197 -434 V 42.805 +3969 1446 L 42.806 +% End plot #4 42.807 +stroke 42.808 +1.000 UL 42.809 +LTb 42.810 +518 2855 M 42.811 +518 448 L 42.812 +3549 0 V 42.813 +0 2407 R 42.814 +-3549 0 R 42.815 +1.000 UP 42.816 +stroke 42.817 +grestore 42.818 +end 42.819 +showpage 42.820 +%%Trailer 42.821 +%%DocumentFonts: Helvetica 42.822 +%%Pages: 1
43.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 43.2 +++ b/0__Papers/PRT/PRT__formal_def/figures/plots_exec_vs_task_size/not_used/vms_vthread_8_32_128_512thds__o30000__perfCtrs.result.eps Sat Aug 03 19:24:22 2013 -0700 43.3 @@ -0,0 +1,852 @@ 43.4 +%!PS-Adobe-2.0 43.5 +%%Title: vms_vthread_8_32_128_512thds__o30000__perfCtrs.result.eps 43.6 +%%Creator: gnuplot 4.4 patchlevel 2 43.7 +%%CreationDate: Thu Jan 26 18:12:20 2012 43.8 +%%DocumentFonts: (atend) 43.9 +%%BoundingBox: 251 50 554 482 43.10 +%%Orientation: Landscape 43.11 +%%Pages: (atend) 43.12 +%%EndComments 43.13 +%%BeginProlog 43.14 +/gnudict 256 dict def 43.15 +gnudict begin 43.16 +% 43.17 +% The following true/false flags may be edited by hand if desired. 43.18 +% The unit line width and grayscale image gamma correction may also be changed. 43.19 +% 43.20 +/Color true def 43.21 +/Blacktext false def 43.22 +/Solid false def 43.23 +/Dashlength 1 def 43.24 +/Landscape true def 43.25 +/Level1 false def 43.26 +/Rounded false def 43.27 +/ClipToBoundingBox false def 43.28 +/TransparentPatterns false def 43.29 +/gnulinewidth 5.000 def 43.30 +/userlinewidth gnulinewidth def 43.31 +/Gamma 1.0 def 43.32 +% 43.33 +/vshift -46 def 43.34 +/dl1 { 43.35 + 10.0 Dashlength mul mul 43.36 + Rounded { currentlinewidth 0.75 mul sub dup 0 le { pop 0.01 } if } if 43.37 +} def 43.38 +/dl2 { 43.39 + 10.0 Dashlength mul mul 43.40 + Rounded { currentlinewidth 0.75 mul add } if 43.41 +} def 43.42 +/hpt_ 31.5 def 43.43 +/vpt_ 31.5 def 43.44 +/hpt hpt_ def 43.45 +/vpt vpt_ def 43.46 +Level1 {} { 43.47 +/SDict 10 dict def 43.48 +systemdict /pdfmark known not { 43.49 + userdict /pdfmark systemdict /cleartomark get put 43.50 +} if 43.51 +SDict begin [ 43.52 + /Title (vms_vthread_8_32_128_512thds__o30000__perfCtrs.result.eps) 43.53 + /Subject (gnuplot plot) 43.54 + /Creator (gnuplot 4.4 patchlevel 2) 43.55 + /Author (msach) 43.56 +% /Producer (gnuplot) 43.57 +% /Keywords () 43.58 + /CreationDate (Thu Jan 26 18:12:20 2012) 43.59 + /DOCINFO pdfmark 43.60 +end 43.61 +} ifelse 43.62 +/doclip { 43.63 + ClipToBoundingBox { 43.64 + newpath 251 50 moveto 554 50 lineto 554 482 lineto 251 482 lineto closepath 43.65 + clip 43.66 + } if 43.67 +} def 43.68 +% 43.69 +% Gnuplot Prolog Version 4.4 (August 2010) 43.70 +% 43.71 +%/SuppressPDFMark true def 43.72 +% 43.73 +/M {moveto} bind def 43.74 +/L {lineto} bind def 43.75 +/R {rmoveto} bind def 43.76 +/V {rlineto} bind def 43.77 +/N {newpath moveto} bind def 43.78 +/Z {closepath} bind def 43.79 +/C {setrgbcolor} bind def 43.80 +/f {rlineto fill} bind def 43.81 +/g {setgray} bind def 43.82 +/Gshow {show} def % May be redefined later in the file to support UTF-8 43.83 +/vpt2 vpt 2 mul def 43.84 +/hpt2 hpt 2 mul def 43.85 +/Lshow {currentpoint stroke M 0 vshift R 43.86 + Blacktext {gsave 0 setgray show grestore} {show} ifelse} def 43.87 +/Rshow {currentpoint stroke M dup stringwidth pop neg vshift R 43.88 + Blacktext {gsave 0 setgray show grestore} {show} ifelse} def 43.89 +/Cshow {currentpoint stroke M dup stringwidth pop -2 div vshift R 43.90 + Blacktext {gsave 0 setgray show grestore} {show} ifelse} def 43.91 +/UP {dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def 43.92 + /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def} def 43.93 +/DL {Color {setrgbcolor Solid {pop []} if 0 setdash} 43.94 + {pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse} def 43.95 +/BL {stroke userlinewidth 2 mul setlinewidth 43.96 + Rounded {1 setlinejoin 1 setlinecap} if} def 43.97 +/AL {stroke userlinewidth 2 div setlinewidth 43.98 + Rounded {1 setlinejoin 1 setlinecap} if} def 43.99 +/UL {dup gnulinewidth mul /userlinewidth exch def 43.100 + dup 1 lt {pop 1} if 10 mul /udl exch def} def 43.101 +/PL {stroke userlinewidth setlinewidth 43.102 + Rounded {1 setlinejoin 1 setlinecap} if} def 43.103 +3.8 setmiterlimit 43.104 +% Default Line colors 43.105 +/LCw {1 1 1} def 43.106 +/LCb {0 0 0} def 43.107 +/LCa {0 0 0} def 43.108 +/LC0 {1 0 0} def 43.109 +/LC1 {0 1 0} def 43.110 +/LC2 {0 0 1} def 43.111 +/LC3 {1 0 1} def 43.112 +/LC4 {0 1 1} def 43.113 +/LC5 {1 1 0} def 43.114 +/LC6 {0 0 0} def 43.115 +/LC7 {1 0.3 0} def 43.116 +/LC8 {0.5 0.5 0.5} def 43.117 +% Default Line Types 43.118 +/LTw {PL [] 1 setgray} def 43.119 +/LTb {BL [] LCb DL} def 43.120 +/LTa {AL [1 udl mul 2 udl mul] 0 setdash LCa setrgbcolor} def 43.121 +/LT0 {PL [] LC0 DL} def 43.122 +/LT1 {PL [4 dl1 2 dl2] LC1 DL} def 43.123 +/LT2 {PL [2 dl1 3 dl2] LC2 DL} def 43.124 +/LT3 {PL [1 dl1 1.5 dl2] LC3 DL} def 43.125 +/LT4 {PL [6 dl1 2 dl2 1 dl1 2 dl2] LC4 DL} def 43.126 +/LT5 {PL [3 dl1 3 dl2 1 dl1 3 dl2] LC5 DL} def 43.127 +/LT6 {PL [2 dl1 2 dl2 2 dl1 6 dl2] LC6 DL} def 43.128 +/LT7 {PL [1 dl1 2 dl2 6 dl1 2 dl2 1 dl1 2 dl2] LC7 DL} def 43.129 +/LT8 {PL [2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 4 dl2] LC8 DL} def 43.130 +/Pnt {stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore} def 43.131 +/Dia {stroke [] 0 setdash 2 copy vpt add M 43.132 + hpt neg vpt neg V hpt vpt neg V 43.133 + hpt vpt V hpt neg vpt V closepath stroke 43.134 + Pnt} def 43.135 +/Pls {stroke [] 0 setdash vpt sub M 0 vpt2 V 43.136 + currentpoint stroke M 43.137 + hpt neg vpt neg R hpt2 0 V stroke 43.138 + } def 43.139 +/Box {stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M 43.140 + 0 vpt2 neg V hpt2 0 V 0 vpt2 V 43.141 + hpt2 neg 0 V closepath stroke 43.142 + Pnt} def 43.143 +/Crs {stroke [] 0 setdash exch hpt sub exch vpt add M 43.144 + hpt2 vpt2 neg V currentpoint stroke M 43.145 + hpt2 neg 0 R hpt2 vpt2 V stroke} def 43.146 +/TriU {stroke [] 0 setdash 2 copy vpt 1.12 mul add M 43.147 + hpt neg vpt -1.62 mul V 43.148 + hpt 2 mul 0 V 43.149 + hpt neg vpt 1.62 mul V closepath stroke 43.150 + Pnt} def 43.151 +/Star {2 copy Pls Crs} def 43.152 +/BoxF {stroke [] 0 setdash exch hpt sub exch vpt add M 43.153 + 0 vpt2 neg V hpt2 0 V 0 vpt2 V 43.154 + hpt2 neg 0 V closepath fill} def 43.155 +/TriUF {stroke [] 0 setdash vpt 1.12 mul add M 43.156 + hpt neg vpt -1.62 mul V 43.157 + hpt 2 mul 0 V 43.158 + hpt neg vpt 1.62 mul V closepath fill} def 43.159 +/TriD {stroke [] 0 setdash 2 copy vpt 1.12 mul sub M 43.160 + hpt neg vpt 1.62 mul V 43.161 + hpt 2 mul 0 V 43.162 + hpt neg vpt -1.62 mul V closepath stroke 43.163 + Pnt} def 43.164 +/TriDF {stroke [] 0 setdash vpt 1.12 mul sub M 43.165 + hpt neg vpt 1.62 mul V 43.166 + hpt 2 mul 0 V 43.167 + hpt neg vpt -1.62 mul V closepath fill} def 43.168 +/DiaF {stroke [] 0 setdash vpt add M 43.169 + hpt neg vpt neg V hpt vpt neg V 43.170 + hpt vpt V hpt neg vpt V closepath fill} def 43.171 +/Pent {stroke [] 0 setdash 2 copy gsave 43.172 + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat 43.173 + closepath stroke grestore Pnt} def 43.174 +/PentF {stroke [] 0 setdash gsave 43.175 + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat 43.176 + closepath fill grestore} def 43.177 +/Circle {stroke [] 0 setdash 2 copy 43.178 + hpt 0 360 arc stroke Pnt} def 43.179 +/CircleF {stroke [] 0 setdash hpt 0 360 arc fill} def 43.180 +/C0 {BL [] 0 setdash 2 copy moveto vpt 90 450 arc} bind def 43.181 +/C1 {BL [] 0 setdash 2 copy moveto 43.182 + 2 copy vpt 0 90 arc closepath fill 43.183 + vpt 0 360 arc closepath} bind def 43.184 +/C2 {BL [] 0 setdash 2 copy moveto 43.185 + 2 copy vpt 90 180 arc closepath fill 43.186 + vpt 0 360 arc closepath} bind def 43.187 +/C3 {BL [] 0 setdash 2 copy moveto 43.188 + 2 copy vpt 0 180 arc closepath fill 43.189 + vpt 0 360 arc closepath} bind def 43.190 +/C4 {BL [] 0 setdash 2 copy moveto 43.191 + 2 copy vpt 180 270 arc closepath fill 43.192 + vpt 0 360 arc closepath} bind def 43.193 +/C5 {BL [] 0 setdash 2 copy moveto 43.194 + 2 copy vpt 0 90 arc 43.195 + 2 copy moveto 43.196 + 2 copy vpt 180 270 arc closepath fill 43.197 + vpt 0 360 arc} bind def 43.198 +/C6 {BL [] 0 setdash 2 copy moveto 43.199 + 2 copy vpt 90 270 arc closepath fill 43.200 + vpt 0 360 arc closepath} bind def 43.201 +/C7 {BL [] 0 setdash 2 copy moveto 43.202 + 2 copy vpt 0 270 arc closepath fill 43.203 + vpt 0 360 arc closepath} bind def 43.204 +/C8 {BL [] 0 setdash 2 copy moveto 43.205 + 2 copy vpt 270 360 arc closepath fill 43.206 + vpt 0 360 arc closepath} bind def 43.207 +/C9 {BL [] 0 setdash 2 copy moveto 43.208 + 2 copy vpt 270 450 arc closepath fill 43.209 + vpt 0 360 arc closepath} bind def 43.210 +/C10 {BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill 43.211 + 2 copy moveto 43.212 + 2 copy vpt 90 180 arc closepath fill 43.213 + vpt 0 360 arc closepath} bind def 43.214 +/C11 {BL [] 0 setdash 2 copy moveto 43.215 + 2 copy vpt 0 180 arc closepath fill 43.216 + 2 copy moveto 43.217 + 2 copy vpt 270 360 arc closepath fill 43.218 + vpt 0 360 arc closepath} bind def 43.219 +/C12 {BL [] 0 setdash 2 copy moveto 43.220 + 2 copy vpt 180 360 arc closepath fill 43.221 + vpt 0 360 arc closepath} bind def 43.222 +/C13 {BL [] 0 setdash 2 copy moveto 43.223 + 2 copy vpt 0 90 arc closepath fill 43.224 + 2 copy moveto 43.225 + 2 copy vpt 180 360 arc closepath fill 43.226 + vpt 0 360 arc closepath} bind def 43.227 +/C14 {BL [] 0 setdash 2 copy moveto 43.228 + 2 copy vpt 90 360 arc closepath fill 43.229 + vpt 0 360 arc} bind def 43.230 +/C15 {BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill 43.231 + vpt 0 360 arc closepath} bind def 43.232 +/Rec {newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto 43.233 + neg 0 rlineto closepath} bind def 43.234 +/Square {dup Rec} bind def 43.235 +/Bsquare {vpt sub exch vpt sub exch vpt2 Square} bind def 43.236 +/S0 {BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare} bind def 43.237 +/S1 {BL [] 0 setdash 2 copy vpt Square fill Bsquare} bind def 43.238 +/S2 {BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def 43.239 +/S3 {BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare} bind def 43.240 +/S4 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def 43.241 +/S5 {BL [] 0 setdash 2 copy 2 copy vpt Square fill 43.242 + exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def 43.243 +/S6 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare} bind def 43.244 +/S7 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill 43.245 + 2 copy vpt Square fill Bsquare} bind def 43.246 +/S8 {BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare} bind def 43.247 +/S9 {BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare} bind def 43.248 +/S10 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill 43.249 + Bsquare} bind def 43.250 +/S11 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill 43.251 + Bsquare} bind def 43.252 +/S12 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare} bind def 43.253 +/S13 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 43.254 + 2 copy vpt Square fill Bsquare} bind def 43.255 +/S14 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 43.256 + 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def 43.257 +/S15 {BL [] 0 setdash 2 copy Bsquare fill Bsquare} bind def 43.258 +/D0 {gsave translate 45 rotate 0 0 S0 stroke grestore} bind def 43.259 +/D1 {gsave translate 45 rotate 0 0 S1 stroke grestore} bind def 43.260 +/D2 {gsave translate 45 rotate 0 0 S2 stroke grestore} bind def 43.261 +/D3 {gsave translate 45 rotate 0 0 S3 stroke grestore} bind def 43.262 +/D4 {gsave translate 45 rotate 0 0 S4 stroke grestore} bind def 43.263 +/D5 {gsave translate 45 rotate 0 0 S5 stroke grestore} bind def 43.264 +/D6 {gsave translate 45 rotate 0 0 S6 stroke grestore} bind def 43.265 +/D7 {gsave translate 45 rotate 0 0 S7 stroke grestore} bind def 43.266 +/D8 {gsave translate 45 rotate 0 0 S8 stroke grestore} bind def 43.267 +/D9 {gsave translate 45 rotate 0 0 S9 stroke grestore} bind def 43.268 +/D10 {gsave translate 45 rotate 0 0 S10 stroke grestore} bind def 43.269 +/D11 {gsave translate 45 rotate 0 0 S11 stroke grestore} bind def 43.270 +/D12 {gsave translate 45 rotate 0 0 S12 stroke grestore} bind def 43.271 +/D13 {gsave translate 45 rotate 0 0 S13 stroke grestore} bind def 43.272 +/D14 {gsave translate 45 rotate 0 0 S14 stroke grestore} bind def 43.273 +/D15 {gsave translate 45 rotate 0 0 S15 stroke grestore} bind def 43.274 +/DiaE {stroke [] 0 setdash vpt add M 43.275 + hpt neg vpt neg V hpt vpt neg V 43.276 + hpt vpt V hpt neg vpt V closepath stroke} def 43.277 +/BoxE {stroke [] 0 setdash exch hpt sub exch vpt add M 43.278 + 0 vpt2 neg V hpt2 0 V 0 vpt2 V 43.279 + hpt2 neg 0 V closepath stroke} def 43.280 +/TriUE {stroke [] 0 setdash vpt 1.12 mul add M 43.281 + hpt neg vpt -1.62 mul V 43.282 + hpt 2 mul 0 V 43.283 + hpt neg vpt 1.62 mul V closepath stroke} def 43.284 +/TriDE {stroke [] 0 setdash vpt 1.12 mul sub M 43.285 + hpt neg vpt 1.62 mul V 43.286 + hpt 2 mul 0 V 43.287 + hpt neg vpt -1.62 mul V closepath stroke} def 43.288 +/PentE {stroke [] 0 setdash gsave 43.289 + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat 43.290 + closepath stroke grestore} def 43.291 +/CircE {stroke [] 0 setdash 43.292 + hpt 0 360 arc stroke} def 43.293 +/Opaque {gsave closepath 1 setgray fill grestore 0 setgray closepath} def 43.294 +/DiaW {stroke [] 0 setdash vpt add M 43.295 + hpt neg vpt neg V hpt vpt neg V 43.296 + hpt vpt V hpt neg vpt V Opaque stroke} def 43.297 +/BoxW {stroke [] 0 setdash exch hpt sub exch vpt add M 43.298 + 0 vpt2 neg V hpt2 0 V 0 vpt2 V 43.299 + hpt2 neg 0 V Opaque stroke} def 43.300 +/TriUW {stroke [] 0 setdash vpt 1.12 mul add M 43.301 + hpt neg vpt -1.62 mul V 43.302 + hpt 2 mul 0 V 43.303 + hpt neg vpt 1.62 mul V Opaque stroke} def 43.304 +/TriDW {stroke [] 0 setdash vpt 1.12 mul sub M 43.305 + hpt neg vpt 1.62 mul V 43.306 + hpt 2 mul 0 V 43.307 + hpt neg vpt -1.62 mul V Opaque stroke} def 43.308 +/PentW {stroke [] 0 setdash gsave 43.309 + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat 43.310 + Opaque stroke grestore} def 43.311 +/CircW {stroke [] 0 setdash 43.312 + hpt 0 360 arc Opaque stroke} def 43.313 +/BoxFill {gsave Rec 1 setgray fill grestore} def 43.314 +/Density { 43.315 + /Fillden exch def 43.316 + currentrgbcolor 43.317 + /ColB exch def /ColG exch def /ColR exch def 43.318 + /ColR ColR Fillden mul Fillden sub 1 add def 43.319 + /ColG ColG Fillden mul Fillden sub 1 add def 43.320 + /ColB ColB Fillden mul Fillden sub 1 add def 43.321 + ColR ColG ColB setrgbcolor} def 43.322 +/BoxColFill {gsave Rec PolyFill} def 43.323 +/PolyFill {gsave Density fill grestore grestore} def 43.324 +/h {rlineto rlineto rlineto gsave closepath fill grestore} bind def 43.325 +% 43.326 +% PostScript Level 1 Pattern Fill routine for rectangles 43.327 +% Usage: x y w h s a XX PatternFill 43.328 +% x,y = lower left corner of box to be filled 43.329 +% w,h = width and height of box 43.330 +% a = angle in degrees between lines and x-axis 43.331 +% XX = 0/1 for no/yes cross-hatch 43.332 +% 43.333 +/PatternFill {gsave /PFa [ 9 2 roll ] def 43.334 + PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate 43.335 + PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec 43.336 + gsave 1 setgray fill grestore clip 43.337 + currentlinewidth 0.5 mul setlinewidth 43.338 + /PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def 43.339 + 0 0 M PFa 5 get rotate PFs -2 div dup translate 43.340 + 0 1 PFs PFa 4 get div 1 add floor cvi 43.341 + {PFa 4 get mul 0 M 0 PFs V} for 43.342 + 0 PFa 6 get ne { 43.343 + 0 1 PFs PFa 4 get div 1 add floor cvi 43.344 + {PFa 4 get mul 0 2 1 roll M PFs 0 V} for 43.345 + } if 43.346 + stroke grestore} def 43.347 +% 43.348 +/languagelevel where 43.349 + {pop languagelevel} {1} ifelse 43.350 + 2 lt 43.351 + {/InterpretLevel1 true def} 43.352 + {/InterpretLevel1 Level1 def} 43.353 + ifelse 43.354 +% 43.355 +% PostScript level 2 pattern fill definitions 43.356 +% 43.357 +/Level2PatternFill { 43.358 +/Tile8x8 {/PaintType 2 /PatternType 1 /TilingType 1 /BBox [0 0 8 8] /XStep 8 /YStep 8} 43.359 + bind def 43.360 +/KeepColor {currentrgbcolor [/Pattern /DeviceRGB] setcolorspace} bind def 43.361 +<< Tile8x8 43.362 + /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke} 43.363 +>> matrix makepattern 43.364 +/Pat1 exch def 43.365 +<< Tile8x8 43.366 + /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke 43.367 + 0 4 M 4 8 L 8 4 L 4 0 L 0 4 L stroke} 43.368 +>> matrix makepattern 43.369 +/Pat2 exch def 43.370 +<< Tile8x8 43.371 + /PaintProc {0.5 setlinewidth pop 0 0 M 0 8 L 43.372 + 8 8 L 8 0 L 0 0 L fill} 43.373 +>> matrix makepattern 43.374 +/Pat3 exch def 43.375 +<< Tile8x8 43.376 + /PaintProc {0.5 setlinewidth pop -4 8 M 8 -4 L 43.377 + 0 12 M 12 0 L stroke} 43.378 +>> matrix makepattern 43.379 +/Pat4 exch def 43.380 +<< Tile8x8 43.381 + /PaintProc {0.5 setlinewidth pop -4 0 M 8 12 L 43.382 + 0 -4 M 12 8 L stroke} 43.383 +>> matrix makepattern 43.384 +/Pat5 exch def 43.385 +<< Tile8x8 43.386 + /PaintProc {0.5 setlinewidth pop -2 8 M 4 -4 L 43.387 + 0 12 M 8 -4 L 4 12 M 10 0 L stroke} 43.388 +>> matrix makepattern 43.389 +/Pat6 exch def 43.390 +<< Tile8x8 43.391 + /PaintProc {0.5 setlinewidth pop -2 0 M 4 12 L 43.392 + 0 -4 M 8 12 L 4 -4 M 10 8 L stroke} 43.393 +>> matrix makepattern 43.394 +/Pat7 exch def 43.395 +<< Tile8x8 43.396 + /PaintProc {0.5 setlinewidth pop 8 -2 M -4 4 L 43.397 + 12 0 M -4 8 L 12 4 M 0 10 L stroke} 43.398 +>> matrix makepattern 43.399 +/Pat8 exch def 43.400 +<< Tile8x8 43.401 + /PaintProc {0.5 setlinewidth pop 0 -2 M 12 4 L 43.402 + -4 0 M 12 8 L -4 4 M 8 10 L stroke} 43.403 +>> matrix makepattern 43.404 +/Pat9 exch def 43.405 +/Pattern1 {PatternBgnd KeepColor Pat1 setpattern} bind def 43.406 +/Pattern2 {PatternBgnd KeepColor Pat2 setpattern} bind def 43.407 +/Pattern3 {PatternBgnd KeepColor Pat3 setpattern} bind def 43.408 +/Pattern4 {PatternBgnd KeepColor Landscape {Pat5} {Pat4} ifelse setpattern} bind def 43.409 +/Pattern5 {PatternBgnd KeepColor Landscape {Pat4} {Pat5} ifelse setpattern} bind def 43.410 +/Pattern6 {PatternBgnd KeepColor Landscape {Pat9} {Pat6} ifelse setpattern} bind def 43.411 +/Pattern7 {PatternBgnd KeepColor Landscape {Pat8} {Pat7} ifelse setpattern} bind def 43.412 +} def 43.413 +% 43.414 +% 43.415 +%End of PostScript Level 2 code 43.416 +% 43.417 +/PatternBgnd { 43.418 + TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse 43.419 +} def 43.420 +% 43.421 +% Substitute for Level 2 pattern fill codes with 43.422 +% grayscale if Level 2 support is not selected. 43.423 +% 43.424 +/Level1PatternFill { 43.425 +/Pattern1 {0.250 Density} bind def 43.426 +/Pattern2 {0.500 Density} bind def 43.427 +/Pattern3 {0.750 Density} bind def 43.428 +/Pattern4 {0.125 Density} bind def 43.429 +/Pattern5 {0.375 Density} bind def 43.430 +/Pattern6 {0.625 Density} bind def 43.431 +/Pattern7 {0.875 Density} bind def 43.432 +} def 43.433 +% 43.434 +% Now test for support of Level 2 code 43.435 +% 43.436 +Level1 {Level1PatternFill} {Level2PatternFill} ifelse 43.437 +% 43.438 +/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont 43.439 +dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall 43.440 +currentdict end definefont pop 43.441 +/MFshow { 43.442 + { dup 5 get 3 ge 43.443 + { 5 get 3 eq {gsave} {grestore} ifelse } 43.444 + {dup dup 0 get findfont exch 1 get scalefont setfont 43.445 + [ currentpoint ] exch dup 2 get 0 exch R dup 5 get 2 ne {dup dup 6 43.446 + get exch 4 get {Gshow} {stringwidth pop 0 R} ifelse }if dup 5 get 0 eq 43.447 + {dup 3 get {2 get neg 0 exch R pop} {pop aload pop M} ifelse} {dup 5 43.448 + get 1 eq {dup 2 get exch dup 3 get exch 6 get stringwidth pop -2 div 43.449 + dup 0 R} {dup 6 get stringwidth pop -2 div 0 R 6 get 43.450 + show 2 index {aload pop M neg 3 -1 roll neg R pop pop} {pop pop pop 43.451 + pop aload pop M} ifelse }ifelse }ifelse } 43.452 + ifelse } 43.453 + forall} def 43.454 +/Gswidth {dup type /stringtype eq {stringwidth} {pop (n) stringwidth} ifelse} def 43.455 +/MFwidth {0 exch { dup 5 get 3 ge { 5 get 3 eq { 0 } { pop } ifelse } 43.456 + {dup 3 get{dup dup 0 get findfont exch 1 get scalefont setfont 43.457 + 6 get Gswidth pop add} {pop} ifelse} ifelse} forall} def 43.458 +/MLshow { currentpoint stroke M 43.459 + 0 exch R 43.460 + Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def 43.461 +/MRshow { currentpoint stroke M 43.462 + exch dup MFwidth neg 3 -1 roll R 43.463 + Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def 43.464 +/MCshow { currentpoint stroke M 43.465 + exch dup MFwidth -2 div 3 -1 roll R 43.466 + Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def 43.467 +/XYsave { [( ) 1 2 true false 3 ()] } bind def 43.468 +/XYrestore { [( ) 1 2 true false 4 ()] } bind def 43.469 +end 43.470 +%%EndProlog 43.471 +%%Page: 1 1 43.472 +gnudict begin 43.473 +gsave 43.474 +doclip 43.475 +50 50 translate 43.476 +0.100 0.100 scale 43.477 +90 rotate 43.478 +0 -5040 translate 43.479 +0 setgray 43.480 +newpath 43.481 +(Helvetica) findfont 140 scalefont setfont 43.482 +1.000 UL 43.483 +LTb 43.484 +518 448 M 43.485 +63 0 V 43.486 +stroke 43.487 +434 448 M 43.488 +[ [(Helvetica) 140.0 0.0 true true 0 ( 1)] 43.489 +] -46.7 MRshow 43.490 +1.000 UL 43.491 +LTb 43.492 +518 792 M 43.493 +63 0 V 43.494 +stroke 43.495 +434 792 M 43.496 +[ [(Helvetica) 140.0 0.0 true true 0 ( 2)] 43.497 +] -46.7 MRshow 43.498 +1.000 UL 43.499 +LTb 43.500 +518 1136 M 43.501 +63 0 V 43.502 +stroke 43.503 +434 1136 M 43.504 +[ [(Helvetica) 140.0 0.0 true true 0 ( 3)] 43.505 +] -46.7 MRshow 43.506 +1.000 UL 43.507 +LTb 43.508 +518 1480 M 43.509 +63 0 V 43.510 +stroke 43.511 +434 1480 M 43.512 +[ [(Helvetica) 140.0 0.0 true true 0 ( 4)] 43.513 +] -46.7 MRshow 43.514 +1.000 UL 43.515 +LTb 43.516 +518 1823 M 43.517 +63 0 V 43.518 +stroke 43.519 +434 1823 M 43.520 +[ [(Helvetica) 140.0 0.0 true true 0 ( 5)] 43.521 +] -46.7 MRshow 43.522 +1.000 UL 43.523 +LTb 43.524 +518 2167 M 43.525 +63 0 V 43.526 +stroke 43.527 +434 2167 M 43.528 +[ [(Helvetica) 140.0 0.0 true true 0 ( 6)] 43.529 +] -46.7 MRshow 43.530 +1.000 UL 43.531 +LTb 43.532 +518 2511 M 43.533 +63 0 V 43.534 +stroke 43.535 +434 2511 M 43.536 +[ [(Helvetica) 140.0 0.0 true true 0 ( 7)] 43.537 +] -46.7 MRshow 43.538 +1.000 UL 43.539 +LTb 43.540 +518 2855 M 43.541 +63 0 V 43.542 +stroke 43.543 +434 2855 M 43.544 +[ [(Helvetica) 140.0 0.0 true true 0 ( 8)] 43.545 +] -46.7 MRshow 43.546 +1.000 UL 43.547 +LTb 43.548 +518 448 M 43.549 +0 63 V 43.550 +stroke 43.551 +518 308 M 43.552 +[ [(Helvetica) 140.0 0.0 true true 0 ( 0)] 43.553 +] -46.7 MCshow 43.554 +1.000 UL 43.555 +LTb 43.556 +962 448 M 43.557 +0 63 V 43.558 +stroke 43.559 +962 308 M 43.560 +[ [(Helvetica) 140.0 0.0 true true 0 ( 1000)] 43.561 +] -46.7 MCshow 43.562 +1.000 UL 43.563 +LTb 43.564 +1405 448 M 43.565 +0 63 V 43.566 +stroke 43.567 +1405 308 M 43.568 +[ [(Helvetica) 140.0 0.0 true true 0 ( 2000)] 43.569 +] -46.7 MCshow 43.570 +1.000 UL 43.571 +LTb 43.572 +1849 448 M 43.573 +0 63 V 43.574 +stroke 43.575 +1849 308 M 43.576 +[ [(Helvetica) 140.0 0.0 true true 0 ( 3000)] 43.577 +] -46.7 MCshow 43.578 +1.000 UL 43.579 +LTb 43.580 +2293 448 M 43.581 +0 63 V 43.582 +stroke 43.583 +2293 308 M 43.584 +[ [(Helvetica) 140.0 0.0 true true 0 ( 4000)] 43.585 +] -46.7 MCshow 43.586 +1.000 UL 43.587 +LTb 43.588 +2736 448 M 43.589 +0 63 V 43.590 +stroke 43.591 +2736 308 M 43.592 +[ [(Helvetica) 140.0 0.0 true true 0 ( 5000)] 43.593 +] -46.7 MCshow 43.594 +1.000 UL 43.595 +LTb 43.596 +3180 448 M 43.597 +0 63 V 43.598 +stroke 43.599 +3180 308 M 43.600 +[ [(Helvetica) 140.0 0.0 true true 0 ( 6000)] 43.601 +] -46.7 MCshow 43.602 +1.000 UL 43.603 +LTb 43.604 +3623 448 M 43.605 +0 63 V 43.606 +stroke 43.607 +3623 308 M 43.608 +[ [(Helvetica) 140.0 0.0 true true 0 ( 7000)] 43.609 +] -46.7 MCshow 43.610 +1.000 UL 43.611 +LTb 43.612 +4067 448 M 43.613 +0 63 V 43.614 +stroke 43.615 +4067 308 M 43.616 +[ [(Helvetica) 140.0 0.0 true true 0 ( 8000)] 43.617 +] -46.7 MCshow 43.618 +1.000 UL 43.619 +LTb 43.620 +1.000 UL 43.621 +LTb 43.622 +518 2855 M 43.623 +518 448 L 43.624 +3549 0 V 43.625 +0 2407 R 43.626 +-3549 0 R 43.627 +stroke 43.628 +LCb setrgbcolor 43.629 +112 1651 M 43.630 +currentpoint gsave translate -270 rotate 0 0 moveto 43.631 +[ [(Helvetica) 140.0 0.0 true true 0 (Ratio of Total Execution to Total Work)] 43.632 +] -46.7 MCshow 43.633 +grestore 43.634 +LTb 43.635 +LCb setrgbcolor 43.636 +2292 98 M 43.637 +[ [(Helvetica) 140.0 0.0 true true 0 (Cycles in one Task)] 43.638 +] -46.7 MCshow 43.639 +LTb 43.640 +1.000 UP 43.641 +1.000 UL 43.642 +LTb 43.643 +1.000 UL 43.644 +LTb 43.645 +2492 2232 N 43.646 +0 560 V 43.647 +1491 0 V 43.648 +0 -560 V 43.649 +-1491 0 V 43.650 +Z stroke 43.651 +2492 2792 M 43.652 +1491 0 V 43.653 +% Begin plot #1 43.654 +stroke 43.655 +3.000 UL 43.656 +LT1 43.657 +LCa setrgbcolor 43.658 +518 792 M 43.659 +36 0 V 43.660 +36 0 V 43.661 +36 0 V 43.662 +35 0 V 43.663 +36 0 V 43.664 +36 0 V 43.665 +36 0 V 43.666 +36 0 V 43.667 +36 0 V 43.668 +35 0 V 43.669 +36 0 V 43.670 +36 0 V 43.671 +36 0 V 43.672 +36 0 V 43.673 +36 0 V 43.674 +36 0 V 43.675 +35 0 V 43.676 +36 0 V 43.677 +36 0 V 43.678 +36 0 V 43.679 +36 0 V 43.680 +36 0 V 43.681 +36 0 V 43.682 +35 0 V 43.683 +36 0 V 43.684 +36 0 V 43.685 +36 0 V 43.686 +36 0 V 43.687 +36 0 V 43.688 +35 0 V 43.689 +36 0 V 43.690 +36 0 V 43.691 +36 0 V 43.692 +36 0 V 43.693 +36 0 V 43.694 +36 0 V 43.695 +35 0 V 43.696 +36 0 V 43.697 +36 0 V 43.698 +36 0 V 43.699 +36 0 V 43.700 +36 0 V 43.701 +35 0 V 43.702 +36 0 V 43.703 +36 0 V 43.704 +36 0 V 43.705 +36 0 V 43.706 +36 0 V 43.707 +36 0 V 43.708 +35 0 V 43.709 +36 0 V 43.710 +36 0 V 43.711 +36 0 V 43.712 +36 0 V 43.713 +36 0 V 43.714 +36 0 V 43.715 +35 0 V 43.716 +36 0 V 43.717 +36 0 V 43.718 +36 0 V 43.719 +36 0 V 43.720 +36 0 V 43.721 +35 0 V 43.722 +36 0 V 43.723 +36 0 V 43.724 +36 0 V 43.725 +36 0 V 43.726 +36 0 V 43.727 +36 0 V 43.728 +35 0 V 43.729 +36 0 V 43.730 +36 0 V 43.731 +36 0 V 43.732 +36 0 V 43.733 +36 0 V 43.734 +35 0 V 43.735 +36 0 V 43.736 +36 0 V 43.737 +36 0 V 43.738 +36 0 V 43.739 +36 0 V 43.740 +36 0 V 43.741 +35 0 V 43.742 +36 0 V 43.743 +36 0 V 43.744 +36 0 V 43.745 +36 0 V 43.746 +36 0 V 43.747 +36 0 V 43.748 +35 0 V 43.749 +36 0 V 43.750 +36 0 V 43.751 +36 0 V 43.752 +36 0 V 43.753 +36 0 V 43.754 +35 0 V 43.755 +36 0 V 43.756 +36 0 V 43.757 +36 0 V 43.758 +% End plot #1 43.759 +% Begin plot #2 43.760 +stroke 43.761 +4.000 UL 43.762 +LT1 43.763 +LCb setrgbcolor 43.764 +3416 2722 M 43.765 +[ [(Helvetica) 140.0 0.0 true true 0 (8 Threads)] 43.766 +] -46.7 MRshow 43.767 +LT1 43.768 +3500 2722 M 43.769 +399 0 V 43.770 +572 2677 M 43.771 +16 -429 V 43.772 +24 -559 V 43.773 +55 -454 V 43.774 +774 920 L 43.775 +987 706 L 43.776 +1411 563 L 43.777 +852 -54 V 43.778 +3966 478 L 43.779 +% End plot #2 43.780 +% Begin plot #3 43.781 +stroke 43.782 +LT2 43.783 +LCb setrgbcolor 43.784 +3416 2582 M 43.785 +[ [(Helvetica) 140.0 0.0 true true 0 (32 Threads)] 43.786 +] -46.7 MRshow 43.787 +LT2 43.788 +3500 2582 M 43.789 +399 0 V 43.790 +571 2168 M 43.791 +17 -436 V 43.792 +24 -217 V 43.793 +55 -464 V 43.794 +774 801 L 43.795 +986 651 L 43.796 +1412 549 L 43.797 +852 -55 V 43.798 +3966 472 L 43.799 +% End plot #3 43.800 +% Begin plot #4 43.801 +stroke 43.802 +LT3 43.803 +LCb setrgbcolor 43.804 +3416 2442 M 43.805 +[ [(Helvetica) 140.0 0.0 true true 0 (128 Threads)] 43.806 +] -46.7 MRshow 43.807 +LT3 43.808 +3500 2442 M 43.809 +399 0 V 43.810 +572 2234 M 43.811 +16 -381 V 43.812 +26 -417 V 43.813 +53 -317 V 43.814 +773 823 L 43.815 +987 656 L 43.816 +1412 553 L 43.817 +852 -51 V 43.818 +3968 472 L 43.819 +% End plot #4 43.820 +% Begin plot #5 43.821 +stroke 43.822 +LT4 43.823 +LCb setrgbcolor 43.824 +3416 2302 M 43.825 +[ [(Helvetica) 140.0 0.0 true true 0 (512 Threads)] 43.826 +] -46.7 MRshow 43.827 +LT4 43.828 +3500 2302 M 43.829 +399 0 V 43.830 +572 2389 M 43.831 +14 -445 V 43.832 +27 -449 V 43.833 +54 -383 V 43.834 +772 837 L 43.835 +985 659 L 43.836 +1411 552 L 43.837 +853 -52 V 43.838 +3968 473 L 43.839 +% End plot #5 43.840 +stroke 43.841 +1.000 UL 43.842 +LTb 43.843 +518 2855 M 43.844 +518 448 L 43.845 +3549 0 V 43.846 +0 2407 R 43.847 +-3549 0 R 43.848 +1.000 UP 43.849 +stroke 43.850 +grestore 43.851 +end 43.852 +showpage 43.853 +%%Trailer 43.854 +%%DocumentFonts: Helvetica 43.855 +%%Pages: 1
44.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 44.2 +++ b/0__Papers/PRT/PRT__formal_def/figures/plots_exec_vs_task_size/not_used/xoanon_pthreads_40cores_80_160_320_640thds__o30000__perfCtrs.result.eps Sat Aug 03 19:24:22 2013 -0700 44.3 @@ -0,0 +1,699 @@ 44.4 +%!PS-Adobe-2.0 44.5 +%%Title: xoanon_pthreads_40cores_80_160_320_640thds__o30000__perfCtrs.result.eps 44.6 +%%Creator: gnuplot 4.4 patchlevel 2 44.7 +%%CreationDate: Thu Jan 26 18:22:29 2012 44.8 +%%DocumentFonts: (atend) 44.9 +%%BoundingBox: 251 50 554 482 44.10 +%%Orientation: Landscape 44.11 +%%Pages: (atend) 44.12 +%%EndComments 44.13 +%%BeginProlog 44.14 +/gnudict 256 dict def 44.15 +gnudict begin 44.16 +% 44.17 +% The following true/false flags may be edited by hand if desired. 44.18 +% The unit line width and grayscale image gamma correction may also be changed. 44.19 +% 44.20 +/Color true def 44.21 +/Blacktext false def 44.22 +/Solid false def 44.23 +/Dashlength 1 def 44.24 +/Landscape true def 44.25 +/Level1 false def 44.26 +/Rounded false def 44.27 +/ClipToBoundingBox false def 44.28 +/TransparentPatterns false def 44.29 +/gnulinewidth 5.000 def 44.30 +/userlinewidth gnulinewidth def 44.31 +/Gamma 1.0 def 44.32 +% 44.33 +/vshift -46 def 44.34 +/dl1 { 44.35 + 10.0 Dashlength mul mul 44.36 + Rounded { currentlinewidth 0.75 mul sub dup 0 le { pop 0.01 } if } if 44.37 +} def 44.38 +/dl2 { 44.39 + 10.0 Dashlength mul mul 44.40 + Rounded { currentlinewidth 0.75 mul add } if 44.41 +} def 44.42 +/hpt_ 31.5 def 44.43 +/vpt_ 31.5 def 44.44 +/hpt hpt_ def 44.45 +/vpt vpt_ def 44.46 +Level1 {} { 44.47 +/SDict 10 dict def 44.48 +systemdict /pdfmark known not { 44.49 + userdict /pdfmark systemdict /cleartomark get put 44.50 +} if 44.51 +SDict begin [ 44.52 + /Title (xoanon_pthreads_40cores_80_160_320_640thds__o30000__perfCtrs.result.eps) 44.53 + /Subject (gnuplot plot) 44.54 + /Creator (gnuplot 4.4 patchlevel 2) 44.55 + /Author (msach) 44.56 +% /Producer (gnuplot) 44.57 +% /Keywords () 44.58 + /CreationDate (Thu Jan 26 18:22:29 2012) 44.59 + /DOCINFO pdfmark 44.60 +end 44.61 +} ifelse 44.62 +/doclip { 44.63 + ClipToBoundingBox { 44.64 + newpath 251 50 moveto 554 50 lineto 554 482 lineto 251 482 lineto closepath 44.65 + clip 44.66 + } if 44.67 +} def 44.68 +% 44.69 +% Gnuplot Prolog Version 4.4 (August 2010) 44.70 +% 44.71 +%/SuppressPDFMark true def 44.72 +% 44.73 +/M {moveto} bind def 44.74 +/L {lineto} bind def 44.75 +/R {rmoveto} bind def 44.76 +/V {rlineto} bind def 44.77 +/N {newpath moveto} bind def 44.78 +/Z {closepath} bind def 44.79 +/C {setrgbcolor} bind def 44.80 +/f {rlineto fill} bind def 44.81 +/g {setgray} bind def 44.82 +/Gshow {show} def % May be redefined later in the file to support UTF-8 44.83 +/vpt2 vpt 2 mul def 44.84 +/hpt2 hpt 2 mul def 44.85 +/Lshow {currentpoint stroke M 0 vshift R 44.86 + Blacktext {gsave 0 setgray show grestore} {show} ifelse} def 44.87 +/Rshow {currentpoint stroke M dup stringwidth pop neg vshift R 44.88 + Blacktext {gsave 0 setgray show grestore} {show} ifelse} def 44.89 +/Cshow {currentpoint stroke M dup stringwidth pop -2 div vshift R 44.90 + Blacktext {gsave 0 setgray show grestore} {show} ifelse} def 44.91 +/UP {dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def 44.92 + /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def} def 44.93 +/DL {Color {setrgbcolor Solid {pop []} if 0 setdash} 44.94 + {pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse} def 44.95 +/BL {stroke userlinewidth 2 mul setlinewidth 44.96 + Rounded {1 setlinejoin 1 setlinecap} if} def 44.97 +/AL {stroke userlinewidth 2 div setlinewidth 44.98 + Rounded {1 setlinejoin 1 setlinecap} if} def 44.99 +/UL {dup gnulinewidth mul /userlinewidth exch def 44.100 + dup 1 lt {pop 1} if 10 mul /udl exch def} def 44.101 +/PL {stroke userlinewidth setlinewidth 44.102 + Rounded {1 setlinejoin 1 setlinecap} if} def 44.103 +3.8 setmiterlimit 44.104 +% Default Line colors 44.105 +/LCw {1 1 1} def 44.106 +/LCb {0 0 0} def 44.107 +/LCa {0 0 0} def 44.108 +/LC0 {1 0 0} def 44.109 +/LC1 {0 1 0} def 44.110 +/LC2 {0 0 1} def 44.111 +/LC3 {1 0 1} def 44.112 +/LC4 {0 1 1} def 44.113 +/LC5 {1 1 0} def 44.114 +/LC6 {0 0 0} def 44.115 +/LC7 {1 0.3 0} def 44.116 +/LC8 {0.5 0.5 0.5} def 44.117 +% Default Line Types 44.118 +/LTw {PL [] 1 setgray} def 44.119 +/LTb {BL [] LCb DL} def 44.120 +/LTa {AL [1 udl mul 2 udl mul] 0 setdash LCa setrgbcolor} def 44.121 +/LT0 {PL [] LC0 DL} def 44.122 +/LT1 {PL [4 dl1 2 dl2] LC1 DL} def 44.123 +/LT2 {PL [2 dl1 3 dl2] LC2 DL} def 44.124 +/LT3 {PL [1 dl1 1.5 dl2] LC3 DL} def 44.125 +/LT4 {PL [6 dl1 2 dl2 1 dl1 2 dl2] LC4 DL} def 44.126 +/LT5 {PL [3 dl1 3 dl2 1 dl1 3 dl2] LC5 DL} def 44.127 +/LT6 {PL [2 dl1 2 dl2 2 dl1 6 dl2] LC6 DL} def 44.128 +/LT7 {PL [1 dl1 2 dl2 6 dl1 2 dl2 1 dl1 2 dl2] LC7 DL} def 44.129 +/LT8 {PL [2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 4 dl2] LC8 DL} def 44.130 +/Pnt {stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore} def 44.131 +/Dia {stroke [] 0 setdash 2 copy vpt add M 44.132 + hpt neg vpt neg V hpt vpt neg V 44.133 + hpt vpt V hpt neg vpt V closepath stroke 44.134 + Pnt} def 44.135 +/Pls {stroke [] 0 setdash vpt sub M 0 vpt2 V 44.136 + currentpoint stroke M 44.137 + hpt neg vpt neg R hpt2 0 V stroke 44.138 + } def 44.139 +/Box {stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M 44.140 + 0 vpt2 neg V hpt2 0 V 0 vpt2 V 44.141 + hpt2 neg 0 V closepath stroke 44.142 + Pnt} def 44.143 +/Crs {stroke [] 0 setdash exch hpt sub exch vpt add M 44.144 + hpt2 vpt2 neg V currentpoint stroke M 44.145 + hpt2 neg 0 R hpt2 vpt2 V stroke} def 44.146 +/TriU {stroke [] 0 setdash 2 copy vpt 1.12 mul add M 44.147 + hpt neg vpt -1.62 mul V 44.148 + hpt 2 mul 0 V 44.149 + hpt neg vpt 1.62 mul V closepath stroke 44.150 + Pnt} def 44.151 +/Star {2 copy Pls Crs} def 44.152 +/BoxF {stroke [] 0 setdash exch hpt sub exch vpt add M 44.153 + 0 vpt2 neg V hpt2 0 V 0 vpt2 V 44.154 + hpt2 neg 0 V closepath fill} def 44.155 +/TriUF {stroke [] 0 setdash vpt 1.12 mul add M 44.156 + hpt neg vpt -1.62 mul V 44.157 + hpt 2 mul 0 V 44.158 + hpt neg vpt 1.62 mul V closepath fill} def 44.159 +/TriD {stroke [] 0 setdash 2 copy vpt 1.12 mul sub M 44.160 + hpt neg vpt 1.62 mul V 44.161 + hpt 2 mul 0 V 44.162 + hpt neg vpt -1.62 mul V closepath stroke 44.163 + Pnt} def 44.164 +/TriDF {stroke [] 0 setdash vpt 1.12 mul sub M 44.165 + hpt neg vpt 1.62 mul V 44.166 + hpt 2 mul 0 V 44.167 + hpt neg vpt -1.62 mul V closepath fill} def 44.168 +/DiaF {stroke [] 0 setdash vpt add M 44.169 + hpt neg vpt neg V hpt vpt neg V 44.170 + hpt vpt V hpt neg vpt V closepath fill} def 44.171 +/Pent {stroke [] 0 setdash 2 copy gsave 44.172 + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat 44.173 + closepath stroke grestore Pnt} def 44.174 +/PentF {stroke [] 0 setdash gsave 44.175 + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat 44.176 + closepath fill grestore} def 44.177 +/Circle {stroke [] 0 setdash 2 copy 44.178 + hpt 0 360 arc stroke Pnt} def 44.179 +/CircleF {stroke [] 0 setdash hpt 0 360 arc fill} def 44.180 +/C0 {BL [] 0 setdash 2 copy moveto vpt 90 450 arc} bind def 44.181 +/C1 {BL [] 0 setdash 2 copy moveto 44.182 + 2 copy vpt 0 90 arc closepath fill 44.183 + vpt 0 360 arc closepath} bind def 44.184 +/C2 {BL [] 0 setdash 2 copy moveto 44.185 + 2 copy vpt 90 180 arc closepath fill 44.186 + vpt 0 360 arc closepath} bind def 44.187 +/C3 {BL [] 0 setdash 2 copy moveto 44.188 + 2 copy vpt 0 180 arc closepath fill 44.189 + vpt 0 360 arc closepath} bind def 44.190 +/C4 {BL [] 0 setdash 2 copy moveto 44.191 + 2 copy vpt 180 270 arc closepath fill 44.192 + vpt 0 360 arc closepath} bind def 44.193 +/C5 {BL [] 0 setdash 2 copy moveto 44.194 + 2 copy vpt 0 90 arc 44.195 + 2 copy moveto 44.196 + 2 copy vpt 180 270 arc closepath fill 44.197 + vpt 0 360 arc} bind def 44.198 +/C6 {BL [] 0 setdash 2 copy moveto 44.199 + 2 copy vpt 90 270 arc closepath fill 44.200 + vpt 0 360 arc closepath} bind def 44.201 +/C7 {BL [] 0 setdash 2 copy moveto 44.202 + 2 copy vpt 0 270 arc closepath fill 44.203 + vpt 0 360 arc closepath} bind def 44.204 +/C8 {BL [] 0 setdash 2 copy moveto 44.205 + 2 copy vpt 270 360 arc closepath fill 44.206 + vpt 0 360 arc closepath} bind def 44.207 +/C9 {BL [] 0 setdash 2 copy moveto 44.208 + 2 copy vpt 270 450 arc closepath fill 44.209 + vpt 0 360 arc closepath} bind def 44.210 +/C10 {BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill 44.211 + 2 copy moveto 44.212 + 2 copy vpt 90 180 arc closepath fill 44.213 + vpt 0 360 arc closepath} bind def 44.214 +/C11 {BL [] 0 setdash 2 copy moveto 44.215 + 2 copy vpt 0 180 arc closepath fill 44.216 + 2 copy moveto 44.217 + 2 copy vpt 270 360 arc closepath fill 44.218 + vpt 0 360 arc closepath} bind def 44.219 +/C12 {BL [] 0 setdash 2 copy moveto 44.220 + 2 copy vpt 180 360 arc closepath fill 44.221 + vpt 0 360 arc closepath} bind def 44.222 +/C13 {BL [] 0 setdash 2 copy moveto 44.223 + 2 copy vpt 0 90 arc closepath fill 44.224 + 2 copy moveto 44.225 + 2 copy vpt 180 360 arc closepath fill 44.226 + vpt 0 360 arc closepath} bind def 44.227 +/C14 {BL [] 0 setdash 2 copy moveto 44.228 + 2 copy vpt 90 360 arc closepath fill 44.229 + vpt 0 360 arc} bind def 44.230 +/C15 {BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill 44.231 + vpt 0 360 arc closepath} bind def 44.232 +/Rec {newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto 44.233 + neg 0 rlineto closepath} bind def 44.234 +/Square {dup Rec} bind def 44.235 +/Bsquare {vpt sub exch vpt sub exch vpt2 Square} bind def 44.236 +/S0 {BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare} bind def 44.237 +/S1 {BL [] 0 setdash 2 copy vpt Square fill Bsquare} bind def 44.238 +/S2 {BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def 44.239 +/S3 {BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare} bind def 44.240 +/S4 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def 44.241 +/S5 {BL [] 0 setdash 2 copy 2 copy vpt Square fill 44.242 + exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def 44.243 +/S6 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare} bind def 44.244 +/S7 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill 44.245 + 2 copy vpt Square fill Bsquare} bind def 44.246 +/S8 {BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare} bind def 44.247 +/S9 {BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare} bind def 44.248 +/S10 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill 44.249 + Bsquare} bind def 44.250 +/S11 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill 44.251 + Bsquare} bind def 44.252 +/S12 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare} bind def 44.253 +/S13 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 44.254 + 2 copy vpt Square fill Bsquare} bind def 44.255 +/S14 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 44.256 + 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def 44.257 +/S15 {BL [] 0 setdash 2 copy Bsquare fill Bsquare} bind def 44.258 +/D0 {gsave translate 45 rotate 0 0 S0 stroke grestore} bind def 44.259 +/D1 {gsave translate 45 rotate 0 0 S1 stroke grestore} bind def 44.260 +/D2 {gsave translate 45 rotate 0 0 S2 stroke grestore} bind def 44.261 +/D3 {gsave translate 45 rotate 0 0 S3 stroke grestore} bind def 44.262 +/D4 {gsave translate 45 rotate 0 0 S4 stroke grestore} bind def 44.263 +/D5 {gsave translate 45 rotate 0 0 S5 stroke grestore} bind def 44.264 +/D6 {gsave translate 45 rotate 0 0 S6 stroke grestore} bind def 44.265 +/D7 {gsave translate 45 rotate 0 0 S7 stroke grestore} bind def 44.266 +/D8 {gsave translate 45 rotate 0 0 S8 stroke grestore} bind def 44.267 +/D9 {gsave translate 45 rotate 0 0 S9 stroke grestore} bind def 44.268 +/D10 {gsave translate 45 rotate 0 0 S10 stroke grestore} bind def 44.269 +/D11 {gsave translate 45 rotate 0 0 S11 stroke grestore} bind def 44.270 +/D12 {gsave translate 45 rotate 0 0 S12 stroke grestore} bind def 44.271 +/D13 {gsave translate 45 rotate 0 0 S13 stroke grestore} bind def 44.272 +/D14 {gsave translate 45 rotate 0 0 S14 stroke grestore} bind def 44.273 +/D15 {gsave translate 45 rotate 0 0 S15 stroke grestore} bind def 44.274 +/DiaE {stroke [] 0 setdash vpt add M 44.275 + hpt neg vpt neg V hpt vpt neg V 44.276 + hpt vpt V hpt neg vpt V closepath stroke} def 44.277 +/BoxE {stroke [] 0 setdash exch hpt sub exch vpt add M 44.278 + 0 vpt2 neg V hpt2 0 V 0 vpt2 V 44.279 + hpt2 neg 0 V closepath stroke} def 44.280 +/TriUE {stroke [] 0 setdash vpt 1.12 mul add M 44.281 + hpt neg vpt -1.62 mul V 44.282 + hpt 2 mul 0 V 44.283 + hpt neg vpt 1.62 mul V closepath stroke} def 44.284 +/TriDE {stroke [] 0 setdash vpt 1.12 mul sub M 44.285 + hpt neg vpt 1.62 mul V 44.286 + hpt 2 mul 0 V 44.287 + hpt neg vpt -1.62 mul V closepath stroke} def 44.288 +/PentE {stroke [] 0 setdash gsave 44.289 + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat 44.290 + closepath stroke grestore} def 44.291 +/CircE {stroke [] 0 setdash 44.292 + hpt 0 360 arc stroke} def 44.293 +/Opaque {gsave closepath 1 setgray fill grestore 0 setgray closepath} def 44.294 +/DiaW {stroke [] 0 setdash vpt add M 44.295 + hpt neg vpt neg V hpt vpt neg V 44.296 + hpt vpt V hpt neg vpt V Opaque stroke} def 44.297 +/BoxW {stroke [] 0 setdash exch hpt sub exch vpt add M 44.298 + 0 vpt2 neg V hpt2 0 V 0 vpt2 V 44.299 + hpt2 neg 0 V Opaque stroke} def 44.300 +/TriUW {stroke [] 0 setdash vpt 1.12 mul add M 44.301 + hpt neg vpt -1.62 mul V 44.302 + hpt 2 mul 0 V 44.303 + hpt neg vpt 1.62 mul V Opaque stroke} def 44.304 +/TriDW {stroke [] 0 setdash vpt 1.12 mul sub M 44.305 + hpt neg vpt 1.62 mul V 44.306 + hpt 2 mul 0 V 44.307 + hpt neg vpt -1.62 mul V Opaque stroke} def 44.308 +/PentW {stroke [] 0 setdash gsave 44.309 + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat 44.310 + Opaque stroke grestore} def 44.311 +/CircW {stroke [] 0 setdash 44.312 + hpt 0 360 arc Opaque stroke} def 44.313 +/BoxFill {gsave Rec 1 setgray fill grestore} def 44.314 +/Density { 44.315 + /Fillden exch def 44.316 + currentrgbcolor 44.317 + /ColB exch def /ColG exch def /ColR exch def 44.318 + /ColR ColR Fillden mul Fillden sub 1 add def 44.319 + /ColG ColG Fillden mul Fillden sub 1 add def 44.320 + /ColB ColB Fillden mul Fillden sub 1 add def 44.321 + ColR ColG ColB setrgbcolor} def 44.322 +/BoxColFill {gsave Rec PolyFill} def 44.323 +/PolyFill {gsave Density fill grestore grestore} def 44.324 +/h {rlineto rlineto rlineto gsave closepath fill grestore} bind def 44.325 +% 44.326 +% PostScript Level 1 Pattern Fill routine for rectangles 44.327 +% Usage: x y w h s a XX PatternFill 44.328 +% x,y = lower left corner of box to be filled 44.329 +% w,h = width and height of box 44.330 +% a = angle in degrees between lines and x-axis 44.331 +% XX = 0/1 for no/yes cross-hatch 44.332 +% 44.333 +/PatternFill {gsave /PFa [ 9 2 roll ] def 44.334 + PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate 44.335 + PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec 44.336 + gsave 1 setgray fill grestore clip 44.337 + currentlinewidth 0.5 mul setlinewidth 44.338 + /PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def 44.339 + 0 0 M PFa 5 get rotate PFs -2 div dup translate 44.340 + 0 1 PFs PFa 4 get div 1 add floor cvi 44.341 + {PFa 4 get mul 0 M 0 PFs V} for 44.342 + 0 PFa 6 get ne { 44.343 + 0 1 PFs PFa 4 get div 1 add floor cvi 44.344 + {PFa 4 get mul 0 2 1 roll M PFs 0 V} for 44.345 + } if 44.346 + stroke grestore} def 44.347 +% 44.348 +/languagelevel where 44.349 + {pop languagelevel} {1} ifelse 44.350 + 2 lt 44.351 + {/InterpretLevel1 true def} 44.352 + {/InterpretLevel1 Level1 def} 44.353 + ifelse 44.354 +% 44.355 +% PostScript level 2 pattern fill definitions 44.356 +% 44.357 +/Level2PatternFill { 44.358 +/Tile8x8 {/PaintType 2 /PatternType 1 /TilingType 1 /BBox [0 0 8 8] /XStep 8 /YStep 8} 44.359 + bind def 44.360 +/KeepColor {currentrgbcolor [/Pattern /DeviceRGB] setcolorspace} bind def 44.361 +<< Tile8x8 44.362 + /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke} 44.363 +>> matrix makepattern 44.364 +/Pat1 exch def 44.365 +<< Tile8x8 44.366 + /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke 44.367 + 0 4 M 4 8 L 8 4 L 4 0 L 0 4 L stroke} 44.368 +>> matrix makepattern 44.369 +/Pat2 exch def 44.370 +<< Tile8x8 44.371 + /PaintProc {0.5 setlinewidth pop 0 0 M 0 8 L 44.372 + 8 8 L 8 0 L 0 0 L fill} 44.373 +>> matrix makepattern 44.374 +/Pat3 exch def 44.375 +<< Tile8x8 44.376 + /PaintProc {0.5 setlinewidth pop -4 8 M 8 -4 L 44.377 + 0 12 M 12 0 L stroke} 44.378 +>> matrix makepattern 44.379 +/Pat4 exch def 44.380 +<< Tile8x8 44.381 + /PaintProc {0.5 setlinewidth pop -4 0 M 8 12 L 44.382 + 0 -4 M 12 8 L stroke} 44.383 +>> matrix makepattern 44.384 +/Pat5 exch def 44.385 +<< Tile8x8 44.386 + /PaintProc {0.5 setlinewidth pop -2 8 M 4 -4 L 44.387 + 0 12 M 8 -4 L 4 12 M 10 0 L stroke} 44.388 +>> matrix makepattern 44.389 +/Pat6 exch def 44.390 +<< Tile8x8 44.391 + /PaintProc {0.5 setlinewidth pop -2 0 M 4 12 L 44.392 + 0 -4 M 8 12 L 4 -4 M 10 8 L stroke} 44.393 +>> matrix makepattern 44.394 +/Pat7 exch def 44.395 +<< Tile8x8 44.396 + /PaintProc {0.5 setlinewidth pop 8 -2 M -4 4 L 44.397 + 12 0 M -4 8 L 12 4 M 0 10 L stroke} 44.398 +>> matrix makepattern 44.399 +/Pat8 exch def 44.400 +<< Tile8x8 44.401 + /PaintProc {0.5 setlinewidth pop 0 -2 M 12 4 L 44.402 + -4 0 M 12 8 L -4 4 M 8 10 L stroke} 44.403 +>> matrix makepattern 44.404 +/Pat9 exch def 44.405 +/Pattern1 {PatternBgnd KeepColor Pat1 setpattern} bind def 44.406 +/Pattern2 {PatternBgnd KeepColor Pat2 setpattern} bind def 44.407 +/Pattern3 {PatternBgnd KeepColor Pat3 setpattern} bind def 44.408 +/Pattern4 {PatternBgnd KeepColor Landscape {Pat5} {Pat4} ifelse setpattern} bind def 44.409 +/Pattern5 {PatternBgnd KeepColor Landscape {Pat4} {Pat5} ifelse setpattern} bind def 44.410 +/Pattern6 {PatternBgnd KeepColor Landscape {Pat9} {Pat6} ifelse setpattern} bind def 44.411 +/Pattern7 {PatternBgnd KeepColor Landscape {Pat8} {Pat7} ifelse setpattern} bind def 44.412 +} def 44.413 +% 44.414 +% 44.415 +%End of PostScript Level 2 code 44.416 +% 44.417 +/PatternBgnd { 44.418 + TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse 44.419 +} def 44.420 +% 44.421 +% Substitute for Level 2 pattern fill codes with 44.422 +% grayscale if Level 2 support is not selected. 44.423 +% 44.424 +/Level1PatternFill { 44.425 +/Pattern1 {0.250 Density} bind def 44.426 +/Pattern2 {0.500 Density} bind def 44.427 +/Pattern3 {0.750 Density} bind def 44.428 +/Pattern4 {0.125 Density} bind def 44.429 +/Pattern5 {0.375 Density} bind def 44.430 +/Pattern6 {0.625 Density} bind def 44.431 +/Pattern7 {0.875 Density} bind def 44.432 +} def 44.433 +% 44.434 +% Now test for support of Level 2 code 44.435 +% 44.436 +Level1 {Level1PatternFill} {Level2PatternFill} ifelse 44.437 +% 44.438 +/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont 44.439 +dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall 44.440 +currentdict end definefont pop 44.441 +/MFshow { 44.442 + { dup 5 get 3 ge 44.443 + { 5 get 3 eq {gsave} {grestore} ifelse } 44.444 + {dup dup 0 get findfont exch 1 get scalefont setfont 44.445 + [ currentpoint ] exch dup 2 get 0 exch R dup 5 get 2 ne {dup dup 6 44.446 + get exch 4 get {Gshow} {stringwidth pop 0 R} ifelse }if dup 5 get 0 eq 44.447 + {dup 3 get {2 get neg 0 exch R pop} {pop aload pop M} ifelse} {dup 5 44.448 + get 1 eq {dup 2 get exch dup 3 get exch 6 get stringwidth pop -2 div 44.449 + dup 0 R} {dup 6 get stringwidth pop -2 div 0 R 6 get 44.450 + show 2 index {aload pop M neg 3 -1 roll neg R pop pop} {pop pop pop 44.451 + pop aload pop M} ifelse }ifelse }ifelse } 44.452 + ifelse } 44.453 + forall} def 44.454 +/Gswidth {dup type /stringtype eq {stringwidth} {pop (n) stringwidth} ifelse} def 44.455 +/MFwidth {0 exch { dup 5 get 3 ge { 5 get 3 eq { 0 } { pop } ifelse } 44.456 + {dup 3 get{dup dup 0 get findfont exch 1 get scalefont setfont 44.457 + 6 get Gswidth pop add} {pop} ifelse} ifelse} forall} def 44.458 +/MLshow { currentpoint stroke M 44.459 + 0 exch R 44.460 + Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def 44.461 +/MRshow { currentpoint stroke M 44.462 + exch dup MFwidth neg 3 -1 roll R 44.463 + Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def 44.464 +/MCshow { currentpoint stroke M 44.465 + exch dup MFwidth -2 div 3 -1 roll R 44.466 + Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def 44.467 +/XYsave { [( ) 1 2 true false 3 ()] } bind def 44.468 +/XYrestore { [( ) 1 2 true false 4 ()] } bind def 44.469 +end 44.470 +%%EndProlog 44.471 +%%Page: 1 1 44.472 +gnudict begin 44.473 +gsave 44.474 +doclip 44.475 +50 50 translate 44.476 +0.100 0.100 scale 44.477 +90 rotate 44.478 +0 -5040 translate 44.479 +0 setgray 44.480 +newpath 44.481 +(Helvetica) findfont 140 scalefont setfont 44.482 +1.000 UL 44.483 +LTb 44.484 +686 922 M 44.485 +63 0 V 44.486 +stroke 44.487 +602 922 M 44.488 +[ [(Helvetica) 140.0 0.0 true true 0 ( 50)] 44.489 +] -46.7 MRshow 44.490 +1.000 UL 44.491 +LTb 44.492 +686 1405 M 44.493 +63 0 V 44.494 +stroke 44.495 +602 1405 M 44.496 +[ [(Helvetica) 140.0 0.0 true true 0 ( 100)] 44.497 +] -46.7 MRshow 44.498 +1.000 UL 44.499 +LTb 44.500 +686 1888 M 44.501 +63 0 V 44.502 +stroke 44.503 +602 1888 M 44.504 +[ [(Helvetica) 140.0 0.0 true true 0 ( 150)] 44.505 +] -46.7 MRshow 44.506 +1.000 UL 44.507 +LTb 44.508 +686 2372 M 44.509 +63 0 V 44.510 +stroke 44.511 +602 2372 M 44.512 +[ [(Helvetica) 140.0 0.0 true true 0 ( 200)] 44.513 +] -46.7 MRshow 44.514 +1.000 UL 44.515 +LTb 44.516 +686 2855 M 44.517 +63 0 V 44.518 +stroke 44.519 +602 2855 M 44.520 +[ [(Helvetica) 140.0 0.0 true true 0 ( 250)] 44.521 +] -46.7 MRshow 44.522 +1.000 UL 44.523 +LTb 44.524 +686 448 M 44.525 +0 63 V 44.526 +stroke 44.527 +686 308 M 44.528 +[ [(Helvetica) 140.0 0.0 true true 0 ( 0)] 44.529 +] -46.7 MCshow 44.530 +1.000 UL 44.531 +LTb 44.532 +1109 448 M 44.533 +0 63 V 44.534 +stroke 44.535 +1109 308 M 44.536 +[ [(Helvetica) 140.0 0.0 true true 0 ( 1000)] 44.537 +] -46.7 MCshow 44.538 +1.000 UL 44.539 +LTb 44.540 +1531 448 M 44.541 +0 63 V 44.542 +stroke 44.543 +1531 308 M 44.544 +[ [(Helvetica) 140.0 0.0 true true 0 ( 2000)] 44.545 +] -46.7 MCshow 44.546 +1.000 UL 44.547 +LTb 44.548 +1954 448 M 44.549 +0 63 V 44.550 +stroke 44.551 +1954 308 M 44.552 +[ [(Helvetica) 140.0 0.0 true true 0 ( 3000)] 44.553 +] -46.7 MCshow 44.554 +1.000 UL 44.555 +LTb 44.556 +2377 448 M 44.557 +0 63 V 44.558 +stroke 44.559 +2377 308 M 44.560 +[ [(Helvetica) 140.0 0.0 true true 0 ( 4000)] 44.561 +] -46.7 MCshow 44.562 +1.000 UL 44.563 +LTb 44.564 +2799 448 M 44.565 +0 63 V 44.566 +stroke 44.567 +2799 308 M 44.568 +[ [(Helvetica) 140.0 0.0 true true 0 ( 5000)] 44.569 +] -46.7 MCshow 44.570 +1.000 UL 44.571 +LTb 44.572 +3222 448 M 44.573 +0 63 V 44.574 +stroke 44.575 +3222 308 M 44.576 +[ [(Helvetica) 140.0 0.0 true true 0 ( 6000)] 44.577 +] -46.7 MCshow 44.578 +1.000 UL 44.579 +LTb 44.580 +3644 448 M 44.581 +0 63 V 44.582 +stroke 44.583 +3644 308 M 44.584 +[ [(Helvetica) 140.0 0.0 true true 0 ( 7000)] 44.585 +] -46.7 MCshow 44.586 +1.000 UL 44.587 +LTb 44.588 +4067 448 M 44.589 +0 63 V 44.590 +stroke 44.591 +4067 308 M 44.592 +[ [(Helvetica) 140.0 0.0 true true 0 ( 8000)] 44.593 +] -46.7 MCshow 44.594 +1.000 UL 44.595 +LTb 44.596 +1.000 UL 44.597 +LTb 44.598 +686 2855 M 44.599 +686 448 L 44.600 +3381 0 V 44.601 +0 2407 R 44.602 +-3381 0 R 44.603 +stroke 44.604 +LCb setrgbcolor 44.605 +112 1651 M 44.606 +currentpoint gsave translate -270 rotate 0 0 moveto 44.607 +[ [(Helvetica) 140.0 0.0 true true 0 (Ratio of Total Execution to Total Work)] 44.608 +] -46.7 MCshow 44.609 +grestore 44.610 +LTb 44.611 +LCb setrgbcolor 44.612 +2376 98 M 44.613 +[ [(Helvetica) 140.0 0.0 true true 0 (Cycles in one Task)] 44.614 +] -46.7 MCshow 44.615 +LTb 44.616 +1.000 UP 44.617 +1.000 UL 44.618 +LTb 44.619 +1.000 UL 44.620 +LTb 44.621 +770 511 N 44.622 +0 560 V 44.623 +1491 0 V 44.624 +0 -560 V 44.625 +770 511 L 44.626 +Z stroke 44.627 +770 1071 M 44.628 +1491 0 V 44.629 +% Begin plot #1 44.630 +stroke 44.631 +4.000 UL 44.632 +LT0 44.633 +LCb setrgbcolor 44.634 +1694 1001 M 44.635 +[ [(Helvetica) 140.0 0.0 true true 0 (80 Threads)] 44.636 +] -46.7 MRshow 44.637 +LT0 44.638 +1778 1001 M 44.639 +399 0 V 44.640 +1735 2855 M 44.641 +662 -919 V 44.642 +4067 1238 L 44.643 +% End plot #1 44.644 +% Begin plot #2 44.645 +stroke 44.646 +LT1 44.647 +LCb setrgbcolor 44.648 +1694 861 M 44.649 +[ [(Helvetica) 140.0 0.0 true true 0 (160 Threads)] 44.650 +] -46.7 MRshow 44.651 +LT1 44.652 +1778 861 M 44.653 +399 0 V 44.654 +1748 2855 M 44.655 +2555 1723 L 44.656 +4067 1065 L 44.657 +% End plot #2 44.658 +% Begin plot #3 44.659 +stroke 44.660 +LT2 44.661 +LCb setrgbcolor 44.662 +1694 721 M 44.663 +[ [(Helvetica) 140.0 0.0 true true 0 (320 Threads)] 44.664 +] -46.7 MRshow 44.665 +LT2 44.666 +1778 721 M 44.667 +399 0 V 44.668 +1420 2855 M 44.669 +170 -542 V 44.670 +784 -867 V 44.671 +3986 870 L 44.672 +% End plot #3 44.673 +% Begin plot #4 44.674 +stroke 44.675 +LT3 44.676 +LCb setrgbcolor 44.677 +1694 581 M 44.678 +[ [(Helvetica) 140.0 0.0 true true 0 (640 Threads)] 44.679 +] -46.7 MRshow 44.680 +LT3 44.681 +1778 581 M 44.682 +399 0 V 44.683 +1802 2855 M 44.684 +572 -574 V 44.685 +4007 1207 L 44.686 +% End plot #4 44.687 +stroke 44.688 +1.000 UL 44.689 +LTb 44.690 +686 2855 M 44.691 +686 448 L 44.692 +3381 0 V 44.693 +0 2407 R 44.694 +-3381 0 R 44.695 +1.000 UP 44.696 +stroke 44.697 +grestore 44.698 +end 44.699 +showpage 44.700 +%%Trailer 44.701 +%%DocumentFonts: Helvetica 44.702 +%%Pages: 1
45.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 45.2 +++ b/0__Papers/PRT/PRT__formal_def/figures/plots_exec_vs_task_size/not_used/xoanon_pthreads_80cores_80_160_320_640thds__o30000__perfCtrs.result.eps Sat Aug 03 19:24:22 2013 -0700 45.3 @@ -0,0 +1,695 @@ 45.4 +%!PS-Adobe-2.0 45.5 +%%Title: xoanon_pthreads_80cores_80_160_320_640thds__o30000__perfCtrs.result.eps 45.6 +%%Creator: gnuplot 4.4 patchlevel 2 45.7 +%%CreationDate: Thu Jan 26 18:23:26 2012 45.8 +%%DocumentFonts: (atend) 45.9 +%%BoundingBox: 251 50 554 482 45.10 +%%Orientation: Landscape 45.11 +%%Pages: (atend) 45.12 +%%EndComments 45.13 +%%BeginProlog 45.14 +/gnudict 256 dict def 45.15 +gnudict begin 45.16 +% 45.17 +% The following true/false flags may be edited by hand if desired. 45.18 +% The unit line width and grayscale image gamma correction may also be changed. 45.19 +% 45.20 +/Color true def 45.21 +/Blacktext false def 45.22 +/Solid false def 45.23 +/Dashlength 1 def 45.24 +/Landscape true def 45.25 +/Level1 false def 45.26 +/Rounded false def 45.27 +/ClipToBoundingBox false def 45.28 +/TransparentPatterns false def 45.29 +/gnulinewidth 5.000 def 45.30 +/userlinewidth gnulinewidth def 45.31 +/Gamma 1.0 def 45.32 +% 45.33 +/vshift -46 def 45.34 +/dl1 { 45.35 + 10.0 Dashlength mul mul 45.36 + Rounded { currentlinewidth 0.75 mul sub dup 0 le { pop 0.01 } if } if 45.37 +} def 45.38 +/dl2 { 45.39 + 10.0 Dashlength mul mul 45.40 + Rounded { currentlinewidth 0.75 mul add } if 45.41 +} def 45.42 +/hpt_ 31.5 def 45.43 +/vpt_ 31.5 def 45.44 +/hpt hpt_ def 45.45 +/vpt vpt_ def 45.46 +Level1 {} { 45.47 +/SDict 10 dict def 45.48 +systemdict /pdfmark known not { 45.49 + userdict /pdfmark systemdict /cleartomark get put 45.50 +} if 45.51 +SDict begin [ 45.52 + /Title (xoanon_pthreads_80cores_80_160_320_640thds__o30000__perfCtrs.result.eps) 45.53 + /Subject (gnuplot plot) 45.54 + /Creator (gnuplot 4.4 patchlevel 2) 45.55 + /Author (msach) 45.56 +% /Producer (gnuplot) 45.57 +% /Keywords () 45.58 + /CreationDate (Thu Jan 26 18:23:26 2012) 45.59 + /DOCINFO pdfmark 45.60 +end 45.61 +} ifelse 45.62 +/doclip { 45.63 + ClipToBoundingBox { 45.64 + newpath 251 50 moveto 554 50 lineto 554 482 lineto 251 482 lineto closepath 45.65 + clip 45.66 + } if 45.67 +} def 45.68 +% 45.69 +% Gnuplot Prolog Version 4.4 (August 2010) 45.70 +% 45.71 +%/SuppressPDFMark true def 45.72 +% 45.73 +/M {moveto} bind def 45.74 +/L {lineto} bind def 45.75 +/R {rmoveto} bind def 45.76 +/V {rlineto} bind def 45.77 +/N {newpath moveto} bind def 45.78 +/Z {closepath} bind def 45.79 +/C {setrgbcolor} bind def 45.80 +/f {rlineto fill} bind def 45.81 +/g {setgray} bind def 45.82 +/Gshow {show} def % May be redefined later in the file to support UTF-8 45.83 +/vpt2 vpt 2 mul def 45.84 +/hpt2 hpt 2 mul def 45.85 +/Lshow {currentpoint stroke M 0 vshift R 45.86 + Blacktext {gsave 0 setgray show grestore} {show} ifelse} def 45.87 +/Rshow {currentpoint stroke M dup stringwidth pop neg vshift R 45.88 + Blacktext {gsave 0 setgray show grestore} {show} ifelse} def 45.89 +/Cshow {currentpoint stroke M dup stringwidth pop -2 div vshift R 45.90 + Blacktext {gsave 0 setgray show grestore} {show} ifelse} def 45.91 +/UP {dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def 45.92 + /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def} def 45.93 +/DL {Color {setrgbcolor Solid {pop []} if 0 setdash} 45.94 + {pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse} def 45.95 +/BL {stroke userlinewidth 2 mul setlinewidth 45.96 + Rounded {1 setlinejoin 1 setlinecap} if} def 45.97 +/AL {stroke userlinewidth 2 div setlinewidth 45.98 + Rounded {1 setlinejoin 1 setlinecap} if} def 45.99 +/UL {dup gnulinewidth mul /userlinewidth exch def 45.100 + dup 1 lt {pop 1} if 10 mul /udl exch def} def 45.101 +/PL {stroke userlinewidth setlinewidth 45.102 + Rounded {1 setlinejoin 1 setlinecap} if} def 45.103 +3.8 setmiterlimit 45.104 +% Default Line colors 45.105 +/LCw {1 1 1} def 45.106 +/LCb {0 0 0} def 45.107 +/LCa {0 0 0} def 45.108 +/LC0 {1 0 0} def 45.109 +/LC1 {0 1 0} def 45.110 +/LC2 {0 0 1} def 45.111 +/LC3 {1 0 1} def 45.112 +/LC4 {0 1 1} def 45.113 +/LC5 {1 1 0} def 45.114 +/LC6 {0 0 0} def 45.115 +/LC7 {1 0.3 0} def 45.116 +/LC8 {0.5 0.5 0.5} def 45.117 +% Default Line Types 45.118 +/LTw {PL [] 1 setgray} def 45.119 +/LTb {BL [] LCb DL} def 45.120 +/LTa {AL [1 udl mul 2 udl mul] 0 setdash LCa setrgbcolor} def 45.121 +/LT0 {PL [] LC0 DL} def 45.122 +/LT1 {PL [4 dl1 2 dl2] LC1 DL} def 45.123 +/LT2 {PL [2 dl1 3 dl2] LC2 DL} def 45.124 +/LT3 {PL [1 dl1 1.5 dl2] LC3 DL} def 45.125 +/LT4 {PL [6 dl1 2 dl2 1 dl1 2 dl2] LC4 DL} def 45.126 +/LT5 {PL [3 dl1 3 dl2 1 dl1 3 dl2] LC5 DL} def 45.127 +/LT6 {PL [2 dl1 2 dl2 2 dl1 6 dl2] LC6 DL} def 45.128 +/LT7 {PL [1 dl1 2 dl2 6 dl1 2 dl2 1 dl1 2 dl2] LC7 DL} def 45.129 +/LT8 {PL [2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 4 dl2] LC8 DL} def 45.130 +/Pnt {stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore} def 45.131 +/Dia {stroke [] 0 setdash 2 copy vpt add M 45.132 + hpt neg vpt neg V hpt vpt neg V 45.133 + hpt vpt V hpt neg vpt V closepath stroke 45.134 + Pnt} def 45.135 +/Pls {stroke [] 0 setdash vpt sub M 0 vpt2 V 45.136 + currentpoint stroke M 45.137 + hpt neg vpt neg R hpt2 0 V stroke 45.138 + } def 45.139 +/Box {stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M 45.140 + 0 vpt2 neg V hpt2 0 V 0 vpt2 V 45.141 + hpt2 neg 0 V closepath stroke 45.142 + Pnt} def 45.143 +/Crs {stroke [] 0 setdash exch hpt sub exch vpt add M 45.144 + hpt2 vpt2 neg V currentpoint stroke M 45.145 + hpt2 neg 0 R hpt2 vpt2 V stroke} def 45.146 +/TriU {stroke [] 0 setdash 2 copy vpt 1.12 mul add M 45.147 + hpt neg vpt -1.62 mul V 45.148 + hpt 2 mul 0 V 45.149 + hpt neg vpt 1.62 mul V closepath stroke 45.150 + Pnt} def 45.151 +/Star {2 copy Pls Crs} def 45.152 +/BoxF {stroke [] 0 setdash exch hpt sub exch vpt add M 45.153 + 0 vpt2 neg V hpt2 0 V 0 vpt2 V 45.154 + hpt2 neg 0 V closepath fill} def 45.155 +/TriUF {stroke [] 0 setdash vpt 1.12 mul add M 45.156 + hpt neg vpt -1.62 mul V 45.157 + hpt 2 mul 0 V 45.158 + hpt neg vpt 1.62 mul V closepath fill} def 45.159 +/TriD {stroke [] 0 setdash 2 copy vpt 1.12 mul sub M 45.160 + hpt neg vpt 1.62 mul V 45.161 + hpt 2 mul 0 V 45.162 + hpt neg vpt -1.62 mul V closepath stroke 45.163 + Pnt} def 45.164 +/TriDF {stroke [] 0 setdash vpt 1.12 mul sub M 45.165 + hpt neg vpt 1.62 mul V 45.166 + hpt 2 mul 0 V 45.167 + hpt neg vpt -1.62 mul V closepath fill} def 45.168 +/DiaF {stroke [] 0 setdash vpt add M 45.169 + hpt neg vpt neg V hpt vpt neg V 45.170 + hpt vpt V hpt neg vpt V closepath fill} def 45.171 +/Pent {stroke [] 0 setdash 2 copy gsave 45.172 + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat 45.173 + closepath stroke grestore Pnt} def 45.174 +/PentF {stroke [] 0 setdash gsave 45.175 + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat 45.176 + closepath fill grestore} def 45.177 +/Circle {stroke [] 0 setdash 2 copy 45.178 + hpt 0 360 arc stroke Pnt} def 45.179 +/CircleF {stroke [] 0 setdash hpt 0 360 arc fill} def 45.180 +/C0 {BL [] 0 setdash 2 copy moveto vpt 90 450 arc} bind def 45.181 +/C1 {BL [] 0 setdash 2 copy moveto 45.182 + 2 copy vpt 0 90 arc closepath fill 45.183 + vpt 0 360 arc closepath} bind def 45.184 +/C2 {BL [] 0 setdash 2 copy moveto 45.185 + 2 copy vpt 90 180 arc closepath fill 45.186 + vpt 0 360 arc closepath} bind def 45.187 +/C3 {BL [] 0 setdash 2 copy moveto 45.188 + 2 copy vpt 0 180 arc closepath fill 45.189 + vpt 0 360 arc closepath} bind def 45.190 +/C4 {BL [] 0 setdash 2 copy moveto 45.191 + 2 copy vpt 180 270 arc closepath fill 45.192 + vpt 0 360 arc closepath} bind def 45.193 +/C5 {BL [] 0 setdash 2 copy moveto 45.194 + 2 copy vpt 0 90 arc 45.195 + 2 copy moveto 45.196 + 2 copy vpt 180 270 arc closepath fill 45.197 + vpt 0 360 arc} bind def 45.198 +/C6 {BL [] 0 setdash 2 copy moveto 45.199 + 2 copy vpt 90 270 arc closepath fill 45.200 + vpt 0 360 arc closepath} bind def 45.201 +/C7 {BL [] 0 setdash 2 copy moveto 45.202 + 2 copy vpt 0 270 arc closepath fill 45.203 + vpt 0 360 arc closepath} bind def 45.204 +/C8 {BL [] 0 setdash 2 copy moveto 45.205 + 2 copy vpt 270 360 arc closepath fill 45.206 + vpt 0 360 arc closepath} bind def 45.207 +/C9 {BL [] 0 setdash 2 copy moveto 45.208 + 2 copy vpt 270 450 arc closepath fill 45.209 + vpt 0 360 arc closepath} bind def 45.210 +/C10 {BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill 45.211 + 2 copy moveto 45.212 + 2 copy vpt 90 180 arc closepath fill 45.213 + vpt 0 360 arc closepath} bind def 45.214 +/C11 {BL [] 0 setdash 2 copy moveto 45.215 + 2 copy vpt 0 180 arc closepath fill 45.216 + 2 copy moveto 45.217 + 2 copy vpt 270 360 arc closepath fill 45.218 + vpt 0 360 arc closepath} bind def 45.219 +/C12 {BL [] 0 setdash 2 copy moveto 45.220 + 2 copy vpt 180 360 arc closepath fill 45.221 + vpt 0 360 arc closepath} bind def 45.222 +/C13 {BL [] 0 setdash 2 copy moveto 45.223 + 2 copy vpt 0 90 arc closepath fill 45.224 + 2 copy moveto 45.225 + 2 copy vpt 180 360 arc closepath fill 45.226 + vpt 0 360 arc closepath} bind def 45.227 +/C14 {BL [] 0 setdash 2 copy moveto 45.228 + 2 copy vpt 90 360 arc closepath fill 45.229 + vpt 0 360 arc} bind def 45.230 +/C15 {BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill 45.231 + vpt 0 360 arc closepath} bind def 45.232 +/Rec {newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto 45.233 + neg 0 rlineto closepath} bind def 45.234 +/Square {dup Rec} bind def 45.235 +/Bsquare {vpt sub exch vpt sub exch vpt2 Square} bind def 45.236 +/S0 {BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare} bind def 45.237 +/S1 {BL [] 0 setdash 2 copy vpt Square fill Bsquare} bind def 45.238 +/S2 {BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def 45.239 +/S3 {BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare} bind def 45.240 +/S4 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def 45.241 +/S5 {BL [] 0 setdash 2 copy 2 copy vpt Square fill 45.242 + exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def 45.243 +/S6 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare} bind def 45.244 +/S7 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill 45.245 + 2 copy vpt Square fill Bsquare} bind def 45.246 +/S8 {BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare} bind def 45.247 +/S9 {BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare} bind def 45.248 +/S10 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill 45.249 + Bsquare} bind def 45.250 +/S11 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill 45.251 + Bsquare} bind def 45.252 +/S12 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare} bind def 45.253 +/S13 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 45.254 + 2 copy vpt Square fill Bsquare} bind def 45.255 +/S14 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 45.256 + 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def 45.257 +/S15 {BL [] 0 setdash 2 copy Bsquare fill Bsquare} bind def 45.258 +/D0 {gsave translate 45 rotate 0 0 S0 stroke grestore} bind def 45.259 +/D1 {gsave translate 45 rotate 0 0 S1 stroke grestore} bind def 45.260 +/D2 {gsave translate 45 rotate 0 0 S2 stroke grestore} bind def 45.261 +/D3 {gsave translate 45 rotate 0 0 S3 stroke grestore} bind def 45.262 +/D4 {gsave translate 45 rotate 0 0 S4 stroke grestore} bind def 45.263 +/D5 {gsave translate 45 rotate 0 0 S5 stroke grestore} bind def 45.264 +/D6 {gsave translate 45 rotate 0 0 S6 stroke grestore} bind def 45.265 +/D7 {gsave translate 45 rotate 0 0 S7 stroke grestore} bind def 45.266 +/D8 {gsave translate 45 rotate 0 0 S8 stroke grestore} bind def 45.267 +/D9 {gsave translate 45 rotate 0 0 S9 stroke grestore} bind def 45.268 +/D10 {gsave translate 45 rotate 0 0 S10 stroke grestore} bind def 45.269 +/D11 {gsave translate 45 rotate 0 0 S11 stroke grestore} bind def 45.270 +/D12 {gsave translate 45 rotate 0 0 S12 stroke grestore} bind def 45.271 +/D13 {gsave translate 45 rotate 0 0 S13 stroke grestore} bind def 45.272 +/D14 {gsave translate 45 rotate 0 0 S14 stroke grestore} bind def 45.273 +/D15 {gsave translate 45 rotate 0 0 S15 stroke grestore} bind def 45.274 +/DiaE {stroke [] 0 setdash vpt add M 45.275 + hpt neg vpt neg V hpt vpt neg V 45.276 + hpt vpt V hpt neg vpt V closepath stroke} def 45.277 +/BoxE {stroke [] 0 setdash exch hpt sub exch vpt add M 45.278 + 0 vpt2 neg V hpt2 0 V 0 vpt2 V 45.279 + hpt2 neg 0 V closepath stroke} def 45.280 +/TriUE {stroke [] 0 setdash vpt 1.12 mul add M 45.281 + hpt neg vpt -1.62 mul V 45.282 + hpt 2 mul 0 V 45.283 + hpt neg vpt 1.62 mul V closepath stroke} def 45.284 +/TriDE {stroke [] 0 setdash vpt 1.12 mul sub M 45.285 + hpt neg vpt 1.62 mul V 45.286 + hpt 2 mul 0 V 45.287 + hpt neg vpt -1.62 mul V closepath stroke} def 45.288 +/PentE {stroke [] 0 setdash gsave 45.289 + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat 45.290 + closepath stroke grestore} def 45.291 +/CircE {stroke [] 0 setdash 45.292 + hpt 0 360 arc stroke} def 45.293 +/Opaque {gsave closepath 1 setgray fill grestore 0 setgray closepath} def 45.294 +/DiaW {stroke [] 0 setdash vpt add M 45.295 + hpt neg vpt neg V hpt vpt neg V 45.296 + hpt vpt V hpt neg vpt V Opaque stroke} def 45.297 +/BoxW {stroke [] 0 setdash exch hpt sub exch vpt add M 45.298 + 0 vpt2 neg V hpt2 0 V 0 vpt2 V 45.299 + hpt2 neg 0 V Opaque stroke} def 45.300 +/TriUW {stroke [] 0 setdash vpt 1.12 mul add M 45.301 + hpt neg vpt -1.62 mul V 45.302 + hpt 2 mul 0 V 45.303 + hpt neg vpt 1.62 mul V Opaque stroke} def 45.304 +/TriDW {stroke [] 0 setdash vpt 1.12 mul sub M 45.305 + hpt neg vpt 1.62 mul V 45.306 + hpt 2 mul 0 V 45.307 + hpt neg vpt -1.62 mul V Opaque stroke} def 45.308 +/PentW {stroke [] 0 setdash gsave 45.309 + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat 45.310 + Opaque stroke grestore} def 45.311 +/CircW {stroke [] 0 setdash 45.312 + hpt 0 360 arc Opaque stroke} def 45.313 +/BoxFill {gsave Rec 1 setgray fill grestore} def 45.314 +/Density { 45.315 + /Fillden exch def 45.316 + currentrgbcolor 45.317 + /ColB exch def /ColG exch def /ColR exch def 45.318 + /ColR ColR Fillden mul Fillden sub 1 add def 45.319 + /ColG ColG Fillden mul Fillden sub 1 add def 45.320 + /ColB ColB Fillden mul Fillden sub 1 add def 45.321 + ColR ColG ColB setrgbcolor} def 45.322 +/BoxColFill {gsave Rec PolyFill} def 45.323 +/PolyFill {gsave Density fill grestore grestore} def 45.324 +/h {rlineto rlineto rlineto gsave closepath fill grestore} bind def 45.325 +% 45.326 +% PostScript Level 1 Pattern Fill routine for rectangles 45.327 +% Usage: x y w h s a XX PatternFill 45.328 +% x,y = lower left corner of box to be filled 45.329 +% w,h = width and height of box 45.330 +% a = angle in degrees between lines and x-axis 45.331 +% XX = 0/1 for no/yes cross-hatch 45.332 +% 45.333 +/PatternFill {gsave /PFa [ 9 2 roll ] def 45.334 + PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate 45.335 + PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec 45.336 + gsave 1 setgray fill grestore clip 45.337 + currentlinewidth 0.5 mul setlinewidth 45.338 + /PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def 45.339 + 0 0 M PFa 5 get rotate PFs -2 div dup translate 45.340 + 0 1 PFs PFa 4 get div 1 add floor cvi 45.341 + {PFa 4 get mul 0 M 0 PFs V} for 45.342 + 0 PFa 6 get ne { 45.343 + 0 1 PFs PFa 4 get div 1 add floor cvi 45.344 + {PFa 4 get mul 0 2 1 roll M PFs 0 V} for 45.345 + } if 45.346 + stroke grestore} def 45.347 +% 45.348 +/languagelevel where 45.349 + {pop languagelevel} {1} ifelse 45.350 + 2 lt 45.351 + {/InterpretLevel1 true def} 45.352 + {/InterpretLevel1 Level1 def} 45.353 + ifelse 45.354 +% 45.355 +% PostScript level 2 pattern fill definitions 45.356 +% 45.357 +/Level2PatternFill { 45.358 +/Tile8x8 {/PaintType 2 /PatternType 1 /TilingType 1 /BBox [0 0 8 8] /XStep 8 /YStep 8} 45.359 + bind def 45.360 +/KeepColor {currentrgbcolor [/Pattern /DeviceRGB] setcolorspace} bind def 45.361 +<< Tile8x8 45.362 + /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke} 45.363 +>> matrix makepattern 45.364 +/Pat1 exch def 45.365 +<< Tile8x8 45.366 + /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke 45.367 + 0 4 M 4 8 L 8 4 L 4 0 L 0 4 L stroke} 45.368 +>> matrix makepattern 45.369 +/Pat2 exch def 45.370 +<< Tile8x8 45.371 + /PaintProc {0.5 setlinewidth pop 0 0 M 0 8 L 45.372 + 8 8 L 8 0 L 0 0 L fill} 45.373 +>> matrix makepattern 45.374 +/Pat3 exch def 45.375 +<< Tile8x8 45.376 + /PaintProc {0.5 setlinewidth pop -4 8 M 8 -4 L 45.377 + 0 12 M 12 0 L stroke} 45.378 +>> matrix makepattern 45.379 +/Pat4 exch def 45.380 +<< Tile8x8 45.381 + /PaintProc {0.5 setlinewidth pop -4 0 M 8 12 L 45.382 + 0 -4 M 12 8 L stroke} 45.383 +>> matrix makepattern 45.384 +/Pat5 exch def 45.385 +<< Tile8x8 45.386 + /PaintProc {0.5 setlinewidth pop -2 8 M 4 -4 L 45.387 + 0 12 M 8 -4 L 4 12 M 10 0 L stroke} 45.388 +>> matrix makepattern 45.389 +/Pat6 exch def 45.390 +<< Tile8x8 45.391 + /PaintProc {0.5 setlinewidth pop -2 0 M 4 12 L 45.392 + 0 -4 M 8 12 L 4 -4 M 10 8 L stroke} 45.393 +>> matrix makepattern 45.394 +/Pat7 exch def 45.395 +<< Tile8x8 45.396 + /PaintProc {0.5 setlinewidth pop 8 -2 M -4 4 L 45.397 + 12 0 M -4 8 L 12 4 M 0 10 L stroke} 45.398 +>> matrix makepattern 45.399 +/Pat8 exch def 45.400 +<< Tile8x8 45.401 + /PaintProc {0.5 setlinewidth pop 0 -2 M 12 4 L 45.402 + -4 0 M 12 8 L -4 4 M 8 10 L stroke} 45.403 +>> matrix makepattern 45.404 +/Pat9 exch def 45.405 +/Pattern1 {PatternBgnd KeepColor Pat1 setpattern} bind def 45.406 +/Pattern2 {PatternBgnd KeepColor Pat2 setpattern} bind def 45.407 +/Pattern3 {PatternBgnd KeepColor Pat3 setpattern} bind def 45.408 +/Pattern4 {PatternBgnd KeepColor Landscape {Pat5} {Pat4} ifelse setpattern} bind def 45.409 +/Pattern5 {PatternBgnd KeepColor Landscape {Pat4} {Pat5} ifelse setpattern} bind def 45.410 +/Pattern6 {PatternBgnd KeepColor Landscape {Pat9} {Pat6} ifelse setpattern} bind def 45.411 +/Pattern7 {PatternBgnd KeepColor Landscape {Pat8} {Pat7} ifelse setpattern} bind def 45.412 +} def 45.413 +% 45.414 +% 45.415 +%End of PostScript Level 2 code 45.416 +% 45.417 +/PatternBgnd { 45.418 + TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse 45.419 +} def 45.420 +% 45.421 +% Substitute for Level 2 pattern fill codes with 45.422 +% grayscale if Level 2 support is not selected. 45.423 +% 45.424 +/Level1PatternFill { 45.425 +/Pattern1 {0.250 Density} bind def 45.426 +/Pattern2 {0.500 Density} bind def 45.427 +/Pattern3 {0.750 Density} bind def 45.428 +/Pattern4 {0.125 Density} bind def 45.429 +/Pattern5 {0.375 Density} bind def 45.430 +/Pattern6 {0.625 Density} bind def 45.431 +/Pattern7 {0.875 Density} bind def 45.432 +} def 45.433 +% 45.434 +% Now test for support of Level 2 code 45.435 +% 45.436 +Level1 {Level1PatternFill} {Level2PatternFill} ifelse 45.437 +% 45.438 +/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont 45.439 +dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall 45.440 +currentdict end definefont pop 45.441 +/MFshow { 45.442 + { dup 5 get 3 ge 45.443 + { 5 get 3 eq {gsave} {grestore} ifelse } 45.444 + {dup dup 0 get findfont exch 1 get scalefont setfont 45.445 + [ currentpoint ] exch dup 2 get 0 exch R dup 5 get 2 ne {dup dup 6 45.446 + get exch 4 get {Gshow} {stringwidth pop 0 R} ifelse }if dup 5 get 0 eq 45.447 + {dup 3 get {2 get neg 0 exch R pop} {pop aload pop M} ifelse} {dup 5 45.448 + get 1 eq {dup 2 get exch dup 3 get exch 6 get stringwidth pop -2 div 45.449 + dup 0 R} {dup 6 get stringwidth pop -2 div 0 R 6 get 45.450 + show 2 index {aload pop M neg 3 -1 roll neg R pop pop} {pop pop pop 45.451 + pop aload pop M} ifelse }ifelse }ifelse } 45.452 + ifelse } 45.453 + forall} def 45.454 +/Gswidth {dup type /stringtype eq {stringwidth} {pop (n) stringwidth} ifelse} def 45.455 +/MFwidth {0 exch { dup 5 get 3 ge { 5 get 3 eq { 0 } { pop } ifelse } 45.456 + {dup 3 get{dup dup 0 get findfont exch 1 get scalefont setfont 45.457 + 6 get Gswidth pop add} {pop} ifelse} ifelse} forall} def 45.458 +/MLshow { currentpoint stroke M 45.459 + 0 exch R 45.460 + Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def 45.461 +/MRshow { currentpoint stroke M 45.462 + exch dup MFwidth neg 3 -1 roll R 45.463 + Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def 45.464 +/MCshow { currentpoint stroke M 45.465 + exch dup MFwidth -2 div 3 -1 roll R 45.466 + Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def 45.467 +/XYsave { [( ) 1 2 true false 3 ()] } bind def 45.468 +/XYrestore { [( ) 1 2 true false 4 ()] } bind def 45.469 +end 45.470 +%%EndProlog 45.471 +%%Page: 1 1 45.472 +gnudict begin 45.473 +gsave 45.474 +doclip 45.475 +50 50 translate 45.476 +0.100 0.100 scale 45.477 +90 rotate 45.478 +0 -5040 translate 45.479 +0 setgray 45.480 +newpath 45.481 +(Helvetica) findfont 140 scalefont setfont 45.482 +1.000 UL 45.483 +LTb 45.484 +686 922 M 45.485 +63 0 V 45.486 +stroke 45.487 +602 922 M 45.488 +[ [(Helvetica) 140.0 0.0 true true 0 ( 50)] 45.489 +] -46.7 MRshow 45.490 +1.000 UL 45.491 +LTb 45.492 +686 1405 M 45.493 +63 0 V 45.494 +stroke 45.495 +602 1405 M 45.496 +[ [(Helvetica) 140.0 0.0 true true 0 ( 100)] 45.497 +] -46.7 MRshow 45.498 +1.000 UL 45.499 +LTb 45.500 +686 1888 M 45.501 +63 0 V 45.502 +stroke 45.503 +602 1888 M 45.504 +[ [(Helvetica) 140.0 0.0 true true 0 ( 150)] 45.505 +] -46.7 MRshow 45.506 +1.000 UL 45.507 +LTb 45.508 +686 2372 M 45.509 +63 0 V 45.510 +stroke 45.511 +602 2372 M 45.512 +[ [(Helvetica) 140.0 0.0 true true 0 ( 200)] 45.513 +] -46.7 MRshow 45.514 +1.000 UL 45.515 +LTb 45.516 +686 2855 M 45.517 +63 0 V 45.518 +stroke 45.519 +602 2855 M 45.520 +[ [(Helvetica) 140.0 0.0 true true 0 ( 250)] 45.521 +] -46.7 MRshow 45.522 +1.000 UL 45.523 +LTb 45.524 +686 448 M 45.525 +0 63 V 45.526 +stroke 45.527 +686 308 M 45.528 +[ [(Helvetica) 140.0 0.0 true true 0 ( 0)] 45.529 +] -46.7 MCshow 45.530 +1.000 UL 45.531 +LTb 45.532 +1109 448 M 45.533 +0 63 V 45.534 +stroke 45.535 +1109 308 M 45.536 +[ [(Helvetica) 140.0 0.0 true true 0 ( 1000)] 45.537 +] -46.7 MCshow 45.538 +1.000 UL 45.539 +LTb 45.540 +1531 448 M 45.541 +0 63 V 45.542 +stroke 45.543 +1531 308 M 45.544 +[ [(Helvetica) 140.0 0.0 true true 0 ( 2000)] 45.545 +] -46.7 MCshow 45.546 +1.000 UL 45.547 +LTb 45.548 +1954 448 M 45.549 +0 63 V 45.550 +stroke 45.551 +1954 308 M 45.552 +[ [(Helvetica) 140.0 0.0 true true 0 ( 3000)] 45.553 +] -46.7 MCshow 45.554 +1.000 UL 45.555 +LTb 45.556 +2377 448 M 45.557 +0 63 V 45.558 +stroke 45.559 +2377 308 M 45.560 +[ [(Helvetica) 140.0 0.0 true true 0 ( 4000)] 45.561 +] -46.7 MCshow 45.562 +1.000 UL 45.563 +LTb 45.564 +2799 448 M 45.565 +0 63 V 45.566 +stroke 45.567 +2799 308 M 45.568 +[ [(Helvetica) 140.0 0.0 true true 0 ( 5000)] 45.569 +] -46.7 MCshow 45.570 +1.000 UL 45.571 +LTb 45.572 +3222 448 M 45.573 +0 63 V 45.574 +stroke 45.575 +3222 308 M 45.576 +[ [(Helvetica) 140.0 0.0 true true 0 ( 6000)] 45.577 +] -46.7 MCshow 45.578 +1.000 UL 45.579 +LTb 45.580 +3644 448 M 45.581 +0 63 V 45.582 +stroke 45.583 +3644 308 M 45.584 +[ [(Helvetica) 140.0 0.0 true true 0 ( 7000)] 45.585 +] -46.7 MCshow 45.586 +1.000 UL 45.587 +LTb 45.588 +4067 448 M 45.589 +0 63 V 45.590 +stroke 45.591 +4067 308 M 45.592 +[ [(Helvetica) 140.0 0.0 true true 0 ( 8000)] 45.593 +] -46.7 MCshow 45.594 +1.000 UL 45.595 +LTb 45.596 +1.000 UL 45.597 +LTb 45.598 +686 2855 M 45.599 +686 448 L 45.600 +3381 0 V 45.601 +0 2407 R 45.602 +-3381 0 R 45.603 +stroke 45.604 +LCb setrgbcolor 45.605 +112 1651 M 45.606 +currentpoint gsave translate -270 rotate 0 0 moveto 45.607 +[ [(Helvetica) 140.0 0.0 true true 0 (Ratio of Total Execution to Total Work)] 45.608 +] -46.7 MCshow 45.609 +grestore 45.610 +LTb 45.611 +LCb setrgbcolor 45.612 +2376 98 M 45.613 +[ [(Helvetica) 140.0 0.0 true true 0 (Cycles in one Task)] 45.614 +] -46.7 MCshow 45.615 +LTb 45.616 +1.000 UP 45.617 +1.000 UL 45.618 +LTb 45.619 +1.000 UL 45.620 +LTb 45.621 +770 511 N 45.622 +0 560 V 45.623 +1491 0 V 45.624 +0 -560 V 45.625 +770 511 L 45.626 +Z stroke 45.627 +770 1071 M 45.628 +1491 0 V 45.629 +% Begin plot #1 45.630 +stroke 45.631 +4.000 UL 45.632 +LT0 45.633 +LCb setrgbcolor 45.634 +1694 1001 M 45.635 +[ [(Helvetica) 140.0 0.0 true true 0 (80 Threads)] 45.636 +] -46.7 MRshow 45.637 +LT0 45.638 +1778 1001 M 45.639 +399 0 V 45.640 +154 1854 R 45.641 +25 -124 V 45.642 +3985 1744 L 45.643 +% End plot #1 45.644 +% Begin plot #2 45.645 +stroke 45.646 +LT1 45.647 +LCb setrgbcolor 45.648 +1694 861 M 45.649 +[ [(Helvetica) 140.0 0.0 true true 0 (160 Threads)] 45.650 +] -46.7 MRshow 45.651 +LT1 45.652 +1778 861 M 45.653 +399 0 V 45.654 +% End plot #2 45.655 +% Begin plot #3 45.656 +stroke 45.657 +LT2 45.658 +LCb setrgbcolor 45.659 +1694 721 M 45.660 +[ [(Helvetica) 140.0 0.0 true true 0 (320 Threads)] 45.661 +] -46.7 MRshow 45.662 +LT2 45.663 +1778 721 M 45.664 +399 0 V 45.665 +618 2134 R 45.666 +476 -856 V 45.667 +796 -271 V 45.668 +% End plot #3 45.669 +% Begin plot #4 45.670 +stroke 45.671 +LT3 45.672 +LCb setrgbcolor 45.673 +1694 581 M 45.674 +[ [(Helvetica) 140.0 0.0 true true 0 (640 Threads)] 45.675 +] -46.7 MRshow 45.676 +LT3 45.677 +1778 581 M 45.678 +399 0 V 45.679 +166 2274 R 45.680 +586 -716 V 45.681 +4067 1495 L 45.682 +% End plot #4 45.683 +stroke 45.684 +1.000 UL 45.685 +LTb 45.686 +686 2855 M 45.687 +686 448 L 45.688 +3381 0 V 45.689 +0 2407 R 45.690 +-3381 0 R 45.691 +1.000 UP 45.692 +stroke 45.693 +grestore 45.694 +end 45.695 +showpage 45.696 +%%Trailer 45.697 +%%DocumentFonts: Helvetica 45.698 +%%Pages: 1
46.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 46.2 +++ b/0__Papers/PRT/PRT__formal_def/figures/plots_exec_vs_task_size/not_used/xoanon_pthreads_vthread_40core_80_160_320_640thds__o30000__perfCtrs.meas.key-out.eps Sat Aug 03 19:24:22 2013 -0700 46.3 @@ -0,0 +1,884 @@ 46.4 +%!PS-Adobe-2.0 46.5 +%%Title: xoanon_pthreads_vthread_40core_80_160_320_640thds__o30000__perfCtrs.meas.key-out.eps 46.6 +%%Creator: gnuplot 4.4 patchlevel 2 46.7 +%%CreationDate: Thu Jan 26 18:45:12 2012 46.8 +%%DocumentFonts: (atend) 46.9 +%%BoundingBox: 251 50 554 482 46.10 +%%Orientation: Landscape 46.11 +%%Pages: (atend) 46.12 +%%EndComments 46.13 +%%BeginProlog 46.14 +/gnudict 256 dict def 46.15 +gnudict begin 46.16 +% 46.17 +% The following true/false flags may be edited by hand if desired. 46.18 +% The unit line width and grayscale image gamma correction may also be changed. 46.19 +% 46.20 +/Color true def 46.21 +/Blacktext false def 46.22 +/Solid false def 46.23 +/Dashlength 1 def 46.24 +/Landscape true def 46.25 +/Level1 false def 46.26 +/Rounded false def 46.27 +/ClipToBoundingBox false def 46.28 +/TransparentPatterns false def 46.29 +/gnulinewidth 5.000 def 46.30 +/userlinewidth gnulinewidth def 46.31 +/Gamma 1.0 def 46.32 +% 46.33 +/vshift -46 def 46.34 +/dl1 { 46.35 + 10.0 Dashlength mul mul 46.36 + Rounded { currentlinewidth 0.75 mul sub dup 0 le { pop 0.01 } if } if 46.37 +} def 46.38 +/dl2 { 46.39 + 10.0 Dashlength mul mul 46.40 + Rounded { currentlinewidth 0.75 mul add } if 46.41 +} def 46.42 +/hpt_ 31.5 def 46.43 +/vpt_ 31.5 def 46.44 +/hpt hpt_ def 46.45 +/vpt vpt_ def 46.46 +Level1 {} { 46.47 +/SDict 10 dict def 46.48 +systemdict /pdfmark known not { 46.49 + userdict /pdfmark systemdict /cleartomark get put 46.50 +} if 46.51 +SDict begin [ 46.52 + /Title (xoanon_pthreads_vthread_40core_80_160_320_640thds__o30000__perfCtrs.meas.key-out.eps) 46.53 + /Subject (gnuplot plot) 46.54 + /Creator (gnuplot 4.4 patchlevel 2) 46.55 + /Author (msach) 46.56 +% /Producer (gnuplot) 46.57 +% /Keywords () 46.58 + /CreationDate (Thu Jan 26 18:45:12 2012) 46.59 + /DOCINFO pdfmark 46.60 +end 46.61 +} ifelse 46.62 +/doclip { 46.63 + ClipToBoundingBox { 46.64 + newpath 251 50 moveto 554 50 lineto 554 482 lineto 251 482 lineto closepath 46.65 + clip 46.66 + } if 46.67 +} def 46.68 +% 46.69 +% Gnuplot Prolog Version 4.4 (August 2010) 46.70 +% 46.71 +%/SuppressPDFMark true def 46.72 +% 46.73 +/M {moveto} bind def 46.74 +/L {lineto} bind def 46.75 +/R {rmoveto} bind def 46.76 +/V {rlineto} bind def 46.77 +/N {newpath moveto} bind def 46.78 +/Z {closepath} bind def 46.79 +/C {setrgbcolor} bind def 46.80 +/f {rlineto fill} bind def 46.81 +/g {setgray} bind def 46.82 +/Gshow {show} def % May be redefined later in the file to support UTF-8 46.83 +/vpt2 vpt 2 mul def 46.84 +/hpt2 hpt 2 mul def 46.85 +/Lshow {currentpoint stroke M 0 vshift R 46.86 + Blacktext {gsave 0 setgray show grestore} {show} ifelse} def 46.87 +/Rshow {currentpoint stroke M dup stringwidth pop neg vshift R 46.88 + Blacktext {gsave 0 setgray show grestore} {show} ifelse} def 46.89 +/Cshow {currentpoint stroke M dup stringwidth pop -2 div vshift R 46.90 + Blacktext {gsave 0 setgray show grestore} {show} ifelse} def 46.91 +/UP {dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def 46.92 + /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def} def 46.93 +/DL {Color {setrgbcolor Solid {pop []} if 0 setdash} 46.94 + {pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse} def 46.95 +/BL {stroke userlinewidth 2 mul setlinewidth 46.96 + Rounded {1 setlinejoin 1 setlinecap} if} def 46.97 +/AL {stroke userlinewidth 2 div setlinewidth 46.98 + Rounded {1 setlinejoin 1 setlinecap} if} def 46.99 +/UL {dup gnulinewidth mul /userlinewidth exch def 46.100 + dup 1 lt {pop 1} if 10 mul /udl exch def} def 46.101 +/PL {stroke userlinewidth setlinewidth 46.102 + Rounded {1 setlinejoin 1 setlinecap} if} def 46.103 +3.8 setmiterlimit 46.104 +% Default Line colors 46.105 +/LCw {1 1 1} def 46.106 +/LCb {0 0 0} def 46.107 +/LCa {0 0 0} def 46.108 +/LC0 {1 0 0} def 46.109 +/LC1 {0 1 0} def 46.110 +/LC2 {0 0 1} def 46.111 +/LC3 {1 0 1} def 46.112 +/LC4 {0 1 1} def 46.113 +/LC5 {1 1 0} def 46.114 +/LC6 {0 0 0} def 46.115 +/LC7 {1 0.3 0} def 46.116 +/LC8 {0.5 0.5 0.5} def 46.117 +% Default Line Types 46.118 +/LTw {PL [] 1 setgray} def 46.119 +/LTb {BL [] LCb DL} def 46.120 +/LTa {AL [1 udl mul 2 udl mul] 0 setdash LCa setrgbcolor} def 46.121 +/LT0 {PL [] LC0 DL} def 46.122 +/LT1 {PL [4 dl1 2 dl2] LC1 DL} def 46.123 +/LT2 {PL [2 dl1 3 dl2] LC2 DL} def 46.124 +/LT3 {PL [1 dl1 1.5 dl2] LC3 DL} def 46.125 +/LT4 {PL [6 dl1 2 dl2 1 dl1 2 dl2] LC4 DL} def 46.126 +/LT5 {PL [3 dl1 3 dl2 1 dl1 3 dl2] LC5 DL} def 46.127 +/LT6 {PL [2 dl1 2 dl2 2 dl1 6 dl2] LC6 DL} def 46.128 +/LT7 {PL [1 dl1 2 dl2 6 dl1 2 dl2 1 dl1 2 dl2] LC7 DL} def 46.129 +/LT8 {PL [2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 4 dl2] LC8 DL} def 46.130 +/Pnt {stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore} def 46.131 +/Dia {stroke [] 0 setdash 2 copy vpt add M 46.132 + hpt neg vpt neg V hpt vpt neg V 46.133 + hpt vpt V hpt neg vpt V closepath stroke 46.134 + Pnt} def 46.135 +/Pls {stroke [] 0 setdash vpt sub M 0 vpt2 V 46.136 + currentpoint stroke M 46.137 + hpt neg vpt neg R hpt2 0 V stroke 46.138 + } def 46.139 +/Box {stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M 46.140 + 0 vpt2 neg V hpt2 0 V 0 vpt2 V 46.141 + hpt2 neg 0 V closepath stroke 46.142 + Pnt} def 46.143 +/Crs {stroke [] 0 setdash exch hpt sub exch vpt add M 46.144 + hpt2 vpt2 neg V currentpoint stroke M 46.145 + hpt2 neg 0 R hpt2 vpt2 V stroke} def 46.146 +/TriU {stroke [] 0 setdash 2 copy vpt 1.12 mul add M 46.147 + hpt neg vpt -1.62 mul V 46.148 + hpt 2 mul 0 V 46.149 + hpt neg vpt 1.62 mul V closepath stroke 46.150 + Pnt} def 46.151 +/Star {2 copy Pls Crs} def 46.152 +/BoxF {stroke [] 0 setdash exch hpt sub exch vpt add M 46.153 + 0 vpt2 neg V hpt2 0 V 0 vpt2 V 46.154 + hpt2 neg 0 V closepath fill} def 46.155 +/TriUF {stroke [] 0 setdash vpt 1.12 mul add M 46.156 + hpt neg vpt -1.62 mul V 46.157 + hpt 2 mul 0 V 46.158 + hpt neg vpt 1.62 mul V closepath fill} def 46.159 +/TriD {stroke [] 0 setdash 2 copy vpt 1.12 mul sub M 46.160 + hpt neg vpt 1.62 mul V 46.161 + hpt 2 mul 0 V 46.162 + hpt neg vpt -1.62 mul V closepath stroke 46.163 + Pnt} def 46.164 +/TriDF {stroke [] 0 setdash vpt 1.12 mul sub M 46.165 + hpt neg vpt 1.62 mul V 46.166 + hpt 2 mul 0 V 46.167 + hpt neg vpt -1.62 mul V closepath fill} def 46.168 +/DiaF {stroke [] 0 setdash vpt add M 46.169 + hpt neg vpt neg V hpt vpt neg V 46.170 + hpt vpt V hpt neg vpt V closepath fill} def 46.171 +/Pent {stroke [] 0 setdash 2 copy gsave 46.172 + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat 46.173 + closepath stroke grestore Pnt} def 46.174 +/PentF {stroke [] 0 setdash gsave 46.175 + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat 46.176 + closepath fill grestore} def 46.177 +/Circle {stroke [] 0 setdash 2 copy 46.178 + hpt 0 360 arc stroke Pnt} def 46.179 +/CircleF {stroke [] 0 setdash hpt 0 360 arc fill} def 46.180 +/C0 {BL [] 0 setdash 2 copy moveto vpt 90 450 arc} bind def 46.181 +/C1 {BL [] 0 setdash 2 copy moveto 46.182 + 2 copy vpt 0 90 arc closepath fill 46.183 + vpt 0 360 arc closepath} bind def 46.184 +/C2 {BL [] 0 setdash 2 copy moveto 46.185 + 2 copy vpt 90 180 arc closepath fill 46.186 + vpt 0 360 arc closepath} bind def 46.187 +/C3 {BL [] 0 setdash 2 copy moveto 46.188 + 2 copy vpt 0 180 arc closepath fill 46.189 + vpt 0 360 arc closepath} bind def 46.190 +/C4 {BL [] 0 setdash 2 copy moveto 46.191 + 2 copy vpt 180 270 arc closepath fill 46.192 + vpt 0 360 arc closepath} bind def 46.193 +/C5 {BL [] 0 setdash 2 copy moveto 46.194 + 2 copy vpt 0 90 arc 46.195 + 2 copy moveto 46.196 + 2 copy vpt 180 270 arc closepath fill 46.197 + vpt 0 360 arc} bind def 46.198 +/C6 {BL [] 0 setdash 2 copy moveto 46.199 + 2 copy vpt 90 270 arc closepath fill 46.200 + vpt 0 360 arc closepath} bind def 46.201 +/C7 {BL [] 0 setdash 2 copy moveto 46.202 + 2 copy vpt 0 270 arc closepath fill 46.203 + vpt 0 360 arc closepath} bind def 46.204 +/C8 {BL [] 0 setdash 2 copy moveto 46.205 + 2 copy vpt 270 360 arc closepath fill 46.206 + vpt 0 360 arc closepath} bind def 46.207 +/C9 {BL [] 0 setdash 2 copy moveto 46.208 + 2 copy vpt 270 450 arc closepath fill 46.209 + vpt 0 360 arc closepath} bind def 46.210 +/C10 {BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill 46.211 + 2 copy moveto 46.212 + 2 copy vpt 90 180 arc closepath fill 46.213 + vpt 0 360 arc closepath} bind def 46.214 +/C11 {BL [] 0 setdash 2 copy moveto 46.215 + 2 copy vpt 0 180 arc closepath fill 46.216 + 2 copy moveto 46.217 + 2 copy vpt 270 360 arc closepath fill 46.218 + vpt 0 360 arc closepath} bind def 46.219 +/C12 {BL [] 0 setdash 2 copy moveto 46.220 + 2 copy vpt 180 360 arc closepath fill 46.221 + vpt 0 360 arc closepath} bind def 46.222 +/C13 {BL [] 0 setdash 2 copy moveto 46.223 + 2 copy vpt 0 90 arc closepath fill 46.224 + 2 copy moveto 46.225 + 2 copy vpt 180 360 arc closepath fill 46.226 + vpt 0 360 arc closepath} bind def 46.227 +/C14 {BL [] 0 setdash 2 copy moveto 46.228 + 2 copy vpt 90 360 arc closepath fill 46.229 + vpt 0 360 arc} bind def 46.230 +/C15 {BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill 46.231 + vpt 0 360 arc closepath} bind def 46.232 +/Rec {newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto 46.233 + neg 0 rlineto closepath} bind def 46.234 +/Square {dup Rec} bind def 46.235 +/Bsquare {vpt sub exch vpt sub exch vpt2 Square} bind def 46.236 +/S0 {BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare} bind def 46.237 +/S1 {BL [] 0 setdash 2 copy vpt Square fill Bsquare} bind def 46.238 +/S2 {BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def 46.239 +/S3 {BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare} bind def 46.240 +/S4 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def 46.241 +/S5 {BL [] 0 setdash 2 copy 2 copy vpt Square fill 46.242 + exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def 46.243 +/S6 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare} bind def 46.244 +/S7 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill 46.245 + 2 copy vpt Square fill Bsquare} bind def 46.246 +/S8 {BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare} bind def 46.247 +/S9 {BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare} bind def 46.248 +/S10 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill 46.249 + Bsquare} bind def 46.250 +/S11 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill 46.251 + Bsquare} bind def 46.252 +/S12 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare} bind def 46.253 +/S13 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 46.254 + 2 copy vpt Square fill Bsquare} bind def 46.255 +/S14 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 46.256 + 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def 46.257 +/S15 {BL [] 0 setdash 2 copy Bsquare fill Bsquare} bind def 46.258 +/D0 {gsave translate 45 rotate 0 0 S0 stroke grestore} bind def 46.259 +/D1 {gsave translate 45 rotate 0 0 S1 stroke grestore} bind def 46.260 +/D2 {gsave translate 45 rotate 0 0 S2 stroke grestore} bind def 46.261 +/D3 {gsave translate 45 rotate 0 0 S3 stroke grestore} bind def 46.262 +/D4 {gsave translate 45 rotate 0 0 S4 stroke grestore} bind def 46.263 +/D5 {gsave translate 45 rotate 0 0 S5 stroke grestore} bind def 46.264 +/D6 {gsave translate 45 rotate 0 0 S6 stroke grestore} bind def 46.265 +/D7 {gsave translate 45 rotate 0 0 S7 stroke grestore} bind def 46.266 +/D8 {gsave translate 45 rotate 0 0 S8 stroke grestore} bind def 46.267 +/D9 {gsave translate 45 rotate 0 0 S9 stroke grestore} bind def 46.268 +/D10 {gsave translate 45 rotate 0 0 S10 stroke grestore} bind def 46.269 +/D11 {gsave translate 45 rotate 0 0 S11 stroke grestore} bind def 46.270 +/D12 {gsave translate 45 rotate 0 0 S12 stroke grestore} bind def 46.271 +/D13 {gsave translate 45 rotate 0 0 S13 stroke grestore} bind def 46.272 +/D14 {gsave translate 45 rotate 0 0 S14 stroke grestore} bind def 46.273 +/D15 {gsave translate 45 rotate 0 0 S15 stroke grestore} bind def 46.274 +/DiaE {stroke [] 0 setdash vpt add M 46.275 + hpt neg vpt neg V hpt vpt neg V 46.276 + hpt vpt V hpt neg vpt V closepath stroke} def 46.277 +/BoxE {stroke [] 0 setdash exch hpt sub exch vpt add M 46.278 + 0 vpt2 neg V hpt2 0 V 0 vpt2 V 46.279 + hpt2 neg 0 V closepath stroke} def 46.280 +/TriUE {stroke [] 0 setdash vpt 1.12 mul add M 46.281 + hpt neg vpt -1.62 mul V 46.282 + hpt 2 mul 0 V 46.283 + hpt neg vpt 1.62 mul V closepath stroke} def 46.284 +/TriDE {stroke [] 0 setdash vpt 1.12 mul sub M 46.285 + hpt neg vpt 1.62 mul V 46.286 + hpt 2 mul 0 V 46.287 + hpt neg vpt -1.62 mul V closepath stroke} def 46.288 +/PentE {stroke [] 0 setdash gsave 46.289 + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat 46.290 + closepath stroke grestore} def 46.291 +/CircE {stroke [] 0 setdash 46.292 + hpt 0 360 arc stroke} def 46.293 +/Opaque {gsave closepath 1 setgray fill grestore 0 setgray closepath} def 46.294 +/DiaW {stroke [] 0 setdash vpt add M 46.295 + hpt neg vpt neg V hpt vpt neg V 46.296 + hpt vpt V hpt neg vpt V Opaque stroke} def 46.297 +/BoxW {stroke [] 0 setdash exch hpt sub exch vpt add M 46.298 + 0 vpt2 neg V hpt2 0 V 0 vpt2 V 46.299 + hpt2 neg 0 V Opaque stroke} def 46.300 +/TriUW {stroke [] 0 setdash vpt 1.12 mul add M 46.301 + hpt neg vpt -1.62 mul V 46.302 + hpt 2 mul 0 V 46.303 + hpt neg vpt 1.62 mul V Opaque stroke} def 46.304 +/TriDW {stroke [] 0 setdash vpt 1.12 mul sub M 46.305 + hpt neg vpt 1.62 mul V 46.306 + hpt 2 mul 0 V 46.307 + hpt neg vpt -1.62 mul V Opaque stroke} def 46.308 +/PentW {stroke [] 0 setdash gsave 46.309 + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat 46.310 + Opaque stroke grestore} def 46.311 +/CircW {stroke [] 0 setdash 46.312 + hpt 0 360 arc Opaque stroke} def 46.313 +/BoxFill {gsave Rec 1 setgray fill grestore} def 46.314 +/Density { 46.315 + /Fillden exch def 46.316 + currentrgbcolor 46.317 + /ColB exch def /ColG exch def /ColR exch def 46.318 + /ColR ColR Fillden mul Fillden sub 1 add def 46.319 + /ColG ColG Fillden mul Fillden sub 1 add def 46.320 + /ColB ColB Fillden mul Fillden sub 1 add def 46.321 + ColR ColG ColB setrgbcolor} def 46.322 +/BoxColFill {gsave Rec PolyFill} def 46.323 +/PolyFill {gsave Density fill grestore grestore} def 46.324 +/h {rlineto rlineto rlineto gsave closepath fill grestore} bind def 46.325 +% 46.326 +% PostScript Level 1 Pattern Fill routine for rectangles 46.327 +% Usage: x y w h s a XX PatternFill 46.328 +% x,y = lower left corner of box to be filled 46.329 +% w,h = width and height of box 46.330 +% a = angle in degrees between lines and x-axis 46.331 +% XX = 0/1 for no/yes cross-hatch 46.332 +% 46.333 +/PatternFill {gsave /PFa [ 9 2 roll ] def 46.334 + PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate 46.335 + PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec 46.336 + gsave 1 setgray fill grestore clip 46.337 + currentlinewidth 0.5 mul setlinewidth 46.338 + /PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def 46.339 + 0 0 M PFa 5 get rotate PFs -2 div dup translate 46.340 + 0 1 PFs PFa 4 get div 1 add floor cvi 46.341 + {PFa 4 get mul 0 M 0 PFs V} for 46.342 + 0 PFa 6 get ne { 46.343 + 0 1 PFs PFa 4 get div 1 add floor cvi 46.344 + {PFa 4 get mul 0 2 1 roll M PFs 0 V} for 46.345 + } if 46.346 + stroke grestore} def 46.347 +% 46.348 +/languagelevel where 46.349 + {pop languagelevel} {1} ifelse 46.350 + 2 lt 46.351 + {/InterpretLevel1 true def} 46.352 + {/InterpretLevel1 Level1 def} 46.353 + ifelse 46.354 +% 46.355 +% PostScript level 2 pattern fill definitions 46.356 +% 46.357 +/Level2PatternFill { 46.358 +/Tile8x8 {/PaintType 2 /PatternType 1 /TilingType 1 /BBox [0 0 8 8] /XStep 8 /YStep 8} 46.359 + bind def 46.360 +/KeepColor {currentrgbcolor [/Pattern /DeviceRGB] setcolorspace} bind def 46.361 +<< Tile8x8 46.362 + /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke} 46.363 +>> matrix makepattern 46.364 +/Pat1 exch def 46.365 +<< Tile8x8 46.366 + /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke 46.367 + 0 4 M 4 8 L 8 4 L 4 0 L 0 4 L stroke} 46.368 +>> matrix makepattern 46.369 +/Pat2 exch def 46.370 +<< Tile8x8 46.371 + /PaintProc {0.5 setlinewidth pop 0 0 M 0 8 L 46.372 + 8 8 L 8 0 L 0 0 L fill} 46.373 +>> matrix makepattern 46.374 +/Pat3 exch def 46.375 +<< Tile8x8 46.376 + /PaintProc {0.5 setlinewidth pop -4 8 M 8 -4 L 46.377 + 0 12 M 12 0 L stroke} 46.378 +>> matrix makepattern 46.379 +/Pat4 exch def 46.380 +<< Tile8x8 46.381 + /PaintProc {0.5 setlinewidth pop -4 0 M 8 12 L 46.382 + 0 -4 M 12 8 L stroke} 46.383 +>> matrix makepattern 46.384 +/Pat5 exch def 46.385 +<< Tile8x8 46.386 + /PaintProc {0.5 setlinewidth pop -2 8 M 4 -4 L 46.387 + 0 12 M 8 -4 L 4 12 M 10 0 L stroke} 46.388 +>> matrix makepattern 46.389 +/Pat6 exch def 46.390 +<< Tile8x8 46.391 + /PaintProc {0.5 setlinewidth pop -2 0 M 4 12 L 46.392 + 0 -4 M 8 12 L 4 -4 M 10 8 L stroke} 46.393 +>> matrix makepattern 46.394 +/Pat7 exch def 46.395 +<< Tile8x8 46.396 + /PaintProc {0.5 setlinewidth pop 8 -2 M -4 4 L 46.397 + 12 0 M -4 8 L 12 4 M 0 10 L stroke} 46.398 +>> matrix makepattern 46.399 +/Pat8 exch def 46.400 +<< Tile8x8 46.401 + /PaintProc {0.5 setlinewidth pop 0 -2 M 12 4 L 46.402 + -4 0 M 12 8 L -4 4 M 8 10 L stroke} 46.403 +>> matrix makepattern 46.404 +/Pat9 exch def 46.405 +/Pattern1 {PatternBgnd KeepColor Pat1 setpattern} bind def 46.406 +/Pattern2 {PatternBgnd KeepColor Pat2 setpattern} bind def 46.407 +/Pattern3 {PatternBgnd KeepColor Pat3 setpattern} bind def 46.408 +/Pattern4 {PatternBgnd KeepColor Landscape {Pat5} {Pat4} ifelse setpattern} bind def 46.409 +/Pattern5 {PatternBgnd KeepColor Landscape {Pat4} {Pat5} ifelse setpattern} bind def 46.410 +/Pattern6 {PatternBgnd KeepColor Landscape {Pat9} {Pat6} ifelse setpattern} bind def 46.411 +/Pattern7 {PatternBgnd KeepColor Landscape {Pat8} {Pat7} ifelse setpattern} bind def 46.412 +} def 46.413 +% 46.414 +% 46.415 +%End of PostScript Level 2 code 46.416 +% 46.417 +/PatternBgnd { 46.418 + TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse 46.419 +} def 46.420 +% 46.421 +% Substitute for Level 2 pattern fill codes with 46.422 +% grayscale if Level 2 support is not selected. 46.423 +% 46.424 +/Level1PatternFill { 46.425 +/Pattern1 {0.250 Density} bind def 46.426 +/Pattern2 {0.500 Density} bind def 46.427 +/Pattern3 {0.750 Density} bind def 46.428 +/Pattern4 {0.125 Density} bind def 46.429 +/Pattern5 {0.375 Density} bind def 46.430 +/Pattern6 {0.625 Density} bind def 46.431 +/Pattern7 {0.875 Density} bind def 46.432 +} def 46.433 +% 46.434 +% Now test for support of Level 2 code 46.435 +% 46.436 +Level1 {Level1PatternFill} {Level2PatternFill} ifelse 46.437 +% 46.438 +/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont 46.439 +dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall 46.440 +currentdict end definefont pop 46.441 +/MFshow { 46.442 + { dup 5 get 3 ge 46.443 + { 5 get 3 eq {gsave} {grestore} ifelse } 46.444 + {dup dup 0 get findfont exch 1 get scalefont setfont 46.445 + [ currentpoint ] exch dup 2 get 0 exch R dup 5 get 2 ne {dup dup 6 46.446 + get exch 4 get {Gshow} {stringwidth pop 0 R} ifelse }if dup 5 get 0 eq 46.447 + {dup 3 get {2 get neg 0 exch R pop} {pop aload pop M} ifelse} {dup 5 46.448 + get 1 eq {dup 2 get exch dup 3 get exch 6 get stringwidth pop -2 div 46.449 + dup 0 R} {dup 6 get stringwidth pop -2 div 0 R 6 get 46.450 + show 2 index {aload pop M neg 3 -1 roll neg R pop pop} {pop pop pop 46.451 + pop aload pop M} ifelse }ifelse }ifelse } 46.452 + ifelse } 46.453 + forall} def 46.454 +/Gswidth {dup type /stringtype eq {stringwidth} {pop (n) stringwidth} ifelse} def 46.455 +/MFwidth {0 exch { dup 5 get 3 ge { 5 get 3 eq { 0 } { pop } ifelse } 46.456 + {dup 3 get{dup dup 0 get findfont exch 1 get scalefont setfont 46.457 + 6 get Gswidth pop add} {pop} ifelse} ifelse} forall} def 46.458 +/MLshow { currentpoint stroke M 46.459 + 0 exch R 46.460 + Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def 46.461 +/MRshow { currentpoint stroke M 46.462 + exch dup MFwidth neg 3 -1 roll R 46.463 + Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def 46.464 +/MCshow { currentpoint stroke M 46.465 + exch dup MFwidth -2 div 3 -1 roll R 46.466 + Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def 46.467 +/XYsave { [( ) 1 2 true false 3 ()] } bind def 46.468 +/XYrestore { [( ) 1 2 true false 4 ()] } bind def 46.469 +end 46.470 +%%EndProlog 46.471 +%%Page: 1 1 46.472 +gnudict begin 46.473 +gsave 46.474 +doclip 46.475 +50 50 translate 46.476 +0.100 0.100 scale 46.477 +90 rotate 46.478 +0 -5040 translate 46.479 +0 setgray 46.480 +newpath 46.481 +(Helvetica) findfont 140 scalefont setfont 46.482 +1.000 UL 46.483 +LTb 46.484 +686 922 M 46.485 +63 0 V 46.486 +stroke 46.487 +602 922 M 46.488 +[ [(Helvetica) 140.0 0.0 true true 0 ( 50)] 46.489 +] -46.7 MRshow 46.490 +1.000 UL 46.491 +LTb 46.492 +686 1405 M 46.493 +63 0 V 46.494 +stroke 46.495 +602 1405 M 46.496 +[ [(Helvetica) 140.0 0.0 true true 0 ( 100)] 46.497 +] -46.7 MRshow 46.498 +1.000 UL 46.499 +LTb 46.500 +686 1888 M 46.501 +63 0 V 46.502 +stroke 46.503 +602 1888 M 46.504 +[ [(Helvetica) 140.0 0.0 true true 0 ( 150)] 46.505 +] -46.7 MRshow 46.506 +1.000 UL 46.507 +LTb 46.508 +686 2372 M 46.509 +63 0 V 46.510 +stroke 46.511 +602 2372 M 46.512 +[ [(Helvetica) 140.0 0.0 true true 0 ( 200)] 46.513 +] -46.7 MRshow 46.514 +1.000 UL 46.515 +LTb 46.516 +686 2855 M 46.517 +63 0 V 46.518 +stroke 46.519 +602 2855 M 46.520 +[ [(Helvetica) 140.0 0.0 true true 0 ( 250)] 46.521 +] -46.7 MRshow 46.522 +1.000 UL 46.523 +LTb 46.524 +686 448 M 46.525 +0 63 V 46.526 +stroke 46.527 +686 308 M 46.528 +[ [(Helvetica) 140.0 0.0 true true 0 ( 0)] 46.529 +] -46.7 MCshow 46.530 +1.000 UL 46.531 +LTb 46.532 +1159 448 M 46.533 +0 63 V 46.534 +stroke 46.535 +1159 308 M 46.536 +[ [(Helvetica) 140.0 0.0 true true 0 ( 2000)] 46.537 +] -46.7 MCshow 46.538 +1.000 UL 46.539 +LTb 46.540 +1631 448 M 46.541 +0 63 V 46.542 +stroke 46.543 +1631 308 M 46.544 +[ [(Helvetica) 140.0 0.0 true true 0 ( 4000)] 46.545 +] -46.7 MCshow 46.546 +1.000 UL 46.547 +LTb 46.548 +2104 448 M 46.549 +0 63 V 46.550 +stroke 46.551 +2104 308 M 46.552 +[ [(Helvetica) 140.0 0.0 true true 0 ( 6000)] 46.553 +] -46.7 MCshow 46.554 +1.000 UL 46.555 +LTb 46.556 +2576 448 M 46.557 +0 63 V 46.558 +stroke 46.559 +2576 308 M 46.560 +[ [(Helvetica) 140.0 0.0 true true 0 ( 8000)] 46.561 +] -46.7 MCshow 46.562 +1.000 UL 46.563 +LTb 46.564 +1.000 UL 46.565 +LTb 46.566 +686 2855 M 46.567 +686 448 L 46.568 +1890 0 V 46.569 +0 2407 R 46.570 +-1890 0 R 46.571 +stroke 46.572 +LCb setrgbcolor 46.573 +112 1651 M 46.574 +currentpoint gsave translate -270 rotate 0 0 moveto 46.575 +[ [(Helvetica) 140.0 0.0 true true 0 (Ratio of Total Execution to Total Work)] 46.576 +] -46.7 MCshow 46.577 +grestore 46.578 +LTb 46.579 +LCb setrgbcolor 46.580 +1631 98 M 46.581 +[ [(Helvetica) 140.0 0.0 true true 0 (Cycles in one Task)] 46.582 +] -46.7 MCshow 46.583 +LTb 46.584 +1.000 UP 46.585 +1.000 UL 46.586 +LTb 46.587 +LCb setrgbcolor 46.588 +3489 2785 M 46.589 +[ [(Helvetica) 140.0 0.0 true true 0 (pthreads)] 46.590 +] -46.7 MCshow 46.591 +LTb 46.592 +1.000 UL 46.593 +LTb 46.594 +2744 2155 N 46.595 +0 700 V 46.596 +1491 0 V 46.597 +0 -700 V 46.598 +-1491 0 V 46.599 +Z stroke 46.600 +2744 2715 M 46.601 +1491 0 V 46.602 +% Begin plot #1 46.603 +stroke 46.604 +4.000 UL 46.605 +LT5 46.606 +LC7 setrgbcolor 46.607 +LCb setrgbcolor 46.608 +3668 2645 M 46.609 +[ [(Helvetica) 140.0 0.0 true true 0 (80 Threads)] 46.610 +] -46.7 MRshow 46.611 +LT5 46.612 +LC7 setrgbcolor 46.613 +3752 2645 M 46.614 +399 0 V 46.615 +1272 2855 M 46.616 +371 -919 V 46.617 +933 -698 V 46.618 +% End plot #1 46.619 +% Begin plot #2 46.620 +stroke 46.621 +LT6 46.622 +LCb setrgbcolor 46.623 +3668 2505 M 46.624 +[ [(Helvetica) 140.0 0.0 true true 0 (160 Threads)] 46.625 +] -46.7 MRshow 46.626 +LT6 46.627 +3752 2505 M 46.628 +399 0 V 46.629 +1280 2855 M 46.630 +1731 1723 L 46.631 +845 -658 V 46.632 +% End plot #2 46.633 +% Begin plot #3 46.634 +stroke 46.635 +LT7 46.636 +LC1 setrgbcolor 46.637 +LCb setrgbcolor 46.638 +3668 2365 M 46.639 +[ [(Helvetica) 140.0 0.0 true true 0 (320 Threads)] 46.640 +] -46.7 MRshow 46.641 +LT7 46.642 +LC1 setrgbcolor 46.643 +3752 2365 M 46.644 +399 0 V 46.645 +1096 2855 M 46.646 +95 -542 V 46.647 +439 -867 V 46.648 +2531 870 L 46.649 +% End plot #3 46.650 +% Begin plot #4 46.651 +stroke 46.652 +LT8 46.653 +LCb setrgbcolor 46.654 +3668 2225 M 46.655 +[ [(Helvetica) 140.0 0.0 true true 0 (640 Threads)] 46.656 +] -46.7 MRshow 46.657 +LT8 46.658 +3752 2225 M 46.659 +399 0 V 46.660 +1310 2855 M 46.661 +320 -574 V 46.662 +2543 1207 L 46.663 +% End plot #4 46.664 +stroke 46.665 +1.000 UL 46.666 +LTb 46.667 +686 2855 M 46.668 +686 448 L 46.669 +1890 0 V 46.670 +0 2407 R 46.671 +-1890 0 R 46.672 +1.000 UP 46.673 +686 922 M 46.674 +63 0 V 46.675 +stroke 46.676 +602 922 M 46.677 +[ [(Helvetica) 140.0 0.0 true true 0 ( 50)] 46.678 +] -46.7 MRshow 46.679 +1.000 UL 46.680 +LTb 46.681 +686 1405 M 46.682 +63 0 V 46.683 +stroke 46.684 +602 1405 M 46.685 +[ [(Helvetica) 140.0 0.0 true true 0 ( 100)] 46.686 +] -46.7 MRshow 46.687 +1.000 UL 46.688 +LTb 46.689 +686 1888 M 46.690 +63 0 V 46.691 +stroke 46.692 +602 1888 M 46.693 +[ [(Helvetica) 140.0 0.0 true true 0 ( 150)] 46.694 +] -46.7 MRshow 46.695 +1.000 UL 46.696 +LTb 46.697 +686 2372 M 46.698 +63 0 V 46.699 +stroke 46.700 +602 2372 M 46.701 +[ [(Helvetica) 140.0 0.0 true true 0 ( 200)] 46.702 +] -46.7 MRshow 46.703 +1.000 UL 46.704 +LTb 46.705 +686 2855 M 46.706 +63 0 V 46.707 +stroke 46.708 +602 2855 M 46.709 +[ [(Helvetica) 140.0 0.0 true true 0 ( 250)] 46.710 +] -46.7 MRshow 46.711 +1.000 UL 46.712 +LTb 46.713 +686 448 M 46.714 +0 63 V 46.715 +stroke 46.716 +686 308 M 46.717 +[ [(Helvetica) 140.0 0.0 true true 0 ( 0)] 46.718 +] -46.7 MCshow 46.719 +1.000 UL 46.720 +LTb 46.721 +1159 448 M 46.722 +0 63 V 46.723 +stroke 46.724 +1159 308 M 46.725 +[ [(Helvetica) 140.0 0.0 true true 0 ( 2000)] 46.726 +] -46.7 MCshow 46.727 +1.000 UL 46.728 +LTb 46.729 +1631 448 M 46.730 +0 63 V 46.731 +stroke 46.732 +1631 308 M 46.733 +[ [(Helvetica) 140.0 0.0 true true 0 ( 4000)] 46.734 +] -46.7 MCshow 46.735 +1.000 UL 46.736 +LTb 46.737 +2104 448 M 46.738 +0 63 V 46.739 +stroke 46.740 +2104 308 M 46.741 +[ [(Helvetica) 140.0 0.0 true true 0 ( 6000)] 46.742 +] -46.7 MCshow 46.743 +1.000 UL 46.744 +LTb 46.745 +2576 448 M 46.746 +0 63 V 46.747 +stroke 46.748 +2576 308 M 46.749 +[ [(Helvetica) 140.0 0.0 true true 0 ( 8000)] 46.750 +] -46.7 MCshow 46.751 +1.000 UL 46.752 +LTb 46.753 +1.000 UL 46.754 +LTb 46.755 +686 2855 M 46.756 +686 448 L 46.757 +1890 0 V 46.758 +0 2407 R 46.759 +-1890 0 R 46.760 +stroke 46.761 +LCb setrgbcolor 46.762 +112 1651 M 46.763 +currentpoint gsave translate -270 rotate 0 0 moveto 46.764 +[ [(Helvetica) 140.0 0.0 true true 0 (Ratio of Total Execution to Total Work)] 46.765 +] -46.7 MCshow 46.766 +grestore 46.767 +LTb 46.768 +LCb setrgbcolor 46.769 +1631 98 M 46.770 +[ [(Helvetica) 140.0 0.0 true true 0 (Cycles in one Task)] 46.771 +] -46.7 MCshow 46.772 +LTb 46.773 +1.000 UP 46.774 +1.000 UL 46.775 +LTb 46.776 +LCb setrgbcolor 46.777 +3489 1931 M 46.778 +[ [(Helvetica) 140.0 0.0 true true 0 (Vthread)] 46.779 +] -46.7 MCshow 46.780 +LTb 46.781 +1.000 UL 46.782 +LTb 46.783 +2744 1301 N 46.784 +0 700 V 46.785 +1491 0 V 46.786 +0 -700 V 46.787 +-1491 0 V 46.788 +Z stroke 46.789 +2744 1861 M 46.790 +1491 0 V 46.791 +% Begin plot #1 46.792 +stroke 46.793 +4.000 UL 46.794 +LT0 46.795 +LCb setrgbcolor 46.796 +3668 1791 M 46.797 +[ [(Helvetica) 140.0 0.0 true true 0 (80 Threads)] 46.798 +] -46.7 MRshow 46.799 +LT0 46.800 +3752 1791 M 46.801 +399 0 V 46.802 +718 626 M 46.803 +12 -61 V 46.804 +22 -36 V 46.805 +42 -37 V 46.806 +86 -17 V 46.807 +169 -13 V 46.808 +341 -7 V 46.809 +681 -2 V 46.810 +505 -1 V 46.811 +% End plot #1 46.812 +% Begin plot #2 46.813 +stroke 46.814 +LT2 46.815 +LCb setrgbcolor 46.816 +3668 1651 M 46.817 +[ [(Helvetica) 140.0 0.0 true true 0 (160 Threads)] 46.818 +] -46.7 MRshow 46.819 +LT2 46.820 +3752 1651 M 46.821 +399 0 V 46.822 +718 575 M 46.823 +13 4 V 46.824 +20 -82 V 46.825 +43 -20 V 46.826 +85 -6 V 46.827 +170 -12 V 46.828 +340 -4 V 46.829 +681 -4 V 46.830 +506 -1 V 46.831 +% End plot #2 46.832 +% Begin plot #3 46.833 +stroke 46.834 +LT3 46.835 +LCb setrgbcolor 46.836 +3668 1511 M 46.837 +[ [(Helvetica) 140.0 0.0 true true 0 (320 Threads)] 46.838 +] -46.7 MRshow 46.839 +LT3 46.840 +3752 1511 M 46.841 +399 0 V 46.842 +717 581 M 46.843 +13 -38 V 46.844 +23 -9 V 46.845 +42 -41 V 46.846 +85 -19 V 46.847 +169 -11 V 46.848 +341 -7 V 46.849 +680 -5 V 46.850 +506 -1 V 46.851 +% End plot #3 46.852 +% Begin plot #4 46.853 +stroke 46.854 +LT4 46.855 +LCb setrgbcolor 46.856 +3668 1371 M 46.857 +[ [(Helvetica) 140.0 0.0 true true 0 (640 Threads)] 46.858 +] -46.7 MRshow 46.859 +LT4 46.860 +3752 1371 M 46.861 +399 0 V 46.862 +718 589 M 46.863 +13 -41 V 46.864 +21 -29 V 46.865 +43 -20 V 46.866 +85 -28 V 46.867 +169 -12 V 46.868 +341 -4 V 46.869 +680 -4 V 46.870 +506 0 V 46.871 +% End plot #4 46.872 +stroke 46.873 +1.000 UL 46.874 +LTb 46.875 +686 2855 M 46.876 +686 448 L 46.877 +1890 0 V 46.878 +0 2407 R 46.879 +-1890 0 R 46.880 +1.000 UP 46.881 +stroke 46.882 +grestore 46.883 +end 46.884 +showpage 46.885 +%%Trailer 46.886 +%%DocumentFonts: Helvetica 46.887 +%%Pages: 1
47.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 47.2 +++ b/0__Papers/PRT/PRT__formal_def/figures/plots_exec_vs_task_size/not_used/xoanon_pthreads_vthread_40core_80_160_320_640thds__o30000__perfCtrs.meas.key-right.eps Sat Aug 03 19:24:22 2013 -0700 47.3 @@ -0,0 +1,948 @@ 47.4 +%!PS-Adobe-2.0 47.5 +%%Title: xoanon_pthreads_vthread_40core_80_160_320_640thds__o30000__perfCtrs.meas.key-right.eps 47.6 +%%Creator: gnuplot 4.4 patchlevel 2 47.7 +%%CreationDate: Thu Jan 26 18:32:06 2012 47.8 +%%DocumentFonts: (atend) 47.9 +%%BoundingBox: 251 50 554 482 47.10 +%%Orientation: Landscape 47.11 +%%Pages: (atend) 47.12 +%%EndComments 47.13 +%%BeginProlog 47.14 +/gnudict 256 dict def 47.15 +gnudict begin 47.16 +% 47.17 +% The following true/false flags may be edited by hand if desired. 47.18 +% The unit line width and grayscale image gamma correction may also be changed. 47.19 +% 47.20 +/Color true def 47.21 +/Blacktext false def 47.22 +/Solid false def 47.23 +/Dashlength 1 def 47.24 +/Landscape true def 47.25 +/Level1 false def 47.26 +/Rounded false def 47.27 +/ClipToBoundingBox false def 47.28 +/TransparentPatterns false def 47.29 +/gnulinewidth 5.000 def 47.30 +/userlinewidth gnulinewidth def 47.31 +/Gamma 1.0 def 47.32 +% 47.33 +/vshift -46 def 47.34 +/dl1 { 47.35 + 10.0 Dashlength mul mul 47.36 + Rounded { currentlinewidth 0.75 mul sub dup 0 le { pop 0.01 } if } if 47.37 +} def 47.38 +/dl2 { 47.39 + 10.0 Dashlength mul mul 47.40 + Rounded { currentlinewidth 0.75 mul add } if 47.41 +} def 47.42 +/hpt_ 31.5 def 47.43 +/vpt_ 31.5 def 47.44 +/hpt hpt_ def 47.45 +/vpt vpt_ def 47.46 +Level1 {} { 47.47 +/SDict 10 dict def 47.48 +systemdict /pdfmark known not { 47.49 + userdict /pdfmark systemdict /cleartomark get put 47.50 +} if 47.51 +SDict begin [ 47.52 + /Title (xoanon_pthreads_vthread_40core_80_160_320_640thds__o30000__perfCtrs.meas.key-right.eps) 47.53 + /Subject (gnuplot plot) 47.54 + /Creator (gnuplot 4.4 patchlevel 2) 47.55 + /Author (msach) 47.56 +% /Producer (gnuplot) 47.57 +% /Keywords () 47.58 + /CreationDate (Thu Jan 26 18:32:06 2012) 47.59 + /DOCINFO pdfmark 47.60 +end 47.61 +} ifelse 47.62 +/doclip { 47.63 + ClipToBoundingBox { 47.64 + newpath 251 50 moveto 554 50 lineto 554 482 lineto 251 482 lineto closepath 47.65 + clip 47.66 + } if 47.67 +} def 47.68 +% 47.69 +% Gnuplot Prolog Version 4.4 (August 2010) 47.70 +% 47.71 +%/SuppressPDFMark true def 47.72 +% 47.73 +/M {moveto} bind def 47.74 +/L {lineto} bind def 47.75 +/R {rmoveto} bind def 47.76 +/V {rlineto} bind def 47.77 +/N {newpath moveto} bind def 47.78 +/Z {closepath} bind def 47.79 +/C {setrgbcolor} bind def 47.80 +/f {rlineto fill} bind def 47.81 +/g {setgray} bind def 47.82 +/Gshow {show} def % May be redefined later in the file to support UTF-8 47.83 +/vpt2 vpt 2 mul def 47.84 +/hpt2 hpt 2 mul def 47.85 +/Lshow {currentpoint stroke M 0 vshift R 47.86 + Blacktext {gsave 0 setgray show grestore} {show} ifelse} def 47.87 +/Rshow {currentpoint stroke M dup stringwidth pop neg vshift R 47.88 + Blacktext {gsave 0 setgray show grestore} {show} ifelse} def 47.89 +/Cshow {currentpoint stroke M dup stringwidth pop -2 div vshift R 47.90 + Blacktext {gsave 0 setgray show grestore} {show} ifelse} def 47.91 +/UP {dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def 47.92 + /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def} def 47.93 +/DL {Color {setrgbcolor Solid {pop []} if 0 setdash} 47.94 + {pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse} def 47.95 +/BL {stroke userlinewidth 2 mul setlinewidth 47.96 + Rounded {1 setlinejoin 1 setlinecap} if} def 47.97 +/AL {stroke userlinewidth 2 div setlinewidth 47.98 + Rounded {1 setlinejoin 1 setlinecap} if} def 47.99 +/UL {dup gnulinewidth mul /userlinewidth exch def 47.100 + dup 1 lt {pop 1} if 10 mul /udl exch def} def 47.101 +/PL {stroke userlinewidth setlinewidth 47.102 + Rounded {1 setlinejoin 1 setlinecap} if} def 47.103 +3.8 setmiterlimit 47.104 +% Default Line colors 47.105 +/LCw {1 1 1} def 47.106 +/LCb {0 0 0} def 47.107 +/LCa {0 0 0} def 47.108 +/LC0 {1 0 0} def 47.109 +/LC1 {0 1 0} def 47.110 +/LC2 {0 0 1} def 47.111 +/LC3 {1 0 1} def 47.112 +/LC4 {0 1 1} def 47.113 +/LC5 {1 1 0} def 47.114 +/LC6 {0 0 0} def 47.115 +/LC7 {1 0.3 0} def 47.116 +/LC8 {0.5 0.5 0.5} def 47.117 +% Default Line Types 47.118 +/LTw {PL [] 1 setgray} def 47.119 +/LTb {BL [] LCb DL} def 47.120 +/LTa {AL [1 udl mul 2 udl mul] 0 setdash LCa setrgbcolor} def 47.121 +/LT0 {PL [] LC0 DL} def 47.122 +/LT1 {PL [4 dl1 2 dl2] LC1 DL} def 47.123 +/LT2 {PL [2 dl1 3 dl2] LC2 DL} def 47.124 +/LT3 {PL [1 dl1 1.5 dl2] LC3 DL} def 47.125 +/LT4 {PL [6 dl1 2 dl2 1 dl1 2 dl2] LC4 DL} def 47.126 +/LT5 {PL [3 dl1 3 dl2 1 dl1 3 dl2] LC5 DL} def 47.127 +/LT6 {PL [2 dl1 2 dl2 2 dl1 6 dl2] LC6 DL} def 47.128 +/LT7 {PL [1 dl1 2 dl2 6 dl1 2 dl2 1 dl1 2 dl2] LC7 DL} def 47.129 +/LT8 {PL [2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 4 dl2] LC8 DL} def 47.130 +/Pnt {stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore} def 47.131 +/Dia {stroke [] 0 setdash 2 copy vpt add M 47.132 + hpt neg vpt neg V hpt vpt neg V 47.133 + hpt vpt V hpt neg vpt V closepath stroke 47.134 + Pnt} def 47.135 +/Pls {stroke [] 0 setdash vpt sub M 0 vpt2 V 47.136 + currentpoint stroke M 47.137 + hpt neg vpt neg R hpt2 0 V stroke 47.138 + } def 47.139 +/Box {stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M 47.140 + 0 vpt2 neg V hpt2 0 V 0 vpt2 V 47.141 + hpt2 neg 0 V closepath stroke 47.142 + Pnt} def 47.143 +/Crs {stroke [] 0 setdash exch hpt sub exch vpt add M 47.144 + hpt2 vpt2 neg V currentpoint stroke M 47.145 + hpt2 neg 0 R hpt2 vpt2 V stroke} def 47.146 +/TriU {stroke [] 0 setdash 2 copy vpt 1.12 mul add M 47.147 + hpt neg vpt -1.62 mul V 47.148 + hpt 2 mul 0 V 47.149 + hpt neg vpt 1.62 mul V closepath stroke 47.150 + Pnt} def 47.151 +/Star {2 copy Pls Crs} def 47.152 +/BoxF {stroke [] 0 setdash exch hpt sub exch vpt add M 47.153 + 0 vpt2 neg V hpt2 0 V 0 vpt2 V 47.154 + hpt2 neg 0 V closepath fill} def 47.155 +/TriUF {stroke [] 0 setdash vpt 1.12 mul add M 47.156 + hpt neg vpt -1.62 mul V 47.157 + hpt 2 mul 0 V 47.158 + hpt neg vpt 1.62 mul V closepath fill} def 47.159 +/TriD {stroke [] 0 setdash 2 copy vpt 1.12 mul sub M 47.160 + hpt neg vpt 1.62 mul V 47.161 + hpt 2 mul 0 V 47.162 + hpt neg vpt -1.62 mul V closepath stroke 47.163 + Pnt} def 47.164 +/TriDF {stroke [] 0 setdash vpt 1.12 mul sub M 47.165 + hpt neg vpt 1.62 mul V 47.166 + hpt 2 mul 0 V 47.167 + hpt neg vpt -1.62 mul V closepath fill} def 47.168 +/DiaF {stroke [] 0 setdash vpt add M 47.169 + hpt neg vpt neg V hpt vpt neg V 47.170 + hpt vpt V hpt neg vpt V closepath fill} def 47.171 +/Pent {stroke [] 0 setdash 2 copy gsave 47.172 + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat 47.173 + closepath stroke grestore Pnt} def 47.174 +/PentF {stroke [] 0 setdash gsave 47.175 + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat 47.176 + closepath fill grestore} def 47.177 +/Circle {stroke [] 0 setdash 2 copy 47.178 + hpt 0 360 arc stroke Pnt} def 47.179 +/CircleF {stroke [] 0 setdash hpt 0 360 arc fill} def 47.180 +/C0 {BL [] 0 setdash 2 copy moveto vpt 90 450 arc} bind def 47.181 +/C1 {BL [] 0 setdash 2 copy moveto 47.182 + 2 copy vpt 0 90 arc closepath fill 47.183 + vpt 0 360 arc closepath} bind def 47.184 +/C2 {BL [] 0 setdash 2 copy moveto 47.185 + 2 copy vpt 90 180 arc closepath fill 47.186 + vpt 0 360 arc closepath} bind def 47.187 +/C3 {BL [] 0 setdash 2 copy moveto 47.188 + 2 copy vpt 0 180 arc closepath fill 47.189 + vpt 0 360 arc closepath} bind def 47.190 +/C4 {BL [] 0 setdash 2 copy moveto 47.191 + 2 copy vpt 180 270 arc closepath fill 47.192 + vpt 0 360 arc closepath} bind def 47.193 +/C5 {BL [] 0 setdash 2 copy moveto 47.194 + 2 copy vpt 0 90 arc 47.195 + 2 copy moveto 47.196 + 2 copy vpt 180 270 arc closepath fill 47.197 + vpt 0 360 arc} bind def 47.198 +/C6 {BL [] 0 setdash 2 copy moveto 47.199 + 2 copy vpt 90 270 arc closepath fill 47.200 + vpt 0 360 arc closepath} bind def 47.201 +/C7 {BL [] 0 setdash 2 copy moveto 47.202 + 2 copy vpt 0 270 arc closepath fill 47.203 + vpt 0 360 arc closepath} bind def 47.204 +/C8 {BL [] 0 setdash 2 copy moveto 47.205 + 2 copy vpt 270 360 arc closepath fill 47.206 + vpt 0 360 arc closepath} bind def 47.207 +/C9 {BL [] 0 setdash 2 copy moveto 47.208 + 2 copy vpt 270 450 arc closepath fill 47.209 + vpt 0 360 arc closepath} bind def 47.210 +/C10 {BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill 47.211 + 2 copy moveto 47.212 + 2 copy vpt 90 180 arc closepath fill 47.213 + vpt 0 360 arc closepath} bind def 47.214 +/C11 {BL [] 0 setdash 2 copy moveto 47.215 + 2 copy vpt 0 180 arc closepath fill 47.216 + 2 copy moveto 47.217 + 2 copy vpt 270 360 arc closepath fill 47.218 + vpt 0 360 arc closepath} bind def 47.219 +/C12 {BL [] 0 setdash 2 copy moveto 47.220 + 2 copy vpt 180 360 arc closepath fill 47.221 + vpt 0 360 arc closepath} bind def 47.222 +/C13 {BL [] 0 setdash 2 copy moveto 47.223 + 2 copy vpt 0 90 arc closepath fill 47.224 + 2 copy moveto 47.225 + 2 copy vpt 180 360 arc closepath fill 47.226 + vpt 0 360 arc closepath} bind def 47.227 +/C14 {BL [] 0 setdash 2 copy moveto 47.228 + 2 copy vpt 90 360 arc closepath fill 47.229 + vpt 0 360 arc} bind def 47.230 +/C15 {BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill 47.231 + vpt 0 360 arc closepath} bind def 47.232 +/Rec {newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto 47.233 + neg 0 rlineto closepath} bind def 47.234 +/Square {dup Rec} bind def 47.235 +/Bsquare {vpt sub exch vpt sub exch vpt2 Square} bind def 47.236 +/S0 {BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare} bind def 47.237 +/S1 {BL [] 0 setdash 2 copy vpt Square fill Bsquare} bind def 47.238 +/S2 {BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def 47.239 +/S3 {BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare} bind def 47.240 +/S4 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def 47.241 +/S5 {BL [] 0 setdash 2 copy 2 copy vpt Square fill 47.242 + exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def 47.243 +/S6 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare} bind def 47.244 +/S7 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill 47.245 + 2 copy vpt Square fill Bsquare} bind def 47.246 +/S8 {BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare} bind def 47.247 +/S9 {BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare} bind def 47.248 +/S10 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill 47.249 + Bsquare} bind def 47.250 +/S11 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill 47.251 + Bsquare} bind def 47.252 +/S12 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare} bind def 47.253 +/S13 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 47.254 + 2 copy vpt Square fill Bsquare} bind def 47.255 +/S14 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 47.256 + 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def 47.257 +/S15 {BL [] 0 setdash 2 copy Bsquare fill Bsquare} bind def 47.258 +/D0 {gsave translate 45 rotate 0 0 S0 stroke grestore} bind def 47.259 +/D1 {gsave translate 45 rotate 0 0 S1 stroke grestore} bind def 47.260 +/D2 {gsave translate 45 rotate 0 0 S2 stroke grestore} bind def 47.261 +/D3 {gsave translate 45 rotate 0 0 S3 stroke grestore} bind def 47.262 +/D4 {gsave translate 45 rotate 0 0 S4 stroke grestore} bind def 47.263 +/D5 {gsave translate 45 rotate 0 0 S5 stroke grestore} bind def 47.264 +/D6 {gsave translate 45 rotate 0 0 S6 stroke grestore} bind def 47.265 +/D7 {gsave translate 45 rotate 0 0 S7 stroke grestore} bind def 47.266 +/D8 {gsave translate 45 rotate 0 0 S8 stroke grestore} bind def 47.267 +/D9 {gsave translate 45 rotate 0 0 S9 stroke grestore} bind def 47.268 +/D10 {gsave translate 45 rotate 0 0 S10 stroke grestore} bind def 47.269 +/D11 {gsave translate 45 rotate 0 0 S11 stroke grestore} bind def 47.270 +/D12 {gsave translate 45 rotate 0 0 S12 stroke grestore} bind def 47.271 +/D13 {gsave translate 45 rotate 0 0 S13 stroke grestore} bind def 47.272 +/D14 {gsave translate 45 rotate 0 0 S14 stroke grestore} bind def 47.273 +/D15 {gsave translate 45 rotate 0 0 S15 stroke grestore} bind def 47.274 +/DiaE {stroke [] 0 setdash vpt add M 47.275 + hpt neg vpt neg V hpt vpt neg V 47.276 + hpt vpt V hpt neg vpt V closepath stroke} def 47.277 +/BoxE {stroke [] 0 setdash exch hpt sub exch vpt add M 47.278 + 0 vpt2 neg V hpt2 0 V 0 vpt2 V 47.279 + hpt2 neg 0 V closepath stroke} def 47.280 +/TriUE {stroke [] 0 setdash vpt 1.12 mul add M 47.281 + hpt neg vpt -1.62 mul V 47.282 + hpt 2 mul 0 V 47.283 + hpt neg vpt 1.62 mul V closepath stroke} def 47.284 +/TriDE {stroke [] 0 setdash vpt 1.12 mul sub M 47.285 + hpt neg vpt 1.62 mul V 47.286 + hpt 2 mul 0 V 47.287 + hpt neg vpt -1.62 mul V closepath stroke} def 47.288 +/PentE {stroke [] 0 setdash gsave 47.289 + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat 47.290 + closepath stroke grestore} def 47.291 +/CircE {stroke [] 0 setdash 47.292 + hpt 0 360 arc stroke} def 47.293 +/Opaque {gsave closepath 1 setgray fill grestore 0 setgray closepath} def 47.294 +/DiaW {stroke [] 0 setdash vpt add M 47.295 + hpt neg vpt neg V hpt vpt neg V 47.296 + hpt vpt V hpt neg vpt V Opaque stroke} def 47.297 +/BoxW {stroke [] 0 setdash exch hpt sub exch vpt add M 47.298 + 0 vpt2 neg V hpt2 0 V 0 vpt2 V 47.299 + hpt2 neg 0 V Opaque stroke} def 47.300 +/TriUW {stroke [] 0 setdash vpt 1.12 mul add M 47.301 + hpt neg vpt -1.62 mul V 47.302 + hpt 2 mul 0 V 47.303 + hpt neg vpt 1.62 mul V Opaque stroke} def 47.304 +/TriDW {stroke [] 0 setdash vpt 1.12 mul sub M 47.305 + hpt neg vpt 1.62 mul V 47.306 + hpt 2 mul 0 V 47.307 + hpt neg vpt -1.62 mul V Opaque stroke} def 47.308 +/PentW {stroke [] 0 setdash gsave 47.309 + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat 47.310 + Opaque stroke grestore} def 47.311 +/CircW {stroke [] 0 setdash 47.312 + hpt 0 360 arc Opaque stroke} def 47.313 +/BoxFill {gsave Rec 1 setgray fill grestore} def 47.314 +/Density { 47.315 + /Fillden exch def 47.316 + currentrgbcolor 47.317 + /ColB exch def /ColG exch def /ColR exch def 47.318 + /ColR ColR Fillden mul Fillden sub 1 add def 47.319 + /ColG ColG Fillden mul Fillden sub 1 add def 47.320 + /ColB ColB Fillden mul Fillden sub 1 add def 47.321 + ColR ColG ColB setrgbcolor} def 47.322 +/BoxColFill {gsave Rec PolyFill} def 47.323 +/PolyFill {gsave Density fill grestore grestore} def 47.324 +/h {rlineto rlineto rlineto gsave closepath fill grestore} bind def 47.325 +% 47.326 +% PostScript Level 1 Pattern Fill routine for rectangles 47.327 +% Usage: x y w h s a XX PatternFill 47.328 +% x,y = lower left corner of box to be filled 47.329 +% w,h = width and height of box 47.330 +% a = angle in degrees between lines and x-axis 47.331 +% XX = 0/1 for no/yes cross-hatch 47.332 +% 47.333 +/PatternFill {gsave /PFa [ 9 2 roll ] def 47.334 + PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate 47.335 + PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec 47.336 + gsave 1 setgray fill grestore clip 47.337 + currentlinewidth 0.5 mul setlinewidth 47.338 + /PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def 47.339 + 0 0 M PFa 5 get rotate PFs -2 div dup translate 47.340 + 0 1 PFs PFa 4 get div 1 add floor cvi 47.341 + {PFa 4 get mul 0 M 0 PFs V} for 47.342 + 0 PFa 6 get ne { 47.343 + 0 1 PFs PFa 4 get div 1 add floor cvi 47.344 + {PFa 4 get mul 0 2 1 roll M PFs 0 V} for 47.345 + } if 47.346 + stroke grestore} def 47.347 +% 47.348 +/languagelevel where 47.349 + {pop languagelevel} {1} ifelse 47.350 + 2 lt 47.351 + {/InterpretLevel1 true def} 47.352 + {/InterpretLevel1 Level1 def} 47.353 + ifelse 47.354 +% 47.355 +% PostScript level 2 pattern fill definitions 47.356 +% 47.357 +/Level2PatternFill { 47.358 +/Tile8x8 {/PaintType 2 /PatternType 1 /TilingType 1 /BBox [0 0 8 8] /XStep 8 /YStep 8} 47.359 + bind def 47.360 +/KeepColor {currentrgbcolor [/Pattern /DeviceRGB] setcolorspace} bind def 47.361 +<< Tile8x8 47.362 + /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke} 47.363 +>> matrix makepattern 47.364 +/Pat1 exch def 47.365 +<< Tile8x8 47.366 + /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke 47.367 + 0 4 M 4 8 L 8 4 L 4 0 L 0 4 L stroke} 47.368 +>> matrix makepattern 47.369 +/Pat2 exch def 47.370 +<< Tile8x8 47.371 + /PaintProc {0.5 setlinewidth pop 0 0 M 0 8 L 47.372 + 8 8 L 8 0 L 0 0 L fill} 47.373 +>> matrix makepattern 47.374 +/Pat3 exch def 47.375 +<< Tile8x8 47.376 + /PaintProc {0.5 setlinewidth pop -4 8 M 8 -4 L 47.377 + 0 12 M 12 0 L stroke} 47.378 +>> matrix makepattern 47.379 +/Pat4 exch def 47.380 +<< Tile8x8 47.381 + /PaintProc {0.5 setlinewidth pop -4 0 M 8 12 L 47.382 + 0 -4 M 12 8 L stroke} 47.383 +>> matrix makepattern 47.384 +/Pat5 exch def 47.385 +<< Tile8x8 47.386 + /PaintProc {0.5 setlinewidth pop -2 8 M 4 -4 L 47.387 + 0 12 M 8 -4 L 4 12 M 10 0 L stroke} 47.388 +>> matrix makepattern 47.389 +/Pat6 exch def 47.390 +<< Tile8x8 47.391 + /PaintProc {0.5 setlinewidth pop -2 0 M 4 12 L 47.392 + 0 -4 M 8 12 L 4 -4 M 10 8 L stroke} 47.393 +>> matrix makepattern 47.394 +/Pat7 exch def 47.395 +<< Tile8x8 47.396 + /PaintProc {0.5 setlinewidth pop 8 -2 M -4 4 L 47.397 + 12 0 M -4 8 L 12 4 M 0 10 L stroke} 47.398 +>> matrix makepattern 47.399 +/Pat8 exch def 47.400 +<< Tile8x8 47.401 + /PaintProc {0.5 setlinewidth pop 0 -2 M 12 4 L 47.402 + -4 0 M 12 8 L -4 4 M 8 10 L stroke} 47.403 +>> matrix makepattern 47.404 +/Pat9 exch def 47.405 +/Pattern1 {PatternBgnd KeepColor Pat1 setpattern} bind def 47.406 +/Pattern2 {PatternBgnd KeepColor Pat2 setpattern} bind def 47.407 +/Pattern3 {PatternBgnd KeepColor Pat3 setpattern} bind def 47.408 +/Pattern4 {PatternBgnd KeepColor Landscape {Pat5} {Pat4} ifelse setpattern} bind def 47.409 +/Pattern5 {PatternBgnd KeepColor Landscape {Pat4} {Pat5} ifelse setpattern} bind def 47.410 +/Pattern6 {PatternBgnd KeepColor Landscape {Pat9} {Pat6} ifelse setpattern} bind def 47.411 +/Pattern7 {PatternBgnd KeepColor Landscape {Pat8} {Pat7} ifelse setpattern} bind def 47.412 +} def 47.413 +% 47.414 +% 47.415 +%End of PostScript Level 2 code 47.416 +% 47.417 +/PatternBgnd { 47.418 + TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse 47.419 +} def 47.420 +% 47.421 +% Substitute for Level 2 pattern fill codes with 47.422 +% grayscale if Level 2 support is not selected. 47.423 +% 47.424 +/Level1PatternFill { 47.425 +/Pattern1 {0.250 Density} bind def 47.426 +/Pattern2 {0.500 Density} bind def 47.427 +/Pattern3 {0.750 Density} bind def 47.428 +/Pattern4 {0.125 Density} bind def 47.429 +/Pattern5 {0.375 Density} bind def 47.430 +/Pattern6 {0.625 Density} bind def 47.431 +/Pattern7 {0.875 Density} bind def 47.432 +} def 47.433 +% 47.434 +% Now test for support of Level 2 code 47.435 +% 47.436 +Level1 {Level1PatternFill} {Level2PatternFill} ifelse 47.437 +% 47.438 +/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont 47.439 +dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall 47.440 +currentdict end definefont pop 47.441 +/MFshow { 47.442 + { dup 5 get 3 ge 47.443 + { 5 get 3 eq {gsave} {grestore} ifelse } 47.444 + {dup dup 0 get findfont exch 1 get scalefont setfont 47.445 + [ currentpoint ] exch dup 2 get 0 exch R dup 5 get 2 ne {dup dup 6 47.446 + get exch 4 get {Gshow} {stringwidth pop 0 R} ifelse }if dup 5 get 0 eq 47.447 + {dup 3 get {2 get neg 0 exch R pop} {pop aload pop M} ifelse} {dup 5 47.448 + get 1 eq {dup 2 get exch dup 3 get exch 6 get stringwidth pop -2 div 47.449 + dup 0 R} {dup 6 get stringwidth pop -2 div 0 R 6 get 47.450 + show 2 index {aload pop M neg 3 -1 roll neg R pop pop} {pop pop pop 47.451 + pop aload pop M} ifelse }ifelse }ifelse } 47.452 + ifelse } 47.453 + forall} def 47.454 +/Gswidth {dup type /stringtype eq {stringwidth} {pop (n) stringwidth} ifelse} def 47.455 +/MFwidth {0 exch { dup 5 get 3 ge { 5 get 3 eq { 0 } { pop } ifelse } 47.456 + {dup 3 get{dup dup 0 get findfont exch 1 get scalefont setfont 47.457 + 6 get Gswidth pop add} {pop} ifelse} ifelse} forall} def 47.458 +/MLshow { currentpoint stroke M 47.459 + 0 exch R 47.460 + Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def 47.461 +/MRshow { currentpoint stroke M 47.462 + exch dup MFwidth neg 3 -1 roll R 47.463 + Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def 47.464 +/MCshow { currentpoint stroke M 47.465 + exch dup MFwidth -2 div 3 -1 roll R 47.466 + Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def 47.467 +/XYsave { [( ) 1 2 true false 3 ()] } bind def 47.468 +/XYrestore { [( ) 1 2 true false 4 ()] } bind def 47.469 +end 47.470 +%%EndProlog 47.471 +%%Page: 1 1 47.472 +gnudict begin 47.473 +gsave 47.474 +doclip 47.475 +50 50 translate 47.476 +0.100 0.100 scale 47.477 +90 rotate 47.478 +0 -5040 translate 47.479 +0 setgray 47.480 +newpath 47.481 +(Helvetica) findfont 140 scalefont setfont 47.482 +1.000 UL 47.483 +LTb 47.484 +686 922 M 47.485 +63 0 V 47.486 +stroke 47.487 +602 922 M 47.488 +[ [(Helvetica) 140.0 0.0 true true 0 ( 50)] 47.489 +] -46.7 MRshow 47.490 +1.000 UL 47.491 +LTb 47.492 +686 1405 M 47.493 +63 0 V 47.494 +stroke 47.495 +602 1405 M 47.496 +[ [(Helvetica) 140.0 0.0 true true 0 ( 100)] 47.497 +] -46.7 MRshow 47.498 +1.000 UL 47.499 +LTb 47.500 +686 1888 M 47.501 +63 0 V 47.502 +stroke 47.503 +602 1888 M 47.504 +[ [(Helvetica) 140.0 0.0 true true 0 ( 150)] 47.505 +] -46.7 MRshow 47.506 +1.000 UL 47.507 +LTb 47.508 +686 2372 M 47.509 +63 0 V 47.510 +stroke 47.511 +602 2372 M 47.512 +[ [(Helvetica) 140.0 0.0 true true 0 ( 200)] 47.513 +] -46.7 MRshow 47.514 +1.000 UL 47.515 +LTb 47.516 +686 2855 M 47.517 +63 0 V 47.518 +stroke 47.519 +602 2855 M 47.520 +[ [(Helvetica) 140.0 0.0 true true 0 ( 250)] 47.521 +] -46.7 MRshow 47.522 +1.000 UL 47.523 +LTb 47.524 +686 448 M 47.525 +0 63 V 47.526 +stroke 47.527 +686 308 M 47.528 +[ [(Helvetica) 140.0 0.0 true true 0 ( 0)] 47.529 +] -46.7 MCshow 47.530 +1.000 UL 47.531 +LTb 47.532 +1109 448 M 47.533 +0 63 V 47.534 +stroke 47.535 +1109 308 M 47.536 +[ [(Helvetica) 140.0 0.0 true true 0 ( 1000)] 47.537 +] -46.7 MCshow 47.538 +1.000 UL 47.539 +LTb 47.540 +1531 448 M 47.541 +0 63 V 47.542 +stroke 47.543 +1531 308 M 47.544 +[ [(Helvetica) 140.0 0.0 true true 0 ( 2000)] 47.545 +] -46.7 MCshow 47.546 +1.000 UL 47.547 +LTb 47.548 +1954 448 M 47.549 +0 63 V 47.550 +stroke 47.551 +1954 308 M 47.552 +[ [(Helvetica) 140.0 0.0 true true 0 ( 3000)] 47.553 +] -46.7 MCshow 47.554 +1.000 UL 47.555 +LTb 47.556 +2377 448 M 47.557 +0 63 V 47.558 +stroke 47.559 +2377 308 M 47.560 +[ [(Helvetica) 140.0 0.0 true true 0 ( 4000)] 47.561 +] -46.7 MCshow 47.562 +1.000 UL 47.563 +LTb 47.564 +2799 448 M 47.565 +0 63 V 47.566 +stroke 47.567 +2799 308 M 47.568 +[ [(Helvetica) 140.0 0.0 true true 0 ( 5000)] 47.569 +] -46.7 MCshow 47.570 +1.000 UL 47.571 +LTb 47.572 +3222 448 M 47.573 +0 63 V 47.574 +stroke 47.575 +3222 308 M 47.576 +[ [(Helvetica) 140.0 0.0 true true 0 ( 6000)] 47.577 +] -46.7 MCshow 47.578 +1.000 UL 47.579 +LTb 47.580 +3644 448 M 47.581 +0 63 V 47.582 +stroke 47.583 +3644 308 M 47.584 +[ [(Helvetica) 140.0 0.0 true true 0 ( 7000)] 47.585 +] -46.7 MCshow 47.586 +1.000 UL 47.587 +LTb 47.588 +4067 448 M 47.589 +0 63 V 47.590 +stroke 47.591 +4067 308 M 47.592 +[ [(Helvetica) 140.0 0.0 true true 0 ( 8000)] 47.593 +] -46.7 MCshow 47.594 +1.000 UL 47.595 +LTb 47.596 +1.000 UL 47.597 +LTb 47.598 +686 2855 M 47.599 +686 448 L 47.600 +3381 0 V 47.601 +0 2407 R 47.602 +-3381 0 R 47.603 +stroke 47.604 +LCb setrgbcolor 47.605 +112 1651 M 47.606 +currentpoint gsave translate -270 rotate 0 0 moveto 47.607 +[ [(Helvetica) 140.0 0.0 true true 0 (Ratio of Total Execution to Total Work)] 47.608 +] -46.7 MCshow 47.609 +grestore 47.610 +LTb 47.611 +LCb setrgbcolor 47.612 +2376 98 M 47.613 +[ [(Helvetica) 140.0 0.0 true true 0 (Cycles in one Task)] 47.614 +] -46.7 MCshow 47.615 +LTb 47.616 +1.000 UP 47.617 +1.000 UL 47.618 +LTb 47.619 +LCb setrgbcolor 47.620 +3532 2882 M 47.621 +[ [(Helvetica) 140.0 0.0 true true 0 (pthreads)] 47.622 +] -46.7 MCshow 47.623 +LTb 47.624 +1.000 UL 47.625 +LTb 47.626 +2787 2252 N 47.627 +0 700 V 47.628 +1491 0 V 47.629 +0 -700 V 47.630 +-1491 0 V 47.631 +Z stroke 47.632 +2787 2812 M 47.633 +1491 0 V 47.634 +% Begin plot #1 47.635 +stroke 47.636 +4.000 UL 47.637 +LT5 47.638 +LC7 setrgbcolor 47.639 +LCb setrgbcolor 47.640 +3711 2742 M 47.641 +[ [(Helvetica) 140.0 0.0 true true 0 (80 Threads)] 47.642 +] -46.7 MRshow 47.643 +LT5 47.644 +LC7 setrgbcolor 47.645 +3795 2742 M 47.646 +399 0 V 47.647 +1735 2855 M 47.648 +662 -919 V 47.649 +4067 1238 L 47.650 +% End plot #1 47.651 +% Begin plot #2 47.652 +stroke 47.653 +LT6 47.654 +LCb setrgbcolor 47.655 +3711 2602 M 47.656 +[ [(Helvetica) 140.0 0.0 true true 0 (160 Threads)] 47.657 +] -46.7 MRshow 47.658 +LT6 47.659 +3795 2602 M 47.660 +399 0 V 47.661 +1748 2855 M 47.662 +2555 1723 L 47.663 +4067 1065 L 47.664 +% End plot #2 47.665 +% Begin plot #3 47.666 +stroke 47.667 +LT7 47.668 +LC1 setrgbcolor 47.669 +LCb setrgbcolor 47.670 +3711 2462 M 47.671 +[ [(Helvetica) 140.0 0.0 true true 0 (320 Threads)] 47.672 +] -46.7 MRshow 47.673 +LT7 47.674 +LC1 setrgbcolor 47.675 +3795 2462 M 47.676 +399 0 V 47.677 +1420 2855 M 47.678 +170 -542 V 47.679 +784 -867 V 47.680 +3986 870 L 47.681 +% End plot #3 47.682 +% Begin plot #4 47.683 +stroke 47.684 +LT8 47.685 +LCb setrgbcolor 47.686 +3711 2322 M 47.687 +[ [(Helvetica) 140.0 0.0 true true 0 (640 Threads)] 47.688 +] -46.7 MRshow 47.689 +LT8 47.690 +3795 2322 M 47.691 +399 0 V 47.692 +1802 2855 M 47.693 +572 -574 V 47.694 +4007 1207 L 47.695 +% End plot #4 47.696 +stroke 47.697 +1.000 UL 47.698 +LTb 47.699 +686 2855 M 47.700 +686 448 L 47.701 +3381 0 V 47.702 +0 2407 R 47.703 +-3381 0 R 47.704 +1.000 UP 47.705 +686 922 M 47.706 +63 0 V 47.707 +stroke 47.708 +602 922 M 47.709 +[ [(Helvetica) 140.0 0.0 true true 0 ( 50)] 47.710 +] -46.7 MRshow 47.711 +1.000 UL 47.712 +LTb 47.713 +686 1405 M 47.714 +63 0 V 47.715 +stroke 47.716 +602 1405 M 47.717 +[ [(Helvetica) 140.0 0.0 true true 0 ( 100)] 47.718 +] -46.7 MRshow 47.719 +1.000 UL 47.720 +LTb 47.721 +686 1888 M 47.722 +63 0 V 47.723 +stroke 47.724 +602 1888 M 47.725 +[ [(Helvetica) 140.0 0.0 true true 0 ( 150)] 47.726 +] -46.7 MRshow 47.727 +1.000 UL 47.728 +LTb 47.729 +686 2372 M 47.730 +63 0 V 47.731 +stroke 47.732 +602 2372 M 47.733 +[ [(Helvetica) 140.0 0.0 true true 0 ( 200)] 47.734 +] -46.7 MRshow 47.735 +1.000 UL 47.736 +LTb 47.737 +686 2855 M 47.738 +63 0 V 47.739 +stroke 47.740 +602 2855 M 47.741 +[ [(Helvetica) 140.0 0.0 true true 0 ( 250)] 47.742 +] -46.7 MRshow 47.743 +1.000 UL 47.744 +LTb 47.745 +686 448 M 47.746 +0 63 V 47.747 +stroke 47.748 +686 308 M 47.749 +[ [(Helvetica) 140.0 0.0 true true 0 ( 0)] 47.750 +] -46.7 MCshow 47.751 +1.000 UL 47.752 +LTb 47.753 +1109 448 M 47.754 +0 63 V 47.755 +stroke 47.756 +1109 308 M 47.757 +[ [(Helvetica) 140.0 0.0 true true 0 ( 1000)] 47.758 +] -46.7 MCshow 47.759 +1.000 UL 47.760 +LTb 47.761 +1531 448 M 47.762 +0 63 V 47.763 +stroke 47.764 +1531 308 M 47.765 +[ [(Helvetica) 140.0 0.0 true true 0 ( 2000)] 47.766 +] -46.7 MCshow 47.767 +1.000 UL 47.768 +LTb 47.769 +1954 448 M 47.770 +0 63 V 47.771 +stroke 47.772 +1954 308 M 47.773 +[ [(Helvetica) 140.0 0.0 true true 0 ( 3000)] 47.774 +] -46.7 MCshow 47.775 +1.000 UL 47.776 +LTb 47.777 +2377 448 M 47.778 +0 63 V 47.779 +stroke 47.780 +2377 308 M 47.781 +[ [(Helvetica) 140.0 0.0 true true 0 ( 4000)] 47.782 +] -46.7 MCshow 47.783 +1.000 UL 47.784 +LTb 47.785 +2799 448 M 47.786 +0 63 V 47.787 +stroke 47.788 +2799 308 M 47.789 +[ [(Helvetica) 140.0 0.0 true true 0 ( 5000)] 47.790 +] -46.7 MCshow 47.791 +1.000 UL 47.792 +LTb 47.793 +3222 448 M 47.794 +0 63 V 47.795 +stroke 47.796 +3222 308 M 47.797 +[ [(Helvetica) 140.0 0.0 true true 0 ( 6000)] 47.798 +] -46.7 MCshow 47.799 +1.000 UL 47.800 +LTb 47.801 +3644 448 M 47.802 +0 63 V 47.803 +stroke 47.804 +3644 308 M 47.805 +[ [(Helvetica) 140.0 0.0 true true 0 ( 7000)] 47.806 +] -46.7 MCshow 47.807 +1.000 UL 47.808 +LTb 47.809 +4067 448 M 47.810 +0 63 V 47.811 +stroke 47.812 +4067 308 M 47.813 +[ [(Helvetica) 140.0 0.0 true true 0 ( 8000)] 47.814 +] -46.7 MCshow 47.815 +1.000 UL 47.816 +LTb 47.817 +1.000 UL 47.818 +LTb 47.819 +686 2855 M 47.820 +686 448 L 47.821 +3381 0 V 47.822 +0 2407 R 47.823 +-3381 0 R 47.824 +stroke 47.825 +LCb setrgbcolor 47.826 +112 1651 M 47.827 +currentpoint gsave translate -270 rotate 0 0 moveto 47.828 +[ [(Helvetica) 140.0 0.0 true true 0 (Ratio of Total Execution to Total Work)] 47.829 +] -46.7 MCshow 47.830 +grestore 47.831 +LTb 47.832 +LCb setrgbcolor 47.833 +2376 98 M 47.834 +[ [(Helvetica) 140.0 0.0 true true 0 (Cycles in one Task)] 47.835 +] -46.7 MCshow 47.836 +LTb 47.837 +1.000 UP 47.838 +1.000 UL 47.839 +LTb 47.840 +LCb setrgbcolor 47.841 +3532 2108 M 47.842 +[ [(Helvetica) 140.0 0.0 true true 0 (Vthread)] 47.843 +] -46.7 MCshow 47.844 +LTb 47.845 +1.000 UL 47.846 +LTb 47.847 +2787 1478 N 47.848 +0 700 V 47.849 +1491 0 V 47.850 +0 -700 V 47.851 +-1491 0 V 47.852 +Z stroke 47.853 +2787 2038 M 47.854 +1491 0 V 47.855 +% Begin plot #1 47.856 +stroke 47.857 +4.000 UL 47.858 +LT0 47.859 +LCb setrgbcolor 47.860 +3711 1968 M 47.861 +[ [(Helvetica) 140.0 0.0 true true 0 (80 Threads)] 47.862 +] -46.7 MRshow 47.863 +LT0 47.864 +3795 1968 M 47.865 +399 0 V 47.866 +743 626 M 47.867 +22 -61 V 47.868 +39 -36 V 47.869 +75 -37 V 47.870 +154 -17 V 47.871 +303 -13 V 47.872 +609 -7 V 47.873 +1218 -2 V 47.874 +904 -1 V 47.875 +% End plot #1 47.876 +% Begin plot #2 47.877 +stroke 47.878 +LT2 47.879 +LCb setrgbcolor 47.880 +3711 1828 M 47.881 +[ [(Helvetica) 140.0 0.0 true true 0 (160 Threads)] 47.882 +] -46.7 MRshow 47.883 +LT2 47.884 +3795 1828 M 47.885 +399 0 V 47.886 +743 575 M 47.887 +24 4 V 47.888 +36 -82 V 47.889 +76 -20 V 47.890 +153 -6 V 47.891 +303 -12 V 47.892 +609 -4 V 47.893 +1217 -4 V 47.894 +906 -1 V 47.895 +% End plot #2 47.896 +% Begin plot #3 47.897 +stroke 47.898 +LT3 47.899 +LCb setrgbcolor 47.900 +3711 1688 M 47.901 +[ [(Helvetica) 140.0 0.0 true true 0 (320 Threads)] 47.902 +] -46.7 MRshow 47.903 +LT3 47.904 +3795 1688 M 47.905 +399 0 V 47.906 +742 581 M 47.907 +24 -38 V 47.908 +39 -9 V 47.909 +76 -41 V 47.910 +151 -19 V 47.911 +304 -11 V 47.912 +610 -7 V 47.913 +1216 -5 V 47.914 +905 -1 V 47.915 +% End plot #3 47.916 +% Begin plot #4 47.917 +stroke 47.918 +LT4 47.919 +LCb setrgbcolor 47.920 +3711 1548 M 47.921 +[ [(Helvetica) 140.0 0.0 true true 0 (640 Threads)] 47.922 +] -46.7 MRshow 47.923 +LT4 47.924 +3795 1548 M 47.925 +399 0 V 47.926 +743 589 M 47.927 +23 -41 V 47.928 +38 -29 V 47.929 +77 -20 V 47.930 +151 -28 V 47.931 +303 -12 V 47.932 +610 -4 V 47.933 +1217 -4 V 47.934 +905 0 V 47.935 +% End plot #4 47.936 +stroke 47.937 +1.000 UL 47.938 +LTb 47.939 +686 2855 M 47.940 +686 448 L 47.941 +3381 0 V 47.942 +0 2407 R 47.943 +-3381 0 R 47.944 +1.000 UP 47.945 +stroke 47.946 +grestore 47.947 +end 47.948 +showpage 47.949 +%%Trailer 47.950 +%%DocumentFonts: Helvetica 47.951 +%%Pages: 1
48.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 48.2 +++ b/0__Papers/PRT/PRT__formal_def/figures/plots_exec_vs_task_size/not_used/xoanon_vthread_40cores_80_160_320_640thds__o30000__perfCtrs.result.eps Sat Aug 03 19:24:22 2013 -0700 48.3 @@ -0,0 +1,844 @@ 48.4 +%!PS-Adobe-2.0 48.5 +%%Title: xoanon_vthread_40cores_80_160_320_640thds__o30000__perfCtrs.result.eps 48.6 +%%Creator: gnuplot 4.4 patchlevel 2 48.7 +%%CreationDate: Thu Jan 26 18:23:52 2012 48.8 +%%DocumentFonts: (atend) 48.9 +%%BoundingBox: 251 50 554 482 48.10 +%%Orientation: Landscape 48.11 +%%Pages: (atend) 48.12 +%%EndComments 48.13 +%%BeginProlog 48.14 +/gnudict 256 dict def 48.15 +gnudict begin 48.16 +% 48.17 +% The following true/false flags may be edited by hand if desired. 48.18 +% The unit line width and grayscale image gamma correction may also be changed. 48.19 +% 48.20 +/Color true def 48.21 +/Blacktext false def 48.22 +/Solid false def 48.23 +/Dashlength 1 def 48.24 +/Landscape true def 48.25 +/Level1 false def 48.26 +/Rounded false def 48.27 +/ClipToBoundingBox false def 48.28 +/TransparentPatterns false def 48.29 +/gnulinewidth 5.000 def 48.30 +/userlinewidth gnulinewidth def 48.31 +/Gamma 1.0 def 48.32 +% 48.33 +/vshift -46 def 48.34 +/dl1 { 48.35 + 10.0 Dashlength mul mul 48.36 + Rounded { currentlinewidth 0.75 mul sub dup 0 le { pop 0.01 } if } if 48.37 +} def 48.38 +/dl2 { 48.39 + 10.0 Dashlength mul mul 48.40 + Rounded { currentlinewidth 0.75 mul add } if 48.41 +} def 48.42 +/hpt_ 31.5 def 48.43 +/vpt_ 31.5 def 48.44 +/hpt hpt_ def 48.45 +/vpt vpt_ def 48.46 +Level1 {} { 48.47 +/SDict 10 dict def 48.48 +systemdict /pdfmark known not { 48.49 + userdict /pdfmark systemdict /cleartomark get put 48.50 +} if 48.51 +SDict begin [ 48.52 + /Title (xoanon_vthread_40cores_80_160_320_640thds__o30000__perfCtrs.result.eps) 48.53 + /Subject (gnuplot plot) 48.54 + /Creator (gnuplot 4.4 patchlevel 2) 48.55 + /Author (msach) 48.56 +% /Producer (gnuplot) 48.57 +% /Keywords () 48.58 + /CreationDate (Thu Jan 26 18:23:52 2012) 48.59 + /DOCINFO pdfmark 48.60 +end 48.61 +} ifelse 48.62 +/doclip { 48.63 + ClipToBoundingBox { 48.64 + newpath 251 50 moveto 554 50 lineto 554 482 lineto 251 482 lineto closepath 48.65 + clip 48.66 + } if 48.67 +} def 48.68 +% 48.69 +% Gnuplot Prolog Version 4.4 (August 2010) 48.70 +% 48.71 +%/SuppressPDFMark true def 48.72 +% 48.73 +/M {moveto} bind def 48.74 +/L {lineto} bind def 48.75 +/R {rmoveto} bind def 48.76 +/V {rlineto} bind def 48.77 +/N {newpath moveto} bind def 48.78 +/Z {closepath} bind def 48.79 +/C {setrgbcolor} bind def 48.80 +/f {rlineto fill} bind def 48.81 +/g {setgray} bind def 48.82 +/Gshow {show} def % May be redefined later in the file to support UTF-8 48.83 +/vpt2 vpt 2 mul def 48.84 +/hpt2 hpt 2 mul def 48.85 +/Lshow {currentpoint stroke M 0 vshift R 48.86 + Blacktext {gsave 0 setgray show grestore} {show} ifelse} def 48.87 +/Rshow {currentpoint stroke M dup stringwidth pop neg vshift R 48.88 + Blacktext {gsave 0 setgray show grestore} {show} ifelse} def 48.89 +/Cshow {currentpoint stroke M dup stringwidth pop -2 div vshift R 48.90 + Blacktext {gsave 0 setgray show grestore} {show} ifelse} def 48.91 +/UP {dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def 48.92 + /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def} def 48.93 +/DL {Color {setrgbcolor Solid {pop []} if 0 setdash} 48.94 + {pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse} def 48.95 +/BL {stroke userlinewidth 2 mul setlinewidth 48.96 + Rounded {1 setlinejoin 1 setlinecap} if} def 48.97 +/AL {stroke userlinewidth 2 div setlinewidth 48.98 + Rounded {1 setlinejoin 1 setlinecap} if} def 48.99 +/UL {dup gnulinewidth mul /userlinewidth exch def 48.100 + dup 1 lt {pop 1} if 10 mul /udl exch def} def 48.101 +/PL {stroke userlinewidth setlinewidth 48.102 + Rounded {1 setlinejoin 1 setlinecap} if} def 48.103 +3.8 setmiterlimit 48.104 +% Default Line colors 48.105 +/LCw {1 1 1} def 48.106 +/LCb {0 0 0} def 48.107 +/LCa {0 0 0} def 48.108 +/LC0 {1 0 0} def 48.109 +/LC1 {0 1 0} def 48.110 +/LC2 {0 0 1} def 48.111 +/LC3 {1 0 1} def 48.112 +/LC4 {0 1 1} def 48.113 +/LC5 {1 1 0} def 48.114 +/LC6 {0 0 0} def 48.115 +/LC7 {1 0.3 0} def 48.116 +/LC8 {0.5 0.5 0.5} def 48.117 +% Default Line Types 48.118 +/LTw {PL [] 1 setgray} def 48.119 +/LTb {BL [] LCb DL} def 48.120 +/LTa {AL [1 udl mul 2 udl mul] 0 setdash LCa setrgbcolor} def 48.121 +/LT0 {PL [] LC0 DL} def 48.122 +/LT1 {PL [4 dl1 2 dl2] LC1 DL} def 48.123 +/LT2 {PL [2 dl1 3 dl2] LC2 DL} def 48.124 +/LT3 {PL [1 dl1 1.5 dl2] LC3 DL} def 48.125 +/LT4 {PL [6 dl1 2 dl2 1 dl1 2 dl2] LC4 DL} def 48.126 +/LT5 {PL [3 dl1 3 dl2 1 dl1 3 dl2] LC5 DL} def 48.127 +/LT6 {PL [2 dl1 2 dl2 2 dl1 6 dl2] LC6 DL} def 48.128 +/LT7 {PL [1 dl1 2 dl2 6 dl1 2 dl2 1 dl1 2 dl2] LC7 DL} def 48.129 +/LT8 {PL [2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 4 dl2] LC8 DL} def 48.130 +/Pnt {stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore} def 48.131 +/Dia {stroke [] 0 setdash 2 copy vpt add M 48.132 + hpt neg vpt neg V hpt vpt neg V 48.133 + hpt vpt V hpt neg vpt V closepath stroke 48.134 + Pnt} def 48.135 +/Pls {stroke [] 0 setdash vpt sub M 0 vpt2 V 48.136 + currentpoint stroke M 48.137 + hpt neg vpt neg R hpt2 0 V stroke 48.138 + } def 48.139 +/Box {stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M 48.140 + 0 vpt2 neg V hpt2 0 V 0 vpt2 V 48.141 + hpt2 neg 0 V closepath stroke 48.142 + Pnt} def 48.143 +/Crs {stroke [] 0 setdash exch hpt sub exch vpt add M 48.144 + hpt2 vpt2 neg V currentpoint stroke M 48.145 + hpt2 neg 0 R hpt2 vpt2 V stroke} def 48.146 +/TriU {stroke [] 0 setdash 2 copy vpt 1.12 mul add M 48.147 + hpt neg vpt -1.62 mul V 48.148 + hpt 2 mul 0 V 48.149 + hpt neg vpt 1.62 mul V closepath stroke 48.150 + Pnt} def 48.151 +/Star {2 copy Pls Crs} def 48.152 +/BoxF {stroke [] 0 setdash exch hpt sub exch vpt add M 48.153 + 0 vpt2 neg V hpt2 0 V 0 vpt2 V 48.154 + hpt2 neg 0 V closepath fill} def 48.155 +/TriUF {stroke [] 0 setdash vpt 1.12 mul add M 48.156 + hpt neg vpt -1.62 mul V 48.157 + hpt 2 mul 0 V 48.158 + hpt neg vpt 1.62 mul V closepath fill} def 48.159 +/TriD {stroke [] 0 setdash 2 copy vpt 1.12 mul sub M 48.160 + hpt neg vpt 1.62 mul V 48.161 + hpt 2 mul 0 V 48.162 + hpt neg vpt -1.62 mul V closepath stroke 48.163 + Pnt} def 48.164 +/TriDF {stroke [] 0 setdash vpt 1.12 mul sub M 48.165 + hpt neg vpt 1.62 mul V 48.166 + hpt 2 mul 0 V 48.167 + hpt neg vpt -1.62 mul V closepath fill} def 48.168 +/DiaF {stroke [] 0 setdash vpt add M 48.169 + hpt neg vpt neg V hpt vpt neg V 48.170 + hpt vpt V hpt neg vpt V closepath fill} def 48.171 +/Pent {stroke [] 0 setdash 2 copy gsave 48.172 + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat 48.173 + closepath stroke grestore Pnt} def 48.174 +/PentF {stroke [] 0 setdash gsave 48.175 + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat 48.176 + closepath fill grestore} def 48.177 +/Circle {stroke [] 0 setdash 2 copy 48.178 + hpt 0 360 arc stroke Pnt} def 48.179 +/CircleF {stroke [] 0 setdash hpt 0 360 arc fill} def 48.180 +/C0 {BL [] 0 setdash 2 copy moveto vpt 90 450 arc} bind def 48.181 +/C1 {BL [] 0 setdash 2 copy moveto 48.182 + 2 copy vpt 0 90 arc closepath fill 48.183 + vpt 0 360 arc closepath} bind def 48.184 +/C2 {BL [] 0 setdash 2 copy moveto 48.185 + 2 copy vpt 90 180 arc closepath fill 48.186 + vpt 0 360 arc closepath} bind def 48.187 +/C3 {BL [] 0 setdash 2 copy moveto 48.188 + 2 copy vpt 0 180 arc closepath fill 48.189 + vpt 0 360 arc closepath} bind def 48.190 +/C4 {BL [] 0 setdash 2 copy moveto 48.191 + 2 copy vpt 180 270 arc closepath fill 48.192 + vpt 0 360 arc closepath} bind def 48.193 +/C5 {BL [] 0 setdash 2 copy moveto 48.194 + 2 copy vpt 0 90 arc 48.195 + 2 copy moveto 48.196 + 2 copy vpt 180 270 arc closepath fill 48.197 + vpt 0 360 arc} bind def 48.198 +/C6 {BL [] 0 setdash 2 copy moveto 48.199 + 2 copy vpt 90 270 arc closepath fill 48.200 + vpt 0 360 arc closepath} bind def 48.201 +/C7 {BL [] 0 setdash 2 copy moveto 48.202 + 2 copy vpt 0 270 arc closepath fill 48.203 + vpt 0 360 arc closepath} bind def 48.204 +/C8 {BL [] 0 setdash 2 copy moveto 48.205 + 2 copy vpt 270 360 arc closepath fill 48.206 + vpt 0 360 arc closepath} bind def 48.207 +/C9 {BL [] 0 setdash 2 copy moveto 48.208 + 2 copy vpt 270 450 arc closepath fill 48.209 + vpt 0 360 arc closepath} bind def 48.210 +/C10 {BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill 48.211 + 2 copy moveto 48.212 + 2 copy vpt 90 180 arc closepath fill 48.213 + vpt 0 360 arc closepath} bind def 48.214 +/C11 {BL [] 0 setdash 2 copy moveto 48.215 + 2 copy vpt 0 180 arc closepath fill 48.216 + 2 copy moveto 48.217 + 2 copy vpt 270 360 arc closepath fill 48.218 + vpt 0 360 arc closepath} bind def 48.219 +/C12 {BL [] 0 setdash 2 copy moveto 48.220 + 2 copy vpt 180 360 arc closepath fill 48.221 + vpt 0 360 arc closepath} bind def 48.222 +/C13 {BL [] 0 setdash 2 copy moveto 48.223 + 2 copy vpt 0 90 arc closepath fill 48.224 + 2 copy moveto 48.225 + 2 copy vpt 180 360 arc closepath fill 48.226 + vpt 0 360 arc closepath} bind def 48.227 +/C14 {BL [] 0 setdash 2 copy moveto 48.228 + 2 copy vpt 90 360 arc closepath fill 48.229 + vpt 0 360 arc} bind def 48.230 +/C15 {BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill 48.231 + vpt 0 360 arc closepath} bind def 48.232 +/Rec {newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto 48.233 + neg 0 rlineto closepath} bind def 48.234 +/Square {dup Rec} bind def 48.235 +/Bsquare {vpt sub exch vpt sub exch vpt2 Square} bind def 48.236 +/S0 {BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare} bind def 48.237 +/S1 {BL [] 0 setdash 2 copy vpt Square fill Bsquare} bind def 48.238 +/S2 {BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def 48.239 +/S3 {BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare} bind def 48.240 +/S4 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def 48.241 +/S5 {BL [] 0 setdash 2 copy 2 copy vpt Square fill 48.242 + exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def 48.243 +/S6 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare} bind def 48.244 +/S7 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill 48.245 + 2 copy vpt Square fill Bsquare} bind def 48.246 +/S8 {BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare} bind def 48.247 +/S9 {BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare} bind def 48.248 +/S10 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill 48.249 + Bsquare} bind def 48.250 +/S11 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill 48.251 + Bsquare} bind def 48.252 +/S12 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare} bind def 48.253 +/S13 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 48.254 + 2 copy vpt Square fill Bsquare} bind def 48.255 +/S14 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 48.256 + 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def 48.257 +/S15 {BL [] 0 setdash 2 copy Bsquare fill Bsquare} bind def 48.258 +/D0 {gsave translate 45 rotate 0 0 S0 stroke grestore} bind def 48.259 +/D1 {gsave translate 45 rotate 0 0 S1 stroke grestore} bind def 48.260 +/D2 {gsave translate 45 rotate 0 0 S2 stroke grestore} bind def 48.261 +/D3 {gsave translate 45 rotate 0 0 S3 stroke grestore} bind def 48.262 +/D4 {gsave translate 45 rotate 0 0 S4 stroke grestore} bind def 48.263 +/D5 {gsave translate 45 rotate 0 0 S5 stroke grestore} bind def 48.264 +/D6 {gsave translate 45 rotate 0 0 S6 stroke grestore} bind def 48.265 +/D7 {gsave translate 45 rotate 0 0 S7 stroke grestore} bind def 48.266 +/D8 {gsave translate 45 rotate 0 0 S8 stroke grestore} bind def 48.267 +/D9 {gsave translate 45 rotate 0 0 S9 stroke grestore} bind def 48.268 +/D10 {gsave translate 45 rotate 0 0 S10 stroke grestore} bind def 48.269 +/D11 {gsave translate 45 rotate 0 0 S11 stroke grestore} bind def 48.270 +/D12 {gsave translate 45 rotate 0 0 S12 stroke grestore} bind def 48.271 +/D13 {gsave translate 45 rotate 0 0 S13 stroke grestore} bind def 48.272 +/D14 {gsave translate 45 rotate 0 0 S14 stroke grestore} bind def 48.273 +/D15 {gsave translate 45 rotate 0 0 S15 stroke grestore} bind def 48.274 +/DiaE {stroke [] 0 setdash vpt add M 48.275 + hpt neg vpt neg V hpt vpt neg V 48.276 + hpt vpt V hpt neg vpt V closepath stroke} def 48.277 +/BoxE {stroke [] 0 setdash exch hpt sub exch vpt add M 48.278 + 0 vpt2 neg V hpt2 0 V 0 vpt2 V 48.279 + hpt2 neg 0 V closepath stroke} def 48.280 +/TriUE {stroke [] 0 setdash vpt 1.12 mul add M 48.281 + hpt neg vpt -1.62 mul V 48.282 + hpt 2 mul 0 V 48.283 + hpt neg vpt 1.62 mul V closepath stroke} def 48.284 +/TriDE {stroke [] 0 setdash vpt 1.12 mul sub M 48.285 + hpt neg vpt 1.62 mul V 48.286 + hpt 2 mul 0 V 48.287 + hpt neg vpt -1.62 mul V closepath stroke} def 48.288 +/PentE {stroke [] 0 setdash gsave 48.289 + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat 48.290 + closepath stroke grestore} def 48.291 +/CircE {stroke [] 0 setdash 48.292 + hpt 0 360 arc stroke} def 48.293 +/Opaque {gsave closepath 1 setgray fill grestore 0 setgray closepath} def 48.294 +/DiaW {stroke [] 0 setdash vpt add M 48.295 + hpt neg vpt neg V hpt vpt neg V 48.296 + hpt vpt V hpt neg vpt V Opaque stroke} def 48.297 +/BoxW {stroke [] 0 setdash exch hpt sub exch vpt add M 48.298 + 0 vpt2 neg V hpt2 0 V 0 vpt2 V 48.299 + hpt2 neg 0 V Opaque stroke} def 48.300 +/TriUW {stroke [] 0 setdash vpt 1.12 mul add M 48.301 + hpt neg vpt -1.62 mul V 48.302 + hpt 2 mul 0 V 48.303 + hpt neg vpt 1.62 mul V Opaque stroke} def 48.304 +/TriDW {stroke [] 0 setdash vpt 1.12 mul sub M 48.305 + hpt neg vpt 1.62 mul V 48.306 + hpt 2 mul 0 V 48.307 + hpt neg vpt -1.62 mul V Opaque stroke} def 48.308 +/PentW {stroke [] 0 setdash gsave 48.309 + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat 48.310 + Opaque stroke grestore} def 48.311 +/CircW {stroke [] 0 setdash 48.312 + hpt 0 360 arc Opaque stroke} def 48.313 +/BoxFill {gsave Rec 1 setgray fill grestore} def 48.314 +/Density { 48.315 + /Fillden exch def 48.316 + currentrgbcolor 48.317 + /ColB exch def /ColG exch def /ColR exch def 48.318 + /ColR ColR Fillden mul Fillden sub 1 add def 48.319 + /ColG ColG Fillden mul Fillden sub 1 add def 48.320 + /ColB ColB Fillden mul Fillden sub 1 add def 48.321 + ColR ColG ColB setrgbcolor} def 48.322 +/BoxColFill {gsave Rec PolyFill} def 48.323 +/PolyFill {gsave Density fill grestore grestore} def 48.324 +/h {rlineto rlineto rlineto gsave closepath fill grestore} bind def 48.325 +% 48.326 +% PostScript Level 1 Pattern Fill routine for rectangles 48.327 +% Usage: x y w h s a XX PatternFill 48.328 +% x,y = lower left corner of box to be filled 48.329 +% w,h = width and height of box 48.330 +% a = angle in degrees between lines and x-axis 48.331 +% XX = 0/1 for no/yes cross-hatch 48.332 +% 48.333 +/PatternFill {gsave /PFa [ 9 2 roll ] def 48.334 + PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate 48.335 + PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec 48.336 + gsave 1 setgray fill grestore clip 48.337 + currentlinewidth 0.5 mul setlinewidth 48.338 + /PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def 48.339 + 0 0 M PFa 5 get rotate PFs -2 div dup translate 48.340 + 0 1 PFs PFa 4 get div 1 add floor cvi 48.341 + {PFa 4 get mul 0 M 0 PFs V} for 48.342 + 0 PFa 6 get ne { 48.343 + 0 1 PFs PFa 4 get div 1 add floor cvi 48.344 + {PFa 4 get mul 0 2 1 roll M PFs 0 V} for 48.345 + } if 48.346 + stroke grestore} def 48.347 +% 48.348 +/languagelevel where 48.349 + {pop languagelevel} {1} ifelse 48.350 + 2 lt 48.351 + {/InterpretLevel1 true def} 48.352 + {/InterpretLevel1 Level1 def} 48.353 + ifelse 48.354 +% 48.355 +% PostScript level 2 pattern fill definitions 48.356 +% 48.357 +/Level2PatternFill { 48.358 +/Tile8x8 {/PaintType 2 /PatternType 1 /TilingType 1 /BBox [0 0 8 8] /XStep 8 /YStep 8} 48.359 + bind def 48.360 +/KeepColor {currentrgbcolor [/Pattern /DeviceRGB] setcolorspace} bind def 48.361 +<< Tile8x8 48.362 + /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke} 48.363 +>> matrix makepattern 48.364 +/Pat1 exch def 48.365 +<< Tile8x8 48.366 + /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke 48.367 + 0 4 M 4 8 L 8 4 L 4 0 L 0 4 L stroke} 48.368 +>> matrix makepattern 48.369 +/Pat2 exch def 48.370 +<< Tile8x8 48.371 + /PaintProc {0.5 setlinewidth pop 0 0 M 0 8 L 48.372 + 8 8 L 8 0 L 0 0 L fill} 48.373 +>> matrix makepattern 48.374 +/Pat3 exch def 48.375 +<< Tile8x8 48.376 + /PaintProc {0.5 setlinewidth pop -4 8 M 8 -4 L 48.377 + 0 12 M 12 0 L stroke} 48.378 +>> matrix makepattern 48.379 +/Pat4 exch def 48.380 +<< Tile8x8 48.381 + /PaintProc {0.5 setlinewidth pop -4 0 M 8 12 L 48.382 + 0 -4 M 12 8 L stroke} 48.383 +>> matrix makepattern 48.384 +/Pat5 exch def 48.385 +<< Tile8x8 48.386 + /PaintProc {0.5 setlinewidth pop -2 8 M 4 -4 L 48.387 + 0 12 M 8 -4 L 4 12 M 10 0 L stroke} 48.388 +>> matrix makepattern 48.389 +/Pat6 exch def 48.390 +<< Tile8x8 48.391 + /PaintProc {0.5 setlinewidth pop -2 0 M 4 12 L 48.392 + 0 -4 M 8 12 L 4 -4 M 10 8 L stroke} 48.393 +>> matrix makepattern 48.394 +/Pat7 exch def 48.395 +<< Tile8x8 48.396 + /PaintProc {0.5 setlinewidth pop 8 -2 M -4 4 L 48.397 + 12 0 M -4 8 L 12 4 M 0 10 L stroke} 48.398 +>> matrix makepattern 48.399 +/Pat8 exch def 48.400 +<< Tile8x8 48.401 + /PaintProc {0.5 setlinewidth pop 0 -2 M 12 4 L 48.402 + -4 0 M 12 8 L -4 4 M 8 10 L stroke} 48.403 +>> matrix makepattern 48.404 +/Pat9 exch def 48.405 +/Pattern1 {PatternBgnd KeepColor Pat1 setpattern} bind def 48.406 +/Pattern2 {PatternBgnd KeepColor Pat2 setpattern} bind def 48.407 +/Pattern3 {PatternBgnd KeepColor Pat3 setpattern} bind def 48.408 +/Pattern4 {PatternBgnd KeepColor Landscape {Pat5} {Pat4} ifelse setpattern} bind def 48.409 +/Pattern5 {PatternBgnd KeepColor Landscape {Pat4} {Pat5} ifelse setpattern} bind def 48.410 +/Pattern6 {PatternBgnd KeepColor Landscape {Pat9} {Pat6} ifelse setpattern} bind def 48.411 +/Pattern7 {PatternBgnd KeepColor Landscape {Pat8} {Pat7} ifelse setpattern} bind def 48.412 +} def 48.413 +% 48.414 +% 48.415 +%End of PostScript Level 2 code 48.416 +% 48.417 +/PatternBgnd { 48.418 + TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse 48.419 +} def 48.420 +% 48.421 +% Substitute for Level 2 pattern fill codes with 48.422 +% grayscale if Level 2 support is not selected. 48.423 +% 48.424 +/Level1PatternFill { 48.425 +/Pattern1 {0.250 Density} bind def 48.426 +/Pattern2 {0.500 Density} bind def 48.427 +/Pattern3 {0.750 Density} bind def 48.428 +/Pattern4 {0.125 Density} bind def 48.429 +/Pattern5 {0.375 Density} bind def 48.430 +/Pattern6 {0.625 Density} bind def 48.431 +/Pattern7 {0.875 Density} bind def 48.432 +} def 48.433 +% 48.434 +% Now test for support of Level 2 code 48.435 +% 48.436 +Level1 {Level1PatternFill} {Level2PatternFill} ifelse 48.437 +% 48.438 +/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont 48.439 +dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall 48.440 +currentdict end definefont pop 48.441 +/MFshow { 48.442 + { dup 5 get 3 ge 48.443 + { 5 get 3 eq {gsave} {grestore} ifelse } 48.444 + {dup dup 0 get findfont exch 1 get scalefont setfont 48.445 + [ currentpoint ] exch dup 2 get 0 exch R dup 5 get 2 ne {dup dup 6 48.446 + get exch 4 get {Gshow} {stringwidth pop 0 R} ifelse }if dup 5 get 0 eq 48.447 + {dup 3 get {2 get neg 0 exch R pop} {pop aload pop M} ifelse} {dup 5 48.448 + get 1 eq {dup 2 get exch dup 3 get exch 6 get stringwidth pop -2 div 48.449 + dup 0 R} {dup 6 get stringwidth pop -2 div 0 R 6 get 48.450 + show 2 index {aload pop M neg 3 -1 roll neg R pop pop} {pop pop pop 48.451 + pop aload pop M} ifelse }ifelse }ifelse } 48.452 + ifelse } 48.453 + forall} def 48.454 +/Gswidth {dup type /stringtype eq {stringwidth} {pop (n) stringwidth} ifelse} def 48.455 +/MFwidth {0 exch { dup 5 get 3 ge { 5 get 3 eq { 0 } { pop } ifelse } 48.456 + {dup 3 get{dup dup 0 get findfont exch 1 get scalefont setfont 48.457 + 6 get Gswidth pop add} {pop} ifelse} ifelse} forall} def 48.458 +/MLshow { currentpoint stroke M 48.459 + 0 exch R 48.460 + Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def 48.461 +/MRshow { currentpoint stroke M 48.462 + exch dup MFwidth neg 3 -1 roll R 48.463 + Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def 48.464 +/MCshow { currentpoint stroke M 48.465 + exch dup MFwidth -2 div 3 -1 roll R 48.466 + Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def 48.467 +/XYsave { [( ) 1 2 true false 3 ()] } bind def 48.468 +/XYrestore { [( ) 1 2 true false 4 ()] } bind def 48.469 +end 48.470 +%%EndProlog 48.471 +%%Page: 1 1 48.472 +gnudict begin 48.473 +gsave 48.474 +doclip 48.475 +50 50 translate 48.476 +0.100 0.100 scale 48.477 +90 rotate 48.478 +0 -5040 translate 48.479 +0 setgray 48.480 +newpath 48.481 +(Helvetica) findfont 140 scalefont setfont 48.482 +1.000 UL 48.483 +LTb 48.484 +518 448 M 48.485 +63 0 V 48.486 +stroke 48.487 +434 448 M 48.488 +[ [(Helvetica) 140.0 0.0 true true 0 ( 1)] 48.489 +] -46.7 MRshow 48.490 +1.000 UL 48.491 +LTb 48.492 +518 792 M 48.493 +63 0 V 48.494 +stroke 48.495 +434 792 M 48.496 +[ [(Helvetica) 140.0 0.0 true true 0 ( 2)] 48.497 +] -46.7 MRshow 48.498 +1.000 UL 48.499 +LTb 48.500 +518 1136 M 48.501 +63 0 V 48.502 +stroke 48.503 +434 1136 M 48.504 +[ [(Helvetica) 140.0 0.0 true true 0 ( 3)] 48.505 +] -46.7 MRshow 48.506 +1.000 UL 48.507 +LTb 48.508 +518 1480 M 48.509 +63 0 V 48.510 +stroke 48.511 +434 1480 M 48.512 +[ [(Helvetica) 140.0 0.0 true true 0 ( 4)] 48.513 +] -46.7 MRshow 48.514 +1.000 UL 48.515 +LTb 48.516 +518 1823 M 48.517 +63 0 V 48.518 +stroke 48.519 +434 1823 M 48.520 +[ [(Helvetica) 140.0 0.0 true true 0 ( 5)] 48.521 +] -46.7 MRshow 48.522 +1.000 UL 48.523 +LTb 48.524 +518 2167 M 48.525 +63 0 V 48.526 +stroke 48.527 +434 2167 M 48.528 +[ [(Helvetica) 140.0 0.0 true true 0 ( 6)] 48.529 +] -46.7 MRshow 48.530 +1.000 UL 48.531 +LTb 48.532 +518 2511 M 48.533 +63 0 V 48.534 +stroke 48.535 +434 2511 M 48.536 +[ [(Helvetica) 140.0 0.0 true true 0 ( 7)] 48.537 +] -46.7 MRshow 48.538 +1.000 UL 48.539 +LTb 48.540 +518 2855 M 48.541 +63 0 V 48.542 +stroke 48.543 +434 2855 M 48.544 +[ [(Helvetica) 140.0 0.0 true true 0 ( 8)] 48.545 +] -46.7 MRshow 48.546 +1.000 UL 48.547 +LTb 48.548 +518 448 M 48.549 +0 63 V 48.550 +stroke 48.551 +518 308 M 48.552 +[ [(Helvetica) 140.0 0.0 true true 0 ( 0)] 48.553 +] -46.7 MCshow 48.554 +1.000 UL 48.555 +LTb 48.556 +962 448 M 48.557 +0 63 V 48.558 +stroke 48.559 +962 308 M 48.560 +[ [(Helvetica) 140.0 0.0 true true 0 ( 1000)] 48.561 +] -46.7 MCshow 48.562 +1.000 UL 48.563 +LTb 48.564 +1405 448 M 48.565 +0 63 V 48.566 +stroke 48.567 +1405 308 M 48.568 +[ [(Helvetica) 140.0 0.0 true true 0 ( 2000)] 48.569 +] -46.7 MCshow 48.570 +1.000 UL 48.571 +LTb 48.572 +1849 448 M 48.573 +0 63 V 48.574 +stroke 48.575 +1849 308 M 48.576 +[ [(Helvetica) 140.0 0.0 true true 0 ( 3000)] 48.577 +] -46.7 MCshow 48.578 +1.000 UL 48.579 +LTb 48.580 +2293 448 M 48.581 +0 63 V 48.582 +stroke 48.583 +2293 308 M 48.584 +[ [(Helvetica) 140.0 0.0 true true 0 ( 4000)] 48.585 +] -46.7 MCshow 48.586 +1.000 UL 48.587 +LTb 48.588 +2736 448 M 48.589 +0 63 V 48.590 +stroke 48.591 +2736 308 M 48.592 +[ [(Helvetica) 140.0 0.0 true true 0 ( 5000)] 48.593 +] -46.7 MCshow 48.594 +1.000 UL 48.595 +LTb 48.596 +3180 448 M 48.597 +0 63 V 48.598 +stroke 48.599 +3180 308 M 48.600 +[ [(Helvetica) 140.0 0.0 true true 0 ( 6000)] 48.601 +] -46.7 MCshow 48.602 +1.000 UL 48.603 +LTb 48.604 +3623 448 M 48.605 +0 63 V 48.606 +stroke 48.607 +3623 308 M 48.608 +[ [(Helvetica) 140.0 0.0 true true 0 ( 7000)] 48.609 +] -46.7 MCshow 48.610 +1.000 UL 48.611 +LTb 48.612 +4067 448 M 48.613 +0 63 V 48.614 +stroke 48.615 +4067 308 M 48.616 +[ [(Helvetica) 140.0 0.0 true true 0 ( 8000)] 48.617 +] -46.7 MCshow 48.618 +1.000 UL 48.619 +LTb 48.620 +1.000 UL 48.621 +LTb 48.622 +518 2855 M 48.623 +518 448 L 48.624 +3549 0 V 48.625 +0 2407 R 48.626 +-3549 0 R 48.627 +stroke 48.628 +LCb setrgbcolor 48.629 +112 1651 M 48.630 +currentpoint gsave translate -270 rotate 0 0 moveto 48.631 +[ [(Helvetica) 140.0 0.0 true true 0 (Ratio of Total Execution to Total Work)] 48.632 +] -46.7 MCshow 48.633 +grestore 48.634 +LTb 48.635 +LCb setrgbcolor 48.636 +2292 98 M 48.637 +[ [(Helvetica) 140.0 0.0 true true 0 (Cycles in one Task)] 48.638 +] -46.7 MCshow 48.639 +LTb 48.640 +1.000 UP 48.641 +1.000 UL 48.642 +LTb 48.643 +1.000 UL 48.644 +LTb 48.645 +2492 2232 N 48.646 +0 560 V 48.647 +1491 0 V 48.648 +0 -560 V 48.649 +-1491 0 V 48.650 +Z stroke 48.651 +2492 2792 M 48.652 +1491 0 V 48.653 +% Begin plot #1 48.654 +stroke 48.655 +4.000 UL 48.656 +LT1 48.657 +LCa setrgbcolor 48.658 +518 792 M 48.659 +36 0 V 48.660 +36 0 V 48.661 +36 0 V 48.662 +35 0 V 48.663 +36 0 V 48.664 +36 0 V 48.665 +36 0 V 48.666 +36 0 V 48.667 +36 0 V 48.668 +35 0 V 48.669 +36 0 V 48.670 +36 0 V 48.671 +36 0 V 48.672 +36 0 V 48.673 +36 0 V 48.674 +36 0 V 48.675 +35 0 V 48.676 +36 0 V 48.677 +36 0 V 48.678 +36 0 V 48.679 +36 0 V 48.680 +36 0 V 48.681 +36 0 V 48.682 +35 0 V 48.683 +36 0 V 48.684 +36 0 V 48.685 +36 0 V 48.686 +36 0 V 48.687 +36 0 V 48.688 +35 0 V 48.689 +36 0 V 48.690 +36 0 V 48.691 +36 0 V 48.692 +36 0 V 48.693 +36 0 V 48.694 +36 0 V 48.695 +35 0 V 48.696 +36 0 V 48.697 +36 0 V 48.698 +36 0 V 48.699 +36 0 V 48.700 +36 0 V 48.701 +35 0 V 48.702 +36 0 V 48.703 +36 0 V 48.704 +36 0 V 48.705 +36 0 V 48.706 +36 0 V 48.707 +36 0 V 48.708 +35 0 V 48.709 +36 0 V 48.710 +36 0 V 48.711 +36 0 V 48.712 +36 0 V 48.713 +36 0 V 48.714 +36 0 V 48.715 +35 0 V 48.716 +36 0 V 48.717 +36 0 V 48.718 +36 0 V 48.719 +36 0 V 48.720 +36 0 V 48.721 +35 0 V 48.722 +36 0 V 48.723 +36 0 V 48.724 +36 0 V 48.725 +36 0 V 48.726 +36 0 V 48.727 +36 0 V 48.728 +35 0 V 48.729 +36 0 V 48.730 +36 0 V 48.731 +36 0 V 48.732 +36 0 V 48.733 +36 0 V 48.734 +35 0 V 48.735 +36 0 V 48.736 +36 0 V 48.737 +36 0 V 48.738 +36 0 V 48.739 +36 0 V 48.740 +36 0 V 48.741 +35 0 V 48.742 +36 0 V 48.743 +36 0 V 48.744 +36 0 V 48.745 +36 0 V 48.746 +36 0 V 48.747 +36 0 V 48.748 +35 0 V 48.749 +36 0 V 48.750 +36 0 V 48.751 +36 0 V 48.752 +36 0 V 48.753 +36 0 V 48.754 +35 0 V 48.755 +36 0 V 48.756 +36 0 V 48.757 +36 0 V 48.758 +% End plot #1 48.759 +% Begin plot #2 48.760 +stroke 48.761 +LT1 48.762 +LCb setrgbcolor 48.763 +3416 2722 M 48.764 +[ [(Helvetica) 140.0 0.0 true true 0 (80 Threads)] 48.765 +] -46.7 MRshow 48.766 +LT1 48.767 +3500 2722 M 48.768 +399 0 V 48.769 +670 2855 M 48.770 +51 -852 V 48.771 +882 1405 L 48.772 +1200 930 L 48.773 +1839 705 L 48.774 +3118 625 L 48.775 +949 -39 V 48.776 +% End plot #2 48.777 +% Begin plot #3 48.778 +stroke 48.779 +LT2 48.780 +LCb setrgbcolor 48.781 +3416 2582 M 48.782 +[ [(Helvetica) 140.0 0.0 true true 0 (160 Threads)] 48.783 +] -46.7 MRshow 48.784 +LT2 48.785 +3500 2582 M 48.786 +399 0 V 48.787 +632 2855 M 48.788 +8 -651 V 48.789 +80 -714 V 48.790 +881 1280 L 48.791 +1200 856 L 48.792 +1839 682 L 48.793 +3116 544 L 48.794 +951 -19 V 48.795 +% End plot #3 48.796 +% Begin plot #4 48.797 +stroke 48.798 +LT3 48.799 +LCb setrgbcolor 48.800 +3416 2442 M 48.801 +[ [(Helvetica) 140.0 0.0 true true 0 (320 Threads)] 48.802 +] -46.7 MRshow 48.803 +LT3 48.804 +3500 2442 M 48.805 +399 0 V 48.806 +678 2855 M 48.807 +45 -823 V 48.808 +882 1374 L 48.809 +1200 997 L 48.810 +1840 716 L 48.811 +3117 544 L 48.812 +950 -16 V 48.813 +% End plot #4 48.814 +% Begin plot #5 48.815 +stroke 48.816 +LT4 48.817 +LCb setrgbcolor 48.818 +3416 2302 M 48.819 +[ [(Helvetica) 140.0 0.0 true true 0 (640 Threads)] 48.820 +] -46.7 MRshow 48.821 +LT4 48.822 +3500 2302 M 48.823 +399 0 V 48.824 +656 2855 M 48.825 +67 -607 V 48.826 +881 1260 L 48.827 +1200 822 L 48.828 +1840 687 L 48.829 +3117 564 L 48.830 +950 -21 V 48.831 +% End plot #5 48.832 +stroke 48.833 +1.000 UL 48.834 +LTb 48.835 +518 2855 M 48.836 +518 448 L 48.837 +3549 0 V 48.838 +0 2407 R 48.839 +-3549 0 R 48.840 +1.000 UP 48.841 +stroke 48.842 +grestore 48.843 +end 48.844 +showpage 48.845 +%%Trailer 48.846 +%%DocumentFonts: Helvetica 48.847 +%%Pages: 1
49.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 49.2 +++ b/0__Papers/PRT/PRT__formal_def/figures/plots_exec_vs_task_size/not_used/xoanon_vthread_80cores_80_160_320_640thds__o30000__perfCtrs.result.eps Sat Aug 03 19:24:22 2013 -0700 49.3 @@ -0,0 +1,821 @@ 49.4 +%!PS-Adobe-2.0 49.5 +%%Title: xoanon_vthread_80cores_80_160_320_640thds__o30000__perfCtrs.result.eps 49.6 +%%Creator: gnuplot 4.4 patchlevel 2 49.7 +%%CreationDate: Thu Jan 26 18:25:10 2012 49.8 +%%DocumentFonts: (atend) 49.9 +%%BoundingBox: 251 50 554 482 49.10 +%%Orientation: Landscape 49.11 +%%Pages: (atend) 49.12 +%%EndComments 49.13 +%%BeginProlog 49.14 +/gnudict 256 dict def 49.15 +gnudict begin 49.16 +% 49.17 +% The following true/false flags may be edited by hand if desired. 49.18 +% The unit line width and grayscale image gamma correction may also be changed. 49.19 +% 49.20 +/Color true def 49.21 +/Blacktext false def 49.22 +/Solid false def 49.23 +/Dashlength 1 def 49.24 +/Landscape true def 49.25 +/Level1 false def 49.26 +/Rounded false def 49.27 +/ClipToBoundingBox false def 49.28 +/TransparentPatterns false def 49.29 +/gnulinewidth 5.000 def 49.30 +/userlinewidth gnulinewidth def 49.31 +/Gamma 1.0 def 49.32 +% 49.33 +/vshift -46 def 49.34 +/dl1 { 49.35 + 10.0 Dashlength mul mul 49.36 + Rounded { currentlinewidth 0.75 mul sub dup 0 le { pop 0.01 } if } if 49.37 +} def 49.38 +/dl2 { 49.39 + 10.0 Dashlength mul mul 49.40 + Rounded { currentlinewidth 0.75 mul add } if 49.41 +} def 49.42 +/hpt_ 31.5 def 49.43 +/vpt_ 31.5 def 49.44 +/hpt hpt_ def 49.45 +/vpt vpt_ def 49.46 +Level1 {} { 49.47 +/SDict 10 dict def 49.48 +systemdict /pdfmark known not { 49.49 + userdict /pdfmark systemdict /cleartomark get put 49.50 +} if 49.51 +SDict begin [ 49.52 + /Title (xoanon_vthread_80cores_80_160_320_640thds__o30000__perfCtrs.result.eps) 49.53 + /Subject (gnuplot plot) 49.54 + /Creator (gnuplot 4.4 patchlevel 2) 49.55 + /Author (msach) 49.56 +% /Producer (gnuplot) 49.57 +% /Keywords () 49.58 + /CreationDate (Thu Jan 26 18:25:10 2012) 49.59 + /DOCINFO pdfmark 49.60 +end 49.61 +} ifelse 49.62 +/doclip { 49.63 + ClipToBoundingBox { 49.64 + newpath 251 50 moveto 554 50 lineto 554 482 lineto 251 482 lineto closepath 49.65 + clip 49.66 + } if 49.67 +} def 49.68 +% 49.69 +% Gnuplot Prolog Version 4.4 (August 2010) 49.70 +% 49.71 +%/SuppressPDFMark true def 49.72 +% 49.73 +/M {moveto} bind def 49.74 +/L {lineto} bind def 49.75 +/R {rmoveto} bind def 49.76 +/V {rlineto} bind def 49.77 +/N {newpath moveto} bind def 49.78 +/Z {closepath} bind def 49.79 +/C {setrgbcolor} bind def 49.80 +/f {rlineto fill} bind def 49.81 +/g {setgray} bind def 49.82 +/Gshow {show} def % May be redefined later in the file to support UTF-8 49.83 +/vpt2 vpt 2 mul def 49.84 +/hpt2 hpt 2 mul def 49.85 +/Lshow {currentpoint stroke M 0 vshift R 49.86 + Blacktext {gsave 0 setgray show grestore} {show} ifelse} def 49.87 +/Rshow {currentpoint stroke M dup stringwidth pop neg vshift R 49.88 + Blacktext {gsave 0 setgray show grestore} {show} ifelse} def 49.89 +/Cshow {currentpoint stroke M dup stringwidth pop -2 div vshift R 49.90 + Blacktext {gsave 0 setgray show grestore} {show} ifelse} def 49.91 +/UP {dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def 49.92 + /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def} def 49.93 +/DL {Color {setrgbcolor Solid {pop []} if 0 setdash} 49.94 + {pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse} def 49.95 +/BL {stroke userlinewidth 2 mul setlinewidth 49.96 + Rounded {1 setlinejoin 1 setlinecap} if} def 49.97 +/AL {stroke userlinewidth 2 div setlinewidth 49.98 + Rounded {1 setlinejoin 1 setlinecap} if} def 49.99 +/UL {dup gnulinewidth mul /userlinewidth exch def 49.100 + dup 1 lt {pop 1} if 10 mul /udl exch def} def 49.101 +/PL {stroke userlinewidth setlinewidth 49.102 + Rounded {1 setlinejoin 1 setlinecap} if} def 49.103 +3.8 setmiterlimit 49.104 +% Default Line colors 49.105 +/LCw {1 1 1} def 49.106 +/LCb {0 0 0} def 49.107 +/LCa {0 0 0} def 49.108 +/LC0 {1 0 0} def 49.109 +/LC1 {0 1 0} def 49.110 +/LC2 {0 0 1} def 49.111 +/LC3 {1 0 1} def 49.112 +/LC4 {0 1 1} def 49.113 +/LC5 {1 1 0} def 49.114 +/LC6 {0 0 0} def 49.115 +/LC7 {1 0.3 0} def 49.116 +/LC8 {0.5 0.5 0.5} def 49.117 +% Default Line Types 49.118 +/LTw {PL [] 1 setgray} def 49.119 +/LTb {BL [] LCb DL} def 49.120 +/LTa {AL [1 udl mul 2 udl mul] 0 setdash LCa setrgbcolor} def 49.121 +/LT0 {PL [] LC0 DL} def 49.122 +/LT1 {PL [4 dl1 2 dl2] LC1 DL} def 49.123 +/LT2 {PL [2 dl1 3 dl2] LC2 DL} def 49.124 +/LT3 {PL [1 dl1 1.5 dl2] LC3 DL} def 49.125 +/LT4 {PL [6 dl1 2 dl2 1 dl1 2 dl2] LC4 DL} def 49.126 +/LT5 {PL [3 dl1 3 dl2 1 dl1 3 dl2] LC5 DL} def 49.127 +/LT6 {PL [2 dl1 2 dl2 2 dl1 6 dl2] LC6 DL} def 49.128 +/LT7 {PL [1 dl1 2 dl2 6 dl1 2 dl2 1 dl1 2 dl2] LC7 DL} def 49.129 +/LT8 {PL [2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 4 dl2] LC8 DL} def 49.130 +/Pnt {stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore} def 49.131 +/Dia {stroke [] 0 setdash 2 copy vpt add M 49.132 + hpt neg vpt neg V hpt vpt neg V 49.133 + hpt vpt V hpt neg vpt V closepath stroke 49.134 + Pnt} def 49.135 +/Pls {stroke [] 0 setdash vpt sub M 0 vpt2 V 49.136 + currentpoint stroke M 49.137 + hpt neg vpt neg R hpt2 0 V stroke 49.138 + } def 49.139 +/Box {stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M 49.140 + 0 vpt2 neg V hpt2 0 V 0 vpt2 V 49.141 + hpt2 neg 0 V closepath stroke 49.142 + Pnt} def 49.143 +/Crs {stroke [] 0 setdash exch hpt sub exch vpt add M 49.144 + hpt2 vpt2 neg V currentpoint stroke M 49.145 + hpt2 neg 0 R hpt2 vpt2 V stroke} def 49.146 +/TriU {stroke [] 0 setdash 2 copy vpt 1.12 mul add M 49.147 + hpt neg vpt -1.62 mul V 49.148 + hpt 2 mul 0 V 49.149 + hpt neg vpt 1.62 mul V closepath stroke 49.150 + Pnt} def 49.151 +/Star {2 copy Pls Crs} def 49.152 +/BoxF {stroke [] 0 setdash exch hpt sub exch vpt add M 49.153 + 0 vpt2 neg V hpt2 0 V 0 vpt2 V 49.154 + hpt2 neg 0 V closepath fill} def 49.155 +/TriUF {stroke [] 0 setdash vpt 1.12 mul add M 49.156 + hpt neg vpt -1.62 mul V 49.157 + hpt 2 mul 0 V 49.158 + hpt neg vpt 1.62 mul V closepath fill} def 49.159 +/TriD {stroke [] 0 setdash 2 copy vpt 1.12 mul sub M 49.160 + hpt neg vpt 1.62 mul V 49.161 + hpt 2 mul 0 V 49.162 + hpt neg vpt -1.62 mul V closepath stroke 49.163 + Pnt} def 49.164 +/TriDF {stroke [] 0 setdash vpt 1.12 mul sub M 49.165 + hpt neg vpt 1.62 mul V 49.166 + hpt 2 mul 0 V 49.167 + hpt neg vpt -1.62 mul V closepath fill} def 49.168 +/DiaF {stroke [] 0 setdash vpt add M 49.169 + hpt neg vpt neg V hpt vpt neg V 49.170 + hpt vpt V hpt neg vpt V closepath fill} def 49.171 +/Pent {stroke [] 0 setdash 2 copy gsave 49.172 + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat 49.173 + closepath stroke grestore Pnt} def 49.174 +/PentF {stroke [] 0 setdash gsave 49.175 + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat 49.176 + closepath fill grestore} def 49.177 +/Circle {stroke [] 0 setdash 2 copy 49.178 + hpt 0 360 arc stroke Pnt} def 49.179 +/CircleF {stroke [] 0 setdash hpt 0 360 arc fill} def 49.180 +/C0 {BL [] 0 setdash 2 copy moveto vpt 90 450 arc} bind def 49.181 +/C1 {BL [] 0 setdash 2 copy moveto 49.182 + 2 copy vpt 0 90 arc closepath fill 49.183 + vpt 0 360 arc closepath} bind def 49.184 +/C2 {BL [] 0 setdash 2 copy moveto 49.185 + 2 copy vpt 90 180 arc closepath fill 49.186 + vpt 0 360 arc closepath} bind def 49.187 +/C3 {BL [] 0 setdash 2 copy moveto 49.188 + 2 copy vpt 0 180 arc closepath fill 49.189 + vpt 0 360 arc closepath} bind def 49.190 +/C4 {BL [] 0 setdash 2 copy moveto 49.191 + 2 copy vpt 180 270 arc closepath fill 49.192 + vpt 0 360 arc closepath} bind def 49.193 +/C5 {BL [] 0 setdash 2 copy moveto 49.194 + 2 copy vpt 0 90 arc 49.195 + 2 copy moveto 49.196 + 2 copy vpt 180 270 arc closepath fill 49.197 + vpt 0 360 arc} bind def 49.198 +/C6 {BL [] 0 setdash 2 copy moveto 49.199 + 2 copy vpt 90 270 arc closepath fill 49.200 + vpt 0 360 arc closepath} bind def 49.201 +/C7 {BL [] 0 setdash 2 copy moveto 49.202 + 2 copy vpt 0 270 arc closepath fill 49.203 + vpt 0 360 arc closepath} bind def 49.204 +/C8 {BL [] 0 setdash 2 copy moveto 49.205 + 2 copy vpt 270 360 arc closepath fill 49.206 + vpt 0 360 arc closepath} bind def 49.207 +/C9 {BL [] 0 setdash 2 copy moveto 49.208 + 2 copy vpt 270 450 arc closepath fill 49.209 + vpt 0 360 arc closepath} bind def 49.210 +/C10 {BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill 49.211 + 2 copy moveto 49.212 + 2 copy vpt 90 180 arc closepath fill 49.213 + vpt 0 360 arc closepath} bind def 49.214 +/C11 {BL [] 0 setdash 2 copy moveto 49.215 + 2 copy vpt 0 180 arc closepath fill 49.216 + 2 copy moveto 49.217 + 2 copy vpt 270 360 arc closepath fill 49.218 + vpt 0 360 arc closepath} bind def 49.219 +/C12 {BL [] 0 setdash 2 copy moveto 49.220 + 2 copy vpt 180 360 arc closepath fill 49.221 + vpt 0 360 arc closepath} bind def 49.222 +/C13 {BL [] 0 setdash 2 copy moveto 49.223 + 2 copy vpt 0 90 arc closepath fill 49.224 + 2 copy moveto 49.225 + 2 copy vpt 180 360 arc closepath fill 49.226 + vpt 0 360 arc closepath} bind def 49.227 +/C14 {BL [] 0 setdash 2 copy moveto 49.228 + 2 copy vpt 90 360 arc closepath fill 49.229 + vpt 0 360 arc} bind def 49.230 +/C15 {BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill 49.231 + vpt 0 360 arc closepath} bind def 49.232 +/Rec {newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto 49.233 + neg 0 rlineto closepath} bind def 49.234 +/Square {dup Rec} bind def 49.235 +/Bsquare {vpt sub exch vpt sub exch vpt2 Square} bind def 49.236 +/S0 {BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare} bind def 49.237 +/S1 {BL [] 0 setdash 2 copy vpt Square fill Bsquare} bind def 49.238 +/S2 {BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def 49.239 +/S3 {BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare} bind def 49.240 +/S4 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def 49.241 +/S5 {BL [] 0 setdash 2 copy 2 copy vpt Square fill 49.242 + exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def 49.243 +/S6 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare} bind def 49.244 +/S7 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill 49.245 + 2 copy vpt Square fill Bsquare} bind def 49.246 +/S8 {BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare} bind def 49.247 +/S9 {BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare} bind def 49.248 +/S10 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill 49.249 + Bsquare} bind def 49.250 +/S11 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill 49.251 + Bsquare} bind def 49.252 +/S12 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare} bind def 49.253 +/S13 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 49.254 + 2 copy vpt Square fill Bsquare} bind def 49.255 +/S14 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 49.256 + 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def 49.257 +/S15 {BL [] 0 setdash 2 copy Bsquare fill Bsquare} bind def 49.258 +/D0 {gsave translate 45 rotate 0 0 S0 stroke grestore} bind def 49.259 +/D1 {gsave translate 45 rotate 0 0 S1 stroke grestore} bind def 49.260 +/D2 {gsave translate 45 rotate 0 0 S2 stroke grestore} bind def 49.261 +/D3 {gsave translate 45 rotate 0 0 S3 stroke grestore} bind def 49.262 +/D4 {gsave translate 45 rotate 0 0 S4 stroke grestore} bind def 49.263 +/D5 {gsave translate 45 rotate 0 0 S5 stroke grestore} bind def 49.264 +/D6 {gsave translate 45 rotate 0 0 S6 stroke grestore} bind def 49.265 +/D7 {gsave translate 45 rotate 0 0 S7 stroke grestore} bind def 49.266 +/D8 {gsave translate 45 rotate 0 0 S8 stroke grestore} bind def 49.267 +/D9 {gsave translate 45 rotate 0 0 S9 stroke grestore} bind def 49.268 +/D10 {gsave translate 45 rotate 0 0 S10 stroke grestore} bind def 49.269 +/D11 {gsave translate 45 rotate 0 0 S11 stroke grestore} bind def 49.270 +/D12 {gsave translate 45 rotate 0 0 S12 stroke grestore} bind def 49.271 +/D13 {gsave translate 45 rotate 0 0 S13 stroke grestore} bind def 49.272 +/D14 {gsave translate 45 rotate 0 0 S14 stroke grestore} bind def 49.273 +/D15 {gsave translate 45 rotate 0 0 S15 stroke grestore} bind def 49.274 +/DiaE {stroke [] 0 setdash vpt add M 49.275 + hpt neg vpt neg V hpt vpt neg V 49.276 + hpt vpt V hpt neg vpt V closepath stroke} def 49.277 +/BoxE {stroke [] 0 setdash exch hpt sub exch vpt add M 49.278 + 0 vpt2 neg V hpt2 0 V 0 vpt2 V 49.279 + hpt2 neg 0 V closepath stroke} def 49.280 +/TriUE {stroke [] 0 setdash vpt 1.12 mul add M 49.281 + hpt neg vpt -1.62 mul V 49.282 + hpt 2 mul 0 V 49.283 + hpt neg vpt 1.62 mul V closepath stroke} def 49.284 +/TriDE {stroke [] 0 setdash vpt 1.12 mul sub M 49.285 + hpt neg vpt 1.62 mul V 49.286 + hpt 2 mul 0 V 49.287 + hpt neg vpt -1.62 mul V closepath stroke} def 49.288 +/PentE {stroke [] 0 setdash gsave 49.289 + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat 49.290 + closepath stroke grestore} def 49.291 +/CircE {stroke [] 0 setdash 49.292 + hpt 0 360 arc stroke} def 49.293 +/Opaque {gsave closepath 1 setgray fill grestore 0 setgray closepath} def 49.294 +/DiaW {stroke [] 0 setdash vpt add M 49.295 + hpt neg vpt neg V hpt vpt neg V 49.296 + hpt vpt V hpt neg vpt V Opaque stroke} def 49.297 +/BoxW {stroke [] 0 setdash exch hpt sub exch vpt add M 49.298 + 0 vpt2 neg V hpt2 0 V 0 vpt2 V 49.299 + hpt2 neg 0 V Opaque stroke} def 49.300 +/TriUW {stroke [] 0 setdash vpt 1.12 mul add M 49.301 + hpt neg vpt -1.62 mul V 49.302 + hpt 2 mul 0 V 49.303 + hpt neg vpt 1.62 mul V Opaque stroke} def 49.304 +/TriDW {stroke [] 0 setdash vpt 1.12 mul sub M 49.305 + hpt neg vpt 1.62 mul V 49.306 + hpt 2 mul 0 V 49.307 + hpt neg vpt -1.62 mul V Opaque stroke} def 49.308 +/PentW {stroke [] 0 setdash gsave 49.309 + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat 49.310 + Opaque stroke grestore} def 49.311 +/CircW {stroke [] 0 setdash 49.312 + hpt 0 360 arc Opaque stroke} def 49.313 +/BoxFill {gsave Rec 1 setgray fill grestore} def 49.314 +/Density { 49.315 + /Fillden exch def 49.316 + currentrgbcolor 49.317 + /ColB exch def /ColG exch def /ColR exch def 49.318 + /ColR ColR Fillden mul Fillden sub 1 add def 49.319 + /ColG ColG Fillden mul Fillden sub 1 add def 49.320 + /ColB ColB Fillden mul Fillden sub 1 add def 49.321 + ColR ColG ColB setrgbcolor} def 49.322 +/BoxColFill {gsave Rec PolyFill} def 49.323 +/PolyFill {gsave Density fill grestore grestore} def 49.324 +/h {rlineto rlineto rlineto gsave closepath fill grestore} bind def 49.325 +% 49.326 +% PostScript Level 1 Pattern Fill routine for rectangles 49.327 +% Usage: x y w h s a XX PatternFill 49.328 +% x,y = lower left corner of box to be filled 49.329 +% w,h = width and height of box 49.330 +% a = angle in degrees between lines and x-axis 49.331 +% XX = 0/1 for no/yes cross-hatch 49.332 +% 49.333 +/PatternFill {gsave /PFa [ 9 2 roll ] def 49.334 + PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate 49.335 + PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec 49.336 + gsave 1 setgray fill grestore clip 49.337 + currentlinewidth 0.5 mul setlinewidth 49.338 + /PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def 49.339 + 0 0 M PFa 5 get rotate PFs -2 div dup translate 49.340 + 0 1 PFs PFa 4 get div 1 add floor cvi 49.341 + {PFa 4 get mul 0 M 0 PFs V} for 49.342 + 0 PFa 6 get ne { 49.343 + 0 1 PFs PFa 4 get div 1 add floor cvi 49.344 + {PFa 4 get mul 0 2 1 roll M PFs 0 V} for 49.345 + } if 49.346 + stroke grestore} def 49.347 +% 49.348 +/languagelevel where 49.349 + {pop languagelevel} {1} ifelse 49.350 + 2 lt 49.351 + {/InterpretLevel1 true def} 49.352 + {/InterpretLevel1 Level1 def} 49.353 + ifelse 49.354 +% 49.355 +% PostScript level 2 pattern fill definitions 49.356 +% 49.357 +/Level2PatternFill { 49.358 +/Tile8x8 {/PaintType 2 /PatternType 1 /TilingType 1 /BBox [0 0 8 8] /XStep 8 /YStep 8} 49.359 + bind def 49.360 +/KeepColor {currentrgbcolor [/Pattern /DeviceRGB] setcolorspace} bind def 49.361 +<< Tile8x8 49.362 + /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke} 49.363 +>> matrix makepattern 49.364 +/Pat1 exch def 49.365 +<< Tile8x8 49.366 + /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke 49.367 + 0 4 M 4 8 L 8 4 L 4 0 L 0 4 L stroke} 49.368 +>> matrix makepattern 49.369 +/Pat2 exch def 49.370 +<< Tile8x8 49.371 + /PaintProc {0.5 setlinewidth pop 0 0 M 0 8 L 49.372 + 8 8 L 8 0 L 0 0 L fill} 49.373 +>> matrix makepattern 49.374 +/Pat3 exch def 49.375 +<< Tile8x8 49.376 + /PaintProc {0.5 setlinewidth pop -4 8 M 8 -4 L 49.377 + 0 12 M 12 0 L stroke} 49.378 +>> matrix makepattern 49.379 +/Pat4 exch def 49.380 +<< Tile8x8 49.381 + /PaintProc {0.5 setlinewidth pop -4 0 M 8 12 L 49.382 + 0 -4 M 12 8 L stroke} 49.383 +>> matrix makepattern 49.384 +/Pat5 exch def 49.385 +<< Tile8x8 49.386 + /PaintProc {0.5 setlinewidth pop -2 8 M 4 -4 L 49.387 + 0 12 M 8 -4 L 4 12 M 10 0 L stroke} 49.388 +>> matrix makepattern 49.389 +/Pat6 exch def 49.390 +<< Tile8x8 49.391 + /PaintProc {0.5 setlinewidth pop -2 0 M 4 12 L 49.392 + 0 -4 M 8 12 L 4 -4 M 10 8 L stroke} 49.393 +>> matrix makepattern 49.394 +/Pat7 exch def 49.395 +<< Tile8x8 49.396 + /PaintProc {0.5 setlinewidth pop 8 -2 M -4 4 L 49.397 + 12 0 M -4 8 L 12 4 M 0 10 L stroke} 49.398 +>> matrix makepattern 49.399 +/Pat8 exch def 49.400 +<< Tile8x8 49.401 + /PaintProc {0.5 setlinewidth pop 0 -2 M 12 4 L 49.402 + -4 0 M 12 8 L -4 4 M 8 10 L stroke} 49.403 +>> matrix makepattern 49.404 +/Pat9 exch def 49.405 +/Pattern1 {PatternBgnd KeepColor Pat1 setpattern} bind def 49.406 +/Pattern2 {PatternBgnd KeepColor Pat2 setpattern} bind def 49.407 +/Pattern3 {PatternBgnd KeepColor Pat3 setpattern} bind def 49.408 +/Pattern4 {PatternBgnd KeepColor Landscape {Pat5} {Pat4} ifelse setpattern} bind def 49.409 +/Pattern5 {PatternBgnd KeepColor Landscape {Pat4} {Pat5} ifelse setpattern} bind def 49.410 +/Pattern6 {PatternBgnd KeepColor Landscape {Pat9} {Pat6} ifelse setpattern} bind def 49.411 +/Pattern7 {PatternBgnd KeepColor Landscape {Pat8} {Pat7} ifelse setpattern} bind def 49.412 +} def 49.413 +% 49.414 +% 49.415 +%End of PostScript Level 2 code 49.416 +% 49.417 +/PatternBgnd { 49.418 + TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse 49.419 +} def 49.420 +% 49.421 +% Substitute for Level 2 pattern fill codes with 49.422 +% grayscale if Level 2 support is not selected. 49.423 +% 49.424 +/Level1PatternFill { 49.425 +/Pattern1 {0.250 Density} bind def 49.426 +/Pattern2 {0.500 Density} bind def 49.427 +/Pattern3 {0.750 Density} bind def 49.428 +/Pattern4 {0.125 Density} bind def 49.429 +/Pattern5 {0.375 Density} bind def 49.430 +/Pattern6 {0.625 Density} bind def 49.431 +/Pattern7 {0.875 Density} bind def 49.432 +} def 49.433 +% 49.434 +% Now test for support of Level 2 code 49.435 +% 49.436 +Level1 {Level1PatternFill} {Level2PatternFill} ifelse 49.437 +% 49.438 +/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont 49.439 +dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall 49.440 +currentdict end definefont pop 49.441 +/MFshow { 49.442 + { dup 5 get 3 ge 49.443 + { 5 get 3 eq {gsave} {grestore} ifelse } 49.444 + {dup dup 0 get findfont exch 1 get scalefont setfont 49.445 + [ currentpoint ] exch dup 2 get 0 exch R dup 5 get 2 ne {dup dup 6 49.446 + get exch 4 get {Gshow} {stringwidth pop 0 R} ifelse }if dup 5 get 0 eq 49.447 + {dup 3 get {2 get neg 0 exch R pop} {pop aload pop M} ifelse} {dup 5 49.448 + get 1 eq {dup 2 get exch dup 3 get exch 6 get stringwidth pop -2 div 49.449 + dup 0 R} {dup 6 get stringwidth pop -2 div 0 R 6 get 49.450 + show 2 index {aload pop M neg 3 -1 roll neg R pop pop} {pop pop pop 49.451 + pop aload pop M} ifelse }ifelse }ifelse } 49.452 + ifelse } 49.453 + forall} def 49.454 +/Gswidth {dup type /stringtype eq {stringwidth} {pop (n) stringwidth} ifelse} def 49.455 +/MFwidth {0 exch { dup 5 get 3 ge { 5 get 3 eq { 0 } { pop } ifelse } 49.456 + {dup 3 get{dup dup 0 get findfont exch 1 get scalefont setfont 49.457 + 6 get Gswidth pop add} {pop} ifelse} ifelse} forall} def 49.458 +/MLshow { currentpoint stroke M 49.459 + 0 exch R 49.460 + Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def 49.461 +/MRshow { currentpoint stroke M 49.462 + exch dup MFwidth neg 3 -1 roll R 49.463 + Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def 49.464 +/MCshow { currentpoint stroke M 49.465 + exch dup MFwidth -2 div 3 -1 roll R 49.466 + Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def 49.467 +/XYsave { [( ) 1 2 true false 3 ()] } bind def 49.468 +/XYrestore { [( ) 1 2 true false 4 ()] } bind def 49.469 +end 49.470 +%%EndProlog 49.471 +%%Page: 1 1 49.472 +gnudict begin 49.473 +gsave 49.474 +doclip 49.475 +50 50 translate 49.476 +0.100 0.100 scale 49.477 +90 rotate 49.478 +0 -5040 translate 49.479 +0 setgray 49.480 +newpath 49.481 +(Helvetica) findfont 140 scalefont setfont 49.482 +1.000 UL 49.483 +LTb 49.484 +518 448 M 49.485 +63 0 V 49.486 +stroke 49.487 +434 448 M 49.488 +[ [(Helvetica) 140.0 0.0 true true 0 ( 1)] 49.489 +] -46.7 MRshow 49.490 +1.000 UL 49.491 +LTb 49.492 +518 792 M 49.493 +63 0 V 49.494 +stroke 49.495 +434 792 M 49.496 +[ [(Helvetica) 140.0 0.0 true true 0 ( 2)] 49.497 +] -46.7 MRshow 49.498 +1.000 UL 49.499 +LTb 49.500 +518 1136 M 49.501 +63 0 V 49.502 +stroke 49.503 +434 1136 M 49.504 +[ [(Helvetica) 140.0 0.0 true true 0 ( 3)] 49.505 +] -46.7 MRshow 49.506 +1.000 UL 49.507 +LTb 49.508 +518 1480 M 49.509 +63 0 V 49.510 +stroke 49.511 +434 1480 M 49.512 +[ [(Helvetica) 140.0 0.0 true true 0 ( 4)] 49.513 +] -46.7 MRshow 49.514 +1.000 UL 49.515 +LTb 49.516 +518 1823 M 49.517 +63 0 V 49.518 +stroke 49.519 +434 1823 M 49.520 +[ [(Helvetica) 140.0 0.0 true true 0 ( 5)] 49.521 +] -46.7 MRshow 49.522 +1.000 UL 49.523 +LTb 49.524 +518 2167 M 49.525 +63 0 V 49.526 +stroke 49.527 +434 2167 M 49.528 +[ [(Helvetica) 140.0 0.0 true true 0 ( 6)] 49.529 +] -46.7 MRshow 49.530 +1.000 UL 49.531 +LTb 49.532 +518 2511 M 49.533 +63 0 V 49.534 +stroke 49.535 +434 2511 M 49.536 +[ [(Helvetica) 140.0 0.0 true true 0 ( 7)] 49.537 +] -46.7 MRshow 49.538 +1.000 UL 49.539 +LTb 49.540 +518 2855 M 49.541 +63 0 V 49.542 +stroke 49.543 +434 2855 M 49.544 +[ [(Helvetica) 140.0 0.0 true true 0 ( 8)] 49.545 +] -46.7 MRshow 49.546 +1.000 UL 49.547 +LTb 49.548 +518 448 M 49.549 +0 63 V 49.550 +stroke 49.551 +518 308 M 49.552 +[ [(Helvetica) 140.0 0.0 true true 0 ( 0)] 49.553 +] -46.7 MCshow 49.554 +1.000 UL 49.555 +LTb 49.556 +962 448 M 49.557 +0 63 V 49.558 +stroke 49.559 +962 308 M 49.560 +[ [(Helvetica) 140.0 0.0 true true 0 ( 1000)] 49.561 +] -46.7 MCshow 49.562 +1.000 UL 49.563 +LTb 49.564 +1405 448 M 49.565 +0 63 V 49.566 +stroke 49.567 +1405 308 M 49.568 +[ [(Helvetica) 140.0 0.0 true true 0 ( 2000)] 49.569 +] -46.7 MCshow 49.570 +1.000 UL 49.571 +LTb 49.572 +1849 448 M 49.573 +0 63 V 49.574 +stroke 49.575 +1849 308 M 49.576 +[ [(Helvetica) 140.0 0.0 true true 0 ( 3000)] 49.577 +] -46.7 MCshow 49.578 +1.000 UL 49.579 +LTb 49.580 +2293 448 M 49.581 +0 63 V 49.582 +stroke 49.583 +2293 308 M 49.584 +[ [(Helvetica) 140.0 0.0 true true 0 ( 4000)] 49.585 +] -46.7 MCshow 49.586 +1.000 UL 49.587 +LTb 49.588 +2736 448 M 49.589 +0 63 V 49.590 +stroke 49.591 +2736 308 M 49.592 +[ [(Helvetica) 140.0 0.0 true true 0 ( 5000)] 49.593 +] -46.7 MCshow 49.594 +1.000 UL 49.595 +LTb 49.596 +3180 448 M 49.597 +0 63 V 49.598 +stroke 49.599 +3180 308 M 49.600 +[ [(Helvetica) 140.0 0.0 true true 0 ( 6000)] 49.601 +] -46.7 MCshow 49.602 +1.000 UL 49.603 +LTb 49.604 +3623 448 M 49.605 +0 63 V 49.606 +stroke 49.607 +3623 308 M 49.608 +[ [(Helvetica) 140.0 0.0 true true 0 ( 7000)] 49.609 +] -46.7 MCshow 49.610 +1.000 UL 49.611 +LTb 49.612 +4067 448 M 49.613 +0 63 V 49.614 +stroke 49.615 +4067 308 M 49.616 +[ [(Helvetica) 140.0 0.0 true true 0 ( 8000)] 49.617 +] -46.7 MCshow 49.618 +1.000 UL 49.619 +LTb 49.620 +1.000 UL 49.621 +LTb 49.622 +518 2855 M 49.623 +518 448 L 49.624 +3549 0 V 49.625 +0 2407 R 49.626 +-3549 0 R 49.627 +stroke 49.628 +LCb setrgbcolor 49.629 +112 1651 M 49.630 +currentpoint gsave translate -270 rotate 0 0 moveto 49.631 +[ [(Helvetica) 140.0 0.0 true true 0 (Ratio of Total Execution to Total Work)] 49.632 +] -46.7 MCshow 49.633 +grestore 49.634 +LTb 49.635 +LCb setrgbcolor 49.636 +2292 98 M 49.637 +[ [(Helvetica) 140.0 0.0 true true 0 (Cycles in one Task)] 49.638 +] -46.7 MCshow 49.639 +LTb 49.640 +1.000 UP 49.641 +1.000 UL 49.642 +LTb 49.643 +1.000 UL 49.644 +LTb 49.645 +2492 2372 N 49.646 +0 420 V 49.647 +1491 0 V 49.648 +0 -420 V 49.649 +-1491 0 V 49.650 +Z stroke 49.651 +2492 2792 M 49.652 +1491 0 V 49.653 +% Begin plot #1 49.654 +stroke 49.655 +4.000 UL 49.656 +LT1 49.657 +LCa setrgbcolor 49.658 +518 792 M 49.659 +36 0 V 49.660 +36 0 V 49.661 +36 0 V 49.662 +35 0 V 49.663 +36 0 V 49.664 +36 0 V 49.665 +36 0 V 49.666 +36 0 V 49.667 +36 0 V 49.668 +35 0 V 49.669 +36 0 V 49.670 +36 0 V 49.671 +36 0 V 49.672 +36 0 V 49.673 +36 0 V 49.674 +36 0 V 49.675 +35 0 V 49.676 +36 0 V 49.677 +36 0 V 49.678 +36 0 V 49.679 +36 0 V 49.680 +36 0 V 49.681 +36 0 V 49.682 +35 0 V 49.683 +36 0 V 49.684 +36 0 V 49.685 +36 0 V 49.686 +36 0 V 49.687 +36 0 V 49.688 +35 0 V 49.689 +36 0 V 49.690 +36 0 V 49.691 +36 0 V 49.692 +36 0 V 49.693 +36 0 V 49.694 +36 0 V 49.695 +35 0 V 49.696 +36 0 V 49.697 +36 0 V 49.698 +36 0 V 49.699 +36 0 V 49.700 +36 0 V 49.701 +35 0 V 49.702 +36 0 V 49.703 +36 0 V 49.704 +36 0 V 49.705 +36 0 V 49.706 +36 0 V 49.707 +36 0 V 49.708 +35 0 V 49.709 +36 0 V 49.710 +36 0 V 49.711 +36 0 V 49.712 +36 0 V 49.713 +36 0 V 49.714 +36 0 V 49.715 +35 0 V 49.716 +36 0 V 49.717 +36 0 V 49.718 +36 0 V 49.719 +36 0 V 49.720 +36 0 V 49.721 +35 0 V 49.722 +36 0 V 49.723 +36 0 V 49.724 +36 0 V 49.725 +36 0 V 49.726 +36 0 V 49.727 +36 0 V 49.728 +35 0 V 49.729 +36 0 V 49.730 +36 0 V 49.731 +36 0 V 49.732 +36 0 V 49.733 +36 0 V 49.734 +35 0 V 49.735 +36 0 V 49.736 +36 0 V 49.737 +36 0 V 49.738 +36 0 V 49.739 +36 0 V 49.740 +36 0 V 49.741 +35 0 V 49.742 +36 0 V 49.743 +36 0 V 49.744 +36 0 V 49.745 +36 0 V 49.746 +36 0 V 49.747 +36 0 V 49.748 +35 0 V 49.749 +36 0 V 49.750 +36 0 V 49.751 +36 0 V 49.752 +36 0 V 49.753 +36 0 V 49.754 +35 0 V 49.755 +36 0 V 49.756 +36 0 V 49.757 +36 0 V 49.758 +% End plot #1 49.759 +% Begin plot #2 49.760 +stroke 49.761 +LT1 49.762 +LCb setrgbcolor 49.763 +3416 2722 M 49.764 +[ [(Helvetica) 140.0 0.0 true true 0 (160 Threads)] 49.765 +] -46.7 MRshow 49.766 +LT1 49.767 +3500 2722 M 49.768 +399 0 V 49.769 +1143 2855 M 49.770 +119 -356 V 49.771 +1884 1393 L 49.772 +3173 986 L 49.773 +4067 875 L 49.774 +% End plot #2 49.775 +% Begin plot #3 49.776 +stroke 49.777 +LT2 49.778 +LCb setrgbcolor 49.779 +3416 2582 M 49.780 +[ [(Helvetica) 140.0 0.0 true true 0 (320 Threads)] 49.781 +] -46.7 MRshow 49.782 +LT2 49.783 +3500 2582 M 49.784 +399 0 V 49.785 +938 2855 M 49.786 +11 -154 V 49.787 +298 -610 V 49.788 +661 -716 V 49.789 +3205 912 L 49.790 +862 -78 V 49.791 +% End plot #3 49.792 +% Begin plot #4 49.793 +stroke 49.794 +LT3 49.795 +LCb setrgbcolor 49.796 +3416 2442 M 49.797 +[ [(Helvetica) 140.0 0.0 true true 0 (640 Threads)] 49.798 +] -46.7 MRshow 49.799 +LT3 49.800 +3500 2442 M 49.801 +399 0 V 49.802 +933 2855 M 49.803 +7 -106 V 49.804 +316 -533 V 49.805 +639 -908 V 49.806 +3183 912 L 49.807 +884 -75 V 49.808 +% End plot #4 49.809 +stroke 49.810 +1.000 UL 49.811 +LTb 49.812 +518 2855 M 49.813 +518 448 L 49.814 +3549 0 V 49.815 +0 2407 R 49.816 +-3549 0 R 49.817 +1.000 UP 49.818 +stroke 49.819 +grestore 49.820 +end 49.821 +showpage 49.822 +%%Trailer 49.823 +%%DocumentFonts: Helvetica 49.824 +%%Pages: 1
50.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 50.2 +++ b/0__Papers/PRT/PRT__formal_def/figures/plots_exec_vs_task_size/vms_pthread_vthread_8_32_128_512thds__o30000__perfCtrs.eps Sat Aug 03 19:24:22 2013 -0700 50.3 @@ -0,0 +1,1319 @@ 50.4 +%!PS-Adobe-2.0 50.5 +%%Title: vms_pthreads_vthread_8_32_128_512thds__o30000__perfCtrs.meas.eps 50.6 +%%Creator: gnuplot 4.4 patchlevel 2 50.7 +%%CreationDate: Thu Jan 26 18:20:37 2012 50.8 +%%DocumentFonts: (atend) 50.9 +%%BoundingBox: 251 50 554 482 50.10 +%%Orientation: Landscape 50.11 +%%Pages: (atend) 50.12 +%%EndComments 50.13 +%%BeginProlog 50.14 +/gnudict 256 dict def 50.15 +gnudict begin 50.16 +% 50.17 +% The following true/false flags may be edited by hand if desired. 50.18 +% The unit line width and grayscale image gamma correction may also be changed. 50.19 +% 50.20 +/Color true def 50.21 +/Blacktext false def 50.22 +/Solid false def 50.23 +/Dashlength 1 def 50.24 +/Landscape true def 50.25 +/Level1 false def 50.26 +/Rounded false def 50.27 +/ClipToBoundingBox false def 50.28 +/TransparentPatterns false def 50.29 +/gnulinewidth 5.000 def 50.30 +/userlinewidth gnulinewidth def 50.31 +/Gamma 1.0 def 50.32 +% 50.33 +/vshift -46 def 50.34 +/dl1 { 50.35 + 10.0 Dashlength mul mul 50.36 + Rounded { currentlinewidth 0.75 mul sub dup 0 le { pop 0.01 } if } if 50.37 +} def 50.38 +/dl2 { 50.39 + 10.0 Dashlength mul mul 50.40 + Rounded { currentlinewidth 0.75 mul add } if 50.41 +} def 50.42 +/hpt_ 31.5 def 50.43 +/vpt_ 31.5 def 50.44 +/hpt hpt_ def 50.45 +/vpt vpt_ def 50.46 +Level1 {} { 50.47 +/SDict 10 dict def 50.48 +systemdict /pdfmark known not { 50.49 + userdict /pdfmark systemdict /cleartomark get put 50.50 +} if 50.51 +SDict begin [ 50.52 + /Title (vms_pthreads_vthread_8_32_128_512thds__o30000__perfCtrs.meas.eps) 50.53 + /Subject (gnuplot plot) 50.54 + /Creator (gnuplot 4.4 patchlevel 2) 50.55 + /Author (msach) 50.56 +% /Producer (gnuplot) 50.57 +% /Keywords () 50.58 + /CreationDate (Thu Jan 26 18:20:37 2012) 50.59 + /DOCINFO pdfmark 50.60 +end 50.61 +} ifelse 50.62 +/doclip { 50.63 + ClipToBoundingBox { 50.64 + newpath 251 50 moveto 554 50 lineto 554 482 lineto 251 482 lineto closepath 50.65 + clip 50.66 + } if 50.67 +} def 50.68 +% 50.69 +% Gnuplot Prolog Version 4.4 (August 2010) 50.70 +% 50.71 +%/SuppressPDFMark true def 50.72 +% 50.73 +/M {moveto} bind def 50.74 +/L {lineto} bind def 50.75 +/R {rmoveto} bind def 50.76 +/V {rlineto} bind def 50.77 +/N {newpath moveto} bind def 50.78 +/Z {closepath} bind def 50.79 +/C {setrgbcolor} bind def 50.80 +/f {rlineto fill} bind def 50.81 +/g {setgray} bind def 50.82 +/Gshow {show} def % May be redefined later in the file to support UTF-8 50.83 +/vpt2 vpt 2 mul def 50.84 +/hpt2 hpt 2 mul def 50.85 +/Lshow {currentpoint stroke M 0 vshift R 50.86 + Blacktext {gsave 0 setgray show grestore} {show} ifelse} def 50.87 +/Rshow {currentpoint stroke M dup stringwidth pop neg vshift R 50.88 + Blacktext {gsave 0 setgray show grestore} {show} ifelse} def 50.89 +/Cshow {currentpoint stroke M dup stringwidth pop -2 div vshift R 50.90 + Blacktext {gsave 0 setgray show grestore} {show} ifelse} def 50.91 +/UP {dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def 50.92 + /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def} def 50.93 +/DL {Color {setrgbcolor Solid {pop []} if 0 setdash} 50.94 + {pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse} def 50.95 +/BL {stroke userlinewidth 2 mul setlinewidth 50.96 + Rounded {1 setlinejoin 1 setlinecap} if} def 50.97 +/AL {stroke userlinewidth 2 div setlinewidth 50.98 + Rounded {1 setlinejoin 1 setlinecap} if} def 50.99 +/UL {dup gnulinewidth mul /userlinewidth exch def 50.100 + dup 1 lt {pop 1} if 10 mul /udl exch def} def 50.101 +/PL {stroke userlinewidth setlinewidth 50.102 + Rounded {1 setlinejoin 1 setlinecap} if} def 50.103 +3.8 setmiterlimit 50.104 +% Default Line colors 50.105 +/LCw {1 1 1} def 50.106 +/LCb {0 0 0} def 50.107 +/LCa {0 0 0} def 50.108 +/LC0 {1 0 0} def 50.109 +/LC1 {0 1 0} def 50.110 +/LC2 {0 0 1} def 50.111 +/LC3 {1 0 1} def 50.112 +/LC4 {0 1 1} def 50.113 +/LC5 {1 1 0} def 50.114 +/LC6 {0 0 0} def 50.115 +/LC7 {1 0.3 0} def 50.116 +/LC8 {0.5 0.5 0.5} def 50.117 +% Default Line Types 50.118 +/LTw {PL [] 1 setgray} def 50.119 +/LTb {BL [] LCb DL} def 50.120 +/LTa {AL [1 udl mul 2 udl mul] 0 setdash LCa setrgbcolor} def 50.121 +/LT0 {PL [] LC0 DL} def 50.122 +/LT1 {PL [4 dl1 2 dl2] LC1 DL} def 50.123 +/LT2 {PL [2 dl1 3 dl2] LC2 DL} def 50.124 +/LT3 {PL [1 dl1 1.5 dl2] LC3 DL} def 50.125 +/LT4 {PL [6 dl1 2 dl2 1 dl1 2 dl2] LC4 DL} def 50.126 +/LT5 {PL [3 dl1 3 dl2 1 dl1 3 dl2] LC5 DL} def 50.127 +/LT6 {PL [2 dl1 2 dl2 2 dl1 6 dl2] LC6 DL} def 50.128 +/LT7 {PL [1 dl1 2 dl2 6 dl1 2 dl2 1 dl1 2 dl2] LC7 DL} def 50.129 +/LT8 {PL [2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 4 dl2] LC8 DL} def 50.130 +/Pnt {stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore} def 50.131 +/Dia {stroke [] 0 setdash 2 copy vpt add M 50.132 + hpt neg vpt neg V hpt vpt neg V 50.133 + hpt vpt V hpt neg vpt V closepath stroke 50.134 + Pnt} def 50.135 +/Pls {stroke [] 0 setdash vpt sub M 0 vpt2 V 50.136 + currentpoint stroke M 50.137 + hpt neg vpt neg R hpt2 0 V stroke 50.138 + } def 50.139 +/Box {stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M 50.140 + 0 vpt2 neg V hpt2 0 V 0 vpt2 V 50.141 + hpt2 neg 0 V closepath stroke 50.142 + Pnt} def 50.143 +/Crs {stroke [] 0 setdash exch hpt sub exch vpt add M 50.144 + hpt2 vpt2 neg V currentpoint stroke M 50.145 + hpt2 neg 0 R hpt2 vpt2 V stroke} def 50.146 +/TriU {stroke [] 0 setdash 2 copy vpt 1.12 mul add M 50.147 + hpt neg vpt -1.62 mul V 50.148 + hpt 2 mul 0 V 50.149 + hpt neg vpt 1.62 mul V closepath stroke 50.150 + Pnt} def 50.151 +/Star {2 copy Pls Crs} def 50.152 +/BoxF {stroke [] 0 setdash exch hpt sub exch vpt add M 50.153 + 0 vpt2 neg V hpt2 0 V 0 vpt2 V 50.154 + hpt2 neg 0 V closepath fill} def 50.155 +/TriUF {stroke [] 0 setdash vpt 1.12 mul add M 50.156 + hpt neg vpt -1.62 mul V 50.157 + hpt 2 mul 0 V 50.158 + hpt neg vpt 1.62 mul V closepath fill} def 50.159 +/TriD {stroke [] 0 setdash 2 copy vpt 1.12 mul sub M 50.160 + hpt neg vpt 1.62 mul V 50.161 + hpt 2 mul 0 V 50.162 + hpt neg vpt -1.62 mul V closepath stroke 50.163 + Pnt} def 50.164 +/TriDF {stroke [] 0 setdash vpt 1.12 mul sub M 50.165 + hpt neg vpt 1.62 mul V 50.166 + hpt 2 mul 0 V 50.167 + hpt neg vpt -1.62 mul V closepath fill} def 50.168 +/DiaF {stroke [] 0 setdash vpt add M 50.169 + hpt neg vpt neg V hpt vpt neg V 50.170 + hpt vpt V hpt neg vpt V closepath fill} def 50.171 +/Pent {stroke [] 0 setdash 2 copy gsave 50.172 + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat 50.173 + closepath stroke grestore Pnt} def 50.174 +/PentF {stroke [] 0 setdash gsave 50.175 + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat 50.176 + closepath fill grestore} def 50.177 +/Circle {stroke [] 0 setdash 2 copy 50.178 + hpt 0 360 arc stroke Pnt} def 50.179 +/CircleF {stroke [] 0 setdash hpt 0 360 arc fill} def 50.180 +/C0 {BL [] 0 setdash 2 copy moveto vpt 90 450 arc} bind def 50.181 +/C1 {BL [] 0 setdash 2 copy moveto 50.182 + 2 copy vpt 0 90 arc closepath fill 50.183 + vpt 0 360 arc closepath} bind def 50.184 +/C2 {BL [] 0 setdash 2 copy moveto 50.185 + 2 copy vpt 90 180 arc closepath fill 50.186 + vpt 0 360 arc closepath} bind def 50.187 +/C3 {BL [] 0 setdash 2 copy moveto 50.188 + 2 copy vpt 0 180 arc closepath fill 50.189 + vpt 0 360 arc closepath} bind def 50.190 +/C4 {BL [] 0 setdash 2 copy moveto 50.191 + 2 copy vpt 180 270 arc closepath fill 50.192 + vpt 0 360 arc closepath} bind def 50.193 +/C5 {BL [] 0 setdash 2 copy moveto 50.194 + 2 copy vpt 0 90 arc 50.195 + 2 copy moveto 50.196 + 2 copy vpt 180 270 arc closepath fill 50.197 + vpt 0 360 arc} bind def 50.198 +/C6 {BL [] 0 setdash 2 copy moveto 50.199 + 2 copy vpt 90 270 arc closepath fill 50.200 + vpt 0 360 arc closepath} bind def 50.201 +/C7 {BL [] 0 setdash 2 copy moveto 50.202 + 2 copy vpt 0 270 arc closepath fill 50.203 + vpt 0 360 arc closepath} bind def 50.204 +/C8 {BL [] 0 setdash 2 copy moveto 50.205 + 2 copy vpt 270 360 arc closepath fill 50.206 + vpt 0 360 arc closepath} bind def 50.207 +/C9 {BL [] 0 setdash 2 copy moveto 50.208 + 2 copy vpt 270 450 arc closepath fill 50.209 + vpt 0 360 arc closepath} bind def 50.210 +/C10 {BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill 50.211 + 2 copy moveto 50.212 + 2 copy vpt 90 180 arc closepath fill 50.213 + vpt 0 360 arc closepath} bind def 50.214 +/C11 {BL [] 0 setdash 2 copy moveto 50.215 + 2 copy vpt 0 180 arc closepath fill 50.216 + 2 copy moveto 50.217 + 2 copy vpt 270 360 arc closepath fill 50.218 + vpt 0 360 arc closepath} bind def 50.219 +/C12 {BL [] 0 setdash 2 copy moveto 50.220 + 2 copy vpt 180 360 arc closepath fill 50.221 + vpt 0 360 arc closepath} bind def 50.222 +/C13 {BL [] 0 setdash 2 copy moveto 50.223 + 2 copy vpt 0 90 arc closepath fill 50.224 + 2 copy moveto 50.225 + 2 copy vpt 180 360 arc closepath fill 50.226 + vpt 0 360 arc closepath} bind def 50.227 +/C14 {BL [] 0 setdash 2 copy moveto 50.228 + 2 copy vpt 90 360 arc closepath fill 50.229 + vpt 0 360 arc} bind def 50.230 +/C15 {BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill 50.231 + vpt 0 360 arc closepath} bind def 50.232 +/Rec {newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto 50.233 + neg 0 rlineto closepath} bind def 50.234 +/Square {dup Rec} bind def 50.235 +/Bsquare {vpt sub exch vpt sub exch vpt2 Square} bind def 50.236 +/S0 {BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare} bind def 50.237 +/S1 {BL [] 0 setdash 2 copy vpt Square fill Bsquare} bind def 50.238 +/S2 {BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def 50.239 +/S3 {BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare} bind def 50.240 +/S4 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def 50.241 +/S5 {BL [] 0 setdash 2 copy 2 copy vpt Square fill 50.242 + exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def 50.243 +/S6 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare} bind def 50.244 +/S7 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill 50.245 + 2 copy vpt Square fill Bsquare} bind def 50.246 +/S8 {BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare} bind def 50.247 +/S9 {BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare} bind def 50.248 +/S10 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill 50.249 + Bsquare} bind def 50.250 +/S11 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill 50.251 + Bsquare} bind def 50.252 +/S12 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare} bind def 50.253 +/S13 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 50.254 + 2 copy vpt Square fill Bsquare} bind def 50.255 +/S14 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 50.256 + 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def 50.257 +/S15 {BL [] 0 setdash 2 copy Bsquare fill Bsquare} bind def 50.258 +/D0 {gsave translate 45 rotate 0 0 S0 stroke grestore} bind def 50.259 +/D1 {gsave translate 45 rotate 0 0 S1 stroke grestore} bind def 50.260 +/D2 {gsave translate 45 rotate 0 0 S2 stroke grestore} bind def 50.261 +/D3 {gsave translate 45 rotate 0 0 S3 stroke grestore} bind def 50.262 +/D4 {gsave translate 45 rotate 0 0 S4 stroke grestore} bind def 50.263 +/D5 {gsave translate 45 rotate 0 0 S5 stroke grestore} bind def 50.264 +/D6 {gsave translate 45 rotate 0 0 S6 stroke grestore} bind def 50.265 +/D7 {gsave translate 45 rotate 0 0 S7 stroke grestore} bind def 50.266 +/D8 {gsave translate 45 rotate 0 0 S8 stroke grestore} bind def 50.267 +/D9 {gsave translate 45 rotate 0 0 S9 stroke grestore} bind def 50.268 +/D10 {gsave translate 45 rotate 0 0 S10 stroke grestore} bind def 50.269 +/D11 {gsave translate 45 rotate 0 0 S11 stroke grestore} bind def 50.270 +/D12 {gsave translate 45 rotate 0 0 S12 stroke grestore} bind def 50.271 +/D13 {gsave translate 45 rotate 0 0 S13 stroke grestore} bind def 50.272 +/D14 {gsave translate 45 rotate 0 0 S14 stroke grestore} bind def 50.273 +/D15 {gsave translate 45 rotate 0 0 S15 stroke grestore} bind def 50.274 +/DiaE {stroke [] 0 setdash vpt add M 50.275 + hpt neg vpt neg V hpt vpt neg V 50.276 + hpt vpt V hpt neg vpt V closepath stroke} def 50.277 +/BoxE {stroke [] 0 setdash exch hpt sub exch vpt add M 50.278 + 0 vpt2 neg V hpt2 0 V 0 vpt2 V 50.279 + hpt2 neg 0 V closepath stroke} def 50.280 +/TriUE {stroke [] 0 setdash vpt 1.12 mul add M 50.281 + hpt neg vpt -1.62 mul V 50.282 + hpt 2 mul 0 V 50.283 + hpt neg vpt 1.62 mul V closepath stroke} def 50.284 +/TriDE {stroke [] 0 setdash vpt 1.12 mul sub M 50.285 + hpt neg vpt 1.62 mul V 50.286 + hpt 2 mul 0 V 50.287 + hpt neg vpt -1.62 mul V closepath stroke} def 50.288 +/PentE {stroke [] 0 setdash gsave 50.289 + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat 50.290 + closepath stroke grestore} def 50.291 +/CircE {stroke [] 0 setdash 50.292 + hpt 0 360 arc stroke} def 50.293 +/Opaque {gsave closepath 1 setgray fill grestore 0 setgray closepath} def 50.294 +/DiaW {stroke [] 0 setdash vpt add M 50.295 + hpt neg vpt neg V hpt vpt neg V 50.296 + hpt vpt V hpt neg vpt V Opaque stroke} def 50.297 +/BoxW {stroke [] 0 setdash exch hpt sub exch vpt add M 50.298 + 0 vpt2 neg V hpt2 0 V 0 vpt2 V 50.299 + hpt2 neg 0 V Opaque stroke} def 50.300 +/TriUW {stroke [] 0 setdash vpt 1.12 mul add M 50.301 + hpt neg vpt -1.62 mul V 50.302 + hpt 2 mul 0 V 50.303 + hpt neg vpt 1.62 mul V Opaque stroke} def 50.304 +/TriDW {stroke [] 0 setdash vpt 1.12 mul sub M 50.305 + hpt neg vpt 1.62 mul V 50.306 + hpt 2 mul 0 V 50.307 + hpt neg vpt -1.62 mul V Opaque stroke} def 50.308 +/PentW {stroke [] 0 setdash gsave 50.309 + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat 50.310 + Opaque stroke grestore} def 50.311 +/CircW {stroke [] 0 setdash 50.312 + hpt 0 360 arc Opaque stroke} def 50.313 +/BoxFill {gsave Rec 1 setgray fill grestore} def 50.314 +/Density { 50.315 + /Fillden exch def 50.316 + currentrgbcolor 50.317 + /ColB exch def /ColG exch def /ColR exch def 50.318 + /ColR ColR Fillden mul Fillden sub 1 add def 50.319 + /ColG ColG Fillden mul Fillden sub 1 add def 50.320 + /ColB ColB Fillden mul Fillden sub 1 add def 50.321 + ColR ColG ColB setrgbcolor} def 50.322 +/BoxColFill {gsave Rec PolyFill} def 50.323 +/PolyFill {gsave Density fill grestore grestore} def 50.324 +/h {rlineto rlineto rlineto gsave closepath fill grestore} bind def 50.325 +% 50.326 +% PostScript Level 1 Pattern Fill routine for rectangles 50.327 +% Usage: x y w h s a XX PatternFill 50.328 +% x,y = lower left corner of box to be filled 50.329 +% w,h = width and height of box 50.330 +% a = angle in degrees between lines and x-axis 50.331 +% XX = 0/1 for no/yes cross-hatch 50.332 +% 50.333 +/PatternFill {gsave /PFa [ 9 2 roll ] def 50.334 + PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate 50.335 + PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec 50.336 + gsave 1 setgray fill grestore clip 50.337 + currentlinewidth 0.5 mul setlinewidth 50.338 + /PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def 50.339 + 0 0 M PFa 5 get rotate PFs -2 div dup translate 50.340 + 0 1 PFs PFa 4 get div 1 add floor cvi 50.341 + {PFa 4 get mul 0 M 0 PFs V} for 50.342 + 0 PFa 6 get ne { 50.343 + 0 1 PFs PFa 4 get div 1 add floor cvi 50.344 + {PFa 4 get mul 0 2 1 roll M PFs 0 V} for 50.345 + } if 50.346 + stroke grestore} def 50.347 +% 50.348 +/languagelevel where 50.349 + {pop languagelevel} {1} ifelse 50.350 + 2 lt 50.351 + {/InterpretLevel1 true def} 50.352 + {/InterpretLevel1 Level1 def} 50.353 + ifelse 50.354 +% 50.355 +% PostScript level 2 pattern fill definitions 50.356 +% 50.357 +/Level2PatternFill { 50.358 +/Tile8x8 {/PaintType 2 /PatternType 1 /TilingType 1 /BBox [0 0 8 8] /XStep 8 /YStep 8} 50.359 + bind def 50.360 +/KeepColor {currentrgbcolor [/Pattern /DeviceRGB] setcolorspace} bind def 50.361 +<< Tile8x8 50.362 + /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke} 50.363 +>> matrix makepattern 50.364 +/Pat1 exch def 50.365 +<< Tile8x8 50.366 + /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke 50.367 + 0 4 M 4 8 L 8 4 L 4 0 L 0 4 L stroke} 50.368 +>> matrix makepattern 50.369 +/Pat2 exch def 50.370 +<< Tile8x8 50.371 + /PaintProc {0.5 setlinewidth pop 0 0 M 0 8 L 50.372 + 8 8 L 8 0 L 0 0 L fill} 50.373 +>> matrix makepattern 50.374 +/Pat3 exch def 50.375 +<< Tile8x8 50.376 + /PaintProc {0.5 setlinewidth pop -4 8 M 8 -4 L 50.377 + 0 12 M 12 0 L stroke} 50.378 +>> matrix makepattern 50.379 +/Pat4 exch def 50.380 +<< Tile8x8 50.381 + /PaintProc {0.5 setlinewidth pop -4 0 M 8 12 L 50.382 + 0 -4 M 12 8 L stroke} 50.383 +>> matrix makepattern 50.384 +/Pat5 exch def 50.385 +<< Tile8x8 50.386 + /PaintProc {0.5 setlinewidth pop -2 8 M 4 -4 L 50.387 + 0 12 M 8 -4 L 4 12 M 10 0 L stroke} 50.388 +>> matrix makepattern 50.389 +/Pat6 exch def 50.390 +<< Tile8x8 50.391 + /PaintProc {0.5 setlinewidth pop -2 0 M 4 12 L 50.392 + 0 -4 M 8 12 L 4 -4 M 10 8 L stroke} 50.393 +>> matrix makepattern 50.394 +/Pat7 exch def 50.395 +<< Tile8x8 50.396 + /PaintProc {0.5 setlinewidth pop 8 -2 M -4 4 L 50.397 + 12 0 M -4 8 L 12 4 M 0 10 L stroke} 50.398 +>> matrix makepattern 50.399 +/Pat8 exch def 50.400 +<< Tile8x8 50.401 + /PaintProc {0.5 setlinewidth pop 0 -2 M 12 4 L 50.402 + -4 0 M 12 8 L -4 4 M 8 10 L stroke} 50.403 +>> matrix makepattern 50.404 +/Pat9 exch def 50.405 +/Pattern1 {PatternBgnd KeepColor Pat1 setpattern} bind def 50.406 +/Pattern2 {PatternBgnd KeepColor Pat2 setpattern} bind def 50.407 +/Pattern3 {PatternBgnd KeepColor Pat3 setpattern} bind def 50.408 +/Pattern4 {PatternBgnd KeepColor Landscape {Pat5} {Pat4} ifelse setpattern} bind def 50.409 +/Pattern5 {PatternBgnd KeepColor Landscape {Pat4} {Pat5} ifelse setpattern} bind def 50.410 +/Pattern6 {PatternBgnd KeepColor Landscape {Pat9} {Pat6} ifelse setpattern} bind def 50.411 +/Pattern7 {PatternBgnd KeepColor Landscape {Pat8} {Pat7} ifelse setpattern} bind def 50.412 +} def 50.413 +% 50.414 +% 50.415 +%End of PostScript Level 2 code 50.416 +% 50.417 +/PatternBgnd { 50.418 + TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse 50.419 +} def 50.420 +% 50.421 +% Substitute for Level 2 pattern fill codes with 50.422 +% grayscale if Level 2 support is not selected. 50.423 +% 50.424 +/Level1PatternFill { 50.425 +/Pattern1 {0.250 Density} bind def 50.426 +/Pattern2 {0.500 Density} bind def 50.427 +/Pattern3 {0.750 Density} bind def 50.428 +/Pattern4 {0.125 Density} bind def 50.429 +/Pattern5 {0.375 Density} bind def 50.430 +/Pattern6 {0.625 Density} bind def 50.431 +/Pattern7 {0.875 Density} bind def 50.432 +} def 50.433 +% 50.434 +% Now test for support of Level 2 code 50.435 +% 50.436 +Level1 {Level1PatternFill} {Level2PatternFill} ifelse 50.437 +% 50.438 +/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont 50.439 +dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall 50.440 +currentdict end definefont pop 50.441 +/MFshow { 50.442 + { dup 5 get 3 ge 50.443 + { 5 get 3 eq {gsave} {grestore} ifelse } 50.444 + {dup dup 0 get findfont exch 1 get scalefont setfont 50.445 + [ currentpoint ] exch dup 2 get 0 exch R dup 5 get 2 ne {dup dup 6 50.446 + get exch 4 get {Gshow} {stringwidth pop 0 R} ifelse }if dup 5 get 0 eq 50.447 + {dup 3 get {2 get neg 0 exch R pop} {pop aload pop M} ifelse} {dup 5 50.448 + get 1 eq {dup 2 get exch dup 3 get exch 6 get stringwidth pop -2 div 50.449 + dup 0 R} {dup 6 get stringwidth pop -2 div 0 R 6 get 50.450 + show 2 index {aload pop M neg 3 -1 roll neg R pop pop} {pop pop pop 50.451 + pop aload pop M} ifelse }ifelse }ifelse } 50.452 + ifelse } 50.453 + forall} def 50.454 +/Gswidth {dup type /stringtype eq {stringwidth} {pop (n) stringwidth} ifelse} def 50.455 +/MFwidth {0 exch { dup 5 get 3 ge { 5 get 3 eq { 0 } { pop } ifelse } 50.456 + {dup 3 get{dup dup 0 get findfont exch 1 get scalefont setfont 50.457 + 6 get Gswidth pop add} {pop} ifelse} ifelse} forall} def 50.458 +/MLshow { currentpoint stroke M 50.459 + 0 exch R 50.460 + Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def 50.461 +/MRshow { currentpoint stroke M 50.462 + exch dup MFwidth neg 3 -1 roll R 50.463 + Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def 50.464 +/MCshow { currentpoint stroke M 50.465 + exch dup MFwidth -2 div 3 -1 roll R 50.466 + Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def 50.467 +/XYsave { [( ) 1 2 true false 3 ()] } bind def 50.468 +/XYrestore { [( ) 1 2 true false 4 ()] } bind def 50.469 +end 50.470 +%%EndProlog 50.471 +%%Page: 1 1 50.472 +gnudict begin 50.473 +gsave 50.474 +doclip 50.475 +50 50 translate 50.476 +0.100 0.100 scale 50.477 +90 rotate 50.478 +0 -5040 translate 50.479 +0 setgray 50.480 +newpath 50.481 +(Helvetica) findfont 140 scalefont setfont 50.482 +1.000 UL 50.483 +LTb 50.484 +602 448 M 50.485 +63 0 V 50.486 +stroke 50.487 +518 448 M 50.488 +[ [(Helvetica) 140.0 0.0 true true 0 ( 1)] 50.489 +] -46.7 MRshow 50.490 +1.000 UL 50.491 +LTb 50.492 +602 715 M 50.493 +63 0 V 50.494 +stroke 50.495 +518 715 M 50.496 +[ [(Helvetica) 140.0 0.0 true true 0 ( 2)] 50.497 +] -46.7 MRshow 50.498 +1.000 UL 50.499 +LTb 50.500 +602 983 M 50.501 +63 0 V 50.502 +stroke 50.503 +518 983 M 50.504 +[ [(Helvetica) 140.0 0.0 true true 0 ( 3)] 50.505 +] -46.7 MRshow 50.506 +1.000 UL 50.507 +LTb 50.508 +602 1250 M 50.509 +63 0 V 50.510 +stroke 50.511 +518 1250 M 50.512 +[ [(Helvetica) 140.0 0.0 true true 0 ( 4)] 50.513 +] -46.7 MRshow 50.514 +1.000 UL 50.515 +LTb 50.516 +602 1518 M 50.517 +63 0 V 50.518 +stroke 50.519 +518 1518 M 50.520 +[ [(Helvetica) 140.0 0.0 true true 0 ( 5)] 50.521 +] -46.7 MRshow 50.522 +1.000 UL 50.523 +LTb 50.524 +602 1785 M 50.525 +63 0 V 50.526 +stroke 50.527 +518 1785 M 50.528 +[ [(Helvetica) 140.0 0.0 true true 0 ( 6)] 50.529 +] -46.7 MRshow 50.530 +1.000 UL 50.531 +LTb 50.532 +602 2053 M 50.533 +63 0 V 50.534 +stroke 50.535 +518 2053 M 50.536 +[ [(Helvetica) 140.0 0.0 true true 0 ( 7)] 50.537 +] -46.7 MRshow 50.538 +1.000 UL 50.539 +LTb 50.540 +602 2320 M 50.541 +63 0 V 50.542 +stroke 50.543 +518 2320 M 50.544 +[ [(Helvetica) 140.0 0.0 true true 0 ( 8)] 50.545 +] -46.7 MRshow 50.546 +1.000 UL 50.547 +LTb 50.548 +602 2588 M 50.549 +63 0 V 50.550 +stroke 50.551 +518 2588 M 50.552 +[ [(Helvetica) 140.0 0.0 true true 0 ( 9)] 50.553 +] -46.7 MRshow 50.554 +1.000 UL 50.555 +LTb 50.556 +602 2855 M 50.557 +63 0 V 50.558 +stroke 50.559 +518 2855 M 50.560 +[ [(Helvetica) 140.0 0.0 true true 0 ( 10)] 50.561 +] -46.7 MRshow 50.562 +1.000 UL 50.563 +LTb 50.564 +602 448 M 50.565 +0 63 V 50.566 +stroke 50.567 +602 308 M 50.568 +[ [(Helvetica) 140.0 0.0 true true 0 ( 0)] 50.569 +] -46.7 MCshow 50.570 +1.000 UL 50.571 +LTb 50.572 +1035 448 M 50.573 +0 63 V 50.574 +stroke 50.575 +1035 308 M 50.576 +[ [(Helvetica) 140.0 0.0 true true 0 ( 1000)] 50.577 +] -46.7 MCshow 50.578 +1.000 UL 50.579 +LTb 50.580 +1468 448 M 50.581 +0 63 V 50.582 +stroke 50.583 +1468 308 M 50.584 +[ [(Helvetica) 140.0 0.0 true true 0 ( 2000)] 50.585 +] -46.7 MCshow 50.586 +1.000 UL 50.587 +LTb 50.588 +1901 448 M 50.589 +0 63 V 50.590 +stroke 50.591 +1901 308 M 50.592 +[ [(Helvetica) 140.0 0.0 true true 0 ( 3000)] 50.593 +] -46.7 MCshow 50.594 +1.000 UL 50.595 +LTb 50.596 +2335 448 M 50.597 +0 63 V 50.598 +stroke 50.599 +2335 308 M 50.600 +[ [(Helvetica) 140.0 0.0 true true 0 ( 4000)] 50.601 +] -46.7 MCshow 50.602 +1.000 UL 50.603 +LTb 50.604 +2768 448 M 50.605 +0 63 V 50.606 +stroke 50.607 +2768 308 M 50.608 +[ [(Helvetica) 140.0 0.0 true true 0 ( 5000)] 50.609 +] -46.7 MCshow 50.610 +1.000 UL 50.611 +LTb 50.612 +3201 448 M 50.613 +0 63 V 50.614 +stroke 50.615 +3201 308 M 50.616 +[ [(Helvetica) 140.0 0.0 true true 0 ( 6000)] 50.617 +] -46.7 MCshow 50.618 +1.000 UL 50.619 +LTb 50.620 +3634 448 M 50.621 +0 63 V 50.622 +stroke 50.623 +3634 308 M 50.624 +[ [(Helvetica) 140.0 0.0 true true 0 ( 7000)] 50.625 +] -46.7 MCshow 50.626 +1.000 UL 50.627 +LTb 50.628 +4067 448 M 50.629 +0 63 V 50.630 +stroke 50.631 +4067 308 M 50.632 +[ [(Helvetica) 140.0 0.0 true true 0 ( 8000)] 50.633 +] -46.7 MCshow 50.634 +1.000 UL 50.635 +LTb 50.636 +1.000 UL 50.637 +LTb 50.638 +602 2855 M 50.639 +602 448 L 50.640 +3465 0 V 50.641 +0 2407 R 50.642 +-3465 0 R 50.643 +stroke 50.644 +LCb setrgbcolor 50.645 +112 1651 M 50.646 +currentpoint gsave translate -270 rotate 0 0 moveto 50.647 +[ [(Helvetica) 140.0 0.0 true true 0 (Ratio of Total Execution to Total Work)] 50.648 +] -46.7 MCshow 50.649 +grestore 50.650 +LTb 50.651 +LCb setrgbcolor 50.652 +2334 98 M 50.653 +[ [(Helvetica) 140.0 0.0 true true 0 (Cycles in one Task)] 50.654 +] -46.7 MCshow 50.655 +LTb 50.656 +1.000 UP 50.657 +1.000 UL 50.658 +LTb 50.659 +% Begin plot #1 50.660 +3.000 UL 50.661 +LT1 50.662 +LCa setrgbcolor 50.663 +602 715 M 50.664 +35 0 V 50.665 +35 0 V 50.666 +35 0 V 50.667 +35 0 V 50.668 +35 0 V 50.669 +35 0 V 50.670 +35 0 V 50.671 +35 0 V 50.672 +35 0 V 50.673 +35 0 V 50.674 +35 0 V 50.675 +35 0 V 50.676 +35 0 V 50.677 +35 0 V 50.678 +35 0 V 50.679 +35 0 V 50.680 +35 0 V 50.681 +35 0 V 50.682 +35 0 V 50.683 +35 0 V 50.684 +35 0 V 50.685 +35 0 V 50.686 +35 0 V 50.687 +35 0 V 50.688 +35 0 V 50.689 +35 0 V 50.690 +35 0 V 50.691 +35 0 V 50.692 +35 0 V 50.693 +35 0 V 50.694 +35 0 V 50.695 +35 0 V 50.696 +35 0 V 50.697 +35 0 V 50.698 +35 0 V 50.699 +35 0 V 50.700 +35 0 V 50.701 +35 0 V 50.702 +35 0 V 50.703 +35 0 V 50.704 +35 0 V 50.705 +35 0 V 50.706 +35 0 V 50.707 +35 0 V 50.708 +35 0 V 50.709 +35 0 V 50.710 +35 0 V 50.711 +35 0 V 50.712 +35 0 V 50.713 +35 0 V 50.714 +35 0 V 50.715 +35 0 V 50.716 +35 0 V 50.717 +35 0 V 50.718 +35 0 V 50.719 +35 0 V 50.720 +35 0 V 50.721 +35 0 V 50.722 +35 0 V 50.723 +35 0 V 50.724 +35 0 V 50.725 +35 0 V 50.726 +35 0 V 50.727 +35 0 V 50.728 +35 0 V 50.729 +35 0 V 50.730 +35 0 V 50.731 +35 0 V 50.732 +35 0 V 50.733 +35 0 V 50.734 +35 0 V 50.735 +35 0 V 50.736 +35 0 V 50.737 +35 0 V 50.738 +35 0 V 50.739 +35 0 V 50.740 +35 0 V 50.741 +35 0 V 50.742 +35 0 V 50.743 +35 0 V 50.744 +35 0 V 50.745 +35 0 V 50.746 +35 0 V 50.747 +35 0 V 50.748 +35 0 V 50.749 +35 0 V 50.750 +35 0 V 50.751 +35 0 V 50.752 +35 0 V 50.753 +35 0 V 50.754 +35 0 V 50.755 +35 0 V 50.756 +35 0 V 50.757 +35 0 V 50.758 +35 0 V 50.759 +35 0 V 50.760 +35 0 V 50.761 +35 0 V 50.762 +35 0 V 50.763 +% End plot #1 50.764 +stroke 50.765 +1.000 UL 50.766 +LTb 50.767 +602 2855 M 50.768 +602 448 L 50.769 +3465 0 V 50.770 +0 2407 R 50.771 +-3465 0 R 50.772 +1.000 UP 50.773 +602 448 M 50.774 +63 0 V 50.775 +stroke 50.776 +518 448 M 50.777 +[ [(Helvetica) 140.0 0.0 true true 0 ( 1)] 50.778 +] -46.7 MRshow 50.779 +1.000 UL 50.780 +LTb 50.781 +602 715 M 50.782 +63 0 V 50.783 +stroke 50.784 +518 715 M 50.785 +[ [(Helvetica) 140.0 0.0 true true 0 ( 2)] 50.786 +] -46.7 MRshow 50.787 +1.000 UL 50.788 +LTb 50.789 +602 983 M 50.790 +63 0 V 50.791 +stroke 50.792 +518 983 M 50.793 +[ [(Helvetica) 140.0 0.0 true true 0 ( 3)] 50.794 +] -46.7 MRshow 50.795 +1.000 UL 50.796 +LTb 50.797 +602 1250 M 50.798 +63 0 V 50.799 +stroke 50.800 +518 1250 M 50.801 +[ [(Helvetica) 140.0 0.0 true true 0 ( 4)] 50.802 +] -46.7 MRshow 50.803 +1.000 UL 50.804 +LTb 50.805 +602 1518 M 50.806 +63 0 V 50.807 +stroke 50.808 +518 1518 M 50.809 +[ [(Helvetica) 140.0 0.0 true true 0 ( 5)] 50.810 +] -46.7 MRshow 50.811 +1.000 UL 50.812 +LTb 50.813 +602 1785 M 50.814 +63 0 V 50.815 +stroke 50.816 +518 1785 M 50.817 +[ [(Helvetica) 140.0 0.0 true true 0 ( 6)] 50.818 +] -46.7 MRshow 50.819 +1.000 UL 50.820 +LTb 50.821 +602 2053 M 50.822 +63 0 V 50.823 +stroke 50.824 +518 2053 M 50.825 +[ [(Helvetica) 140.0 0.0 true true 0 ( 7)] 50.826 +] -46.7 MRshow 50.827 +1.000 UL 50.828 +LTb 50.829 +602 2320 M 50.830 +63 0 V 50.831 +stroke 50.832 +518 2320 M 50.833 +[ [(Helvetica) 140.0 0.0 true true 0 ( 8)] 50.834 +] -46.7 MRshow 50.835 +1.000 UL 50.836 +LTb 50.837 +602 2588 M 50.838 +63 0 V 50.839 +stroke 50.840 +518 2588 M 50.841 +[ [(Helvetica) 140.0 0.0 true true 0 ( 9)] 50.842 +] -46.7 MRshow 50.843 +1.000 UL 50.844 +LTb 50.845 +602 2855 M 50.846 +63 0 V 50.847 +stroke 50.848 +518 2855 M 50.849 +[ [(Helvetica) 140.0 0.0 true true 0 ( 10)] 50.850 +] -46.7 MRshow 50.851 +1.000 UL 50.852 +LTb 50.853 +602 448 M 50.854 +0 63 V 50.855 +stroke 50.856 +602 308 M 50.857 +[ [(Helvetica) 140.0 0.0 true true 0 ( 0)] 50.858 +] -46.7 MCshow 50.859 +1.000 UL 50.860 +LTb 50.861 +1035 448 M 50.862 +0 63 V 50.863 +stroke 50.864 +1035 308 M 50.865 +[ [(Helvetica) 140.0 0.0 true true 0 ( 1000)] 50.866 +] -46.7 MCshow 50.867 +1.000 UL 50.868 +LTb 50.869 +1468 448 M 50.870 +0 63 V 50.871 +stroke 50.872 +1468 308 M 50.873 +[ [(Helvetica) 140.0 0.0 true true 0 ( 2000)] 50.874 +] -46.7 MCshow 50.875 +1.000 UL 50.876 +LTb 50.877 +1901 448 M 50.878 +0 63 V 50.879 +stroke 50.880 +1901 308 M 50.881 +[ [(Helvetica) 140.0 0.0 true true 0 ( 3000)] 50.882 +] -46.7 MCshow 50.883 +1.000 UL 50.884 +LTb 50.885 +2335 448 M 50.886 +0 63 V 50.887 +stroke 50.888 +2335 308 M 50.889 +[ [(Helvetica) 140.0 0.0 true true 0 ( 4000)] 50.890 +] -46.7 MCshow 50.891 +1.000 UL 50.892 +LTb 50.893 +2768 448 M 50.894 +0 63 V 50.895 +stroke 50.896 +2768 308 M 50.897 +[ [(Helvetica) 140.0 0.0 true true 0 ( 5000)] 50.898 +] -46.7 MCshow 50.899 +1.000 UL 50.900 +LTb 50.901 +3201 448 M 50.902 +0 63 V 50.903 +stroke 50.904 +3201 308 M 50.905 +[ [(Helvetica) 140.0 0.0 true true 0 ( 6000)] 50.906 +] -46.7 MCshow 50.907 +1.000 UL 50.908 +LTb 50.909 +3634 448 M 50.910 +0 63 V 50.911 +stroke 50.912 +3634 308 M 50.913 +[ [(Helvetica) 140.0 0.0 true true 0 ( 7000)] 50.914 +] -46.7 MCshow 50.915 +1.000 UL 50.916 +LTb 50.917 +4067 448 M 50.918 +0 63 V 50.919 +stroke 50.920 +4067 308 M 50.921 +[ [(Helvetica) 140.0 0.0 true true 0 ( 8000)] 50.922 +] -46.7 MCshow 50.923 +1.000 UL 50.924 +LTb 50.925 +1.000 UL 50.926 +LTb 50.927 +602 2855 M 50.928 +602 448 L 50.929 +3465 0 V 50.930 +0 2407 R 50.931 +-3465 0 R 50.932 +stroke 50.933 +LCb setrgbcolor 50.934 +112 1651 M 50.935 +currentpoint gsave translate -270 rotate 0 0 moveto 50.936 +[ [(Helvetica) 140.0 0.0 true true 0 (Ratio of Total Execution to Total Work)] 50.937 +] -46.7 MCshow 50.938 +grestore 50.939 +LTb 50.940 +LCb setrgbcolor 50.941 +2334 98 M 50.942 +[ [(Helvetica) 140.0 0.0 true true 0 (Cycles in one Task)] 50.943 +] -46.7 MCshow 50.944 +LTb 50.945 +1.000 UP 50.946 +1.000 UL 50.947 +LTb 50.948 +LCb setrgbcolor 50.949 +3538 2919 M 50.950 +[ [(Helvetica) 140.0 0.0 true true 0 (pthreads)] 50.951 +] -46.7 MCshow 50.952 +LTb 50.953 +1.000 UL 50.954 +LTb 50.955 +2793 2289 N 50.956 +0 700 V 50.957 +1491 0 V 50.958 +0 -700 V 50.959 +-1491 0 V 50.960 +Z stroke 50.961 +2793 2849 M 50.962 +1491 0 V 50.963 +% Begin plot #1 50.964 +stroke 50.965 +4.000 UL 50.966 +LT5 50.967 +LC7 setrgbcolor 50.968 +LCb setrgbcolor 50.969 +3717 2779 M 50.970 +[ [(Helvetica) 140.0 0.0 true true 0 (8 Threads)] 50.971 +] -46.7 MRshow 50.972 +LT5 50.973 +LC7 setrgbcolor 50.974 +3801 2779 M 50.975 +399 0 V 50.976 +742 2855 M 50.977 +2 -67 V 50.978 +851 1788 L 50.979 +206 -591 V 50.980 +1473 836 L 50.981 +2306 644 L 50.982 +3967 545 L 50.983 +% End plot #1 50.984 +% Begin plot #2 50.985 +stroke 50.986 +LT6 50.987 +LCb setrgbcolor 50.988 +3717 2639 M 50.989 +[ [(Helvetica) 140.0 0.0 true true 0 (32 Threads)] 50.990 +] -46.7 MRshow 50.991 +LT6 50.992 +3801 2639 M 50.993 +399 0 V 50.994 +946 2855 M 50.995 +112 -798 V 50.996 +417 -761 V 50.997 +2304 901 L 50.998 +3971 681 L 50.999 +% End plot #2 50.1000 +% Begin plot #3 50.1001 +stroke 50.1002 +LT7 50.1003 +LC1 setrgbcolor 50.1004 +LCb setrgbcolor 50.1005 +3717 2499 M 50.1006 +[ [(Helvetica) 140.0 0.0 true true 0 (128 Threads)] 50.1007 +] -46.7 MRshow 50.1008 +LT7 50.1009 +LC1 setrgbcolor 50.1010 +3801 2499 M 50.1011 +399 0 V 50.1012 +1813 2855 M 50.1013 +496 -872 V 50.1014 +3972 1224 L 50.1015 +% End plot #3 50.1016 +% Begin plot #4 50.1017 +stroke 50.1018 +LT8 50.1019 +LCb setrgbcolor 50.1020 +3717 2359 M 50.1021 +[ [(Helvetica) 140.0 0.0 true true 0 (512 Threads)] 50.1022 +] -46.7 MRshow 50.1023 +LT8 50.1024 +3801 2359 M 50.1025 +399 0 V 50.1026 +% End plot #4 50.1027 +stroke 50.1028 +1.000 UL 50.1029 +LTb 50.1030 +602 2855 M 50.1031 +602 448 L 50.1032 +3465 0 V 50.1033 +0 2407 R 50.1034 +-3465 0 R 50.1035 +1.000 UP 50.1036 +602 448 M 50.1037 +63 0 V 50.1038 +stroke 50.1039 +518 448 M 50.1040 +[ [(Helvetica) 140.0 0.0 true true 0 ( 1)] 50.1041 +] -46.7 MRshow 50.1042 +1.000 UL 50.1043 +LTb 50.1044 +602 715 M 50.1045 +63 0 V 50.1046 +stroke 50.1047 +518 715 M 50.1048 +[ [(Helvetica) 140.0 0.0 true true 0 ( 2)] 50.1049 +] -46.7 MRshow 50.1050 +1.000 UL 50.1051 +LTb 50.1052 +602 983 M 50.1053 +63 0 V 50.1054 +stroke 50.1055 +518 983 M 50.1056 +[ [(Helvetica) 140.0 0.0 true true 0 ( 3)] 50.1057 +] -46.7 MRshow 50.1058 +1.000 UL 50.1059 +LTb 50.1060 +602 1250 M 50.1061 +63 0 V 50.1062 +stroke 50.1063 +518 1250 M 50.1064 +[ [(Helvetica) 140.0 0.0 true true 0 ( 4)] 50.1065 +] -46.7 MRshow 50.1066 +1.000 UL 50.1067 +LTb 50.1068 +602 1518 M 50.1069 +63 0 V 50.1070 +stroke 50.1071 +518 1518 M 50.1072 +[ [(Helvetica) 140.0 0.0 true true 0 ( 5)] 50.1073 +] -46.7 MRshow 50.1074 +1.000 UL 50.1075 +LTb 50.1076 +602 1785 M 50.1077 +63 0 V 50.1078 +stroke 50.1079 +518 1785 M 50.1080 +[ [(Helvetica) 140.0 0.0 true true 0 ( 6)] 50.1081 +] -46.7 MRshow 50.1082 +1.000 UL 50.1083 +LTb 50.1084 +602 2053 M 50.1085 +63 0 V 50.1086 +stroke 50.1087 +518 2053 M 50.1088 +[ [(Helvetica) 140.0 0.0 true true 0 ( 7)] 50.1089 +] -46.7 MRshow 50.1090 +1.000 UL 50.1091 +LTb 50.1092 +602 2320 M 50.1093 +63 0 V 50.1094 +stroke 50.1095 +518 2320 M 50.1096 +[ [(Helvetica) 140.0 0.0 true true 0 ( 8)] 50.1097 +] -46.7 MRshow 50.1098 +1.000 UL 50.1099 +LTb 50.1100 +602 2588 M 50.1101 +63 0 V 50.1102 +stroke 50.1103 +518 2588 M 50.1104 +[ [(Helvetica) 140.0 0.0 true true 0 ( 9)] 50.1105 +] -46.7 MRshow 50.1106 +1.000 UL 50.1107 +LTb 50.1108 +602 2855 M 50.1109 +63 0 V 50.1110 +stroke 50.1111 +518 2855 M 50.1112 +[ [(Helvetica) 140.0 0.0 true true 0 ( 10)] 50.1113 +] -46.7 MRshow 50.1114 +1.000 UL 50.1115 +LTb 50.1116 +602 448 M 50.1117 +0 63 V 50.1118 +stroke 50.1119 +602 308 M 50.1120 +[ [(Helvetica) 140.0 0.0 true true 0 ( 0)] 50.1121 +] -46.7 MCshow 50.1122 +1.000 UL 50.1123 +LTb 50.1124 +1035 448 M 50.1125 +0 63 V 50.1126 +stroke 50.1127 +1035 308 M 50.1128 +[ [(Helvetica) 140.0 0.0 true true 0 ( 1000)] 50.1129 +] -46.7 MCshow 50.1130 +1.000 UL 50.1131 +LTb 50.1132 +1468 448 M 50.1133 +0 63 V 50.1134 +stroke 50.1135 +1468 308 M 50.1136 +[ [(Helvetica) 140.0 0.0 true true 0 ( 2000)] 50.1137 +] -46.7 MCshow 50.1138 +1.000 UL 50.1139 +LTb 50.1140 +1901 448 M 50.1141 +0 63 V 50.1142 +stroke 50.1143 +1901 308 M 50.1144 +[ [(Helvetica) 140.0 0.0 true true 0 ( 3000)] 50.1145 +] -46.7 MCshow 50.1146 +1.000 UL 50.1147 +LTb 50.1148 +2335 448 M 50.1149 +0 63 V 50.1150 +stroke 50.1151 +2335 308 M 50.1152 +[ [(Helvetica) 140.0 0.0 true true 0 ( 4000)] 50.1153 +] -46.7 MCshow 50.1154 +1.000 UL 50.1155 +LTb 50.1156 +2768 448 M 50.1157 +0 63 V 50.1158 +stroke 50.1159 +2768 308 M 50.1160 +[ [(Helvetica) 140.0 0.0 true true 0 ( 5000)] 50.1161 +] -46.7 MCshow 50.1162 +1.000 UL 50.1163 +LTb 50.1164 +3201 448 M 50.1165 +0 63 V 50.1166 +stroke 50.1167 +3201 308 M 50.1168 +[ [(Helvetica) 140.0 0.0 true true 0 ( 6000)] 50.1169 +] -46.7 MCshow 50.1170 +1.000 UL 50.1171 +LTb 50.1172 +3634 448 M 50.1173 +0 63 V 50.1174 +stroke 50.1175 +3634 308 M 50.1176 +[ [(Helvetica) 140.0 0.0 true true 0 ( 7000)] 50.1177 +] -46.7 MCshow 50.1178 +1.000 UL 50.1179 +LTb 50.1180 +4067 448 M 50.1181 +0 63 V 50.1182 +stroke 50.1183 +4067 308 M 50.1184 +[ [(Helvetica) 140.0 0.0 true true 0 ( 8000)] 50.1185 +] -46.7 MCshow 50.1186 +1.000 UL 50.1187 +LTb 50.1188 +1.000 UL 50.1189 +LTb 50.1190 +602 2855 M 50.1191 +602 448 L 50.1192 +3465 0 V 50.1193 +0 2407 R 50.1194 +-3465 0 R 50.1195 +stroke 50.1196 +LCb setrgbcolor 50.1197 +112 1651 M 50.1198 +currentpoint gsave translate -270 rotate 0 0 moveto 50.1199 +[ [(Helvetica) 140.0 0.0 true true 0 (Ratio of Total Execution to Total Work)] 50.1200 +] -46.7 MCshow 50.1201 +grestore 50.1202 +LTb 50.1203 +LCb setrgbcolor 50.1204 +2334 98 M 50.1205 +[ [(Helvetica) 140.0 0.0 true true 0 (Cycles in one Task)] 50.1206 +] -46.7 MCshow 50.1207 +LTb 50.1208 +1.000 UP 50.1209 +1.000 UL 50.1210 +LTb 50.1211 +LCb setrgbcolor 50.1212 +2022 2919 M 50.1213 +[ [(Helvetica) 140.0 0.0 true true 0 (Vthread)] 50.1214 +] -46.7 MCshow 50.1215 +LTb 50.1216 +1.000 UL 50.1217 +LTb 50.1218 +1277 2289 N 50.1219 +0 700 V 50.1220 +1491 0 V 50.1221 +0 -700 V 50.1222 +-1491 0 V 50.1223 +Z stroke 50.1224 +1277 2849 M 50.1225 +1491 0 V 50.1226 +% Begin plot #1 50.1227 +stroke 50.1228 +4.000 UL 50.1229 +LT0 50.1230 +LCb setrgbcolor 50.1231 +2201 2779 M 50.1232 +[ [(Helvetica) 140.0 0.0 true true 0 (8 Threads)] 50.1233 +] -46.7 MRshow 50.1234 +LT0 50.1235 +2285 2779 M 50.1236 +399 0 V 50.1237 +654 2182 M 50.1238 +16 -334 V 50.1239 +24 -434 V 50.1240 +54 -354 V 50.1241 +852 815 L 50.1242 +1060 648 L 50.1243 +1474 537 L 50.1244 +832 -41 V 50.1245 +3969 471 L 50.1246 +% End plot #1 50.1247 +% Begin plot #2 50.1248 +stroke 50.1249 +LT2 50.1250 +LCb setrgbcolor 50.1251 +2201 2639 M 50.1252 +[ [(Helvetica) 140.0 0.0 true true 0 (32 Threads)] 50.1253 +] -46.7 MRshow 50.1254 +LT2 50.1255 +2285 2639 M 50.1256 +399 0 V 50.1257 +654 1786 M 50.1258 +16 -339 V 50.1259 +24 -169 V 50.1260 +748 917 L 50.1261 +852 723 L 50.1262 +1059 606 L 50.1263 +416 -79 V 50.1264 +832 -43 V 50.1265 +3969 467 L 50.1266 +% End plot #2 50.1267 +% Begin plot #3 50.1268 +stroke 50.1269 +LT3 50.1270 +LCb setrgbcolor 50.1271 +2201 2499 M 50.1272 +[ [(Helvetica) 140.0 0.0 true true 0 (128 Threads)] 50.1273 +] -46.7 MRshow 50.1274 +LT3 50.1275 +2285 2499 M 50.1276 +399 0 V 50.1277 +654 1837 M 50.1278 +16 -296 V 50.1279 +26 -324 V 50.1280 +748 970 L 50.1281 +851 740 L 50.1282 +1059 610 L 50.1283 +416 -81 V 50.1284 +832 -39 V 50.1285 +3970 466 L 50.1286 +% End plot #3 50.1287 +% Begin plot #4 50.1288 +stroke 50.1289 +LT4 50.1290 +LCb setrgbcolor 50.1291 +2201 2359 M 50.1292 +[ [(Helvetica) 140.0 0.0 true true 0 (512 Threads)] 50.1293 +] -46.7 MRshow 50.1294 +LT4 50.1295 +2285 2359 M 50.1296 +399 0 V 50.1297 +654 1958 M 50.1298 +14 -347 V 50.1299 +26 -349 V 50.1300 +748 965 L 50.1301 +850 751 L 50.1302 +1058 612 L 50.1303 +416 -83 V 50.1304 +833 -41 V 50.1305 +3970 467 L 50.1306 +% End plot #4 50.1307 +stroke 50.1308 +1.000 UL 50.1309 +LTb 50.1310 +602 2855 M 50.1311 +602 448 L 50.1312 +3465 0 V 50.1313 +0 2407 R 50.1314 +-3465 0 R 50.1315 +1.000 UP 50.1316 +stroke 50.1317 +grestore 50.1318 +end 50.1319 +showpage 50.1320 +%%Trailer 50.1321 +%%DocumentFonts: Helvetica 50.1322 +%%Pages: 1
51.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 51.2 +++ b/0__Papers/PRT/PRT__formal_def/figures/plots_exec_vs_task_size/xoanon_pthread_vthread_40core_80_160_320_640thds__o30000__perfCtrs.eps Sat Aug 03 19:24:22 2013 -0700 51.3 @@ -0,0 +1,948 @@ 51.4 +%!PS-Adobe-2.0 51.5 +%%Title: xoanon_pthreads_vthread_40core_80_160_320_640thds__o30000__perfCtrs.meas.eps 51.6 +%%Creator: gnuplot 4.4 patchlevel 2 51.7 +%%CreationDate: Thu Jan 26 18:27:40 2012 51.8 +%%DocumentFonts: (atend) 51.9 +%%BoundingBox: 251 50 554 482 51.10 +%%Orientation: Landscape 51.11 +%%Pages: (atend) 51.12 +%%EndComments 51.13 +%%BeginProlog 51.14 +/gnudict 256 dict def 51.15 +gnudict begin 51.16 +% 51.17 +% The following true/false flags may be edited by hand if desired. 51.18 +% The unit line width and grayscale image gamma correction may also be changed. 51.19 +% 51.20 +/Color true def 51.21 +/Blacktext false def 51.22 +/Solid false def 51.23 +/Dashlength 1 def 51.24 +/Landscape true def 51.25 +/Level1 false def 51.26 +/Rounded false def 51.27 +/ClipToBoundingBox false def 51.28 +/TransparentPatterns false def 51.29 +/gnulinewidth 5.000 def 51.30 +/userlinewidth gnulinewidth def 51.31 +/Gamma 1.0 def 51.32 +% 51.33 +/vshift -46 def 51.34 +/dl1 { 51.35 + 10.0 Dashlength mul mul 51.36 + Rounded { currentlinewidth 0.75 mul sub dup 0 le { pop 0.01 } if } if 51.37 +} def 51.38 +/dl2 { 51.39 + 10.0 Dashlength mul mul 51.40 + Rounded { currentlinewidth 0.75 mul add } if 51.41 +} def 51.42 +/hpt_ 31.5 def 51.43 +/vpt_ 31.5 def 51.44 +/hpt hpt_ def 51.45 +/vpt vpt_ def 51.46 +Level1 {} { 51.47 +/SDict 10 dict def 51.48 +systemdict /pdfmark known not { 51.49 + userdict /pdfmark systemdict /cleartomark get put 51.50 +} if 51.51 +SDict begin [ 51.52 + /Title (xoanon_pthreads_vthread_40core_80_160_320_640thds__o30000__perfCtrs.meas.eps) 51.53 + /Subject (gnuplot plot) 51.54 + /Creator (gnuplot 4.4 patchlevel 2) 51.55 + /Author (msach) 51.56 +% /Producer (gnuplot) 51.57 +% /Keywords () 51.58 + /CreationDate (Thu Jan 26 18:27:40 2012) 51.59 + /DOCINFO pdfmark 51.60 +end 51.61 +} ifelse 51.62 +/doclip { 51.63 + ClipToBoundingBox { 51.64 + newpath 251 50 moveto 554 50 lineto 554 482 lineto 251 482 lineto closepath 51.65 + clip 51.66 + } if 51.67 +} def 51.68 +% 51.69 +% Gnuplot Prolog Version 4.4 (August 2010) 51.70 +% 51.71 +%/SuppressPDFMark true def 51.72 +% 51.73 +/M {moveto} bind def 51.74 +/L {lineto} bind def 51.75 +/R {rmoveto} bind def 51.76 +/V {rlineto} bind def 51.77 +/N {newpath moveto} bind def 51.78 +/Z {closepath} bind def 51.79 +/C {setrgbcolor} bind def 51.80 +/f {rlineto fill} bind def 51.81 +/g {setgray} bind def 51.82 +/Gshow {show} def % May be redefined later in the file to support UTF-8 51.83 +/vpt2 vpt 2 mul def 51.84 +/hpt2 hpt 2 mul def 51.85 +/Lshow {currentpoint stroke M 0 vshift R 51.86 + Blacktext {gsave 0 setgray show grestore} {show} ifelse} def 51.87 +/Rshow {currentpoint stroke M dup stringwidth pop neg vshift R 51.88 + Blacktext {gsave 0 setgray show grestore} {show} ifelse} def 51.89 +/Cshow {currentpoint stroke M dup stringwidth pop -2 div vshift R 51.90 + Blacktext {gsave 0 setgray show grestore} {show} ifelse} def 51.91 +/UP {dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def 51.92 + /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def} def 51.93 +/DL {Color {setrgbcolor Solid {pop []} if 0 setdash} 51.94 + {pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse} def 51.95 +/BL {stroke userlinewidth 2 mul setlinewidth 51.96 + Rounded {1 setlinejoin 1 setlinecap} if} def 51.97 +/AL {stroke userlinewidth 2 div setlinewidth 51.98 + Rounded {1 setlinejoin 1 setlinecap} if} def 51.99 +/UL {dup gnulinewidth mul /userlinewidth exch def 51.100 + dup 1 lt {pop 1} if 10 mul /udl exch def} def 51.101 +/PL {stroke userlinewidth setlinewidth 51.102 + Rounded {1 setlinejoin 1 setlinecap} if} def 51.103 +3.8 setmiterlimit 51.104 +% Default Line colors 51.105 +/LCw {1 1 1} def 51.106 +/LCb {0 0 0} def 51.107 +/LCa {0 0 0} def 51.108 +/LC0 {1 0 0} def 51.109 +/LC1 {0 1 0} def 51.110 +/LC2 {0 0 1} def 51.111 +/LC3 {1 0 1} def 51.112 +/LC4 {0 1 1} def 51.113 +/LC5 {1 1 0} def 51.114 +/LC6 {0 0 0} def 51.115 +/LC7 {1 0.3 0} def 51.116 +/LC8 {0.5 0.5 0.5} def 51.117 +% Default Line Types 51.118 +/LTw {PL [] 1 setgray} def 51.119 +/LTb {BL [] LCb DL} def 51.120 +/LTa {AL [1 udl mul 2 udl mul] 0 setdash LCa setrgbcolor} def 51.121 +/LT0 {PL [] LC0 DL} def 51.122 +/LT1 {PL [4 dl1 2 dl2] LC1 DL} def 51.123 +/LT2 {PL [2 dl1 3 dl2] LC2 DL} def 51.124 +/LT3 {PL [1 dl1 1.5 dl2] LC3 DL} def 51.125 +/LT4 {PL [6 dl1 2 dl2 1 dl1 2 dl2] LC4 DL} def 51.126 +/LT5 {PL [3 dl1 3 dl2 1 dl1 3 dl2] LC5 DL} def 51.127 +/LT6 {PL [2 dl1 2 dl2 2 dl1 6 dl2] LC6 DL} def 51.128 +/LT7 {PL [1 dl1 2 dl2 6 dl1 2 dl2 1 dl1 2 dl2] LC7 DL} def 51.129 +/LT8 {PL [2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 4 dl2] LC8 DL} def 51.130 +/Pnt {stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore} def 51.131 +/Dia {stroke [] 0 setdash 2 copy vpt add M 51.132 + hpt neg vpt neg V hpt vpt neg V 51.133 + hpt vpt V hpt neg vpt V closepath stroke 51.134 + Pnt} def 51.135 +/Pls {stroke [] 0 setdash vpt sub M 0 vpt2 V 51.136 + currentpoint stroke M 51.137 + hpt neg vpt neg R hpt2 0 V stroke 51.138 + } def 51.139 +/Box {stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M 51.140 + 0 vpt2 neg V hpt2 0 V 0 vpt2 V 51.141 + hpt2 neg 0 V closepath stroke 51.142 + Pnt} def 51.143 +/Crs {stroke [] 0 setdash exch hpt sub exch vpt add M 51.144 + hpt2 vpt2 neg V currentpoint stroke M 51.145 + hpt2 neg 0 R hpt2 vpt2 V stroke} def 51.146 +/TriU {stroke [] 0 setdash 2 copy vpt 1.12 mul add M 51.147 + hpt neg vpt -1.62 mul V 51.148 + hpt 2 mul 0 V 51.149 + hpt neg vpt 1.62 mul V closepath stroke 51.150 + Pnt} def 51.151 +/Star {2 copy Pls Crs} def 51.152 +/BoxF {stroke [] 0 setdash exch hpt sub exch vpt add M 51.153 + 0 vpt2 neg V hpt2 0 V 0 vpt2 V 51.154 + hpt2 neg 0 V closepath fill} def 51.155 +/TriUF {stroke [] 0 setdash vpt 1.12 mul add M 51.156 + hpt neg vpt -1.62 mul V 51.157 + hpt 2 mul 0 V 51.158 + hpt neg vpt 1.62 mul V closepath fill} def 51.159 +/TriD {stroke [] 0 setdash 2 copy vpt 1.12 mul sub M 51.160 + hpt neg vpt 1.62 mul V 51.161 + hpt 2 mul 0 V 51.162 + hpt neg vpt -1.62 mul V closepath stroke 51.163 + Pnt} def 51.164 +/TriDF {stroke [] 0 setdash vpt 1.12 mul sub M 51.165 + hpt neg vpt 1.62 mul V 51.166 + hpt 2 mul 0 V 51.167 + hpt neg vpt -1.62 mul V closepath fill} def 51.168 +/DiaF {stroke [] 0 setdash vpt add M 51.169 + hpt neg vpt neg V hpt vpt neg V 51.170 + hpt vpt V hpt neg vpt V closepath fill} def 51.171 +/Pent {stroke [] 0 setdash 2 copy gsave 51.172 + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat 51.173 + closepath stroke grestore Pnt} def 51.174 +/PentF {stroke [] 0 setdash gsave 51.175 + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat 51.176 + closepath fill grestore} def 51.177 +/Circle {stroke [] 0 setdash 2 copy 51.178 + hpt 0 360 arc stroke Pnt} def 51.179 +/CircleF {stroke [] 0 setdash hpt 0 360 arc fill} def 51.180 +/C0 {BL [] 0 setdash 2 copy moveto vpt 90 450 arc} bind def 51.181 +/C1 {BL [] 0 setdash 2 copy moveto 51.182 + 2 copy vpt 0 90 arc closepath fill 51.183 + vpt 0 360 arc closepath} bind def 51.184 +/C2 {BL [] 0 setdash 2 copy moveto 51.185 + 2 copy vpt 90 180 arc closepath fill 51.186 + vpt 0 360 arc closepath} bind def 51.187 +/C3 {BL [] 0 setdash 2 copy moveto 51.188 + 2 copy vpt 0 180 arc closepath fill 51.189 + vpt 0 360 arc closepath} bind def 51.190 +/C4 {BL [] 0 setdash 2 copy moveto 51.191 + 2 copy vpt 180 270 arc closepath fill 51.192 + vpt 0 360 arc closepath} bind def 51.193 +/C5 {BL [] 0 setdash 2 copy moveto 51.194 + 2 copy vpt 0 90 arc 51.195 + 2 copy moveto 51.196 + 2 copy vpt 180 270 arc closepath fill 51.197 + vpt 0 360 arc} bind def 51.198 +/C6 {BL [] 0 setdash 2 copy moveto 51.199 + 2 copy vpt 90 270 arc closepath fill 51.200 + vpt 0 360 arc closepath} bind def 51.201 +/C7 {BL [] 0 setdash 2 copy moveto 51.202 + 2 copy vpt 0 270 arc closepath fill 51.203 + vpt 0 360 arc closepath} bind def 51.204 +/C8 {BL [] 0 setdash 2 copy moveto 51.205 + 2 copy vpt 270 360 arc closepath fill 51.206 + vpt 0 360 arc closepath} bind def 51.207 +/C9 {BL [] 0 setdash 2 copy moveto 51.208 + 2 copy vpt 270 450 arc closepath fill 51.209 + vpt 0 360 arc closepath} bind def 51.210 +/C10 {BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill 51.211 + 2 copy moveto 51.212 + 2 copy vpt 90 180 arc closepath fill 51.213 + vpt 0 360 arc closepath} bind def 51.214 +/C11 {BL [] 0 setdash 2 copy moveto 51.215 + 2 copy vpt 0 180 arc closepath fill 51.216 + 2 copy moveto 51.217 + 2 copy vpt 270 360 arc closepath fill 51.218 + vpt 0 360 arc closepath} bind def 51.219 +/C12 {BL [] 0 setdash 2 copy moveto 51.220 + 2 copy vpt 180 360 arc closepath fill 51.221 + vpt 0 360 arc closepath} bind def 51.222 +/C13 {BL [] 0 setdash 2 copy moveto 51.223 + 2 copy vpt 0 90 arc closepath fill 51.224 + 2 copy moveto 51.225 + 2 copy vpt 180 360 arc closepath fill 51.226 + vpt 0 360 arc closepath} bind def 51.227 +/C14 {BL [] 0 setdash 2 copy moveto 51.228 + 2 copy vpt 90 360 arc closepath fill 51.229 + vpt 0 360 arc} bind def 51.230 +/C15 {BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill 51.231 + vpt 0 360 arc closepath} bind def 51.232 +/Rec {newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto 51.233 + neg 0 rlineto closepath} bind def 51.234 +/Square {dup Rec} bind def 51.235 +/Bsquare {vpt sub exch vpt sub exch vpt2 Square} bind def 51.236 +/S0 {BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare} bind def 51.237 +/S1 {BL [] 0 setdash 2 copy vpt Square fill Bsquare} bind def 51.238 +/S2 {BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def 51.239 +/S3 {BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare} bind def 51.240 +/S4 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def 51.241 +/S5 {BL [] 0 setdash 2 copy 2 copy vpt Square fill 51.242 + exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def 51.243 +/S6 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare} bind def 51.244 +/S7 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill 51.245 + 2 copy vpt Square fill Bsquare} bind def 51.246 +/S8 {BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare} bind def 51.247 +/S9 {BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare} bind def 51.248 +/S10 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill 51.249 + Bsquare} bind def 51.250 +/S11 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill 51.251 + Bsquare} bind def 51.252 +/S12 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare} bind def 51.253 +/S13 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 51.254 + 2 copy vpt Square fill Bsquare} bind def 51.255 +/S14 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 51.256 + 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def 51.257 +/S15 {BL [] 0 setdash 2 copy Bsquare fill Bsquare} bind def 51.258 +/D0 {gsave translate 45 rotate 0 0 S0 stroke grestore} bind def 51.259 +/D1 {gsave translate 45 rotate 0 0 S1 stroke grestore} bind def 51.260 +/D2 {gsave translate 45 rotate 0 0 S2 stroke grestore} bind def 51.261 +/D3 {gsave translate 45 rotate 0 0 S3 stroke grestore} bind def 51.262 +/D4 {gsave translate 45 rotate 0 0 S4 stroke grestore} bind def 51.263 +/D5 {gsave translate 45 rotate 0 0 S5 stroke grestore} bind def 51.264 +/D6 {gsave translate 45 rotate 0 0 S6 stroke grestore} bind def 51.265 +/D7 {gsave translate 45 rotate 0 0 S7 stroke grestore} bind def 51.266 +/D8 {gsave translate 45 rotate 0 0 S8 stroke grestore} bind def 51.267 +/D9 {gsave translate 45 rotate 0 0 S9 stroke grestore} bind def 51.268 +/D10 {gsave translate 45 rotate 0 0 S10 stroke grestore} bind def 51.269 +/D11 {gsave translate 45 rotate 0 0 S11 stroke grestore} bind def 51.270 +/D12 {gsave translate 45 rotate 0 0 S12 stroke grestore} bind def 51.271 +/D13 {gsave translate 45 rotate 0 0 S13 stroke grestore} bind def 51.272 +/D14 {gsave translate 45 rotate 0 0 S14 stroke grestore} bind def 51.273 +/D15 {gsave translate 45 rotate 0 0 S15 stroke grestore} bind def 51.274 +/DiaE {stroke [] 0 setdash vpt add M 51.275 + hpt neg vpt neg V hpt vpt neg V 51.276 + hpt vpt V hpt neg vpt V closepath stroke} def 51.277 +/BoxE {stroke [] 0 setdash exch hpt sub exch vpt add M 51.278 + 0 vpt2 neg V hpt2 0 V 0 vpt2 V 51.279 + hpt2 neg 0 V closepath stroke} def 51.280 +/TriUE {stroke [] 0 setdash vpt 1.12 mul add M 51.281 + hpt neg vpt -1.62 mul V 51.282 + hpt 2 mul 0 V 51.283 + hpt neg vpt 1.62 mul V closepath stroke} def 51.284 +/TriDE {stroke [] 0 setdash vpt 1.12 mul sub M 51.285 + hpt neg vpt 1.62 mul V 51.286 + hpt 2 mul 0 V 51.287 + hpt neg vpt -1.62 mul V closepath stroke} def 51.288 +/PentE {stroke [] 0 setdash gsave 51.289 + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat 51.290 + closepath stroke grestore} def 51.291 +/CircE {stroke [] 0 setdash 51.292 + hpt 0 360 arc stroke} def 51.293 +/Opaque {gsave closepath 1 setgray fill grestore 0 setgray closepath} def 51.294 +/DiaW {stroke [] 0 setdash vpt add M 51.295 + hpt neg vpt neg V hpt vpt neg V 51.296 + hpt vpt V hpt neg vpt V Opaque stroke} def 51.297 +/BoxW {stroke [] 0 setdash exch hpt sub exch vpt add M 51.298 + 0 vpt2 neg V hpt2 0 V 0 vpt2 V 51.299 + hpt2 neg 0 V Opaque stroke} def 51.300 +/TriUW {stroke [] 0 setdash vpt 1.12 mul add M 51.301 + hpt neg vpt -1.62 mul V 51.302 + hpt 2 mul 0 V 51.303 + hpt neg vpt 1.62 mul V Opaque stroke} def 51.304 +/TriDW {stroke [] 0 setdash vpt 1.12 mul sub M 51.305 + hpt neg vpt 1.62 mul V 51.306 + hpt 2 mul 0 V 51.307 + hpt neg vpt -1.62 mul V Opaque stroke} def 51.308 +/PentW {stroke [] 0 setdash gsave 51.309 + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat 51.310 + Opaque stroke grestore} def 51.311 +/CircW {stroke [] 0 setdash 51.312 + hpt 0 360 arc Opaque stroke} def 51.313 +/BoxFill {gsave Rec 1 setgray fill grestore} def 51.314 +/Density { 51.315 + /Fillden exch def 51.316 + currentrgbcolor 51.317 + /ColB exch def /ColG exch def /ColR exch def 51.318 + /ColR ColR Fillden mul Fillden sub 1 add def 51.319 + /ColG ColG Fillden mul Fillden sub 1 add def 51.320 + /ColB ColB Fillden mul Fillden sub 1 add def 51.321 + ColR ColG ColB setrgbcolor} def 51.322 +/BoxColFill {gsave Rec PolyFill} def 51.323 +/PolyFill {gsave Density fill grestore grestore} def 51.324 +/h {rlineto rlineto rlineto gsave closepath fill grestore} bind def 51.325 +% 51.326 +% PostScript Level 1 Pattern Fill routine for rectangles 51.327 +% Usage: x y w h s a XX PatternFill 51.328 +% x,y = lower left corner of box to be filled 51.329 +% w,h = width and height of box 51.330 +% a = angle in degrees between lines and x-axis 51.331 +% XX = 0/1 for no/yes cross-hatch 51.332 +% 51.333 +/PatternFill {gsave /PFa [ 9 2 roll ] def 51.334 + PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate 51.335 + PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec 51.336 + gsave 1 setgray fill grestore clip 51.337 + currentlinewidth 0.5 mul setlinewidth 51.338 + /PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def 51.339 + 0 0 M PFa 5 get rotate PFs -2 div dup translate 51.340 + 0 1 PFs PFa 4 get div 1 add floor cvi 51.341 + {PFa 4 get mul 0 M 0 PFs V} for 51.342 + 0 PFa 6 get ne { 51.343 + 0 1 PFs PFa 4 get div 1 add floor cvi 51.344 + {PFa 4 get mul 0 2 1 roll M PFs 0 V} for 51.345 + } if 51.346 + stroke grestore} def 51.347 +% 51.348 +/languagelevel where 51.349 + {pop languagelevel} {1} ifelse 51.350 + 2 lt 51.351 + {/InterpretLevel1 true def} 51.352 + {/InterpretLevel1 Level1 def} 51.353 + ifelse 51.354 +% 51.355 +% PostScript level 2 pattern fill definitions 51.356 +% 51.357 +/Level2PatternFill { 51.358 +/Tile8x8 {/PaintType 2 /PatternType 1 /TilingType 1 /BBox [0 0 8 8] /XStep 8 /YStep 8} 51.359 + bind def 51.360 +/KeepColor {currentrgbcolor [/Pattern /DeviceRGB] setcolorspace} bind def 51.361 +<< Tile8x8 51.362 + /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke} 51.363 +>> matrix makepattern 51.364 +/Pat1 exch def 51.365 +<< Tile8x8 51.366 + /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke 51.367 + 0 4 M 4 8 L 8 4 L 4 0 L 0 4 L stroke} 51.368 +>> matrix makepattern 51.369 +/Pat2 exch def 51.370 +<< Tile8x8 51.371 + /PaintProc {0.5 setlinewidth pop 0 0 M 0 8 L 51.372 + 8 8 L 8 0 L 0 0 L fill} 51.373 +>> matrix makepattern 51.374 +/Pat3 exch def 51.375 +<< Tile8x8 51.376 + /PaintProc {0.5 setlinewidth pop -4 8 M 8 -4 L 51.377 + 0 12 M 12 0 L stroke} 51.378 +>> matrix makepattern 51.379 +/Pat4 exch def 51.380 +<< Tile8x8 51.381 + /PaintProc {0.5 setlinewidth pop -4 0 M 8 12 L 51.382 + 0 -4 M 12 8 L stroke} 51.383 +>> matrix makepattern 51.384 +/Pat5 exch def 51.385 +<< Tile8x8 51.386 + /PaintProc {0.5 setlinewidth pop -2 8 M 4 -4 L 51.387 + 0 12 M 8 -4 L 4 12 M 10 0 L stroke} 51.388 +>> matrix makepattern 51.389 +/Pat6 exch def 51.390 +<< Tile8x8 51.391 + /PaintProc {0.5 setlinewidth pop -2 0 M 4 12 L 51.392 + 0 -4 M 8 12 L 4 -4 M 10 8 L stroke} 51.393 +>> matrix makepattern 51.394 +/Pat7 exch def 51.395 +<< Tile8x8 51.396 + /PaintProc {0.5 setlinewidth pop 8 -2 M -4 4 L 51.397 + 12 0 M -4 8 L 12 4 M 0 10 L stroke} 51.398 +>> matrix makepattern 51.399 +/Pat8 exch def 51.400 +<< Tile8x8 51.401 + /PaintProc {0.5 setlinewidth pop 0 -2 M 12 4 L 51.402 + -4 0 M 12 8 L -4 4 M 8 10 L stroke} 51.403 +>> matrix makepattern 51.404 +/Pat9 exch def 51.405 +/Pattern1 {PatternBgnd KeepColor Pat1 setpattern} bind def 51.406 +/Pattern2 {PatternBgnd KeepColor Pat2 setpattern} bind def 51.407 +/Pattern3 {PatternBgnd KeepColor Pat3 setpattern} bind def 51.408 +/Pattern4 {PatternBgnd KeepColor Landscape {Pat5} {Pat4} ifelse setpattern} bind def 51.409 +/Pattern5 {PatternBgnd KeepColor Landscape {Pat4} {Pat5} ifelse setpattern} bind def 51.410 +/Pattern6 {PatternBgnd KeepColor Landscape {Pat9} {Pat6} ifelse setpattern} bind def 51.411 +/Pattern7 {PatternBgnd KeepColor Landscape {Pat8} {Pat7} ifelse setpattern} bind def 51.412 +} def 51.413 +% 51.414 +% 51.415 +%End of PostScript Level 2 code 51.416 +% 51.417 +/PatternBgnd { 51.418 + TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse 51.419 +} def 51.420 +% 51.421 +% Substitute for Level 2 pattern fill codes with 51.422 +% grayscale if Level 2 support is not selected. 51.423 +% 51.424 +/Level1PatternFill { 51.425 +/Pattern1 {0.250 Density} bind def 51.426 +/Pattern2 {0.500 Density} bind def 51.427 +/Pattern3 {0.750 Density} bind def 51.428 +/Pattern4 {0.125 Density} bind def 51.429 +/Pattern5 {0.375 Density} bind def 51.430 +/Pattern6 {0.625 Density} bind def 51.431 +/Pattern7 {0.875 Density} bind def 51.432 +} def 51.433 +% 51.434 +% Now test for support of Level 2 code 51.435 +% 51.436 +Level1 {Level1PatternFill} {Level2PatternFill} ifelse 51.437 +% 51.438 +/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont 51.439 +dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall 51.440 +currentdict end definefont pop 51.441 +/MFshow { 51.442 + { dup 5 get 3 ge 51.443 + { 5 get 3 eq {gsave} {grestore} ifelse } 51.444 + {dup dup 0 get findfont exch 1 get scalefont setfont 51.445 + [ currentpoint ] exch dup 2 get 0 exch R dup 5 get 2 ne {dup dup 6 51.446 + get exch 4 get {Gshow} {stringwidth pop 0 R} ifelse }if dup 5 get 0 eq 51.447 + {dup 3 get {2 get neg 0 exch R pop} {pop aload pop M} ifelse} {dup 5 51.448 + get 1 eq {dup 2 get exch dup 3 get exch 6 get stringwidth pop -2 div 51.449 + dup 0 R} {dup 6 get stringwidth pop -2 div 0 R 6 get 51.450 + show 2 index {aload pop M neg 3 -1 roll neg R pop pop} {pop pop pop 51.451 + pop aload pop M} ifelse }ifelse }ifelse } 51.452 + ifelse } 51.453 + forall} def 51.454 +/Gswidth {dup type /stringtype eq {stringwidth} {pop (n) stringwidth} ifelse} def 51.455 +/MFwidth {0 exch { dup 5 get 3 ge { 5 get 3 eq { 0 } { pop } ifelse } 51.456 + {dup 3 get{dup dup 0 get findfont exch 1 get scalefont setfont 51.457 + 6 get Gswidth pop add} {pop} ifelse} ifelse} forall} def 51.458 +/MLshow { currentpoint stroke M 51.459 + 0 exch R 51.460 + Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def 51.461 +/MRshow { currentpoint stroke M 51.462 + exch dup MFwidth neg 3 -1 roll R 51.463 + Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def 51.464 +/MCshow { currentpoint stroke M 51.465 + exch dup MFwidth -2 div 3 -1 roll R 51.466 + Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def 51.467 +/XYsave { [( ) 1 2 true false 3 ()] } bind def 51.468 +/XYrestore { [( ) 1 2 true false 4 ()] } bind def 51.469 +end 51.470 +%%EndProlog 51.471 +%%Page: 1 1 51.472 +gnudict begin 51.473 +gsave 51.474 +doclip 51.475 +50 50 translate 51.476 +0.100 0.100 scale 51.477 +90 rotate 51.478 +0 -5040 translate 51.479 +0 setgray 51.480 +newpath 51.481 +(Helvetica) findfont 140 scalefont setfont 51.482 +1.000 UL 51.483 +LTb 51.484 +686 922 M 51.485 +63 0 V 51.486 +stroke 51.487 +602 922 M 51.488 +[ [(Helvetica) 140.0 0.0 true true 0 ( 50)] 51.489 +] -46.7 MRshow 51.490 +1.000 UL 51.491 +LTb 51.492 +686 1405 M 51.493 +63 0 V 51.494 +stroke 51.495 +602 1405 M 51.496 +[ [(Helvetica) 140.0 0.0 true true 0 ( 100)] 51.497 +] -46.7 MRshow 51.498 +1.000 UL 51.499 +LTb 51.500 +686 1888 M 51.501 +63 0 V 51.502 +stroke 51.503 +602 1888 M 51.504 +[ [(Helvetica) 140.0 0.0 true true 0 ( 150)] 51.505 +] -46.7 MRshow 51.506 +1.000 UL 51.507 +LTb 51.508 +686 2372 M 51.509 +63 0 V 51.510 +stroke 51.511 +602 2372 M 51.512 +[ [(Helvetica) 140.0 0.0 true true 0 ( 200)] 51.513 +] -46.7 MRshow 51.514 +1.000 UL 51.515 +LTb 51.516 +686 2855 M 51.517 +63 0 V 51.518 +stroke 51.519 +602 2855 M 51.520 +[ [(Helvetica) 140.0 0.0 true true 0 ( 250)] 51.521 +] -46.7 MRshow 51.522 +1.000 UL 51.523 +LTb 51.524 +686 448 M 51.525 +0 63 V 51.526 +stroke 51.527 +686 308 M 51.528 +[ [(Helvetica) 140.0 0.0 true true 0 ( 0)] 51.529 +] -46.7 MCshow 51.530 +1.000 UL 51.531 +LTb 51.532 +1109 448 M 51.533 +0 63 V 51.534 +stroke 51.535 +1109 308 M 51.536 +[ [(Helvetica) 140.0 0.0 true true 0 ( 1000)] 51.537 +] -46.7 MCshow 51.538 +1.000 UL 51.539 +LTb 51.540 +1531 448 M 51.541 +0 63 V 51.542 +stroke 51.543 +1531 308 M 51.544 +[ [(Helvetica) 140.0 0.0 true true 0 ( 2000)] 51.545 +] -46.7 MCshow 51.546 +1.000 UL 51.547 +LTb 51.548 +1954 448 M 51.549 +0 63 V 51.550 +stroke 51.551 +1954 308 M 51.552 +[ [(Helvetica) 140.0 0.0 true true 0 ( 3000)] 51.553 +] -46.7 MCshow 51.554 +1.000 UL 51.555 +LTb 51.556 +2377 448 M 51.557 +0 63 V 51.558 +stroke 51.559 +2377 308 M 51.560 +[ [(Helvetica) 140.0 0.0 true true 0 ( 4000)] 51.561 +] -46.7 MCshow 51.562 +1.000 UL 51.563 +LTb 51.564 +2799 448 M 51.565 +0 63 V 51.566 +stroke 51.567 +2799 308 M 51.568 +[ [(Helvetica) 140.0 0.0 true true 0 ( 5000)] 51.569 +] -46.7 MCshow 51.570 +1.000 UL 51.571 +LTb 51.572 +3222 448 M 51.573 +0 63 V 51.574 +stroke 51.575 +3222 308 M 51.576 +[ [(Helvetica) 140.0 0.0 true true 0 ( 6000)] 51.577 +] -46.7 MCshow 51.578 +1.000 UL 51.579 +LTb 51.580 +3644 448 M 51.581 +0 63 V 51.582 +stroke 51.583 +3644 308 M 51.584 +[ [(Helvetica) 140.0 0.0 true true 0 ( 7000)] 51.585 +] -46.7 MCshow 51.586 +1.000 UL 51.587 +LTb 51.588 +4067 448 M 51.589 +0 63 V 51.590 +stroke 51.591 +4067 308 M 51.592 +[ [(Helvetica) 140.0 0.0 true true 0 ( 8000)] 51.593 +] -46.7 MCshow 51.594 +1.000 UL 51.595 +LTb 51.596 +1.000 UL 51.597 +LTb 51.598 +686 2855 M 51.599 +686 448 L 51.600 +3381 0 V 51.601 +0 2407 R 51.602 +-3381 0 R 51.603 +stroke 51.604 +LCb setrgbcolor 51.605 +112 1651 M 51.606 +currentpoint gsave translate -270 rotate 0 0 moveto 51.607 +[ [(Helvetica) 140.0 0.0 true true 0 (Ratio of Total Execution to Total Work)] 51.608 +] -46.7 MCshow 51.609 +grestore 51.610 +LTb 51.611 +LCb setrgbcolor 51.612 +2376 98 M 51.613 +[ [(Helvetica) 140.0 0.0 true true 0 (Cycles in one Task)] 51.614 +] -46.7 MCshow 51.615 +LTb 51.616 +1.000 UP 51.617 +1.000 UL 51.618 +LTb 51.619 +LCb setrgbcolor 51.620 +3532 2882 M 51.621 +[ [(Helvetica) 140.0 0.0 true true 0 (pthreads)] 51.622 +] -46.7 MCshow 51.623 +LTb 51.624 +1.000 UL 51.625 +LTb 51.626 +2787 2252 N 51.627 +0 700 V 51.628 +1491 0 V 51.629 +0 -700 V 51.630 +-1491 0 V 51.631 +Z stroke 51.632 +2787 2812 M 51.633 +1491 0 V 51.634 +% Begin plot #1 51.635 +stroke 51.636 +4.000 UL 51.637 +LT5 51.638 +LC7 setrgbcolor 51.639 +LCb setrgbcolor 51.640 +3711 2742 M 51.641 +[ [(Helvetica) 140.0 0.0 true true 0 (80 Threads)] 51.642 +] -46.7 MRshow 51.643 +LT5 51.644 +LC7 setrgbcolor 51.645 +3795 2742 M 51.646 +399 0 V 51.647 +1735 2855 M 51.648 +662 -919 V 51.649 +4067 1238 L 51.650 +% End plot #1 51.651 +% Begin plot #2 51.652 +stroke 51.653 +LT6 51.654 +LCb setrgbcolor 51.655 +3711 2602 M 51.656 +[ [(Helvetica) 140.0 0.0 true true 0 (160 Threads)] 51.657 +] -46.7 MRshow 51.658 +LT6 51.659 +3795 2602 M 51.660 +399 0 V 51.661 +1748 2855 M 51.662 +2555 1723 L 51.663 +4067 1065 L 51.664 +% End plot #2 51.665 +% Begin plot #3 51.666 +stroke 51.667 +LT7 51.668 +LC1 setrgbcolor 51.669 +LCb setrgbcolor 51.670 +3711 2462 M 51.671 +[ [(Helvetica) 140.0 0.0 true true 0 (320 Threads)] 51.672 +] -46.7 MRshow 51.673 +LT7 51.674 +LC1 setrgbcolor 51.675 +3795 2462 M 51.676 +399 0 V 51.677 +1420 2855 M 51.678 +170 -542 V 51.679 +784 -867 V 51.680 +3986 870 L 51.681 +% End plot #3 51.682 +% Begin plot #4 51.683 +stroke 51.684 +LT8 51.685 +LCb setrgbcolor 51.686 +3711 2322 M 51.687 +[ [(Helvetica) 140.0 0.0 true true 0 (640 Threads)] 51.688 +] -46.7 MRshow 51.689 +LT8 51.690 +3795 2322 M 51.691 +399 0 V 51.692 +1802 2855 M 51.693 +572 -574 V 51.694 +4007 1207 L 51.695 +% End plot #4 51.696 +stroke 51.697 +1.000 UL 51.698 +LTb 51.699 +686 2855 M 51.700 +686 448 L 51.701 +3381 0 V 51.702 +0 2407 R 51.703 +-3381 0 R 51.704 +1.000 UP 51.705 +686 922 M 51.706 +63 0 V 51.707 +stroke 51.708 +602 922 M 51.709 +[ [(Helvetica) 140.0 0.0 true true 0 ( 50)] 51.710 +] -46.7 MRshow 51.711 +1.000 UL 51.712 +LTb 51.713 +686 1405 M 51.714 +63 0 V 51.715 +stroke 51.716 +602 1405 M 51.717 +[ [(Helvetica) 140.0 0.0 true true 0 ( 100)] 51.718 +] -46.7 MRshow 51.719 +1.000 UL 51.720 +LTb 51.721 +686 1888 M 51.722 +63 0 V 51.723 +stroke 51.724 +602 1888 M 51.725 +[ [(Helvetica) 140.0 0.0 true true 0 ( 150)] 51.726 +] -46.7 MRshow 51.727 +1.000 UL 51.728 +LTb 51.729 +686 2372 M 51.730 +63 0 V 51.731 +stroke 51.732 +602 2372 M 51.733 +[ [(Helvetica) 140.0 0.0 true true 0 ( 200)] 51.734 +] -46.7 MRshow 51.735 +1.000 UL 51.736 +LTb 51.737 +686 2855 M 51.738 +63 0 V 51.739 +stroke 51.740 +602 2855 M 51.741 +[ [(Helvetica) 140.0 0.0 true true 0 ( 250)] 51.742 +] -46.7 MRshow 51.743 +1.000 UL 51.744 +LTb 51.745 +686 448 M 51.746 +0 63 V 51.747 +stroke 51.748 +686 308 M 51.749 +[ [(Helvetica) 140.0 0.0 true true 0 ( 0)] 51.750 +] -46.7 MCshow 51.751 +1.000 UL 51.752 +LTb 51.753 +1109 448 M 51.754 +0 63 V 51.755 +stroke 51.756 +1109 308 M 51.757 +[ [(Helvetica) 140.0 0.0 true true 0 ( 1000)] 51.758 +] -46.7 MCshow 51.759 +1.000 UL 51.760 +LTb 51.761 +1531 448 M 51.762 +0 63 V 51.763 +stroke 51.764 +1531 308 M 51.765 +[ [(Helvetica) 140.0 0.0 true true 0 ( 2000)] 51.766 +] -46.7 MCshow 51.767 +1.000 UL 51.768 +LTb 51.769 +1954 448 M 51.770 +0 63 V 51.771 +stroke 51.772 +1954 308 M 51.773 +[ [(Helvetica) 140.0 0.0 true true 0 ( 3000)] 51.774 +] -46.7 MCshow 51.775 +1.000 UL 51.776 +LTb 51.777 +2377 448 M 51.778 +0 63 V 51.779 +stroke 51.780 +2377 308 M 51.781 +[ [(Helvetica) 140.0 0.0 true true 0 ( 4000)] 51.782 +] -46.7 MCshow 51.783 +1.000 UL 51.784 +LTb 51.785 +2799 448 M 51.786 +0 63 V 51.787 +stroke 51.788 +2799 308 M 51.789 +[ [(Helvetica) 140.0 0.0 true true 0 ( 5000)] 51.790 +] -46.7 MCshow 51.791 +1.000 UL 51.792 +LTb 51.793 +3222 448 M 51.794 +0 63 V 51.795 +stroke 51.796 +3222 308 M 51.797 +[ [(Helvetica) 140.0 0.0 true true 0 ( 6000)] 51.798 +] -46.7 MCshow 51.799 +1.000 UL 51.800 +LTb 51.801 +3644 448 M 51.802 +0 63 V 51.803 +stroke 51.804 +3644 308 M 51.805 +[ [(Helvetica) 140.0 0.0 true true 0 ( 7000)] 51.806 +] -46.7 MCshow 51.807 +1.000 UL 51.808 +LTb 51.809 +4067 448 M 51.810 +0 63 V 51.811 +stroke 51.812 +4067 308 M 51.813 +[ [(Helvetica) 140.0 0.0 true true 0 ( 8000)] 51.814 +] -46.7 MCshow 51.815 +1.000 UL 51.816 +LTb 51.817 +1.000 UL 51.818 +LTb 51.819 +686 2855 M 51.820 +686 448 L 51.821 +3381 0 V 51.822 +0 2407 R 51.823 +-3381 0 R 51.824 +stroke 51.825 +LCb setrgbcolor 51.826 +112 1651 M 51.827 +currentpoint gsave translate -270 rotate 0 0 moveto 51.828 +[ [(Helvetica) 140.0 0.0 true true 0 (Ratio of Total Execution to Total Work)] 51.829 +] -46.7 MCshow 51.830 +grestore 51.831 +LTb 51.832 +LCb setrgbcolor 51.833 +2376 98 M 51.834 +[ [(Helvetica) 140.0 0.0 true true 0 (Cycles in one Task)] 51.835 +] -46.7 MCshow 51.836 +LTb 51.837 +1.000 UP 51.838 +1.000 UL 51.839 +LTb 51.840 +LCb setrgbcolor 51.841 +2011 2882 M 51.842 +[ [(Helvetica) 140.0 0.0 true true 0 (Vthread)] 51.843 +] -46.7 MCshow 51.844 +LTb 51.845 +1.000 UL 51.846 +LTb 51.847 +1266 2252 N 51.848 +0 700 V 51.849 +1491 0 V 51.850 +0 -700 V 51.851 +-1491 0 V 51.852 +Z stroke 51.853 +1266 2812 M 51.854 +1491 0 V 51.855 +% Begin plot #1 51.856 +stroke 51.857 +4.000 UL 51.858 +LT0 51.859 +LCb setrgbcolor 51.860 +2190 2742 M 51.861 +[ [(Helvetica) 140.0 0.0 true true 0 (80 Threads)] 51.862 +] -46.7 MRshow 51.863 +LT0 51.864 +2274 2742 M 51.865 +399 0 V 51.866 +743 626 M 51.867 +22 -61 V 51.868 +39 -36 V 51.869 +75 -37 V 51.870 +154 -17 V 51.871 +303 -13 V 51.872 +609 -7 V 51.873 +1218 -2 V 51.874 +904 -1 V 51.875 +% End plot #1 51.876 +% Begin plot #2 51.877 +stroke 51.878 +LT2 51.879 +LCb setrgbcolor 51.880 +2190 2602 M 51.881 +[ [(Helvetica) 140.0 0.0 true true 0 (160 Threads)] 51.882 +] -46.7 MRshow 51.883 +LT2 51.884 +2274 2602 M 51.885 +399 0 V 51.886 +743 575 M 51.887 +24 4 V 51.888 +36 -82 V 51.889 +76 -20 V 51.890 +153 -6 V 51.891 +303 -12 V 51.892 +609 -4 V 51.893 +1217 -4 V 51.894 +906 -1 V 51.895 +% End plot #2 51.896 +% Begin plot #3 51.897 +stroke 51.898 +LT3 51.899 +LCb setrgbcolor 51.900 +2190 2462 M 51.901 +[ [(Helvetica) 140.0 0.0 true true 0 (320 Threads)] 51.902 +] -46.7 MRshow 51.903 +LT3 51.904 +2274 2462 M 51.905 +399 0 V 51.906 +742 581 M 51.907 +24 -38 V 51.908 +39 -9 V 51.909 +76 -41 V 51.910 +151 -19 V 51.911 +304 -11 V 51.912 +610 -7 V 51.913 +1216 -5 V 51.914 +905 -1 V 51.915 +% End plot #3 51.916 +% Begin plot #4 51.917 +stroke 51.918 +LT4 51.919 +LCb setrgbcolor 51.920 +2190 2322 M 51.921 +[ [(Helvetica) 140.0 0.0 true true 0 (640 Threads)] 51.922 +] -46.7 MRshow 51.923 +LT4 51.924 +2274 2322 M 51.925 +399 0 V 51.926 +743 589 M 51.927 +23 -41 V 51.928 +38 -29 V 51.929 +77 -20 V 51.930 +151 -28 V 51.931 +303 -12 V 51.932 +610 -4 V 51.933 +1217 -4 V 51.934 +905 0 V 51.935 +% End plot #4 51.936 +stroke 51.937 +1.000 UL 51.938 +LTb 51.939 +686 2855 M 51.940 +686 448 L 51.941 +3381 0 V 51.942 +0 2407 R 51.943 +-3381 0 R 51.944 +1.000 UP 51.945 +stroke 51.946 +grestore 51.947 +end 51.948 +showpage 51.949 +%%Trailer 51.950 +%%DocumentFonts: Helvetica 51.951 +%%Pages: 1
52.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 52.2 +++ b/0__Papers/PRT/PRT__formal_def/helpers/07_F_26__The_Questions__blank.txt Sat Aug 03 19:24:22 2013 -0700 52.3 @@ -0,0 +1,100 @@ 52.4 + 52.5 + 52.6 +1) What are the problems the authors are trying to solve? 52.7 + When done, for each problem, how does one decide the value of a proposed solution? Suggest a priority domain for deciding whether to use a proposed solution. 52.8 + 52.9 +The problem is 52.10 + 52.11 +A priority domain for deciding the value of some proposed solution to this problem is 52.12 + 52.13 +The value of this solution is determined by 52.14 + 52.15 + 52.16 + 52.17 +2) What "things" does the proposed solution to this problem enable? 52.18 + What benefit to reader is bought by each "thing", & what related to the "thing", gives the benefit. 52.19 + What details are unique about the proposed solution that enables the thing that gives benefit? 52.20 + How does that uniqueness enable or achieve the thing? 52.21 + 52.22 +It enables 52.23 + 52.24 +The benefit to me is 52.25 + 52.26 +Unique details of solution that enable the thing gives benefit are 52.27 + 52.28 +The uniqueness enables the thing that gives benefit by 52.29 + 52.30 + 52.31 + 52.32 +3) What are the fundamentals underlying the problem? 52.33 + What makes this problem hard? 52.34 + What are the basic elements and forces of the problem that the proposed solution has to be in terms of, avoid, use to advantage? ie: gravity, invariant relationships, market forces, human capacity (avg level of real programmers, hubris, legacy is held onto, barriers to adoption), and so on 52.35 +How does the proposed solution work within/relate to/address/take advantage of/deal with the fundamentals underlying the problem? 52.36 + 52.37 +The fundamentals are 52.38 + 52.39 +The hard part is 52.40 + 52.41 +The basic elements are 52.42 + 52.43 +The proposed solution 52.44 + 52.45 + 52.46 + 52.47 +4) What are other approaches and conventional wisdom to solving these problems? 52.48 + What benefits enabled by the proposed solution are not enabled by other work, and vice versa? 52.49 + How does each approach address something the others miss? 52.50 + Try to suggest groupings or categories for the various approaches. 52.51 + Try to suggest ways multiple approaches may be combined to get more pros with fewer cons. 52.52 + 52.53 +Other approaches are 52.54 + 52.55 +A benefit enabled by the proposed that is not enabled by other work is 52.56 + 52.57 +Categories: 52.58 + 52.59 +Combining: 52.60 + 52.61 + 52.62 + 52.63 +5) What is/are the unique main "things" that enable what the proposed solution does? 52.64 + Sketch the details of each of these "things". 52.65 + Did you detect any drawbacks, not stated in the paper, from the details? 52.66 + Did you see any really cool techniques? 52.67 + 52.68 +Unique main "things" are 52.69 + 52.70 +Drawbacks from details: 52.71 + 52.72 +Idea of 52.73 + 52.74 + 52.75 + 52.76 +6) What aspects of the implementation/proof/design need results given in order to convince you that the proposed solution delivers the stated benefits? 52.77 + 52.78 +They have to show 52.79 + 52.80 + 52.81 + 52.82 +7) What results did they show? 52.83 + Did they show results in all the needed aspects (which were left out)? 52.84 + Were the testing method and results shown good enough to convince you? 52.85 + Did you detect any cons, not stated in the paper, from the results? 52.86 + 52.87 +They showed 52.88 + 52.89 +Con.. 52.90 + 52.91 + 52.92 + 52.93 +8) How do you think this work may provide some value to you in your future research? 52.94 + 52.95 +The work my provide value for me 52.96 + 52.97 + 52.98 + 52.99 +3 or more comments/questions: (pick out the most important things to you from the discussion you gave above, or add things that were not brought out by the above questions. I am asking for these as things to bring up during class). 52.100 + 52.101 +1) 52.102 + 52.103 + 52.104 \ No newline at end of file
53.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 53.2 +++ b/0__Papers/PRT/PRT__formal_def/helpers/bib_for_papers.bib Sat Aug 03 19:24:22 2013 -0700 53.3 @@ -0,0 +1,1257 @@ 53.4 + 53.5 + 53.6 + 53.7 +"" 53.8 +@Article{, 53.9 + author = {}, 53.10 + title = {}, 53.11 + journal = {}, 53.12 + volume = {}, 53.13 + number = {}, 53.14 + year = {}, 53.15 + pages = {} 53.16 +} 53.17 + 53.18 + 53.19 + 53.20 +"" 53.21 +@Book{, 53.22 + author = {}, 53.23 + title = {}, 53.24 + publisher = {}, 53.25 + year = {}, 53.26 + pages = {} 53.27 +} 53.28 + 53.29 + 53.30 + 53.31 +"" 53.32 +@misc{, 53.33 + author = {}, 53.34 + title = {}, 53.35 + url = {} 53.36 +} 53.37 + 53.38 + 53.39 +"Lamport paper with clock sync" 53.40 +@article{Lamport78, 53.41 + author = {Lamport, Leslie}, 53.42 + title = {Time, clocks, and the ordering of events in a distributed system}, 53.43 + journal = {Commun. ACM}, 53.44 + volume = {21}, 53.45 + issue = {7}, 53.46 + year = {1978}, 53.47 + pages = {558--565}, 53.48 + } 53.49 + 53.50 +"Lamport paper with mutex lock algorithm" 53.51 +@article{Lamport87, 53.52 + author = {Lamport, Leslie}, 53.53 + title = {A fast mutual exclusion algorithm}, 53.54 + journal = {ACM Trans. Comput. Syst.}, 53.55 + volume = {5}, 53.56 + issue = {1}, 53.57 + year = {1987}, 53.58 + pages = {1--11} 53.59 +} 53.60 + 53.61 +"Dijkstra semaphore definition paper" 53.62 +@inproceedings{Dijkstra67, 53.63 + author = {Dijkstra, Edsger W.}, 53.64 + title = {The structure of the "{THE}"-multiprogramming system}, 53.65 + booktitle = {Proceedings of the first ACM symposium on Operating System Principles}, 53.66 + series = {SOSP '67}, 53.67 + year = {1967}, 53.68 + pages = {10.1--10.6} 53.69 + } 53.70 + 53.71 +"Original coroutine paper" 53.72 +@article{Conway63, 53.73 + author = {Conway, Melvin E.}, 53.74 + title = {Design of a separable transition-diagram compiler}, 53.75 + journal = {Commun. ACM}, 53.76 + volume = {6}, 53.77 + issue = {7}, 53.78 + year = {1963}, 53.79 + pages = {396--408} 53.80 +} 53.81 + 53.82 +"Component model book Leavens G, Sitaraman M(eds.). Foundations of Component-Based Systems. Cambridge University Press: Cambridge, 2000" 53.83 +@Book{ComponentModel00, 53.84 + author = {G Leavens and M Sitaraman (eds)}, 53.85 + title = {Foundations of Component-Based Systems}, 53.86 + publisher = {Cambridge University Press}, 53.87 + year = {2000} 53.88 +} 53.89 + 53.90 + 53.91 +"Hewitt Actors Ref on ArXiv" 53.92 +@misc{Hewitt10, 53.93 + author = {Carl Hewitt}, 53.94 + title = {Actor Model of Computation}, 53.95 + year = {2010}, 53.96 + note = {http://arxiv.org/abs/1008.1459} 53.97 +} 53.98 + 53.99 +"Actors paper -- AGHA has a 1985 tech report looks like it introduces Actors as an execution model..?" 53.100 +@article{Actors97, 53.101 +author = {Agha,G. and Mason,I. and Smith,S. and Talcott,C.}, 53.102 +title = {A foundation for actor computation}, 53.103 +journal = {Journal of Functional Programming}, 53.104 +volume = {7}, 53.105 +number = {01}, 53.106 +pages = {1-72}, 53.107 +year = {1997}, 53.108 +} 53.109 + 53.110 +"Scheduler Activations: M onto N thread technique" 53.111 +@article{SchedActivations, 53.112 + author = {Anderson, Thomas E. and Bershad, Brian N. and Lazowska, Edward D. and Levy, Henry M.}, 53.113 + title = {Scheduler activations: effective kernel support for the user-level management of parallelism}, 53.114 + journal = {ACM Trans. Comput. Syst.}, 53.115 + volume = {10}, 53.116 + issue = {1}, 53.117 + month = {February}, 53.118 + year = {1992}, 53.119 + pages = {53--79} 53.120 +} 53.121 + 53.122 +"BOM in Manticore project: functional language for scheduling and concurrency" 53.123 +@inproceedings{BOMinManticore, 53.124 + author = {Fluet, Matthew and Rainey, Mike and Reppy, John and Shaw, Adam and Xiao, Yingqi}, 53.125 + title = {Manticore: a heterogeneous parallel language}, 53.126 + booktitle = {Proceedings of the 2007 workshop on Declarative aspects of multicore programming}, 53.127 + series = {DAMP '07}, 53.128 + year = {2007}, 53.129 + pages = {37--44}, 53.130 + numpages = {8} 53.131 +} 53.132 + 53.133 + 53.134 +//===================================== 53.135 +"Gain from Chaos tech report" 53.136 +@techreport 53.137 + {Halle92, 53.138 + Author = {Halle, K.S. and Chua, Leon O. and Anishchenko, V.S. and Safonova, M.A.}, 53.139 + Title = {Signal Amplification via Chaos: Experimental Evidence}, 53.140 + Institution = {EECS Department, University of California, Berkeley}, 53.141 + Year = {1992}, 53.142 + URL = {http://www.eecs.berkeley.edu/Pubs/TechRpts/1992/2223.html}, 53.143 + Number = {UCB/ERL M92/130} 53.144 +} 53.145 + 53.146 + 53.147 +Reprinted in: 53.148 +Madan, R. N. (1993) Chua’s Circuit : A Paradigm for Chaos, World Scientific, Singapore. 53.149 +"Signal Amplification via Chaos: Experimental Evidence" 53.150 +K.S. Halle, Leon O. Chua, V.S. Anishchenko and M.A. Safonova 53.151 +pgs 290-308 53.152 + 53.153 + 53.154 +"Spread Spectrum Communication Through Modulation of Chaos" 53.155 +Halle K.S., Wu C.W., Itoh M., Chua L.O. Spread Spectrum Communication Through Modulation of Chaos. Int. J. of Bifur. and Chaos, (3):469–477. 1993. 53.156 +cited by 232 53.157 + 53.158 + 53.159 +"Experimental Demonstration of Secure Communications Via Chaotic Synchronization" 53.160 +Kocarev V, Halle K.S., Eckert K., Chua L.O., Parlitz V. Experimental Demonstration of Secure Communications Via Chaotic Synchronization. Int. J. Bifur. and Chaos, (2):709 713. 1992. 53.161 + 53.162 + 53.163 +//========================================== 53.164 + 53.165 +"BLIS 2010 HotPar: Leveraging Semantics Attached to Function Calls to Isolate Applications from Hardware" 53.166 +@inproceedings 53.167 + {BLISInHotPar, 53.168 + author = {Sean Halle and Albert Cohen}, 53.169 + booktitle = {HOTPAR '10: USENIX Workshop on Hot Topics in Parallelism}, 53.170 + month = {June}, 53.171 + title = {Leveraging Semantics Attached to Function Calls to Isolate Applications from Hardware}, 53.172 + year = {2010} 53.173 + } 53.174 + 53.175 +"2011 HotPar: " 53.176 +@inproceedings 53.177 + {HotPar11, 53.178 + author = {Sean Halle and Albert Cohen}, 53.179 + booktitle = {HOTPAR '11: USENIX Workshop on Hot Topics in Parallelism}, 53.180 + month = {May}, 53.181 + title = {}, 53.182 + year = {2011} 53.183 + } 53.184 + 53.185 +"VMS in LCPC 2011" 53.186 +@article{VMSLCPC, 53.187 + author = {Sean Halle and Albert Cohen}, 53.188 + title = {A Mutable Hardware Abstraction to Replace Threads}, 53.189 + journal = {24th International Workshop on Languages and Compilers for Parallel Languages (LCPC11)}, 53.190 + year = {2011} 53.191 +} 53.192 + 53.193 + 53.194 +"A Framework to Support Research on Portable High Performance Parallelism" 53.195 +@misc{FrameworkTechRep, 53.196 + Author = {Halle, Sean and Nadezhkin, Dmitry and Cohen, Albert}, 53.197 + Note = {http://www.soe.ucsc.edu/share/technical-reports/2010/ucsc-soe-10-02.pdf}, 53.198 + Title = {A Framework to Support Research on Portable High Performance Parallelism}, 53.199 + Year = 2010 53.200 +} 53.201 + 53.202 +"DKU Pattern for Performance Portable Parallel Software" 53.203 +@misc{DKUTechRep, 53.204 + Author = {Halle, Sean and Cohen, Albert}, 53.205 + Note = {http://www.soe.ucsc.edu/share/technical-reports/2009/ucsc-soe-09-06.pdf}, 53.206 + Title = {DKU Pattern for Performance Portable Parallel Software}, 53.207 + Year = 2009 53.208 +} 53.209 + 53.210 +"An Extensible Parallel Language" 53.211 +@misc{EQNLangTechRep, 53.212 + Author = {Halle, Sean}, 53.213 + Note = {http://www.soe.ucsc.edu/share/technical-reports/2009/ucsc-soe-09-16.pdf}, 53.214 + Title = {An Extensible Parallel Language}, 53.215 + Year = 2009 53.216 +} 53.217 + 53.218 +"A Hardware-Independent Parallel Operating System Abstraction Layer" 53.219 +@misc{CTOSTechRep, 53.220 + Author = {Halle, Sean}, 53.221 + Note = {http://www.soe.ucsc.edu/share/technical-reports/2009/ucsc-soe-09-15.pdf}, 53.222 + Title = {A Hardware-Independent Parallel Operating System Abstraction LayerParallelism}, 53.223 + Year = 2009 53.224 +} 53.225 + 53.226 +"Parallel Language Extensions for Side Effects" 53.227 +@misc{SideEffectsTechRep, 53.228 + Author = {Halle, Sean and Cohen, Albert}, 53.229 + Note = {http://www.soe.ucsc.edu/share/technical-reports/2009/ucsc-soe-09-14.pdf}, 53.230 + Title = {Parallel Language Extensions for Side Effects}, 53.231 + Year = 2009 53.232 +} 53.233 + 53.234 + 53.235 +"BaCTiL: Base CodeTime Language" 53.236 +@misc{BaCTiLTechRep, 53.237 + Author = {Halle, Sean}, 53.238 + Note = {http://www.soe.ucsc.edu/share/technical-reports/2006/ucsc-crl-06-08.pdf}, 53.239 + Title = {BaCTiL: Base CodeTime Language}, 53.240 + Year = 2006 53.241 +} 53.242 + 53.243 + 53.244 +"The Elements of the CodeTime Software Platform" 53.245 +@misc{CTPlatformTechRep, 53.246 + Author = {Halle, Sean}, 53.247 + Note = {http://www.soe.ucsc.edu/share/technical-reports/2006/ucsc-crl-06-09.pdf}, 53.248 + Title = {The Elements of the CodeTime Software Platform}, 53.249 + Year = 2006 53.250 +} 53.251 + 53.252 + 53.253 +"A Scalable and Efficient Peer-to-Peer Run-Time System for a Hardware Independent Software Platform" 53.254 +@misc{CTRTTechRep, 53.255 + Author = {Halle, Sean}, 53.256 + Note = {http://www.soe.ucsc.edu/share/technical-reports/2006/ucsc-crl-06-10.pdf}, 53.257 + Title = {A Scalable and Efficient Peer-to-Peer Run-Time System for a Hardware Independent Software Platform}, 53.258 + Year = 2006 53.259 +} 53.260 + 53.261 + 53.262 +"The Big-Step Operational Semantics of CodeTime Circuits" 53.263 +@misc{FrameworkTechRep, 53.264 + Author = {Halle, Sean}, 53.265 + Note = {http://www.soe.ucsc.edu/share/technical-reports/2006/ucsc-crl-06-11.pdf}, 53.266 + Title = {The Big-Step Operational Semantics of CodeTime Circuits}, 53.267 + Year = 2006 53.268 +} 53.269 + 53.270 + 53.271 +"A Mental Framework for use in Creating Hardware Independent Parallel Languages" 53.272 +@misc{FrameworkTechRep, 53.273 + Author = {Halle, Sean}, 53.274 + Note = {http://www.soe.ucsc.edu/share/technical-reports/2006/ucsc-crl-06-12.pdf}, 53.275 + Title = {A Mental Framework for use in Creating Hardware Independent Parallel Languages}, 53.276 + Year = 2006 53.277 +} 53.278 + 53.279 + 53.280 +"The Case for an Integrated Software Platform for HEC Illustrated Using the CodeTime Platform" 53.281 +@misc{CIPTechRep, 53.282 + Author = {Halle, Sean}, 53.283 + Note = {http://www.soe.ucsc.edu/share/technical-reports/2005/ucsc-crl-05-05.pdf}, 53.284 + Title = {The Case for an Integrated Software Platform for HEC Illustrated Using the CodeTime Platform}, 53.285 + Year = 2005 53.286 +} 53.287 + 53.288 +//========================================== 53.289 + 53.290 + 53.291 +"OMP Hompe page" 53.292 +@misc{OMPHome, 53.293 + Note = {http://www.openmediaplatform.eu/}, 53.294 + Title = {{Open Media Platform} homepage}, 53.295 +} 53.296 + 53.297 +"The OMP infrastructure site" 53.298 +@misc{Halle2008, 53.299 + Author = {Sean Halle and Albert Cohen}, 53.300 + Note = {http://omp.musictwodotoh.com}, 53.301 + Title = {{DKU} infrastructure server} 53.302 +} 53.303 + 53.304 + 53.305 + 53.306 +"The DKU sourceforge site" 53.307 +@misc{DKUSourceForge, 53.308 + Author = {Sean Halle and Albert Cohen}, 53.309 + Month = {November}, 53.310 + Note = {http://dku.sourceforge.net}, 53.311 + Title = {{DKU} website}, 53.312 + Year = {2008} 53.313 +} 53.314 + 53.315 + 53.316 +"The BLIS sourceforge site" 53.317 +@misc{BLISHome, 53.318 + Author = {Sean Halle and Albert Cohen}, 53.319 + Month = {November}, 53.320 + Note = {http://blisplatform.sourceforge.net}, 53.321 + Title = {{BLIS} website}, 53.322 + Year = {2008} 53.323 +} 53.324 + 53.325 + 53.326 +"The VMS Home page" 53.327 +@misc{VMSHome, 53.328 + Author = {Sean Halle and Merten Sach and Ben Juurlink and Albert Cohen}, 53.329 + Note = {http://virtualizedmasterslave.org}, 53.330 + Title = {{VMS} Home Page}, 53.331 + Year = {2010} 53.332 +} 53.333 + 53.334 + 53.335 +"The PStack Home page" 53.336 +@misc{PStackHome, 53.337 + Author = {Sean Halle}, 53.338 + Note = {http://pstack.sourceforge.net}, 53.339 + Title = {{PStack} Home Page}, 53.340 + Year = {2012} 53.341 +} 53.342 + 53.343 + 53.344 +"Deblocking code in SVN" 53.345 +@misc{DeblockingCode, 53.346 + Note = {http://dku.svn.sourceforge.net/viewvc/dku/branches/DKU\_C\_\_Deblocking\_\_orig/}, 53.347 + Title ={{DKU-ized Deblocking Filter} code} 53.348 +} 53.349 + 53.350 + 53.351 + 53.352 +"Sample code on BLIS site" 53.353 +@misc{SampleBLISCode, 53.354 + Note = {http://dku.sourceforge.net/SampleCode.htm}, 53.355 + Title ={{Sample BLIS Code}} 53.356 +} 53.357 + 53.358 +"Framework Technical Report" 53.359 +@misc{FrameworkTechRep, 53.360 + Author = {Halle, Sean and Nadezhkin, Dmitry and Cohen, Albert}, 53.361 + Note = {http://www.soe.ucsc.edu/share/technical-reports/2010/ucsc-soe-10-02.pdf}, 53.362 + Title = {A Framework to Support Research on Portable High Performance Parallelism} 53.363 +} 53.364 + 53.365 +"Map reduce" 53.366 +@misc{MapReduceHome, 53.367 + Author = {Google Corp.}, 53.368 + Note = {http://labs.google.com/papers/mapreduce.html}, 53.369 + Title = {{MapReduce} Home page}, 53.370 +} 53.371 + 53.372 + 53.373 +"TBB Thread Building Blocks" 53.374 +@misc{TBBHome, 53.375 + Author = {Intel Corp.}, 53.376 + Note = {http://www.threadingbuildingblocks.org}, 53.377 + Title = {{TBB} Home page}, 53.378 +} 53.379 + 53.380 + 53.381 +"HPF Wikipedia entry" 53.382 +@misc{HPFWikipedia, 53.383 + Author = {Wikipedia}, 53.384 + Note = {http://en.wikipedia.org/wiki/High_Performance_Fortran}, 53.385 + Title = {{HPF} wikipedia page}, 53.386 +} 53.387 + 53.388 + 53.389 +"OpenMP Home page" 53.390 +@misc{OpenMPHome, 53.391 + Author = {{OpenMP} organization}, 53.392 + Note = {http://www.openmp.org}, 53.393 + Title = {{OpenMP} Home page} 53.394 +} 53.395 + 53.396 + 53.397 + 53.398 +"Open MPI Home page" 53.399 +@misc{MPIHome, 53.400 + Author = {open-mpi organization}, 53.401 + Note = {http://www.open-mpi.org}, 53.402 + Title = {{Open MPI} Home page} 53.403 +} 53.404 + 53.405 +"OpenCL Home page" 53.406 +@misc{OpenCLHome, 53.407 + Author = {Kronos Group}, 53.408 + Note = {http://www.khronos.org/opencl}, 53.409 + Title = {{OpenCL} Home page} 53.410 +} 53.411 + 53.412 + 53.413 +"CILK Hompe page" 53.414 +@misc{CILKHome, 53.415 + Author = {Cilk group at MIT}, 53.416 + Note = {http://supertech.csail.mit.edu/cilk/}, 53.417 + Title = {{CILK} homepage}, 53.418 +} 53.419 + 53.420 +@InProceedings{Fri98, 53.421 + author = {M. Frigo and C. E. Leiserson and K. H. Randall}, 53.422 + title = {The Implementation of the Cilk-5 Multithreaded Language}, 53.423 + booktitle = {PLDI '98: Proceedings of the 1998 ACM SIGPLAN conference on Programming language design and implementation}, 53.424 + pages = {212--223}, 53.425 + year = 1998, 53.426 + address = {Montreal, Quebec}, 53.427 + month = jun 53.428 +} 53.429 + 53.430 + 53.431 +"Titanium Hompe page" 53.432 +@misc{TitaniumHome, 53.433 + Note = {http://titanium.cs.berkeley.edu}, 53.434 + Title = {{Titanium} homepage} 53.435 +} 53.436 + 53.437 + 53.438 +"CnC in HotPar" 53.439 +@inproceedings{CnCInHotPar, 53.440 + author = {Knobe, Kathleen}, 53.441 + booktitle = {HOTPAR '09: USENIX Workshop on Hot Topics in Parallelism}, 53.442 + month = {March}, 53.443 + title = {Ease of Use with Concurrent Collections {(CnC)}}, 53.444 + year = {2009} 53.445 +} 53.446 + 53.447 + 53.448 +"CnC Hompe page" 53.449 +@misc{CnCHome, 53.450 + Author = {Intel Corp.}, 53.451 + Note = {http://software.intel.com/en-us/articles/intel-concurrent-collections-for-cc/}, 53.452 + Title = {{CnC} homepage}, 53.453 +} 53.454 + 53.455 +"Spiral Home page" 53.456 +@misc{SpiralHome, 53.457 + Author = {Spiral Group at CMU}, 53.458 + Note = {http://www.spiral.net}, 53.459 + Title = {{Spiral} homepage}, 53.460 +} 53.461 + 53.462 + 53.463 +"Scala Hompe page" 53.464 +@misc{ScalaHome, 53.465 + Author = {Scala organization}, 53.466 + Note = {http://www.scala-lang.org/}, 53.467 + Title = {{Scala} homepage}, 53.468 +} 53.469 + 53.470 + 53.471 + 53.472 + 53.473 +"UPC Hompe page" 53.474 +@misc{UPCHome, 53.475 + Author = {UPC group at UC Berkeley}, 53.476 + Note = {http://upc.lbl.gov/}, 53.477 + Title = {{Unified Parallel C} homepage}, 53.478 +} 53.479 + 53.480 + 53.481 +"Suif Hompe page" 53.482 +@misc{SuifHome, 53.483 + Note = {http://suif.stanford.edu}, 53.484 + Title = {{Suif} Parallelizing compiler homepage}, 53.485 +} 53.486 + 53.487 + 53.488 + 53.489 +"SEJITS" 53.490 +@article{SEJITS, 53.491 + author = {B. Catanzaro and S. Kamil and Y. Lee and K. Asanovic and J. Demmel and K. Keutzer and J. Shalf and K. Yelick and A. Fox}, 53.492 + title = {SEJITS: Getting Productivity AND Performance With Selective Embedded JIT Specialization}, 53.493 + journal = {First Workshop on Programmable Models for Emerging Architecture at the 18th International Conference on Parallel Architectures and Compilation Techniques }, 53.494 + year = {2009} 53.495 +} 53.496 + 53.497 + 53.498 +"Arnaldo 3D parallel on NXP chip" 53.499 +@inproceedings{Arnaldo3D, 53.500 + author = {Azevedo, Arnaldo and Meenderinck, Cor and Juurlink, Ben and Terechko, Andrei and Hoogerbrugge, Jan and Alvarez, Mauricio and Ramirez, Alex}, 53.501 + title = {Parallel H.264 Decoding on an Embedded Multicore Processor}, 53.502 + booktitle = {HiPEAC '09: Proceedings of the 4th International Conference on High Performance Embedded Architectures and Compilers}, 53.503 + year = {2009}, 53.504 + pages = {404--418} 53.505 + } 53.506 + 53.507 + 53.508 +"Narayanan's GPU scheduling tool" 53.509 +@article{NarayananGPUSched, 53.510 + author = {Narayanan Sundaram and Anand Raghunathan and Srimat T. Chakradhar}, 53.511 + title = {A framework for efficient and scalable execution of domain-specific templates on GPUs}, 53.512 + journal ={International Parallel and Distributed Processing Symposium {(IPDPS)}}, 53.513 + year = {2009}, 53.514 + pages = {1-12}, 53.515 +} 53.516 + 53.517 +"Polyhedral for GPU from Ohio State" 53.518 +@inproceedings{PolyForGPU, 53.519 + author = {Baskaran, Muthu Manikandan and Bondhugula, Uday and Krishnamoorthy, Sriram and Ramanujam, J. and Rountev, Atanas and Sadayappan, P.}, 53.520 + title = {A compiler framework for optimization of affine loop nests for gpgpus}, 53.521 + booktitle = {ICS '08: Proceedings of the 22nd annual international conference on Supercomputing}, 53.522 + year = {2008}, 53.523 + pages = {225--234}, 53.524 + } 53.525 + 53.526 +"Loulou's Polyhedral loop-nest optimization paper in PLDI 08" 53.527 +@inproceedings{Loulou08, 53.528 + author = {Pouchet, Louis-No\"{e}l and Bastoul, C\'{e}dric and Cohen, Albert and Cavazos, John}, 53.529 + title = {Iterative optimization in the polyhedral model: part ii, multidimensional time}, 53.530 + booktitle = {ACM SIGPLAN conference on Programming language design and implementation {(PLDI)} }, 53.531 + year = {2008}, 53.532 + pages = {90--100}, 53.533 + } 53.534 + 53.535 + 53.536 +"Merge in HotPar" 53.537 +@inproceedings{MergeInHotPar, 53.538 + author = {Michael D. Linderman and James Balfour and Teresa H. Meng and William J. Dally}, 53.539 + booktitle = {HOTPAR '09: USENIX Workshop on Hot Topics in Parallelism}, 53.540 + month = {March}, 53.541 + title = {Embracing Heterogeneity \- Parallel Programming for Changing Hardware}, 53.542 + year = {2009} 53.543 +} 53.544 + 53.545 + 53.546 +"Galois system for irregular problems" 53.547 +@inproceedings{GaloisRef, 53.548 + author = {Kulkarni, Milind and Pingali, Keshav and Walter, Bruce and Ramanarayanan, Ganesh and Bala, Kavita and Chew, L. Paul}, 53.549 + title = {Optimistic parallelism requires abstractions}, 53.550 + booktitle = {PLDI '07: Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation}, 53.551 + year = {2007}, 53.552 + pages = {211--222} 53.553 +} 53.554 + 53.555 +"Cool compiler book that talks about balancing task size with machine characteristics.. the one Amit had" 53.556 +@book{Allen2002, 53.557 + author = {Kennedy, Ken and Allen, John R.}, 53.558 + title = {Optimizing compilers for modern architectures: a dependence-based approach}, 53.559 + year = {2002}, 53.560 + publisher = {Morgan Kaufmann Publishers Inc.} 53.561 + } 53.562 + 53.563 + 53.564 +"Streaming languages and tools survery paper" 53.565 +@MISC{Stephens95, 53.566 + author = {R. Stephens}, 53.567 + title = {A Survey Of Stream Processing}, 53.568 + year = {1995} 53.569 +} 53.570 + 53.571 + 53.572 +"Capsule" 53.573 +@INPROCEEDINGS{Palatin06, 53.574 + author = {P Palatin and Y Lhuillier and O Temam}, 53.575 + title = {CAPSULE: Hardware-assisted parallel execution of componentbased programs}, 53.576 + booktitle = {In Proceedings of the 39th Annual International Symposium on Microarchitecture}, 53.577 + year = {2006}, 53.578 + pages = {247--258} 53.579 +} 53.580 + 53.581 +"Sequioa" 53.582 +@inproceedings{Sequioa06, 53.583 + author = {Fatahalian,, Kayvon and Horn,, Daniel Reiter and Knight,, Timothy J. and Leem,, Larkhoon and Houston,, Mike and Park,, Ji Young and Erez,, Mattan and Ren,, Manman and Aiken,, Alex and Dally,, William J. and Hanrahan,, Pat}, 53.584 + title = {Sequoia: programming the memory hierarchy}, 53.585 + booktitle = {SC '06: Proceedings of the 2006 ACM/IEEE conference on Supercomputing}, 53.586 + year = {2006}, 53.587 + pages = {83} 53.588 + } 53.589 + 53.590 + 53.591 + 53.592 + 53.593 +"Cole meta skeletons book" 53.594 +@Book{Cole89, 53.595 + author = {M Cole}, 53.596 + title = {Algorithmic skeletons: Structured management of parallel computation}, 53.597 + publisher = {Pitman}, 53.598 + year = {1989} 53.599 +} 53.600 + 53.601 + 53.602 +"Meta programming skeletons example" 53.603 +@INPROCEEDINGS{Ginhac98, 53.604 + author = {Dominique Ginhac and Jocelyn Serot and Jean Pierre Derutin}, 53.605 + title = {Fast prototyping of image processing applications using functional skeletons on a MIMD-DM architecture}, 53.606 + booktitle = {In IAPR Workshop on Machine Vision and Applications}, 53.607 + year = {1998}, 53.608 + pages = {468--471} 53.609 +} 53.610 + 53.611 + 53.612 +"Parallel Skeletons meta programming" 53.613 +@inproceedings{Serot08MetaParallel, 53.614 + author = {Serot, Jocelyn and Falcou, Joel}, 53.615 + title = {Functional Meta-programming for Parallel Skeletons}, 53.616 + booktitle = {ICCS '08: Proceedings of the 8th international conference on Computational Science, Part I}, 53.617 + year = {2008}, 53.618 + pages = {154--163} 53.619 + } 53.620 + 53.621 + 53.622 +"Random skeletons for parallel programming article with lots of citations" 53.623 +@INPROCEEDINGS{Darlington93, 53.624 + author = {J. Darlington and A. J. Field and P. G. Harrison and P. H. J. Kelly and D. W. N. Sharp and Q. Wu}, 53.625 + title = {Parallel programming using skeleton functions}, 53.626 + booktitle = {}, 53.627 + year = {1993}, 53.628 + pages = {146--160}, 53.629 + publisher = {Springer-Verlag} 53.630 +} 53.631 + 53.632 + 53.633 +"View from Berkeley paper" 53.634 +@article{Asanovic06BerkeleyView, 53.635 + title={{The landscape of parallel computing research: A view from berkeley}}, 53.636 + author={Asanovic, K. and Bodik, R. and Catanzaro, B.C. and Gebis, J.J. and Husbands, P. and Keutzer, K. and Patterson, D.A. and Plishker, W.L. and Shalf, J. and Williams, S.W. and others}, 53.637 + journal={Electrical Engineering and Computer Sciences, University of California at Berkeley, Technical Report No. UCB/EECS-2006-183, December}, 53.638 + volume={18}, 53.639 + number={2006-183}, 53.640 + pages={19}, 53.641 + year={2006}, 53.642 +} 53.643 + 53.644 + 53.645 + 53.646 + 53.647 +"Berkeley Pattern Language" 53.648 +@misc{BerkeleyPattLang, 53.649 + Note = {http://parlab.eecs.berkeley.edu/wiki/patterns}, 53.650 + Title = {{Berkeley Pattern Language}} 53.651 +} 53.652 + 53.653 + 53.654 +"Keutzer reccomended Parallel Prog Patterns book" 53.655 +@book{Mattson04Patterns, 53.656 + title={{Patterns for parallel programming}}, 53.657 + author={Mattson, T. and Sanders, B. and Massingill, B.}, 53.658 + year={2004}, 53.659 + publisher={Addison-Wesley Professional} 53.660 +} 53.661 + 53.662 + 53.663 +"Skillicorn Parallel Languages Survery book" 53.664 +@article{Skillicorn98, 53.665 + title={{Models and languages for parallel computation}}, 53.666 + author={Skillicorn, D.B. and Talia, D.}, 53.667 + journal={ACM Computing Surveys (CSUR)}, 53.668 + volume={30}, 53.669 + number={2}, 53.670 + pages={123--169}, 53.671 + year={1998} 53.672 +} 53.673 + 53.674 + 53.675 + 53.676 +"NESL language" 53.677 +@conference{Blelloch93NESL, 53.678 + title={{Implementation of a portable nested data-parallel language}}, 53.679 + author={Blelloch, G.E. and Hardwick, J.C. and Chatterjee, S. and Sipelstein, J. and Zagha, M.}, 53.680 + booktitle={Proceedings of the fourth ACM SIGPLAN symposium on Principles and practice of parallel programming}, 53.681 + pages={102--111}, 53.682 + year={1993}, 53.683 + organization={ACM New York, NY, USA} 53.684 +} 53.685 + 53.686 + 53.687 +"Sisal" 53.688 +@article{McgrawSisal, 53.689 + title={{SISAL: Streams and iteration in a single assignment language: Reference manual version 1.2}}, 53.690 + author={McGraw, J. and Skedzielewski, SK and Allan, SJ and Oldehoeft, RR and Glauert, J. and Kirkham, C. and Noyce, B. and Thomas, R.}, 53.691 + journal={Manual M-146, Rev}, 53.692 + volume={1} 53.693 +} 53.694 + 53.695 + 53.696 +"Linda" 53.697 +@article{Gelernter85Linda, 53.698 + title={{Generative communication in Linda}}, 53.699 + author={Gelernter, D.}, 53.700 + journal={ACM Transactions on Programming Languages and Systems (TOPLAS)}, 53.701 + volume={7}, 53.702 + number={1}, 53.703 + pages={80--112}, 53.704 + year={1985} 53.705 +} 53.706 + 53.707 + 53.708 +"ZPL" 53.709 +@article{Lin94ZPL, 53.710 + title={{ZPL: An array sublanguage}}, 53.711 + author={Lin, C. and Snyder, L.}, 53.712 + journal={Lecture Notes in Computer Science}, 53.713 + volume={768}, 53.714 + pages={96--114}, 53.715 + year={1994} 53.716 +} 53.717 + 53.718 + 53.719 + 53.720 + 53.721 +// Visual programming 53.722 +@article 53.723 + { baecker97, 53.724 + author = {Ron Baecker and Chris DiGiano and Aaron Marcus}, 53.725 + title = {Software visualization for debugging}, 53.726 + journal = {Communications of the ACM}, 53.727 + volume = {40}, 53.728 + number = {4}, 53.729 + year = {1997}, 53.730 + issn = {0001-0782}, 53.731 + pages = {44--54}, 53.732 + publisher = {ACM Press} 53.733 + } 53.734 + 53.735 + 53.736 +// Visual programming 53.737 +@article 53.738 + { ball96, 53.739 + author = {T. A. Ball and S. G. Eick}, 53.740 + title = {Software Visualization in the Large}, 53.741 + journal ={IEEE Computer}, 53.742 + volume = {29}, 53.743 + number = {4}, 53.744 + year = {1996}, 53.745 + month = {apr}, 53.746 + pages = {33--43} 53.747 + } 53.748 + 53.749 + 53.750 +// Milner references this, Chemical Abstract Machine 53.751 +@book 53.752 + {berry89, 53.753 + title={{The chemical abstract machine}}, 53.754 + author={Berry, G. and Boudol, G.}, 53.755 + year={1989}, 53.756 + publisher={ACM Press} 53.757 +} 53.758 + 53.759 + 53.760 +// Cilk reference 53.761 +@article 53.762 + {blumofe95, 53.763 + author = {Robert D. Blumofe and Christopher F. Joerg and Bradley C. Kuszmaul and Charles E. Leiserson and Keith H. Randall and Yuli Zhou}, 53.764 + title = {Cilk: an efficient multithreaded runtime system}, 53.765 + journal = {SIGPLAN Not.}, 53.766 + volume = {30}, 53.767 + number = {8}, 53.768 + year = {1995}, 53.769 + pages = {207--216} 53.770 + } 53.771 + 53.772 + 53.773 +// this has 1440 citations, so throwing it in.. 53.774 +// The complexity of symbolic checking of program correctness 53.775 +@article 53.776 + {burch90, 53.777 + title={{Symbolic model checking: 10^{20} states and beyond}}, 53.778 + author={Burch, JR and Clarke, EM and McMillan, KL and Dill, DL and Hwang, LJ}, 53.779 + journal={Logic in Computer Science, 1990. LICS'90, Proceedings}, 53.780 + pages={428--439}, 53.781 + year={1990} 53.782 +} 53.783 + 53.784 +@article 53.785 + {chamberlain98, 53.786 +author = {B. Chamberlain and S. Choi and E. Lewis and C. Lin and L. Snyder and W. Weathersby}, 53.787 +title = {ZPL's WYSIWYG Performance Model}, 53.788 +journal = {hips}, 53.789 +volume = {00}, 53.790 +year = {1998}, 53.791 +isbn = {0-8186-8412-7}, 53.792 +pages = {50} 53.793 +} 53.794 + 53.795 + 53.796 + 53.797 +// from http://libweb.princeton.edu/libraries/firestone/rbsc/aids/church/church1.html#1 53.798 +@article{church41, 53.799 + author={A. Church}, 53.800 + title={The Calculi of Lambda-Conversion}, 53.801 + journal={Annals of Mathematics Studies}, 53.802 + number={6}, 53.803 + year={1941}, 53.804 + publisher={Princeton University} 53.805 +} 53.806 + 53.807 + 53.808 +@misc 53.809 + { CodeTimeSite, 53.810 + author = {Sean Halle}, 53.811 + key = {CodeTime}, 53.812 + title = {Homepage for The CodeTime Parallel Software Platform}, 53.813 + note = {{\ttfamily http://codetime.sourceforge.net}} 53.814 + } 53.815 + 53.816 + 53.817 + 53.818 +@misc 53.819 + { CodeTimePlatform, 53.820 + author = {Sean Halle}, 53.821 + key = {CodeTime}, 53.822 + title = {The CodeTime Parallel Software Platform}, 53.823 + note = {{\ttfamily http://codetime.sourceforge.net/content/CodeTime\_Platform.pdf}} 53.824 + } 53.825 + 53.826 + 53.827 +@misc 53.828 + { CodeTimeVS, 53.829 + author = {Sean Halle}, 53.830 + key = {CodeTime}, 53.831 + title = {The Specification of the CodeTime Platform's Virtual Server}, 53.832 + note = {{\ttfamily http://codetime.sourceforge.net/content/CodeTime\_Virtual\_Server.pdf}} 53.833 + } 53.834 + 53.835 + 53.836 +@misc 53.837 + { CodeTimeOS, 53.838 + author = {Sean Halle}, 53.839 + key = {CodeTime}, 53.840 + title = {A Hardware Independent OS}, 53.841 + note = {{\ttfamily http://codetime.sourceforge.net/content/CodeTime\_OS.pdf}} 53.842 + } 53.843 + 53.844 + 53.845 +@misc 53.846 + { CodeTimeSem, 53.847 + author = {Sean Halle}, 53.848 + key = {CodeTime}, 53.849 + title = {The Big-Step Operational Semantics of the CodeTime Computational Model}, 53.850 + note = {{\ttfamily http://codetime.sourceforge.net/content/CodeTime\_Semantics.pdf}} 53.851 + } 53.852 + 53.853 + 53.854 +@misc 53.855 + { CodeTimeTh, 53.856 + author = {Sean Halle}, 53.857 + key = {CodeTime}, 53.858 + title = {A Mental Framework for Use in Creating Hardware-Independent Parallel Languages}, 53.859 + note = {{\ttfamily http://codetime.sourceforge.net/content/CodeTiime\_Theoretical\_Framework.pdf}} 53.860 + } 53.861 + 53.862 + 53.863 +@misc 53.864 + { CodeTimeTh1, 53.865 + author = {Sean Halle}, 53.866 + key = {CodeTime}, 53.867 + title = {The CodeTime Parallel Software Platform}, 53.868 + note = {{\ttfamily http://codetime.sourceforge.net}} 53.869 + } 53.870 + 53.871 + 53.872 +@misc 53.873 + { CodeTimeTh2, 53.874 + author = {Sean Halle}, 53.875 + key = {CodeTime}, 53.876 + title = {The CodeTime Parallel Software Platform}, 53.877 + note = {{\ttfamily http://codetime.sourceforge.net}} 53.878 + } 53.879 + 53.880 + 53.881 +@misc 53.882 + { CodeTimeRT, 53.883 + author = {Sean Halle}, 53.884 + key = {CodeTime}, 53.885 + title = {The CodeTime Parallel Software Platform}, 53.886 + note = {{\ttfamily http://codetime.sourceforge.net}} 53.887 + } 53.888 + 53.889 + 53.890 +@misc 53.891 + { CodeTimeWebSite 53.892 + author = {Sean Halle}, 53.893 + key = {CodeTime}, 53.894 + title = {The CodeTime Parallel Software Platform}, 53.895 + note = {{\ttfamily http://codetime.sourceforge.net}} 53.896 + } 53.897 + 53.898 + 53.899 +@misc 53.900 + { CodeTimeBaCTiL, 53.901 + author = {Sean Halle}, 53.902 + key = {CodeTime}, 53.903 + title = {The Base CodeTime Language}, 53.904 + note = {{\ttfamily http://codetime.sourceforge.net/content/CodeTime\_BaCTiL.pdf}} 53.905 + } 53.906 + 53.907 +@misc 53.908 + { CodeTimeCert, 53.909 + author = {Sean Halle}, 53.910 + key = {CodeTime}, 53.911 + title = {The CodeTime Certification Strategy}, 53.912 + note = {{\ttfamily http://codetime.sourceforge.net/content/CodeTime\_Certification.pdf}} 53.913 + } 53.914 + 53.915 + 53.916 +// Multiple inheritance: explains issues well and references LOOPS and CLOS 53.917 +@inproceedings{ducournau94, 53.918 + author = {R. Ducournau and M. Habib and M. Huchard and M. L. Mugnier}, 53.919 + title = {Proposal for a monotonic multiple inheritance linearization}, 53.920 + booktitle = {OOPSLA '94: Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications}, 53.921 + year = {1994}, 53.922 + pages = {164--175}, 53.923 + publisher = {ACM Press} 53.924 +} 53.925 + 53.926 + 53.927 +// 252 Citations, shows equivalence of mu-calculus and (nondeterministic) tree automata, 53.928 +// so cited as foundation a lot 53.929 +@article{emerson91, 53.930 + title={{Tree automata, mu-calculus and determinacy}}, 53.931 + author={Emerson, EA and Jutla, CS}, 53.932 + journal={Proceedings of the 32nd Symposium on Foundations of Computer Science}, 53.933 + pages={368--377}, 53.934 + year={1991} 53.935 +} 53.936 + 53.937 + 53.938 +// Introducs PRAM model, at same time, in same conference as 53.939 +@article{fortune78, 53.940 + title={{Parallelism in random access machines}}, 53.941 + author={Fortune, S. and Wyllie, J.}, 53.942 + journal={STOC '78: Proceedings of the tenth annual ACM symposium on Theory of computing}, 53.943 + pages={114--118}, 53.944 + year={1978}, 53.945 + publisher={ACM Press New York, NY, USA} 53.946 +} 53.947 + 53.948 + 53.949 + 53.950 +// Smalltalk reference 53.951 +@book{goldberg83, 53.952 + title={{Smalltalk-80: the language and its implementation}}, 53.953 + author={Goldberg, A. and Robson, D.}, 53.954 + year={1983}, 53.955 + publisher={Addison-Wesley} 53.956 +} 53.957 + 53.958 + 53.959 +// also introduces PRAM model, apparently independently 53.960 +@inproceedings{goldschlager78, 53.961 + author = {Leslie M. Goldschlager}, 53.962 + title = {A unified approach to models of synchronous parallel machines}, 53.963 + booktitle = {STOC '78: Proceedings of the tenth annual ACM symposium on Theory of computing}, 53.964 + year = {1978}, 53.965 + pages = {89--94}, 53.966 + location = {San Diego, California, United States}, 53.967 + doi = {http://doi.acm.org/10.1145/800133.804336}, 53.968 + publisher = {ACM Press}, 53.969 +} 53.970 + 53.971 + 53.972 +// Java spec 53.973 +@book 53.974 + { gosling96, 53.975 + author = {J. Gosling and B. Joy and G. Steele and G. Bracha}, 53.976 + title = {The Java Language Specification}, 53.977 + publisher = {Addison-Wesley}, 53.978 + year = {1996} 53.979 + } 53.980 + 53.981 + 53.982 +// Survey of prototyping parallel apps 53.983 +@article{hasselbring00, 53.984 + author = {Wilhelm Hasselbring}, 53.985 + title = {Programming languages and systems for prototyping concurrent applications}, 53.986 + journal = {ACM Comput. Surv.}, 53.987 + volume = {32}, 53.988 + number = {1}, 53.989 + year = {2000}, 53.990 + issn = {0360-0300}, 53.991 + pages = {43--79}, 53.992 + doi = {http://doi.acm.org/10.1145/349194.349199}, 53.993 + publisher = {ACM Press}, 53.994 + address = {New York, NY, USA}, 53.995 + } 53.996 + 53.997 + 53.998 +// Original CSP paper 53.999 +@article{hoare78, 53.1000 + author={C. A. R. Hoare}, 53.1001 + title={Communicating Sequential Processes}, 53.1002 + journal={Communications of the ACM}, 53.1003 + year={1978}, 53.1004 + volume={21}, 53.1005 + number={8}, 53.1006 + pages={666-677} 53.1007 +} 53.1008 + 53.1009 + 53.1010 +// 8 citations.. probably from self.. want a paper that ties areas together.. 53.1011 +// This paper does a beautiful job.. 53.1012 +@article{huth, 53.1013 + title={{A Unifying Framework for Model Checking Labeled Kripke Structures, Modal Transition Systems, and Interval Transition Systems}}, 53.1014 + author={Huth, M.}, 53.1015 + journal={Proceedings of the 19th International Conference on the Foundations of Software Technology \& Theoretical Computer Science, Lecture Notes in Computer Science}, 53.1016 + pages={369--380}, 53.1017 + publisher={Springer-Verlag} 53.1018 +} 53.1019 + 53.1020 + 53.1021 +// Dataflow advances survey, includes large grain dataflow 53.1022 +@article 53.1023 + { johnston04, 53.1024 + author = {Wesley M. Johnston and J. R. Paul Hanna and Richard J. Millar}, 53.1025 + title = {Advances in dataflow programming languages}, 53.1026 + journal = {ACM Comput. Surv.}, 53.1027 + volume = {36}, 53.1028 + number = {1}, 53.1029 + year = {2004}, 53.1030 + issn = {0360-0300}, 53.1031 + pages = {1--34}, 53.1032 + doi = {http://doi.acm.org/10.1145/1013208.1013209}, 53.1033 + publisher = {ACM Press}, 53.1034 + address = {New York, NY, USA} 53.1035 + } 53.1036 + 53.1037 + 53.1038 +@book 53.1039 + { koelbel93, 53.1040 + author = {C. H. Koelbel and D. Loveman and R. Schreiber and G. Steele Jr}, 53.1041 + title = {High Performance Fortran Handbook}, 53.1042 + year = {1993}, 53.1043 + publisher = {MIT Press} 53.1044 + } 53.1045 + 53.1046 + 53.1047 +// mu calculus paper with 430 citations 53.1048 +@article{kozen83, 53.1049 + title={{Results on the Propositional mu-Calculus}}, 53.1050 + author={Kozen, D.}, 53.1051 + journal={TCS}, 53.1052 + volume={27}, 53.1053 + pages={333--354}, 53.1054 + year={1983} 53.1055 +} 53.1056 + 53.1057 + 53.1058 +// original kripke structure paper 53.1059 +@article{kripke63, 53.1060 + title={{Semantical analysis of modal logic}}, 53.1061 + author={Kripke, S.}, 53.1062 + journal={Zeitschrift fur Mathematische Logik und Grundlagen der Mathematik}, 53.1063 + volume={9}, 53.1064 + pages={67--96}, 53.1065 + year={1963} 53.1066 +} 53.1067 + 53.1068 + 53.1069 +@book 53.1070 + { mcGraw85, 53.1071 + author = {J McGraw and S. Skedzielewski and S. Allan and R Odefoeft}, 53.1072 + title = {SISAL: Streams and Iteration in a Single-Assignment Language: Reference Manual Version 1.2}, 53.1073 + note = {Manual M-146 Rev. 1}, 53.1074 + publisher = {Lawrence Livermore National Laboratory}, 53.1075 + year = {1985} 53.1076 + } 53.1077 + 53.1078 + 53.1079 +// Milner's own citation to development of CCS 53.1080 +@book{milner80, 53.1081 + title={{A Calculus of Communicating Systems, volume 92 of Lecture Notes in Computer Science}}, 53.1082 + author={Milner, R.}, 53.1083 + year={1980}, 53.1084 + publisher={Springer-Verlag} 53.1085 +} 53.1086 + 53.1087 + 53.1088 +// Milner's own pi-calculus reference 53.1089 +@article{milner92, 53.1090 + title={{A calculus of mobile processes, parts I and II}}, 53.1091 + author={Milner, R. and Parrow, J. and Walker, D.}, 53.1092 + journal={Information and Computation}, 53.1093 + volume={100}, 53.1094 + number={1}, 53.1095 + pages={1--40 and 41--77}, 53.1096 + year={1992}, 53.1097 + publisher={Academic Press} 53.1098 +} 53.1099 + 53.1100 + 53.1101 +// more recent Pi calculus reference 53.1102 +@book 53.1103 + { milner99, 53.1104 + author = {Robin Milner}, 53.1105 + title = {Communicating and Mobile Systems: The pi-Calculus}, 53.1106 + publisher = {Cambridge University Press}, 53.1107 + year = {1999} 53.1108 + } 53.1109 + 53.1110 + 53.1111 +// MPI reference 53.1112 +@book 53.1113 + { MPIForum94, 53.1114 + author = {M. P. I. Forum}, 53.1115 + title = {MPI: A Message-Passing Interface Standard}, 53.1116 + year = {1994} 53.1117 + } 53.1118 + 53.1119 + 53.1120 +// Petri nets original citation 53.1121 +@article{petri62, 53.1122 + title={{Fundamentals of a theory of asynchronous information flow}}, 53.1123 + author={Petri, C.A.}, 53.1124 + journal={Proc. IFIP Congress}, 53.1125 + volume={62}, 53.1126 + pages={386--390}, 53.1127 + year={1962} 53.1128 +} 53.1129 + 53.1130 + 53.1131 +// Pierce Type system book 53.1132 +@book{pierce02, 53.1133 + title={Types and Programming Languages}, 53.1134 + author={Pierce, B. C.}, 53.1135 + year={2002}, 53.1136 + publisher={MIT Press} 53.1137 +} 53.1138 + 53.1139 + 53.1140 +// Survey of Visual programming 53.1141 +@Article 53.1142 + { price, 53.1143 + author = {B. A. Price and R. M. Baecker and L. S. Small}, 53.1144 + title = {A Principled Taxonomy of Software Visualization}, 53.1145 + journal ={Journal of Visual Languages and Computing}, 53.1146 + volume = {4}, 53.1147 + number = {3}, 53.1148 + pages = {211--266} 53.1149 + } 53.1150 + 53.1151 + 53.1152 + 53.1153 +@misc 53.1154 + { pythonWebSite, 53.1155 + key = {Python}, 53.1156 + title = {The Python Software Foundation Mission Statement}, 53.1157 + note = {{\ttfamily http://www.python.org/psf/mission.html}} 53.1158 + } 53.1159 + 53.1160 + 53.1161 +// Roadmap for Revitalization of High End Computing 53.1162 +@unpublished 53.1163 + { reed03, 53.1164 + editor = {Daniel A. Reed}, 53.1165 + title = {Workshop on The Roadmap for the Revitalization of High-End Computing}, 53.1166 + day = {16--18}, 53.1167 + month = {jun}, 53.1168 + year = {2003}, 53.1169 + note = {Available at {\ttfamily http://www.cra.org/reports/supercomputing.web.pdf}} 53.1170 + } 53.1171 + 53.1172 + 53.1173 +// Parallel Pascal 53.1174 +@Article 53.1175 + { reeves84, 53.1176 + author = {A. P. Reeves}, 53.1177 + title = {Parallel Pascal -- An Extended Pascal for Parallel Computers}, 53.1178 + journal = {Journal of Parallel and Distributed Computing}, 53.1179 + volume = {1}, 53.1180 + number = {}, 53.1181 + year = {1984}, 53.1182 + month = {aug}, 53.1183 + pages = {64--80} 53.1184 + } 53.1185 + 53.1186 + 53.1187 +// Survey of parallel langs and models 53.1188 +@article{skillicorn98, 53.1189 + author = {David B. Skillicorn and Domenico Talia}, 53.1190 + title = {Models and languages for parallel computation}, 53.1191 + journal = {ACM Comput. Surv.}, 53.1192 + volume = {30}, 53.1193 + number = {2}, 53.1194 + year = {1998}, 53.1195 + issn = {0360-0300}, 53.1196 + pages = {123--169}, 53.1197 + doi = {http://doi.acm.org/10.1145/280277.280278}, 53.1198 + publisher = {ACM Press}, 53.1199 + address = {New York, NY, USA}, 53.1200 + } 53.1201 + 53.1202 + 53.1203 +// LOOPS ref for multiple inheritance issues 53.1204 +@article{stefik86, 53.1205 + title={Object Oriented Programming: Themes and Variations}, 53.1206 + author={Stefik, M. and Bobrow, D. G.}, 53.1207 + journal={The AI Magazine}, 53.1208 + volume={6}, 53.1209 + number={4}, 53.1210 + year={1986} 53.1211 +} 53.1212 + 53.1213 + 53.1214 +// 240 citations to this book, so seems safe.. covers modal logics which is superset 53.1215 +// of temporal logics 53.1216 +@book{stirling92, 53.1217 + title={{Modal and Temporal Logics}}, 53.1218 + author={Stirling, C.}, 53.1219 + year={1992}, 53.1220 + publisher={University of Edinburgh, Department of Computer Science} 53.1221 +} 53.1222 + 53.1223 + 53.1224 +// Titanium website 53.1225 +@misc 53.1226 + { TitaniumWebSite, 53.1227 + author = {Paul Hilfinger and et. al.}, 53.1228 + title = {The Titanium Project Home Page}, 53.1229 + note = {{\ttfamily http://www.cs.berkeley.edu/projects/titanium}} 53.1230 + } 53.1231 + 53.1232 + 53.1233 +// website with scans of original work by Turing 53.1234 +@misc{turing38, 53.1235 + author={A. Turing}, 53.1236 + note={http://www.turingarchive.org/intro/, and 53.1237 +http://www.turing.org.uk/sources/biblio4.html, and 53.1238 +http://web.comlab.ox.ac.uk/oucl/research/areas/ieg/e-library/sources/tp2-ie.pdf}, 53.1239 + year={1938} 53.1240 +} 53.1241 + 53.1242 + 53.1243 +// First mention of von Neumann's architecture ideas 53.1244 +@book{vonNeumann45, 53.1245 + title={First Draft of a Report on the EDVAC}, 53.1246 + author={J. von Neumann}, 53.1247 + year={1945}, 53.1248 + publisher={United States Army Ordnance Department} 53.1249 +} 53.1250 + 53.1251 + 53.1252 +// The 203 Glynn Winskel book for Formal Semantics 53.1253 +@book{winskel93, 53.1254 + title={{The Formal Semantics of Programming Languages}}, 53.1255 + author={Winskel, G.}, 53.1256 + year={1993}, 53.1257 + publisher={MIT Press} 53.1258 +} 53.1259 + 53.1260 +
54.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 54.2 +++ b/0__Papers/PRT/PRT__formal_def/helpers/plain.bst Sat Aug 03 19:24:22 2013 -0700 54.3 @@ -0,0 +1,1098 @@ 54.4 +% BibTeX standard bibliography style `plain' 54.5 + % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. 54.6 + % Copyright (C) 1985, all rights reserved. 54.7 + % Copying of this file is authorized only if either 54.8 + % (1) you make absolutely no changes to your copy, including name, or 54.9 + % (2) if you do make changes, you name it something other than 54.10 + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. 54.11 + % This restriction helps ensure that all standard styles are identical. 54.12 + % The file btxbst.doc has the documentation for this style. 54.13 + 54.14 +ENTRY 54.15 + { address 54.16 + author 54.17 + booktitle 54.18 + chapter 54.19 + edition 54.20 + editor 54.21 + howpublished 54.22 + institution 54.23 + journal 54.24 + key 54.25 + month 54.26 + note 54.27 + number 54.28 + organization 54.29 + pages 54.30 + publisher 54.31 + school 54.32 + series 54.33 + title 54.34 + type 54.35 + volume 54.36 + year 54.37 + } 54.38 + {} 54.39 + { label } 54.40 + 54.41 +INTEGERS { output.state before.all mid.sentence after.sentence after.block } 54.42 + 54.43 +FUNCTION {init.state.consts} 54.44 +{ #0 'before.all := 54.45 + #1 'mid.sentence := 54.46 + #2 'after.sentence := 54.47 + #3 'after.block := 54.48 +} 54.49 + 54.50 +STRINGS { s t } 54.51 + 54.52 +FUNCTION {output.nonnull} 54.53 +{ 's := 54.54 + output.state mid.sentence = 54.55 + { ", " * write$ } 54.56 + { output.state after.block = 54.57 + { add.period$ write$ 54.58 + newline$ 54.59 + "\newblock " write$ 54.60 + } 54.61 + { output.state before.all = 54.62 + 'write$ 54.63 + { add.period$ " " * write$ } 54.64 + if$ 54.65 + } 54.66 + if$ 54.67 + mid.sentence 'output.state := 54.68 + } 54.69 + if$ 54.70 + s 54.71 +} 54.72 + 54.73 +FUNCTION {output} 54.74 +{ duplicate$ empty$ 54.75 + 'pop$ 54.76 + 'output.nonnull 54.77 + if$ 54.78 +} 54.79 + 54.80 +FUNCTION {output.check} 54.81 +{ 't := 54.82 + duplicate$ empty$ 54.83 + { pop$ "empty " t * " in " * cite$ * warning$ } 54.84 + 'output.nonnull 54.85 + if$ 54.86 +} 54.87 + 54.88 +FUNCTION {output.bibitem} 54.89 +{ newline$ 54.90 + "\bibitem{" write$ 54.91 + cite$ write$ 54.92 + "}" write$ 54.93 + newline$ 54.94 + "" 54.95 + before.all 'output.state := 54.96 +} 54.97 + 54.98 +FUNCTION {fin.entry} 54.99 +{ add.period$ 54.100 + write$ 54.101 + newline$ 54.102 +} 54.103 + 54.104 +FUNCTION {new.block} 54.105 +{ output.state before.all = 54.106 + 'skip$ 54.107 + { after.block 'output.state := } 54.108 + if$ 54.109 +} 54.110 + 54.111 +FUNCTION {new.sentence} 54.112 +{ output.state after.block = 54.113 + 'skip$ 54.114 + { output.state before.all = 54.115 + 'skip$ 54.116 + { after.sentence 'output.state := } 54.117 + if$ 54.118 + } 54.119 + if$ 54.120 +} 54.121 + 54.122 +FUNCTION {not} 54.123 +{ { #0 } 54.124 + { #1 } 54.125 + if$ 54.126 +} 54.127 + 54.128 +FUNCTION {and} 54.129 +{ 'skip$ 54.130 + { pop$ #0 } 54.131 + if$ 54.132 +} 54.133 + 54.134 +FUNCTION {or} 54.135 +{ { pop$ #1 } 54.136 + 'skip$ 54.137 + if$ 54.138 +} 54.139 + 54.140 +FUNCTION {new.block.checka} 54.141 +{ empty$ 54.142 + 'skip$ 54.143 + 'new.block 54.144 + if$ 54.145 +} 54.146 + 54.147 +FUNCTION {new.block.checkb} 54.148 +{ empty$ 54.149 + swap$ empty$ 54.150 + and 54.151 + 'skip$ 54.152 + 'new.block 54.153 + if$ 54.154 +} 54.155 + 54.156 +FUNCTION {new.sentence.checka} 54.157 +{ empty$ 54.158 + 'skip$ 54.159 + 'new.sentence 54.160 + if$ 54.161 +} 54.162 + 54.163 +FUNCTION {new.sentence.checkb} 54.164 +{ empty$ 54.165 + swap$ empty$ 54.166 + and 54.167 + 'skip$ 54.168 + 'new.sentence 54.169 + if$ 54.170 +} 54.171 + 54.172 +FUNCTION {field.or.null} 54.173 +{ duplicate$ empty$ 54.174 + { pop$ "" } 54.175 + 'skip$ 54.176 + if$ 54.177 +} 54.178 + 54.179 +FUNCTION {emphasize} 54.180 +{ duplicate$ empty$ 54.181 + { pop$ "" } 54.182 + { "{\em " swap$ * "}" * } 54.183 + if$ 54.184 +} 54.185 + 54.186 +INTEGERS { nameptr namesleft numnames } 54.187 + 54.188 +FUNCTION {format.names} 54.189 +{ 's := 54.190 + #1 'nameptr := 54.191 + s num.names$ 'numnames := 54.192 + numnames 'namesleft := 54.193 + { namesleft #0 > } 54.194 + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := 54.195 + nameptr #1 > 54.196 + { namesleft #1 > 54.197 + { ", " * t * } 54.198 + { numnames #2 > 54.199 + { "," * } 54.200 + 'skip$ 54.201 + if$ 54.202 + t "others" = 54.203 + { " et~al." * } 54.204 + { " and " * t * } 54.205 + if$ 54.206 + } 54.207 + if$ 54.208 + } 54.209 + 't 54.210 + if$ 54.211 + nameptr #1 + 'nameptr := 54.212 + namesleft #1 - 'namesleft := 54.213 + } 54.214 + while$ 54.215 +} 54.216 + 54.217 +FUNCTION {format.authors} 54.218 +{ author empty$ 54.219 + { "" } 54.220 + { author format.names } 54.221 + if$ 54.222 +} 54.223 + 54.224 +FUNCTION {format.editors} 54.225 +{ editor empty$ 54.226 + { "" } 54.227 + { editor format.names 54.228 + editor num.names$ #1 > 54.229 + { ", editors" * } 54.230 + { ", editor" * } 54.231 + if$ 54.232 + } 54.233 + if$ 54.234 +} 54.235 + 54.236 +FUNCTION {format.title} 54.237 +{ title empty$ 54.238 + { "" } 54.239 + { title "t" change.case$ } 54.240 + if$ 54.241 +} 54.242 + 54.243 +FUNCTION {n.dashify} 54.244 +{ 't := 54.245 + "" 54.246 + { t empty$ not } 54.247 + { t #1 #1 substring$ "-" = 54.248 + { t #1 #2 substring$ "--" = not 54.249 + { "--" * 54.250 + t #2 global.max$ substring$ 't := 54.251 + } 54.252 + { { t #1 #1 substring$ "-" = } 54.253 + { "-" * 54.254 + t #2 global.max$ substring$ 't := 54.255 + } 54.256 + while$ 54.257 + } 54.258 + if$ 54.259 + } 54.260 + { t #1 #1 substring$ * 54.261 + t #2 global.max$ substring$ 't := 54.262 + } 54.263 + if$ 54.264 + } 54.265 + while$ 54.266 +} 54.267 + 54.268 +FUNCTION {format.date} 54.269 +{ year empty$ 54.270 + { month empty$ 54.271 + { "" } 54.272 + { "there's a month but no year in " cite$ * warning$ 54.273 + month 54.274 + } 54.275 + if$ 54.276 + } 54.277 + { month empty$ 54.278 + 'year 54.279 + { month " " * year * } 54.280 + if$ 54.281 + } 54.282 + if$ 54.283 +} 54.284 + 54.285 +FUNCTION {format.btitle} 54.286 +{ title emphasize 54.287 +} 54.288 + 54.289 +FUNCTION {tie.or.space.connect} 54.290 +{ duplicate$ text.length$ #3 < 54.291 + { "~" } 54.292 + { " " } 54.293 + if$ 54.294 + swap$ * * 54.295 +} 54.296 + 54.297 +FUNCTION {either.or.check} 54.298 +{ empty$ 54.299 + 'pop$ 54.300 + { "can't use both " swap$ * " fields in " * cite$ * warning$ } 54.301 + if$ 54.302 +} 54.303 + 54.304 +FUNCTION {format.bvolume} 54.305 +{ volume empty$ 54.306 + { "" } 54.307 + { "volume" volume tie.or.space.connect 54.308 + series empty$ 54.309 + 'skip$ 54.310 + { " of " * series emphasize * } 54.311 + if$ 54.312 + "volume and number" number either.or.check 54.313 + } 54.314 + if$ 54.315 +} 54.316 + 54.317 +FUNCTION {format.number.series} 54.318 +{ volume empty$ 54.319 + { number empty$ 54.320 + { series field.or.null } 54.321 + { output.state mid.sentence = 54.322 + { "number" } 54.323 + { "Number" } 54.324 + if$ 54.325 + number tie.or.space.connect 54.326 + series empty$ 54.327 + { "there's a number but no series in " cite$ * warning$ } 54.328 + { " in " * series * } 54.329 + if$ 54.330 + } 54.331 + if$ 54.332 + } 54.333 + { "" } 54.334 + if$ 54.335 +} 54.336 + 54.337 +FUNCTION {format.edition} 54.338 +{ edition empty$ 54.339 + { "" } 54.340 + { output.state mid.sentence = 54.341 + { edition "l" change.case$ " edition" * } 54.342 + { edition "t" change.case$ " edition" * } 54.343 + if$ 54.344 + } 54.345 + if$ 54.346 +} 54.347 + 54.348 +INTEGERS { multiresult } 54.349 + 54.350 +FUNCTION {multi.page.check} 54.351 +{ 't := 54.352 + #0 'multiresult := 54.353 + { multiresult not 54.354 + t empty$ not 54.355 + and 54.356 + } 54.357 + { t #1 #1 substring$ 54.358 + duplicate$ "-" = 54.359 + swap$ duplicate$ "," = 54.360 + swap$ "+" = 54.361 + or or 54.362 + { #1 'multiresult := } 54.363 + { t #2 global.max$ substring$ 't := } 54.364 + if$ 54.365 + } 54.366 + while$ 54.367 + multiresult 54.368 +} 54.369 + 54.370 +FUNCTION {format.pages} 54.371 +{ pages empty$ 54.372 + { "" } 54.373 + { pages multi.page.check 54.374 + { "pages" pages n.dashify tie.or.space.connect } 54.375 + { "page" pages tie.or.space.connect } 54.376 + if$ 54.377 + } 54.378 + if$ 54.379 +} 54.380 + 54.381 +FUNCTION {format.vol.num.pages} 54.382 +{ volume field.or.null 54.383 + number empty$ 54.384 + 'skip$ 54.385 + { "(" number * ")" * * 54.386 + volume empty$ 54.387 + { "there's a number but no volume in " cite$ * warning$ } 54.388 + 'skip$ 54.389 + if$ 54.390 + } 54.391 + if$ 54.392 + pages empty$ 54.393 + 'skip$ 54.394 + { duplicate$ empty$ 54.395 + { pop$ format.pages } 54.396 + { ":" * pages n.dashify * } 54.397 + if$ 54.398 + } 54.399 + if$ 54.400 +} 54.401 + 54.402 +FUNCTION {format.chapter.pages} 54.403 +{ chapter empty$ 54.404 + 'format.pages 54.405 + { type empty$ 54.406 + { "chapter" } 54.407 + { type "l" change.case$ } 54.408 + if$ 54.409 + chapter tie.or.space.connect 54.410 + pages empty$ 54.411 + 'skip$ 54.412 + { ", " * format.pages * } 54.413 + if$ 54.414 + } 54.415 + if$ 54.416 +} 54.417 + 54.418 +FUNCTION {format.in.ed.booktitle} 54.419 +{ booktitle empty$ 54.420 + { "" } 54.421 + { editor empty$ 54.422 + { "In " booktitle emphasize * } 54.423 + { "In " format.editors * ", " * booktitle emphasize * } 54.424 + if$ 54.425 + } 54.426 + if$ 54.427 +} 54.428 + 54.429 +FUNCTION {empty.misc.check} 54.430 +{ author empty$ title empty$ howpublished empty$ 54.431 + month empty$ year empty$ note empty$ 54.432 + and and and and and 54.433 + key empty$ not and 54.434 + { "all relevant fields are empty in " cite$ * warning$ } 54.435 + 'skip$ 54.436 + if$ 54.437 +} 54.438 + 54.439 +FUNCTION {format.thesis.type} 54.440 +{ type empty$ 54.441 + 'skip$ 54.442 + { pop$ 54.443 + type "t" change.case$ 54.444 + } 54.445 + if$ 54.446 +} 54.447 + 54.448 +FUNCTION {format.tr.number} 54.449 +{ type empty$ 54.450 + { "Technical Report" } 54.451 + 'type 54.452 + if$ 54.453 + number empty$ 54.454 + { "t" change.case$ } 54.455 + { number tie.or.space.connect } 54.456 + if$ 54.457 +} 54.458 + 54.459 +FUNCTION {format.article.crossref} 54.460 +{ key empty$ 54.461 + { journal empty$ 54.462 + { "need key or journal for " cite$ * " to crossref " * crossref * 54.463 + warning$ 54.464 + "" 54.465 + } 54.466 + { "In {\em " journal * "\/}" * } 54.467 + if$ 54.468 + } 54.469 + { "In " key * } 54.470 + if$ 54.471 + " \cite{" * crossref * "}" * 54.472 +} 54.473 + 54.474 +FUNCTION {format.crossref.editor} 54.475 +{ editor #1 "{vv~}{ll}" format.name$ 54.476 + editor num.names$ duplicate$ 54.477 + #2 > 54.478 + { pop$ " et~al." * } 54.479 + { #2 < 54.480 + 'skip$ 54.481 + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = 54.482 + { " et~al." * } 54.483 + { " and " * editor #2 "{vv~}{ll}" format.name$ * } 54.484 + if$ 54.485 + } 54.486 + if$ 54.487 + } 54.488 + if$ 54.489 +} 54.490 + 54.491 +FUNCTION {format.book.crossref} 54.492 +{ volume empty$ 54.493 + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ 54.494 + "In " 54.495 + } 54.496 + { "Volume" volume tie.or.space.connect 54.497 + " of " * 54.498 + } 54.499 + if$ 54.500 + editor empty$ 54.501 + editor field.or.null author field.or.null = 54.502 + or 54.503 + { key empty$ 54.504 + { series empty$ 54.505 + { "need editor, key, or series for " cite$ * " to crossref " * 54.506 + crossref * warning$ 54.507 + "" * 54.508 + } 54.509 + { "{\em " * series * "\/}" * } 54.510 + if$ 54.511 + } 54.512 + { key * } 54.513 + if$ 54.514 + } 54.515 + { format.crossref.editor * } 54.516 + if$ 54.517 + " \cite{" * crossref * "}" * 54.518 +} 54.519 + 54.520 +FUNCTION {format.incoll.inproc.crossref} 54.521 +{ editor empty$ 54.522 + editor field.or.null author field.or.null = 54.523 + or 54.524 + { key empty$ 54.525 + { booktitle empty$ 54.526 + { "need editor, key, or booktitle for " cite$ * " to crossref " * 54.527 + crossref * warning$ 54.528 + "" 54.529 + } 54.530 + { "In {\em " booktitle * "\/}" * } 54.531 + if$ 54.532 + } 54.533 + { "In " key * } 54.534 + if$ 54.535 + } 54.536 + { "In " format.crossref.editor * } 54.537 + if$ 54.538 + " \cite{" * crossref * "}" * 54.539 +} 54.540 + 54.541 +FUNCTION {article} 54.542 +{ output.bibitem 54.543 + format.authors "author" output.check 54.544 + new.block 54.545 + format.title "title" output.check 54.546 + new.block 54.547 + crossref missing$ 54.548 + { journal emphasize "journal" output.check 54.549 + format.vol.num.pages output 54.550 + format.date "year" output.check 54.551 + } 54.552 + { format.article.crossref output.nonnull 54.553 + format.pages output 54.554 + } 54.555 + if$ 54.556 + new.block 54.557 + note output 54.558 + fin.entry 54.559 +} 54.560 + 54.561 +FUNCTION {book} 54.562 +{ output.bibitem 54.563 + author empty$ 54.564 + { format.editors "author and editor" output.check } 54.565 + { format.authors output.nonnull 54.566 + crossref missing$ 54.567 + { "author and editor" editor either.or.check } 54.568 + 'skip$ 54.569 + if$ 54.570 + } 54.571 + if$ 54.572 + new.block 54.573 + format.btitle "title" output.check 54.574 + crossref missing$ 54.575 + { format.bvolume output 54.576 + new.block 54.577 + format.number.series output 54.578 + new.sentence 54.579 + publisher "publisher" output.check 54.580 + address output 54.581 + } 54.582 + { new.block 54.583 + format.book.crossref output.nonnull 54.584 + } 54.585 + if$ 54.586 + format.edition output 54.587 + format.date "year" output.check 54.588 + new.block 54.589 + note output 54.590 + fin.entry 54.591 +} 54.592 + 54.593 +FUNCTION {booklet} 54.594 +{ output.bibitem 54.595 + format.authors output 54.596 + new.block 54.597 + format.title "title" output.check 54.598 + howpublished address new.block.checkb 54.599 + howpublished output 54.600 + address output 54.601 + format.date output 54.602 + new.block 54.603 + note output 54.604 + fin.entry 54.605 +} 54.606 + 54.607 +FUNCTION {inbook} 54.608 +{ output.bibitem 54.609 + author empty$ 54.610 + { format.editors "author and editor" output.check } 54.611 + { format.authors output.nonnull 54.612 + crossref missing$ 54.613 + { "author and editor" editor either.or.check } 54.614 + 'skip$ 54.615 + if$ 54.616 + } 54.617 + if$ 54.618 + new.block 54.619 + format.btitle "title" output.check 54.620 + crossref missing$ 54.621 + { format.bvolume output 54.622 + format.chapter.pages "chapter and pages" output.check 54.623 + new.block 54.624 + format.number.series output 54.625 + new.sentence 54.626 + publisher "publisher" output.check 54.627 + address output 54.628 + } 54.629 + { format.chapter.pages "chapter and pages" output.check 54.630 + new.block 54.631 + format.book.crossref output.nonnull 54.632 + } 54.633 + if$ 54.634 + format.edition output 54.635 + format.date "year" output.check 54.636 + new.block 54.637 + note output 54.638 + fin.entry 54.639 +} 54.640 + 54.641 +FUNCTION {incollection} 54.642 +{ output.bibitem 54.643 + format.authors "author" output.check 54.644 + new.block 54.645 + format.title "title" output.check 54.646 + new.block 54.647 + crossref missing$ 54.648 + { format.in.ed.booktitle "booktitle" output.check 54.649 + format.bvolume output 54.650 + format.number.series output 54.651 + format.chapter.pages output 54.652 + new.sentence 54.653 + publisher "publisher" output.check 54.654 + address output 54.655 + format.edition output 54.656 + format.date "year" output.check 54.657 + } 54.658 + { format.incoll.inproc.crossref output.nonnull 54.659 + format.chapter.pages output 54.660 + } 54.661 + if$ 54.662 + new.block 54.663 + note output 54.664 + fin.entry 54.665 +} 54.666 + 54.667 +FUNCTION {inproceedings} 54.668 +{ output.bibitem 54.669 + format.authors "author" output.check 54.670 + new.block 54.671 + format.title "title" output.check 54.672 + new.block 54.673 + crossref missing$ 54.674 + { format.in.ed.booktitle "booktitle" output.check 54.675 + format.bvolume output 54.676 + format.number.series output 54.677 + format.pages output 54.678 + address empty$ 54.679 + { organization publisher new.sentence.checkb 54.680 + organization output 54.681 + publisher output 54.682 + format.date "year" output.check 54.683 + } 54.684 + { address output.nonnull 54.685 + format.date "year" output.check 54.686 + new.sentence 54.687 + organization output 54.688 + publisher output 54.689 + } 54.690 + if$ 54.691 + } 54.692 + { format.incoll.inproc.crossref output.nonnull 54.693 + format.pages output 54.694 + } 54.695 + if$ 54.696 + new.block 54.697 + note output 54.698 + fin.entry 54.699 +} 54.700 + 54.701 +FUNCTION {conference} { inproceedings } 54.702 + 54.703 +FUNCTION {manual} 54.704 +{ output.bibitem 54.705 + author empty$ 54.706 + { organization empty$ 54.707 + 'skip$ 54.708 + { organization output.nonnull 54.709 + address output 54.710 + } 54.711 + if$ 54.712 + } 54.713 + { format.authors output.nonnull } 54.714 + if$ 54.715 + new.block 54.716 + format.btitle "title" output.check 54.717 + author empty$ 54.718 + { organization empty$ 54.719 + { address new.block.checka 54.720 + address output 54.721 + } 54.722 + 'skip$ 54.723 + if$ 54.724 + } 54.725 + { organization address new.block.checkb 54.726 + organization output 54.727 + address output 54.728 + } 54.729 + if$ 54.730 + format.edition output 54.731 + format.date output 54.732 + new.block 54.733 + note output 54.734 + fin.entry 54.735 +} 54.736 + 54.737 +FUNCTION {mastersthesis} 54.738 +{ output.bibitem 54.739 + format.authors "author" output.check 54.740 + new.block 54.741 + format.title "title" output.check 54.742 + new.block 54.743 + "Master's thesis" format.thesis.type output.nonnull 54.744 + school "school" output.check 54.745 + address output 54.746 + format.date "year" output.check 54.747 + new.block 54.748 + note output 54.749 + fin.entry 54.750 +} 54.751 + 54.752 +FUNCTION {misc} 54.753 +{ output.bibitem 54.754 + format.authors output 54.755 + title howpublished new.block.checkb 54.756 + format.title output 54.757 + howpublished new.block.checka 54.758 + howpublished output 54.759 + format.date output 54.760 + new.block 54.761 + note output 54.762 + fin.entry 54.763 + empty.misc.check 54.764 +} 54.765 + 54.766 +FUNCTION {phdthesis} 54.767 +{ output.bibitem 54.768 + format.authors "author" output.check 54.769 + new.block 54.770 + format.btitle "title" output.check 54.771 + new.block 54.772 + "PhD thesis" format.thesis.type output.nonnull 54.773 + school "school" output.check 54.774 + address output 54.775 + format.date "year" output.check 54.776 + new.block 54.777 + note output 54.778 + fin.entry 54.779 +} 54.780 + 54.781 +FUNCTION {proceedings} 54.782 +{ output.bibitem 54.783 + editor empty$ 54.784 + { organization output } 54.785 + { format.editors output.nonnull } 54.786 + if$ 54.787 + new.block 54.788 + format.btitle "title" output.check 54.789 + format.bvolume output 54.790 + format.number.series output 54.791 + address empty$ 54.792 + { editor empty$ 54.793 + { publisher new.sentence.checka } 54.794 + { organization publisher new.sentence.checkb 54.795 + organization output 54.796 + } 54.797 + if$ 54.798 + publisher output 54.799 + format.date "year" output.check 54.800 + } 54.801 + { address output.nonnull 54.802 + format.date "year" output.check 54.803 + new.sentence 54.804 + editor empty$ 54.805 + 'skip$ 54.806 + { organization output } 54.807 + if$ 54.808 + publisher output 54.809 + } 54.810 + if$ 54.811 + new.block 54.812 + note output 54.813 + fin.entry 54.814 +} 54.815 + 54.816 +FUNCTION {techreport} 54.817 +{ output.bibitem 54.818 + format.authors "author" output.check 54.819 + new.block 54.820 + format.title "title" output.check 54.821 + new.block 54.822 + format.tr.number output.nonnull 54.823 + institution "institution" output.check 54.824 + address output 54.825 + format.date "year" output.check 54.826 + new.block 54.827 + note output 54.828 + fin.entry 54.829 +} 54.830 + 54.831 +FUNCTION {unpublished} 54.832 +{ output.bibitem 54.833 + format.authors "author" output.check 54.834 + new.block 54.835 + format.title "title" output.check 54.836 + new.block 54.837 + note "note" output.check 54.838 + format.date output 54.839 + fin.entry 54.840 +} 54.841 + 54.842 +FUNCTION {default.type} { misc } 54.843 + 54.844 +MACRO {jan} {"January"} 54.845 + 54.846 +MACRO {feb} {"February"} 54.847 + 54.848 +MACRO {mar} {"March"} 54.849 + 54.850 +MACRO {apr} {"April"} 54.851 + 54.852 +MACRO {may} {"May"} 54.853 + 54.854 +MACRO {jun} {"June"} 54.855 + 54.856 +MACRO {jul} {"July"} 54.857 + 54.858 +MACRO {aug} {"August"} 54.859 + 54.860 +MACRO {sep} {"September"} 54.861 + 54.862 +MACRO {oct} {"October"} 54.863 + 54.864 +MACRO {nov} {"November"} 54.865 + 54.866 +MACRO {dec} {"December"} 54.867 + 54.868 +MACRO {acmcs} {"ACM Computing Surveys"} 54.869 + 54.870 +MACRO {acta} {"Acta Informatica"} 54.871 + 54.872 +MACRO {cacm} {"Communications of the ACM"} 54.873 + 54.874 +MACRO {ibmjrd} {"IBM Journal of Research and Development"} 54.875 + 54.876 +MACRO {ibmsj} {"IBM Systems Journal"} 54.877 + 54.878 +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} 54.879 + 54.880 +MACRO {ieeetc} {"IEEE Transactions on Computers"} 54.881 + 54.882 +MACRO {ieeetcad} 54.883 + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} 54.884 + 54.885 +MACRO {ipl} {"Information Processing Letters"} 54.886 + 54.887 +MACRO {jacm} {"Journal of the ACM"} 54.888 + 54.889 +MACRO {jcss} {"Journal of Computer and System Sciences"} 54.890 + 54.891 +MACRO {scp} {"Science of Computer Programming"} 54.892 + 54.893 +MACRO {sicomp} {"SIAM Journal on Computing"} 54.894 + 54.895 +MACRO {tocs} {"ACM Transactions on Computer Systems"} 54.896 + 54.897 +MACRO {tods} {"ACM Transactions on Database Systems"} 54.898 + 54.899 +MACRO {tog} {"ACM Transactions on Graphics"} 54.900 + 54.901 +MACRO {toms} {"ACM Transactions on Mathematical Software"} 54.902 + 54.903 +MACRO {toois} {"ACM Transactions on Office Information Systems"} 54.904 + 54.905 +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} 54.906 + 54.907 +MACRO {tcs} {"Theoretical Computer Science"} 54.908 + 54.909 +READ 54.910 + 54.911 +FUNCTION {sortify} 54.912 +{ purify$ 54.913 + "l" change.case$ 54.914 +} 54.915 + 54.916 +INTEGERS { len } 54.917 + 54.918 +FUNCTION {chop.word} 54.919 +{ 's := 54.920 + 'len := 54.921 + s #1 len substring$ = 54.922 + { s len #1 + global.max$ substring$ } 54.923 + 's 54.924 + if$ 54.925 +} 54.926 + 54.927 +FUNCTION {sort.format.names} 54.928 +{ 's := 54.929 + #1 'nameptr := 54.930 + "" 54.931 + s num.names$ 'numnames := 54.932 + numnames 'namesleft := 54.933 + { namesleft #0 > } 54.934 + { nameptr #1 > 54.935 + { " " * } 54.936 + 'skip$ 54.937 + if$ 54.938 + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := 54.939 + nameptr numnames = t "others" = and 54.940 + { "et al" * } 54.941 + { t sortify * } 54.942 + if$ 54.943 + nameptr #1 + 'nameptr := 54.944 + namesleft #1 - 'namesleft := 54.945 + } 54.946 + while$ 54.947 +} 54.948 + 54.949 +FUNCTION {sort.format.title} 54.950 +{ 't := 54.951 + "A " #2 54.952 + "An " #3 54.953 + "The " #4 t chop.word 54.954 + chop.word 54.955 + chop.word 54.956 + sortify 54.957 + #1 global.max$ substring$ 54.958 +} 54.959 + 54.960 +FUNCTION {author.sort} 54.961 +{ author empty$ 54.962 + { key empty$ 54.963 + { "to sort, need author or key in " cite$ * warning$ 54.964 + "" 54.965 + } 54.966 + { key sortify } 54.967 + if$ 54.968 + } 54.969 + { author sort.format.names } 54.970 + if$ 54.971 +} 54.972 + 54.973 +FUNCTION {author.editor.sort} 54.974 +{ author empty$ 54.975 + { editor empty$ 54.976 + { key empty$ 54.977 + { "to sort, need author, editor, or key in " cite$ * warning$ 54.978 + "" 54.979 + } 54.980 + { key sortify } 54.981 + if$ 54.982 + } 54.983 + { editor sort.format.names } 54.984 + if$ 54.985 + } 54.986 + { author sort.format.names } 54.987 + if$ 54.988 +} 54.989 + 54.990 +FUNCTION {author.organization.sort} 54.991 +{ author empty$ 54.992 + { organization empty$ 54.993 + { key empty$ 54.994 + { "to sort, need author, organization, or key in " cite$ * warning$ 54.995 + "" 54.996 + } 54.997 + { key sortify } 54.998 + if$ 54.999 + } 54.1000 + { "The " #4 organization chop.word sortify } 54.1001 + if$ 54.1002 + } 54.1003 + { author sort.format.names } 54.1004 + if$ 54.1005 +} 54.1006 + 54.1007 +FUNCTION {editor.organization.sort} 54.1008 +{ editor empty$ 54.1009 + { organization empty$ 54.1010 + { key empty$ 54.1011 + { "to sort, need editor, organization, or key in " cite$ * warning$ 54.1012 + "" 54.1013 + } 54.1014 + { key sortify } 54.1015 + if$ 54.1016 + } 54.1017 + { "The " #4 organization chop.word sortify } 54.1018 + if$ 54.1019 + } 54.1020 + { editor sort.format.names } 54.1021 + if$ 54.1022 +} 54.1023 + 54.1024 +FUNCTION {presort} 54.1025 +{ type$ "book" = 54.1026 + type$ "inbook" = 54.1027 + or 54.1028 + 'author.editor.sort 54.1029 + { type$ "proceedings" = 54.1030 + 'editor.organization.sort 54.1031 + { type$ "manual" = 54.1032 + 'author.organization.sort 54.1033 + 'author.sort 54.1034 + if$ 54.1035 + } 54.1036 + if$ 54.1037 + } 54.1038 + if$ 54.1039 + " " 54.1040 + * 54.1041 + year field.or.null sortify 54.1042 + * 54.1043 + " " 54.1044 + * 54.1045 + title field.or.null 54.1046 + sort.format.title 54.1047 + * 54.1048 + #1 entry.max$ substring$ 54.1049 + 'sort.key$ := 54.1050 +} 54.1051 + 54.1052 +ITERATE {presort} 54.1053 + 54.1054 +SORT 54.1055 + 54.1056 +STRINGS { longest.label } 54.1057 + 54.1058 +INTEGERS { number.label longest.label.width } 54.1059 + 54.1060 +FUNCTION {initialize.longest.label} 54.1061 +{ "" 'longest.label := 54.1062 + #1 'number.label := 54.1063 + #0 'longest.label.width := 54.1064 +} 54.1065 + 54.1066 +FUNCTION {longest.label.pass} 54.1067 +{ number.label int.to.str$ 'label := 54.1068 + number.label #1 + 'number.label := 54.1069 + label width$ longest.label.width > 54.1070 + { label 'longest.label := 54.1071 + label width$ 'longest.label.width := 54.1072 + } 54.1073 + 'skip$ 54.1074 + if$ 54.1075 +} 54.1076 + 54.1077 +EXECUTE {initialize.longest.label} 54.1078 + 54.1079 +ITERATE {longest.label.pass} 54.1080 + 54.1081 +FUNCTION {begin.bib} 54.1082 +{ preamble$ empty$ 54.1083 + 'skip$ 54.1084 + { preamble$ write$ newline$ } 54.1085 + if$ 54.1086 + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ 54.1087 +} 54.1088 + 54.1089 +EXECUTE {begin.bib} 54.1090 + 54.1091 +EXECUTE {init.state.consts} 54.1092 + 54.1093 +ITERATE {call.type$} 54.1094 + 54.1095 +FUNCTION {end.bib} 54.1096 +{ newline$ 54.1097 + "\end{thebibliography}" write$ newline$ 54.1098 +} 54.1099 + 54.1100 +EXECUTE {end.bib} 54.1101 +
55.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 55.2 +++ b/0__Papers/PRT/PRT__formal_def/helpers/url.sty Sat Aug 03 19:24:22 2013 -0700 55.3 @@ -0,0 +1,325 @@ 55.4 +% url.sty ver 1.4 02-Mar-1999 Donald Arseneau asnd@triumf.ca 55.5 +% Copyright 1996-1999 Donald Arseneau, Vancouver, Canada. 55.6 +% This program can be used, distributed, and modified under the terms 55.7 +% of the LaTeX Project Public License. 55.8 +% 55.9 +% A form of \verb that allows linebreaks at certain characters or 55.10 +% combinations of characters, accepts reconfiguration, and can usually 55.11 +% be used in the argument to another command. It is intended for email 55.12 +% addresses, hypertext links, directories/paths, etc., which normally 55.13 +% have no spaces. The font may be selected using the \urlstyle command, 55.14 +% and new url-like commands can be defined using \urldef. 55.15 +% 55.16 +% Usage: Conditions: 55.17 +% \url{ } If the argument contains any "%", "#", or "^^", or ends with 55.18 +% "\", it can't be used in the argument to another command. 55.19 +% The argument must not contain unbalanced braces. 55.20 +% \url| | ...where "|" is any character not used in the argument and not 55.21 +% "{" or a space. The same restrictions as above except that the 55.22 +% argument may contain unbalanced braces. 55.23 +% \xyz for "\xyz" a defined-url; this can be used anywhere, no matter 55.24 +% what characters it contains. 55.25 +% 55.26 +% See further instructions after "\endinput" 55.27 +% 55.28 +\def\Url@ttdo{% style assignments for tt fonts or T1 encoding 55.29 +\def\UrlBreaks{\do\.\do\@\do\\\do\/\do\!\do\_\do\|\do\%\do\;\do\>\do\]% 55.30 + \do\)\do\,\do\?\do\'\do\+\do\=}% 55.31 +\def\UrlBigBreaks{\do\:\do@url@hyp}% 55.32 +\def\UrlNoBreaks{\do\(\do\[\do\{\do\<}% (unnecessary) 55.33 +\def\UrlSpecials{\do\ {\ }}% 55.34 +\def\UrlOrds{\do\*\do\-\do\~}% any ordinary characters that aren't usually 55.35 +} 55.36 +\def\Url@do{% style assignments for OT1 fonts except tt 55.37 +\def\UrlBreaks{\do\.\do\@\do\/\do\!\do\%\do\;\do\]\do\)\do\,\do\?\do\+\do\=}% 55.38 +\def\UrlBigBreaks{\do\:\do@url@hyp}% 55.39 +\def\UrlNoBreaks{\do\(\do\[\do\{}% prevents breaks after *next* character 55.40 +\def\UrlSpecials{\do\<{\langle}\do\>{\mathbin{\rangle}}\do\_{\_% 55.41 + \penalty\@m}\do\|{\mid}\do\{{\lbrace}\do\}{\mathbin{\rbrace}}\do 55.42 + \\{\mathbin{\backslash}}\do\~{\raise.6ex\hbox{\m@th$\scriptstyle\sim$}}\do 55.43 + \ {\ }}% 55.44 +\def\UrlOrds{\do\'\do\"\do\-}% 55.45 +} 55.46 +\def\url@ttstyle{% 55.47 +\@ifundefined{selectfont}{\def\UrlFont{\tt}}{\def\UrlFont{\ttfamily}}\Url@ttdo 55.48 +} 55.49 +\def\url@rmstyle{% 55.50 +\@ifundefined{selectfont}{\def\UrlFont{\rm}}{\def\UrlFont{\rmfamily}}\Url@do 55.51 +} 55.52 +\def\url@sfstyle{% 55.53 +\@ifundefined{selectfont}{\def\UrlFont{\sf}}{\def\UrlFont{\sffamily}}\Url@do 55.54 +} 55.55 +\def\url@samestyle{\ifdim\fontdimen\thr@@\font=\z@ \url@ttstyle \else 55.56 + \url@rmstyle \fi \def\UrlFont{}} 55.57 + 55.58 +\@ifundefined{strip@prefix}{\def\strip@prefix#1>{}}{} 55.59 +\@ifundefined{verbatim@nolig@list}{\def\verbatim@nolig@list{\do\`}}{} 55.60 + 55.61 +\def\Url{% 55.62 + \begingroup \let\url@moving\relax\relax \endgroup 55.63 + \ifmmode\@nomatherr$\fi 55.64 + \UrlFont $\fam\z@ \textfont\z@\font 55.65 + \let\do\@makeother \dospecials % verbatim catcodes 55.66 + \catcode`{\@ne \catcode`}\tw@ \catcode`\ 10 % except braces and spaces 55.67 + \medmuskip0mu \thickmuskip\medmuskip \thinmuskip\medmuskip 55.68 + \@tempcnta\fam\multiply\@tempcnta\@cclvi 55.69 + \let\do\set@mathcode \UrlOrds % ordinary characters that were special 55.70 + \advance\@tempcnta 8192 \UrlBreaks % bin 55.71 + \advance\@tempcnta 4096 \UrlBigBreaks % rel 55.72 + \advance\@tempcnta 4096 \UrlNoBreaks % open 55.73 + \let\do\set@mathact \UrlSpecials % active 55.74 + \let\do\set@mathnolig \verbatim@nolig@list % prevent ligatures 55.75 + \@ifnextchar\bgroup\Url@z\Url@y} 55.76 + 55.77 +\def\Url@y#1{\catcode`{11 \catcode`}11 55.78 + \def\@tempa##1#1{\Url@z{##1}}\@tempa} 55.79 +\def\Url@z#1{\def\@tempa{#1}\expandafter\expandafter\expandafter\Url@Hook 55.80 + \expandafter\strip@prefix\meaning\@tempa\UrlRight\m@th$\endgroup} 55.81 +\def\Url@Hook{\UrlLeft} 55.82 +\let\UrlRight\@empty 55.83 +\let\UrlLeft\@empty 55.84 + 55.85 +\def\set@mathcode#1{\count@`#1\advance\count@\@tempcnta\mathcode`#1\count@} 55.86 +\def\set@mathact#1#2{\mathcode`#132768 \lccode`\~`#1\lowercase{\def~{#2}}} 55.87 +\def\set@mathnolig#1{\ifnum\mathcode`#1<32768 55.88 + \lccode`\~`#1\lowercase{\edef~{\mathchar\number\mathcode`#1_{\/}}}% 55.89 + \mathcode`#132768 \fi} 55.90 + 55.91 +\def\urldef#1#2{\begingroup \setbox\z@\hbox\bgroup 55.92 + \def\Url@z{\Url@def{#1}{#2}}#2} 55.93 +\expandafter\ifx\csname DeclareRobustCommand\endcsname\relax 55.94 + \def\Url@def#1#2#3{\m@th$\endgroup\egroup\endgroup 55.95 + \def#1{#2{#3}}} 55.96 +\else 55.97 + \def\Url@def#1#2#3{\m@th$\endgroup\egroup\endgroup 55.98 + \DeclareRobustCommand{#1}{#2{#3}}} 55.99 +\fi 55.100 + 55.101 +\def\urlstyle#1{\csname url@#1style\endcsname} 55.102 + 55.103 +% Sample (and default) configuration: 55.104 +% 55.105 +\newcommand\url{\begingroup \Url} 55.106 +% 55.107 +% picTeX defines \path, so declare it optionally: 55.108 +\@ifundefined{path}{\newcommand\path{\begingroup \urlstyle{tt}\Url}}{} 55.109 +% 55.110 +% too many styles define \email like \address, so I will not define it. 55.111 +% \newcommand\email{\begingroup \urlstyle{rm}\Url} 55.112 + 55.113 +% Process LaTeX \package options 55.114 +% 55.115 +\urlstyle{tt} 55.116 +\let\Url@sppen\@M 55.117 +\def\do@url@hyp{}% by default, no breaks after hyphens 55.118 + 55.119 +\@ifundefined{ProvidesPackage}{}{ 55.120 + \ProvidesPackage{url}[1999/03/02 \space ver 1.4 \space 55.121 + Verb mode for urls, email addresses, and file names] 55.122 + \DeclareOption{hyphens}{\def\do@url@hyp{\do\-}}% allow breaks after hyphens 55.123 + \DeclareOption{obeyspaces}{\let\Url@Hook\relax}% a flag for later 55.124 + \DeclareOption{spaces}{\let\Url@sppen\relpenalty} 55.125 + \DeclareOption{T1}{\let\Url@do\Url@ttdo} 55.126 + \ProcessOptions 55.127 +\ifx\Url@Hook\relax % [obeyspaces] was declared 55.128 + \def\Url@Hook#1\UrlRight\m@th{\edef\@tempa{\noexpand\UrlLeft 55.129 + \Url@retain#1\Url@nosp\, }\@tempa\UrlRight\m@th} 55.130 + \def\Url@retain#1 {#1\penalty\Url@sppen\ \Url@retain} 55.131 + \def\Url@nosp\,#1\Url@retain{} 55.132 +\fi 55.133 +} 55.134 + 55.135 +\edef\url@moving{\csname Url Error\endcsname} 55.136 +\expandafter\edef\url@moving 55.137 + {\csname url used in a moving argument.\endcsname} 55.138 +\expandafter\expandafter\expandafter \let \url@moving\undefined 55.139 + 55.140 +\endinput 55.141 +% 55.142 +% url.sty ver 1.4 02-Mar-1999 Donald Arseneau asnd@reg.triumf.ca 55.143 +% 55.144 +% This package defines "\url", a form of "\verb" that allows linebreaks, 55.145 +% and can often be used in the argument to another command. It can be 55.146 +% configured to print in different formats, and is particularly useful for 55.147 +% hypertext links, email addresses, directories/paths, etc. The font may 55.148 +% be selected using the "\urlstyle" command and pre-defined text can be 55.149 +% stored with the "\urldef" command. New url-like commands can be defined, 55.150 +% and a "\path" command is provided this way. 55.151 +% 55.152 +% Usage: Conditions: 55.153 +% \url{ } If the argument contains any "%", "#", or "^^", or ends with 55.154 +% "\", it can't be used in the argument to another command. 55.155 +% The argument must not contain unbalanced braces. 55.156 +% \url| | ...where "|" is any character not used in the argument and not 55.157 +% "{" or a space. The same restrictions as above except that the 55.158 +% argument may contain unbalanced braces. 55.159 +% \xyz for "\xyz" a defined-url; this can be used anywhere, no matter 55.160 +% what characters it contains. 55.161 +% 55.162 +% The "\url" command is fragile, and its argument is likely to be very 55.163 +% fragile, but a defined-url is robust. 55.164 +% 55.165 +% Package Option: obeyspaces 55.166 +% Ordinarily, all spaces are ignored in the url-text. The "[obeyspaces]" 55.167 +% option allows spaces, but may introduce spurious spaces when a url 55.168 +% containing "\" characters is given in the argument to another command. 55.169 +% So if you need to obey spaces you can say "\usepackage[obeyspaces]{url}", 55.170 +% and if you need both spaces and backslashes, use a `defined-url' for 55.171 +% anything with "\". 55.172 +% 55.173 +% Package Option: hyphens 55.174 +% Ordinarily, breaks are not allowed after "-" characters because this 55.175 +% leads to confusion. (Is the "-" part of the address or just a hyphen?) 55.176 +% The package option "[hyphens]" allows breaks after explicit hyphen 55.177 +% characters. The "\url" command will *never ever* hyphenate words. 55.178 +% 55.179 +% Package Option: spaces 55.180 +% Likewise, breaks are not usually allowed after spaces under the 55.181 +% "[obeyspaces]" option, but giving the options "[obeyspaces,spaces]" 55.182 +% will allow breaks at those spaces. 55.183 +% 55.184 +% Package Option: T1 55.185 +% This signifies that you will be using T1-encoded fonts which contain 55.186 +% some characters missing from most older (OT1) encoded TeX fonts. This 55.187 +% changes the default definition for "\urlstyle{rm}". 55.188 +% 55.189 +% Defining a defined-url: 55.190 +% Take for example the email address "myself%node@gateway.net" which could 55.191 +% not be given (using "\url" or "\verb") in a caption or parbox due to the 55.192 +% percent sign. This address can be predefined with 55.193 +% \urldef{\myself}\url{myself%node@gateway.net} or 55.194 +% \urldef{\myself}\url|myself%node@gateway.net| 55.195 +% and then you may use "\myself" instead of "\url{myself%node@gateway.net}" 55.196 +% in an argument, and even in a moving argument like a caption because a 55.197 +% defined-url is robust. 55.198 +% 55.199 +% Style: 55.200 +% You can switch the style of printing using "\urlstyle{tt}", where "tt" 55.201 +% can be any defined style. The pre-defined styles are "tt", "rm", "sf", 55.202 +% and "same" which all allow the same linebreaks but different fonts -- 55.203 +% the first three select a specific font and the "same" style uses the 55.204 +% current text font. You can define your own styles with different fonts 55.205 +% and/or line-breaking by following the explanations below. The "\url" 55.206 +% command follows whatever the currently-set style dictates. 55.207 +% 55.208 +% Alternate commands: 55.209 +% It may be desireable to have different things treated differently, each 55.210 +% in a predefined style; e.g., if you want directory paths to always be 55.211 +% in tt and email addresses to be rm, then you would define new url-like 55.212 +% commands as follows: 55.213 +% 55.214 +% \newcommand\email{\begingroup \urlstyle{rm}\Url} 55.215 +% \newcommand\directory{\begingroup \urlstyle{tt}\Url} 55.216 +% 55.217 +% You must follow this format closely, and NOTE that the final command is 55.218 +% "\Url", not "\url". In fact, the "\directory" example is exactly the 55.219 +% "\path" definition which is pre-defined in the package. If you look 55.220 +% above, you will see that "\url" is defined with 55.221 +% \newcommand\url{\begingroup \Url} 55.222 +% I.e., using whatever url-style has been selected. 55.223 +% 55.224 +% You can make a defined-url for these other styles, using the usual 55.225 +% "\urldef" command as in this example: 55.226 +% 55.227 +% \urldef{\myself}{\email}{myself%node.domain@gateway.net} 55.228 +% 55.229 +% which makes "\myself" act like "\email{myself%node.domain@gateway.net}", 55.230 +% if the "\email" command is defined as above. The "\myself" command 55.231 +% would then be robust. 55.232 +% 55.233 +% Defining styles: 55.234 +% Before describing how to customize the printing style, it is best to 55.235 +% mention something about the unusual implementation of "\url". Although 55.236 +% the material is textual in nature, and the font specification required 55.237 +% is a text-font command, the text is actually typeset in *math* mode. 55.238 +% This allows the context-sensitive linebreaking, but also accounts for 55.239 +% the default behavior of ignoring spaces. Now on to defining styles. 55.240 +% 55.241 +% To change the font or the list of characters that allow linebreaks, you 55.242 +% could redefine the commands "\UrlFont", "\UrlBreaks", "\UrlSpecials" etc. 55.243 +% directly in the document, but it is better to define a new `url-style' 55.244 +% (following the example of "\url@ttstyle" and "\url@rmstyle") which defines 55.245 +% all of "\UrlBigbreaks", "\UrlNoBreaks", "\UrlBreaks", "\UrlSpecials", and 55.246 +% "\UrlFont". 55.247 +% 55.248 +% Changing font: 55.249 +% The "\UrlFont" command selects the font. The definition of "\UrlFont" 55.250 +% done by the pre-defined styles varies to cope with a variety of LaTeX 55.251 +% font selection schemes, but it could be as simple as "\def\UrlFont{\tt}". 55.252 +% Depending on the font selected, some characters may need to be defined 55.253 +% in the "\UrlSpecials" list because many fonts don't contain all the 55.254 +% standard input characters. 55.255 +% 55.256 +% Changing linebreaks: 55.257 +% The list of characters that allow line-breaks is given by "\UrlBreaks" 55.258 +% and "\UrlBigBreaks", which have the format "\do\c" for character "c". 55.259 +% The differences are that `BigBreaks' have a lower penalty and have 55.260 +% different breakpoints when in sequence (as in "http://"): `BigBreaks' 55.261 +% are treated as mathrels while `Breaks' are mathbins (see The TeXbook, 55.262 +% p.170). In particular, a series of `BigBreak' characters will break at 55.263 +% the end and only at the end; a series of `Break' characters will break 55.264 +% after the first and after every following *pair*; there will be no 55.265 +% break after a `Break' character if a `BigBreak' follows. In the case 55.266 +% of "http://" it doesn't matter whether ":" is a `Break' or `BigBreak' -- 55.267 +% the breaks are the same in either case; but for DECnet nodes with "::" 55.268 +% it is important to prevent breaks *between* the colons, and that is why 55.269 +% colons are `BigBreaks'. 55.270 +% 55.271 +% It is possible for characters to prevent breaks after the next following 55.272 +% character (I use this for parentheses). Specify these in "\UrlNoBreaks". 55.273 +% 55.274 +% You can do arbitrarily complex things with characters by making them 55.275 +% active in math mode (mathcode hex-8000) and specifying the definition(s) 55.276 +% in "\UrlSpecials". This is used in the rm and sf styles for OT1 font 55.277 +% encoding to handle several characters that are not present in those 55.278 +% computer-modern style fonts. See the definition of "\Url@do", which 55.279 +% is used by both "\url@rmstyle" and "\url@sfstyle"; it handles missing 55.280 +% characters via "\UrlSpecials". The nominal format for setting each 55.281 +% special character "c" is: "\do\c{<definition>}", but you can include 55.282 +% other definitions too. 55.283 +% 55.284 +% 55.285 +% If all this sounds confusing ... well, it is! But I hope you won't need 55.286 +% to redefine breakpoints -- the default assignments seem to work well for 55.287 +% a wide variety of applications. If you do need to make changes, you can 55.288 +% test for breakpoints using regular math mode and the characters "+=(a". 55.289 +% 55.290 +% Yet more flexibility: 55.291 +% You can also customize the verbatim text by defining "\UrlRight" and/or 55.292 +% "\UrlLeft", e.g., for ISO formatting of urls surrounded by "< >", define 55.293 +% 55.294 +% \renewcommand\url{\begingroup \def\UrlLeft{<url: }\def\UrlRight{>}% 55.295 +% \urlstyle{tt}\Url} 55.296 +% 55.297 +% The meanings of "\UrlLeft" and "\UrlRight" are *not* reproduced verbatim. 55.298 +% This lets you use formatting commands there, but you must be careful not 55.299 +% to use TeX's special characters ("\^_%~#$&{}" etc.) improperly. 55.300 +% You can also define "\UrlLeft" to reprocess the verbatim text, but the 55.301 +% format of the definition is special: 55.302 +% 55.303 +% \def\UrlLeft#1\UrlRight{ ... do things with #1 ... } 55.304 +% 55.305 +% Yes, that is "#1" followed by "\UrlRight" then the definition. For 55.306 +% example, to put a hyperTeX hypertext link in the DVI file: 55.307 +% 55.308 +% \def\UrlLeft#1\UrlRight{\special{html:<a href="#1">}#1\special{html:</a>}} 55.309 +% 55.310 +% Using this technique, url.sty can provide a convenient interface for 55.311 +% performing various operations on verbatim text. You don't even need 55.312 +% to print out the argument! For greatest efficiency in such obscure 55.313 +% applications, you can define a null url-style where all the lists like 55.314 +% "\UrlBreaks" are empty. 55.315 +% 55.316 +% Revision History: 55.317 +% ver 1.1 6-Feb-1996: 55.318 +% Fix hyphens that wouldn't break and ligatures that weren't suppressed. 55.319 +% ver 1.2 19-Oct-1996: 55.320 +% Package option for T1 encoding; Hooks: "\UrlLeft" and "\UrlRight". 55.321 +% ver 1.3 21-Jul-1997: 55.322 +% Prohibit spaces as delimiter characters; change ascii tilde in OT1. 55.323 +% ver 1.4 02-Mar-1999 55.324 +% LaTeX license; moving-argument-error 55.325 +% The End 55.326 + 55.327 +Test file integrity: ASCII 32-57, 58-126: !"#$%&'()*+,-./0123456789 55.328 +:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
56.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 56.2 +++ b/0__Papers/PRT/PRT__formal_def/helpers/usetex-v1-anon.cls Sat Aug 03 19:24:22 2013 -0700 56.3 @@ -0,0 +1,363 @@ 56.4 +\NeedsTeXFormat{LaTeX2e} 56.5 +\ProvidesClass{usetex-v1-anon}[2002/10/31 v1.2 usetex Usenix article class] 56.6 + 56.7 +% usetex-v1.cls - to be used with LaTeX2e for Usenix articles 56.8 +% 56.9 +% To use this style file, do this: 56.10 +% 56.11 +% \documentclass{usetex-v1} 56.12 +% 56.13 +% The following definitions are modifications of standard article.cls 56.14 +% definitions, arranged to do a better job of matching the Usenix 56.15 +% guidelines. and make for convenient Usenix paper writing 56.16 +% 56.17 +% Choose the appropriate option: 56.18 +% 56.19 +% 1. workingdraft: 56.20 +% 56.21 +% For initial submission and shepherding. Features prominent 56.22 +% date, notice of draft status, page numbers, and annotation 56.23 +% facilities. 56.24 +% 56.25 +% 2. proof: 56.26 +% 56.27 +% A galley proof identical to the final copy except for page 56.28 +% numbering and proof date on the bottom. Annotations are 56.29 +% removed. 56.30 +% 56.31 +% 3. webversion: 56.32 +% 56.33 +% A web-publishable version, uses \docstatus{} to indicate 56.34 +% publication information (where and when paper was published), 56.35 +% and page numbers. 56.36 +% 56.37 +% 4. finalversion: 56.38 +% 56.39 +% The final camera-ready-copy (CRC) version of the paper. 56.40 +% Published in conference proceedings. This doesn't include 56.41 +% page numbers, annotations, or draft status (Usenix adds 56.42 +% headers, footers, and page numbers onto the CRC). 56.43 +% 56.44 +% If several are used, the last one in this list wins 56.45 +% 56.46 + 56.47 +% 56.48 +% In addition, the option "endnotes" permits the use of the 56.49 +% otherwise-disabled, Usenix-deprecated footnote{} command in 56.50 +% documents. In this case, be sure to include a 56.51 +% \makeendnotes command at the end of your document or 56.52 +% the endnotes will not actually appear. 56.53 +% 56.54 + 56.55 +\newif\if@draftcopy \newif\ifworkingdraft 56.56 +\DeclareOption{workingdraft}{\workingdrafttrue\@draftcopytrue} 56.57 +\newif\ifproof \DeclareOption{proof}{\prooftrue\@draftcopytrue} 56.58 +\newif\ifwebversion 56.59 +\DeclareOption{webversion}{\prooftrue\webversiontrue\@draftcopytrue} 56.60 +\DeclareOption{finalversion}{} 56.61 +\newif\ifhasendnotes 56.62 +\DeclareOption{endnotes}{\hasendnotestrue} 56.63 + 56.64 +% pass all other options to the article class 56.65 +\DeclareOption*{% 56.66 + \PassOptionsToClass{\CurrentOption}{article}% 56.67 +} 56.68 + 56.69 +% actually process the options 56.70 +\ProcessOptions 56.71 + 56.72 +% usetex is based on article 56.73 +\LoadClass[twocolumn]{article} 56.74 + 56.75 +% Footnotes are not currently allowed, but 56.76 +% endnotes (while a bad idea) are. 56.77 +\ifhasendnotes 56.78 + \RequirePackage{endnotes} 56.79 +\fi 56.80 + 56.81 +% save any provided document status information 56.82 +\def\@docstatus{} 56.83 +\def\docstatus#1{\gdef\@docstatus{#1}} 56.84 + 56.85 +\ifworkingdraft 56.86 + 56.87 + % formatting helper for draft notes 56.88 + \newcommand{\@noteleader[1]}{% 56.89 + {\marginpar{\framebox{\scriptsize\textbf{#1}}}}% 56.90 + \bfseries\itshape 56.91 + } 56.92 + 56.93 + % put a small anonymous editing note in the draft copy 56.94 + \newcommand{\edannote}[1]{{\@noteleader[note] (#1)}} 56.95 + 56.96 + % put a small attributed editing note in the draft copy 56.97 + \newcommand{\edatnote}[2]{{\@noteleader[#1] #2}} 56.98 + 56.99 + % put an attributed editing note paragraph in the draft copy 56.100 + \newenvironment{ednote}[1] 56.101 + {\newcommand{\who}{#1}\@noteleader[\who]} 56.102 + 56.103 + % mark a spot where work has been left off for later 56.104 + \newcommand{\HERE}{% 56.105 + {\mbox{}\marginpar{\framebox{\textbf{here}}}}{\bf\ldots}} 56.106 + 56.107 +\else 56.108 + 56.109 + % dummy versions of editing commands to produce warnings 56.110 + 56.111 + \newcommand{\edannote}[1]{\@latex@warning 56.112 + {Leftover edannote command in final version ignored}} 56.113 + 56.114 + \newcommand{\edatnote}[1]{\@latex@warning 56.115 + {Leftover edatnote command in final version ignored}} 56.116 + 56.117 + \newsavebox{\@discard} 56.118 + \newenvironment{ednote}[1]{\@latex@warning 56.119 + {Leftover ednote environment in final version ignored}% 56.120 + \begin{lrbox}{\@discard}}{\end{lrbox}} 56.121 + 56.122 + \newcommand{\HERE}{\@latex@warning 56.123 + {Leftover HERE command in final version ignored}} 56.124 + 56.125 +\fi 56.126 + 56.127 +% set up the footers appropriately 56.128 +\def\@setfoot{% 56.129 + \ifwebversion 56.130 + % webversions get whatever status the author says 56.131 + \gdef\@evenfoot{\@docstatus \hfil \thepage}% 56.132 + \else 56.133 + % all other drafts get the standard draft footer 56.134 + \gdef\@evenfoot{\textbf{Draft:} \@draftdate\hfil \textbf{Page:} \thepage}% 56.135 + \fi 56.136 + \gdef\@oddfoot{\@evenfoot}% 56.137 +} 56.138 + 56.139 +% 56.140 +% Usenix wants no page numbers for submitted papers, so that 56.141 +% they can number them themselves. Drafts should have 56.142 +% numbered pages, so they can be edited. 56.143 +% 56.144 +\if@draftcopy 56.145 + % Compute a date and time for the draft for use 56.146 + % either in \@setfoot (proof) or in \maketitle (workingdraft) 56.147 + % 56.148 + % Time code adapted from custom-bib/makebst.tex 56.149 + % Copyright 1993-1999 Patrick W Daly 56.150 + % Max-Planck-Institut f\"ur Aeronomie 56.151 + % E-mail: daly@linmp.mpg.de 56.152 + \newcount\hour 56.153 + \hour=\time 56.154 + \divide\hour by 60 56.155 + \newcount\minute 56.156 + \minute=\hour 56.157 + \multiply\minute by 60 56.158 + \advance\minute by -\time 56.159 + \multiply\minute by -1 56.160 + \newcommand{\@draftdate} 56.161 + {{\the\year/\/\two@digits{\the\month}/\/\two@digits{\the\day}% 56.162 + ~\two@digits{\the\hour}:\two@digits{\the\minute}}} 56.163 + \pagestyle{plain} 56.164 + \@setfoot 56.165 +\else 56.166 + \pagestyle{empty} 56.167 +\fi 56.168 + 56.169 +% Times-Roman font is nice if you can get it (requires NFSS, 56.170 +% which is in latex2e). 56.171 +\usepackage{times} 56.172 + 56.173 +% endnote support, as described at 56.174 +% http://www.lyx.org/help/footnotes.php 56.175 +\ifhasendnotes 56.176 + \typeout 56.177 + {Warning: endnotes support is deprecated (see documentation for details)} 56.178 + \let\footnote=\endnote 56.179 + \def\enoteformat{\rightskip\z@ \leftskip\z@ 56.180 + \parindent=0pt\parskip=\baselineskip 56.181 + \@theenmark. } 56.182 + \newcommand{\makeendnotes}{ 56.183 + \begingroup 56.184 + \def\enotesize{\normalsize} 56.185 + \theendnotes 56.186 + \endgroup 56.187 + } 56.188 +\else 56.189 + \long\gdef\footnote{\@latex@error 56.190 + {Deprecated footnote command (see documentation for details)}} 56.191 + \long\gdef\endnote{\@latex@error 56.192 + {Deprecated endnote command (see documentation for details)}} 56.193 +\fi 56.194 + 56.195 +% 56.196 +% Usenix margins 56.197 +% Gives active areas of 6.45" x 9.0" 56.198 +% 56.199 +\setlength{\textheight}{9.0in} 56.200 +\setlength{\columnsep}{0.25in} 56.201 +\setlength{\textwidth}{6.45in} 56.202 +%\setlength{\footskip}{0.0in} 56.203 +%\setlength{\footheight}{0.0in} 56.204 +\setlength{\topmargin}{0.0in} 56.205 +\setlength{\headheight}{0.0in} 56.206 +\setlength{\headsep}{0.0in} 56.207 +\setlength{\evensidemargin}{0.0in} 56.208 +\setlength{\oddsidemargin}{0.0in} 56.209 +\setlength{\marginparsep}{1.5em} 56.210 +\setlength{\marginparwidth}{0.35in} 56.211 + 56.212 +% The standard maketitle insists on 56.213 +% messing with the style of the first page. 56.214 +% Thus, we will wrap maketitle with code to put 56.215 +% things right again. 56.216 +\let \save@maketitle=\maketitle 56.217 +\def\maketitle{ 56.218 + \save@maketitle 56.219 + \if@draftcopy 56.220 + \@specialpagefalse 56.221 + \else 56.222 + \thispagestyle{empty} 56.223 + \fi 56.224 +} 56.225 + 56.226 +% 56.227 +% Usenix titles are in 14-point bold type, with no date, and with no 56.228 +% change in the empty page headers. The author section is 56.229 +% 12 point roman and italic: see below. 56.230 +% 56.231 +\def\@maketitle{% 56.232 + \newpage 56.233 + \null 56.234 +% \vskip 3ex% 56.235 + \begin{center}% 56.236 +% \let \footnote \thanks 56.237 + {\Large \bf \@title \par}% % use 14 pt bold 56.238 +% \vskip 2ex% 56.239 + {\large 56.240 +% \lineskip .5ex% 56.241 +% \begin{tabular}[t]{c}% 56.242 +% \@author 56.243 +% \end{tabular}\par 56.244 + }% 56.245 + \ifworkingdraft 56.246 + \vskip 0.5ex 56.247 + \textbf{Draft of \@draftdate} 56.248 + \vskip 0.5ex 56.249 + \fi 56.250 + \ifwebversion 56.251 + \vskip 0.5ex 56.252 + \textit{Authors and affiliation elided for review.} 56.253 + \vskip 0.5ex 56.254 + \fi 56.255 + \end{center}% 56.256 + \par 56.257 +% \vskip 2ex 56.258 +} 56.259 + 56.260 +% 56.261 +% The author section 56.262 +% should have names in Roman, address in 56.263 +% italic, e-mail/http in typewriter. 56.264 +% This is enforced by use of these macros 56.265 +% 56.266 +\def\authname#1{{#1}\\} 56.267 +\def\authaddr#1{\itshape{#1}\\} 56.268 +\def\authurl#1{{\normalsize #1}\\} 56.269 + 56.270 +% 56.271 +% The abstract is preceded by a 12-pt bold centered heading 56.272 +% 56.273 +\def\abstract{\begin{center}% 56.274 + {\large\bf \abstractname\vspace{-.5ex}\vspace{\z@}}% 56.275 + \end{center}} 56.276 +\def\endabstract{} 56.277 + 56.278 +% 56.279 +% Main section titles are 12-pt bold. Lower divisions can 56.280 +% be same size or smaller: we choose same. 56.281 +% Main section leading is tight. Subsection leading is even 56.282 +% slightly tighter. All lower divisions are formatted like subsections. 56.283 +% 56.284 +\newcommand\@sectionfont{\reset@font\large\bf} 56.285 +\newlength\@sectionaboveskip 56.286 +\setlength\@sectionaboveskip{-0.7\baselineskip 56.287 + plus -0.1\baselineskip 56.288 + minus -0.1\baselineskip} 56.289 +\newlength\@sectionbelowskip 56.290 +\setlength\@sectionbelowskip{0.3\baselineskip 56.291 + plus 0.1\baselineskip} 56.292 +\newlength\@subsectionaboveskip 56.293 +\setlength\@subsectionaboveskip{-0.5\baselineskip 56.294 + plus -0.1\baselineskip} 56.295 +\renewcommand\section{\@startsection {section}{1}{\z@}% 56.296 + {\@sectionaboveskip}{\@sectionbelowskip}{\@sectionfont}} 56.297 +\newcommand\@gensubsection[2]{\@startsection {#1}{#2}{\z@}% 56.298 + {\@subsectionaboveskip}{\@sectionbelowskip}{\@sectionfont}} 56.299 +\renewcommand\subsection{\@gensubsection{subsection}{2}} 56.300 +\renewcommand\subsubsection{\@gensubsection{subsubsection}{3}} 56.301 +%\renewcommand\paragraph{\@gensubsection{paragraph}{4}} 56.302 +%\renewcommand\subparagraph{\@gensubsection{subparagaph}{5}} 56.303 +\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}% 56.304 + {1.25ex \@plus 0.2ex \@minus 0.2ex}% 56.305 + {-1.0em}% 56.306 + {\normalfont\normalsize\bfseries}} 56.307 +\renewcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}% 56.308 + {1.25ex \@plus 0.2ex \@minus 0.2ex}% 56.309 + {-1.0em}% 56.310 + {\normalfont\normalsize\bfseries}} 56.311 + 56.312 +% List items need to be tightened up. 56.313 +% There must be a better way than copying 56.314 +% the definitions to modify the list environment... 56.315 +\def\@itemspacings{\listparindent=\parindent 56.316 + \parsep=0pt\topsep=0.3\baselineskip\partopsep=0pt\itemsep=0pt} 56.317 +% now make envs use itemspacings 56.318 +\def\itemize{% 56.319 + \ifnum \@itemdepth >\thr@@\@toodeep\else 56.320 + \advance\@itemdepth\@ne 56.321 + \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% 56.322 + \expandafter 56.323 + \list 56.324 + \csname\@itemitem\endcsname 56.325 + {\@itemspacings\def\makelabel##1{\hss\llap{##1}}}% 56.326 + \fi} 56.327 +\def\enumerate{% 56.328 + \ifnum \@enumdepth >\thr@@\@toodeep\else 56.329 + \advance\@enumdepth\@ne 56.330 + \edef\@enumctr{enum\romannumeral\the\@enumdepth}% 56.331 + \expandafter 56.332 + \list 56.333 + \csname label\@enumctr\endcsname 56.334 + {\@itemspacings\usecounter\@enumctr\def\makelabel##1{\hss\llap{##1}}}% 56.335 + \fi} 56.336 +\def\description{% 56.337 + \list{}{\labelwidth\z@ \itemindent-\leftmargin 56.338 + \@itemspacings\let\makelabel\descriptionlabel}} 56.339 + 56.340 +% Bibliography items need to be tightened up. 56.341 +% Again, there must be a better way than copying 56.342 +% the definitions to modify the list environment... 56.343 +\def\thebibliography#1% 56.344 + {\section*{\refname}% 56.345 + \@mkboth{\MakeUppercase\refname}{\MakeUppercase\refname}% 56.346 + \list{\@biblabel{\@arabic\c@enumiv}}% 56.347 + {\settowidth\labelwidth{\@biblabel{#1}}% 56.348 + \leftmargin\labelwidth 56.349 + \advance\leftmargin\labelsep 56.350 + \@openbib@code 56.351 + \usecounter{enumiv}% 56.352 + \let\p@enumiv\@empty 56.353 + \renewcommand\theenumiv{\@arabic\c@enumiv}% 56.354 + \parsep=0pt}% pack entries 56.355 + \sloppy 56.356 + \hbadness=8000% mostly don't whine about bibliography fmt 56.357 + \clubpenalty=4000% 56.358 + \@clubpenalty=\clubpenalty 56.359 + \widowpenalty=4000% 56.360 + \sfcode`\.\@m} 56.361 + 56.362 +% Floating bodies need to be tightened up. 56.363 +\setlength\textfloatsep{14pt plus 2pt} 56.364 +\setlength\dbltextfloatsep{\textfloatsep} 56.365 +\setlength\intextsep{0.8\textfloatsep} 56.366 +\setlength\abovecaptionskip{8pt minus 2pt}
57.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 57.2 +++ b/0__Papers/PRT/PRT__formal_def/helpers/usetex-v1.cls Sat Aug 03 19:24:22 2013 -0700 57.3 @@ -0,0 +1,357 @@ 57.4 +\NeedsTeXFormat{LaTeX2e} 57.5 +\ProvidesClass{usetex-v1}[2002/10/31 v1.2 usetex Usenix article class] 57.6 + 57.7 +% usetex-v1.cls - to be used with LaTeX2e for Usenix articles 57.8 +% 57.9 +% To use this style file, do this: 57.10 +% 57.11 +% \documentclass{usetex-v1} 57.12 +% 57.13 +% The following definitions are modifications of standard article.cls 57.14 +% definitions, arranged to do a better job of matching the Usenix 57.15 +% guidelines. and make for convenient Usenix paper writing 57.16 +% 57.17 +% Choose the appropriate option: 57.18 +% 57.19 +% 1. workingdraft: 57.20 +% 57.21 +% For initial submission and shepherding. Features prominent 57.22 +% date, notice of draft status, page numbers, and annotation 57.23 +% facilities. 57.24 +% 57.25 +% 2. proof: 57.26 +% 57.27 +% A galley proof identical to the final copy except for page 57.28 +% numbering and proof date on the bottom. Annotations are 57.29 +% removed. 57.30 +% 57.31 +% 3. webversion: 57.32 +% 57.33 +% A web-publishable version, uses \docstatus{} to indicate 57.34 +% publication information (where and when paper was published), 57.35 +% and page numbers. 57.36 +% 57.37 +% 4. finalversion: 57.38 +% 57.39 +% The final camera-ready-copy (CRC) version of the paper. 57.40 +% Published in conference proceedings. This doesn't include 57.41 +% page numbers, annotations, or draft status (Usenix adds 57.42 +% headers, footers, and page numbers onto the CRC). 57.43 +% 57.44 +% If several are used, the last one in this list wins 57.45 +% 57.46 + 57.47 +% 57.48 +% In addition, the option "endnotes" permits the use of the 57.49 +% otherwise-disabled, Usenix-deprecated footnote{} command in 57.50 +% documents. In this case, be sure to include a 57.51 +% \makeendnotes command at the end of your document or 57.52 +% the endnotes will not actually appear. 57.53 +% 57.54 + 57.55 +\newif\if@draftcopy \newif\ifworkingdraft 57.56 +\DeclareOption{workingdraft}{\workingdrafttrue\@draftcopytrue} 57.57 +\newif\ifproof \DeclareOption{proof}{\prooftrue\@draftcopytrue} 57.58 +\newif\ifwebversion 57.59 +\DeclareOption{webversion}{\prooftrue\webversiontrue\@draftcopytrue} 57.60 +\DeclareOption{finalversion}{} 57.61 +\newif\ifhasendnotes 57.62 +\DeclareOption{endnotes}{\hasendnotestrue} 57.63 + 57.64 +% pass all other options to the article class 57.65 +\DeclareOption*{% 57.66 + \PassOptionsToClass{\CurrentOption}{article}% 57.67 +} 57.68 + 57.69 +% actually process the options 57.70 +\ProcessOptions 57.71 + 57.72 +% usetex is based on article 57.73 +\LoadClass[twocolumn]{article} 57.74 + 57.75 +% Footnotes are not currently allowed, but 57.76 +% endnotes (while a bad idea) are. 57.77 +\ifhasendnotes 57.78 + \RequirePackage{endnotes} 57.79 +\fi 57.80 + 57.81 +% save any provided document status information 57.82 +\def\@docstatus{} 57.83 +\def\docstatus#1{\gdef\@docstatus{#1}} 57.84 + 57.85 +\ifworkingdraft 57.86 + 57.87 + % formatting helper for draft notes 57.88 + \newcommand{\@noteleader[1]}{% 57.89 + {\marginpar{\framebox{\scriptsize\textbf{#1}}}}% 57.90 + \bfseries\itshape 57.91 + } 57.92 + 57.93 + % put a small anonymous editing note in the draft copy 57.94 + \newcommand{\edannote}[1]{{\@noteleader[note] (#1)}} 57.95 + 57.96 + % put a small attributed editing note in the draft copy 57.97 + \newcommand{\edatnote}[2]{{\@noteleader[#1] #2}} 57.98 + 57.99 + % put an attributed editing note paragraph in the draft copy 57.100 + \newenvironment{ednote}[1] 57.101 + {\newcommand{\who}{#1}\@noteleader[\who]} 57.102 + 57.103 + % mark a spot where work has been left off for later 57.104 + \newcommand{\HERE}{% 57.105 + {\mbox{}\marginpar{\framebox{\textbf{here}}}}{\bf\ldots}} 57.106 + 57.107 +\else 57.108 + 57.109 + % dummy versions of editing commands to produce warnings 57.110 + 57.111 + \newcommand{\edannote}[1]{\@latex@warning 57.112 + {Leftover edannote command in final version ignored}} 57.113 + 57.114 + \newcommand{\edatnote}[1]{\@latex@warning 57.115 + {Leftover edatnote command in final version ignored}} 57.116 + 57.117 + \newsavebox{\@discard} 57.118 + \newenvironment{ednote}[1]{\@latex@warning 57.119 + {Leftover ednote environment in final version ignored}% 57.120 + \begin{lrbox}{\@discard}}{\end{lrbox}} 57.121 + 57.122 + \newcommand{\HERE}{\@latex@warning 57.123 + {Leftover HERE command in final version ignored}} 57.124 + 57.125 +\fi 57.126 + 57.127 +% set up the footers appropriately 57.128 +\def\@setfoot{% 57.129 + \ifwebversion 57.130 + % webversions get whatever status the author says 57.131 + \gdef\@evenfoot{\@docstatus \hfil \thepage}% 57.132 + \else 57.133 + % all other drafts get the standard draft footer 57.134 + \gdef\@evenfoot{\textbf{Draft:} \@draftdate\hfil \textbf{Page:} \thepage}% 57.135 + \fi 57.136 + \gdef\@oddfoot{\@evenfoot}% 57.137 +} 57.138 + 57.139 +% 57.140 +% Usenix wants no page numbers for submitted papers, so that 57.141 +% they can number them themselves. Drafts should have 57.142 +% numbered pages, so they can be edited. 57.143 +% 57.144 +\if@draftcopy 57.145 + % Compute a date and time for the draft for use 57.146 + % either in \@setfoot (proof) or in \maketitle (workingdraft) 57.147 + % 57.148 + % Time code adapted from custom-bib/makebst.tex 57.149 + % Copyright 1993-1999 Patrick W Daly 57.150 + % Max-Planck-Institut f\"ur Aeronomie 57.151 + % E-mail: daly@linmp.mpg.de 57.152 + \newcount\hour 57.153 + \hour=\time 57.154 + \divide\hour by 60 57.155 + \newcount\minute 57.156 + \minute=\hour 57.157 + \multiply\minute by 60 57.158 + \advance\minute by -\time 57.159 + \multiply\minute by -1 57.160 + \newcommand{\@draftdate} 57.161 + {{\the\year/\/\two@digits{\the\month}/\/\two@digits{\the\day}% 57.162 + ~\two@digits{\the\hour}:\two@digits{\the\minute}}} 57.163 + \pagestyle{plain} 57.164 + \@setfoot 57.165 +\else 57.166 + \pagestyle{empty} 57.167 +\fi 57.168 + 57.169 +% Times-Roman font is nice if you can get it (requires NFSS, 57.170 +% which is in latex2e). 57.171 +\usepackage{times} 57.172 + 57.173 +% endnote support, as described at 57.174 +% http://www.lyx.org/help/footnotes.php 57.175 +\ifhasendnotes 57.176 + \typeout 57.177 + {Warning: endnotes support is deprecated (see documentation for details)} 57.178 + \let\footnote=\endnote 57.179 + \def\enoteformat{\rightskip\z@ \leftskip\z@ 57.180 + \parindent=0pt\parskip=\baselineskip 57.181 + \@theenmark. } 57.182 + \newcommand{\makeendnotes}{ 57.183 + \begingroup 57.184 + \def\enotesize{\normalsize} 57.185 + \theendnotes 57.186 + \endgroup 57.187 + } 57.188 +\else 57.189 + \long\gdef\footnote{\@latex@error 57.190 + {Deprecated footnote command (see documentation for details)}} 57.191 + \long\gdef\endnote{\@latex@error 57.192 + {Deprecated endnote command (see documentation for details)}} 57.193 +\fi 57.194 + 57.195 +% 57.196 +% Usenix margins 57.197 +% Gives active areas of 6.45" x 9.0" 57.198 +% 57.199 +\setlength{\textheight}{9.0in} 57.200 +\setlength{\columnsep}{0.25in} 57.201 +\setlength{\textwidth}{6.45in} 57.202 +%\setlength{\footskip}{0.0in} 57.203 +%\setlength{\footheight}{0.0in} 57.204 +\setlength{\topmargin}{0.0in} 57.205 +\setlength{\headheight}{0.0in} 57.206 +\setlength{\headsep}{0.0in} 57.207 +\setlength{\evensidemargin}{0.0in} 57.208 +\setlength{\oddsidemargin}{0.0in} 57.209 +\setlength{\marginparsep}{1.5em} 57.210 +\setlength{\marginparwidth}{0.35in} 57.211 + 57.212 +% The standard maketitle insists on 57.213 +% messing with the style of the first page. 57.214 +% Thus, we will wrap maketitle with code to put 57.215 +% things right again. 57.216 +\let \save@maketitle=\maketitle 57.217 +\def\maketitle{ 57.218 + \save@maketitle 57.219 + \if@draftcopy 57.220 + \@specialpagefalse 57.221 + \else 57.222 + \thispagestyle{empty} 57.223 + \fi 57.224 +} 57.225 + 57.226 +% 57.227 +% Usenix titles are in 14-point bold type, with no date, and with no 57.228 +% change in the empty page headers. The author section is 57.229 +% 12 point roman and italic: see below. 57.230 +% 57.231 +\def\@maketitle{% 57.232 + \newpage 57.233 + \null 57.234 + \vskip 3ex% 57.235 + \begin{center}% 57.236 + \let \footnote \thanks 57.237 + {\Large \bf \@title \par}% % use 14 pt bold 57.238 + \vskip 2ex% 57.239 + {\large 57.240 + \lineskip .5ex% 57.241 + \begin{tabular}[t]{c}% 57.242 + \@author 57.243 + \end{tabular}\par}% 57.244 + \ifworkingdraft 57.245 + \vskip 3ex \textbf{Draft of \@draftdate} \vskip 3ex 57.246 + \fi 57.247 + \ifwebversion 57.248 + \vskip 3ex \textbf{\@docstatus} \vskip 3ex 57.249 + \fi 57.250 + \end{center}% 57.251 + \par 57.252 + \vskip 2ex} 57.253 + 57.254 +% 57.255 +% The author section 57.256 +% should have names in Roman, address in 57.257 +% italic, e-mail/http in typewriter. 57.258 +% This is enforced by use of these macros 57.259 +% 57.260 +\def\authname#1{{#1}\\} 57.261 +\def\authaddr#1{\itshape{#1}\\} 57.262 +\def\authurl#1{{\normalsize #1}\\} 57.263 + 57.264 +% 57.265 +% The abstract is preceded by a 12-pt bold centered heading 57.266 +% 57.267 +\def\abstract{\begin{center}% 57.268 + {\large\bf \abstractname\vspace{-.5ex}\vspace{\z@}}% 57.269 + \end{center}} 57.270 +\def\endabstract{} 57.271 + 57.272 +% 57.273 +% Main section titles are 12-pt bold. Lower divisions can 57.274 +% be same size or smaller: we choose same. 57.275 +% Main section leading is tight. Subsection leading is even 57.276 +% slightly tighter. All lower divisions are formatted like subsections. 57.277 +% 57.278 +\newcommand\@sectionfont{\reset@font\large\bf} 57.279 +\newlength\@sectionaboveskip 57.280 +\setlength\@sectionaboveskip{-0.7\baselineskip 57.281 + plus -0.1\baselineskip 57.282 + minus -0.1\baselineskip} 57.283 +\newlength\@sectionbelowskip 57.284 +\setlength\@sectionbelowskip{0.3\baselineskip 57.285 + plus 0.1\baselineskip} 57.286 +\newlength\@subsectionaboveskip 57.287 +\setlength\@subsectionaboveskip{-0.5\baselineskip 57.288 + plus -0.1\baselineskip} 57.289 +\renewcommand\section{\@startsection {section}{1}{\z@}% 57.290 + {\@sectionaboveskip}{\@sectionbelowskip}{\@sectionfont}} 57.291 +\newcommand\@gensubsection[2]{\@startsection {#1}{#2}{\z@}% 57.292 + {\@subsectionaboveskip}{\@sectionbelowskip}{\@sectionfont}} 57.293 +\renewcommand\subsection{\@gensubsection{subsection}{2}} 57.294 +\renewcommand\subsubsection{\@gensubsection{subsubsection}{3}} 57.295 +%\renewcommand\paragraph{\@gensubsection{paragraph}{4}} 57.296 +%\renewcommand\subparagraph{\@gensubsection{subparagaph}{5}} 57.297 +\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}% 57.298 + {1.25ex \@plus 0.2ex \@minus 0.2ex}% 57.299 + {-1.0em}% 57.300 + {\normalfont\normalsize\bfseries}} 57.301 +\renewcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}% 57.302 + {1.25ex \@plus 0.2ex \@minus 0.2ex}% 57.303 + {-1.0em}% 57.304 + {\normalfont\normalsize\bfseries}} 57.305 + 57.306 +% List items need to be tightened up. 57.307 +% There must be a better way than copying 57.308 +% the definitions to modify the list environment... 57.309 +\def\@itemspacings{\listparindent=\parindent 57.310 + \parsep=0pt\topsep=0.3\baselineskip\partopsep=0pt\itemsep=0pt} 57.311 +% now make envs use itemspacings 57.312 +\def\itemize{% 57.313 + \ifnum \@itemdepth >\thr@@\@toodeep\else 57.314 + \advance\@itemdepth\@ne 57.315 + \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% 57.316 + \expandafter 57.317 + \list 57.318 + \csname\@itemitem\endcsname 57.319 + {\@itemspacings\def\makelabel##1{\hss\llap{##1}}}% 57.320 + \fi} 57.321 +\def\enumerate{% 57.322 + \ifnum \@enumdepth >\thr@@\@toodeep\else 57.323 + \advance\@enumdepth\@ne 57.324 + \edef\@enumctr{enum\romannumeral\the\@enumdepth}% 57.325 + \expandafter 57.326 + \list 57.327 + \csname label\@enumctr\endcsname 57.328 + {\@itemspacings\usecounter\@enumctr\def\makelabel##1{\hss\llap{##1}}}% 57.329 + \fi} 57.330 +\def\description{% 57.331 + \list{}{\labelwidth\z@ \itemindent-\leftmargin 57.332 + \@itemspacings\let\makelabel\descriptionlabel}} 57.333 + 57.334 +% Bibliography items need to be tightened up. 57.335 +% Again, there must be a better way than copying 57.336 +% the definitions to modify the list environment... 57.337 +\def\thebibliography#1% 57.338 + {\section*{\refname}% 57.339 + \@mkboth{\MakeUppercase\refname}{\MakeUppercase\refname}% 57.340 + \list{\@biblabel{\@arabic\c@enumiv}}% 57.341 + {\settowidth\labelwidth{\@biblabel{#1}}% 57.342 + \leftmargin\labelwidth 57.343 + \advance\leftmargin\labelsep 57.344 + \@openbib@code 57.345 + \usecounter{enumiv}% 57.346 + \let\p@enumiv\@empty 57.347 + \renewcommand\theenumiv{\@arabic\c@enumiv}% 57.348 + \parsep=0pt}% pack entries 57.349 + \sloppy 57.350 + \hbadness=8000% mostly don't whine about bibliography fmt 57.351 + \clubpenalty=4000% 57.352 + \@clubpenalty=\clubpenalty 57.353 + \widowpenalty=4000% 57.354 + \sfcode`\.\@m} 57.355 + 57.356 +% Floating bodies need to be tightened up. 57.357 +\setlength\textfloatsep{14pt plus 2pt} 57.358 +\setlength\dbltextfloatsep{\textfloatsep} 57.359 +\setlength\intextsep{0.8\textfloatsep} 57.360 +\setlength\abovecaptionskip{8pt minus 2pt}
58.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 58.2 +++ b/0__Papers/PRT/PRT__formal_def/latex/.pdf Sat Aug 03 19:24:22 2013 -0700 58.3 @@ -0,0 +1,31 @@ 58.4 +%!PS-Adobe-3.0 EPSF-3.0 58.5 +%%Creator: PDF2EPS - BaKoMa TeX Portable Document Format (PDF) Import Filter. 58.6 +%%Title: ..\figures\Proto-Runtime__mdoules_plus_plugin_plus 58.7 +%%CreationDate: Sat May 04 20:18:38 2013 58.8 +%%LanguageLevel: 3 58.9 +%%DocumentData: Clean7Bit 58.10 +%%BoundingBox: 0 0 612 792 58.11 +%%Rotate: 0 58.12 +%%EndComments 58.13 + 58.14 +%%Error: Can't find image 58.15 + 58.16 +%%Page: 1 1 58.17 +newpath 58.18 +0 0 moveto 0 792 lineto 612 792 lineto 612 0 lineto closepath 58.19 +1 0 0 setrgbcolor stroke 58.20 +0 0 0.5 setrgbcolor 58.21 +/Times-Roman findfont 30 scalefont setfont 58.22 +0 396 moveto 0 90 rmoveto 58.23 +gsave (Filter:) gsave show grestore 120 0 rmoveto (PDF2EPS) show grestore 58.24 +0 -30 rmoveto gsave (File:) gsave show grestore 120 0 rmoveto (../figures/Proto-Runtime__mdoules_plus_plugin_plus) show grestore 58.25 +1 0 0 setrgbcolor 58.26 +0 -30 rmoveto gsave (Error:) gsave show grestore 58.27 + /Times-Roman findfont 24 scalefont setfont 120 0 rmoveto (Can't find image) show grestore 58.28 +0 0.5 0 setrgbcolor 58.29 +0 -60 rmoveto gsave (Hint:) show grestore 58.30 +/Times-Roman findfont 24 scalefont setfont 58.31 +0 -30 rmoveto gsave 20 0 rmoveto (Open the file by Acrobat and then save) show grestore 58.32 +%%EndPage 58.33 +(\nPDF2EPS Error: ../figures/Proto-Runtime__mdoules_plus_plugin_plus - Can't find image\n) print flush 58.34 +%%EndDocument
59.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 59.2 +++ b/0__Papers/PRT/PRT__formal_def/latex/PRT__formal_short.tex Sat Aug 03 19:24:22 2013 -0700 59.3 @@ -0,0 +1,452 @@ 59.4 +%----------------------------------------------------------------------------- 59.5 +% 59.6 +% Template for sigplanconf LaTeX Class 59.7 +% 59.8 +% Name: sigplanconf-template.tex 59.9 +% 59.10 +% Purpose: A template for sigplanconf.cls, which is a LaTeX 2e class 59.11 +% file for SIGPLAN conference proceedings. 59.12 +% 59.13 +% Guide: Refer to "Author's Guide to the ACM SIGPLAN Class," 59.14 +% sigplanconf-guide.pdf 59.15 +% 59.16 +% Author: Paul C. Anagnostopoulos 59.17 +% Windfall Software 59.18 +% 978 371-2316 59.19 +% paul@windfall.com 59.20 +% 59.21 +% Created: 15 February 2005 59.22 +% 59.23 +%----------------------------------------------------------------------------- 59.24 + 59.25 + 59.26 +\documentclass[preprint]{sigplanconf} 59.27 + 59.28 +% The following \documentclass options may be useful: 59.29 +% 59.30 +% 10pt To set in 10-point type instead of 9-point. 59.31 +% 11pt To set in 11-point type instead of 9-point. 59.32 +% authoryear To obtain author/year citation style instead of numeric. 59.33 +\usepackage{amssymb,graphicx,calc,ifthen,subfig,dblfloatfix,fixltx2e} 59.34 + 59.35 + 59.36 +% correct bad hyphenation here 59.37 +\hyphenation{op-tical net-works semi-conduc-tor} 59.38 + 59.39 +\usepackage{wasysym} 59.40 + 59.41 +\begin{document} 59.42 + 59.43 +\bibliographystyle{plain} 59.44 +% 59.45 + 59.46 +\conferenceinfo{WXYZ '05}{date, City.} 59.47 +\copyrightyear{2005} 59.48 +\copyrightdata{[to be supplied]} 59.49 + 59.50 +\titlebanner{banner above paper title} % These are ignored unless 59.51 +\preprintfooter{short description of paper} % 'preprint' option specified. 59.52 + 59.53 + 59.54 +\title{A Proto-Runtime Approach to Domain Specific Languages} 59.55 + 59.56 + 59.57 +\authorinfo{Sean Halle} 59.58 + {Open Source Research Institute, INRIA, 59.59 + and TU Berlin} 59.60 + {seanhalle@opensourceresearchinstitute.org} 59.61 +\authorinfo{Merten Sach} 59.62 + {TU Berlin} 59.63 + {msach@mailbox.tu-berlin.de} 59.64 +\authorinfo{Albert Cohen} 59.65 + {Ecole Normal Supereur, and INRIA} 59.66 + {albert.cohen@inria.fr} 59.67 + 59.68 +\maketitle 59.69 + 59.70 + 59.71 +\begin{abstract} 59.72 + 59.73 +? 59.74 +replace lang-specific with interface, centralize services, minimize effort to create, give language control over hardware assignment.. side benefits: multi-lang, perf-tuning, debugging 59.75 + 59.76 +? 59.77 + 59.78 +Domain Specific Languages that are embedded into a base language have promise to provide productivity, performant-portability and wide adoption for parallel programming. However such languages have too few users to support the large effort required to create them and port them across hardware platforms, resulting in low adoption of the method. 59.79 +To solve this, we introduce a proto-runtime approach, which reduces the effort to create and port domain specific languages. It modularizes the creation of runtime systems and the parallelism constructs they implement, by separating the language-construct and scheduling logic away from the low-level runtime details, including concurrency, memory consistency, and runtime-performance aspects. 59.80 +As a result, new parallel constructs are written using sequential reasoning, and languages can be mixed within 59.81 +the same program. In addition, scheduling of work onto hardware is under language and application control, without interference from an underlying thread package scheduler. This enables higher quality scheduling decisions for higher application performance. 59.82 +We present measurements of the time taken to develop runtimes for new languages, as well as time to re-implement existing ones, which average a few days each. In addition, we measure performance of proto-runtime based implementations going head-to-head with the standard distributions of Cilk, StarSs (OMPSs), and posix threads, showing that the proto-runtime matches or outperforms on large servers in all cases. 59.83 +\end{abstract} 59.84 + 59.85 + 59.86 + 59.87 + 59.88 + 59.89 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 59.90 +\section{Background and Motivation} 59.91 +\label{sec:intro} 59.92 + 59.93 +[Note to reviewers: this paper's style and structure follow the official PPoPP guide to writing style, which is linked to the PPoPP website. We are taking on faith that the approach has been communicated effectively to reviewers and that we won't be penalized for following it's recommended structure and approach.] 59.94 + 59.95 +Programming in the past has been overwhelmingly sequential, with the applications being run on sequential hardware. But the laws of physics have forced the hardware to become parallel, which will force nearly all future programming to become parallel programming. However, the transition from sequential to parallel programming has been slow due to the difficulty of the traditional parallel programming methods. 59.96 + 59.97 +The difficulties with parallel programming fall into three main categories: 1) difficult mental model, 2) extra effort to rewrite the code for each hardware target to get acceptable performance and 3) disruption to existing practices, including steep learning curve, changes to the tools used, and changes in design practices. 59.98 + 59.99 +Many believe that these can be overcome with the use of Domain-Specific Languages []. But such languages have been slow to adopt, we believe due to the cost to create them and to port them across hardware targets. The small number of users of each language, which is specific to a narrow domain, makes this cost impractical. 59.100 + 59.101 +We propose that a method that makes Domain Specific Languages (DSLs) low cost to produce as well as to port across hardware targets will allow them to fulfill their promise, and we introduce what we call a proto-runtime to help towards this goal. 59.102 + 59.103 +The proto-runtime approach is a normal, full, runtime, but with two key pieces replaced by an interface. One piece replaced is the logic of language constructs, and the other is logic for choosing which core to assign work onto. The remaining proto-runtime piece handles the low-level hardware details of the runtime. 59.104 + 59.105 +The decomposition into a proto-runtime plus plugged-in language behaviors modularizes the construction of runtimes. The proto-runtime is one module, which embodies runtime internals, which are hardware oriented and independent of language. The plugged-in portions form the two other modules, which are language specific. The interface between them occurs at a natural boundary, which separates the hardware oriented portion of a runtime from the language oriented portion. 59.106 + 59.107 +We claim the following benefits of the proto-runtime approach, each of which is supported in the indicated section of the paper: 59.108 + 59.109 +\begin{itemize} 59.110 + 59.111 +\item The proto-runtime approach should reliably apply to future languages and hardware. because the patterns underlying it appear to be fundamental and so should hold for future languages and architectures (\S\ref{subsec:TiePoints}). 59.112 + 59.113 +\item The proto-runtime approach modularizes the runtime (\S\ref{sec:Proposal}). 59.114 + 59.115 +%\item The modularization is consistent with patterns that appear to be fundamental to parallel computation and runtimes (\S\ ). 59.116 + 59.117 +\item The modularization cleanly separates runtime internals from the language-specific logic (\S\ref{sec:Proposal} ). 59.118 + 59.119 +\item The modularization gives the language control 59.120 +over timing and placement of executing work (\S\ref{sec:Proposal}). 59.121 + 59.122 +\item The modularization results in reduced time to implement a new language's behavior, and in reduced time to port a language to new hardware (\S\ref{sec:Proposal}). 59.123 + 59.124 +\begin{itemize} 59.125 + 59.126 + 59.127 +\item Part of the time reduction is due to the proto-runtime providing a centralized location for services for all languages to use, so the language doesn't have to provide them separately. Such services include debugging facilities, automated verification, concurrency handling, hardware performance information gathering, and so on (\S\ ). 59.128 + 59.129 +\item Part of the time reduction is due to encapsulation of hardware aspects inside the hardware-oriented module (\S \ref{sec:intro}). 59.130 + 59.131 +\item Part of the time reduction is due to reuse of the performance-tuning effort for runtime internals (\S\ ). 59.132 + 59.133 +\item Part of the time reduction is due to using sequential thinking when implementing the language logic, enabled by the proto-runtime protecting shared internal runtime state and exporting an interface that presents a sequential model (\S\ ). 59.134 + 59.135 + 59.136 +\end{itemize} 59.137 + 59.138 +\item 59.139 + 59.140 +The modularization also selectively exposes hardware aspects relevant to placement of work, giving the language control over placement of work onto the hardware. If the language takes advantage of this, it can result in reduced communication between cores and increased application performance (\S\ ). 59.141 + 59.142 +\begin{itemize} 59.143 + 59.144 +\item Similar control over hardware is not possible when the language is built on top of a package like Posix threads or TBB, which has its own work-to-hardware assignment (\S\ ). 59.145 + 59.146 +\end{itemize} 59.147 + 59.148 +\item Modularization with similar benefits does not appear possible when using a package such as Posix threads or TBB, unless the package itself is modified and then used according to the proto-runtime pattern (\S\ ). 59.149 + 59.150 +\end{itemize} 59.151 + 59.152 +The paper is organized as follows: We first expand on the value of embedded style DSLs (eDSL), and where the effort goes when creating one (\S \ref{sec:DSLHypothesis}). We focus on the role that runtime implementation effort plays in the adoption of eDSLs \S, which motivates the value of the savings provided by the proto-runtime approach. We then move on to the details of the proto-runtime approach (\S ), and tie them to how a runtime is modularized (\S ), covering how each claimed benefit is provided. 59.153 +We then show overhead measurements (\S ) and implementation time measurements (\S ), which indicate that the proto-runtime approach is performance competitive while significantly reducing implementation and porting effort. 59.154 +With that understanding in hand, we then discuss how the approach compares to related work (\S ), and finally, we highlight the main conclusions drawn from the research (\S ). 59.155 + 59.156 + 59.157 + 59.158 + 59.159 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 59.160 +% 59.161 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 59.162 +\section{Background: The eDSL Hypothesis} 59.163 + 59.164 +%[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 59.165 + 59.166 +%[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 59.167 + 59.168 +%[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 59.169 + 59.170 +%[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 59.171 + 59.172 +Domain Specific Languages have been around for a while [], and recently have been suggested as a good approach for parallel programming[][stanford PPL]. 59.173 + 59.174 +In essence, a DSL, or just Domain Language, captures patterns that are common in a particular domain of expertise, such as user interfaces, simulations of physical phenomena, bio-informatics, cosmology, and so on. Each domain has a particular set of mental models, common types of computation, and common kinds of data structures. A DSL captures these common elements in custom syntax. 59.175 + 59.176 + 59.177 +\subsection{Embedding a DSL into a base language} 59.178 + 59.179 +A style of domain language, which we feel has good applicability to parallel software development, is the so-called \textit{embedded} style of DSL (eDSL) [] [metaborg][stanford ppl]. In this variation, a program is written in a mix of a base language plus domain language constructs. The syntax of the two is intermixed. A preprocessing step then translates the domain syntax into the base syntax, and includes calls to the domain language's runtime. 59.180 + 59.181 + 59.182 +For example, use C (or Java) as the base language for an application, and mix-in custom syntax for constructs from a user-interface eDSL. To test the code, the developer modifies the build process to first perform the translation step, then pass the resulting source through the normal C (or Java) compiler. The resulting executable contains calls to a dynamic (or shared) library that becomes linked, at run time, to a runtime implementation that has been tuned to the hardware it is running on. 59.183 + 59.184 + 59.185 +\subsection{Low learning curve, high productivity, and portability} 59.186 +DSLs are generally quick to learn because the domain experts are already familiar with the concepts expressed by the custom syntax, especially for those who are \textit{not} expert programmers. Embedded style DSLs further reduce learning curve because they have relatively few constructs, and require no new development tools nor development procedures. Together, these should meet the goal of a low learning curve for switching to parallel software development. 59.187 + 59.188 +Productivity can be enhanced by a well designed syntax, which can simplify the application code, modularize it, and encapsulate performance aspects inside the language. Simplifying reduces the amount of code and the amount of mental effort. Modularizing separates concerns within the code and isolates aspects, which improves productivity. Encapsulating performance inside the DSL constructs removes them from the application programmer's concerns, which also improves productivity. 59.189 + 59.190 +Perhaps the most important productivity enhancement comes from hiding parallelism aspects inside the custom DSL constructs. The language takes advantage of the domain patterns to present a familar mental model, and then attaches synchronization, work-division, and communication implications to those constructs, without the programmer having to be aware of them. Combining the simplicity, modularization, performance encapsulation, and parallelism hiding, with congruence with the mental model of the domain, together work towards the goal of high productivity. 59.191 + 59.192 +Portability is aided by the encapsulation of performance aspects inside the DSL constructs. This means that the elements of the problem that require large amounts of computation are often pulled into the language, which isolates the application code from hardware performance concerns. Only the language implementation must adapt to new hardware in order to get high performance. Although such isolation cannot always be fully achieved, Domain Languages hold promise for making significant strides towards it. 59.193 + 59.194 +\subsection{Low disruption and easy adoption} 59.195 + 59.196 +Using an eDSL tends to have low disruption because the base language remains the same, along with most of the development tools and practices. 59.197 + Constructs from the eDSL can be mixed into existing sequential code, incrementally replacing the high computation sections, while continuing with the same development practices.\subsection{ Few users means the effort of eDSLs must be low} 59.198 + 59.199 +What appears to be holding eDSLs back from addressing the challenges of parallel programming would be mainly the time, expertise, and cost needed to develop an eDSL. Because the number of users is small, the economic model of the past doesn't apply. For sequential languages, the potential user-base is in the millions, but for a parallel Domain Language, the user base may be only a few hundred developers who will use the language. 59.200 + 59.201 +As such, the effort to create a usable eDSL needs to be reduced to the point that it is viable for that size of user base. 59.202 + 59.203 +The effort to be reduced falls into three categories: 59.204 + 59.205 +\begin{enumerate} 59.206 +\item effort to explore the design and create the eDSL syntax 59.207 +\item effort to create the runtime that embodies the eDSL behavior 59.208 +\item effort to performance tune the eDSL on particular hardware 59.209 +\end{itemize} 59.210 + 59.211 + 59.212 +\subsection{Critical areas of effort in the big picture} 59.213 + 59.214 +Across the industry as a whole, when eDSLs become successful, there will be hundreds of Domain Languages, and likewise hundreds of different hardware platforms that each language must run efficiently on. That multiplicative effect must be reduced in order to make the eDSL approach economically viable. 59.215 + 59.216 +The first category of eDSL effort is creating the front-end translation of custom syntax into the base language. This is a one-time effort that does not repeat when new hardware is added. 59.217 + 59.218 +The effort that has to be expended on each platform is the runtime implementation, which includes hardware-specific low-level tuning, and the tuning of the domain construct implementation. 59.219 + 59.220 +Luckily, hardware platforms cluster into groups with similar performance-related features. This opens the door to an approach that can present a common abstraction for all platforms in a cluster. Examples of clusters include: 59.221 + 59.222 +\begin{itemize} 59.223 +\item shared coherent memory multi-core single-chip machine 59.224 +\item shared coherent memory multi-core multi-chip machine 59.225 +\item independent address space coprocessor (GPU) 59.226 +\item a network of nodes of the above categories 59.227 +\item a machine with a hierarchy of sub-networks 59.228 +\end{itemize} 59.229 + 59.230 + 59.231 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 59.232 +% 59.233 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 59.234 +\section{Our Proposal} \label{sec:Proposal} 59.235 + 59.236 +We propose addressing the runtime effort by defining a modularization of runtimes, as seen in Fig X. The low-level hardware details are collected into one module, which presents a common interface. The language supplies 59.237 +the top two modules, which plug in via the interface. The hardware specific module presents the same interface 59.238 +for all platforms sharing similar performance related features. This module only has to be implement once for a given platform, then reused by the languages. 59.239 + 59.240 +\begin{figure}[ht] 59.241 + \centering 59.242 + \includegraphics[width = 1.5in, height = 1.1in]{../figures/proto-runtime__modules.pdf} 59.243 + \caption{Shows how the proto-runtime approach modularizes the implementation of a runtime. The three pieces are the proto-runtime implementation, an implementation of the language construct behaviors, and an implementation of the portion of scheduling that chooses which work is assigned to which processor. } 59.244 + \label{fig:PR_three_pieces} 59.245 +\end{figure} 59.246 + 59.247 + 59.248 +Thus, a given language doesn't have to re-implement its runtime for every platform. Instead, it has a much lower effort requirement, of implementing for each category. 59.249 + 59.250 +The language effort is further reduced because the language doesn't consider the low-level details of making the runtime itself run fast. It only has to consider the level of hardware feature that is exposed by the interface. This is a higher level of abstraction, which simplifies the task for the language implementer. 59.251 + 59.252 +One additional benefit is giving control to the language, to choose when and where it wishes work to execute. 59.253 +This feature simplifies implementation of languages 59.254 +that have features related to scheduling behavior. 59.255 +It also enables the language implementor to use sophisticated 59.256 +methods for choosing placement of virtual processors 59.257 +(threads) and tasks, which can significantly impact 59.258 +application performance. 59.259 + 59.260 +In this paper, we present work that applies to coherent 59.261 +shared memory machines, both single chip and multiple chip. Extensions beyond this are currently in progress, to address multiple-address-space machines and hierarchical 59.262 +heterogeneous collections of processors, which will appear in future papers. 59.263 + 59.264 +\subsection{Breakdown of the modules} 59.265 + 59.266 +The language is broken into two parts, as seen in Fig 59.267 +X. One is a thin wrapper library that 59.268 +invokes the runtime and the other is a set of modules that are part of the runtime. 59.269 + 59.270 + 59.271 + 59.272 +\begin{figure}[ht] 59.273 + \centering 59.274 + \includegraphics[width = 2.8in, height = 1.1in]{../figures/proto-runtime__modules_lang_breakdown.pdf} 59.275 + \caption{Shows how the code of the language implementation 59.276 + is broken into two pieces. The first is a thin wrapper 59.277 + that invokes the runtime, the other is a dynamic 59.278 + library that plugs into the runtime.} 59.279 + \label{fig:langBreakdown} 59.280 +\end{figure} 59.281 + 59.282 +The runtime itself consists of three modules connected via 59.283 +an interface, as was seen back in Fig X. One encapsulates the low-level hardware details, and presents an interface to the language modules. We call 59.284 +this the \textit{proto-runtime}. 59.285 +It's job is to enforce the interface that the language modules see. 59.286 + 59.287 + 59.288 +The language has two modules, both of which are collected in what we call the \textit{language plugin}. One module encodes the behavior of language 59.289 +constructs, the other module provides logic for choosing which work to execute on 59.290 +which hardware resource. 59.291 + 59.292 +The plugin collects the two language modules into a dynamic library that is implemented, compiled, and distributed separately from any application executables. This is how a non-changing application executable is able to invoke plugin code that can change between machines. The executable contains only symbols of plugin functions, and during the run those are linked to specific functions' implementations. 59.293 + 59.294 +In order to provide such modularization, we rely upon something we call a tie-point as the primitive upon which synchronization constructs are built. The low-level nature of a tie-point places them below the level of constructs such as a mutex. Instead, a mutex is implemented on top of tie-points. This places all parallel constructs on the same level in the software stack, be they complex like the AND-OR parallelism of Prolog, or the wild-card matching 59.295 +channels in coordination languages, or ultra-simple acquire and release mutex constructs. All are implemented in terms of the same tie-point primitives provided by the proto-runtime. 59.296 + 59.297 + 59.298 + 59.299 + 59.300 + 59.301 +\subsection{The origin of tie-points.}\label{subsec:TiePoints} 59.302 + 59.303 + 59.304 +A tie-point relates timelines, so we talk a bit, first, about timelines. A timeline is the primitive in parallelism. If you look at any parallel language, it establishes a number of independent timelines. It then controls which timelines are actively progressing relative to the others. 59.305 + 59.306 +For example, take a thread library. It provides a command to create a thread, and that thread represents an independent timeline. The library also provides the mutex acquire and release commands, which control which of those timelines advance relative to each other. When an acquire executes, it causes the thread to block, which means the associated timeline suspends; it stops 59.307 +making forward progress. The release in a different thread clears the block, which resumes the timeline. That linkage between suspend and resume of different timelines is the control the language exerts over which timelines are actively progressing. 59.308 + 59.309 +To build up to tie-points, we look at the nature of points on 59.310 +a single timeline, by reviewing mutex behavior in detail. We see the timeline shown in Fig X. Thread 1, which is timeline 1, tries to acquire the mutex, M, 59.311 +by executing the acquire command. Timeline 1 stops, at point 1.S, then something external to it happens, and the timeline starts again at point 1.R. The gap between is not seen by the code executed within the thread. Rather, from the code-execution viewpoint, the acquire command is a single command, and hence the gap between 1.S and 1.R collapses to a single point on the timeline. 59.312 + 59.313 + 59.314 +\begin{figure}[ht] 59.315 + \centering 59.316 + \includegraphics[width = 2.8in, height = 0.8in] 59.317 + {../figures/PR__timeline_single.pdf} 59.318 + \caption{The timeline suspends at 1.S and resumes 59.319 + at 1.R. From the viewpoint of the timeline, the gap collapses into a single point.} 59.320 + \label{fig:langBreakdown} 59.321 +\end{figure} 59.322 + 59.323 + 59.324 +Now, a tie-point is seen as the linkage between such collapsed points on 59.325 +two timelines. In Fig X, timeline A is still there, suspends still at 1.S and resumes at 1.R. However, now there is a second timeline, timeline 2B. It executes the release command at point 2.S, which suspends timeline B, performs the behavior of the release command 59.326 +inside the gap, then resumes timeline B at 2.R. The behavior of the release 59.327 +command causes the end of suspend in the first timeline. That causality ties the two collapsed points in the two timelines together. 59.328 + 59.329 + 59.330 +\begin{figure}[ht] 59.331 + \centering 59.332 + \includegraphics[width = 2.8in, height = 1.35in] 59.333 + {../figures/PR__timeline_dual.pdf} 59.334 + \caption{Two timelines with a causal relationship. 59.335 +Activity that takes place during the gap in timeline 59.336 +B causes resume of timeline A. This ties point 2 on 59.337 +timeline B to point 1 on timeline A.} 59.338 + \label{fig:langBreakdown} 59.339 +\end{figure} 59.340 + 59.341 + 59.342 + 59.343 +We call this connection between the collapsed suspensions a tie point. What it provides is a guarantee about visibility of events between the tied timelines. The 59.344 +guarantee makes both agree on the order of events,\textit{ 59.345 +relative to the mutual tied point}. Any operation that executes before the point in the second timeline, 2.S, is visible immediately after the point in the first timeline, 1.R. In addition, nothing 59.346 +in the first timeline happening after the tie-point is visible in the second 59.347 +timeline before the tie-point. 59.348 + 59.349 +Just that guarantee defines it as a half tie-point. A full tie-point adds the dual guarantee from timeline 59.350 +B to A. Namely, for a full tie-point, anything before the tie-point in timeline A is visible in timeline B after the tie-point, 59.351 +and nothing in timeline B after the tie-point is visible in A before the tie-point. 59.352 + 59.353 +A tie-point is the primitive mechanism that the proto-runtime implements. It does not involve any notion of dependency nor constraint semantics. All it provides is the notion that the tied points are the same "instant" for both tied timelines. What that means is that both timelines see events ordered relative to that point in the same way. 59.354 + 59.355 +It is up to the language to supply the behavior that happens inside 59.356 +the gaps. This behavior is what decides which timelines get tied together. It is that decision making, of which timelines to tie together, that implements the 59.357 +semantics of a synchronization construct. 59.358 + 59.359 +A formal treatment of tie-points is beyond the scope of this paper. However, a formal framework has been substantially completed and 59.360 +will be published in a future paper. 59.361 + 59.362 + 59.363 + 59.364 +\subsection{Tie-points within a proto-runtime} 59.365 + 59.366 + In Fig X we didn't say what entity executes the behavior that takes place in the gaps in the timelines. This is what the proto-runtime does. It provides 59.367 +primitives that suspend a timeline and then cause behavior supplied by the language 59.368 +plugin to execute in the gap. This plugin behavior chooses which timelines remain suspended versus which resume execution, or start execution. 59.369 + 59.370 +As such, the plugin behavior that runs in the proto-runtime when one timeline 59.371 +suspends is what chooses another timeline to resume as a consequence. That 59.372 +choice establishes causality between the suspensions of the two timelines, 59.373 +and thus creates the tie between the two collapsed timeline points. The proto-runtime 59.374 +code module provides the suspend and resume primitives, while the running proto-runtime instance 59.375 +executes the plugin behavior. 59.376 + 59.377 +The running proto-runtime instance is also known as the Master, while the application timelines 59.378 +are known as Slaves. The behavior of the language constructs executes within the Master's timeline, while the behavior of application code executes within Slave timelines. 59.379 + 59.380 +\subsection{Formal definition of Tie-Point} 59.381 + 59.382 + 59.383 + 59.384 +\subsection{More about the proto-runtime} 59.385 + 59.386 +The proto-runtime provides the following primitives, for use by language 59.387 +plugins: 59.388 +\begin{itemize} 59.389 +\item create a virtual processor (which has a suspendible timeline) 59.390 +\item create a task (which has an atomic timeline that runs to completion) 59.391 +\item automatically convert a task to a virtual processor, as needed 59.392 +\item trigger choosing which virtual processor or task to begin execution on an offered 59.393 +core 59.394 +\item suspend a timeline, then invoke a function to handle the suspension -- handler executes in the Master, with supplied parameters 59.395 +\item end a timeline 59.396 + 59.397 +\end{itemize} 59.398 + 59.399 +Virtual processors and tasks, both, have associated timelines. The reason for having both is a practical one, as tasks are simpler, with less overhead, 59.400 +and many languages have the semantics of short, atomic, units of work that 59.401 +are not intended to suspend. Thus, tasks are treated differently inside the 59.402 +proto-runtime, and incur less overhead to create and run. 59.403 + 59.404 +A special feature of the proto-runtime is that if a task happens to execute 59.405 +a language command that causes suspension, then the proto-runtime automatically 59.406 +converts that task to a virtual processor. This helps support the mixing of different 59.407 +languages within the same program. 59.408 + 59.409 +The proto-runtime involves the language into the process of choosing which core a given task 59.410 +or virtual processor executes on. The proto-runtime maintains control, but offers free cores to the plugin, which responds by then assigning a task or virtual processor to the core. The proto-runtime just offers, it is up to the language to decide what work that core should receive at that point in time. 59.411 + 59.412 +The proto-runtime provides a mechanism for communicating information from the application code to the plugin function that was invoked to handle suspension. For example, the identity of a particular mutex a thread wishes to acquire 59.413 +can be communicated from the wrapper library to the plugin. 59.414 + 59.415 + 59.416 +Because the proto-runtime tracks all the timelines, the end of a timeline has to be explicitly stated in the application code, by calling a wrapper library function. That then invokes the proto-runtime primitive that informs the proto-runtime instance. The proto-runtime performs internal bookkeeping related to the ending of the timeline, and notes that the core is now free and offers it to the plugin's Assigner function. 59.417 + 59.418 + 59.419 + 59.420 + 59.421 + 59.422 + 59.423 +\subsection{What happens at different times within the 59.424 +big picture} 59.425 + 59.426 +To get a handle on the big picture, we describe three different paths through time: 59.427 +one for development of proto-runtime code, one for 59.428 +development of language implementation, and one for 59.429 +application development. 59.430 + 59.431 +The proto-runtime code is developed separately from 59.432 +both language and application code, and packaged as a dynamic library. This library has multiple implementations. Each kind of hardware platform has a proto-runtime implemented specifically for it, and is tuned for low overhead on that hardware. The administrator of a particular machine chooses the proto-runtime implementation best suited to that hardware, and installs that. 59.433 + 59.434 +The language code is likewise developed separately from both proto-runtime and application code. Although multiple versions of a language may be implemented, there are significantly fewer versions than the number of proto-runtime versions. That is because most of the hardware details are abstracted away by the proto-runtime interface. 59.435 + 59.436 +However, the interface does expose hardware features related to placement of work onto cores, so some variations may exist for the same interface. Again, the administrator chooses which language implementation best suits their machine and installs the corresponding dynamic library. 59.437 + 59.438 +The wrapper library, however, is not 59.439 +installed on the machine where code runs. Rather, it 59.440 +is only used during development of an application, 59.441 +and remains independent of hardware. 59.442 + 59.443 +The application, ideally, is developed only once. It makes calls to the wrapper library, which in turn invokes the dynamic libraries of the language and proto-runtime. 59.444 +When an application is executed, the loader binds the 59.445 +dynamic libraries, connecting them to the application. 59.446 + In this way, a single, 59.447 +unchanging, executable gains access to machine-specific implementations of language and proto-runtime. 59.448 + 59.449 +However, the success of the compile-once approach has 59.450 +limits in practice. Each machine's characteristics determine the size of unit of work that gives the best performance. When too small, overhead in the runtime system required to create the work, manage constraints, and perform assignment becomes larger than the work 59.451 +itself. When units become too large, not enough units exist to keep all the cores busy. Thankfully, the range between is large enough, for most applications, that neither limit is hit, on most machines. As machines evolve, though, this happy circumstance is likely to change, necessitating recompiling and possibly hand modifying the code. 59.452 + 59.453 +\end{document} 59.454 + 59.455 +
60.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 60.2 +++ b/0__Papers/PRT/PRT__formal_def/latex/PRT__full_w_Farhad_derived_formal_def.tex Sat Aug 03 19:24:22 2013 -0700 60.3 @@ -0,0 +1,2151 @@ 60.4 +%----------------------------------------------------------------------------- 60.5 +% 60.6 +% Template for sigplanconf LaTeX Class 60.7 +% 60.8 +% Name: sigplanconf-template.tex 60.9 +% 60.10 +% Purpose: A template for sigplanconf.cls, which is a LaTeX 2e class 60.11 +% file for SIGPLAN conference proceedings. 60.12 +% 60.13 +% Guide: Refer to "Author's Guide to the ACM SIGPLAN Class," 60.14 +% sigplanconf-guide.pdf 60.15 +% 60.16 +% Author: Paul C. Anagnostopoulos 60.17 +% Windfall Software 60.18 +% 978 371-2316 60.19 +% paul@windfall.com 60.20 +% 60.21 +% Created: 15 February 2005 60.22 +% 60.23 +%----------------------------------------------------------------------------- 60.24 + 60.25 + 60.26 +\documentclass[preprint]{sigplanconf} 60.27 + 60.28 +% The following \documentclass options may be useful: 60.29 +% 60.30 +% 10pt To set in 10-point type instead of 9-point. 60.31 +% 11pt To set in 11-point type instead of 9-point. 60.32 +% authoryear To obtain author/year citation style instead of numeric. 60.33 +\usepackage{amssymb,graphicx,calc,ifthen,subfig,dblfloatfix,fixltx2e} 60.34 + 60.35 + 60.36 +% correct bad hyphenation here 60.37 +\hyphenation{op-tical net-works semi-conduc-tor} 60.38 + 60.39 +\usepackage{wasysym} 60.40 +\usepackage{amstext} 60.41 + 60.42 +\begin{document} 60.43 + 60.44 +\bibliographystyle{plain} 60.45 +% 60.46 + 60.47 +\conferenceinfo{WXYZ '05}{date, City.} 60.48 +\copyrightyear{2005} 60.49 +\copyrightdata{[to be supplied]} 60.50 + 60.51 +\titlebanner{banner above paper title} % These are ignored unless 60.52 +\preprintfooter{short description of paper} % 'preprint' option specified. 60.53 + 60.54 + 60.55 +\title{A Proto-Runtime Approach to Domain Specific Languages} 60.56 + 60.57 + 60.58 +\authorinfo{Sean Halle} 60.59 + {Open Source Research Institute, INRIA, 60.60 + and TU Berlin} 60.61 + {seanhalle@opensourceresearchinstitute.org} 60.62 +\authorinfo{Merten Sach} 60.63 + {TU Berlin} 60.64 + {msach@mailbox.tu-berlin.de} 60.65 +\authorinfo{Albert Cohen} 60.66 + {Ecole Normal Supereur, and INRIA} 60.67 + {albert.cohen@inria.fr} 60.68 + 60.69 +\maketitle 60.70 + 60.71 + 60.72 +\begin{abstract} 60.73 + 60.74 +? 60.75 +replace lang-specific with interface, centralize services, minimize effort to create, give language control over hardware assignment.. side benefits: multi-lang, perf-tuning, debugging 60.76 + 60.77 +? 60.78 + 60.79 +Domain Specific Languages that are embedded into a base language have promise to provide productivity, performant-portability and wide adoption for parallel programming. However such languages have too few users to support the large effort required to create them and port them across hardware platforms, resulting in low adoption of the method. 60.80 +To solve this, we introduce a proto-runtime approach, which reduces the effort to create and port domain specific languages. It modularizes the creation of runtime systems and the parallelism constructs they implement, by separating the language-construct and scheduling logic away from the low-level runtime details, including concurrency, memory consistency, and runtime-performance aspects. 60.81 +As a result, new parallel constructs are written using sequential reasoning, and multiple languages can be mixed within 60.82 +the same program. In addition, scheduling of work onto hardware is under language and application control, without interference from an underlying thread package scheduler. This enables higher quality scheduling decisions for higher application performance. 60.83 +We present measurements of the time taken to develop runtimes for new languages, as well as time to re-implement existing ones, which average a few days each. In addition, we measure performance of proto-runtime based implementations going head-to-head with the standard distributions of Cilk, StarSs (OMPSs), and posix threads, showing that the proto-runtime matches or outperforms on large servers in all cases. 60.84 +\end{abstract} 60.85 + 60.86 + 60.87 + 60.88 + 60.89 + 60.90 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 60.91 +\section{Background and Motivation} 60.92 +\label{sec:intro} 60.93 + 60.94 +[Note to reviewers: this paper's style and structure follow the official PPoPP guide to writing style, which is linked to the PPoPP website. We are taking on faith that the approach has been communicated effectively to reviewers and that we won't be penalized for following it's recommended structure and approach.] 60.95 + 60.96 +Programming in the past has been overwhelmingly sequential, with the applications being run on sequential hardware. But the laws of physics have forced the hardware to become parallel, which will force nearly all future programming to become parallel programming. However, the transition from sequential to parallel programming has been slow due to the difficulty of the traditional parallel programming methods. 60.97 + 60.98 +The difficulties with parallel programming fall into three main categories: 1) difficult mental model, 2) extra effort to rewrite the code for each hardware target to get acceptable performance and 3) disruption to existing practices, including steep learning curve, changes to the tools used, and changes in design practices. 60.99 + 60.100 +Many believe that these can be overcome with the use of Domain-Specific Languages []. But such languages have been slow to adopt, we believe due to the cost to create them and to port them across hardware targets. The small number of users of each language, which is specific to a narrow domain, makes this cost impractical. 60.101 + 60.102 +We propose that a method that makes Domain Specific Languages (DSLs) low cost to produce as well as to port across hardware targets will allow them to fulfill their promise, and we introduce what we call a proto-runtime to help towards this goal. 60.103 + 60.104 +The proto-runtime approach is a normal, full, runtime, but with two key pieces replaced by an interface. One piece replaced is the logic of language constructs, and the other is logic for choosing which core to assign work onto. The remaining proto-runtime piece handles the low-level hardware details of the runtime. 60.105 + 60.106 +The decomposition into a proto-runtime plus plugged-in language behaviors modularizes the construction of runtimes. The proto-runtime is one module, which embodies runtime internals, which are hardware oriented and independent of language. The plugged-in portions form the two other modules, which are language specific. The interface between them occurs at a natural boundary, which separates the hardware oriented portion of a runtime from the language oriented portion. 60.107 + 60.108 +We claim the following benefits of the proto-runtime approach, each of which is supported in the indicated section of the paper: 60.109 + 60.110 +\begin{itemize} 60.111 + 60.112 +\item The proto-runtime approach should reliably apply to future languages and hardware. because the patterns underlying it appear to be fundamental and so should hold for future languages and architectures (\S\ref{subsec:TiePoints}, 60.113 +\S\ref{subsec:Example}). 60.114 + 60.115 +\item The proto-runtime approach modularizes the runtime (\S\ref{sec:Proposal}). 60.116 + 60.117 +%\item The modularization is consistent with patterns that appear to be fundamental to parallel computation and runtimes (\S\ ). 60.118 + 60.119 +\item The modularization cleanly separates runtime internals from the language-specific logic (\S\ref{sec:Proposal}, 60.120 +\S\ref{subsec:Example}). 60.121 + 60.122 +\item The modularization gives the language control 60.123 +over timing and placement of executing work (\S\ref{sec:Proposal}). 60.124 + 60.125 +\item The modularization results in reduced time to implement a new language's behavior, and in reduced time to port a language to new hardware (\S\ref{sec:Proposal}, 60.126 +\S\ref{subsec:ImplTimeMeas}). 60.127 + 60.128 +\begin{itemize} 60.129 + 60.130 + 60.131 +\item Part of the time reduction is due to the proto-runtime providing a centralized location for services for all languages to use, so the language doesn't have to provide them separately. Such services include debugging facilities, automated verification, concurrency handling, hardware performance information gathering, and so on (\S\ ). 60.132 + 60.133 +\item Part of the time reduction is due to encapsulation of hardware aspects inside the hardware-oriented module (\S \ref{sec:intro}). 60.134 + 60.135 +\item Part of the time reduction is due to reuse of the performance-tuning effort for runtime internals (\S ). 60.136 + 60.137 +\item Part of the time reduction is due to using sequential thinking when implementing the language logic, enabled by the proto-runtime protecting shared internal runtime state and exporting an interface that presents a sequential model (\S\ref{subsec:Example}). 60.138 + 60.139 + 60.140 +\end{itemize} 60.141 + 60.142 +\item 60.143 + 60.144 +The modularization also selectively exposes hardware aspects relevant to placement of work, giving the language control over placement of work onto the hardware. If the language takes advantage of this, it can result in reduced communication between cores and increased application performance (\S\ ). 60.145 + 60.146 +\begin{itemize} 60.147 + 60.148 +\item Similar control over hardware is not possible when the language is built on top of a package like Posix threads or TBB, which has its own work-to-hardware assignment (\S\ref{sec:Related}). 60.149 + 60.150 +\end{itemize} 60.151 + 60.152 +\item Modularization with similar benefits does not appear possible when using a package such as Posix threads or TBB, unless the package itself is modified and then used according to the proto-runtime pattern (\S\ref{sec:Related}). 60.153 + 60.154 +\end{itemize} 60.155 + 60.156 +The paper is organized as follows: We first expand on the value of embedded style DSLs (eDSL), and where the effort goes when creating one (\S\ref{subsec:eDSLEffort}). We focus on the role that runtime implementation effort plays in the adoption of eDSLs, which motivates the value of the savings provided by the proto-runtime approach. We then move on to the details of the proto-runtime approach (\S\ref{sec:Proposal}), and tie them to how a runtime is modularized (\S\ref{subsec:Modules}), covering how each claimed benefit is provided. 60.157 +We then show overhead measurements (\S\ref{subsec:OverheadMeas}) and implementation time measurements (\S\ref{subsec:ImplTimeMeas} ), which indicate that the proto-runtime approach is performance competitive while significantly reducing implementation and porting effort. 60.158 +With that understanding in hand, we then discuss how the approach compares to related work (\S\ref{sec:Related}), and finally, we highlight the main conclusions drawn from the research (\S\ref{sec:Conclusion}). 60.159 + 60.160 + 60.161 + 60.162 + 60.163 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 60.164 +% 60.165 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 60.166 +\section{Background: The eDSL Hypothesis} 60.167 + 60.168 +%[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 60.169 + 60.170 +%[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 60.171 + 60.172 +%[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 60.173 + 60.174 +%[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 60.175 + 60.176 +Domain Specific Languages have been around for a while [], and recently have been suggested as a good approach for parallel programming[][stanford PPL]. 60.177 + 60.178 +In essence, a DSL, or just Domain Language, captures patterns that are common in a particular domain of expertise, such as user interfaces, simulations of physical phenomena, bio-informatics, cosmology, and so on. Each domain has a particular set of mental models, common types of computation, and common kinds of data structures. A DSL captures these common elements in custom syntax. 60.179 + 60.180 + 60.181 +\subsection{Embedding a DSL into a base language} 60.182 + 60.183 +A style of domain language, which we feel has good applicability to parallel software development, is the so-called \textit{embedded} style of DSL (eDSL) [] [metaborg][stanford ppl]. In this variation, a program is written in a mix of a base language plus domain language constructs. The syntax of the two is intermixed. A preprocessing step then translates the domain syntax into the base syntax, and includes calls to the domain language's runtime. 60.184 + 60.185 + 60.186 +For example, use C (or Java) as the base language for an application, and mix-in custom syntax for constructs from a user-interface eDSL. To test the code, the developer modifies the build process to first perform the translation step, then pass the resulting source through the normal C (or Java) compiler. The resulting executable contains calls to a dynamic (or shared) library that becomes linked, at run time, to a runtime implementation that has been tuned to the hardware it is running on. 60.187 + 60.188 + 60.189 +\subsection{Low learning curve, high productivity, and portability} 60.190 +DSLs are generally quick to learn because the domain experts are already familiar with the concepts expressed by the custom syntax, especially for those who are \textit{not} expert programmers. Embedded style DSLs further reduce learning curve because they have relatively few constructs, and require no new development tools nor development procedures. Together, these should meet the goal of a low learning curve for switching to parallel software development. 60.191 + 60.192 +Productivity can be enhanced by a well designed syntax, which can simplify the application code, modularize it, and encapsulate performance aspects inside the language. Simplifying reduces the amount of code and the amount of mental effort. Modularizing separates concerns within the code and isolates aspects, which improves productivity. Encapsulating performance inside the DSL constructs removes them from the application programmer's concerns, which also improves productivity. 60.193 + 60.194 +Perhaps the most important productivity enhancement comes from hiding parallelism aspects inside the custom DSL constructs. The language takes advantage of the domain patterns to present a familar mental model, and then attaches synchronization, work-division, and communication implications to those constructs, without the programmer having to be aware of them. Combining the simplicity, modularization, performance encapsulation, and parallelism hiding, with congruence with the mental model of the domain, together work towards the goal of high productivity. 60.195 + 60.196 +Portability is aided by the encapsulation of performance aspects inside the DSL constructs. This means that the elements of the problem that require large amounts of computation are often pulled into the language, which isolates the application code from hardware performance concerns. Only the language implementation must adapt to new hardware in order to get high performance. Although such isolation cannot always be fully achieved, Domain Languages hold promise for making significant strides towards it. 60.197 + 60.198 +\subsection{Low disruption and easy adoption} 60.199 + 60.200 +Using an eDSL tends to have low disruption because the base language remains the same, along with most of the development tools and practices. 60.201 + Constructs from the eDSL can be mixed into existing sequential code, incrementally replacing the high computation sections, while continuing with the same development practices. 60.202 + 60.203 + \subsection{ Few users means the effort of eDSLs must be low} \label{subsec:eDSLEffort} 60.204 + 60.205 +What appears to be holding eDSLs back from addressing the challenges of parallel programming would be mainly the time, expertise, and cost needed to develop an eDSL. Because the number of users is small, the economic model of the past doesn't apply. For sequential languages, the potential user-base is in the millions, but for a parallel Domain Language, the user base may be only a few hundred developers who will use the language. 60.206 + 60.207 +As such, the effort to create a usable eDSL needs to be reduced to the point that it is viable for that size of user base. 60.208 + 60.209 +The effort to be reduced falls into three categories: 60.210 + 60.211 +\begin{enumerate} 60.212 +\item effort to explore language design and create the eDSL syntax 60.213 +\item effort to create the runtime that produces the eDSL behavior 60.214 +\item effort to performance tune the eDSL on particular hardware 60.215 +\end{itemize} 60.216 + 60.217 + 60.218 +\subsection{Critical areas of effort in the big picture} 60.219 + 60.220 +Across the industry as a whole, when eDSLs become successful, there will be hundreds of Domain Languages, and likewise hundreds of different hardware platforms that each language must run efficiently on. That multiplicative effect must be reduced in order to make the eDSL approach economically viable. 60.221 + 60.222 +The first category of eDSL effort is creating the front-end translation of custom syntax into the base language. This is a one-time effort that does not repeat when new hardware is added. 60.223 + 60.224 +The effort that has to be expended on each platform is the runtime implementation, which includes hardware-specific low-level tuning, and the tuning of the domain construct implementation. 60.225 + 60.226 +Luckily, hardware platforms cluster into groups with similar performance-related features. This opens the door to an approach that can present a common abstraction for all platforms in a cluster. Examples of clusters include: 60.227 + 60.228 +\begin{itemize} 60.229 +\item shared coherent memory multi-core single-chip machine 60.230 +\item shared coherent memory multi-core multi-chip machine 60.231 +\item independent address space coprocessor (GPU) 60.232 +\item a network of nodes of the above categories 60.233 +\item a machine with a hierarchy of sub-networks 60.234 +\end{itemize} 60.235 + 60.236 + 60.237 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 60.238 +% 60.239 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 60.240 +\section{Our Proposal} \label{sec:Proposal} 60.241 + 60.242 +We propose addressing the runtime effort by defining a modularization of runtimes, as seen in Fig X. The low-level hardware details are collected into one module, which presents a common interface. The language supplies 60.243 +the top two modules, which plug in via the interface. The hardware specific module presents the same interface 60.244 +for all platforms sharing similar performance related features. This module only has to be implement once for a given platform, then reused by the languages. 60.245 + 60.246 +\begin{figure}[ht] 60.247 + \centering 60.248 + \includegraphics[width = 1.5in, height = 1.1in]{../figures/proto-runtime__modules.pdf} 60.249 + \caption{Shows how the proto-runtime approach modularizes the implementation of a runtime. The three pieces are the proto-runtime implementation, an implementation of the language construct behaviors, and an implementation of the portion of scheduling that chooses which work is assigned to which processor. } 60.250 + \label{fig:PR_three_pieces} 60.251 +\end{figure} 60.252 + 60.253 + 60.254 +Thus, a given language doesn't have to re-implement its runtime for every platform. Instead, it has a much lower effort requirement, of implementing for each category. 60.255 + 60.256 +The language effort is further reduced because the language doesn't consider the low-level details of making the runtime itself run fast. It only has to consider the level of hardware feature that is exposed by the interface. This is a higher level of abstraction, which simplifies the task for the language implementer. 60.257 + 60.258 +One additional benefit is giving control to the language, to choose when and where it wishes work to execute. 60.259 +This feature simplifies implementation of languages 60.260 +that have features related to scheduling behavior. 60.261 +It also enables the language implementor to use sophisticated 60.262 +methods for choosing placement of virtual processors 60.263 +(threads) and tasks, which can significantly impact 60.264 +application performance. 60.265 + 60.266 +In this paper, we present work that applies to coherent 60.267 +shared memory machines, both single chip and multiple chip. Extensions beyond this are currently in progress, to address multiple-address-space machines and hierarchical 60.268 +heterogeneous collections of processors, which will appear in future papers. 60.269 + 60.270 +\subsection{Breakdown of the modules} \label{subsec:Modules} 60.271 + 60.272 +The language is broken into two parts, as seen in Fig 60.273 +X. One is a thin wrapper library that 60.274 +invokes the runtime and the other is a set of modules that are part of the runtime. 60.275 + 60.276 + 60.277 + 60.278 +\begin{figure}[ht] 60.279 + \centering 60.280 + \includegraphics[width = 2.8in, height = 1.1in]{../figures/proto-runtime__modules_lang_breakdown.pdf} 60.281 + \caption{Shows how the code of the language implementation 60.282 + is broken into two pieces. The first is a thin wrapper 60.283 + that invokes the runtime, the other is a dynamic 60.284 + library that plugs into the runtime.} 60.285 + \label{fig:langBreakdown} 60.286 +\end{figure} 60.287 + 60.288 +The runtime itself consists of three modules connected via 60.289 +an interface, as was seen back in Fig X. One encapsulates the low-level hardware details, and presents an interface to the language modules. We call 60.290 +this the \textit{proto-runtime}. 60.291 +It's job is to enforce the interface that the language modules see. 60.292 + 60.293 + 60.294 +The language has two modules, both of which are collected in what we call the \textit{language plugin}. One module encodes the behavior of language 60.295 +constructs, the other module provides logic for choosing which work to execute on 60.296 +which hardware resource. 60.297 + 60.298 +The plugin collects the two language modules into a dynamic library that is implemented, compiled, and distributed separately from any application executables. This is how a non-changing application executable is able to invoke plugin code that can change between machines. The executable contains only symbols of plugin functions, and during the run those are linked to specific functions' implementations. 60.299 + 60.300 +In order to provide such modularization, we rely upon a model for specifying synchronization constructs that we call the tie-point model. The low-level nature of a tie-point places them below the level of constructs such as a mutex. Instead, a mutex is specified in terms 60.301 +of the primitives in the tie-point model. The proto-runtime 60.302 +then implements the primitives of the tie-point model. 60.303 + 60.304 + This places all parallel constructs on the same level in the software stack, be they complex like the AND-OR parallelism of Prolog, or the wild-card matching 60.305 +channels in coordination languages, or ultra-simple acquire and release mutex constructs. All are implemented in terms of the same tie-point primitives provided by the proto-runtime. 60.306 + 60.307 +We have reached a point in the paper, now, where the order of explanation can take one of two paths: either 60.308 +start with the abstract model of tie-points and explain how this affects the modularization of the runtime, or start with implementation details and work upwards towards the abstract model of tie-points. We have chosen to start with the abstract tie-point model, but the reader is invited to skip to the section after it, which starts with code examples and ties code details to the abstract tie-point model. 60.309 + 60.310 + 60.311 + 60.312 +\section{The tie-point model.}\label{subsec:TiePoints} 60.313 + 60.314 + 60.315 +\subsection{timelines} 60.316 +A tie-point relates timelines, so we talk a bit, first, about timelines. A timeline is the primitive in parallelism. If you look at any parallel language, it involves a number of independent timelines. It then controls which timelines are actively progressing relative to the others. 60.317 + 60.318 +For example, take a thread library, which we consider 60.319 +a parallel language. It provides a command to create a thread, where that thread represents an independent timeline. The library also provides the mutex acquire and release commands, which control which of those timelines advance relative to each other. When an acquire executes, it can cause the thread to block, which means the associated timeline suspends; it stops 60.320 +making forward progress. The release in a different thread clears the block, which resumes the timeline. That linkage between suspend and resume of different timelines is the control the language exerts over which timelines are actively progressing. 60.321 + 60.322 +To build up to tie-points, we look at the nature of points on 60.323 +a single timeline, by reviewing mutex behavior in detail. We see the timeline shown in Fig \ref{fig:singleTimeline}. Thread A, which is timeline A, tries to acquire the mutex, M, 60.324 +by executing the acquire command. Timeline A stops, at point 1.S, then something external to it happens, and the timeline starts again at point 1.R. The gap between is not seen by the code executed within the thread. Rather, from the code-execution viewpoint, the acquire command is a single command, and hence the gap between 1.S and 1.R collapses to a single point on the timeline. 60.325 + 60.326 + 60.327 +\begin{figure}[ht] 60.328 + \centering 60.329 + \includegraphics[width = 2.8in, height = 0.8in] 60.330 + {../figures/PR__timeline_single.pdf} 60.331 + \caption{The timeline suspends at 1.S and resumes 60.332 + at 1.R. From the viewpoint of the timeline, the gap collapses into a single point.} 60.333 + \label{fig:singleTimeline} 60.334 +\end{figure} 60.335 + 60.336 + 60.337 +Now, a tie-point is seen as the linkage between such collapsed points on 60.338 +two timelines. In Fig \ref{fig:dualTimeline}, timeline A is still there, suspends still at 1.S and resumes at 1.R. However, now there is a second timeline, timeline B. It executes the release command at point 2.S, which suspends timeline B, performs the behavior of the release command 60.339 +inside the gap, then resumes timeline B at 2.R. The behavior of the release 60.340 +command causes the end of suspend in the first timeline. That causality ties the two collapsed points in the two timelines together. 60.341 + 60.342 + 60.343 +\begin{figure}[ht] 60.344 + \centering 60.345 + \includegraphics[width = 2.8in, height = 1.35in] 60.346 + {../figures/PR__timeline_dual.pdf} 60.347 + \caption{Two timelines with a causal relationship. 60.348 +Activity that takes place during the gap in timeline 60.349 +B causes resume of timeline A. This ties point 2 on 60.350 +timeline B to point 1 on timeline A.} 60.351 + \label{fig:dualTimeline} 60.352 +\end{figure} 60.353 + 60.354 + 60.355 + 60.356 +We call this connection between the collapsed suspensions a tie-point. What it provides is a guarantee about visibility of events between the tied timelines. The 60.357 +guarantee makes both agree on the order of events,\textit{ 60.358 +relative to the mutual tied point}. 60.359 +The guarantees are what defines a tie-point. 60.360 + 60.361 +Fig \ref{fig:tie-pointGuarantees} shows the ordering guarantees in terms of visibility of operations between 60.362 +the timelines. If these visibility constraints are 60.363 +satisfied, then the timelines share a tie-point. Note that the ordering 60.364 + guarantees are equivalent to the constraints on visibility of operations. Operations that execute in 60.365 +the first timeline before the tie-point must be visible 60.366 +in the second after the tie point, and vice versa. Likewise, operations that execute in one timeline after the tie-point must not be visible in the other timeline before the tie-point. 60.367 + 60.368 + 60.369 + 60.370 +\begin{figure}[ht] 60.371 + \centering 60.372 + \includegraphics[width = 2.8in, height = 1.25in] 60.373 + {../figures/PR__timeline_tie_point_ordering.pdf} 60.374 + \caption{The 60.375 +guarantees that a tie-point enforces. Shows which 60.376 + operations performed on one timeline are visible to the other 60.377 +timeline. These visibilities must be true for a tie-point. 60.378 +Note that all events are divided into two groups, those 60.379 +before the tied points versus those after the tied 60.380 +points. Both timelines see the same before group and 60.381 +the same after group. } 60.382 + \label{fig:tie-pointGuarantees} 60.383 +\end{figure} 60.384 + 60.385 + 60.386 +\subsection{Formal definition of tie-point} 60.387 +In a moment we will show how any and all synchronization constructs 60.388 +can be defined in terms of tie-points. Before getting 60.389 +there, we provide a formal definition of tie-point, 60.390 +which we will then use in showing that all synchronization 60.391 +constructs can be implemented in terms of tie-points. 60.392 + 60.393 +In our formalization, we treat a tie-point as something 60.394 +that exists in the code, and causes what we call an \textit{ordering-point} to 60.395 +arise in every run of the code. We define ordering-point 60.396 +formally, and use that to state the constraints that 60.397 +a tie-point code-instance must enforce. 60.398 + 60.399 + 60.400 +\subsubsection{Lifeline, Timeline, and Projection} 60.401 +We define a formal entity that we call a lifeline, 60.402 +where a timeline is a type of lifeline. 60.403 +We define event-types and specific occurrences of event-types, and show how multiple lifelines can observe the same occurrence. A projection between 60.404 +lifelines is defined as an event initiated upon one lifeline being observed on a different lifeline. The projection is from initiator to observer. 60.405 + 60.406 +\begin{description} 60.407 +\item[event:] 60.408 +\(E \) represents an event, which is something that 60.409 +can be initiated or observed. 60.410 +\item[occurrence:] 60.411 +\(O\in E \times\mathbb{N}\) is the set of occurrences, where each occurrence associates a specific event with a unique identifier. A particular occurrence is denoted by subscripting with the value of the associated 60.412 +integer, for example: \(O_{7}\) 60.413 + 60.414 +\item[clock:] 60.415 +\(t:I\rightarrow\mathbb{R}^{+}\) maps each integer 60.416 +onto a real number, such that \(I_{1}<I_{2}\Rightarrow 60.417 +R_{1}<R_{2}\) . In general, different clocks have no relation to each other, but elements associated with a clock have a sequence defined by the integer 60.418 +sequence of the clock. 60.419 +\item[lifeline:] 60.420 +\(l = <\alpha , t> \) 60.421 + is a lifeline, where \(\alpha\) 60.422 +is a sequence over \(Dom(t)\) and each element of \(\alpha\) is either an initiation of an occurrence, or an observation 60.423 +of one. A \textit{beat} of the lifeline is one tuple, denoted \(l(i)\), while the occurrence associated 60.424 +to the beat is denoted\(\) \(O(l(i)) \) or equivalently \(O(\alpha(i)). \) The real value 60.425 +associated with the beat is denoted \(t(l(i))\). For a given lifeline, not every element of \(t\) must have an associated 60.426 +\(\alpha\), but every \(\alpha\) must have a unique associated 60.427 +\(I\) from the clock \(t\). Note that \(\forall i , t(l(i)) < t(l(i+1))\). At most one beat from one 60.428 +lifeline can initiate an occurrence. However, multiple 60.429 +beats 60.430 +from a given lifeline can observe the same occurrence, 60.431 +including one initiated earlier in the sequence of 60.432 +the lifeline, 60.433 +and multiple lifelines may observe the same occurrence, 60.434 +each multiple times. 60.435 + 60.436 +\item[projection:] 60.437 +Given \(l_{1} = <\alpha , t_{1}> \), \(l_{2} = <\beta , t_{2}> \) then a projection from \(l_{1}\) to \(l_{2}\) 60.438 + is denoted \(l_{1}(i) \uparrow l_{2}(j) \), where \(l_{1}(i) \uparrow l_{2}(j) 60.439 +\equiv O(l_{1}(i)) = O(l_{2}(j))\). 60.440 + This says that the occurrence initiated by the ith beat of the first lifeline is observed by the jth beat 60.441 +of the second lifeline. 60.442 + 60.443 +\item[ordering tuple:] \(OT_{}\) is a tuple consisting 60.444 +of a set of two beats from two different lifelines, which do 60.445 +not participate in projections, plus a set of projections 60.446 +that cross the two beats in the forward direction. 60.447 +Given \(OT =<[l_{1}(x) , l_{2}(y)], [projections]> \) then \(OT\) is an 60.448 +ordering tuple iff \( [projections] \neq0 \forall p(i,j) \in projections \nexists p(i,j) 60.449 +|i<x \wedge j>y\ \) 60.450 +\item[program run:] \(\mathcal{R} \) is a particular set of lifelines. 60.451 +The program run begins with the creation of any lifeline, and 60.452 +ends with the end of all lifelines. 60.453 + 60.454 +\item[equivalent positions in different sequences:] a partial ordering is defined. 60.455 +Given two positions within different sequences, if 60.456 +one or both both can be 60.457 +validly rearranged, by using the partial ordering to 60.458 +define valid rearrangements, so they occupy 60.459 + the same position in their rearranged sequences, then 60.460 +they are equivalent positions. 60.461 + 60.462 +\item[equivalent occurrences:] two occurrences are 60.463 +equivalent if their event instances cannot be distinguished, given the observation 60.464 +measurements of interest. If the observation measurement 60.465 +involves sequences, then the two events must lie at 60.466 +equivalent positions within their respective sequences. 60.467 + 60.468 +\item[equivalent lifelines:] two lifelines whose beats 60.469 +can be paired, such that every beat in one lifeline 60.470 +has an equivalent beat in the other. The beats do 60.471 +not have to occur in the same order in both lifelines. 60.472 +Beats associated to occurrences that are not of interest can be dropped. 60.473 + 60.474 +\item[equivalent program runs:] two runs such that 60.475 +their lifelines can be paired one-to-one, with every lifeline in one paired to an equivalent 60.476 +lifeline in the other. The projections between lifelines 60.477 +in one run can be different from the projections in 60.478 +the other run. 60.479 + 60.480 +\item[tie-point:] a set of beats, one from each of two lifelines, such that this set of beats forms a separation set in all equivalent program runs. 60.481 +\end{description} 60.482 + 60.483 + 60.484 +Some things to note: A particular occurrence 60.485 +can be associated to at most one beat from a given 60.486 +lifeline, but that same occurrence can also be associated 60.487 +to beats from multiple other lifelines. Also, an occurrence may 60.488 +be initiated by a lifeline but never observed by any. 60.489 +Every \(O\) has a set of projections associated with it. 60.490 + 60.491 +For example, the event could 60.492 +be writing a value into a variable. Two separate 60.493 +write events are considered equivalent occurrences if 60.494 +they both write the same particular value into whatever memory location 60.495 +is associated to the same particular 60.496 +variable, and happen within valid partial orderings 60.497 +relative to the other occurrences. This is normally 60.498 +compared across re-creations of the "universe" that 60.499 +provides the context for the orderings of events instances. 60.500 + 60.501 +========= 60.502 + 60.503 + Okay, talked it over with Sung -- what about making distinguished beats 60.504 +-- as Sung poked around for, make the PR\ "suspend" be the 60.505 +distinguished beat. Then, as we worked out talking it 60.506 +through, make the code that happens on the hidden timeline be the linkage between the beats -- so a tie-point is any number of distinguished beats such that the hidden calculation on one of the beats executed the resume for all of the other beats in the tie point. That establishes how a tie point gets created.. separately, need a universal statement of what is guaranteed by a tie point. 60.507 + 60.508 +So, one thing, is that the hidden calc is normally chosen such that every equivalent program run reproduces equivalent tie points -- but defining equivalent relies upon defining the "meaning"\ of the constructs.. but maybe that thing above about equivalent in terms of partial order can be used, by saying all constructs 60.509 +are associated with a partial ordering -- but, still can have truly non-deterministic behavior being the correct behavior.. hmmm, but that should still have a partial ordering! 60.510 + 60.511 + What I\ really want to do is define tie-point in terms of the write-to-read. A half tie point says what's before the pre is visible after in the post timeline. And a full tie-point says that goes both ways. So, acquire-release is only a half tie-point, because what's after the release in its timeline can be seen before the acquire in its timeline. That makes it a half tie-point. Also, whats before the acquire in its timeline does not necessarily have to be seen after the release in its timeline.. that also makes it a half tie-point. 60.512 + 60.513 +So, use the project definition, and the crossing definition, to say which crossing projects are allowed by a half tie point, and which of those must be eliminated to make it a full tie-point. Then THAT\ defines the behaviors of a tie-point, independently from how it is created. 60.514 + 60.515 +The full definition of tie-point, in terms of proto-runtime value, has both those -- the hidden timeline "math" thing along with the causality, gives the "creation" aspect of tie-point, and the allowed projections gives the "behavior" aspect of tie-point. 60.516 + 60.517 +From the projection "behavior" I can simply state "this 60.518 +defines what all synchronization constructs do" -- 60.519 +the projection behavior is the whole purpose of a sync construct -- to ensure particular communication pattern when comm is via side-effect 60.520 + 60.521 +======= 60.522 + 60.523 +From first model, have the real-value constraints for slide of suspend and resume relative to each other.. 60.524 + 60.525 +The behavior of full tie-point is no back-cross projections, and there is a set of forward-crossing projections, which may be empty, and any of the tied timelines may 60.526 +be the initiating timeline. For a half tie-point, have the origin lifeline. There is a set of forward-crossing projections with initiation on the origin lifeline, 60.527 +and backward crossing are allowed whose initiation 60.528 +is on non-origin lifeline. 60.529 + 60.530 +But a tie-point is more than just the behavior it defines. 60.531 + In order for a pair of special beats to form a tie-point, 60.532 +they must be causally linked on their internal lifelines. This means that a sequence of changes of the internal 60.533 +state links the internal activity of one of the special beats to the internal activity of another special beat 60.534 +that executes the resume that ends the second special beat. All special beats that are resumed inside the 60.535 +same internal activity will have the behavior of a 60.536 +full tie-point. Half tie-points can have both halves 60.537 +resumed in different internal activities. 60.538 + 60.539 +A special beat has a variable-length span, as measured in the real-number of the clock. A special beat is associated to an isolated atomic span on a hidden lifeline. The only way to end the span of a special beat is via a "resume" beat on the hidden lifeline, which names the special beat to be ended. 60.540 + 60.541 +The internal activity on the hidden lifeline enforces some description. 60.542 + 60.543 +For 60.544 +example, send-receive descriptions are: send = if paired 60.545 +receiver is in shared context then resume both else place self into shared context. receive: if paired send is in shared context then resume both else place self into shared context. 60.546 + 60.547 +For acquire-release.. acquire: if lock-owner inside shared 60.548 +context is empty then place self-name into lock-owner 60.549 +and resume self else place self onto end of sequence 60.550 +of special beats. release: remove self from lock-owner 60.551 +and place the next in sequence of special beats into 60.552 +lock-owner. If non-empty then resume the new lock-owner. 60.553 +in every case, resume self. Note, acquire-release can 60.554 +form either a half tie-point or a full tie-point. 60.555 +? 60.556 + 60.557 +==== 60.558 + 60.559 +Note to the reader. This is a first pass at a formal description of tie-point. It likely contains more constraints than necessary. It should not be taken as the final formalism, nor is it implied to be elegant in any way, but simply an existence proof for a formal description 60.560 +of a useful subset of what the intuition of tie-point associates to. 60.561 + 60.562 + 60.563 + 60.564 + 60.565 + 60.566 +\subsection{How a synchronization construct relates 60.567 +to tie-points} 60.568 + 60.569 +To prepare for stating how the tie-point model can be used to 60.570 +specify a synchronization construct, we first state 60.571 +clearly what we mean by a ``synchronization construct''. 60.572 + 60.573 +The top of Fig \ref{fig:PRSyncConstrDef} shows two 60.574 +independent timelines, both performing reads and writes 60.575 +within a machine that has coherent shared memory. The 60.576 +timelines have no relative ordering defined, so any 60.577 +write on Timeline A can be received by any read of 60.578 +the same address on 60.579 +Timeline B, and vice versa. This means that, in general, 60.580 +the use of a variable that is read and written by both will result in non-deterministic behavior. 60.581 + 60.582 + 60.583 +\begin{figure}[ht] 60.584 + \centering 60.585 + \includegraphics[width = 2.0in, height = 2.8in] 60.586 + {../figures/PR__timeline_sync_def.pdf} 60.587 + \caption{Depicts the meaning we adopt for `synchronization construct'. One of them controls communications between timelines 60.588 +by controlling the slide of timelines relative to each 60.589 +other. They imply certain visibility between writes and reads on different timelines.} 60.590 + \label{fig:PRSyncConstrDef} 60.591 +\end{figure} 60.592 + 60.593 + 60.594 + 60.595 +To control the behavior of writes and reads to the 60.596 +same addresses, a common point must be established, which 60.597 +limits the ``sliding'' of the timelines relative to 60.598 +each other. A synchronization construct is used for 60.599 +this. 60.600 +The net effect of such a construct is to establish 60.601 +a common point that both timelines agree on. This 60.602 +point separates reads and writes before it from reads 60.603 +and writes after it. 60.604 + 60.605 +For example, consider a simple lock used to protect a critical section. The lock is acquired by one timeline 60.606 +before entering the critical section. Any writes performed 60.607 +on other timelines before the lock was granted must be complete before the critical section starts, so that reads performed inside the critical section see them. This is illustrated in the middle of Fig \ref{fig:PRSyncConstrDef}. 60.608 + 60.609 +The critical section ends by releasing the lock, which allows a different timeline to acquire and enter the critical section. As seen in the bottom of Fig \ref{fig:PRSyncConstrDef}, 60.610 +any writes performed by that new 60.611 +timeline after it acquires the lock must not be visible 60.612 +to reads performed by the old timeline before it released 60.613 +the lock. 60.614 + 60.615 +With this intuition, we define a synchronization construct 60.616 +as an operation preformed on a timeline, which has 60.617 +the property that it creates 60.618 +a tie-point together with an operation performed on a different 60.619 +timeline. Such operations that establish a tie-point 60.620 +fit our definition of synchronization constructs. 60.621 + 60.622 + 60.623 +\subsection{More on tie-points} 60.624 + 60.625 +Fig \ref{fig:dualTimeline} showed how a tie-point can be generated. The establishment was accomplished by 60.626 +a combination of primitive mechanisms. These include: 1) suspend; 2) an `invisible' timeline that executes 60.627 +behavior in the gaps; 3) resume 60.628 +called from that invisible timeline; and 4) enforcement 60.629 +of instruction completion relative to resume. 60.630 + 60.631 +What an established tie-point provides is the notion that the tied points are the same ``instant" for both tied timelines. What that means is that both timelines see events ordered relative to that point in the same way. 60.632 + 60.633 + 60.634 +Notice that the primitives that establish a tie-point 60.635 +do not involve any notion of dependency or constraint 60.636 +on order of execution. It is the behavior code that runs on the invisible 60.637 + timeline that embodies notions such as dependency 60.638 + between units of work, mutual exclusion, 60.639 + partial ordering of work, and so on. However, the 60.640 + primitives do provide the notion of causality, the ordering implied by causality, and enforcing completion 60.641 +of reads/writes. 60.642 + 60.643 +It is up to the language to supply the behavior that happens inside 60.644 +the gaps, which executes on the invisible timeline. This behavior is what decides which timelines end up 60.645 +sharing a tie point. It is that decision making, of which timelines to tie together, that implements the 60.646 +semantics of a synchronization construct. 60.647 + 60.648 +A workshop paper also discusses tie points 60.649 +[]. A formal treatment of tie-points is beyond the scope of this paper. However, a formal framework has been substantially completed and 60.650 +will be published in a future paper. 60.651 + 60.652 + 60.653 + 60.654 +\subsection{Tie-points within a proto-runtime} 60.655 + 60.656 + Fig \ref{fig:dualTimeline} didn't say what entity owns the hidden timeline that executes the behavior that takes place in the gaps. This is what the proto-runtime does. An instance of the 60.657 +proto-runtime executes the language plugin behavior. 60.658 +It acts as the hidden timeline. 60.659 + 60.660 + The proto-runtime code module also supplies implementations 60.661 +of the primitives that are used to establish a tie-point, including these: 60.662 + 60.663 + %It provides the primitive that suspends a timeline and then causes language plugin behavior to execute in the gap. 60.664 + 60.665 +%The plugin behavior that runs in the proto-runtime when one timeline suspends is what chooses another timeline to resume as a consequence. That choice establishes causality between the suspensions of the two timelines, and in the process ensures that a valid tie will exist between the two collapsed timeline points. The code of the primitives is provided as part of the proto-runtime code module, while the plugin behavior is executed by an instance of a running proto-runtime. 60.666 + 60.667 +%The running proto-runtime instance is also known as the Master, while the application timelines are known as Slaves. The behavior of the language constructs executes within the Master's timeline, while the behavior of application code executes within Slave timelines. 60.668 + 60.669 +%\subsection{More about the proto-runtime} 60.670 + 60.671 +\begin{itemize} 60.672 +\item create a virtual processor (which has a suspendible timeline) 60.673 +\item create a task (which has an atomic timeline that runs to completion) 60.674 + 60.675 +\item suspend a timeline, then invoke a function to handle the suspension -- handler is supplied with 60.676 +parameters from application 60.677 +\item resume a timeline, which makes it ready for execution 60.678 +\item end a timeline 60.679 +\item trigger choosing which virtual processor or task to begin execution on an offered 60.680 +core 60.681 + 60.682 +\end{itemize} 60.683 + 60.684 +Virtual processors and tasks, both, have associated timelines. The reason for having both is a practical one, as tasks are simpler, with less overhead, 60.685 +and many languages have the semantics of short, atomic, units of work that 60.686 +are not intended to suspend. Thus, tasks are treated differently inside the 60.687 +proto-runtime, and incur less overhead to create and run. 60.688 + 60.689 +A special feature of the proto-runtime is that if a task happens to execute 60.690 +a language command that causes suspension, then the proto-runtime automatically 60.691 +converts that task to a suspendible virtual processor. This helps support the mixing of different 60.692 +languages within the same program. 60.693 + 60.694 + 60.695 +The proto-runtime provides a mechanism for communicating information from the application code to the plugin function that was invoked to handle suspension. For example, the identity of a particular mutex a thread wishes to acquire 60.696 +can be communicated from the wrapper library to the plugin. 60.697 + 60.698 + 60.699 +Because the proto-runtime tracks all the timelines, the end of a timeline has to be explicitly stated in the application code, by calling a wrapper library function. That then invokes the proto-runtime primitive, 60.700 +which informs the proto-runtime instance. The proto-runtime performs internal bookkeeping related to the ending of the timeline, and notes that the core is now free and offers it to the plugin's Assigner function. 60.701 + 60.702 +The proto-runtime involves the language into the process of choosing which core a given task 60.703 +or virtual processor executes on. The proto-runtime maintains control, but offers free cores to the Assigner 60.704 +portion of the plugin. It responds by then assigning a task or virtual processor to the core. The proto-runtime just offers, it is up to the language to decide what work that core should receive at that point in time. 60.705 + 60.706 + 60.707 + 60.708 +\subsection{Concrete Example}\label{subsec:Example} 60.709 + 60.710 +To make this concrete, consider the example of implementing 60.711 +acquire mutex and release mutex. The semantics are: 60.712 + 60.713 +\begin{itemize} 60.714 +\item Acquire Mutex: A thread calls the construct, 60.715 +and 60.716 +provides the name of the mutex. If no thread owns the 60.717 +mutex, the calling thread is given ownership and it 60.718 +continues to make progress. However, if a different thread 60.719 +already owns the mutex, the calling thread is put into a queue 60.720 +of waiting threads, and stops making progress. 60.721 +\item Release Mutex: A thread calls the construct and 60.722 +provides the name of the mutex. If the mutex has waiting threads in its queue, then the next thread is taken out and given ownership of the mutex. That thread is resumed, to once again make progress, as it the thread 60.723 +that called the release construct.. 60.724 +\end{itemize} 60.725 + 60.726 +This calls for a data structure that has two fields: 60.727 +one holds the thread that currently owns the mutex, 60.728 +the other holds a queue of threads waiting to acquire 60.729 +the mutex. The semantics of a construct involve multiple 60.730 +reads 60.731 +and writes of the data structure. Hence, the 60.732 + structure must be protected 60.733 +from races between different threads. 60.734 + 60.735 +The protection 60.736 +is where the difficulty comes into the implementation, 60.737 +and where performance issues come into the picture. 60.738 +It could be accomplished with a single global lock 60.739 + that uses hardware primitives, or accomplished 60.740 +with wait-free data structures that only rely upon the coherence 60.741 +mechanism of the memory system, or even by message passing plus 60.742 +quorum techniques. 60.743 + 60.744 +However, the implementation of the semantics is independent 60.745 +of the implementation of the protection. They are orthogonal, 60.746 +and an interface can be placed between them. One side 60.747 +of the interface implements checking and updating the fields of 60.748 +the data structure, while the other side implements 60.749 +protecting the first side from interference. 60.750 + 60.751 +The side that provides protection requires fields, 60.752 +for its use, to be placed into the data structure used 60.753 +to represent a thread. To hide those details, 60.754 +the protection side should also provide 60.755 +primitives to create and destroy threads, as well as suspend 60.756 +and resume them. 60.757 + 60.758 +This interface that separates the semantic side from 60.759 +the protection 60.760 +side is the proto-runtime interface. It is what enables 60.761 +the modularization of runtime system implementations. 60.762 + 60.763 +The tie-point concept provides a model for thinking 60.764 +about how the semantic side controls ordering among multiple threads, without exposing any details of the protection side. The tie-point model involves thinking only about actions taken during suspension of timelines (threads). It assumes that those actions are protected from interference, and that suspend and resume of timelines are primitive operations made available. The model remains constant regardless of implementation details. 60.765 + That provides a cross-hardware way of specifying synchronization 60.766 +behavior using just sequential thinking. The proto-runtime primitives implement the elements of the tie-point model. 60.767 + 60.768 + %Currently, these constructs are either implemented directly in terms of hardware level synchronization constructs such as the atomic Compare And Swap (CAS) instruction, or else are a thin wrapper that invokes operating system behavior. However, the behavior of the OS\ kernel's threading primitives are themselves implemented in terms of hardware level synchronization 60.769 +%constructs. Either way, developing the behavior proves 60.770 +%time consuming due to the difficulty of debugging hardware level synchronization behavior, and due to the difficulty of performance tuning such low level code across the full spectrum of patterns caused by applications. 60.771 + 60.772 + 60.773 + 60.774 + 60.775 + 60.776 +\section{Concrete Details} 60.777 +Now that we have seen the concepts of how to modularize 60.778 +a runtime system, using the tie-point model, it is 60.779 +time to make the concepts concrete by showing code 60.780 +segments that implement each of the concepts, and code 60.781 +segments that use the concepts. We will start with 60.782 +the big picture and work down. 60.783 + 60.784 +The first stop will be the development process, showing 60.785 +how it is fractured into three separate and independent 60.786 +development activities. Next, we will show examples 60.787 +of how application 60.788 +code invokes constructs, and follow the path of calls 60.789 +down to the point it switches over to the runtime system. Lastly, 60.790 +we will look at the flow of control inside the runtime, 60.791 +where we will focus on the interaction between plugin 60.792 +code and proto-runtime code. 60.793 + 60.794 +In this last portion, we will show how the 60.795 +interface supplies the plugin with a consistent ``inside 60.796 +the runtime" environment. Along with that, we will 60.797 +show how providing 60.798 +a consistent environment 60.799 + is an implementation of the "single hidden timeline" portion 60.800 + of the tie-point model. We will also show how it is 60.801 + the existence of a \textit{single} hidden timeline 60.802 + that allows the semantic portion of the language constructs 60.803 +to be written in a sequential style, without regard to concurrency issues. 60.804 + 60.805 + 60.806 +\subsection{Three independent development efforts} 60.807 + 60.808 +To get a handle on the big picture, we describe the 60.809 +three independent paths that development takes: 60.810 +one for development of proto-runtime code, one for 60.811 +development of language implementation, and one for 60.812 +application development. Each of these produces a separate 60.813 +installable artifact. 60.814 +The proto-runtime development produces a dynamic library, for each machine. The language development produces a dynamic library to plug into whichever proto-runtime library is installed on a given machine. It may also produce development tools that are used during compilation, distribution, and even installation and during the run. The application development produces a single source, which the language tools may then turn into multiple executables. 60.815 + 60.816 +The proto-runtime code is developed separately from 60.817 +both language and application code, and packaged as a dynamic library. This library has multiple implementations. Each kind of hardware platform has a proto-runtime implemented specifically for it, and is tuned for low overhead on that hardware. The administrator of a particular machine chooses the proto-runtime implementation best suited to that hardware, and installs that. 60.818 + 60.819 +The language code is likewise developed separately from both proto-runtime and application code. Although multiple versions of a language may be implemented, there are significantly fewer versions than the number of proto-runtime versions. That is because most of the hardware details are abstracted away by the proto-runtime interface. 60.820 + 60.821 +However, the interface does expose hardware features related to placement of work onto cores, so some variations may exist for the same interface. Again, the administrator chooses which language implementation best suits their machine and installs the corresponding dynamic library. 60.822 + 60.823 +The wrapper library, however, is not 60.824 +installed on the machine where code runs. Rather, it 60.825 +is only used during development of an application, 60.826 +and remains independent of hardware. 60.827 + 60.828 +Ideally the application is developed only once. It makes calls to the wrapper library, which in turn invokes the dynamic libraries of the language and proto-runtime. 60.829 +When an application is executed, the loader binds the 60.830 +dynamic libraries, connecting them to the application. 60.831 + In this way, a single, 60.832 +unchanging, executable gains access to machine-specific implementations of language and proto-runtime. 60.833 + 60.834 +However, the success of the compile-once approach has 60.835 +limits in practice. Each machine's characteristics determine the size of unit of work that gives the best performance. When too small, the overhead in the runtime system that is required to create the work, manage constraints, and perform assignment becomes larger than the work 60.836 +itself. When work-unit size is too large, then not enough units exist to keep all the cores busy. Thankfully, the range between is wide enough, for most applications, that neither limit is hit, on most machines. As machines evolve, though, this happy circumstance is likely to change, necessitating recompiling and possibly hand modifying the application code or some meta-form. 60.837 + 60.838 +\subsection{Walk through of activity during execution} 60.839 + 60.840 +At this point, we present a picture of the flow of control on each 60.841 +of two cores, as the core is switched between application 60.842 +code and runtime code. It is too early to understand 60.843 +the details, but this figure can be referred back to 60.844 +as each portion is discussed in the coming sub-sections. 60.845 +Each portion of the figure is labelled with the sub-section that describes that portion of activity. 60.846 + 60.847 +At the top is the main program, which starts the proto-runtime, 60.848 +and creates a proto-runtime process. Below that is 60.849 +depicted the creation of proto-runtime virtual processors, 60.850 +along with the animation of application code by those virtual 60.851 +processors. 60.852 + 60.853 +? 60.854 + 60.855 +The application passes information to a wrapper library 60.856 +call, 60.857 +such as the ID of the mutex to acquire. The library function packages the 60.858 +information into a request data structure, then invokes a proto-runtime 60.859 +primitive. That suspends the virtual processor (timeline) that is executing 60.860 +that code. The call to the primitive passes as arguments the request structure and a pointer 60.861 +to the plugin function that will handle the request. 60.862 +The handler runs inside the Master and chooses which 60.863 +other timelines to resume as a consequence of the wrapper-library 60.864 +call. Those timelines will then resume, returning from 60.865 +whatever wrapper-library call caused them to suspend. In this way, the request handle implements the behavior of a 60.866 +synchronization construct. 60.867 + 60.868 +However, there is one last step between the request 60.869 +handler marking a timeline as ready to resume 60.870 +and it becoming re-animated. That step is where the 60.871 +assignment half of the language plugin comes into play. 60.872 +The request handlers stack up work that is free to 60.873 +be executed, but it is the assigner that chooses which 60.874 +of those to place onto an offered core. 60.875 + 60.876 + 60.877 + 60.878 + 60.879 + 60.880 +\begin{figure*}[ht] 60.881 + \centering 60.882 + \includegraphics[width = 7.0in, height = 4.5in] 60.883 + {../figures/Proto-Runtime__modules_plus_plugin_plus_code.pdf} 60.884 + \caption{Illustration of the physical time sequence of the timelines of multiple virtual processors executing on multiple 60.885 +cores. The timelines run top to bottom, while calls 60.886 +between modules and returns run horizontally. The colors of Fn names indicate whether the 60.887 +code is part of the application (green), the proto-runtime module (blue), or the language (red). The top two timelines are animated 60.888 +by core 1, while the bottom 2 are animated by core 60.889 +2. The boxes 60.890 +represent virtual processors, each with its associated 60.891 +timeline next to it. The timelines have no relative 60.892 +ordering, except at tie-points established by the Request 60.893 +Handlers. Gaps in the timelines are caused by suspension, 60.894 +which is effected by primitives within the proto-runtime 60.895 +code module.} 60.896 + \label{fig:langBreakdown} 60.897 +\end{figure*} 60.898 + 60.899 + 60.900 + 60.901 +\subsection{Using language constructs} 60.902 +In the simple form of an eDSL, the language constructs 60.903 +take the form of function calls. The reader familiar 60.904 +with posix threads will have used function calls to 60.905 +perform mutex acquire commands and mutex release commands. 60.906 +Here, we illustrate invoking language commands in the 60.907 +same way. 60.908 + 60.909 +We use posix threads for our example because it is 60.910 +a familiar language that the reader already knows well. 60.911 +It allows us to illustrate the concepts new to proto-runtime without introducing potential confusion about what the language semantics are. 60.912 + 60.913 +\subsubsection{Main and startup} 60.914 +Before using a proto-runtime based language, the proto-runtime 60.915 +system must be started, and a proto-runtime process 60.916 +must be created. Fig X shows this. Notice that the 60.917 +create process was given a pointer 60.918 +to a function. This function is the seed of the proto-runtime 60.919 +based application code. This seed must start all proto-runtime 60.920 +based languages that will be used in the application, 60.921 +and must create the virtual processors and tasks that 60.922 +perform the work and may in turn create more VPs and/or tasks that perform work. 60.923 + 60.924 +==main, with PR\_\_start and PR\_\_create\_process == 60.925 + 60.926 +\subsubsection{Seed birth function and thread birth 60.927 +function} 60.928 +Fig X shows our example seed function. It first starts 60.929 +the language that will be used, which is Vthread. It 60.930 +is an implementation of posix threads that is on top of proto-runtime. 60.931 +Next, the seed uses Vthread commands to create two 60.932 +threads, and then uses Vthread join to wait for both 60.933 +threads to die. Lastly it "dissipates", which is the 60.934 +command that kills the virtual processor that is animating 60.935 +the function. 60.936 + 60.937 +==seed\_birth\_Fn, with Vthread\_\_start(), Vthread\_\_create\_thread, 60.938 +Vthread\_\_join, Vthread\_\_stop, and dissipate== 60.939 + 60.940 +Notice the signature 60.941 +of the seed birth function. It returns void, and takes a pointer 60.942 +to void plus a pointer to a SlaveVP struct. This is 60.943 +the standard signature that must be used for all birth functions for 60.944 +proto-runtime created virtual processors or tasks. 60.945 + 60.946 + 60.947 +Also, notice that the standard signature includes a 60.948 +pointer to a SlaveVP struct. This is a proto-runtime 60.949 +defined structure, which holds the meta-information 60.950 +about a virtual processor. The birth function is handed 60.951 +the structure of the virtual processor that is animating 60.952 +it. 60.953 + 60.954 +An illuminating aside is that the birth function for 60.955 +a posix thread doesn't need 60.956 +to be handed the structure representing the animating thread. 60.957 +That is because the operating system tracks which thread 60.958 +is assigned to which core. Posix thread constructs work by executing 60.959 +an instruction that suspends the code executing on 60.960 +the core and switches 60.961 +the core over to animating the OS kernel code. The OS kernel 60.962 +then looks up the data structure that is assigned to 60.963 +the core. 60.964 + 60.965 +That lookup is how the OS kernel gains the 60.966 +pointer to the thread that was animating the application 60.967 +code that called the posix construct. But the implementation 60.968 +of proto-runtime illustrated in this paper doesn't 60.969 +have such a hardware based suspend instruction available, 60.970 +and so proto-runtime-based application code must explicitly pass around the pointer to the data 60.971 +structure of the virtual processor performing the animation. 60.972 + 60.973 +Fig X shows the birth function of the threads created 60.974 +by the seed birth function. It uses the Vthread equivalent 60.975 +of mutex acquire and release to protect access to 60.976 +a critical section. Notice that the signature 60.977 +is the same as the signature of the seed birth function. 60.978 +Also notice that the SlaveVP structure is handed to 60.979 +each invocation of a Vthread construct. In the next 60.980 +several sub sections we will track how this SlaveVP structure 60.981 +is used. 60.982 + 60.983 +==thread birth function.. uses Vthread acquire and 60.984 +release to protect a counter plus print of count value== 60.985 + 60.986 + 60.987 +\subsection{Language Wrapper Library} 60.988 + 60.989 +Looking at the implementation of the Vthread calls 60.990 +reveals code such as in Fig X. 60.991 + 60.992 +==wrapper lib code for mutex acquire== 60.993 + 60.994 +There's nothing much to it. It just creates a data 60.995 +structure, fills it, then hands it to a proto-runtime 60.996 +call. This is a starnd form for wrapper library 60.997 +calls. The data structure is used to carry information 60.998 +into the proto-runtime (the proto-runtime that was 60.999 +started by the PR\_\_start command). The PR call is 60.1000 +the equivalent of the hardware instruction that suspends 60.1001 +application code and switches to the kernel. For the 60.1002 +implementation of PR illustrated in this paper, this 60.1003 +call is implemented with assembly instructions. 60.1004 + 60.1005 +This wrapper library code is placed on the machine 60.1006 +used during development of the application, and is 60.1007 +compiled into the application executable. However, 60.1008 +the proto-runtime call is a link to a dynamic library, 60.1009 +and is not part of the application executable. 60.1010 + 60.1011 +Notice that the PR\ primitive is given a pointer to 60.1012 +a function. This is called the handler function, and 60.1013 +is part of the language plugin. The proto-runtime 60.1014 +will actually perform the call to the handler function, but in a carefully controlled 60.1015 +way. It will provide the handler function with a carefully controlled environment 60.1016 +to use while it handles this wrapper-library call. 60.1017 +We will see in a moment how proto-runtime invokes the 60.1018 +handler function, and what such a handler function 60.1019 +looks like. 60.1020 + 60.1021 +First, here's the assembly that suspends the application code and 60.1022 +switches to the proto-runtime code, as seen in Fig X 60.1023 + 60.1024 +==assembly of suspend and switch== 60.1025 + 60.1026 +All it does is save the program counter and stack pointer 60.1027 +into the SlaveVP structure, then load in the program 60.1028 +counter and stack pointer of the proto-runtime code, 60.1029 +which was previously saved in different fields of that same SlaveVP structure. 60.1030 + 60.1031 +\subsubsection{proto-runtime code that is switched 60.1032 +to} 60.1033 + 60.1034 +The PR assembly code switches the core to executing 60.1035 +the (psuedo) code seen in Fig X. 60.1036 + 60.1037 +==animation master code, which calls plugin fns== 60.1038 + 60.1039 +All this does is invoke the handler function named 60.1040 +in the wrapper library, and hands it an environmen. 60.1041 +This is the hidden environment referred to in the tie-point 60.1042 +model. It must be accessed in an isolated, atomic, 60.1043 +fashion. The proto-runtime code seen here happens 60.1044 +to use a global lock for each language's environment. 60.1045 + However other implementations are possible. In order 60.1046 + to keep overhead low, it uses the Compare And Swap 60.1047 + instruction to acquire the lock, and an exponential random 60.1048 + backoff scheme when contention for the lock arises. 60.1049 + 60.1050 + The handler function is the hidden behavior that executes 60.1051 + on the hidden timeline that is mentioned in the tie-point 60.1052 + model. The suspend primitive is what begins a special 60.1053 + beat on the lifeline of the virtual processor that 60.1054 + executed the wrapper library call. It is this handler 60.1055 + code that then establishes the causal connections 60.1056 + between such special beats, and so ties them together. 60.1057 + The causal connection is via the changes make to the 60.1058 + language environment. 60.1059 + 60.1060 + So, in summary, the proto-runtime is the hidden timeline. 60.1061 + The suspend primitive is what starts a special beat 60.1062 + and starts the behavior on the hidden timeline. The 60.1063 + lock is what isolates and sequentializes 60.1064 + the behavior on the hidden timeline. The language 60.1065 + environment is the hidden state used to establish 60.1066 + causal connection between special beats. 60.1067 + 60.1068 + 60.1069 + 60.1070 +This is not the plugin code, this is the library that the application executable includes. It's equivalent to the pthread library. When you look at the source of the pthread library, it's just a wrapper that invokes the OS. It doesn't do anything itself. The language libraries are the same thing, just wrappers that invoke the proto-runtime primitives. Those suspend the VP and send a message to the proto-runtime. When the message arrives, it invokes the plugin to handle the task. 60.1071 + 60.1072 +Here's how the wrapper library connects a request to the request handler: via this function pointer, right here Fig X, given to the proto-runtime "suspend and send" primitive. The pointed-to function is part of the plugin. That runs inside the proto-runtime, and is what handles the message created in the wrapper library. 60.1073 + 60.1074 + 60.1075 +If we go and look at that handler function, Fig X, we see that it has a standard prototype, so it takes a standard set of arguments. One of those, here in Fig X, is a language environment. This is the special sauce, it is the thing that is shared among all the cores. This language environment is where tasks are placed that are not yet ready to execute, and where suspended virtual processors are placed that are not yet ready to resume. 60.1076 + 60.1077 +Here, Fig X, you can see there's a hash table. The language environment contains that hash table. The tasks get parked in this hash table. Each time a task completes, it looks in the hash table, finds all tasks waiting for its completion, and updates the status of those waiting tasks. If this was the last task being waited for, the waiter is taken out of the hash table and put into the queue of ready to execute tasks. 60.1078 + 60.1079 +This is the semantics of the language. This is how the semantics of the language defines what dependencies are, and how it defines when a task's dependencies have been satisfied. The implementation is just a data structure in the shared language environment. It is the proto-runtime that takes care of creating the tasks, creating the virtual processors, execute those, suspend them and resume them. The proto-runtime handles the mechanics of all that stuff. The language just figures out what are the constraints on making it ready. 60.1080 + 60.1081 +? 60.1082 + 60.1083 +Separately, the proto-runtime calls the Assigner function, which is also part of the plugin dynamic library. Each time a task completes or a virtual processor suspends, the wrapper library invokes a proto-runtime primitive. Among other things, that primitive informs the proto-runtime about the completion of that work, which tells the proto-runtime that hardware resources have just been freed up. 60.1084 + 60.1085 +The proto-runtime then invokes the Assigner function, passing it information about the hardware that was just freed. The assigner is implemented by the language and uses some language-specific way to choose which of the ready work-units to execute on that hardware (a work-unit is either a ready-to-execute task or a ready-to-resume virtual processors). This is how the language is given control over placement of work onto cores. 60.1086 + 60.1087 +=================== 60.1088 + 60.1089 + 60.1090 +\subsection{not sure} 60.1091 +A task is an atomic unit of work. It runs to completion, without suspending. That characteristic allows the proto-runtime to internally treat a task differently than a virtual processor. The fact that it never suspends means it doesn't need a stack, and needs less bookkeeping, which makes a task faster to create and faster to assign, for lower overhead. 60.1092 + 60.1093 +However, a task may optionally choose at some point to execute a language command that causes it to suspend. At the point it does that, the proto-runtime internally converts the task to a virtual processor. That allows the task to suspend and later resume, at the cost of gaining the normal virtual processor overhead. However, the virtual processor the task is converted to comes from a recycle pool and returns when the task completes. 60.1094 + 60.1095 +As an application programmer, you can create processes directly with an OS-like language built on top of the proto-runtime. But you use a programming language to create tasks or virtual processors. For example, VSs has a way to create tasks. VSs internally then uses a proto-runtime command to have the proto-runtime create a task for it. Then VSs decorates the task with its own meta-data. It uses that meta-data to track when a task should be executed. 60.1096 + 60.1097 +? 60.1098 + 60.1099 +The only thing you're allowed to do outside a language is create the environment in which you start a language. 60.1100 + 60.1101 +? 60.1102 + 60.1103 +The implementation of the language behavior is the plugin. The plugin has two parts: request handlers, which handle the messages that come when a VP suspends, and an assigner, which picks where particular VP resumes onto or a task runs. With VSs, the plugin provides the behavior of "submit task". 60.1104 +The request handler plus plugin together provide the two halves of what people normally call a scheduler. 60.1105 + 60.1106 +================= 60.1107 + 60.1108 +\subsection{more on tie-points} 60.1109 +Any event visible before in one is visible in both after. The guarantee is between before in one and after in both. 60.1110 + 60.1111 +From the program point of view, that acquire statement is one instant. That entire gap in physical time is seen as a single instant to the code. 60.1112 + 60.1113 +However, the tie point is just one instant in the timelines. After the point, one of the timelines could perform an event that interferes with an event from before the tie-point, and no guarantees are given about what the other timeline sees. However, if another tie-point is created between them, then they are both guaranteed to see that second, interfering event, after the second tie-point. 60.1114 + 60.1115 +Take the example of a mutex, M. The purpose of the only-one semantics of a mutex is to isolate read and write operations done by the owning thread from those done by other threads, which own before or after it. 60.1116 + 60.1117 +The mutex behavior is illustrated in Fig X. Timeline 1 writes to variable A at point 1, then releases the M at point 2. Timeline 2 acquires M, at the tied point 2 and reads A at point 3. For M to provide isolation, it must guarantee that the A write operation at point 1 is seen by the other timeline's read operation, at point 3. Likewise, it has to guarantees that nothing that happens in timeline 2 after the acquire of M, at point 2, will be seen by timeline 1 before its release, also at point 2. 60.1118 + 60.1119 +That ordering guarantee is what we think of when we imagine the behavior of a mutex acquire-release pair. All writes done by the releasing thread are seen as completed, by reads performed in the acquiring thread, and no writes in the acquiring thread are seen before the release by the releasing thread. That is required in order to have value for the semantics of only one thread owns the mutex at any point. The purpose of only-one is to isolate read and write operations done by the owning thread from those done by the threads that own before or after it. 60.1120 + 60.1121 + 60.1122 +The behavior is implemented in terms of a data structure that lives inside the controlling entity's environment. The controlling entity looks up the data structure for the mutex being requested. This data structure has a field that contains the name of the thread that current owns the mutex, plus a queue of threads waiting to acquire it. So, the controlling entity first looks at the field that holds the current owner, sees that it is occupied, and then puts the thread's name into the queue of waiting threads. 60.1123 + 60.1124 +At some point later, the waiting thread reaches the top of the queue. At the point the owning thread executes the release operation, that owning thread also suspends, the controlling entity sees that suspend and that the thread wants to perform the release behavior. It looks up the release behavior and performs it. This behavior looks up the mutex data structure in the controlling entity's environment, removes the releasing thread from the owner field, takes the top thread off the waiters, writes its name into the current owner, then marks both those threads as ready to resume their timelines. 60.1125 + 60.1126 +The proto-runtime is the controlling entity, which looks up the behaviors and performs them. It also manages the environment that holds the data structures used by the behaviors. 60.1127 + 60.1128 +=========== 60.1129 + 60.1130 +The purpose of the M is to guarantee that what gets written to A here in this timeline is seen over here, in this other timeline. 60.1131 + 60.1132 +So, to turn this simple mechanism into a synchronization construct, you add semantics on top, which determine the end of suspend in the two timelines. The timelines voluntarily place themselves into suspend, and it is up to the controlling entity to decide at what point to end that suspension. It is this choice of ending suspension that ties events in one timeline to events in another. The semantics of deciding that end of suspension is the semantics of the synchronization construct. 60.1133 + 60.1134 +For example, take mutual exclusion within Threads. One thread executes a construct that asks to acquire the mutex. At the point of executing, that thread suspends, so that timeline ceases advancing. At some point later, the controlling entity sees that suspend, and sees that the timeline is attempting the acquire mutex activity. It looks up the behavior for acquire mutex, which is then performed inside that controlling entity. 60.1135 + 60.1136 +============ 60.1137 + 60.1138 + 60.1139 +\subsection{More on eDSLs} 60.1140 +%====================================== 60.1141 + 60.1142 +%We expand on the hypothesis that an embedded style Domain Specfic Language (eDSL) provides high programmer productivity, with a low learning curve. We also show (\S ) that when an application is written in a well designed eDSL, porting it to new hardware becomes simpler, because often only the language needs to be ported. That is because the elements of the problem being solved that require large amounts of computation are often pulled into the language. Lastly (\S ), we hypothesize that switching from sequential programming to using an eDSL is low disruption because the base language remains the same, along with most of the development tools and practices. 60.1143 + 60.1144 +%In \S \ref{sec:DSLHypothesis} we show that the small number of users of an eDSL means that the eDSL must be very low effort to create, and also low effort to port to new hardware. At the same time, the eDSL must remain very high performance across hardware targets. 60.1145 + 60.1146 +%In \S we analyze where the effort of creating an eDSL is expended. It turns out that in the traditional approach, it is mainly expended in creating the runtime, and in performance tuning the major domain-specific constructs. We use this to support the case that speeding up runtime creation makes eDSLs more viable. 60.1147 + 60.1148 +%In \S we take a step back and examine what the industry-wide picture would be if the eDSL approach were adopted. A large number of eDSLs will come into existence, each with its own set of runtimes, one runtime for each hardware target. That causes a multiplicative effect: the number of runtimes will equal the number of eDSLs times the number of hardware targets. Unless the effort of implementing runtimes reduces, this multiplicative effect could dominate, which would retard the uptake of eDSLs. 60.1149 + 60.1150 + 60.1151 +% ============== 60.1152 + 60.1153 +%Further, in \S we show that when an application is written in a well designed eDSL, porting it to new hardware becomes simpler because often only the language needs to be ported. That is because the elements of the problem being solved that require large amounts of computation are often pulled into the language. Lastly, in \S we hypothesize that switching from sequential programming to using an eDSL is low disruption because the base language remains the same, along with most of the development tools and practices. Hence, we cover how the three issues currently making parallel programming unattractive are addressed by embedded-style DSLs. 60.1154 + 60.1155 +%We next show what the blocks to eDSLs are, and where the main effort in implementing an eDSL lies. Specifically, in \S \ref{sec:DSLHypothesis} we show that the small number of users of an eDSL means that the eDSL must be very low effort to create, and also low effort to port to new hardware. At the same time, the eDSL must remain very high performance across hardware targets. 60.1156 + 60.1157 +%In \S we analyze where the effort of creating an eDSL is expended. It turns out that in the traditional approach, it is expended in creating the translator for the custom DSL syntax, in creating the runtime, and in performance tuning the major domain-specific constructs. We propose that the MetaBorg[] or Rose[] translation approaches cover creating translators for custom syntax, and that tuning constructs is inescapable, leaving the question of runtime implementation time. 60.1158 + 60.1159 +%In \S we explore the effects of runtime implementation time by taking a step back and examine what the industry-wide picture would be if the eDSL approach were adopted. A large number of eDSLs will come into existence, each with its own set of runtimes, one runtime for each hardware target. That causes a multiplicative effect: the number of runtimes will equal the number of eDSLs times the number of hardware targets. Unless the effort of implementing runtimes reduces, this multiplicative effect could dominate, which would retard the uptake of eDSLs. Thus, showing that an approach that mitigates this multiplicative effect is valuable, and is the role that the proto-runtime plays. 60.1160 + 60.1161 + 60.1162 + 60.1163 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 60.1164 +\subsection{Details} 60.1165 +\label{subsec:Details} 60.1166 + 60.1167 + what responsibilities are encapsulated in which modules, and what the interfaces between them look like. 60.1168 + 60.1169 +modularization and its interface is what makes the proto-runtime reusable by all languages on given hardware, and the low-level tuning of the proto-runtime for specific hardware automatically benefits all the languages on that hardware. 60.1170 + 60.1171 +? 60.1172 + 60.1173 + 60.1174 + 60.1175 + overhead measurements 60.1176 + 60.1177 +implementation time measurements 60.1178 + 60.1179 + discuss why equivalent user-level M to N thread packages haven't been pursued, leaving no viable user-level libraries to compare against. 60.1180 + 60.1181 + give numbers that indicate that the proto-runtime approach is also competitive with Cilk, and OMPSs, on large multi-core servers. 60.1182 + 60.1183 + summary of development time of the various embedded languages created so far. Unfortunately, no control is available to compare against, but we provide estimates based on anecdotal evidence of the time taken to develop the versions compared against for overhead. In the 60.1184 +least, the same effort would have to be expended on 60.1185 +each and every language that we expended on performance 60.1186 +tuning our proto-runtime. 60.1187 + 60.1188 + We continue with a bigger picture discussion of the difference in design methods between traditional approaches and the proto-runtime implementations (\S ). We discuss OpenMP versus the equivalent proto-runtime version called VOMP (\S ). Then (\S ) we discuss Cilk 5.4 vs the proto-runtime VCilk. Next we discuss pthread vs Vthread (\S ), and OMPSs vs VSs (\S ). These discussions attempt to give the two design philosophies and paint a picture of the development process in the two competing approaches. The goal is to 60.1189 + 60.1190 +illustrate how the proto-runtime approach maintains many of the features, through its centralized services, while significantly reducing implementation time, through reuse of the services, elimination of concurrency concerns in design and debugging, and in the simplifications in design and implementation caused by the clean modularization of the proto-runtime approach, and the regularization of implementation from one language to another. 60.1191 + 60.1192 +Then, with the full understanding of the proto-runtime approach in hand, we discuss how it compares to related work (\S ). 60.1193 + 60.1194 +Finally, we highlight the main conclusions drawn from the work (\S ). 60.1195 + 60.1196 + 60.1197 + 60.1198 +? 60.1199 + 60.1200 + 60.1201 + 60.1202 + 60.1203 + The behavior module creates work and determines when work is free the execute, it tracks constraints on work imposed by language semantics, and constraints 60.1204 +due to data dependencies. 60.1205 + 60.1206 + a copy of the proto-runtime with language modules runs separately on each core and they communicate via shared variables in a shared language environment. The proto-runtime protects access to the shared language environment so that language modules can be written in sequential style. 60.1207 + 60.1208 +? 60.1209 + 60.1210 +The proto-runtime also implements "centralized" services that it makes available to all languages. Hardware specific functions include communicating between processors and protecting the internal state used by the language modules. 60.1211 + 60.1212 + 60.1213 + 60.1214 + this makes the proto-runtime be reused by all languages on given hardware, and the low-level tuning of the proto-runtime for specific hardware automatically benefits all the languages that run on that hardware. 60.1215 + 60.1216 + implementing language logic, 60.1217 + 60.1218 +show how the proto-runtime interface allows it to use sequential thinking. 60.1219 + 60.1220 +give similar detail on the implementation of the assigner, 60.1221 +we discuss how that has the potential to improve application performance by reducing communication between cores and reducing idle time of cores. 60.1222 + 60.1223 +support belief that the patterns we followed when modularizing are indeed fundamental and will remain valid for future languages and hardware. 60.1224 + 60.1225 + discuss some of the centralized services provided by the current proto-runtime implementation, as well as planned future ones. 60.1226 + 60.1227 +reusing language logic from one language implementation to another. 60.1228 + 60.1229 + 60.1230 +%%%%%%%%%%%%%%%%%%%%%%%% 60.1231 +%% 60.1232 +%%%%%%%%%%%%%%%%%%%%%%%% 60.1233 +\section{Measurements} 60.1234 +With the background on eDSLs and description of the proto-runtime approach behind us, we then provide overhead measurements in \S\ref{subsec:OverheadMeas} and implementation time measurements in \S\ref{subsec:ImplTimeMeas} 60.1235 + 60.1236 +\subsection{Overhead Measurements} \label{subsec:OverheadMeas} 60.1237 +For the following, we use a 4-core single socket 2.4Ghz laptop, and a 4 socket by 10 core each server. 60.1238 + 60.1239 +For runtime performance: 60.1240 + 60.1241 +-- Vthread vs pthread: laptop and server on exe vs task (and fibonacci?) 60.1242 + 60.1243 +-- VCilk vs Cilk: laptop and server on fibonacci (from Albert) 60.1244 + 60.1245 +-- VOMP vs OpenMP: laptop and server on exe vs task and fibonacci 60.1246 + 60.1247 +-- VSs vs OMPSs: laptop and server on fibonacci and jpeg 60.1248 + 60.1249 +\begin{tabular}{|c|c|c|c|c|c|c|}\hline 60.1250 +a & 2 & a & a & a & a & a \\\hline 60.1251 +a & 2 & a & a & a & a & a \\\hline 60.1252 +a & a & a & a & a & a & a \\\hline 60.1253 +a & a & a & a & a & a & a \\\hline 60.1254 +\end{tabular} 60.1255 +\caption{} 60.1256 +\label{tab} 60.1257 + 60.1258 +As seen, we didn't include application performance because we have not yet taken advantage of the opportunity to use language information to predict locality. That research is in progress and will be reported in future papers. 60.1259 + 60.1260 + 60.1261 +\subsubsection{Vthread Versus Highly Tuned Posix Threads} 60.1262 + 60.1263 +Measurements indicate that the proto-runtime approach has far lower overhead than even the current highly tuned Linux thread implementation, and discusses why equivalent user-level M to N thread packages haven't been pursued, leaving no viable user-level libraries to compare against. 60.1264 +\subsubsection{VCilk Versus Cilk 5.4} 60.1265 +In \S we give numbers that indicate that the proto-runtime approach is also competitive with Cilk 60.1266 +\subsubsection{VSs Versus StarSs (OMPSs)} 60.1267 +OMPSs 60.1268 +\subsubsection{VOMP Versus OpenMP} 60.1269 +VOMP 60.1270 + 60.1271 + 60.1272 +%%%%%%%%%%%%%%%%%%%%%%%% 60.1273 +%% 60.1274 +%%%%%%%%%%%%%%%%%%%%%%%% 60.1275 +\subsection{Development Time Measurements}\label{subsec:ImplTimeMeas} 60.1276 +Here we summarize the time to develop each of the eDSLs and copy-cat languages created so far. As a control, we estimate how long the equivalent functionality required, using the traditional approach, based on anecdotal evidence. 60.1277 + 60.1278 +Summarized in Table \ref{tabPersonHoursLang}, we measured the time we spent to design, code, and get an initial version working for each of the languages we created. The results are shown in the same order we created them, with SSR the first. As we gained experience, design and coding became more efficient. Not shown is the 7 hours required to take the send-receive code from SSR and adapt it to work with tasks in VSs. In addition, 11 hours was spent importing the DKU constructs into VSs. These are hours spent at the keyboard or with pen and paper, and don't include think time during other activities in the day. 60.1279 + 60.1280 + 60.1281 +\begin{centering} 60.1282 +\begin{tabular}{|l|r|r|r|r|r|r|} 60.1283 + \cline{2-7} 60.1284 + \multicolumn{1}{r|}{} & SSR & Vthread & VCilk & HWSim & VOMP & VSs\\ 60.1285 + \cline{2-7} 60.1286 + \noalign{\vskip2pt} 60.1287 + \hline 60.1288 + Design & 19 & 6 & 3 & 52 & 18& 6\\ 60.1289 + Code & 13 & 3 & 3& 32 & 9& 12\\ 60.1290 + Test & 7 & 2 & 2& 12 & 8& 5\\ 60.1291 + L.O.C. & 470 & 290 & 310& 3000 & 690 & 780\\ 60.1292 + \hline 60.1293 +\end{tabular} 60.1294 +\caption 60.1295 +{Hours to design, code, and test each embedded language. L.O.C. is lines of (original) C code, excluding libraries and comments. 60.1296 +} 60.1297 +\end{centering} 60.1298 +\label{tabPersonHoursLang} 60.1299 + 60.1300 +\subsubsection{Comparison of Design Approaches} 60.1301 +We give the bigger picture of the difference in design methods between traditional approaches and the proto-runtime implementations, discussing OpenMP versus VOMP, Cilk 5.4 vs VCilk, pthread vs Vthread, and OMPSs vs VSs. These discussions attempt to give the two design philosophies and paint a picture of the development process in the two competing approaches. The goal is to illustrate how the proto-runtime approach maintains many of the language features, through its centralized services, while significantly reducing implementation time, through reuse of the services, elimination of concurrency concerns in design and debugging, and in the simplifications in design and implementation caused by the clean modularization of the proto-runtime approach, and the regularization of implementation from one language to another. 60.1302 + 60.1303 + 60.1304 +%%%%%%%%%%%%%%%%%%%%%%%% 60.1305 +%% 60.1306 +%%%%%%%%%%%%%%%%%%%%%%%% 60.1307 +\section{Related Work} \label{sec:Related} 60.1308 + 60.1309 +With the full understanding of the proto-runtime approach in hand, we discuss how it compares to other approaches for implementing the runtimes of domain specific languages. The criteria are: level of effort to implement the runtime, effort to port the runtime, runtime performance, and support for application performance. The main alternative implementation approaches are: posix threads, user-level threads, TBB, modifying libGomp, and using hardware primitives to make a custom runtime. 60.1310 + 60.1311 +We first talk about each of these approaches, then summarize the conclusions in Table \ref{tab:CriteriaVsApproach}. 60.1312 + 60.1313 +The first three methods involve building the DSL runtime on top of OS threads, user threads, or TBB, all of which are languages in their own right. So the DSL runtime runs on top of the runtime for that lower-level language. This places control of work placement inside the lower-level runtime, blocking the DSL runtime, which hurts application-code performance, due to inability to use data locality. In addition, OS threads have operating system overhead and OS-imposed fairness requirements, which keeps runtime performance poor. 60.1314 + 60.1315 +All three also force the DSL implementation to manage concurrency explicitly, using language primitives such as locks. TBB may have a slight advantage due to its task-scheduling commands, but only for task-based languages. Hence, implementation effort is poor for these approaches. 60.1316 + 60.1317 +For the same reason, for these three, the runtime code needs to be rewritten and tuned for each hardware platform for each language, or else some form of hardware-abstraction placed into the runtime. But putting in a hardware abstraction is essentially an alternative way of implementing half of the proto-runtime approach, but without the centralization, reuse, and modularization benefits. 60.1318 + 60.1319 +Many language researchers use libGomp (based on informal discussions) because of its very simple structure, which makes it relatively easy to modify, especially for simple languages. However, it provides no services such as debugging or performance tuning, and it has no modularization or reuse across languages benefits. As the price of the simplicity, performance suffers, as seen in the experiments []. Also, re-writes of the DSL runtime are required for each platform in order to tune it to hardware characteristics. However, because the runtime is directly modified, the language gains control over placement of work, enabling good application performance. 60.1320 + 60.1321 +Lastly, we consider the alternative of writing a custom runtime from scratch, using hardware primitives such as the Compare And Swap (CAS) instruction, or similar atomic read-modify-write instructions. This approach requires the highest degree of implementation effort, and the worst portability across hardware. However, if sufficient effort is expended on tuning, it can achieve the best runtime performance and equal the best performance of application code. So far, the gap has proven small between highly tuned language-specific custom runtime performance and that of our proto-runtime, but we only have the CILK implementation as a comparison point. 60.1322 + 60.1323 +Putting this all together, Table \ref{tab:CriteriaVsApproach} shows that the proto-runtime approach is the only one that scores high in all the mesures. It makes initial language implementation fast, as well as reduces porting effort, while keeping runtime performance high and enabling high application performance. 60.1324 + 60.1325 +\begin{center} 60.1326 +\begin{tabular}{|c|c|c|c|c|}\hline 60.1327 +Runtime Creation & \textbf{impl.}& \textbf{porting} & \textbf{runtime} & \textbf{application} \\ 60.1328 +\textbf{} & \textbf{ease} & \textbf{ease} & \textbf{perf.} & \textbf{perf.}\\\hline 60.1329 +\textbf{OS Threads} & ++ & ++ & + & + \\\hline 60.1330 +\textbf{User Threads} & ++& ++ & ++ & + \\\hline 60.1331 +\textbf{TBB} & ++ & ++ & ++ & + \\\hline 60.1332 +\textbf{libGomp} & +++ & ++ & +++ & ++++ \\\hline 60.1333 +\textbf{HW primitives} & + & + & +++++ & +++++ \\\hline 60.1334 +\textbf{Proto-runtime} & +++++ & +++++ & ++++ & +++++\\\hline 60.1335 +\end{tabular} 60.1336 +\end{center} 60.1337 +\caption{The table shows how well each approach scores in each measure important to the implementor of a runtime for a DSL. On the left are the approaches that can be used to write the runtime. At the top are the measures an implementor may care about. For all measures, one plus is the lowest score, indicating the implementation approach is undesirable, 5 indicates the highest desirability. The scores are based on reasons discussed in the text. } 60.1338 +\label{tab:CriteriaVsApproach} 60.1339 + 60.1340 + 60.1341 + 60.1342 + 60.1343 +%%%%%%%%%%%%%%%%%%%%%%%% 60.1344 +%% 60.1345 +%%%%%%%%%%%%%%%%%%%%%%%% 60.1346 +\section{Conclusions and Future Work} 60.1347 +The main takeaways from the paper are first, the potential for embedded style Domain Specific Languages (eDSLs) to address the issues that are holding-back parallel programming, and second the role that the proto-runtime approach can play in making eDSLs practical, by simplifying the runtime aspect of implementing a large number of eDSLs across the many hardware targets. 60.1348 +%The proto-runtime approach does this by modularizing the runtimes, providing reuse of centralized services, and reuse of the hardware-specific performance tuning, which is performed once per hardware, on the proto-runtime, then enjoyed by all the eDSLs. Hence, the proto-runtime approach provides a significant piece of the puzzle of providing eDSLs, to bring parallel programming into the mainstream. 60.1349 + 60.1350 + 60.1351 +%[[Hypothesis: Embedded-style DSLs -> high productivity + low learning curve + low disruption + low app-port AND quick time to create + low effort to lang-port + high perf across targets]] 60.1352 + 60.1353 + 60.1354 +Specifically, we have shown how the approach modularizes runtime code, in a way that appears applicable to any language or execution model. It isolates the hardware-specific portion from language behavior as well as from the language-driven placement of work onto resources, providing interfaces between them. 60.1355 + 60.1356 + The modularization reduces the effort of implementing a new language, especially for an embedded-style one where runtime creation is a significant portion of total effort. It causes the low level hardware portion to be reused by each language. And, the behavior implementation is simplified, by handling shared state inside the proto-runtime and exporting a sequential interface for the behavior module to use. The simplification reduces effort, as does reuse of the hardware-specific portion, reuse of behavior code from one language to another, reuse of assignment code, and familiarity with the modular structure by implementors. Overall effort reduction was supported by measurements of implementation effort. 60.1357 + 60.1358 +The proto-runtime approach makes it practical to maintain high overall runtime performance, with low effort for the language implementor. It is practical because high effort is put into performance-tuning the hardware-specific proto-runtime, which is then reused by each language. In this way the performance derived from the high tuning effort is inherited without extra effort by the language creators, thus amortizing the cost. 60.1359 + 60.1360 +Centralized services were implemented inside the proto-runtime portion, such as debugging facilities, automated verification, concurrency handling, hardware performance information gathering, and so on. We showed how they are reused by the languages. 60.1361 + 60.1362 +Although we didn't measure it, we indicated how application performance can be increased due to giving the language direct control over placement of work, to take advantage of data affinity or application-generated communication patterns. This ability is due to the assignment module, which provides the language implementor with control over which core work is assigned to, and the order of executing each work unit. 60.1363 + 60.1364 +Work on the proto-runtime approach is in its infancy, and much remains to be done, including: 60.1365 +\begin{itemize} 60.1366 +\item Creating related interfaces for use with distributed memory hardware, and interfaces for hierarchical runtimes, to improve performance on many-level hardware such as high-performance computers, and to tie together runtimes for different types of architecture, to cover heterogeneous architectures and machines. 60.1367 +\item Extending the proto-runtime interface to present hardware information that a work-assigner will need, but in a generic way that remains constant across many hardware configurations yet exposes all relevant information. 60.1368 +\item Exploring work assignment implementations that take advantage of language and application knowledge to improve placement of work to gain higher application performance. 60.1369 +\item Applying the proto-runtime approach to support a portability software stack, and supply OS services to applications via the proto-runtime, to further increase application-code portability. 60.1370 +\end{itemize} 60.1371 + 60.1372 + 60.1373 +============================================= 60.1374 +== 60.1375 +== 60.1376 +== 60.1377 +== 60.1378 +== 60.1379 +============================================= 60.1380 + 60.1381 +\section{The Problem} 60.1382 + 60.1383 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 60.1384 + 60.1385 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 60.1386 + 60.1387 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 60.1388 + 60.1389 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 60.1390 + 60.1391 + 60.1392 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 60.1393 + 60.1394 +While talking about the problems encountered by Domain Specific Languages (DSLs), we focus on implications for the runtime system, due to its central role in the claims. At the same time we will support the hypothesis that embedded-style DSLs are high-productivity for application programmers, have a low learning curve, and cause low disruption to current programming practices. While doing this we set the ground work for the next section, where we show that the main effort of implementing embedded-style DSLs is creating the runtime, and that when using the proto-runtime approach, embedded-style DSLs are low-effort to create and port and move the effort of porting for high performance out of the application and into the language. 60.1395 + 60.1396 +To give the needed depth, we'll first talk about a way to classify parallel languages according to the structure of their runtime (subsection \ref{subsec:ClassifyingLangs}). Then we'll talk about the sub-class of domain specific parallel languages, what sets them apart, and the implications for their runtime implementations (subsection \ref{subsec:DomSpecLangs}). That segues into the embedded style of language, and how the work of implementing them is mainly the work of implementing their runtime (subsection \ref{subsec:EmbeddedDSLs}). 60.1397 + 60.1398 +Once that reduction from parallel languages in general to embedded style domain specific ones in particular is done, we'll give more on what embedded style DSLs look like from an application programmer's view (subsection \ref{subsec:AppProgViewOfDSL}). We will include depth on a particular embedded-style language, showing sample code that uses the constructs, then delving into needs within the implementation of that language, and behavior of the constructs during a run (subsection []). 60.1399 + 60.1400 +The main implications for runtime systems, which were uncovered within the section, are summarized at the end (subsection []). 60.1401 + 60.1402 +\subsection{Classifying parallel languages by virtual processor based vs task based} 60.1403 +\label{subsec:ClassifyingLangs} 60.1404 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 60.1405 + 60.1406 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 60.1407 + 60.1408 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 60.1409 + 60.1410 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 60.1411 + 60.1412 + 60.1413 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 60.1414 + 60.1415 +One major axis for classifying parallel languages is whether they are virtual processor based or task based, which has implications for the structure of the runtime. 60.1416 + 60.1417 +A virtual processor is long-lived, and has a context that persists across suspend and resume, while a task has no preceding context to fit into and leaves no implied context when done. Posix threads is a standard example of a virtual processor based parallel language, as are UPC, Charm, TBB, and so forth. All of these create virtual processors (aka threads), which suspend when they invoke synchronizations and other parallel-language constructs then resume after the construct completes. Such virtual processors have their own private stack to save the information that is needed upon resume. 60.1418 + 60.1419 +In contrast, dataflow is a standard example of a task based language, as is CnC. For these languages, a task is passed all the information it needs at the point of creation, and is expected to run to completion. If a task needs to invoke a parallelism construct, that invocation normally ends the task, while information needed by following tasks is saved explicitly in shared variables, or passed to the runtime as a continuation that is then handed to the task created when the construct completes. 60.1420 + 60.1421 +Hybrids of the two also exist, such as OpenMP which implies thread creation, via the parallel-pragma, but also creates tasks via the for-pragma. As well, StarSs (OMPSs) mixes the two, with a main thread that creates meta-tasks that have to resolve their dependencies before being turned into executable tasks. Those tasks are also able to invoke barriers and other synchronization constructs, then resume. 60.1422 + 60.1423 +The runtime implementations of the two different types of execution model differ markedly. Virtual processor (VP) based runtimes have to create a stack for each VP created, and manage the interleaving of the CPU's hardware stack. They also require a mechanism to suspend and resume the VPs, and save them in internal structures while suspended. 60.1424 + 60.1425 +In contrast, task based runtimes need ultra-fast creation of tasks, and fast linkage from the end of one to the start of the next. They tend to keep the task-structures in a queue and discard them when complete. 60.1426 + 60.1427 +Hence, VP based runtimes revolve around storing suspended VPs inside structures that embody the constraints on when the VP can resume. But task based runtimes revolve around the conditions upon which to create new tasks, and the organization of the inputs to them. The runtimes for hybrid languages have characteristics of both. 60.1428 + 60.1429 + 60.1430 +\subsection{Domain specific parallel languages} 60.1431 +\label{subsec:DomSpecLangs} 60.1432 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 60.1433 + 60.1434 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 60.1435 + 60.1436 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 60.1437 + 60.1438 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 60.1439 + 60.1440 + 60.1441 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 60.1442 + 60.1443 +Now we'll talk about the sub-class of Domain Specific Languages (DSLs): what sets them apart from other parallel languages, how they potentially solve the issues with parallel programming, and the implications for their runtime implementations. 60.1444 + 60.1445 +DSLs can be any of the three basic language types (VP based, task-based or hybrid), but they are distinguished by having constructs that correspond to features of one narrow domain of applications. For example, we have implemented a DSL that is just for use in building hardware simulators [cite the HWSim wiki]. Its constructs embody the structure of simulators, and make building one fast and even simpler than when using a sequential language, as will be shown in Subsection []. The programmer doesn't think about concurrency, nor even about control flow, they simply define behavior of individual hardware elements and connect them to each other. 60.1446 + 60.1447 +It is this fit between language constructs and the mental model of the application that makes DSLs highly productive and easy to learn, at the same time, it is also what makes applications written in them more portable. Application patterns that have strong impact on parallel performance are captured as language constructs. The rest of the source code has less impact on parallel performance, so just porting the language is enough to get high performance on each hardware target. 60.1448 + 60.1449 +In practice, designing such a language is an art, and for some hardware targets, the language can become intrusive. For example, for porting to GPGPUs, their performance is driven by decomposition into many small, simple, kernels, which access memory in contiguous chunks. Fitting into this pattern forces rearrangement of the base sequential code, and even constrains choice of algorithm. Hence, a DSL that is portable to standard architectures as well as GPUs would place the GPU restrictions onto the code for all machines. However, much excellent work [polyhedral, others] is being done on automated tools to transform standard code to GPU form, which would lift the restrictions. Also, constructs such as the DKU pattern [] map well onto GPUs as well as standard hardware. 60.1450 + 60.1451 +\subsection{The embedded style of DSL} 60.1452 +\label{subsec:EmbeddedDSLs} 60.1453 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 60.1454 + 60.1455 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 60.1456 + 60.1457 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 60.1458 + 60.1459 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 60.1460 + 60.1461 + 60.1462 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 60.1463 + 60.1464 +We segue now into the embedded style of language, and show how the work of implementing them is mainly the work of implementing their runtime plus their complex domain constructs. We focus on embedded style domain specific languages because it is the least effort-to-create form of DSL, and making DSLs practical requires it to be low effort to create them and port them to various hardware targets. 60.1465 + 60.1466 + 60.1467 +An embedded-style language is one that uses the syntax of a base language, like C or Java, and adds constructs that are specific to the domain. An added construct may be expressed in custom syntax that is translated to into a library call, or else directly invoked by making a library call, as illustrated in Figure \ref{fig:EmbeddedEx}. Inside the library call, a primitive is used to escape the base language and enter the embedded language's runtime, which then performs the behavior of the construct. 60.1468 + 60.1469 + 60.1470 +\begin{figure}[h!tb] 60.1471 +{\noindent 60.1472 +{\footnotesize 60.1473 +{\normalsize Creating a new virtual processor (VP):} 60.1474 +\begin{verbatim} 60.1475 +newVP = SSR__create_VP( &top_VP_fn, paramsPtr, animatingVP ); 60.1476 +\end{verbatim} 60.1477 + 60.1478 +{\noindent {\normalsize sending a message between VPs:}} 60.1479 +\begin{verbatim} 60.1480 +SSR__send_from_to( messagePtr, sendingVP, receivingVP ); 60.1481 +\end{verbatim} 60.1482 + 60.1483 +{\noindent {\normalsize receiving the message (executed in a different VP):}} 60.1484 +\begin{verbatim} 60.1485 +messagePtr = SSR__receive_from_to( sendingVP, receivingVP ); 60.1486 +\end{verbatim} 60.1487 +} 60.1488 +} 60.1489 + 60.1490 +\caption 60.1491 +{Examples of invoking embedded-style constructs. 60.1492 +} 60.1493 +\label{fig:EmbeddedEx} 60.1494 +\end{figure} 60.1495 +An embedded-style language differs from a library in that it has a runtime system, and a way to switch from the behavior of the base language to the behavior inside the runtime. In contrast, libraries never leave the base language. Notice that this means, for example, that a posix threads library is not a library at all, but an embedded language. 60.1496 + 60.1497 +As a practical matter, embedded-style constructs normally have a thin wrapper that invokes the runtime. However, some DSLs perform significant effort inside the library before switching to the runtime, or else after returning from the runtime. These look more like traditional libraries, but still involve an escape from the base language and more importantly are designed to work in concert with the parallel aspects of the language. They concentrate key performance-critical aspects of the application inside the language, such as dividing work up, or, for example, implementing a solver for differential equations that accepts structures created by the divider. 60.1498 + 60.1499 +It is the appearance of constructs being library calls that brings the low-disruption benefit of embedded-style DSLs. The syntax is that of the base language, so the existing development tools and work flows remain intact when moving to an embedded style DSL. In addition, the fit between domain concepts and language constructs minimizes mental-model disruption when switching and makes the learning curve to adopt the DSL very low. 60.1500 + 60.1501 +\subsection{Application programmer's view of embedded-style DSLs} 60.1502 +\label{subsec:AppProgViewOfDSL} 60.1503 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 60.1504 + 60.1505 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 60.1506 + 60.1507 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 60.1508 + 60.1509 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 60.1510 + 60.1511 + 60.1512 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 60.1513 + 60.1514 +Well designed DSLs have very few constructs, yet capture the most performance-critical domain patterns, in a way that feels natural to the application programmer. This often means that data structures and usage patterns are part of the language. 60.1515 + 60.1516 +For example, a linear-equation-solving language would define a standard data structure for the coefficients of the equations, and supply a construct by which the language is asked to perform the work of solving them. This feels very much like a library, but the runtime system dynamically performs division of work according to the hardware, and implements communication between cores and a scheduler that load balances and tries to take advantage of data affinity and even computational accelerators. All of which puts performance in the hands of the runtime and is simple to use. 60.1517 + 60.1518 +An example of a DSL that we created using the proto-runtime approach is HWSim [], which is designed to be used for writing architectural simulators. 60.1519 + 60.1520 +When using HWSim, a simulator application is composed of just three things: netlist, behavior functions and timing functions. These are all sequential code that call HWSim constructs at boundaries, such as the end of behavior, and use HWSim supplied data structures. To use HWSim, one creates a netlist composed of elements and communication paths that connect them. A communication path connects an outport of the sending element to an inport of the receiving element. An action is then attached to the inport. The action is triggered when a communication arrives. The action has a behavior function, which changes the state of the element, and a timing function which calculates how much simulated time the behavior takes. 60.1521 + 60.1522 +The language itself consists of only a few standard data structures, such as \texttt{Netlist}, \texttt{Inport}, \texttt{Outport}, and a small number of constructs, such as \texttt{send\_comm} and \texttt{end\_behavior}. The advancement of simulated time is performed by a triggered action, and so is implied. The parallelism is also implied, by the only constraints on order of execution of actions being consistency. 60.1523 + 60.1524 +The only parallelism-related restriction is that a behavior function may only use data local to the element it is attached to. Parallel work is created within the system by outports that connect to multiple destination inports which means one output triggers multiple actions, and by behavior functions that generate multiple output communications each. 60.1525 + 60.1526 +Overall, simulator writers have fewer issues to deal with because time-related code has been brought inside the language, where it is reused across simulators, and because parallelism issues reduce to simply being restricted to data local to the attached element. Both these increase productivity of simulator writers, despite using a parallel language. The language has so few commands that it takes only a matter of days to become proficient (as demonstrated informally by new users of HWSim). Also, parallelism related constructs in the language are generic across hardware, eliminating the need to modify application code when porting to new hardware (if the language is used according to the recommended coding style). 60.1527 + 60.1528 +\subsection{Implementation of Embedded-style DSLs} 60.1529 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 60.1530 + 60.1531 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 60.1532 + 60.1533 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 60.1534 + 60.1535 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 60.1536 + 60.1537 + 60.1538 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 60.1539 + 60.1540 +When it comes to implementing an embedded-style of DSL, the bulk of the effort is in the runtime and the more complex domain specific constructs. 60.1541 + 60.1542 +Examples of constructs implemented for DSLs include Abstract Data Types (ADTs), like linked lists, hash tables, and priority queues. Also, full algorithms, like solvers for systems of equations, or even linear algebra operations on matrices. It will be seen in subsection[] that the proto-runtime approach causes the implementation for such constructs to be reused, with high performance, across all the hardware targets in a hardware class such as the class of shared-memory multi-core platforms. 60.1543 + 60.1544 +In addition, embedded style DSLs rely heavily on data types that are part of the language. These are often domain-specific such as \texttt{Netlist}, \texttt{Inport}, and \texttt{Outport} in HWSim, or \texttt{Protein} in a bio-informatics DSL, but can also be common such as \texttt{SparseMatrix} in domains like data mining and scientific applications. 60.1545 + 60.1546 + 60.1547 + During language design, common patterns that consume significant development time or computation are placed into the language. Also, any patterns that expose hardware configuration, such as the number and size of pieces of work should be pulled into the language to aid portability. 60.1548 + 60.1549 +If such design is successful then porting the application reduces to just porting the language. When the language has successfully captured the main computational patterns of the domain, then the application code encapsulates only a small portion of the performance, so it does not need to be tuned. Further, when patterns that expose hardware-motivated choices or hardware-specific commands are in the language, then the application code has nothing that needs to change when the hardware changes. 60.1550 + 60.1551 +For example, HWSim pulls hardware-specific patterns inside the language by handling all inter-core communications inside the language, and also by aggregating multiple elements together on the same core to tune work-unit size. 60.1552 + 60.1553 +The advantage of placing these into the language, instead of application code, is portability and productivity. 60.1554 + 60.1555 + 60.1556 +\subsection{Implementation Details of Embedded-style DSLs} 60.1557 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 60.1558 + 60.1559 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 60.1560 + 60.1561 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 60.1562 + 60.1563 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 60.1564 + 60.1565 + 60.1566 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 60.1567 + 60.1568 +? 60.1569 + 60.1570 +Figure [] shows\ the implementation of the wrapper library for HWSim's send\_and\_idle construct, which sends a communication on the specified outport, and then causes the sending element to go idle. Of note is the packaging of information for the runtime. It is placing into the HWSimSemReq data structure, and then the application work is ended by switching to the runtime. The switch is via the send\_and\_suspend call, which is a primitive implemented in assembly that jumps out of the base C language and into the runtime. 60.1571 + 60.1572 +The switch to the runtime can be done in multiple ways. Our proto-runtime uses assembly to manipulate the stack and registers. For posix threads language, when implemented in Linux, the hardware trap instruction is used to switch from application to the OS. The OS serves as the runtime that implements the thread behavior. 60.1573 + 60.1574 +The core is used by the construct implementation differently for VP based languages vs for task based languages. 60.1575 + 60.1576 +For VP based languages, once inside the runtime, a synchronization construct performs the behavior shown abstractly in Figure []. In essence, a synchronization construct is a variable length delay, which waits for activities outside the calling code to cause specific conditions to become true. These activities could be actions taken by other pieces of application code, such as releasing a lock, or they could be hardware related, such as waiting for a DMA transfer to complete. 60.1577 + 60.1578 +While one piece of application code (in a VP) is suspended, waiting, other pieces can use the core to perform their work, as long as the conditions for those other pieces are satisfied. Hence, the runtime's construct implementation checks if conditions are met, and if not stores the suspended piece (VP). If the construct can change conditions for others, it updates them. For example, the lock-release construct updates state for VPs waiting for the lock. Separately, for VPs whose conditions have been met, when a core becomes available, the runtime chooses which VP to assign to which core. 60.1579 + 60.1580 +These are the two behaviors a construct performs inside the runtime: managing conditions on which work is free, and managing assignment of free work onto cores. 60.1581 + 60.1582 +For task based languages, a task runs to completion then always switches to the runtime at the end. Hence, no suspend and resume exists. Once inside, the runtime's job is to track conditions on which tasks are ready to run, or which to create. For example, in dataflow, a task is created only once all conditions for starting it are met. Hence, the only language constructs are "instantiate a task-creator", "connect a task creator to others", and "end a task". During a run, all of the runtime behavior takes place inside the "end a task" construct, where the runtime sends outputs from the ending task to the inputs of connected task-creators. The "send" action modifies internal runtime state, which represents the order of inputs to a creator on all of its input ports. When all inputs are ready, it creates a new task, then when hardware is ready, assigns the task to a core. 60.1583 + 60.1584 + 60.1585 +One survey[] discusses DSLs for a variety of domains, and this list of DSLs was copied from their paper: 60.1586 +\begin{itemize} 60.1587 +\item In Software Engineering: Financial products [12, 22, 24], behavior control and coordination [9, 10], software architectures [54], and databases [39]. 60.1588 +\item Systems Software: Description and analysis of abstract syntax trees [77, 19, 51], video device driver specifications [76], cache coherence protocols [15], data structures in C [72], and operating system specialization [63]. 60.1589 +\item Multi-Media: Web computing [14, 35, 4, 33], image manipulation [73], 3D animation [29], and drawing [44]. 60.1590 +\item Telecommunications: String and tree languages for model checking [48], communication protocols [6], telecommunication switches [50], and signature computing [11]. 60.1591 +\item Miscellaneous: Simulation [2, 13], mobile agents [36], robot control [61], solving partial differential equations [26], and digital hardware design [41]. 60.1592 +\end{itemize} 60.1593 + 60.1594 +\subsection{Summary of Section} 60.1595 + [[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 60.1596 + 60.1597 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 60.1598 + 60.1599 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 60.1600 + 60.1601 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 60.1602 + 60.1603 + 60.1604 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 60.1605 + 60.1606 +This section illustrated the promise of DSLs for solving the issues with parallel programming. The HWSim example showed that well designed parallel DSLs can actually improve productivity, and have a low learning curve, as well as reduce the need for touching application code when moving to new target hardware. The section showed that the effort of implementing an embedded style DSL is mainly that of implementing its runtime and complex domain constructs, and that a well-designed DSL captures most of the performance-critical aspects of an application inside the DSL constructs. Hence, porting effort reduces to just performance-tuning the language (with caveats for some hardware). This effort is, in turn, reused by all the applications that use the DSL. 60.1607 + 60.1608 +The stumbling point of DSLs is the small number of users, after all, how many people write hardware simulators? Perhaps a few thousand people a year write or modify applications suitable for HWSim. That means the effort to implement HWSim has to be so low as to make it no more effort than writing a library, effectively a small percentage of a simulator project. 60.1609 + 60.1610 +The runtime is a major piece of the DSL implementation, so reducing the effort of implementing the runtime goes a long way to reducing the effort of implementing a new DSL. 60.1611 + 60.1612 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 60.1613 +\section{Description} 60.1614 +\label{sec:idea} 60.1615 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 60.1616 + 60.1617 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 60.1618 + 60.1619 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 60.1620 + 60.1621 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 60.1622 + 60.1623 + 60.1624 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 60.1625 + 60.1626 +? 60.1627 + 60.1628 + 60.1629 +Now that we have made the case that embedded style DSLs have potential to solve many parallel programming issues, and that a major obstacle to uptake of them is their implementation effort, we describe the proto-runtime concept and show how it addresses this obstacle to DSLs. As shown, embedded style DSL implementation effort and porting effort is mainly that of creating the runtime and implementing the more complex language constructs. We show here that the proto-runtime approach dramatically reduces the effort of creating a DSL runtime, through a number of features. 60.1630 + 60.1631 + 60.1632 +\begin{figure}[ht] 60.1633 + \centering 60.1634 + \includegraphics[width = 2in, height = 1.8in]{../figures/PR_three_pieces.pdf} 60.1635 + \caption{Shows how the proto-runtime approach modularizes the implementation of a runtime. The three pieces are the proto-runtime implementation, an implementation of the language construct behaviors, and an implementation of the portion of a scheduler that chooses which work is assigned to which processor. } 60.1636 + \label{fig:PR_three_pieces} 60.1637 +\end{figure} 60.1638 + 60.1639 + 60.1640 +The main feature is the proto-runtime's approach to modularizing the runtime code. As shown in Fig \ref{fig:PR_three_pieces}, it breaks the runtime into three pieces: a cross-language piece, which is the proto-runtime implementation, a piece that implements the language's constructs and plugs into the proto-runtime, and a piece that assigns work onto hardware and also plugs into the proto-runtime. 60.1641 + 60.1642 +The modularization appears to remain valid across parallel languages and execution models, and we present underlying patterns that support this observation. We analyze the basic structure of a synchronization construct, and point out how the proto-runtime modularization is consistent with it. 60.1643 + 60.1644 +\subsection{Creating an eDSL} 60.1645 + 60.1646 + 60.1647 +\begin{figure}[ht] 60.1648 + \centering 60.1649 + \includegraphics[width = 2in, height = 1.8in]{../figures/eDSL_two_pieces.pdf} 60.1650 + \caption{An embedded style DSL consists of two parts: a runtime and a wrapper library that invokes the runtime} 60.1651 + \label{fig:eDSL_two_pieces} 60.1652 +\end{figure} 60.1653 + 60.1654 +As shown in Fix \ref{fig:eDSL_two_pieces}, to create an embedded style DSL (eDSL), do two things: create the runtime and create a wrapper-library that invokes the runtime and also implements the more complex language constructs. 60.1655 + 60.1656 +As seen in Fig X, a library call that invokes a language construct is normally a thin wrapper that only communicates to the runtime. It places information to be sent to the runtime into a carrier, then invokes the runtime via a primitive. The primitive suspends the base language execution and switches the processor over to the runtime code. 60.1657 + 60.1658 +\subsection{The Proto-Runtime Modularization} 60.1659 + 60.1660 +\subsubsection{Dispatch pattern} 60.1661 +-- standardizes runtime code 60.1662 +-- makes familiar going from one lang to another 60.1663 +-- makes reuse realistic, as demonstrated by VSs taking SSR constructs 60.1664 + 60.1665 +-- show the enums, and the switch table 60.1666 + 60.1667 +-- point out how the handler receives critical info -- the semEnv, req struct and calling slave 60.1668 + 60.1669 +\subsubsection{The Request Handler} 60.1670 +-- cover what a request handler does.. connect it to the wrapper lib, and the info loaded into a request struct. 60.1671 + 60.1672 +-- give code of a request handler.. within on-going example of implementing pthreads, or possibly HWSim, or pick a new DSL 60.1673 + 60.1674 +\subsection{Exporting a performance-oriented machine view } 60.1675 +The proto-runtime interface exports a view of the machine that shows performance-critical aspects. Machines that share the same architectural approach have the same performance-critical aspects, and differ only in the values. 60.1676 + 60.1677 +For example, the interface models cache-coherent shared-memory architectures as a collection of memory pools connected by networks. The essential variations among processor-chips are the sizes of the pools, the connections between them, such as which cores share the same L2 cache, and the latency and bandwidth between them. 60.1678 + 60.1679 +Hence, a single plugin can be written that gathers this information from the proto-runtime and uses it when deciding which work to assign to which core. Such a plugin will then be efficient across all machines that share the same basic architecture. 60.1680 + 60.1681 +This saves significant effort by allowing the same plugin to be reused for all the machines in the category. 60.1682 + 60.1683 +\subsection{Services Provided by the Proto-runtime} 60.1684 + 60.1685 +-- Put services into the low-level piece.. plugins have those available, and inherit lang independent such as debugging, perf counters.. provides effort reduction because lang doesn't have to implement these services. 60.1686 + 60.1687 +-- -- examples of iherited lang services inside current proto-runtime: debugging and perf-tuning.. verification, playback have been started (?) 60.1688 + 60.1689 +-- -- examples of plugin services: creation of base VP, the switch primitives, the dispatch pattern (which reduces effort by cleanly separating code for each construct), handling consistency model (?), handling concurrency 60.1690 + 60.1691 +\subsection{eDSLs talking to each other} 60.1692 +-- show how VSs is example of three different DSLs, and H264 code is three different languages interacting (pthreads, OpenMP, StarSs) 60.1693 + 60.1694 +-- make case that proto-runtime is what makes this practical ! Their point of interaction is the common proto-runtime innards, which provides the interaction services.. they all use the same proto-runtime, and all have common proto-runtime objects, which is how the interaction becomes possible. 60.1695 + 60.1696 +\subsection{The Proto-runtime Approach Within the Big Picture} 60.1697 + 60.1698 +-- Give background on industry-wide, how have langs times machines.. 60.1699 +-- say that proto-runtime has synergistic advantages within this context. -- repeat that eDSLs talk to each other. 60.1700 +-- give subsubsection on MetaBorg for rewriting eDSL syntax into base lang syntax. 60.1701 +-- bring up the tools issue with custom syntax -- compiling is covered by metaborg re-writing.. can address debugging with eclipse.. should be possible in straight forward way that covers ALL eDSLs.. their custom syntax being stepped through in one window, and stepping through what they generate in separate window (by integrating generation step into eclipse).. even adding eclipse understanding of proto-runtime.. so tracks the sequence of scheduling units.. and shows the request handling in action in third window.. 60.1702 + 60.1703 +Preview idea that many players will contribute, and will get people that specialize in creating new eDSLs (such as one of authors).. 60.1704 +-- For them, code-reuse is reality, as supported by VSs example, 60.1705 +-- and the uniformity of the pattern becomes familiar, also speeding up development, as also supported by VSs, HWSim, VOMP, and DKU examples. 60.1706 +-- for those who only create a single eDSL, the pattern becomes a lowering of the learning curve, aiding adoption 60.1707 + 60.1708 +-- Restate and summarize the points below (covered above), showing how they combine to shrink the wide-spot where all the runtimes are. 60.1709 + 60.1710 +-- The low-level part implemented on each machine, exports a view of the machine that shows performance-critical aspects 60.1711 + 60.1712 +-- Collect machines into groups, based on performance critical aspects of hardware.. provides reduction in effort because only one plugin for entire group. 60.1713 + 60.1714 +-- Put services into the low-level piece.. plugins have those available, and inherit lang independent such as debugging.. provides effort reduction because lang doesn't have to implement these services. 60.1715 + 60.1716 + 60.1717 +\section{(outline and notes)} 60.1718 + 60.1719 +-- What a plugin looks like: 60.1720 + 60.1721 +-- -- pattern of parallel constructs.. ideas of Timeline, tie-point, animation, suspension, VP states, constraints, causality, work-units, meta-units, updates in constraint states attached to the meta-units 60.1722 + 60.1723 +-- -- a sych construct is something that creates a tie between two work-units. So, the logic of the construct simply establishes causality -- the ending of one work-unit causes the freedom to start animation of another. 60.1724 + 60.1725 +-- -- -- Examples: mutex is end of work-unit that frees lock causes freedom to start work-unit that gets the lock. They are causally tied. The semantics of the construct is the particular conditions existing inside the runtime (in this case ownership condition of a mutex), and what changes those conditions (in this case releasing lock removes one from owner, plus acquire-lock sets one as wanting the lock), and how freedom to be animated is affected by the changes in conditions (in this case, removal of ownership must precede gaining ownership) on what makes a work-unit free (in this case, being given ownership of the mutex), 60.1726 + 60.1727 +-- Hence, precisely, the parallelism model of the language defines constraints, which are implemented as state inside the runtime. Constructs provided do a number of things: signal bringing a set of constraints into existence (create a mutex), signal update to the state of those constraints (release mutex, state desire to acquire), and trigger the runtime to propagate those changes, which results in additional changes to states, including marking meta-units as free to be animated. cause creation of meta-units (explicitly as in VSs, or via creating entities that trigger creation as in dataflow, or via creating entities that consist of consecutive work-units as in pthreads). 60.1728 + 60.1729 + 60.1730 +-- Recipe for how to make the language plugin: time reduction is part due to simplifying the parallelism construct logic.. 60.1731 + 60.1732 + 60.1733 + 60.1734 + 60.1735 +\subsection{The Cross-language Patterns Behind the Proto-runtime} 60.1736 + 60.1737 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 60.1738 + 60.1739 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 60.1740 + 60.1741 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 60.1742 + 60.1743 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 60.1744 + 60.1745 + 60.1746 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 60.1747 + 60.1748 +An application switches to the runtime, which does scheduling work then switches back to application code. 60.1749 + 60.1750 + 60.1751 +\subsection{Some Definitions} 60.1752 + 60.1753 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 60.1754 + 60.1755 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 60.1756 + 60.1757 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 60.1758 + 60.1759 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 60.1760 + 60.1761 + 60.1762 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 60.1763 + 60.1764 +We adopt the concepts of work-unit, virtual processor (VP), animation, and tie-point as discussed in a previous paper []. A work-unit is the trace of instructions executed between two successive switches to the runtime, along with the data consumed and produced during that trace. A Virtual Processor is defined as being able to animate either the code of a work-unit or else another VP, and has state that it uses during animation, organized as a stack. Animation is definedd as causing time of a virtual processor to advance, which is equivalent to causing state changes according to instructions, while suspension halts animation, and consequently causes the end of a work-unit (a more complete definition of animation can be found in the dissertation of Halle[]). A tie-point connects the end of one work-unit to the beginning of one in a different VP, so a tie-point represents a causal relationship between two work-units, and establishes an ordering between those work-units, effectively tying the time-line of the VP animating one to the time-line of the VP animating the other work-unit. 60.1765 + 60.1766 +In addition, we introduce a definition of the word task, which is a single work-unit coupled to a virtual-processor that comes into existence to animate the work-unit and dissipates at completion of the work-unit. By definition of work-unit, a task cannot suspend, but rather runs to completion. If the language defines an entity that has a timeline that can be suspended by switching to the runtime, then such an entity is not a task. Pure Dataflow[] specifies tasks that fit our definition. 60.1767 + 60.1768 +\subsection{Handling Memory Consistency Models} 60.1769 + 60.1770 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 60.1771 + 60.1772 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 60.1773 + 60.1774 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 60.1775 + 60.1776 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 60.1777 + 60.1778 + 60.1779 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 60.1780 + 60.1781 +Weak memory models can cause undesired behavior when work-units on different cores communicate through shared variables. Specifically, the receiving work-unit can see memory operations complete in a different order than the code of the sending work-unit specifies. 60.1782 + 60.1783 +For example, consider a proto-runtime implemented on shared memory hardware that has a weak consistency model, along with a language that implements a traditional mutex lock. All memory operations performed in the VP that releases the lock should be seen as complete by the VP that next acquires the lock. 60.1784 + 60.1785 +It is up to the proto-runtime to enforce this, using hardware primitives. It has to ensure that all memory operations performed, by a task or VP, before switching to the runtime are completed before any dependent task or VP is switched into from the runtime. More precisely, the proto-runtime has to ensure that all memory operations performed by a work-unit are visible in program order to any tied work-units. In some cases the language plugin has to alert the proto-runtime of the causality between work-units. 60.1786 + 60.1787 + 60.1788 +The proto-runtime does not, however, protect application code that attempts to communicate between VPs or tasks directly, without using a parallelism construct to protect the communication. 60.1789 + 60.1790 + 60.1791 + 60.1792 +======= 60.1793 + 60.1794 + I plan to explain VMS as a universal pattern that exists in all runtimes: that is, that the application switches to runtime, which does a scheduling decision and then switches back. I'll explain it first with just master and slaves, leaving out the core\_loop. Explain it as a normal runtime that has had two key pieces removed and replaced with interfaces. The language supplies the missing pieces. Then, introduce the core\_loop stuff as a performance enhancement used when lock acquisition dominates (as it does on the 4 socket 40 core machine). 60.1795 + Next, give HWSim as an example of a real domain specific (it's working, ref manual attached), and focus on how the modularity allowed pulling constructs from other languages (singleton and atomic), and a breakdown of implementation time vs design time, and so on. Highlight how VMS's features for productivity and encapsulation solve the practical problems for domain-specific languages. 60.1796 + Finally, show that VMS performance is good enough, by going head-to-head with pthreads and OpenMP (doing a VMS OpenMP implementation now). And also StarSs if I have time. I'll run overhead-measuring on them, and also regular benchmarks. 60.1797 + 60.1798 +================= 60.1799 + 60.1800 +\subsection{The patterns} 60.1801 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 60.1802 + 60.1803 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 60.1804 + 60.1805 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 60.1806 + 60.1807 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 60.1808 + 60.1809 + 60.1810 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 60.1811 + 60.1812 + 60.1813 +Soln: modularize runtime, to reduce part have to mess with, hide part that has low-level details, reuse low-level tuning effort, and reuse lang-spec parts. 60.1814 + 60.1815 +Benefits: lang impl doesn't have to touch low-level details, inherit centralized services, can reuse code from other languages to add features. 60.1816 + 60.1817 +Performance must be high, or the labor savings don't matter. By isolating the low-level details inside the proto-runtime, they can be intensively tuned, then all the languages inherit the effort. 60.1818 + 60.1819 +Part of what makes this so easy is the dispatch pattern.. adding a construct reduces to adding into switch and writing handler.. borrow constructs by taking the handler from the other lang. 60.1820 + 60.1821 +By isolating the low-level details inside the proto-runtime, they can be intensively tuned, then all the languages inherit the effort. Compare that to current practices, where the runtime code is monolithic.. each language has to separately modify the runtime, understanding and dealing with the concurrency, and then on a new machine, each language has to re-tune the low-level details, worrying about the consistency model on that machine, how its particular fence and atomic instructions work, and so on. 60.1822 +We spent 2 months performance tuning the current version, but only 18 hours implementing VSs on top of it, and VSs inherited the benefit from all that effort. So did VOMP, and SSR, and VCilk, and so on.. each time we improved the proto-runtime, all the languages improved, with no effort on the part of the language creator. 60.1823 + 60.1824 + 60.1825 +\subsubsection{Views of synchronization constructs} 60.1826 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 60.1827 + 60.1828 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 60.1829 + 60.1830 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 60.1831 + 60.1832 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 60.1833 + 60.1834 + 60.1835 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 60.1836 + 60.1837 +One view of sync constructs is that they are variable-length calls. The 60.1838 +basic hardware does this by stalling the pipeline. 60.1839 + 60.1840 +Another view is that they mark the boundary of a communication made via shared read/write. A load or store of a single location has a precise boundary enforced by the hardware, but if a pipeline desires to load, modify, then write a single location it has to have additional hardware. It has to make the multiple primitive load/store operations appear as a single operation. 60.1841 + 60.1842 +Moving up to the application level, the same pattern exists: an operation the application wants to do may involve many loads and stores, but it wants the collection to appear as a single indivisible operation. So the application-level equivalent of a load or store involves multiple memory locations but is to be treated as a single indivisible operation. This requires the application-level equivalent of the hardware that made the read-modify-write into a single indivisible operation. That equivalent is what a synchronization construct is. The reason a sync construct takes a variable amount of time is that it waits until all other indivisible operations that might conflict have completed. 60.1843 + 60.1844 +Another way to think of the sync construct is that it enforces sharp communication boundaries. The multiple read and write operations are treated as a single communication with the shared-state. If any other part of the application sees only part of the communication, it sees something inconsistent and thus wrong. So the sync constructs ensure that communications are complete, so the parts of the application only see complete communications from other parts. 60.1845 + 60.1846 +\subsubsection{Universal Runtime Patterns} 60.1847 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 60.1848 + 60.1849 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 60.1850 + 60.1851 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 60.1852 + 60.1853 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 60.1854 + 60.1855 + 60.1856 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 60.1857 + 60.1858 +Unified pattern within parallel languages: create multiple timelines, then control relative progress of them, and control location each chunk of progress takes place. 60.1859 + 60.1860 +Another universal pattern: code runs, switches to runtime, some point later switches back to code, making application run be a collection of trace segments bounded by runtime calls. 60.1861 +The runtime tracks constraints (dependencies) among units, creates and destroys units, and assigns ready units to hardware. 60.1862 + 60.1863 +Units have a life-line, which is fundamental to parallel computation, as demonstrated in a paper by some of the authors []. 60.1864 + 60.1865 +Every unit has a meta-unit that represents it in the runtime. A unit is defined as the trace of application code that exists between two scheduling decisions. Looking at this in more detail, every runtime has some form of internal bookkeeping state for a unit, used to track constraints on it and make decisions about when and where to execute. This exists even if that state is just a pointer to a function that sits in a queue. We call this bookkeeping state for a unit the meta-unit. 60.1866 + 60.1867 +Each unit also has a life-line, which progresses so: creation of the meta-unit \pointer , state updates that affect constraints on the unit \pointer, the decision is made to animate the unit \pointer, movement of the meta-unit plus data to physical resources that do the animation \pointer , animation of the unit, which does the work \pointer, communication of state-update, that unit has completed, and hardware is free \pointer , constraint updates within runtime, possibly causing new meta-unit creations or freeing other meta-units to be chosen for animation. This repeats for each unit. Each step is part of the model. 60.1868 + 60.1869 +Note a few implications: first, many activities internal to the runtime are part of a unit's life-line, and take place when only the meta-unit exists, before or after the work of the actual unit; second, communication that is internal to the runtime is part of the unit life-line, such as state updates; third, creation may be implied, such as in pthreads, or triggered such as in dataflow, or be by explicit command such as in StarSs, and once created, a meta-unit may languish before the unit it represents is free to be animated. 60.1870 + 60.1871 +\subsubsection{Putting synchronization constructs together with universal runtime patterns} 60.1872 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 60.1873 + 60.1874 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 60.1875 + 60.1876 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 60.1877 + 60.1878 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 60.1879 + 60.1880 + 60.1881 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 60.1882 + 60.1883 +Putting these together, gives us that any parallelism construct that has a synchronization behavior causes the end of a work-unit, and a switch to the runtime. The code following the construct is a different work-unit that will begin after the constraint implied by the construct is satisfied. 60.1884 + 60.1885 +The runtime is made up of the infrastructure for the constraints and assignment, such as communicating bookkeeping state between cores, and protecting internal runtime updates of shared information. Plus, the logic of the constructs and logic of choosing an assignment of work to cores. 60.1886 + 60.1887 +For large machines, the infrastructure dominates the time to execute a parallelism construct, while for smaller machines, like single-socket, the logic of constructs and assignments has a chance to be significant. 60.1888 + 60.1889 +\begin{figure}[ht] 60.1890 + \centering 60.1891 + \includegraphics[width = 2in, height = 1.8in]{../figures/SCG_stylized_for_expl.pdf} 60.1892 + \caption{Something to help understanding} 60.1893 + \label{fig:SCG_expl} 60.1894 +\end{figure} 60.1895 + 60.1896 + 60.1897 + 60.1898 + 60.1899 +%%%%%%%%%%%%%%%%%%%%% 60.1900 +\section{The Details} 60.1901 +[[Hypothesis: Embedded-style DSLs -> high productivity + low learning curve + low disruption + low app-port AND quick time to create + low effort to lang-port + high perf across targets]] 60.1902 +[[Claims: modularize runtime, mod is fund patterns, mod sep lang logic from RT internals, mod makes internal reusable & lang inherit internal perf tune & inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 60.1903 + 60.1904 +The interfaces between lang logic and proto-runtime. 60.1905 + 60.1906 +Demonstrate: modular runtime, how reduces part have to mess with, hides part that has low-level details, reuses low-level tuning effort, and reuses lang-spec parts. 60.1907 + 60.1908 +Demonstrate Benefits: lang impl doesn't touch low-level details, inherits centralized services (debug support), reuses code from other languages to add features. 60.1909 + 60.1910 +\subsection{Reuse of Language Logic} 60.1911 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 60.1912 + 60.1913 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 60.1914 + 60.1915 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 60.1916 + 60.1917 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 60.1918 + 60.1919 + 60.1920 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 60.1921 + 60.1922 +Demonstrate reuse of language logic: 60.1923 +All the languages have copied singleton, atomic, critical section and transaction. In VOMP, took the task code from VSS, in VSS, took the send and receive code from SSR.. for DKU, took the code almost verbatim from earlier incarnation of these ideas, and welded it into SSR, and took VSs tasks and put into SSR. Thus, circle completes.. VSs took from SSR, now SSR takes from VSs.. pieces and parts are being borrowed all over the place and welded in where they're needed. 60.1924 + 60.1925 +Part of what makes this so easy is the dispatch pattern.. adding a construct reduces to adding into switch and writing handler.. borrow constructs by taking the handler from the other lang. 60.1926 + 60.1927 +Another part is that code for the constructs is isolated from concurrency details, which are inside the proto-runtime. All the dynamic system issues, and best way to impl locks, and need for fences, and so on is isolated from the construct logic. This isolation is also how porting effort is lowered (or in many cases eliminated), and is how runtime performance is kept high. 60.1928 + 60.1929 +? 60.1930 + 60.1931 +Performance must be high, or the labor savings don't matter. By isolating the low-level details inside the proto-runtime, they can be intensively tuned, then all the languages inherit the effort. Compare that to current practices, where the runtime code is monolithic.. each language has to separately modify the runtime, understanding and dealing with the concurrency, and then on a new machine, each language has to re-tune the low-level details, worrying about the consistency model on that machine, how its particular fence and atomic instructions work, and so on. 60.1932 +We spent 2 months performance tuning the current version, but only 18 hours implementing VSs on top of it, and VSs inherited the benefit from all that effort. So did VOMP, and SSR, and VCilk, and so on.. each time we improved the proto-runtime, all the languages improved, with no effort on the part of the language creator. 60.1933 + 60.1934 +? 60.1935 + 60.1936 +In addition to runtime performance, application level performance must be high. The runtime's performance only affects overhead, and so is only a factor for small work-unit (task) sizes. But data affinity affects performance for all work. 60.1937 + 60.1938 +The proto-runtime approach partially addresses this by giving the language the opportunity to directly control placement of work. This isn't possible when building on top of threads, because the scheduling is in a separate, lower-level, layer where assignment of work to core is made in isolation, blind to language constructs and 60.1939 +other application features. 60.1940 + 60.1941 + 60.1942 + 60.1943 + 60.1944 +%%%%%%%%%%%%%%%%%%%%% 60.1945 +\section{Measurements} 60.1946 + 60.1947 +\subsection{Implementation time} 60.1948 + 60.1949 + 60.1950 +\subsection{Runtime and Application Performance} 60.1951 + 60.1952 + 60.1953 +%%%%%%%%%%%%%%%%%%%%% 60.1954 +\section{Related Work} 60.1955 + 60.1956 + 60.1957 +%%%%%%%%%%%%%%%%%%%%% 60.1958 +\section{Conclusion and Future Work} 60.1959 +\label{sec:conclusion} 60.1960 + 60.1961 + 60.1962 + 60.1963 +\end{document} 60.1964 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 60.1965 +Here is an example of netlist creation: 60.1966 + 60.1967 +The circuit has two elements, each with one input port, one output port, and a single activity-type. The elements are cross-coupled, so output port of one connects to input port of the other. The input port has the activity-type attached as its trigger. The activity is empty, and just sends a NULL message on the output port. The activity's duration in simulated time and the resulting communication's flight duration in simulated time are both constants. 60.1968 + 60.1969 + Note that HWSimElem data type is generic. An elem is specialized by declaring inports and outports, and by connecting activity types to in-ports. Behavior is attached to an element by attaching activity types to in-ports of the element. 60.1970 + 60.1971 +First, here is the top-level function that creates and returns the netlist structure: 60.1972 + 60.1973 +To use HWSim, one creates a netlist composed of elements and communication paths connecting them. An element has a number of in-ports and outports, and a communication path connects an outport of the source element to an inport of the destination elements. The inport has an action attached, which in turn has a behavior function and a timing function, both of which are triggered by the arrival of a communication. The behavior function has local persistent state of the element available to use, and can generate out-going communications. The timing function calculates how much Guest (simulated) time the behavior spanned. In addition, communication paths have an attached function that calculates time from being sent until arrival of the communication. Both the behavior and timing function are application-programmer provided. The entire simulator application is composed of those three things: netlist, behavior functions and timing functions, and all are sequential code. 60.1974 + 60.1975 +The embedded DSL consists of standard data structures, such as netlist, inport, outport, that the application must use in the language-defined way, and a small number of language calls, such as send_comm and end_behavior. The advancement of simulated time is implied, and the parallelism is implied. The only parallelism-related restriction is that a behavior function may only use data local to the element it is attached to. If state in the hardware is shared, such as registers or memory, then other elements access that state by sending communications to the element that contains the state. Parallelism is created within the system by outports that connect to muliple destination inports, and by behavior functions that generate multiple output communications each. 60.1976 + 60.1977 + 60.1978 +\begin{small}\begin{verbatim} 60.1979 +HWSimNetlist * 60.1980 +createPingPongNetlist() 60.1981 + { HWSimNetlist *netlist; 60.1982 + HWSimElem **elems; 60.1983 + HWSimActivityType **activityTypes; 60.1984 + HWSimCommPath **commPaths; 60.1985 + int32 numElems, numActivityTypes, numCommPaths; 60.1986 +\end{verbatim}\end{small} 60.1987 + 60.1988 +The first thing to do is create the netlist structure, which holds three things: element structs, activity type structs, and communication path structs. It also has two collections of pointers to the traces collected during the run, but these are handled internally by HWSim. 60.1989 +\begin{small}\begin{verbatim} 60.1990 + netlist = malloc( sizeof(HWSimNetlist) ); 60.1991 + 60.1992 + numElems = 2; 60.1993 + elems = malloc( numElems * sizeof(HWSimElem *) ); 60.1994 + 60.1995 + numCommPaths = 2; 60.1996 + commPaths = malloc( numCommPaths * sizeof(HWSimCommPath *) ); 60.1997 + 60.1998 + numActivityTypes = 1; 60.1999 + activityTypes = malloc( numActivityTypes * sizeof(HWSimActivityType *) ); 60.2000 + 60.2001 + netlist->numElems = numElems; 60.2002 + netlist->elems = elems; 60.2003 + netlist->numCommPaths = numCommPaths; 60.2004 + netlist->commPaths = commPaths; 60.2005 + netlist->numActivityTypes = numActivityTypes; 60.2006 + netlist->activityTypes = activityTypes; 60.2007 +\end{verbatim}\end{small} 60.2008 + 60.2009 +Now, create the activity types. During the run, an activity instance is created each time a communication arrives on an in-port. The activity instance is a data structure that points to the activity type. The activity type holds the pointers to the behavior and timing functions. 60.2010 +\begin{small}\begin{verbatim} 60.2011 + //have to create activity types before create elements 60.2012 + //PING_PONG_ACTIVITY is just a #define for readability 60.2013 + netlist->activityTypes[PING_PONG_ACTIVITY] = createPingPongActivityType(); 60.2014 +\end{verbatim}\end{small} 60.2015 + 60.2016 +Next, create the elements, and pass the netlist structure to the creator. It will take pointers to activity types out of the netlist and place them into the in-ports of the elements. 60.2017 +\begin{small}\begin{verbatim} 60.2018 + elems[0] = createAPingPongElem( netlist ); //use activity types from netlist 60.2019 + elems[1] = createAPingPongElem( netlist ); 60.2020 +\end{verbatim}\end{small} 60.2021 + 60.2022 +Now, the reset in-port of one of the elements has to be set up to trigger an activity. Every element has a reset in-port, but normally they are set to NULL activity type. Here, we want only one of the two elements to have an activity triggered when the reset signal is sent to start the simulation. 60.2023 + 60.2024 +Note that during initialization, all the elements become active, each with its own timeline, but unless an activity is triggered in them they remain idle, with their timeline suspended and not making progress. Only ones that have an activity type attached to their reset in-port will begin to do something in simulated time when simulation starts. 60.2025 +\begin{small}\begin{verbatim} 60.2026 + //make reset trigger an action on one of the elements 60.2027 + elems[1]->inPorts[-1].triggeredActivityType = 60.2028 + netlist->activityTypes[PING_PONG_ACTIVITY]; 60.2029 +\end{verbatim}\end{small} 60.2030 + 60.2031 +Now, connect the elements together by creating commPath structures. A comm path connects the out-port of one element to the in-port of another. A given port may have many comm paths attached. However, an in-port has only one kind of activity type attached, and all incoming communications fire that same activity. There are multiple kinds of activity, including kinds that have no timing, and so can act as a dispatcher. These end themselves with a continuation activity, which is chosen according to the code in the behavior function. So, a commPath only connects an out port to an in port. 60.2032 + 60.2033 +This code sets fixed timing on the comm paths. It also uses a macro for setting the connections. The format is: sending elem-index, out-port, dest elem-index, in-port: 60.2034 +\begin{small}\begin{verbatim} 60.2035 + //elem 0, out-port 0 to elem 1, in-port 0 60.2036 + commPaths[0]= malloc(sizeof(HWSimCommPath)); 60.2037 + setCommPathValuesTo(commPaths[0],0,0,1,0); 60.2038 + commPaths[0]->hasFixedTiming = TRUE; 60.2039 + commPaths[0]->fixedFlightTime = 10; //all time is stated in (integer) units 60.2040 + 60.2041 + //elem 1, out-port 0 to elem 0, in-port 0 60.2042 + commPaths[1]= malloc(sizeof(HWSimCommPath)); 60.2043 + setCommPathValuesTo(commPaths[1], 1,0,0,0); 60.2044 + commPaths[1]->hasFixedTiming = TRUE; 60.2045 + commPaths[1]->fixedFlightTime = 10; //all time is stated in (integer) units 60.2046 +\end{verbatim}\end{small} 60.2047 + 60.2048 +done building netlist, return it 60.2049 +\begin{small}\begin{verbatim} 60.2050 + return netlist; 60.2051 + } 60.2052 +\end{verbatim}\end{small} 60.2053 + 60.2054 +The macro that sets the connections inside a comm path struct 60.2055 +\begin{small}\begin{verbatim} 60.2056 +#define setCommPathValuesTo( commPath, fromElIdx, outPort, toElIdx, inPort)\ 60.2057 +do{\ 60.2058 + commPath->idxOfFromElem = fromElIdx; \ 60.2059 + commPath->idxOfFromOutPort = outPort; \ 60.2060 + commPath->idxOfToElem = toElIdx; \ 60.2061 + commPath->idxOfToInPort = inPort; \ 60.2062 + }while(0); //macro magic for namespace 60.2063 +\end{verbatim}\end{small} 60.2064 + 60.2065 +Creating an element involves creating arrays for the in-ports and out-ports, then configuring the in-ports. The out-ports are automatically filled in during simulation start-up, by HWSim. The most interesting feature is that each in-port is assigned an activity type, which all arriving communications trigger. During the simulation, each incoming communication creates an activity instance, which points to this triggered activity type. The behavior and timing of the instance are calculated by the behavior and timing functions in the activity type. Notice that the activity type pointers are taken from the netlist, so they have to be created before creating the elements. 60.2066 +\begin{small}\begin{verbatim} 60.2067 +HWSimElem * 60.2068 +createAPingPongElem( HWSimNetlist *netlist ) 60.2069 + { HWSimElem *elem; 60.2070 + elem = malloc( sizeof(HWSimElem) ); 60.2071 + elem->numInPorts = 1; 60.2072 + elem->numOutPorts = 1; 60.2073 + elem->inPorts = HWSim_ext__make_inPortsArray( elem->numInPorts ); 60.2074 + elem->inPorts[-1].triggeredActivityType = IDLE_SPAN; //reset port 60.2075 + elem->inPorts[0].triggeredActivityType = netlist->activityTypes[PING_PONG_ACTIVITY]; 60.2076 + return elem; 60.2077 + } 60.2078 +\end{verbatim}\end{small} 60.2079 + 60.2080 +Creating an activity type involves setting the pointers to the behavior and timing functions, which are defined inside a separate directory where all the behavior and timing functions are defined. An activity may have behavior set to NULL, or timing set to NULL, and may have fixed timing. The structure has flags to state the combination. 60.2081 +\begin{small}\begin{verbatim} 60.2082 +HWSimActivityType * 60.2083 +createPingPongActivityType( ) 60.2084 + { HWSimActivityType *pingPongActivityType; 60.2085 + pingPongActivityType = malloc( sizeof(HWSimActivityType) ); 60.2086 + 60.2087 + pingPongActivityType->hasBehavior = TRUE; 60.2088 + pingPongActivityType->hasTiming = TRUE; 60.2089 + pingPongActivityType->timingIsFixed = TRUE; 60.2090 + pingPongActivityType->fixedTime = 10; 60.2091 + pingPongActivityType->behaviorFn = &pingPongElem_PingActivity_behavior; 60.2092 + return pingPongActivityType; 60.2093 + } 60.2094 +\end{verbatim} \end{small} 60.2095 + 60.2096 + 60.2097 +========= 60.2098 + 60.2099 +All behavior functions take a ptr to the activity instance they are executing the behavior of. The instance contains a pointer to the elem, and most behaviors will use the element's elemState field. It holds all the persistent state of the element, which remains between activities. 60.2100 + 60.2101 +Here is the behavior function from the ping-pong example: 60.2102 +\begin{small}\begin{verbatim} 60.2103 +void 60.2104 +pingPongElem_PingActivity_behavior( HWSimActivityInst *activityInst ) 60.2105 + { //NO_MSG is #define'd to NULL, and PORT0 to 0 60.2106 + HWSim__send_comm_on_port_and_idle( NO_MSG, PORT0, activityInst ); 60.2107 + } 60.2108 +\end{verbatim}\end{small} 60.2109 + 60.2110 +There are four ways a behavior can end: 60.2111 +\begin{description} 60.2112 +\item end, no continuation: 60.2113 +\begin{small}\begin{verbatim} HWSim__end_activity_then_idle( HWSimActivityInst *endingActivityInstance )\end{verbatim}\end{small} 60.2114 +\item end, with continuation: 60.2115 +\begin{small}\begin{verbatim} HWSim__end_activity_then_cont( HWSimActivityInst *endingActivityInstance, 60.2116 + HWSimActivityType *continuationActivityType)\end{verbatim}\end{small} 60.2117 +\item end by sending a communication, with no continuation: 60.2118 +\begin{small}\begin{verbatim} HWSim__send_comm_on_port_then_idle( void *msg, int32 outPort, 60.2119 + HWSimActivityInst *endingActivityInstance)\end{verbatim}\end{small} 60.2120 +\item end by sending a communication, with continuation: 60.2121 +\begin{small}\begin{verbatim} HWSim__send_comm_on_port_then_cont( void *msg, int32 outPort, 60.2122 + HWSimActivityInst *endingActivityInstance 60.2123 + HWSimActivityType *continuationActivityType)\end{verbatim}\end{small} 60.2124 + 60.2125 + 60.2126 +============= 60.2127 + 60.2128 + 60.2129 +\subsection{Activity Timing Functions} 60.2130 +All activity timing functions take a ptr to the activity instance they are calculating the timing of. The instance contains a pointer to the element the activity is in. The behavior function is free to communicate to the timing function by leaving special data inside the element state. The timing function might also simply depend on the current state of the element. 60.2131 + 60.2132 +Here's an example: 60.2133 +\begin{small}\begin{verbatim} 60.2134 +HWSimTimeSpan 60.2135 +sampleElem_sampleActivity_timing( HWSimActivityInst *activityInst ) 60.2136 + { 60.2137 + return doSomethingWithStateOfElem( sendingActivity->elem->elemState ); 60.2138 + } 60.2139 +\end{verbatim}\end{small} 60.2140 + 60.2141 +\subsection{Calculating the time-in-flight of a communication path} 60.2142 + 60.2143 +The timing function for a communication path is similar to that of an activity. Except, the timing might also depend on configuration data or state stored inside the comm path struct, so that is passed to the timing function as well. 60.2144 + 60.2145 +\begin{small}\begin{verbatim} 60.2146 +HWSimTimeSpan 60.2147 +commPath_TimeSpanCalc( HWSimCommPath *commPath, HWSimActivityInst *sendingActivity ) 60.2148 + { return doSomethingWithStateOfPathAndElem( commPath, sendingActivity->elem->elemState ); 60.2149 + } 60.2150 +\end{verbatim}\end{small} 60.2151 + 60.2152 + 60.2153 + 60.2154 +
61.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 61.2 +++ b/0__Papers/PRT/PRT__formal_def/latex/PRT__full_w_Henning_derived_formal_def.tex Sat Aug 03 19:24:22 2013 -0700 61.3 @@ -0,0 +1,2440 @@ 61.4 +%----------------------------------------------------------------------------- 61.5 +% 61.6 +% Template for sigplanconf LaTeX Class 61.7 +% 61.8 +% Name: sigplanconf-template.tex 61.9 +% 61.10 +% Purpose: A template for sigplanconf.cls, which is a LaTeX 2e class 61.11 +% file for SIGPLAN conference proceedings. 61.12 +% 61.13 +% Guide: Refer to "Author's Guide to the ACM SIGPLAN Class," 61.14 +% sigplanconf-guide.pdf 61.15 +% 61.16 +% Author: Paul C. Anagnostopoulos 61.17 +% Windfall Software 61.18 +% 978 371-2316 61.19 +% paul@windfall.com 61.20 +% 61.21 +% Created: 15 February 2005 61.22 +% 61.23 +%----------------------------------------------------------------------------- 61.24 + 61.25 + 61.26 +\documentclass[preprint]{sigplanconf} 61.27 + 61.28 +% The following \documentclass options may be useful: 61.29 +% 61.30 +% 10pt To set in 10-point type instead of 9-point. 61.31 +% 11pt To set in 11-point type instead of 9-point. 61.32 +% authoryear To obtain author/year citation style instead of numeric. 61.33 +\usepackage{amssymb,graphicx,calc,ifthen,subfig,dblfloatfix,fixltx2e} 61.34 + 61.35 + 61.36 +% correct bad hyphenation here 61.37 +\hyphenation{op-tical net-works semi-conduc-tor} 61.38 + 61.39 +\usepackage{wasysym} 61.40 +\usepackage{amstext} 61.41 + 61.42 +\begin{document} 61.43 + 61.44 +\bibliographystyle{plain} 61.45 +% 61.46 + 61.47 +\conferenceinfo{WXYZ '05}{date, City.} 61.48 +\copyrightyear{2005} 61.49 +\copyrightdata{[to be supplied]} 61.50 + 61.51 +\titlebanner{banner above paper title} % These are ignored unless 61.52 +\preprintfooter{short description of paper} % 'preprint' option specified. 61.53 + 61.54 + 61.55 +\title{A Proto-Runtime Approach to Domain Specific Languages} 61.56 + 61.57 + 61.58 +\authorinfo{Sean Halle} 61.59 + {Open Source Research Institute, INRIA, 61.60 + and TU Berlin} 61.61 + {seanhalle@opensourceresearchinstitute.org} 61.62 +\authorinfo{Merten Sach} 61.63 + {TU Berlin} 61.64 + {msach@mailbox.tu-berlin.de} 61.65 +\authorinfo{Albert Cohen} 61.66 + {Ecole Normal Supereur, and INRIA} 61.67 + {albert.cohen@inria.fr} 61.68 + 61.69 +\maketitle 61.70 + 61.71 + 61.72 +\begin{abstract} 61.73 + 61.74 +? 61.75 +replace lang-specific with interface, centralize services, minimize effort to create, give language control over hardware assignment.. side benefits: multi-lang, perf-tuning, debugging 61.76 + 61.77 +? 61.78 + 61.79 +Domain Specific Languages that are embedded into a base language have promise to provide productivity, performant-portability and wide adoption for parallel programming. However such languages have too few users to support the large effort required to create them and port them across hardware platforms, resulting in low adoption of the method. 61.80 +To solve this, we introduce a proto-runtime approach, which reduces the effort to create and port domain specific languages. It modularizes the creation of runtime systems and the parallelism constructs they implement, by separating the language-construct and scheduling logic away from the low-level runtime details, including concurrency, memory consistency, and runtime-performance aspects. 61.81 +As a result, new parallel constructs are written using sequential reasoning, and multiple languages can be mixed within 61.82 +the same program. In addition, scheduling of work onto hardware is under language and application control, without interference from an underlying thread package scheduler. This enables higher quality scheduling decisions for higher application performance. 61.83 +We present measurements of the time taken to develop runtimes for new languages, as well as time to re-implement existing ones, which average a few days each. In addition, we measure performance of proto-runtime based implementations going head-to-head with the standard distributions of Cilk, StarSs (OMPSs), and posix threads, showing that the proto-runtime matches or outperforms on large servers in all cases. 61.84 +\end{abstract} 61.85 + 61.86 + 61.87 + 61.88 + 61.89 + 61.90 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 61.91 +\section{Background and Motivation} 61.92 +\label{sec:intro} 61.93 + 61.94 +[Note to reviewers: this paper's style and structure follow the official PPoPP guide to writing style, which is linked to the PPoPP website. We are taking on faith that the approach has been communicated effectively to reviewers and that we won't be penalized for following it's recommended structure and approach.] 61.95 + 61.96 +Programming in the past has been overwhelmingly sequential, with the applications being run on sequential hardware. But the laws of physics have forced the hardware to become parallel, which will force nearly all future programming to become parallel programming. However, the transition from sequential to parallel programming has been slow due to the difficulty of the traditional parallel programming methods. 61.97 + 61.98 +The difficulties with parallel programming fall into three main categories: 1) difficult mental model, 2) extra effort to rewrite the code for each hardware target to get acceptable performance and 3) disruption to existing practices, including steep learning curve, changes to the tools used, and changes in design practices. 61.99 + 61.100 +Many believe that these can be overcome with the use of embedded style Domain-Specific Languages (eDSLs) []. eDSL language 61.101 +constructs match the mental model of the domain, while 61.102 +they internally imply parallelism. For example, a simulation 61.103 +eDSL called HWSim[] has only 10 constructs, which match 61.104 +the actions taken during a simulation 61.105 +of interacting objects. They are mixed into sequential C code and take 61.106 +only a couple of hours to learn. Yet they encapsulate subtle 61.107 +and complex dependencies that relate simulated time 61.108 +to the physical time in the machine. They encapsulate the parallelism 61.109 +present, while simultaneously making the implementation 61.110 +simpler to think about than a purely sequential implementation. 61.111 + 61.112 + 61.113 + 61.114 + Despite this, such languages have been slow to adopt, we believe due to the cost to create them and to port them across hardware targets. The small number of users of each language, which is specific to a narrow domain, makes this cost impractical. 61.115 + 61.116 +We propose that a method that makes Domain Specific Languages (DSLs) low cost to produce as well as to port across hardware targets will allow them to fulfill their promise, and we introduce what we call a proto-runtime to help towards this goal. 61.117 + 61.118 +The proto-runtime approach is a normal, full, runtime, but with two key pieces replaced by an interface. One piece replaced is the logic of language constructs, and the other is logic for choosing which core to assign work onto. The remaining proto-runtime piece handles the low-level hardware details of the runtime. 61.119 + 61.120 +The decomposition into a proto-runtime, plus plugged-in language behaviors, modularizes the construction of runtimes. The proto-runtime is one module, which embodies runtime internals, which are hardware oriented and independent of language. The plugged-in portions form the two other modules, which are language specific. The interface between them occurs at a natural boundary, which separates the hardware oriented portion of a runtime from the language oriented portion. 61.121 + 61.122 +We claim the following benefits of the proto-runtime approach, each of which is supported in the indicated section of the paper: 61.123 + 61.124 +\begin{itemize} 61.125 + 61.126 +\item The proto-runtime approach should reliably apply to future languages and hardware. because the patterns underlying it appear to be fundamental and so should hold for future languages and architectures (\S\ref{subsec:TiePoints}, 61.127 +\S\ref{subsec:Example}). 61.128 + 61.129 +\item The proto-runtime approach modularizes the runtime (\S\ref{sec:Proposal}). 61.130 + 61.131 +%\item The modularization is consistent with patterns that appear to be fundamental to parallel computation and runtimes (\S\ ). 61.132 + 61.133 +\item The modularization cleanly separates runtime internals from the language-specific logic (\S\ref{sec:Proposal}, 61.134 +\S\ref{subsec:Example}). 61.135 + 61.136 +\item The modularization gives the language control 61.137 +over timing and placement of executing work (\S\ref{sec:Proposal}). 61.138 + 61.139 +\item The modularization results in reduced time to implement a new language's behavior, and in reduced time to port a language to new hardware (\S\ref{sec:Proposal}, 61.140 +\S\ref{subsec:ImplTimeMeas}). 61.141 + 61.142 +\begin{itemize} 61.143 + 61.144 + 61.145 +\item Part of the time reduction is due to the proto-runtime providing a centralized location for services for all languages to use, so the language doesn't have to provide them separately. Such services include debugging facilities, automated verification, concurrency handling, hardware performance information gathering, and so on (\S\ ). 61.146 + 61.147 +\item Part of the time reduction is due to encapsulation of hardware aspects inside the hardware-oriented module (\S \ref{sec:intro}). 61.148 + 61.149 +\item Part of the time reduction is due to reuse of the performance-tuning effort for runtime internals (\S ). 61.150 + 61.151 +\item Part of the time reduction is due to using sequential thinking when implementing the language logic, enabled by the proto-runtime protecting shared internal runtime state and exporting an interface that presents a sequential model (\S\ref{subsec:Example}). 61.152 + 61.153 + 61.154 +\end{itemize} 61.155 + 61.156 +\item 61.157 + 61.158 +The modularization also selectively exposes hardware aspects relevant to placement of work, giving the language control over placement of work onto the hardware. If the language takes advantage of this, it can result in reduced communication between cores and increased application performance (\S\ ). 61.159 + 61.160 +\begin{itemize} 61.161 + 61.162 +\item Similar control over hardware is not possible when the language is built on top of a package like Posix threads or TBB, which has its own work-to-hardware assignment (\S\ref{sec:Related}). 61.163 + 61.164 +\end{itemize} 61.165 + 61.166 +\item Modularization with similar benefits does not appear possible when using a package such as Posix threads or TBB, unless the package itself is modified and then used according to the proto-runtime pattern (\S\ref{sec:Related}). 61.167 + 61.168 +\end{itemize} 61.169 + 61.170 +The paper is organized as follows: We first expand on the value of embedded style DSLs (eDSL), and where the effort goes when creating one (\S\ref{subsec:eDSLEffort}). We focus on the role that runtime implementation effort plays in the adoption of eDSLs, which motivates the value of the savings provided by the proto-runtime approach. We then move on to the details of the proto-runtime approach (\S\ref{sec:Proposal}), and tie them to how a runtime is modularized (\S\ref{subsec:Modules}), covering how each claimed benefit is provided. 61.171 +We then show overhead measurements (\S\ref{subsec:OverheadMeas}) and implementation time measurements (\S\ref{subsec:ImplTimeMeas} ), which indicate that the proto-runtime approach is performance competitive while significantly reducing implementation and porting effort. 61.172 +With that understanding in hand, we then discuss how the approach compares to related work (\S\ref{sec:Related}), and finally, we highlight the main conclusions drawn from the research (\S\ref{sec:Conclusion}). 61.173 + 61.174 + 61.175 + 61.176 + 61.177 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 61.178 +% 61.179 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 61.180 +\section{Background: The eDSL Hypothesis} 61.181 + 61.182 +%[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 61.183 + 61.184 +%[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 61.185 + 61.186 +%[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 61.187 + 61.188 +%[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 61.189 + 61.190 +Domain Specific Languages have been around for a while [], and recently have been suggested as a good approach for parallel programming[][stanford PPL]. 61.191 + 61.192 +In essence, a DSL, or just Domain Language, captures patterns that are common in a particular domain of expertise, such as user interfaces, simulations of physical phenomena, bio-informatics, cosmology, and so on. Each domain has a particular set of mental models, common types of computation, and common kinds of data structures. A DSL captures these common elements in custom syntax. 61.193 + 61.194 + 61.195 +The custom syntax can capture parallelism information while simultaneously being natural to think about. In practice, multiple aspects of domains provide opportunities for parallelism. For example, the custom data structures seen by the coder can be internally implemented with distributed algorithms; common operations in the domain can be internally implemented with parallel algorithms; and, the domain constructs often imply dependencies. All of these are gained without the programmer being aware of this implied parallelism. 61.196 + 61.197 + 61.198 + 61.199 +\subsection{Embedding a DSL into a base language} 61.200 + 61.201 +A style of domain language, which we feel has good adoption potential, is the so-called \textit{embedded} style of DSL (eDSL) [] [metaborg][stanford ppl]. In this variation, a program is written in a mix of a base sequential language plus domain language constructs. The syntax of the two is intermixed. A preprocessing step then translates the domain syntax into the base syntax, and includes calls to the domain language's runtime. 61.202 + 61.203 + 61.204 +For example, use C (or Java) as the base language for an application, and mix-in custom syntax for constructs from a user-interface eDSL. To test the code, the developer modifies the build process to first perform the translation step, then pass the resulting source through the normal C (or Java) compiler. The resulting executable contains calls to a dynamic (or shared) runtime library that becomes linked, at run time, to an implementation that has been tuned to the hardware it is running on. 61.205 + 61.206 +As with HWSim, the number of such embedded 61.207 +constructs tends to be low, easy to learn, and significantly 61.208 +reduce the complexity of the code written. All while 61.209 +implicitly specifying parallelism. 61.210 + 61.211 +Additionally, eDSLs have more than just a syntactic advantage over libraries. The language has a toolchain that provides build-time optimization and can take advantage of relationships among distinct constructs within the code. The relationship information allows derivation of communication patterns that inform the choice of placement of work, which is critical to performance on parallel hardware. 61.212 +\subsection{Low learning curve, high productivity, and portability} 61.213 +eDSLs are generally quick to learn because the domain experts are already familiar with the concepts expressed by the custom syntax, and the number of constructs 61.214 +tends to be low for an embedded DSL. This is especially valuable for those who are \textit{not} expert programmers. Embedded style DSLs further reduce learning curve because they require no new development tools nor development procedures. Together, these address the goal of a low learning curve for switching to parallel software development. 61.215 + 61.216 +Productivity has been shown to be enhanced by a well designed DSL, with studies commonly measuring 61.217 +10x reduction in development time []. Factors 61.218 +include simplifying the application code, modularizing it, and encapsulating performance aspects inside the language. Simplifying reduces the amount of code and the amount of mental effort. Modularizing separates concerns within the code and isolates aspects, which improves productivity. Encapsulating performance inside the DSL constructs removes them from the application programmer's concerns, which also improves productivity. 61.219 + 61.220 +Perhaps the most important productivity enhancement comes from hiding parallelism aspects inside the DSL constructs. The language takes advantage of the domain patterns to present a familiar mental model, and then attaches synchronization, work-division, and communication implications to those constructs, without the programmer having to be aware of them. Combining the simplicity, modularization, performance encapsulation, and parallelism hiding, with congruence with the mental model of the domain, together work towards the goal of high productivity. 61.221 + 61.222 +Portability is aided by the encapsulation of performance aspects inside the DSL constructs. This means that the elements of the problem that require large amounts of computation are often pulled into the language, which isolates the application code from hardware performance concerns. Only the language implementation must adapt to new hardware in order to get high performance. Although such isolation cannot always be fully achieved, Domain Languages hold promise for making significant strides towards it. 61.223 + 61.224 +\subsection{Low disruption and easy adoption} 61.225 + 61.226 +Using an eDSL tends to have low disruption because the base language remains the same, along with most of the development tools and practices. 61.227 + Constructs from the eDSL can be mixed into existing sequential code, incrementally replacing the high computation sections, while continuing with the same development practices. 61.228 + 61.229 + \subsection{ Few users means the effort of eDSLs must be low} \label{subsec:eDSLEffort} 61.230 + 61.231 +What appears to be holding eDSLs back from addressing the challenges of parallel programming would be mainly the time, expertise, and cost needed to develop an eDSL. Because the number of users is small, the economic model of the past doesn't apply. For sequential languages, the potential user-base is in the millions, but for a parallel Domain Language, the user base may be only a few hundred developers who will use the language. 61.232 + 61.233 +As such, the effort to create a usable eDSL needs to be reduced to the point that it is viable for that size of user base. 61.234 + 61.235 +The effort to be reduced falls into three categories: 61.236 + 61.237 +\begin{enumerate} 61.238 +\item effort to explore language design and create the eDSL syntax 61.239 +\item effort to create the runtime that produces the eDSL behavior 61.240 +\item effort to performance tune the eDSL on particular hardware 61.241 +\end{itemize} 61.242 + 61.243 + 61.244 +\subsection{Critical areas of effort in the big picture} 61.245 + 61.246 +Across the industry as a whole, when eDSLs become successful, there will be hundreds of Domain Languages, and likewise hundreds of different hardware platforms that each language must run efficiently on. That multiplicative effect must be reduced in order to make the eDSL approach economically viable. 61.247 + 61.248 +The first category of eDSL effort is creating the front-end translation of custom syntax into the base language. This is a one-time effort that does not repeat when new hardware is added. 61.249 + 61.250 +The effort that has to be expended on each platform is the runtime implementation, which includes hardware-specific low-level tuning, and the tuning of the domain construct implementation. 61.251 + 61.252 +Luckily, hardware platforms cluster into groups with similar performance-related features. This opens the door to an approach that can present a common abstraction for all platforms in a cluster. Examples of clusters include: 61.253 + 61.254 +\begin{itemize} 61.255 +\item shared coherent memory multi-core single-chip machine 61.256 +\item shared coherent memory multi-core multi-chip machine 61.257 +\item independent address space coprocessor (GPU) 61.258 +\item a network of nodes of the above categories 61.259 +\item a machine with a hierarchy of sub-networks 61.260 +\end{itemize} 61.261 + 61.262 + 61.263 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 61.264 +% 61.265 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 61.266 +\section{Our Proposal} \label{sec:Proposal} 61.267 + 61.268 +We propose addressing the runtime effort by defining a modularization of runtimes, as seen in Fig X. The low-level hardware details are collected into one module, which presents a common interface. The language supplies 61.269 +the top two modules, which plug in via the interface. The hardware specific module presents the same interface 61.270 +for all platforms sharing similar performance related features. This module only has to be implement once for a given platform, then reused by the languages. 61.271 + 61.272 +\begin{figure}[ht] 61.273 + \centering 61.274 + \includegraphics[width = 1.5in, height = 1.1in]{../figures/proto-runtime__modules.pdf} 61.275 + \caption{Shows how the proto-runtime approach modularizes the implementation of a runtime. The three pieces are the proto-runtime implementation, an implementation of the language construct behaviors, and an implementation of the portion of scheduling that chooses which work is assigned to which processor. } 61.276 + \label{fig:PR_three_pieces} 61.277 +\end{figure} 61.278 + 61.279 + 61.280 +Thus, a given language doesn't have to re-implement its runtime for every platform. Instead, it has a much lower effort requirement, of implementing for each category. 61.281 + 61.282 +The language effort is further reduced because the language doesn't consider the low-level details of making the runtime itself run fast. It only has to consider the level of hardware feature that is exposed by the interface. This is a higher level of abstraction, which simplifies the task for the language implementer. 61.283 + 61.284 +One additional benefit is giving control to the language, to choose when and where it wishes work to execute. 61.285 +This feature simplifies implementation of languages 61.286 +that have features related to scheduling behavior. 61.287 +It also enables the language implementor to use sophisticated 61.288 +methods for choosing placement of virtual processors 61.289 +(threads) and tasks, which can significantly impact 61.290 +application performance. 61.291 + 61.292 +In this paper, we present work that applies to coherent 61.293 +shared memory machines, both single chip and multiple chip. Extensions beyond this are currently in progress, to address multiple-address-space machines and hierarchical 61.294 +heterogeneous collections of processors, which will appear in future papers. 61.295 + 61.296 +\subsection{Breakdown of the modules} \label{subsec:Modules} 61.297 + 61.298 +The language is broken into two parts, as seen in Fig 61.299 +X. One is a thin wrapper library that 61.300 +invokes the runtime and the other is a set of modules that are part of the runtime. 61.301 + 61.302 + 61.303 + 61.304 +\begin{figure}[ht] 61.305 + \centering 61.306 + \includegraphics[width = 2.8in, height = 1.1in]{../figures/proto-runtime__modules_lang_breakdown.pdf} 61.307 + \caption{Shows how the code of the language implementation 61.308 + is broken into two pieces. The first is a thin wrapper 61.309 + that invokes the runtime, the other is a dynamic 61.310 + library that plugs into the runtime.} 61.311 + \label{fig:langBreakdown} 61.312 +\end{figure} 61.313 + 61.314 +The runtime itself consists of three modules connected via 61.315 +an interface, as was seen back in Fig X. One encapsulates the low-level hardware details, and presents an interface to the language modules. We call 61.316 +this the \textit{proto-runtime}. 61.317 +It's job is to enforce the interface that the language modules see. 61.318 + 61.319 + 61.320 +The language has two modules, both of which are collected in what we call the \textit{language plugin}. One module encodes the behavior of language 61.321 +constructs, the other module provides logic for choosing which work to execute on 61.322 +which hardware resource. 61.323 + 61.324 +A non-changing application executable is able to invoke hardware specific plugin code, which changes between machines, because the plugin collects the two language modules into a dynamic library. The library is implemented, compiled, distributed and installed separately from applications. The application executable contains only symbols of plugin functions, and during the run those are dynamically linked to machine-specific implementations. 61.325 + 61.326 + 61.327 +In order to provide such modularization, we rely upon a model for specifying synchronization constructs that we call the tie-point model. The low-level nature of a tie-point places them below the level of constructs such as a mutex. Instead, a mutex is specified in terms 61.328 +of the primitives in the tie-point model. In turn, 61.329 +the proto-runtime 61.330 + implements the primitives of the tie-point model. 61.331 + 61.332 + This places all parallel constructs on the same level in the software stack, be they complex like the AND-OR parallelism of Prolog, or the wild-card matching 61.333 +channels in coordination languages, or ultra-simple acquire and release mutex constructs. All are implemented in terms of the same tie-point primitives provided by the proto-runtime. 61.334 + 61.335 +We have reached a point in the paper, now, where the order of explanation can take one of two paths: either 61.336 +start with the abstract model of tie-points and explain how this affects the modularization of the runtime, or start with implementation details and work upwards towards the abstract model of tie-points. We have chosen to start with the abstract tie-point model, but the reader is invited to skip to the section after it, which starts with code examples and ties code details to the abstract tie-point model. 61.337 + 61.338 + 61.339 + 61.340 +\section{The tie-point model.}\label{subsec:TiePoints} 61.341 + 61.342 + 61.343 +\subsection{timelines} 61.344 +A tie-point relates timelines, so we talk a bit, first, about timelines. A timeline is the primitive in parallelism. If you look at any parallel language, it involves a number of independent timelines. It then controls which timelines are actively progressing relative to the others. 61.345 + 61.346 +For example, take a thread library, which we consider 61.347 +a parallel language. It provides a command to create a thread, where that thread represents an independent timeline. The library also provides the mutex acquire and release commands, which control which of those timelines advance relative to each other. When an acquire executes, it can cause the thread to block, which means the associated timeline suspends; it stops 61.348 +making forward progress. The release in a different thread clears the block, which resumes the timeline. That linkage between suspend and resume of different timelines is the control the language exerts over which timelines are actively progressing. 61.349 + 61.350 +To build up to tie-points, we look at the nature of points on 61.351 +a single timeline, by reviewing mutex behavior in detail. We see the timeline shown in Fig \ref{fig:singleTimeline}. Thread A, which is timeline A, tries to acquire the mutex, M, 61.352 +by executing the acquire command. Timeline A stops, at point 1.S, then something external to it happens, and the timeline starts again at point 1.R. The gap between is not seen by the code executed within the thread. Rather, from the code-execution viewpoint, the acquire command is a single command, and hence the gap between 1.S and 1.R collapses to a single point on the timeline. 61.353 + 61.354 + 61.355 +\begin{figure}[ht] 61.356 + \centering 61.357 + \includegraphics[width = 2.8in, height = 0.8in] 61.358 + {../figures/PR__timeline_single.pdf} 61.359 + \caption{The timeline suspends at 1.S and resumes 61.360 + at 1.R. From the viewpoint of the timeline, the gap collapses into a single point.} 61.361 + \label{fig:singleTimeline} 61.362 +\end{figure} 61.363 + 61.364 + 61.365 +Now, a tie-point is seen as the linkage between such collapsed points on 61.366 +two timelines. In Fig \ref{fig:dualTimeline}, timeline A is still there, suspends still at 1.S and resumes at 1.R. However, now there is a second timeline, timeline B. It executes the release command at point 2.S, which suspends timeline B, performs the behavior of the release command 61.367 +inside the gap, then resumes timeline B at 2.R. The behavior of the release 61.368 +command causes the end of suspend in the first timeline. That causality ties the two collapsed points in the two timelines together. 61.369 + 61.370 + 61.371 +\begin{figure}[ht] 61.372 + \centering 61.373 + \includegraphics[width = 2.8in, height = 1.35in] 61.374 + {../figures/PR__timeline_dual.pdf} 61.375 + \caption{Two timelines with a causal relationship. 61.376 +Activity that takes place during the gap in timeline 61.377 +B causes resume of timeline A. This ties point 2 on 61.378 +timeline B to point 1 on timeline A.} 61.379 + \label{fig:dualTimeline} 61.380 +\end{figure} 61.381 + 61.382 + 61.383 + 61.384 +We call this connection between the collapsed suspensions a tie-point. What it provides is a guarantee about visibility of events between the tied timelines. The 61.385 +guarantee makes both agree on the order of events,\textit{ 61.386 +relative to the mutual tied point}. 61.387 +The guarantees are what defines a tie-point. 61.388 + 61.389 +Fig \ref{fig:tie-pointGuarantees} shows the ordering guarantees in terms of visibility of operations between 61.390 +the timelines. If these visibility constraints are 61.391 +satisfied, then the timelines share a tie-point. Note that the ordering 61.392 + guarantees are equivalent to the constraints on visibility of operations. Operations that execute in 61.393 +the first timeline before the tie-point must be visible 61.394 +in the second after the tie point, and vice versa. Likewise, operations that execute in one timeline after the tie-point must not be visible in the other timeline before the tie-point. 61.395 + 61.396 + 61.397 + 61.398 +\begin{figure}[ht] 61.399 + \centering 61.400 + \includegraphics[width = 2.8in, height = 1.25in] 61.401 + {../figures/PR__timeline_tie_point_ordering.pdf} 61.402 + \caption{The 61.403 +guarantees that a tie-point enforces. Shows which 61.404 + operations performed on one timeline are visible to the other 61.405 +timeline. These visibilities must be true for a tie-point. 61.406 +Note that all events are divided into two groups, those 61.407 +before the tied points versus those after the tied 61.408 +points. Both timelines see the same before group and 61.409 +the same after group. } 61.410 + \label{fig:tie-pointGuarantees} 61.411 +\end{figure} 61.412 + 61.413 + 61.414 +\subsection{Formal definition of tie-point} 61.415 +In a moment we will show how any and all synchronization constructs 61.416 +can be defined in terms of tie-points. Before getting 61.417 +there, we provide a formal definition of tie-point, 61.418 +which we will then use to show that a tie point 61.419 +can satisfy the conditions of any synchronization 61.420 +construct. 61.421 + 61.422 +Our formalism defines timelines, communication between 61.423 +timelines, and suspend and resume of a timeline. It then shows a particular pattern, which is the characteristic pattern that defines a tie-point. We then show that when that characteristic pattern exists, then relations exist between timelines that have certain properties. 61.424 +We conclude by showing a few classical definitions 61.425 +of synchronization and show that those definitions 61.426 +are upheld when a relation with the derived properties 61.427 +exists among the timelines. Hence, those classical definitions can be satisfied via creation of a tie-point. 61.428 + 61.429 +\subsubsection{} 61.430 + 61.431 +\begin{description} 61.432 +\item[timeline:] 61.433 +\(T = E \times\mathbb{N}, (E, <)\). A timeline is an ordered 61.434 +sequence of events. Given two events $e_\alpha, e_\beta \in E$ from a timeline, the events are ordered by the 61.435 +subscripts, so: $e_\alpha < e_\beta$ iff $\alpha < \beta$, 61.436 +and vice versa. 61.437 + Any and all memory locations in a system are part 61.438 + of, or local to, exactly one timeline. Only that 61.439 +timeline can modify the locations (hence, side-effects require shared memory to have its own timeline that 61.440 +is separate 61.441 +from any timeline that code executes in). 61.442 + 61.443 +\item[event:] 61.444 +\(E =\{c_{0,t},c_{1,t}, ..\} \cup \{s_{\alpha ,t}\} \cup \{r_{\beta , t}\} 61.445 +\cup \{z_{\gamma ,t} \} \). There are four kinds of event 61.446 +that can happen on a timeline, namely $c$, a step of computation, 61.447 +which modifies the memory local to the timeline; $s$, a 61.448 +send of a communication which pushes out contents from 61.449 +the timeline's local memory; $r$, a receive of a communication 61.450 +which modifies the timeline's local memory; and $z$, 61.451 +a synchronization 61.452 +construct which suspends then resumes the timeline in such a way 61.453 +as to establish a relation between events on this timeline 61.454 +versus events on a remote timeline. Suspend is denoted 61.455 +$z\_s_{\gamma ,t}$ while resume is denoted $z\_r_{\gamma 61.456 +,t}$ where $s$ 61.457 +and $r$ are literal while $\gamma$ denotes the position 61.458 +on the timeline and $t$ is the timeline the suspend 61.459 +happens on. 61.460 +\item[communication:] 61.461 +\(C = \{s,r\}, s < r\). A communication is a set of 61.462 +one send event from one timeline plus one or more receive events 61.463 +from different timelines, with the send 61.464 +event ordered before the receive event(s), denoted $s_{n,t}\mapsto 61.465 +r_{n,t}$ where $n$ distinguishes the communication 61.466 +set and $t$ denotes the timeline the event is on. A communication 61.467 +orders events on one timeline relative to events on another. 61.468 +However, the ordering is only between two points, in 61.469 +particular for two sends from timeline 1 to timeline 61.470 +2, if \(s_{1,1} < s_{2.1}\) on timeline 1, then on 61.471 +timeline 2, both \(r_{1,2} < r_{2,2}\) and \(r_{2,2} < r_{1,2}\) are valid. However, $s_{1,1} \mapsto r_{1,2}$ 61.472 +followed by $s_{2,2} \mapsto r_{2,1}$ where $r_{1,2} 61.473 +< s_{2,2}$ 61.474 + implies that $s_{1,1} < r_{2,1}$ always. 61.475 + 61.476 +\item[hidden timeline:] We define a special kind of "hidden" timeline that is not 61.477 +seen by application code. It has an additional 61.478 +kind of event available, which ends a synchronization 61.479 +event on a different timeline. 61.480 + We denote this $fro_{\delta,h}$ where $fro$ is literal, 61.481 + standing for ``force resume other (timeline)", $\delta$ is the position 61.482 + on the timeline and $h$ is the (hidden) timeline the 61.483 +event is on. Additionally, a suspend event on an application 61.484 +visible timeline implies a send from that timeline 61.485 +to a hidden timeline. Hence $z\_s_{\gamma,t} \Rightarrow 61.486 +s_{\gamma,h}$ 61.487 + 61.488 +\item[tie-point:] Now, we define a tie-point as a set of two or more 61.489 +synchronization points from different timelines which 61.490 +are related by a particular pattern of communications. 61.491 +As a result of the pattern, the set satisfies particular criteria. The pattern is that communications from the suspend synchronization events must converge on a common hidden timeline and that timeline must then emit a subsequent resume event for each of the suspended timelines. 61.492 + 61.493 +\end{description} 61.494 + 61.495 +We now show that from these definitions it follows: 61.496 +[math here] which says that any event that comes after a tie point on one timeline is ordered after any event on a different timeline that precedes the tie-point on that timeline (note that the same tie point is common to both timelines). The dual also holds true. 61.497 + 61.498 +We take the event immediately preceding and the event 61.499 +immediately following two synchronization events on 61.500 +two timelines. The synchronization events begin with 61.501 +a suspend half-event and ends with a resume half-event. 61.502 +The suspend half-event is accompanied by a send to 61.503 +a hidden timeline. That hidden timeline has a receive, 61.504 +and later in its sequence it has a receive for the 61.505 +synchronization event from the second timeline. The 61.506 +hidden timeline then performs resume of both timelines. 61.507 + 61.508 +From that, we get the following relations: 61.509 + 61.510 +Which shows that the event following on timeline 1 comes after the event preceding on timeline 2 and vice versa. 61.511 + 61.512 +This property of ordering events on two timelines in this way is the key requirement for several classical definitions of synchronization. Hence, any implementation that exhibits this pattern of synchronization communications converging on a common hidden timeline, which subsequently resumes the synchronizations, in turn satisfies the conditions for a synchronization. 61.513 + 61.514 +\subsubsection{What is different about tie-point?} 61.515 +Many readers will be wondering "so, how is implementing 61.516 +a synchronization construct this way any different 61.517 +from how they're currently implemented?" The answer 61.518 +is that currently, synchronization constructs are 61.519 +implemented on top of other synchronization constructs, 61.520 +where we consider an atomic Compare and Swap instruction 61.521 +to be a synchronization construct. It is only in the 61.522 +hardware that a synchronization construct is assembled 61.523 +from pieces. We further claim that the hardware implements 61.524 +according to the pattern described in our formal definition. 61.525 + 61.526 +What we consider to be a tie-point is any point that 61.527 +has this pattern, independent of the semantics added. 61.528 +For example, for the Compare And Swap (CAS) instruction, 61.529 +the comparison and swap are the semantics of what the 61.530 +instruction does, while the atomicity, or exclusive 61.531 +access is the part that provides the ordering relations. 61.532 +So, the presence of the ordering relations is the tie-point 61.533 +portion, while the comparison and swap are the plugged-in 61.534 +semantics portion associated with the tie point. 61.535 + 61.536 +In that way, tie-point can be considered to simply 61.537 +say ``has the ordering relation of a synchronization 61.538 +construct". Tie-point is nothing new, when viewed that way. However, a tie-point is not a given, but rather 61.539 +has to be constructed. To get a tie-point, one must 61.540 +create a construction from which the givens for a synchronization 61.541 +can be derived. Further, tie points can be constructed 61.542 +for things that most would not readily consider a synchronization 61.543 +construct. For example, any asynchronous communication 61.544 +establishes a half tie-point, because ordering can 61.545 +be derived. This is useful, for example, in defining 61.546 +memory consistency models. 61.547 + 61.548 +The key here is the elements of the model within which 61.549 +tie-point is defined. In particular, memory does not 61.550 +exist outside a timeline, the points on a timeline 61.551 +have no ordering relative to points on another timeline, 61.552 +ordering between timelines is only established by a communication, and timelines can suspend themselves 61.553 +(or be suspended by a different timeline), 61.554 +and be resumed by a different timeline. 61.555 + 61.556 +Within this model, the characteristics of a synchronization 61.557 +can be derived. That is the key difference, as usually 61.558 +one states as a \textit{given} that a construct exists that has the synchronization properties. Tie-point 61.559 +is derived, versus synchronization is given. 61.560 + 61.561 +True, the two are equally powerful. 61.562 + 61.563 +More low level, less junk on top, more efficiency and 61.564 +more control -- w/sync like threads, it has its own 61.565 +scheduler, have no control over where and when work 61.566 +happens. 61.567 + 61.568 +It is different because it only directly provides half 61.569 +the behavior, the time half. in the sense that 61.570 + 61.571 +The claim is that from a theory standpoint, tie-point 61.572 +is not more powerful -- proto-runtime can implement 61.573 +synchronization constructs, and sync constructs can 61.574 +implement other sync constructs.. 61.575 + 61.576 +But, sync constructs CANNOT implement all of proto-runtime! They can't do the communications nor the hidden timeline nor create VPs 61.577 +nor scheduling.. also, proto-runtime can do distributed 61.578 +memory things that sync constructs cannot. 61.579 + 61.580 +The sync constructs can be used together with shared 61.581 +memory-based communication in order to make more complex 61.582 +sync constructs.. but they can't be used in a distributed 61.583 +memory system to make distributed memory things. 61.584 + 61.585 +Let's see.. the relation model said that something 61.586 +with synchronization constraints can be created from 61.587 +just communication plus hidden timeline.. as long 61.588 +as get the convergence on that hidden timeline. 61.589 + 61.590 +What Henning was saying was that sync is defined as 61.591 +the end-constraints. So, the end-constraints IS what 61.592 +a synchronization construct is. It doesn't matter 61.593 +how to implement one, it only matters the end constraints. 61.594 + 61.595 +So, what the relation thing showed was how to construct 61.596 +a synchronization. What need to show is that the relation 61.597 +thing can also construct stuff that cannot be constructed 61.598 +with a synchronization construct. 61.599 + 61.600 +I guess the question would be: if one starts with a 61.601 +synchronization construct existing within a distributed 61.602 +system.. well, then one can construct other sync constructs 61.603 +from that one.. 61.604 + 61.605 +For them, the question of "more primitive" is: can the more primitive 61.606 +thing do stuff the "full" one cannot? 61.607 + 61.608 +For me, the question of "more primitive"\ is: can one 61.609 +of them be constructed from the other, which ONLY\ 61.610 +has simpler pieces? Constructing one from itself says nothing.. 61.611 +but being able to construct one from something that 61.612 +is NOT one, whose individual components all have less 61.613 +than one.. that thing's pieces are all less powerful.. 61.614 +then it is a particular combination that brings the extra 61.615 +time-related behavior of a sync construct into existence. 61.616 +It is recognizing the particular pattern that brings 61.617 +that extra into existence that is of value. 61.618 + 61.619 +It is that pattern that tells you how to get one from 61.620 +simpler pieces. 61.621 + 61.622 +So, the story is: using only pieces that lack the "special" 61.623 +synchronization construct property, construct something 61.624 +that does have the synchronization property. That, 61.625 +is building something more powerful from pieces that 61.626 +are less powerful. 61.627 + 61.628 +The other part of the story is: the proto-runtime cannot 61.629 +be used by itself. It requires addition before it 61.630 +can be used. That is, have to add the M->M, to arrive 61.631 +at the TxM->M, then can use the TxM->M.. but can't 61.632 +use just the Tx by itself -- that's non-sensical. 61.633 +So, provides a (M->M, f) that is used to get the TxM->M, 61.634 +but can't use the f inside an application.. it doesn't 61.635 +do anything other than add the Tx.. so it doesn't 61.636 +accomplish any steps of computation, nor does it provide 61.637 +Tx to any application code.. the (M->M, f) is outside 61.638 +of any language -- that's what CREATES a language. 61.639 + 61.640 +*****Can't define (M->M, f) as part of its own language, 61.641 +because it doesn't do anything. No computation is 61.642 +performed by it. **** (so, what's the definition of 61.643 +computation, then?) 61.644 + 61.645 +The other part of the story is the HWSim time behavior 61.646 +-- those aren't sync constructs.. rather that is a 61.647 +particular set of constraints on time.. constructed 61.648 +out of primitives none of which have sych nor time 61.649 +behavior by themselves beyond "comes after" of comm. 61.650 + 61.651 +Another part of the story is the singleton thing, constructed 61.652 +directly.. Q: can that be built from sync constructs 61.653 +in distributed system? Does using sync constructs 61.654 +do something that using primitives doesn't? Does it 61.655 +add something, fundamentally? Well, it is in terms 61.656 +of something that already has the property being constructed.. 61.657 +that's the issue.. in one case, taking something that 61.658 +has the property and building something else that has 61.659 +it.. in other case taking something that doesn't and 61.660 +building something that does. 61.661 + 61.662 +So.. in the consistency model, just using the comes-after 61.663 +property of communication to derive compound communication, 61.664 +of particular write to particular read, via memory 61.665 +locations. 61.666 + 61.667 +So, what is a tie-point in that consistency model? It is the pattern that allows deriving an ordering, between different computation timelines. There, the 61.668 +tie-point was tying a write on one to a read on the 61.669 +other, and thereby establishing a half-ordering between 61.670 +the two timelines. 61.671 + 61.672 +Right.. so that should be it.. that a chain of communications results in an ordering between the end-points. And that a synchronization is nothing more than two communication chains that are tied together.. where the tie equals the chains SHARING one link, on some intermediate timeline. 61.673 + 61.674 +Right.. thinking about mutex acquire and release.. 61.675 +the release is asynch.. the sending timeline resumes before 61.676 +the hidden timeline receives notice.. but that just 61.677 +establishes a half tie-point, no? 61.678 + 61.679 +In the async case, operations after the construct can be seen BEFORE the construct in the other timeline. Right. So that's a half tie-point. A full tie-point is that nothing after in either can be seen before by the other. 61.680 + 61.681 +Right.. so one distinction is this: a half tie-point 61.682 +cannot be created using sync constructs "directly". 61.683 + A sync construct is a full tie-point. 61.684 + 61.685 + 61.686 +======================================================== 61.687 + 61.688 + 61.689 +\subsubsection{Lifeline, Timeline, and Projection} 61.690 +We define a formal entity that we call a lifeline, 61.691 +where a timeline is a type of lifeline. 61.692 +We define event-types and specific occurrences of event-types, and show how multiple lifelines can observe the same occurrence. A projection between 61.693 +lifelines is defined as an event initiated upon one lifeline being observed on a different lifeline. The projection is from initiator to observer. 61.694 + 61.695 +\begin{description} 61.696 +\item[event:] 61.697 +\(E \) represents an event, which is something that 61.698 +can be initiated or observed. 61.699 +\item[occurrence:] 61.700 +\(O\in E \times\mathbb{N}\) is the set of occurrences, where each occurrence associates a specific event with a unique identifier. A particular occurrence is denoted by subscripting with the value of the associated 61.701 +integer, for example: \(O_{7}\) 61.702 + 61.703 +\item[clock:] 61.704 +\(t:I\rightarrow\mathbb{R}^{+}\) maps each integer 61.705 +onto a real number, such that \(I_{1}<I_{2}\Rightarrow 61.706 +R_{1}<R_{2}\) . In general, different clocks have no relation to each other, but elements associated with a clock have a sequence defined by the integer 61.707 +sequence of the clock. 61.708 +\item[lifeline:] 61.709 +\(l = <\alpha , t> \) 61.710 + is a lifeline, where \(\alpha\) 61.711 +is a sequence over \(Dom(t)\) and each element of \(\alpha\) is either an initiation of an occurrence, or an observation 61.712 +of one. A \textit{beat} of the lifeline is one tuple, denoted \(l(i)\), while the occurrence associated 61.713 +to the beat is denoted\(\) \(O(l(i)) \) or equivalently \(O(\alpha(i)). \) The real value 61.714 +associated with the beat is denoted \(t(l(i))\). For a given lifeline, not every element of \(t\) must have an associated 61.715 +\(\alpha\), but every \(\alpha\) must have a unique associated 61.716 +\(I\) from the clock \(t\). Note that \(\forall i , t(l(i)) < t(l(i+1))\). At most one beat from one 61.717 +lifeline can initiate an occurrence. However, multiple 61.718 +beats 61.719 +from a given lifeline can observe the same occurrence, 61.720 +including one initiated earlier in the sequence of 61.721 +the lifeline, 61.722 +and multiple lifelines may observe the same occurrence, 61.723 +each multiple times. 61.724 + 61.725 +\item[projection:] 61.726 +Given \(l_{1} = <\alpha , t_{1}> \), \(l_{2} = <\beta , t_{2}> \) then a projection from \(l_{1}\) to \(l_{2}\) 61.727 + is denoted \(l_{1}(i) \uparrow l_{2}(j) \), where \(l_{1}(i) \uparrow l_{2}(j) 61.728 +\equiv O(l_{1}(i)) = O(l_{2}(j))\). 61.729 + This says that the occurrence initiated by the ith beat of the first lifeline is observed by the jth beat 61.730 +of the second lifeline. 61.731 + 61.732 +\item[ordering tuple:] \(OT_{}\) is a tuple consisting 61.733 +of a set of two beats from two different lifelines, which do 61.734 +not participate in projections, plus a set of projections 61.735 +that cross the two beats in the forward direction. 61.736 +Given \(OT =<[l_{1}(x) , l_{2}(y)], [projections]> \) then \(OT\) is an 61.737 +ordering tuple iff \( [projections] \neq0 \forall p(i,j) \in projections \nexists p(i,j) 61.738 +|i<x \wedge j>y\ \) 61.739 +\item[program run:] \(\mathcal{R} \) is a particular set of lifelines. 61.740 +The program run begins with the creation of any lifeline, and 61.741 +ends with the end of all lifelines. 61.742 + 61.743 +\item[equivalent positions in different sequences:] a partial ordering is defined. 61.744 +Given two positions within different sequences, if 61.745 +one or both both can be 61.746 +validly rearranged, by using the partial ordering to 61.747 +define valid rearrangements, so they occupy 61.748 + the same position in their rearranged sequences, then 61.749 +they are equivalent positions. 61.750 + 61.751 +\item[equivalent occurrences:] two occurrences are 61.752 +equivalent if their event instances cannot be distinguished, given the observation 61.753 +measurements of interest. If the observation measurement 61.754 +involves sequences, then the two events must lie at 61.755 +equivalent positions within their respective sequences. 61.756 + 61.757 +\item[equivalent lifelines:] two lifelines whose beats 61.758 +can be paired, such that every beat in one lifeline 61.759 +has an equivalent beat in the other. The beats do 61.760 +not have to occur in the same order in both lifelines. 61.761 +Beats associated to occurrences that are not of interest can be dropped. 61.762 + 61.763 +\item[equivalent program runs:] two runs such that 61.764 +their lifelines can be paired one-to-one, with every lifeline in one paired to an equivalent 61.765 +lifeline in the other. The projections between lifelines 61.766 +in one run can be different from the projections in 61.767 +the other run. 61.768 + 61.769 +\item[tie-point:] a set of beats, one from each of two lifelines, such that this set of beats forms a separation set in all equivalent program runs. 61.770 +\end{description} 61.771 + 61.772 + 61.773 +Some things to note: A particular occurrence 61.774 +can be associated to at most one beat from a given 61.775 +lifeline, but that same occurrence can also be associated 61.776 +to beats from multiple other lifelines. Also, an occurrence may 61.777 +be initiated by a lifeline but never observed by any. 61.778 +Every \(O\) has a set of projections associated with it. 61.779 + 61.780 +For example, the event could 61.781 +be writing a value into a variable. Two separate 61.782 +write events are considered equivalent occurrences if 61.783 +they both write the same particular value into whatever memory location 61.784 +is associated to the same particular 61.785 +variable, and happen within valid partial orderings 61.786 +relative to the other occurrences. This is normally 61.787 +compared across re-creations of the "universe" that 61.788 +provides the context for the orderings of events instances. 61.789 + 61.790 +========= 61.791 + 61.792 + Okay, talked it over with Sung -- what about making distinguished beats 61.793 +-- as Sung poked around for, make the PR\ "suspend" be the 61.794 +distinguished beat. Then, as we worked out talking it 61.795 +through, make the code that happens on the hidden timeline be the linkage between the beats -- so a tie-point is any number of distinguished beats such that the hidden calculation on one of the beats executed the resume for all of the other beats in the tie point. That establishes how a tie point gets created.. separately, need a universal statement of what is guaranteed by a tie point. 61.796 + 61.797 +So, one thing, is that the hidden calc is normally chosen such that every equivalent program run reproduces equivalent tie points -- but defining equivalent relies upon defining the "meaning"\ of the constructs.. but maybe that thing above about equivalent in terms of partial order can be used, by saying all constructs 61.798 +are associated with a partial ordering -- but, still can have truly non-deterministic behavior being the correct behavior.. hmmm, but that should still have a partial ordering! 61.799 + 61.800 + What I\ really want to do is define tie-point in terms of the write-to-read. A half tie point says what's before the pre is visible after in the post timeline. And a full tie-point says that goes both ways. So, acquire-release is only a half tie-point, because what's after the release in its timeline can be seen before the acquire in its timeline. That makes it a half tie-point. Also, whats before the acquire in its timeline does not necessarily have to be seen after the release in its timeline.. that also makes it a half tie-point. 61.801 + 61.802 +So, use the project definition, and the crossing definition, to say which crossing projects are allowed by a half tie point, and which of those must be eliminated to make it a full tie-point. Then THAT\ defines the behaviors of a tie-point, independently from how it is created. 61.803 + 61.804 +The full definition of tie-point, in terms of proto-runtime value, has both those -- the hidden timeline "math" thing along with the causality, gives the "creation" aspect of tie-point, and the allowed projections gives the "behavior" aspect of tie-point. 61.805 + 61.806 +From the projection "behavior" I can simply state "this 61.807 +defines what all synchronization constructs do" -- 61.808 +the projection behavior is the whole purpose of a sync construct -- to ensure particular communication pattern when comm is via side-effect 61.809 + 61.810 +======= 61.811 + 61.812 +From first model, have the real-value constraints for slide of suspend and resume relative to each other.. 61.813 + 61.814 +The behavior of full tie-point is no back-cross projections, and there is a set of forward-crossing projections, which may be empty, and any of the tied timelines may 61.815 +be the initiating timeline. For a half tie-point, have the origin lifeline. There is a set of forward-crossing projections with initiation on the origin lifeline, 61.816 +and backward crossing are allowed whose initiation 61.817 +is on non-origin lifeline. 61.818 + 61.819 +But a tie-point is more than just the behavior it defines. 61.820 + In order for a pair of special beats to form a tie-point, 61.821 +they must be causally linked on their internal lifelines. This means that a sequence of changes of the internal 61.822 +state links the internal activity of one of the special beats to the internal activity of another special beat 61.823 +that executes the resume that ends the second special beat. All special beats that are resumed inside the 61.824 +same internal activity will have the behavior of a 61.825 +full tie-point. Half tie-points can have both halves 61.826 +resumed in different internal activities. 61.827 + 61.828 +A special beat has a variable-length span, as measured in the real-number of the clock. A special beat is associated to an isolated atomic span on a hidden lifeline. The only way to end the span of a special beat is via a "resume" beat on the hidden lifeline, which names the special beat to be ended. 61.829 + 61.830 +The internal activity on the hidden lifeline enforces some description. 61.831 + 61.832 +For 61.833 +example, send-receive descriptions are: send = if paired 61.834 +receiver is in shared context then resume both else place self into shared context. receive: if paired send is in shared context then resume both else place self into shared context. 61.835 + 61.836 +For acquire-release.. acquire: if lock-owner inside shared 61.837 +context is empty then place self-name into lock-owner 61.838 +and resume self else place self onto end of sequence 61.839 +of special beats. release: remove self from lock-owner 61.840 +and place the next in sequence of special beats into 61.841 +lock-owner. If non-empty then resume the new lock-owner. 61.842 +in every case, resume self. Note, acquire-release can 61.843 +form either a half tie-point or a full tie-point. 61.844 +? 61.845 + 61.846 +==== 61.847 + 61.848 +Note to the reader. This is a first pass at a formal description of tie-point. It likely contains more constraints than necessary. It should not be taken as the final formalism, nor is it implied to be elegant in any way, but simply an existence proof for a formal description 61.849 +of a useful subset of what the intuition of tie-point associates to. 61.850 + 61.851 + 61.852 + 61.853 + 61.854 + 61.855 +\subsection{How a synchronization construct relates 61.856 +to tie-points} 61.857 + 61.858 +To prepare for stating how the tie-point model can be used to 61.859 +specify a synchronization construct, we first state 61.860 +clearly what we mean by a ``synchronization construct''. 61.861 + 61.862 +The top of Fig \ref{fig:PRSyncConstrDef} shows two 61.863 +independent timelines, both performing reads and writes 61.864 +within a machine that has coherent shared memory. The 61.865 +timelines have no relative ordering defined, so any 61.866 +write on Timeline A can be received by any read of 61.867 +the same address on 61.868 +Timeline B, and vice versa. This means that, in general, 61.869 +the use of a variable that is read and written by both will result in non-deterministic behavior. 61.870 + 61.871 + 61.872 +\begin{figure}[ht] 61.873 + \centering 61.874 + \includegraphics[width = 2.0in, height = 2.8in] 61.875 + {../figures/PR__timeline_sync_def.pdf} 61.876 + \caption{Depicts the meaning we adopt for `synchronization construct'. One of them controls communications between timelines 61.877 +by controlling the slide of timelines relative to each 61.878 +other. They imply certain visibility between writes and reads on different timelines.} 61.879 + \label{fig:PRSyncConstrDef} 61.880 +\end{figure} 61.881 + 61.882 + 61.883 + 61.884 +To control the behavior of writes and reads to the 61.885 +same addresses, a common point must be established, which 61.886 +limits the ``sliding'' of the timelines relative to 61.887 +each other. A synchronization construct is used for 61.888 +this. 61.889 +The net effect of such a construct is to establish 61.890 +a common point that both timelines agree on. This 61.891 +point separates reads and writes before it from reads 61.892 +and writes after it. 61.893 + 61.894 +For example, consider a simple lock used to protect a critical section. The lock is acquired by one timeline 61.895 +before entering the critical section. Any writes performed 61.896 +on other timelines before the lock was granted must be complete before the critical section starts, so that reads performed inside the critical section see them. This is illustrated in the middle of Fig \ref{fig:PRSyncConstrDef}. 61.897 + 61.898 +The critical section ends by releasing the lock, which allows a different timeline to acquire and enter the critical section. As seen in the bottom of Fig \ref{fig:PRSyncConstrDef}, 61.899 +any writes performed by that new 61.900 +timeline after it acquires the lock must not be visible 61.901 +to reads performed by the old timeline before it released 61.902 +the lock. 61.903 + 61.904 +With this intuition, we define a synchronization construct 61.905 +as an operation preformed on a timeline, which has 61.906 +the property that it creates 61.907 +a tie-point together with an operation performed on a different 61.908 +timeline. Such operations that establish a tie-point 61.909 +fit our definition of synchronization constructs. 61.910 + 61.911 + 61.912 +\subsection{More on tie-points} 61.913 + 61.914 +Fig \ref{fig:dualTimeline} showed how a tie-point can be generated. The establishment was accomplished by 61.915 +a combination of primitive mechanisms. These include: 1) suspend; 2) an `invisible' timeline that executes 61.916 +behavior in the gaps; 3) resume 61.917 +called from that invisible timeline; and 4) enforcement 61.918 +of instruction completion relative to resume. 61.919 + 61.920 +What an established tie-point provides is the notion that the tied points are the same ``instant" for both tied timelines. What that means is that both timelines see events ordered relative to that point in the same way. 61.921 + 61.922 + 61.923 +Notice that the primitives that establish a tie-point 61.924 +do not involve any notion of dependency or constraint 61.925 +on order of execution. It is the behavior code that runs on the invisible 61.926 + timeline that embodies notions such as dependency 61.927 + between units of work, mutual exclusion, 61.928 + partial ordering of work, and so on. However, the 61.929 + primitives do provide the notion of causality, the ordering implied by causality, and enforcing completion 61.930 +of reads/writes. 61.931 + 61.932 +It is up to the language to supply the behavior that happens inside 61.933 +the gaps, which executes on the invisible timeline. This behavior is what decides which timelines end up 61.934 +sharing a tie point. It is that decision making, of which timelines to tie together, that implements the 61.935 +semantics of a synchronization construct. 61.936 + 61.937 +A workshop paper also discusses tie points 61.938 +[]. A formal treatment of tie-points is beyond the scope of this paper. However, a formal framework has been substantially completed and 61.939 +will be published in a future paper. 61.940 + 61.941 + 61.942 + 61.943 +\subsection{Tie-points within a proto-runtime} 61.944 + 61.945 + Fig \ref{fig:dualTimeline} didn't say what entity owns the hidden timeline that executes the behavior that takes place in the gaps. This is what the proto-runtime does. An instance of the 61.946 +proto-runtime executes the language plugin behavior. 61.947 +It acts as the hidden timeline. 61.948 + 61.949 + The proto-runtime code module also supplies implementations 61.950 +of the primitives that are used to establish a tie-point, including these: 61.951 + 61.952 + %It provides the primitive that suspends a timeline and then causes language plugin behavior to execute in the gap. 61.953 + 61.954 +%The plugin behavior that runs in the proto-runtime when one timeline suspends is what chooses another timeline to resume as a consequence. That choice establishes causality between the suspensions of the two timelines, and in the process ensures that a valid tie will exist between the two collapsed timeline points. The code of the primitives is provided as part of the proto-runtime code module, while the plugin behavior is executed by an instance of a running proto-runtime. 61.955 + 61.956 +%The running proto-runtime instance is also known as the Master, while the application timelines are known as Slaves. The behavior of the language constructs executes within the Master's timeline, while the behavior of application code executes within Slave timelines. 61.957 + 61.958 +%\subsection{More about the proto-runtime} 61.959 + 61.960 +\begin{itemize} 61.961 +\item create a virtual processor (which has a suspendible timeline) 61.962 +\item create a task (which has an atomic timeline that runs to completion) 61.963 + 61.964 +\item suspend a timeline, then invoke a function to handle the suspension -- handler is supplied with 61.965 +parameters from application 61.966 +\item resume a timeline, which makes it ready for execution 61.967 +\item end a timeline 61.968 +\item trigger choosing which virtual processor or task to begin execution on an offered 61.969 +core 61.970 + 61.971 +\end{itemize} 61.972 + 61.973 +Virtual processors and tasks, both, have associated timelines. The reason for having both is a practical one, as tasks are simpler, with less overhead, 61.974 +and many languages have the semantics of short, atomic, units of work that 61.975 +are not intended to suspend. Thus, tasks are treated differently inside the 61.976 +proto-runtime, and incur less overhead to create and run. 61.977 + 61.978 +A special feature of the proto-runtime is that if a task happens to execute 61.979 +a language command that causes suspension, then the proto-runtime automatically 61.980 +converts that task to a suspendible virtual processor. This helps support the mixing of different 61.981 +languages within the same program. 61.982 + 61.983 + 61.984 +The proto-runtime provides a mechanism for communicating information from the application code to the plugin function that was invoked to handle suspension. For example, the identity of a particular mutex a thread wishes to acquire 61.985 +can be communicated from the wrapper library to the plugin. 61.986 + 61.987 + 61.988 +Because the proto-runtime tracks all the timelines, the end of a timeline has to be explicitly stated in the application code, by calling a wrapper library function. That then invokes the proto-runtime primitive, 61.989 +which informs the proto-runtime instance. The proto-runtime performs internal bookkeeping related to the ending of the timeline, and notes that the core is now free and offers it to the plugin's Assigner function. 61.990 + 61.991 +The proto-runtime involves the language into the process of choosing which core a given task 61.992 +or virtual processor executes on. The proto-runtime maintains control, but offers free cores to the Assigner 61.993 +portion of the plugin. It responds by then assigning a task or virtual processor to the core. The proto-runtime just offers, it is up to the language to decide what work that core should receive at that point in time. 61.994 + 61.995 + 61.996 + 61.997 +\subsection{Concrete Example}\label{subsec:Example} 61.998 + 61.999 +To make this concrete, consider the example of implementing 61.1000 +acquire mutex and release mutex. The semantics are: 61.1001 + 61.1002 +\begin{itemize} 61.1003 +\item Acquire Mutex: A thread calls the construct, 61.1004 +and 61.1005 +provides the name of the mutex. If no thread owns the 61.1006 +mutex, the calling thread is given ownership and it 61.1007 +continues to make progress. However, if a different thread 61.1008 +already owns the mutex, the calling thread is put into a queue 61.1009 +of waiting threads, and stops making progress. 61.1010 +\item Release Mutex: A thread calls the construct and 61.1011 +provides the name of the mutex. If the mutex has waiting threads in its queue, then the next thread is taken out and given ownership of the mutex. That thread is resumed, to once again make progress, as it the thread 61.1012 +that called the release construct.. 61.1013 +\end{itemize} 61.1014 + 61.1015 +This calls for a data structure that has two fields: 61.1016 +one holds the thread that currently owns the mutex, 61.1017 +the other holds a queue of threads waiting to acquire 61.1018 +the mutex. The semantics of a construct involve multiple 61.1019 +reads 61.1020 +and writes of the data structure. Hence, the 61.1021 + structure must be protected 61.1022 +from races between different threads. 61.1023 + 61.1024 +The protection 61.1025 +is where the difficulty comes into the implementation, 61.1026 +and where performance issues come into the picture. 61.1027 +It could be accomplished with a single global lock 61.1028 + that uses hardware primitives, or accomplished 61.1029 +with wait-free data structures that only rely upon the coherence 61.1030 +mechanism of the memory system, or even by message passing plus 61.1031 +quorum techniques. 61.1032 + 61.1033 +However, the implementation of the semantics is independent 61.1034 +of the implementation of the protection. They are orthogonal, 61.1035 +and an interface can be placed between them. One side 61.1036 +of the interface implements checking and updating the fields of 61.1037 +the data structure, while the other side implements 61.1038 +protecting the first side from interference. 61.1039 + 61.1040 +The side that provides protection requires fields, 61.1041 +for its use, to be placed into the data structure used 61.1042 +to represent a thread. To hide those details, 61.1043 +the protection side should also provide 61.1044 +primitives to create and destroy threads, as well as suspend 61.1045 +and resume them. 61.1046 + 61.1047 +This interface that separates the semantic side from 61.1048 +the protection 61.1049 +side is the proto-runtime interface. It is what enables 61.1050 +the modularization of runtime system implementations. 61.1051 + 61.1052 +The tie-point concept provides a model for thinking 61.1053 +about how the semantic side controls ordering among multiple threads, without exposing any details of the protection side. The tie-point model involves thinking only about actions taken during suspension of timelines (threads). It assumes that those actions are protected from interference, and that suspend and resume of timelines are primitive operations made available. The model remains constant regardless of implementation details. 61.1054 + That provides a cross-hardware way of specifying synchronization 61.1055 +behavior using just sequential thinking. The proto-runtime primitives implement the elements of the tie-point model. 61.1056 + 61.1057 + %Currently, these constructs are either implemented directly in terms of hardware level synchronization constructs such as the atomic Compare And Swap (CAS) instruction, or else are a thin wrapper that invokes operating system behavior. However, the behavior of the OS\ kernel's threading primitives are themselves implemented in terms of hardware level synchronization 61.1058 +%constructs. Either way, developing the behavior proves 61.1059 +%time consuming due to the difficulty of debugging hardware level synchronization behavior, and due to the difficulty of performance tuning such low level code across the full spectrum of patterns caused by applications. 61.1060 + 61.1061 + 61.1062 + 61.1063 + 61.1064 + 61.1065 +\section{Concrete Details} 61.1066 +Now that we have seen the concepts of how to modularize 61.1067 +a runtime system, using the tie-point model, it is 61.1068 +time to make the concepts concrete by showing code 61.1069 +segments that implement each of the concepts, and code 61.1070 +segments that use the concepts. We will start with 61.1071 +the big picture and work down. 61.1072 + 61.1073 +The first stop will be the development process, showing 61.1074 +how it is fractured into three separate and independent 61.1075 +development activities. Next, we will show examples 61.1076 +of how application 61.1077 +code invokes constructs, and follow the path of calls 61.1078 +down to the point it switches over to the runtime system. Lastly, 61.1079 +we will look at the flow of control inside the runtime, 61.1080 +where we will focus on the interaction between plugin 61.1081 +code and proto-runtime code. 61.1082 + 61.1083 +In this last portion, we will show how the 61.1084 +interface supplies the plugin with a consistent ``inside 61.1085 +the runtime" environment. Along with that, we will 61.1086 +show how providing 61.1087 +a consistent environment 61.1088 + is an implementation of the "single hidden timeline" portion 61.1089 + of the tie-point model. We will also show how it is 61.1090 + the existence of a \textit{single} hidden timeline 61.1091 + that allows the semantic portion of the language constructs 61.1092 +to be written in a sequential style, without regard to concurrency issues. 61.1093 + 61.1094 + 61.1095 +\subsection{Three independent development efforts} 61.1096 + 61.1097 +To get a handle on the big picture, we describe the 61.1098 +three independent paths that development takes: 61.1099 +one for development of proto-runtime code, one for 61.1100 +development of language implementation, and one for 61.1101 +application development. Each of these produces a separate 61.1102 +installable artifact. 61.1103 +The proto-runtime development produces a dynamic library, for each machine. The language development produces a dynamic library to plug into whichever proto-runtime library is installed on a given machine. It may also produce development tools that are used during compilation, distribution, and even installation and during the run. The application development produces a single source, which the language tools may then turn into multiple executables. 61.1104 + 61.1105 +The proto-runtime code is developed separately from 61.1106 +both language and application code, and packaged as a dynamic library. This library has multiple implementations. Each kind of hardware platform has a proto-runtime implemented specifically for it, and is tuned for low overhead on that hardware. The administrator of a particular machine chooses the proto-runtime implementation best suited to that hardware, and installs that. 61.1107 + 61.1108 +The language code is likewise developed separately from both proto-runtime and application code. Although multiple versions of a language may be implemented, there are significantly fewer versions than the number of proto-runtime versions. That is because most of the hardware details are abstracted away by the proto-runtime interface. 61.1109 + 61.1110 +However, the interface does expose hardware features related to placement of work onto cores, so some variations may exist for the same interface. Again, the administrator chooses which language implementation best suits their machine and installs the corresponding dynamic library. 61.1111 + 61.1112 +The wrapper library, however, is not 61.1113 +installed on the machine where code runs. Rather, it 61.1114 +is only used during development of an application, 61.1115 +and remains independent of hardware. 61.1116 + 61.1117 +Ideally the application is developed only once. It makes calls to the wrapper library, which in turn invokes the dynamic libraries of the language and proto-runtime. 61.1118 +When an application is executed, the loader binds the 61.1119 +dynamic libraries, connecting them to the application. 61.1120 + In this way, a single, 61.1121 +unchanging, executable gains access to machine-specific implementations of language and proto-runtime. 61.1122 + 61.1123 +However, the success of the compile-once approach has 61.1124 +limits in practice. Each machine's characteristics determine the size of unit of work that gives the best performance. When too small, the overhead in the runtime system that is required to create the work, manage constraints, and perform assignment becomes larger than the work 61.1125 +itself. When work-unit size is too large, then not enough units exist to keep all the cores busy. Thankfully, the range between is wide enough, for most applications, that neither limit is hit, on most machines. As machines evolve, though, this happy circumstance is likely to change, necessitating recompiling and possibly hand modifying the application code or some meta-form. 61.1126 + 61.1127 +\subsection{Walk through of activity during execution} 61.1128 + 61.1129 +At this point, we present a picture of the flow of control on each 61.1130 +of two cores, as the core is switched between application 61.1131 +code and runtime code. It is too early to understand 61.1132 +the details, but this figure can be referred back to 61.1133 +as each portion is discussed in the coming sub-sections. 61.1134 +Each portion of the figure is labelled with the sub-section that describes that portion of activity. 61.1135 + 61.1136 +At the top is the main program, which starts the proto-runtime, 61.1137 +and creates a proto-runtime process. Below that is 61.1138 +depicted the creation of proto-runtime virtual processors, 61.1139 +along with the animation of application code by those virtual 61.1140 +processors. 61.1141 + 61.1142 +? 61.1143 + 61.1144 +The application passes information to a wrapper library 61.1145 +call, 61.1146 +such as the ID of the mutex to acquire. The library function packages the 61.1147 +information into a request data structure, then invokes a proto-runtime 61.1148 +primitive. That suspends the virtual processor (timeline) that is executing 61.1149 +that code. The call to the primitive passes as arguments the request structure and a pointer 61.1150 +to the plugin function that will handle the request. 61.1151 +The handler runs inside the Master and chooses which 61.1152 +other timelines to resume as a consequence of the wrapper-library 61.1153 +call. Those timelines will then resume, returning from 61.1154 +whatever wrapper-library call caused them to suspend. In this way, the request handle implements the behavior of a 61.1155 +synchronization construct. 61.1156 + 61.1157 +However, there is one last step between the request 61.1158 +handler marking a timeline as ready to resume 61.1159 +and it becoming re-animated. That step is where the 61.1160 +assignment half of the language plugin comes into play. 61.1161 +The request handlers stack up work that is free to 61.1162 +be executed, but it is the assigner that chooses which 61.1163 +of those to place onto an offered core. 61.1164 + 61.1165 + 61.1166 + 61.1167 + 61.1168 + 61.1169 +\begin{figure*}[ht] 61.1170 + \centering 61.1171 + \includegraphics[width = 7.0in, height = 4.5in] 61.1172 + {../figures/Proto-Runtime__modules_plus_plugin_plus_code.pdf} 61.1173 + \caption{Illustration of the physical time sequence of the timelines of multiple virtual processors executing on multiple 61.1174 +cores. The timelines run top to bottom, while calls 61.1175 +between modules and returns run horizontally. The colors of Fn names indicate whether the 61.1176 +code is part of the application (green), the proto-runtime module (blue), or the language (red). The top two timelines are animated 61.1177 +by core 1, while the bottom 2 are animated by core 61.1178 +2. The boxes 61.1179 +represent virtual processors, each with its associated 61.1180 +timeline next to it. The timelines have no relative 61.1181 +ordering, except at tie-points established by the Request 61.1182 +Handlers. Gaps in the timelines are caused by suspension, 61.1183 +which is effected by primitives within the proto-runtime 61.1184 +code module.} 61.1185 + \label{fig:langBreakdown} 61.1186 +\end{figure*} 61.1187 + 61.1188 + 61.1189 + 61.1190 +\subsection{Using language constructs} 61.1191 +In the simple form of an eDSL, the language constructs 61.1192 +take the form of function calls. The reader familiar 61.1193 +with posix threads will have used function calls to 61.1194 +perform mutex acquire commands and mutex release commands. 61.1195 +Here, we illustrate invoking language commands in the 61.1196 +same way. 61.1197 + 61.1198 +We use posix threads for our example because it is 61.1199 +a familiar language that the reader already knows well. 61.1200 +It allows us to illustrate the concepts new to proto-runtime without introducing potential confusion about what the language semantics are. 61.1201 + 61.1202 +\subsubsection{Main and startup} 61.1203 +Before using a proto-runtime based language, the proto-runtime 61.1204 +system must be started, and a proto-runtime process 61.1205 +must be created. Fig X shows this. Notice that the 61.1206 +create process was given a pointer 61.1207 +to a function. This function is the seed of the proto-runtime 61.1208 +based application code. This seed must start all proto-runtime 61.1209 +based languages that will be used in the application, 61.1210 +and must create the virtual processors and tasks that 61.1211 +perform the work and may in turn create more VPs and/or tasks that perform work. 61.1212 + 61.1213 +==main, with PR\_\_start and PR\_\_create\_process == 61.1214 + 61.1215 +\subsubsection{Seed birth function and thread birth 61.1216 +function} 61.1217 +Fig X shows our example seed function. It first starts 61.1218 +the language that will be used, which is Vthread. It 61.1219 +is an implementation of posix threads that is on top of proto-runtime. 61.1220 +Next, the seed uses Vthread commands to create two 61.1221 +threads, and then uses Vthread join to wait for both 61.1222 +threads to die. Lastly it "dissipates", which is the 61.1223 +command that kills the virtual processor that is animating 61.1224 +the function. 61.1225 + 61.1226 +==seed\_birth\_Fn, with Vthread\_\_start(), Vthread\_\_create\_thread, 61.1227 +Vthread\_\_join, Vthread\_\_stop, and dissipate== 61.1228 + 61.1229 +Notice the signature 61.1230 +of the seed birth function. It returns void, and takes a pointer 61.1231 +to void plus a pointer to a SlaveVP struct. This is 61.1232 +the standard signature that must be used for all birth functions for 61.1233 +proto-runtime created virtual processors or tasks. 61.1234 + 61.1235 + 61.1236 +Also, notice that the standard signature includes a 61.1237 +pointer to a SlaveVP struct. This is a proto-runtime 61.1238 +defined structure, which holds the meta-information 61.1239 +about a virtual processor. The birth function is handed 61.1240 +the structure of the virtual processor that is animating 61.1241 +it. 61.1242 + 61.1243 +An illuminating aside is that the birth function for 61.1244 +a posix thread doesn't need 61.1245 +to be handed the structure representing the animating thread. 61.1246 +That is because the operating system tracks which thread 61.1247 +is assigned to which core. Posix thread constructs work by executing 61.1248 +an instruction that suspends the code executing on 61.1249 +the core and switches 61.1250 +the core over to animating the OS kernel code. The OS kernel 61.1251 +then looks up the data structure that is assigned to 61.1252 +the core. 61.1253 + 61.1254 +That lookup is how the OS kernel gains the 61.1255 +pointer to the thread that was animating the application 61.1256 +code that called the posix construct. But the implementation 61.1257 +of proto-runtime illustrated in this paper doesn't 61.1258 +have such a hardware based suspend instruction available, 61.1259 +and so proto-runtime-based application code must explicitly pass around the pointer to the data 61.1260 +structure of the virtual processor performing the animation. 61.1261 + 61.1262 +Fig X shows the birth function of the threads created 61.1263 +by the seed birth function. It uses the Vthread equivalent 61.1264 +of mutex acquire and release to protect access to 61.1265 +a critical section. Notice that the signature 61.1266 +is the same as the signature of the seed birth function. 61.1267 +Also notice that the SlaveVP structure is handed to 61.1268 +each invocation of a Vthread construct. In the next 61.1269 +several sub sections we will track how this SlaveVP structure 61.1270 +is used. 61.1271 + 61.1272 +==thread birth function.. uses Vthread acquire and 61.1273 +release to protect a counter plus print of count value== 61.1274 + 61.1275 + 61.1276 +\subsection{Language Wrapper Library} 61.1277 + 61.1278 +Looking at the implementation of the Vthread calls 61.1279 +reveals code such as in Fig X. 61.1280 + 61.1281 +==wrapper lib code for mutex acquire== 61.1282 + 61.1283 +There's nothing much to it. It just creates a data 61.1284 +structure, fills it, then hands it to a proto-runtime 61.1285 +call. This is a starnd form for wrapper library 61.1286 +calls. The data structure is used to carry information 61.1287 +into the proto-runtime (the proto-runtime that was 61.1288 +started by the PR\_\_start command). The PR call is 61.1289 +the equivalent of the hardware instruction that suspends 61.1290 +application code and switches to the kernel. For the 61.1291 +implementation of PR illustrated in this paper, this 61.1292 +call is implemented with assembly instructions. 61.1293 + 61.1294 +This wrapper library code is placed on the machine 61.1295 +used during development of the application, and is 61.1296 +compiled into the application executable. However, 61.1297 +the proto-runtime call is a link to a dynamic library, 61.1298 +and is not part of the application executable. 61.1299 + 61.1300 +Notice that the PR\ primitive is given a pointer to 61.1301 +a function. This is called the handler function, and 61.1302 +is part of the language plugin. The proto-runtime 61.1303 +will actually perform the call to the handler function, but in a carefully controlled 61.1304 +way. It will provide the handler function with a carefully controlled environment 61.1305 +to use while it handles this wrapper-library call. 61.1306 +We will see in a moment how proto-runtime invokes the 61.1307 +handler function, and what such a handler function 61.1308 +looks like. 61.1309 + 61.1310 +First, here's the assembly that suspends the application code and 61.1311 +switches to the proto-runtime code, as seen in Fig X 61.1312 + 61.1313 +==assembly of suspend and switch== 61.1314 + 61.1315 +All it does is save the program counter and stack pointer 61.1316 +into the SlaveVP structure, then load in the program 61.1317 +counter and stack pointer of the proto-runtime code, 61.1318 +which was previously saved in different fields of that same SlaveVP structure. 61.1319 + 61.1320 +\subsubsection{proto-runtime code that is switched 61.1321 +to} 61.1322 + 61.1323 +The PR assembly code switches the core to executing 61.1324 +the (psuedo) code seen in Fig X. 61.1325 + 61.1326 +==animation master code, which calls plugin fns== 61.1327 + 61.1328 +All this does is invoke the handler function named 61.1329 +in the wrapper library, and hands it an environmen. 61.1330 +This is the hidden environment referred to in the tie-point 61.1331 +model. It must be accessed in an isolated, atomic, 61.1332 +fashion. The proto-runtime code seen here happens 61.1333 +to use a global lock for each language's environment. 61.1334 + However other implementations are possible. In order 61.1335 + to keep overhead low, it uses the Compare And Swap 61.1336 + instruction to acquire the lock, and an exponential random 61.1337 + backoff scheme when contention for the lock arises. 61.1338 + 61.1339 + The handler function is the hidden behavior that executes 61.1340 + on the hidden timeline that is mentioned in the tie-point 61.1341 + model. The suspend primitive is what begins a special 61.1342 + beat on the lifeline of the virtual processor that 61.1343 + executed the wrapper library call. It is this handler 61.1344 + code that then establishes the causal connections 61.1345 + between such special beats, and so ties them together. 61.1346 + The causal connection is via the changes make to the 61.1347 + language environment. 61.1348 + 61.1349 + So, in summary, the proto-runtime is the hidden timeline. 61.1350 + The suspend primitive is what starts a special beat 61.1351 + and starts the behavior on the hidden timeline. The 61.1352 + lock is what isolates and sequentializes 61.1353 + the behavior on the hidden timeline. The language 61.1354 + environment is the hidden state used to establish 61.1355 + causal connection between special beats. 61.1356 + 61.1357 + 61.1358 + 61.1359 +This is not the plugin code, this is the library that the application executable includes. It's equivalent to the pthread library. When you look at the source of the pthread library, it's just a wrapper that invokes the OS. It doesn't do anything itself. The language libraries are the same thing, just wrappers that invoke the proto-runtime primitives. Those suspend the VP and send a message to the proto-runtime. When the message arrives, it invokes the plugin to handle the task. 61.1360 + 61.1361 +Here's how the wrapper library connects a request to the request handler: via this function pointer, right here Fig X, given to the proto-runtime "suspend and send" primitive. The pointed-to function is part of the plugin. That runs inside the proto-runtime, and is what handles the message created in the wrapper library. 61.1362 + 61.1363 + 61.1364 +If we go and look at that handler function, Fig X, we see that it has a standard prototype, so it takes a standard set of arguments. One of those, here in Fig X, is a language environment. This is the special sauce, it is the thing that is shared among all the cores. This language environment is where tasks are placed that are not yet ready to execute, and where suspended virtual processors are placed that are not yet ready to resume. 61.1365 + 61.1366 +Here, Fig X, you can see there's a hash table. The language environment contains that hash table. The tasks get parked in this hash table. Each time a task completes, it looks in the hash table, finds all tasks waiting for its completion, and updates the status of those waiting tasks. If this was the last task being waited for, the waiter is taken out of the hash table and put into the queue of ready to execute tasks. 61.1367 + 61.1368 +This is the semantics of the language. This is how the semantics of the language defines what dependencies are, and how it defines when a task's dependencies have been satisfied. The implementation is just a data structure in the shared language environment. It is the proto-runtime that takes care of creating the tasks, creating the virtual processors, execute those, suspend them and resume them. The proto-runtime handles the mechanics of all that stuff. The language just figures out what are the constraints on making it ready. 61.1369 + 61.1370 +? 61.1371 + 61.1372 +Separately, the proto-runtime calls the Assigner function, which is also part of the plugin dynamic library. Each time a task completes or a virtual processor suspends, the wrapper library invokes a proto-runtime primitive. Among other things, that primitive informs the proto-runtime about the completion of that work, which tells the proto-runtime that hardware resources have just been freed up. 61.1373 + 61.1374 +The proto-runtime then invokes the Assigner function, passing it information about the hardware that was just freed. The assigner is implemented by the language and uses some language-specific way to choose which of the ready work-units to execute on that hardware (a work-unit is either a ready-to-execute task or a ready-to-resume virtual processors). This is how the language is given control over placement of work onto cores. 61.1375 + 61.1376 +=================== 61.1377 + 61.1378 + 61.1379 +\subsection{not sure} 61.1380 +A task is an atomic unit of work. It runs to completion, without suspending. That characteristic allows the proto-runtime to internally treat a task differently than a virtual processor. The fact that it never suspends means it doesn't need a stack, and needs less bookkeeping, which makes a task faster to create and faster to assign, for lower overhead. 61.1381 + 61.1382 +However, a task may optionally choose at some point to execute a language command that causes it to suspend. At the point it does that, the proto-runtime internally converts the task to a virtual processor. That allows the task to suspend and later resume, at the cost of gaining the normal virtual processor overhead. However, the virtual processor the task is converted to comes from a recycle pool and returns when the task completes. 61.1383 + 61.1384 +As an application programmer, you can create processes directly with an OS-like language built on top of the proto-runtime. But you use a programming language to create tasks or virtual processors. For example, VSs has a way to create tasks. VSs internally then uses a proto-runtime command to have the proto-runtime create a task for it. Then VSs decorates the task with its own meta-data. It uses that meta-data to track when a task should be executed. 61.1385 + 61.1386 +? 61.1387 + 61.1388 +The only thing you're allowed to do outside a language is create the environment in which you start a language. 61.1389 + 61.1390 +? 61.1391 + 61.1392 +The implementation of the language behavior is the plugin. The plugin has two parts: request handlers, which handle the messages that come when a VP suspends, and an assigner, which picks where particular VP resumes onto or a task runs. With VSs, the plugin provides the behavior of "submit task". 61.1393 +The request handler plus plugin together provide the two halves of what people normally call a scheduler. 61.1394 + 61.1395 +================= 61.1396 + 61.1397 +\subsection{more on tie-points} 61.1398 +Any event visible before in one is visible in both after. The guarantee is between before in one and after in both. 61.1399 + 61.1400 +From the program point of view, that acquire statement is one instant. That entire gap in physical time is seen as a single instant to the code. 61.1401 + 61.1402 +However, the tie point is just one instant in the timelines. After the point, one of the timelines could perform an event that interferes with an event from before the tie-point, and no guarantees are given about what the other timeline sees. However, if another tie-point is created between them, then they are both guaranteed to see that second, interfering event, after the second tie-point. 61.1403 + 61.1404 +Take the example of a mutex, M. The purpose of the only-one semantics of a mutex is to isolate read and write operations done by the owning thread from those done by other threads, which own before or after it. 61.1405 + 61.1406 +The mutex behavior is illustrated in Fig X. Timeline 1 writes to variable A at point 1, then releases the M at point 2. Timeline 2 acquires M, at the tied point 2 and reads A at point 3. For M to provide isolation, it must guarantee that the A write operation at point 1 is seen by the other timeline's read operation, at point 3. Likewise, it has to guarantees that nothing that happens in timeline 2 after the acquire of M, at point 2, will be seen by timeline 1 before its release, also at point 2. 61.1407 + 61.1408 +That ordering guarantee is what we think of when we imagine the behavior of a mutex acquire-release pair. All writes done by the releasing thread are seen as completed, by reads performed in the acquiring thread, and no writes in the acquiring thread are seen before the release by the releasing thread. That is required in order to have value for the semantics of only one thread owns the mutex at any point. The purpose of only-one is to isolate read and write operations done by the owning thread from those done by the threads that own before or after it. 61.1409 + 61.1410 + 61.1411 +The behavior is implemented in terms of a data structure that lives inside the controlling entity's environment. The controlling entity looks up the data structure for the mutex being requested. This data structure has a field that contains the name of the thread that current owns the mutex, plus a queue of threads waiting to acquire it. So, the controlling entity first looks at the field that holds the current owner, sees that it is occupied, and then puts the thread's name into the queue of waiting threads. 61.1412 + 61.1413 +At some point later, the waiting thread reaches the top of the queue. At the point the owning thread executes the release operation, that owning thread also suspends, the controlling entity sees that suspend and that the thread wants to perform the release behavior. It looks up the release behavior and performs it. This behavior looks up the mutex data structure in the controlling entity's environment, removes the releasing thread from the owner field, takes the top thread off the waiters, writes its name into the current owner, then marks both those threads as ready to resume their timelines. 61.1414 + 61.1415 +The proto-runtime is the controlling entity, which looks up the behaviors and performs them. It also manages the environment that holds the data structures used by the behaviors. 61.1416 + 61.1417 +=========== 61.1418 + 61.1419 +The purpose of the M is to guarantee that what gets written to A here in this timeline is seen over here, in this other timeline. 61.1420 + 61.1421 +So, to turn this simple mechanism into a synchronization construct, you add semantics on top, which determine the end of suspend in the two timelines. The timelines voluntarily place themselves into suspend, and it is up to the controlling entity to decide at what point to end that suspension. It is this choice of ending suspension that ties events in one timeline to events in another. The semantics of deciding that end of suspension is the semantics of the synchronization construct. 61.1422 + 61.1423 +For example, take mutual exclusion within Threads. One thread executes a construct that asks to acquire the mutex. At the point of executing, that thread suspends, so that timeline ceases advancing. At some point later, the controlling entity sees that suspend, and sees that the timeline is attempting the acquire mutex activity. It looks up the behavior for acquire mutex, which is then performed inside that controlling entity. 61.1424 + 61.1425 +============ 61.1426 + 61.1427 + 61.1428 +\subsection{More on eDSLs} 61.1429 +%====================================== 61.1430 + 61.1431 +%We expand on the hypothesis that an embedded style Domain Specfic Language (eDSL) provides high programmer productivity, with a low learning curve. We also show (\S ) that when an application is written in a well designed eDSL, porting it to new hardware becomes simpler, because often only the language needs to be ported. That is because the elements of the problem being solved that require large amounts of computation are often pulled into the language. Lastly (\S ), we hypothesize that switching from sequential programming to using an eDSL is low disruption because the base language remains the same, along with most of the development tools and practices. 61.1432 + 61.1433 +%In \S \ref{sec:DSLHypothesis} we show that the small number of users of an eDSL means that the eDSL must be very low effort to create, and also low effort to port to new hardware. At the same time, the eDSL must remain very high performance across hardware targets. 61.1434 + 61.1435 +%In \S we analyze where the effort of creating an eDSL is expended. It turns out that in the traditional approach, it is mainly expended in creating the runtime, and in performance tuning the major domain-specific constructs. We use this to support the case that speeding up runtime creation makes eDSLs more viable. 61.1436 + 61.1437 +%In \S we take a step back and examine what the industry-wide picture would be if the eDSL approach were adopted. A large number of eDSLs will come into existence, each with its own set of runtimes, one runtime for each hardware target. That causes a multiplicative effect: the number of runtimes will equal the number of eDSLs times the number of hardware targets. Unless the effort of implementing runtimes reduces, this multiplicative effect could dominate, which would retard the uptake of eDSLs. 61.1438 + 61.1439 + 61.1440 +% ============== 61.1441 + 61.1442 +%Further, in \S we show that when an application is written in a well designed eDSL, porting it to new hardware becomes simpler because often only the language needs to be ported. That is because the elements of the problem being solved that require large amounts of computation are often pulled into the language. Lastly, in \S we hypothesize that switching from sequential programming to using an eDSL is low disruption because the base language remains the same, along with most of the development tools and practices. Hence, we cover how the three issues currently making parallel programming unattractive are addressed by embedded-style DSLs. 61.1443 + 61.1444 +%We next show what the blocks to eDSLs are, and where the main effort in implementing an eDSL lies. Specifically, in \S \ref{sec:DSLHypothesis} we show that the small number of users of an eDSL means that the eDSL must be very low effort to create, and also low effort to port to new hardware. At the same time, the eDSL must remain very high performance across hardware targets. 61.1445 + 61.1446 +%In \S we analyze where the effort of creating an eDSL is expended. It turns out that in the traditional approach, it is expended in creating the translator for the custom DSL syntax, in creating the runtime, and in performance tuning the major domain-specific constructs. We propose that the MetaBorg[] or Rose[] translation approaches cover creating translators for custom syntax, and that tuning constructs is inescapable, leaving the question of runtime implementation time. 61.1447 + 61.1448 +%In \S we explore the effects of runtime implementation time by taking a step back and examine what the industry-wide picture would be if the eDSL approach were adopted. A large number of eDSLs will come into existence, each with its own set of runtimes, one runtime for each hardware target. That causes a multiplicative effect: the number of runtimes will equal the number of eDSLs times the number of hardware targets. Unless the effort of implementing runtimes reduces, this multiplicative effect could dominate, which would retard the uptake of eDSLs. Thus, showing that an approach that mitigates this multiplicative effect is valuable, and is the role that the proto-runtime plays. 61.1449 + 61.1450 + 61.1451 + 61.1452 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 61.1453 +\subsection{Details} 61.1454 +\label{subsec:Details} 61.1455 + 61.1456 + what responsibilities are encapsulated in which modules, and what the interfaces between them look like. 61.1457 + 61.1458 +modularization and its interface is what makes the proto-runtime reusable by all languages on given hardware, and the low-level tuning of the proto-runtime for specific hardware automatically benefits all the languages on that hardware. 61.1459 + 61.1460 +? 61.1461 + 61.1462 + 61.1463 + 61.1464 + overhead measurements 61.1465 + 61.1466 +implementation time measurements 61.1467 + 61.1468 + discuss why equivalent user-level M to N thread packages haven't been pursued, leaving no viable user-level libraries to compare against. 61.1469 + 61.1470 + give numbers that indicate that the proto-runtime approach is also competitive with Cilk, and OMPSs, on large multi-core servers. 61.1471 + 61.1472 + summary of development time of the various embedded languages created so far. Unfortunately, no control is available to compare against, but we provide estimates based on anecdotal evidence of the time taken to develop the versions compared against for overhead. In the 61.1473 +least, the same effort would have to be expended on 61.1474 +each and every language that we expended on performance 61.1475 +tuning our proto-runtime. 61.1476 + 61.1477 + We continue with a bigger picture discussion of the difference in design methods between traditional approaches and the proto-runtime implementations (\S ). We discuss OpenMP versus the equivalent proto-runtime version called VOMP (\S ). Then (\S ) we discuss Cilk 5.4 vs the proto-runtime VCilk. Next we discuss pthread vs Vthread (\S ), and OMPSs vs VSs (\S ). These discussions attempt to give the two design philosophies and paint a picture of the development process in the two competing approaches. The goal is to 61.1478 + 61.1479 +illustrate how the proto-runtime approach maintains many of the features, through its centralized services, while significantly reducing implementation time, through reuse of the services, elimination of concurrency concerns in design and debugging, and in the simplifications in design and implementation caused by the clean modularization of the proto-runtime approach, and the regularization of implementation from one language to another. 61.1480 + 61.1481 +Then, with the full understanding of the proto-runtime approach in hand, we discuss how it compares to related work (\S ). 61.1482 + 61.1483 +Finally, we highlight the main conclusions drawn from the work (\S ). 61.1484 + 61.1485 + 61.1486 + 61.1487 +? 61.1488 + 61.1489 + 61.1490 + 61.1491 + 61.1492 + The behavior module creates work and determines when work is free the execute, it tracks constraints on work imposed by language semantics, and constraints 61.1493 +due to data dependencies. 61.1494 + 61.1495 + a copy of the proto-runtime with language modules runs separately on each core and they communicate via shared variables in a shared language environment. The proto-runtime protects access to the shared language environment so that language modules can be written in sequential style. 61.1496 + 61.1497 +? 61.1498 + 61.1499 +The proto-runtime also implements "centralized" services that it makes available to all languages. Hardware specific functions include communicating between processors and protecting the internal state used by the language modules. 61.1500 + 61.1501 + 61.1502 + 61.1503 + this makes the proto-runtime be reused by all languages on given hardware, and the low-level tuning of the proto-runtime for specific hardware automatically benefits all the languages that run on that hardware. 61.1504 + 61.1505 + implementing language logic, 61.1506 + 61.1507 +show how the proto-runtime interface allows it to use sequential thinking. 61.1508 + 61.1509 +give similar detail on the implementation of the assigner, 61.1510 +we discuss how that has the potential to improve application performance by reducing communication between cores and reducing idle time of cores. 61.1511 + 61.1512 +support belief that the patterns we followed when modularizing are indeed fundamental and will remain valid for future languages and hardware. 61.1513 + 61.1514 + discuss some of the centralized services provided by the current proto-runtime implementation, as well as planned future ones. 61.1515 + 61.1516 +reusing language logic from one language implementation to another. 61.1517 + 61.1518 + 61.1519 +%%%%%%%%%%%%%%%%%%%%%%%% 61.1520 +%% 61.1521 +%%%%%%%%%%%%%%%%%%%%%%%% 61.1522 +\section{Measurements} 61.1523 +With the background on eDSLs and description of the proto-runtime approach behind us, we then provide overhead measurements in \S\ref{subsec:OverheadMeas} and implementation time measurements in \S\ref{subsec:ImplTimeMeas} 61.1524 + 61.1525 +\subsection{Overhead Measurements} \label{subsec:OverheadMeas} 61.1526 +For the following, we use a 4-core single socket 2.4Ghz laptop, and a 4 socket by 10 core each server. 61.1527 + 61.1528 +For runtime performance: 61.1529 + 61.1530 +-- Vthread vs pthread: laptop and server on exe vs task (and fibonacci?) 61.1531 + 61.1532 +-- VCilk vs Cilk: laptop and server on fibonacci (from Albert) 61.1533 + 61.1534 +-- VOMP vs OpenMP: laptop and server on exe vs task and fibonacci 61.1535 + 61.1536 +-- VSs vs OMPSs: laptop and server on fibonacci and jpeg 61.1537 + 61.1538 +\begin{tabular}{|c|c|c|c|c|c|c|}\hline 61.1539 +a & 2 & a & a & a & a & a \\\hline 61.1540 +a & 2 & a & a & a & a & a \\\hline 61.1541 +a & a & a & a & a & a & a \\\hline 61.1542 +a & a & a & a & a & a & a \\\hline 61.1543 +\end{tabular} 61.1544 +\caption{} 61.1545 +\label{tab} 61.1546 + 61.1547 +As seen, we didn't include application performance because we have not yet taken advantage of the opportunity to use language information to predict locality. That research is in progress and will be reported in future papers. 61.1548 + 61.1549 + 61.1550 +\subsubsection{Vthread Versus Highly Tuned Posix Threads} 61.1551 + 61.1552 +Measurements indicate that the proto-runtime approach has far lower overhead than even the current highly tuned Linux thread implementation, and discusses why equivalent user-level M to N thread packages haven't been pursued, leaving no viable user-level libraries to compare against. 61.1553 +\subsubsection{VCilk Versus Cilk 5.4} 61.1554 +In \S we give numbers that indicate that the proto-runtime approach is also competitive with Cilk 61.1555 +\subsubsection{VSs Versus StarSs (OMPSs)} 61.1556 +OMPSs 61.1557 +\subsubsection{VOMP Versus OpenMP} 61.1558 +VOMP 61.1559 + 61.1560 + 61.1561 +%%%%%%%%%%%%%%%%%%%%%%%% 61.1562 +%% 61.1563 +%%%%%%%%%%%%%%%%%%%%%%%% 61.1564 +\subsection{Development Time Measurements}\label{subsec:ImplTimeMeas} 61.1565 +Here we summarize the time to develop each of the eDSLs and copy-cat languages created so far. As a control, we estimate how long the equivalent functionality required, using the traditional approach, based on anecdotal evidence. 61.1566 + 61.1567 +Summarized in Table \ref{tabPersonHoursLang}, we measured the time we spent to design, code, and get an initial version working for each of the languages we created. The results are shown in the same order we created them, with SSR the first. As we gained experience, design and coding became more efficient. Not shown is the 7 hours required to take the send-receive code from SSR and adapt it to work with tasks in VSs. In addition, 11 hours was spent importing the DKU constructs into VSs. These are hours spent at the keyboard or with pen and paper, and don't include think time during other activities in the day. 61.1568 + 61.1569 + 61.1570 +\begin{centering} 61.1571 +\begin{tabular}{|l|r|r|r|r|r|r|} 61.1572 + \cline{2-7} 61.1573 + \multicolumn{1}{r|}{} & SSR & Vthread & VCilk & HWSim & VOMP & VSs\\ 61.1574 + \cline{2-7} 61.1575 + \noalign{\vskip2pt} 61.1576 + \hline 61.1577 + Design & 19 & 6 & 3 & 52 & 18& 6\\ 61.1578 + Code & 13 & 3 & 3& 32 & 9& 12\\ 61.1579 + Test & 7 & 2 & 2& 12 & 8& 5\\ 61.1580 + L.O.C. & 470 & 290 & 310& 3000 & 690 & 780\\ 61.1581 + \hline 61.1582 +\end{tabular} 61.1583 +\caption 61.1584 +{Hours to design, code, and test each embedded language. L.O.C. is lines of (original) C code, excluding libraries and comments. 61.1585 +} 61.1586 +\end{centering} 61.1587 +\label{tabPersonHoursLang} 61.1588 + 61.1589 +\subsubsection{Comparison of Design Approaches} 61.1590 +We give the bigger picture of the difference in design methods between traditional approaches and the proto-runtime implementations, discussing OpenMP versus VOMP, Cilk 5.4 vs VCilk, pthread vs Vthread, and OMPSs vs VSs. These discussions attempt to give the two design philosophies and paint a picture of the development process in the two competing approaches. The goal is to illustrate how the proto-runtime approach maintains many of the language features, through its centralized services, while significantly reducing implementation time, through reuse of the services, elimination of concurrency concerns in design and debugging, and in the simplifications in design and implementation caused by the clean modularization of the proto-runtime approach, and the regularization of implementation from one language to another. 61.1591 + 61.1592 + 61.1593 +%%%%%%%%%%%%%%%%%%%%%%%% 61.1594 +%% 61.1595 +%%%%%%%%%%%%%%%%%%%%%%%% 61.1596 +\section{Related Work} \label{sec:Related} 61.1597 + 61.1598 +With the full understanding of the proto-runtime approach in hand, we discuss how it compares to other approaches for implementing the runtimes of domain specific languages. The criteria are: level of effort to implement the runtime, effort to port the runtime, runtime performance, and support for application performance. The main alternative implementation approaches are: posix threads, user-level threads, TBB, modifying libGomp, and using hardware primitives to make a custom runtime. 61.1599 + 61.1600 +We first talk about each of these approaches, then summarize the conclusions in Table \ref{tab:CriteriaVsApproach}. 61.1601 + 61.1602 +The first three methods involve building the DSL runtime on top of OS threads, user threads, or TBB, all of which are languages in their own right. So the DSL runtime runs on top of the runtime for that lower-level language. This places control of work placement inside the lower-level runtime, blocking the DSL runtime, which hurts application-code performance, due to inability to use data locality. In addition, OS threads have operating system overhead and OS-imposed fairness requirements, which keeps runtime performance poor. 61.1603 + 61.1604 +All three also force the DSL implementation to manage concurrency explicitly, using language primitives such as locks. TBB may have a slight advantage due to its task-scheduling commands, but only for task-based languages. Hence, implementation effort is poor for these approaches. 61.1605 + 61.1606 +For the same reason, for these three, the runtime code needs to be rewritten and tuned for each hardware platform for each language, or else some form of hardware-abstraction placed into the runtime. But putting in a hardware abstraction is essentially an alternative way of implementing half of the proto-runtime approach, but without the centralization, reuse, and modularization benefits. 61.1607 + 61.1608 +Many language researchers use libGomp (based on informal discussions) because of its very simple structure, which makes it relatively easy to modify, especially for simple languages. However, it provides no services such as debugging or performance tuning, and it has no modularization or reuse across languages benefits. As the price of the simplicity, performance suffers, as seen in the experiments []. Also, re-writes of the DSL runtime are required for each platform in order to tune it to hardware characteristics. However, because the runtime is directly modified, the language gains control over placement of work, enabling good application performance. 61.1609 + 61.1610 +Lastly, we consider the alternative of writing a custom runtime from scratch, using hardware primitives such as the Compare And Swap (CAS) instruction, or similar atomic read-modify-write instructions. This approach requires the highest degree of implementation effort, and the worst portability across hardware. However, if sufficient effort is expended on tuning, it can achieve the best runtime performance and equal the best performance of application code. So far, the gap has proven small between highly tuned language-specific custom runtime performance and that of our proto-runtime, but we only have the CILK implementation as a comparison point. 61.1611 + 61.1612 +Putting this all together, Table \ref{tab:CriteriaVsApproach} shows that the proto-runtime approach is the only one that scores high in all the mesures. It makes initial language implementation fast, as well as reduces porting effort, while keeping runtime performance high and enabling high application performance. 61.1613 + 61.1614 +\begin{center} 61.1615 +\begin{tabular}{|c|c|c|c|c|}\hline 61.1616 +Runtime Creation & \textbf{impl.}& \textbf{porting} & \textbf{runtime} & \textbf{application} \\ 61.1617 +\textbf{} & \textbf{ease} & \textbf{ease} & \textbf{perf.} & \textbf{perf.}\\\hline 61.1618 +\textbf{OS Threads} & ++ & ++ & + & + \\\hline 61.1619 +\textbf{User Threads} & ++& ++ & ++ & + \\\hline 61.1620 +\textbf{TBB} & ++ & ++ & ++ & + \\\hline 61.1621 +\textbf{libGomp} & +++ & ++ & +++ & ++++ \\\hline 61.1622 +\textbf{HW primitives} & + & + & +++++ & +++++ \\\hline 61.1623 +\textbf{Proto-runtime} & +++++ & +++++ & ++++ & +++++\\\hline 61.1624 +\end{tabular} 61.1625 +\end{center} 61.1626 +\caption{The table shows how well each approach scores in each measure important to the implementor of a runtime for a DSL. On the left are the approaches that can be used to write the runtime. At the top are the measures an implementor may care about. For all measures, one plus is the lowest score, indicating the implementation approach is undesirable, 5 indicates the highest desirability. The scores are based on reasons discussed in the text. } 61.1627 +\label{tab:CriteriaVsApproach} 61.1628 + 61.1629 + 61.1630 + 61.1631 + 61.1632 +%%%%%%%%%%%%%%%%%%%%%%%% 61.1633 +%% 61.1634 +%%%%%%%%%%%%%%%%%%%%%%%% 61.1635 +\section{Conclusions and Future Work} 61.1636 +The main takeaways from the paper are first, the potential for embedded style Domain Specific Languages (eDSLs) to address the issues that are holding-back parallel programming, and second the role that the proto-runtime approach can play in making eDSLs practical, by simplifying the runtime aspect of implementing a large number of eDSLs across the many hardware targets. 61.1637 +%The proto-runtime approach does this by modularizing the runtimes, providing reuse of centralized services, and reuse of the hardware-specific performance tuning, which is performed once per hardware, on the proto-runtime, then enjoyed by all the eDSLs. Hence, the proto-runtime approach provides a significant piece of the puzzle of providing eDSLs, to bring parallel programming into the mainstream. 61.1638 + 61.1639 + 61.1640 +%[[Hypothesis: Embedded-style DSLs -> high productivity + low learning curve + low disruption + low app-port AND quick time to create + low effort to lang-port + high perf across targets]] 61.1641 + 61.1642 + 61.1643 +Specifically, we have shown how the approach modularizes runtime code, in a way that appears applicable to any language or execution model. It isolates the hardware-specific portion from language behavior as well as from the language-driven placement of work onto resources, providing interfaces between them. 61.1644 + 61.1645 + The modularization reduces the effort of implementing a new language, especially for an embedded-style one where runtime creation is a significant portion of total effort. It causes the low level hardware portion to be reused by each language. And, the behavior implementation is simplified, by handling shared state inside the proto-runtime and exporting a sequential interface for the behavior module to use. The simplification reduces effort, as does reuse of the hardware-specific portion, reuse of behavior code from one language to another, reuse of assignment code, and familiarity with the modular structure by implementors. Overall effort reduction was supported by measurements of implementation effort. 61.1646 + 61.1647 +The proto-runtime approach makes it practical to maintain high overall runtime performance, with low effort for the language implementor. It is practical because high effort is put into performance-tuning the hardware-specific proto-runtime, which is then reused by each language. In this way the performance derived from the high tuning effort is inherited without extra effort by the language creators, thus amortizing the cost. 61.1648 + 61.1649 +Centralized services were implemented inside the proto-runtime portion, such as debugging facilities, automated verification, concurrency handling, hardware performance information gathering, and so on. We showed how they are reused by the languages. 61.1650 + 61.1651 +Although we didn't measure it, we indicated how application performance can be increased due to giving the language direct control over placement of work, to take advantage of data affinity or application-generated communication patterns. This ability is due to the assignment module, which provides the language implementor with control over which core work is assigned to, and the order of executing each work unit. 61.1652 + 61.1653 +Work on the proto-runtime approach is in its infancy, and much remains to be done, including: 61.1654 +\begin{itemize} 61.1655 +\item Creating related interfaces for use with distributed memory hardware, and interfaces for hierarchical runtimes, to improve performance on many-level hardware such as high-performance computers, and to tie together runtimes for different types of architecture, to cover heterogeneous architectures and machines. 61.1656 +\item Extending the proto-runtime interface to present hardware information that a work-assigner will need, but in a generic way that remains constant across many hardware configurations yet exposes all relevant information. 61.1657 +\item Exploring work assignment implementations that take advantage of language and application knowledge to improve placement of work to gain higher application performance. 61.1658 +\item Applying the proto-runtime approach to support a portability software stack, and supply OS services to applications via the proto-runtime, to further increase application-code portability. 61.1659 +\end{itemize} 61.1660 + 61.1661 + 61.1662 +============================================= 61.1663 +== 61.1664 +== 61.1665 +== 61.1666 +== 61.1667 +== 61.1668 +============================================= 61.1669 + 61.1670 +\section{The Problem} 61.1671 + 61.1672 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 61.1673 + 61.1674 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 61.1675 + 61.1676 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 61.1677 + 61.1678 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 61.1679 + 61.1680 + 61.1681 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 61.1682 + 61.1683 +While talking about the problems encountered by Domain Specific Languages (DSLs), we focus on implications for the runtime system, due to its central role in the claims. At the same time we will support the hypothesis that embedded-style DSLs are high-productivity for application programmers, have a low learning curve, and cause low disruption to current programming practices. While doing this we set the ground work for the next section, where we show that the main effort of implementing embedded-style DSLs is creating the runtime, and that when using the proto-runtime approach, embedded-style DSLs are low-effort to create and port and move the effort of porting for high performance out of the application and into the language. 61.1684 + 61.1685 +To give the needed depth, we'll first talk about a way to classify parallel languages according to the structure of their runtime (subsection \ref{subsec:ClassifyingLangs}). Then we'll talk about the sub-class of domain specific parallel languages, what sets them apart, and the implications for their runtime implementations (subsection \ref{subsec:DomSpecLangs}). That segues into the embedded style of language, and how the work of implementing them is mainly the work of implementing their runtime (subsection \ref{subsec:EmbeddedDSLs}). 61.1686 + 61.1687 +Once that reduction from parallel languages in general to embedded style domain specific ones in particular is done, we'll give more on what embedded style DSLs look like from an application programmer's view (subsection \ref{subsec:AppProgViewOfDSL}). We will include depth on a particular embedded-style language, showing sample code that uses the constructs, then delving into needs within the implementation of that language, and behavior of the constructs during a run (subsection []). 61.1688 + 61.1689 +The main implications for runtime systems, which were uncovered within the section, are summarized at the end (subsection []). 61.1690 + 61.1691 +\subsection{Classifying parallel languages by virtual processor based vs task based} 61.1692 +\label{subsec:ClassifyingLangs} 61.1693 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 61.1694 + 61.1695 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 61.1696 + 61.1697 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 61.1698 + 61.1699 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 61.1700 + 61.1701 + 61.1702 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 61.1703 + 61.1704 +One major axis for classifying parallel languages is whether they are virtual processor based or task based, which has implications for the structure of the runtime. 61.1705 + 61.1706 +A virtual processor is long-lived, and has a context that persists across suspend and resume, while a task has no preceding context to fit into and leaves no implied context when done. Posix threads is a standard example of a virtual processor based parallel language, as are UPC, Charm, TBB, and so forth. All of these create virtual processors (aka threads), which suspend when they invoke synchronizations and other parallel-language constructs then resume after the construct completes. Such virtual processors have their own private stack to save the information that is needed upon resume. 61.1707 + 61.1708 +In contrast, dataflow is a standard example of a task based language, as is CnC. For these languages, a task is passed all the information it needs at the point of creation, and is expected to run to completion. If a task needs to invoke a parallelism construct, that invocation normally ends the task, while information needed by following tasks is saved explicitly in shared variables, or passed to the runtime as a continuation that is then handed to the task created when the construct completes. 61.1709 + 61.1710 +Hybrids of the two also exist, such as OpenMP which implies thread creation, via the parallel-pragma, but also creates tasks via the for-pragma. As well, StarSs (OMPSs) mixes the two, with a main thread that creates meta-tasks that have to resolve their dependencies before being turned into executable tasks. Those tasks are also able to invoke barriers and other synchronization constructs, then resume. 61.1711 + 61.1712 +The runtime implementations of the two different types of execution model differ markedly. Virtual processor (VP) based runtimes have to create a stack for each VP created, and manage the interleaving of the CPU's hardware stack. They also require a mechanism to suspend and resume the VPs, and save them in internal structures while suspended. 61.1713 + 61.1714 +In contrast, task based runtimes need ultra-fast creation of tasks, and fast linkage from the end of one to the start of the next. They tend to keep the task-structures in a queue and discard them when complete. 61.1715 + 61.1716 +Hence, VP based runtimes revolve around storing suspended VPs inside structures that embody the constraints on when the VP can resume. But task based runtimes revolve around the conditions upon which to create new tasks, and the organization of the inputs to them. The runtimes for hybrid languages have characteristics of both. 61.1717 + 61.1718 + 61.1719 +\subsection{Domain specific parallel languages} 61.1720 +\label{subsec:DomSpecLangs} 61.1721 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 61.1722 + 61.1723 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 61.1724 + 61.1725 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 61.1726 + 61.1727 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 61.1728 + 61.1729 + 61.1730 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 61.1731 + 61.1732 +Now we'll talk about the sub-class of Domain Specific Languages (DSLs): what sets them apart from other parallel languages, how they potentially solve the issues with parallel programming, and the implications for their runtime implementations. 61.1733 + 61.1734 +DSLs can be any of the three basic language types (VP based, task-based or hybrid), but they are distinguished by having constructs that correspond to features of one narrow domain of applications. For example, we have implemented a DSL that is just for use in building hardware simulators [cite the HWSim wiki]. Its constructs embody the structure of simulators, and make building one fast and even simpler than when using a sequential language, as will be shown in Subsection []. The programmer doesn't think about concurrency, nor even about control flow, they simply define behavior of individual hardware elements and connect them to each other. 61.1735 + 61.1736 +It is this fit between language constructs and the mental model of the application that makes DSLs highly productive and easy to learn, at the same time, it is also what makes applications written in them more portable. Application patterns that have strong impact on parallel performance are captured as language constructs. The rest of the source code has less impact on parallel performance, so just porting the language is enough to get high performance on each hardware target. 61.1737 + 61.1738 +In practice, designing such a language is an art, and for some hardware targets, the language can become intrusive. For example, for porting to GPGPUs, their performance is driven by decomposition into many small, simple, kernels, which access memory in contiguous chunks. Fitting into this pattern forces rearrangement of the base sequential code, and even constrains choice of algorithm. Hence, a DSL that is portable to standard architectures as well as GPUs would place the GPU restrictions onto the code for all machines. However, much excellent work [polyhedral, others] is being done on automated tools to transform standard code to GPU form, which would lift the restrictions. Also, constructs such as the DKU pattern [] map well onto GPUs as well as standard hardware. 61.1739 + 61.1740 +\subsection{The embedded style of DSL} 61.1741 +\label{subsec:EmbeddedDSLs} 61.1742 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 61.1743 + 61.1744 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 61.1745 + 61.1746 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 61.1747 + 61.1748 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 61.1749 + 61.1750 + 61.1751 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 61.1752 + 61.1753 +We segue now into the embedded style of language, and show how the work of implementing them is mainly the work of implementing their runtime plus their complex domain constructs. We focus on embedded style domain specific languages because it is the least effort-to-create form of DSL, and making DSLs practical requires it to be low effort to create them and port them to various hardware targets. 61.1754 + 61.1755 + 61.1756 +An embedded-style language is one that uses the syntax of a base language, like C or Java, and adds constructs that are specific to the domain. An added construct may be expressed in custom syntax that is translated to into a library call, or else directly invoked by making a library call, as illustrated in Figure \ref{fig:EmbeddedEx}. Inside the library call, a primitive is used to escape the base language and enter the embedded language's runtime, which then performs the behavior of the construct. 61.1757 + 61.1758 + 61.1759 +\begin{figure}[h!tb] 61.1760 +{\noindent 61.1761 +{\footnotesize 61.1762 +{\normalsize Creating a new virtual processor (VP):} 61.1763 +\begin{verbatim} 61.1764 +newVP = SSR__create_VP( &top_VP_fn, paramsPtr, animatingVP ); 61.1765 +\end{verbatim} 61.1766 + 61.1767 +{\noindent {\normalsize sending a message between VPs:}} 61.1768 +\begin{verbatim} 61.1769 +SSR__send_from_to( messagePtr, sendingVP, receivingVP ); 61.1770 +\end{verbatim} 61.1771 + 61.1772 +{\noindent {\normalsize receiving the message (executed in a different VP):}} 61.1773 +\begin{verbatim} 61.1774 +messagePtr = SSR__receive_from_to( sendingVP, receivingVP ); 61.1775 +\end{verbatim} 61.1776 +} 61.1777 +} 61.1778 + 61.1779 +\caption 61.1780 +{Examples of invoking embedded-style constructs. 61.1781 +} 61.1782 +\label{fig:EmbeddedEx} 61.1783 +\end{figure} 61.1784 +An embedded-style language differs from a library in that it has a runtime system, and a way to switch from the behavior of the base language to the behavior inside the runtime. In contrast, libraries never leave the base language. Notice that this means, for example, that a posix threads library is not a library at all, but an embedded language. 61.1785 + 61.1786 +As a practical matter, embedded-style constructs normally have a thin wrapper that invokes the runtime. However, some DSLs perform significant effort inside the library before switching to the runtime, or else after returning from the runtime. These look more like traditional libraries, but still involve an escape from the base language and more importantly are designed to work in concert with the parallel aspects of the language. They concentrate key performance-critical aspects of the application inside the language, such as dividing work up, or, for example, implementing a solver for differential equations that accepts structures created by the divider. 61.1787 + 61.1788 +It is the appearance of constructs being library calls that brings the low-disruption benefit of embedded-style DSLs. The syntax is that of the base language, so the existing development tools and work flows remain intact when moving to an embedded style DSL. In addition, the fit between domain concepts and language constructs minimizes mental-model disruption when switching and makes the learning curve to adopt the DSL very low. 61.1789 + 61.1790 +\subsection{Application programmer's view of embedded-style DSLs} 61.1791 +\label{subsec:AppProgViewOfDSL} 61.1792 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 61.1793 + 61.1794 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 61.1795 + 61.1796 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 61.1797 + 61.1798 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 61.1799 + 61.1800 + 61.1801 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 61.1802 + 61.1803 +Well designed DSLs have very few constructs, yet capture the most performance-critical domain patterns, in a way that feels natural to the application programmer. This often means that data structures and usage patterns are part of the language. 61.1804 + 61.1805 +For example, a linear-equation-solving language would define a standard data structure for the coefficients of the equations, and supply a construct by which the language is asked to perform the work of solving them. This feels very much like a library, but the runtime system dynamically performs division of work according to the hardware, and implements communication between cores and a scheduler that load balances and tries to take advantage of data affinity and even computational accelerators. All of which puts performance in the hands of the runtime and is simple to use. 61.1806 + 61.1807 +An example of a DSL that we created using the proto-runtime approach is HWSim [], which is designed to be used for writing architectural simulators. 61.1808 + 61.1809 +When using HWSim, a simulator application is composed of just three things: netlist, behavior functions and timing functions. These are all sequential code that call HWSim constructs at boundaries, such as the end of behavior, and use HWSim supplied data structures. To use HWSim, one creates a netlist composed of elements and communication paths that connect them. A communication path connects an outport of the sending element to an inport of the receiving element. An action is then attached to the inport. The action is triggered when a communication arrives. The action has a behavior function, which changes the state of the element, and a timing function which calculates how much simulated time the behavior takes. 61.1810 + 61.1811 +The language itself consists of only a few standard data structures, such as \texttt{Netlist}, \texttt{Inport}, \texttt{Outport}, and a small number of constructs, such as \texttt{send\_comm} and \texttt{end\_behavior}. The advancement of simulated time is performed by a triggered action, and so is implied. The parallelism is also implied, by the only constraints on order of execution of actions being consistency. 61.1812 + 61.1813 +The only parallelism-related restriction is that a behavior function may only use data local to the element it is attached to. Parallel work is created within the system by outports that connect to multiple destination inports which means one output triggers multiple actions, and by behavior functions that generate multiple output communications each. 61.1814 + 61.1815 +Overall, simulator writers have fewer issues to deal with because time-related code has been brought inside the language, where it is reused across simulators, and because parallelism issues reduce to simply being restricted to data local to the attached element. Both these increase productivity of simulator writers, despite using a parallel language. The language has so few commands that it takes only a matter of days to become proficient (as demonstrated informally by new users of HWSim). Also, parallelism related constructs in the language are generic across hardware, eliminating the need to modify application code when porting to new hardware (if the language is used according to the recommended coding style). 61.1816 + 61.1817 +\subsection{Implementation of Embedded-style DSLs} 61.1818 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 61.1819 + 61.1820 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 61.1821 + 61.1822 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 61.1823 + 61.1824 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 61.1825 + 61.1826 + 61.1827 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 61.1828 + 61.1829 +When it comes to implementing an embedded-style of DSL, the bulk of the effort is in the runtime and the more complex domain specific constructs. 61.1830 + 61.1831 +Examples of constructs implemented for DSLs include Abstract Data Types (ADTs), like linked lists, hash tables, and priority queues. Also, full algorithms, like solvers for systems of equations, or even linear algebra operations on matrices. It will be seen in subsection[] that the proto-runtime approach causes the implementation for such constructs to be reused, with high performance, across all the hardware targets in a hardware class such as the class of shared-memory multi-core platforms. 61.1832 + 61.1833 +In addition, embedded style DSLs rely heavily on data types that are part of the language. These are often domain-specific such as \texttt{Netlist}, \texttt{Inport}, and \texttt{Outport} in HWSim, or \texttt{Protein} in a bio-informatics DSL, but can also be common such as \texttt{SparseMatrix} in domains like data mining and scientific applications. 61.1834 + 61.1835 + 61.1836 + During language design, common patterns that consume significant development time or computation are placed into the language. Also, any patterns that expose hardware configuration, such as the number and size of pieces of work should be pulled into the language to aid portability. 61.1837 + 61.1838 +If such design is successful then porting the application reduces to just porting the language. When the language has successfully captured the main computational patterns of the domain, then the application code encapsulates only a small portion of the performance, so it does not need to be tuned. Further, when patterns that expose hardware-motivated choices or hardware-specific commands are in the language, then the application code has nothing that needs to change when the hardware changes. 61.1839 + 61.1840 +For example, HWSim pulls hardware-specific patterns inside the language by handling all inter-core communications inside the language, and also by aggregating multiple elements together on the same core to tune work-unit size. 61.1841 + 61.1842 +The advantage of placing these into the language, instead of application code, is portability and productivity. 61.1843 + 61.1844 + 61.1845 +\subsection{Implementation Details of Embedded-style DSLs} 61.1846 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 61.1847 + 61.1848 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 61.1849 + 61.1850 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 61.1851 + 61.1852 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 61.1853 + 61.1854 + 61.1855 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 61.1856 + 61.1857 +? 61.1858 + 61.1859 +Figure [] shows\ the implementation of the wrapper library for HWSim's send\_and\_idle construct, which sends a communication on the specified outport, and then causes the sending element to go idle. Of note is the packaging of information for the runtime. It is placing into the HWSimSemReq data structure, and then the application work is ended by switching to the runtime. The switch is via the send\_and\_suspend call, which is a primitive implemented in assembly that jumps out of the base C language and into the runtime. 61.1860 + 61.1861 +The switch to the runtime can be done in multiple ways. Our proto-runtime uses assembly to manipulate the stack and registers. For posix threads language, when implemented in Linux, the hardware trap instruction is used to switch from application to the OS. The OS serves as the runtime that implements the thread behavior. 61.1862 + 61.1863 +The core is used by the construct implementation differently for VP based languages vs for task based languages. 61.1864 + 61.1865 +For VP based languages, once inside the runtime, a synchronization construct performs the behavior shown abstractly in Figure []. In essence, a synchronization construct is a variable length delay, which waits for activities outside the calling code to cause specific conditions to become true. These activities could be actions taken by other pieces of application code, such as releasing a lock, or they could be hardware related, such as waiting for a DMA transfer to complete. 61.1866 + 61.1867 +While one piece of application code (in a VP) is suspended, waiting, other pieces can use the core to perform their work, as long as the conditions for those other pieces are satisfied. Hence, the runtime's construct implementation checks if conditions are met, and if not stores the suspended piece (VP). If the construct can change conditions for others, it updates them. For example, the lock-release construct updates state for VPs waiting for the lock. Separately, for VPs whose conditions have been met, when a core becomes available, the runtime chooses which VP to assign to which core. 61.1868 + 61.1869 +These are the two behaviors a construct performs inside the runtime: managing conditions on which work is free, and managing assignment of free work onto cores. 61.1870 + 61.1871 +For task based languages, a task runs to completion then always switches to the runtime at the end. Hence, no suspend and resume exists. Once inside, the runtime's job is to track conditions on which tasks are ready to run, or which to create. For example, in dataflow, a task is created only once all conditions for starting it are met. Hence, the only language constructs are "instantiate a task-creator", "connect a task creator to others", and "end a task". During a run, all of the runtime behavior takes place inside the "end a task" construct, where the runtime sends outputs from the ending task to the inputs of connected task-creators. The "send" action modifies internal runtime state, which represents the order of inputs to a creator on all of its input ports. When all inputs are ready, it creates a new task, then when hardware is ready, assigns the task to a core. 61.1872 + 61.1873 + 61.1874 +One survey[] discusses DSLs for a variety of domains, and this list of DSLs was copied from their paper: 61.1875 +\begin{itemize} 61.1876 +\item In Software Engineering: Financial products [12, 22, 24], behavior control and coordination [9, 10], software architectures [54], and databases [39]. 61.1877 +\item Systems Software: Description and analysis of abstract syntax trees [77, 19, 51], video device driver specifications [76], cache coherence protocols [15], data structures in C [72], and operating system specialization [63]. 61.1878 +\item Multi-Media: Web computing [14, 35, 4, 33], image manipulation [73], 3D animation [29], and drawing [44]. 61.1879 +\item Telecommunications: String and tree languages for model checking [48], communication protocols [6], telecommunication switches [50], and signature computing [11]. 61.1880 +\item Miscellaneous: Simulation [2, 13], mobile agents [36], robot control [61], solving partial differential equations [26], and digital hardware design [41]. 61.1881 +\end{itemize} 61.1882 + 61.1883 +\subsection{Summary of Section} 61.1884 + [[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 61.1885 + 61.1886 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 61.1887 + 61.1888 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 61.1889 + 61.1890 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 61.1891 + 61.1892 + 61.1893 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 61.1894 + 61.1895 +This section illustrated the promise of DSLs for solving the issues with parallel programming. The HWSim example showed that well designed parallel DSLs can actually improve productivity, and have a low learning curve, as well as reduce the need for touching application code when moving to new target hardware. The section showed that the effort of implementing an embedded style DSL is mainly that of implementing its runtime and complex domain constructs, and that a well-designed DSL captures most of the performance-critical aspects of an application inside the DSL constructs. Hence, porting effort reduces to just performance-tuning the language (with caveats for some hardware). This effort is, in turn, reused by all the applications that use the DSL. 61.1896 + 61.1897 +The stumbling point of DSLs is the small number of users, after all, how many people write hardware simulators? Perhaps a few thousand people a year write or modify applications suitable for HWSim. That means the effort to implement HWSim has to be so low as to make it no more effort than writing a library, effectively a small percentage of a simulator project. 61.1898 + 61.1899 +The runtime is a major piece of the DSL implementation, so reducing the effort of implementing the runtime goes a long way to reducing the effort of implementing a new DSL. 61.1900 + 61.1901 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 61.1902 +\section{Description} 61.1903 +\label{sec:idea} 61.1904 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 61.1905 + 61.1906 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 61.1907 + 61.1908 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 61.1909 + 61.1910 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 61.1911 + 61.1912 + 61.1913 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 61.1914 + 61.1915 +? 61.1916 + 61.1917 + 61.1918 +Now that we have made the case that embedded style DSLs have potential to solve many parallel programming issues, and that a major obstacle to uptake of them is their implementation effort, we describe the proto-runtime concept and show how it addresses this obstacle to DSLs. As shown, embedded style DSL implementation effort and porting effort is mainly that of creating the runtime and implementing the more complex language constructs. We show here that the proto-runtime approach dramatically reduces the effort of creating a DSL runtime, through a number of features. 61.1919 + 61.1920 + 61.1921 +\begin{figure}[ht] 61.1922 + \centering 61.1923 + \includegraphics[width = 2in, height = 1.8in]{../figures/PR_three_pieces.pdf} 61.1924 + \caption{Shows how the proto-runtime approach modularizes the implementation of a runtime. The three pieces are the proto-runtime implementation, an implementation of the language construct behaviors, and an implementation of the portion of a scheduler that chooses which work is assigned to which processor. } 61.1925 + \label{fig:PR_three_pieces} 61.1926 +\end{figure} 61.1927 + 61.1928 + 61.1929 +The main feature is the proto-runtime's approach to modularizing the runtime code. As shown in Fig \ref{fig:PR_three_pieces}, it breaks the runtime into three pieces: a cross-language piece, which is the proto-runtime implementation, a piece that implements the language's constructs and plugs into the proto-runtime, and a piece that assigns work onto hardware and also plugs into the proto-runtime. 61.1930 + 61.1931 +The modularization appears to remain valid across parallel languages and execution models, and we present underlying patterns that support this observation. We analyze the basic structure of a synchronization construct, and point out how the proto-runtime modularization is consistent with it. 61.1932 + 61.1933 +\subsection{Creating an eDSL} 61.1934 + 61.1935 + 61.1936 +\begin{figure}[ht] 61.1937 + \centering 61.1938 + \includegraphics[width = 2in, height = 1.8in]{../figures/eDSL_two_pieces.pdf} 61.1939 + \caption{An embedded style DSL consists of two parts: a runtime and a wrapper library that invokes the runtime} 61.1940 + \label{fig:eDSL_two_pieces} 61.1941 +\end{figure} 61.1942 + 61.1943 +As shown in Fix \ref{fig:eDSL_two_pieces}, to create an embedded style DSL (eDSL), do two things: create the runtime and create a wrapper-library that invokes the runtime and also implements the more complex language constructs. 61.1944 + 61.1945 +As seen in Fig X, a library call that invokes a language construct is normally a thin wrapper that only communicates to the runtime. It places information to be sent to the runtime into a carrier, then invokes the runtime via a primitive. The primitive suspends the base language execution and switches the processor over to the runtime code. 61.1946 + 61.1947 +\subsection{The Proto-Runtime Modularization} 61.1948 + 61.1949 +\subsubsection{Dispatch pattern} 61.1950 +-- standardizes runtime code 61.1951 +-- makes familiar going from one lang to another 61.1952 +-- makes reuse realistic, as demonstrated by VSs taking SSR constructs 61.1953 + 61.1954 +-- show the enums, and the switch table 61.1955 + 61.1956 +-- point out how the handler receives critical info -- the semEnv, req struct and calling slave 61.1957 + 61.1958 +\subsubsection{The Request Handler} 61.1959 +-- cover what a request handler does.. connect it to the wrapper lib, and the info loaded into a request struct. 61.1960 + 61.1961 +-- give code of a request handler.. within on-going example of implementing pthreads, or possibly HWSim, or pick a new DSL 61.1962 + 61.1963 +\subsection{Exporting a performance-oriented machine view } 61.1964 +The proto-runtime interface exports a view of the machine that shows performance-critical aspects. Machines that share the same architectural approach have the same performance-critical aspects, and differ only in the values. 61.1965 + 61.1966 +For example, the interface models cache-coherent shared-memory architectures as a collection of memory pools connected by networks. The essential variations among processor-chips are the sizes of the pools, the connections between them, such as which cores share the same L2 cache, and the latency and bandwidth between them. 61.1967 + 61.1968 +Hence, a single plugin can be written that gathers this information from the proto-runtime and uses it when deciding which work to assign to which core. Such a plugin will then be efficient across all machines that share the same basic architecture. 61.1969 + 61.1970 +This saves significant effort by allowing the same plugin to be reused for all the machines in the category. 61.1971 + 61.1972 +\subsection{Services Provided by the Proto-runtime} 61.1973 + 61.1974 +-- Put services into the low-level piece.. plugins have those available, and inherit lang independent such as debugging, perf counters.. provides effort reduction because lang doesn't have to implement these services. 61.1975 + 61.1976 +-- -- examples of iherited lang services inside current proto-runtime: debugging and perf-tuning.. verification, playback have been started (?) 61.1977 + 61.1978 +-- -- examples of plugin services: creation of base VP, the switch primitives, the dispatch pattern (which reduces effort by cleanly separating code for each construct), handling consistency model (?), handling concurrency 61.1979 + 61.1980 +\subsection{eDSLs talking to each other} 61.1981 +-- show how VSs is example of three different DSLs, and H264 code is three different languages interacting (pthreads, OpenMP, StarSs) 61.1982 + 61.1983 +-- make case that proto-runtime is what makes this practical ! Their point of interaction is the common proto-runtime innards, which provides the interaction services.. they all use the same proto-runtime, and all have common proto-runtime objects, which is how the interaction becomes possible. 61.1984 + 61.1985 +\subsection{The Proto-runtime Approach Within the Big Picture} 61.1986 + 61.1987 +-- Give background on industry-wide, how have langs times machines.. 61.1988 +-- say that proto-runtime has synergistic advantages within this context. -- repeat that eDSLs talk to each other. 61.1989 +-- give subsubsection on MetaBorg for rewriting eDSL syntax into base lang syntax. 61.1990 +-- bring up the tools issue with custom syntax -- compiling is covered by metaborg re-writing.. can address debugging with eclipse.. should be possible in straight forward way that covers ALL eDSLs.. their custom syntax being stepped through in one window, and stepping through what they generate in separate window (by integrating generation step into eclipse).. even adding eclipse understanding of proto-runtime.. so tracks the sequence of scheduling units.. and shows the request handling in action in third window.. 61.1991 + 61.1992 +Preview idea that many players will contribute, and will get people that specialize in creating new eDSLs (such as one of authors).. 61.1993 +-- For them, code-reuse is reality, as supported by VSs example, 61.1994 +-- and the uniformity of the pattern becomes familiar, also speeding up development, as also supported by VSs, HWSim, VOMP, and DKU examples. 61.1995 +-- for those who only create a single eDSL, the pattern becomes a lowering of the learning curve, aiding adoption 61.1996 + 61.1997 +-- Restate and summarize the points below (covered above), showing how they combine to shrink the wide-spot where all the runtimes are. 61.1998 + 61.1999 +-- The low-level part implemented on each machine, exports a view of the machine that shows performance-critical aspects 61.2000 + 61.2001 +-- Collect machines into groups, based on performance critical aspects of hardware.. provides reduction in effort because only one plugin for entire group. 61.2002 + 61.2003 +-- Put services into the low-level piece.. plugins have those available, and inherit lang independent such as debugging.. provides effort reduction because lang doesn't have to implement these services. 61.2004 + 61.2005 + 61.2006 +\section{(outline and notes)} 61.2007 + 61.2008 +-- What a plugin looks like: 61.2009 + 61.2010 +-- -- pattern of parallel constructs.. ideas of Timeline, tie-point, animation, suspension, VP states, constraints, causality, work-units, meta-units, updates in constraint states attached to the meta-units 61.2011 + 61.2012 +-- -- a sych construct is something that creates a tie between two work-units. So, the logic of the construct simply establishes causality -- the ending of one work-unit causes the freedom to start animation of another. 61.2013 + 61.2014 +-- -- -- Examples: mutex is end of work-unit that frees lock causes freedom to start work-unit that gets the lock. They are causally tied. The semantics of the construct is the particular conditions existing inside the runtime (in this case ownership condition of a mutex), and what changes those conditions (in this case releasing lock removes one from owner, plus acquire-lock sets one as wanting the lock), and how freedom to be animated is affected by the changes in conditions (in this case, removal of ownership must precede gaining ownership) on what makes a work-unit free (in this case, being given ownership of the mutex), 61.2015 + 61.2016 +-- Hence, precisely, the parallelism model of the language defines constraints, which are implemented as state inside the runtime. Constructs provided do a number of things: signal bringing a set of constraints into existence (create a mutex), signal update to the state of those constraints (release mutex, state desire to acquire), and trigger the runtime to propagate those changes, which results in additional changes to states, including marking meta-units as free to be animated. cause creation of meta-units (explicitly as in VSs, or via creating entities that trigger creation as in dataflow, or via creating entities that consist of consecutive work-units as in pthreads). 61.2017 + 61.2018 + 61.2019 +-- Recipe for how to make the language plugin: time reduction is part due to simplifying the parallelism construct logic.. 61.2020 + 61.2021 + 61.2022 + 61.2023 + 61.2024 +\subsection{The Cross-language Patterns Behind the Proto-runtime} 61.2025 + 61.2026 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 61.2027 + 61.2028 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 61.2029 + 61.2030 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 61.2031 + 61.2032 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 61.2033 + 61.2034 + 61.2035 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 61.2036 + 61.2037 +An application switches to the runtime, which does scheduling work then switches back to application code. 61.2038 + 61.2039 + 61.2040 +\subsection{Some Definitions} 61.2041 + 61.2042 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 61.2043 + 61.2044 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 61.2045 + 61.2046 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 61.2047 + 61.2048 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 61.2049 + 61.2050 + 61.2051 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 61.2052 + 61.2053 +We adopt the concepts of work-unit, virtual processor (VP), animation, and tie-point as discussed in a previous paper []. A work-unit is the trace of instructions executed between two successive switches to the runtime, along with the data consumed and produced during that trace. A Virtual Processor is defined as being able to animate either the code of a work-unit or else another VP, and has state that it uses during animation, organized as a stack. Animation is definedd as causing time of a virtual processor to advance, which is equivalent to causing state changes according to instructions, while suspension halts animation, and consequently causes the end of a work-unit (a more complete definition of animation can be found in the dissertation of Halle[]). A tie-point connects the end of one work-unit to the beginning of one in a different VP, so a tie-point represents a causal relationship between two work-units, and establishes an ordering between those work-units, effectively tying the time-line of the VP animating one to the time-line of the VP animating the other work-unit. 61.2054 + 61.2055 +In addition, we introduce a definition of the word task, which is a single work-unit coupled to a virtual-processor that comes into existence to animate the work-unit and dissipates at completion of the work-unit. By definition of work-unit, a task cannot suspend, but rather runs to completion. If the language defines an entity that has a timeline that can be suspended by switching to the runtime, then such an entity is not a task. Pure Dataflow[] specifies tasks that fit our definition. 61.2056 + 61.2057 +\subsection{Handling Memory Consistency Models} 61.2058 + 61.2059 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 61.2060 + 61.2061 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 61.2062 + 61.2063 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 61.2064 + 61.2065 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 61.2066 + 61.2067 + 61.2068 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 61.2069 + 61.2070 +Weak memory models can cause undesired behavior when work-units on different cores communicate through shared variables. Specifically, the receiving work-unit can see memory operations complete in a different order than the code of the sending work-unit specifies. 61.2071 + 61.2072 +For example, consider a proto-runtime implemented on shared memory hardware that has a weak consistency model, along with a language that implements a traditional mutex lock. All memory operations performed in the VP that releases the lock should be seen as complete by the VP that next acquires the lock. 61.2073 + 61.2074 +It is up to the proto-runtime to enforce this, using hardware primitives. It has to ensure that all memory operations performed, by a task or VP, before switching to the runtime are completed before any dependent task or VP is switched into from the runtime. More precisely, the proto-runtime has to ensure that all memory operations performed by a work-unit are visible in program order to any tied work-units. In some cases the language plugin has to alert the proto-runtime of the causality between work-units. 61.2075 + 61.2076 + 61.2077 +The proto-runtime does not, however, protect application code that attempts to communicate between VPs or tasks directly, without using a parallelism construct to protect the communication. 61.2078 + 61.2079 + 61.2080 + 61.2081 +======= 61.2082 + 61.2083 + I plan to explain VMS as a universal pattern that exists in all runtimes: that is, that the application switches to runtime, which does a scheduling decision and then switches back. I'll explain it first with just master and slaves, leaving out the core\_loop. Explain it as a normal runtime that has had two key pieces removed and replaced with interfaces. The language supplies the missing pieces. Then, introduce the core\_loop stuff as a performance enhancement used when lock acquisition dominates (as it does on the 4 socket 40 core machine). 61.2084 + Next, give HWSim as an example of a real domain specific (it's working, ref manual attached), and focus on how the modularity allowed pulling constructs from other languages (singleton and atomic), and a breakdown of implementation time vs design time, and so on. Highlight how VMS's features for productivity and encapsulation solve the practical problems for domain-specific languages. 61.2085 + Finally, show that VMS performance is good enough, by going head-to-head with pthreads and OpenMP (doing a VMS OpenMP implementation now). And also StarSs if I have time. I'll run overhead-measuring on them, and also regular benchmarks. 61.2086 + 61.2087 +================= 61.2088 + 61.2089 +\subsection{The patterns} 61.2090 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 61.2091 + 61.2092 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 61.2093 + 61.2094 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 61.2095 + 61.2096 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 61.2097 + 61.2098 + 61.2099 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 61.2100 + 61.2101 + 61.2102 +Soln: modularize runtime, to reduce part have to mess with, hide part that has low-level details, reuse low-level tuning effort, and reuse lang-spec parts. 61.2103 + 61.2104 +Benefits: lang impl doesn't have to touch low-level details, inherit centralized services, can reuse code from other languages to add features. 61.2105 + 61.2106 +Performance must be high, or the labor savings don't matter. By isolating the low-level details inside the proto-runtime, they can be intensively tuned, then all the languages inherit the effort. 61.2107 + 61.2108 +Part of what makes this so easy is the dispatch pattern.. adding a construct reduces to adding into switch and writing handler.. borrow constructs by taking the handler from the other lang. 61.2109 + 61.2110 +By isolating the low-level details inside the proto-runtime, they can be intensively tuned, then all the languages inherit the effort. Compare that to current practices, where the runtime code is monolithic.. each language has to separately modify the runtime, understanding and dealing with the concurrency, and then on a new machine, each language has to re-tune the low-level details, worrying about the consistency model on that machine, how its particular fence and atomic instructions work, and so on. 61.2111 +We spent 2 months performance tuning the current version, but only 18 hours implementing VSs on top of it, and VSs inherited the benefit from all that effort. So did VOMP, and SSR, and VCilk, and so on.. each time we improved the proto-runtime, all the languages improved, with no effort on the part of the language creator. 61.2112 + 61.2113 + 61.2114 +\subsubsection{Views of synchronization constructs} 61.2115 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 61.2116 + 61.2117 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 61.2118 + 61.2119 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 61.2120 + 61.2121 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 61.2122 + 61.2123 + 61.2124 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 61.2125 + 61.2126 +One view of sync constructs is that they are variable-length calls. The 61.2127 +basic hardware does this by stalling the pipeline. 61.2128 + 61.2129 +Another view is that they mark the boundary of a communication made via shared read/write. A load or store of a single location has a precise boundary enforced by the hardware, but if a pipeline desires to load, modify, then write a single location it has to have additional hardware. It has to make the multiple primitive load/store operations appear as a single operation. 61.2130 + 61.2131 +Moving up to the application level, the same pattern exists: an operation the application wants to do may involve many loads and stores, but it wants the collection to appear as a single indivisible operation. So the application-level equivalent of a load or store involves multiple memory locations but is to be treated as a single indivisible operation. This requires the application-level equivalent of the hardware that made the read-modify-write into a single indivisible operation. That equivalent is what a synchronization construct is. The reason a sync construct takes a variable amount of time is that it waits until all other indivisible operations that might conflict have completed. 61.2132 + 61.2133 +Another way to think of the sync construct is that it enforces sharp communication boundaries. The multiple read and write operations are treated as a single communication with the shared-state. If any other part of the application sees only part of the communication, it sees something inconsistent and thus wrong. So the sync constructs ensure that communications are complete, so the parts of the application only see complete communications from other parts. 61.2134 + 61.2135 +\subsubsection{Universal Runtime Patterns} 61.2136 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 61.2137 + 61.2138 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 61.2139 + 61.2140 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 61.2141 + 61.2142 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 61.2143 + 61.2144 + 61.2145 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 61.2146 + 61.2147 +Unified pattern within parallel languages: create multiple timelines, then control relative progress of them, and control location each chunk of progress takes place. 61.2148 + 61.2149 +Another universal pattern: code runs, switches to runtime, some point later switches back to code, making application run be a collection of trace segments bounded by runtime calls. 61.2150 +The runtime tracks constraints (dependencies) among units, creates and destroys units, and assigns ready units to hardware. 61.2151 + 61.2152 +Units have a life-line, which is fundamental to parallel computation, as demonstrated in a paper by some of the authors []. 61.2153 + 61.2154 +Every unit has a meta-unit that represents it in the runtime. A unit is defined as the trace of application code that exists between two scheduling decisions. Looking at this in more detail, every runtime has some form of internal bookkeeping state for a unit, used to track constraints on it and make decisions about when and where to execute. This exists even if that state is just a pointer to a function that sits in a queue. We call this bookkeeping state for a unit the meta-unit. 61.2155 + 61.2156 +Each unit also has a life-line, which progresses so: creation of the meta-unit \pointer , state updates that affect constraints on the unit \pointer, the decision is made to animate the unit \pointer, movement of the meta-unit plus data to physical resources that do the animation \pointer , animation of the unit, which does the work \pointer, communication of state-update, that unit has completed, and hardware is free \pointer , constraint updates within runtime, possibly causing new meta-unit creations or freeing other meta-units to be chosen for animation. This repeats for each unit. Each step is part of the model. 61.2157 + 61.2158 +Note a few implications: first, many activities internal to the runtime are part of a unit's life-line, and take place when only the meta-unit exists, before or after the work of the actual unit; second, communication that is internal to the runtime is part of the unit life-line, such as state updates; third, creation may be implied, such as in pthreads, or triggered such as in dataflow, or be by explicit command such as in StarSs, and once created, a meta-unit may languish before the unit it represents is free to be animated. 61.2159 + 61.2160 +\subsubsection{Putting synchronization constructs together with universal runtime patterns} 61.2161 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 61.2162 + 61.2163 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 61.2164 + 61.2165 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 61.2166 + 61.2167 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 61.2168 + 61.2169 + 61.2170 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 61.2171 + 61.2172 +Putting these together, gives us that any parallelism construct that has a synchronization behavior causes the end of a work-unit, and a switch to the runtime. The code following the construct is a different work-unit that will begin after the constraint implied by the construct is satisfied. 61.2173 + 61.2174 +The runtime is made up of the infrastructure for the constraints and assignment, such as communicating bookkeeping state between cores, and protecting internal runtime updates of shared information. Plus, the logic of the constructs and logic of choosing an assignment of work to cores. 61.2175 + 61.2176 +For large machines, the infrastructure dominates the time to execute a parallelism construct, while for smaller machines, like single-socket, the logic of constructs and assignments has a chance to be significant. 61.2177 + 61.2178 +\begin{figure}[ht] 61.2179 + \centering 61.2180 + \includegraphics[width = 2in, height = 1.8in]{../figures/SCG_stylized_for_expl.pdf} 61.2181 + \caption{Something to help understanding} 61.2182 + \label{fig:SCG_expl} 61.2183 +\end{figure} 61.2184 + 61.2185 + 61.2186 + 61.2187 + 61.2188 +%%%%%%%%%%%%%%%%%%%%% 61.2189 +\section{The Details} 61.2190 +[[Hypothesis: Embedded-style DSLs -> high productivity + low learning curve + low disruption + low app-port AND quick time to create + low effort to lang-port + high perf across targets]] 61.2191 +[[Claims: modularize runtime, mod is fund patterns, mod sep lang logic from RT internals, mod makes internal reusable & lang inherit internal perf tune & inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 61.2192 + 61.2193 +The interfaces between lang logic and proto-runtime. 61.2194 + 61.2195 +Demonstrate: modular runtime, how reduces part have to mess with, hides part that has low-level details, reuses low-level tuning effort, and reuses lang-spec parts. 61.2196 + 61.2197 +Demonstrate Benefits: lang impl doesn't touch low-level details, inherits centralized services (debug support), reuses code from other languages to add features. 61.2198 + 61.2199 +\subsection{Reuse of Language Logic} 61.2200 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 61.2201 + 61.2202 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 61.2203 + 61.2204 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 61.2205 + 61.2206 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 61.2207 + 61.2208 + 61.2209 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 61.2210 + 61.2211 +Demonstrate reuse of language logic: 61.2212 +All the languages have copied singleton, atomic, critical section and transaction. In VOMP, took the task code from VSS, in VSS, took the send and receive code from SSR.. for DKU, took the code almost verbatim from earlier incarnation of these ideas, and welded it into SSR, and took VSs tasks and put into SSR. Thus, circle completes.. VSs took from SSR, now SSR takes from VSs.. pieces and parts are being borrowed all over the place and welded in where they're needed. 61.2213 + 61.2214 +Part of what makes this so easy is the dispatch pattern.. adding a construct reduces to adding into switch and writing handler.. borrow constructs by taking the handler from the other lang. 61.2215 + 61.2216 +Another part is that code for the constructs is isolated from concurrency details, which are inside the proto-runtime. All the dynamic system issues, and best way to impl locks, and need for fences, and so on is isolated from the construct logic. This isolation is also how porting effort is lowered (or in many cases eliminated), and is how runtime performance is kept high. 61.2217 + 61.2218 +? 61.2219 + 61.2220 +Performance must be high, or the labor savings don't matter. By isolating the low-level details inside the proto-runtime, they can be intensively tuned, then all the languages inherit the effort. Compare that to current practices, where the runtime code is monolithic.. each language has to separately modify the runtime, understanding and dealing with the concurrency, and then on a new machine, each language has to re-tune the low-level details, worrying about the consistency model on that machine, how its particular fence and atomic instructions work, and so on. 61.2221 +We spent 2 months performance tuning the current version, but only 18 hours implementing VSs on top of it, and VSs inherited the benefit from all that effort. So did VOMP, and SSR, and VCilk, and so on.. each time we improved the proto-runtime, all the languages improved, with no effort on the part of the language creator. 61.2222 + 61.2223 +? 61.2224 + 61.2225 +In addition to runtime performance, application level performance must be high. The runtime's performance only affects overhead, and so is only a factor for small work-unit (task) sizes. But data affinity affects performance for all work. 61.2226 + 61.2227 +The proto-runtime approach partially addresses this by giving the language the opportunity to directly control placement of work. This isn't possible when building on top of threads, because the scheduling is in a separate, lower-level, layer where assignment of work to core is made in isolation, blind to language constructs and 61.2228 +other application features. 61.2229 + 61.2230 + 61.2231 + 61.2232 + 61.2233 +%%%%%%%%%%%%%%%%%%%%% 61.2234 +\section{Measurements} 61.2235 + 61.2236 +\subsection{Implementation time} 61.2237 + 61.2238 + 61.2239 +\subsection{Runtime and Application Performance} 61.2240 + 61.2241 + 61.2242 +%%%%%%%%%%%%%%%%%%%%% 61.2243 +\section{Related Work} 61.2244 + 61.2245 + 61.2246 +%%%%%%%%%%%%%%%%%%%%% 61.2247 +\section{Conclusion and Future Work} 61.2248 +\label{sec:conclusion} 61.2249 + 61.2250 + 61.2251 + 61.2252 +\end{document} 61.2253 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 61.2254 +Here is an example of netlist creation: 61.2255 + 61.2256 +The circuit has two elements, each with one input port, one output port, and a single activity-type. The elements are cross-coupled, so output port of one connects to input port of the other. The input port has the activity-type attached as its trigger. The activity is empty, and just sends a NULL message on the output port. The activity's duration in simulated time and the resulting communication's flight duration in simulated time are both constants. 61.2257 + 61.2258 + Note that HWSimElem data type is generic. An elem is specialized by declaring inports and outports, and by connecting activity types to in-ports. Behavior is attached to an element by attaching activity types to in-ports of the element. 61.2259 + 61.2260 +First, here is the top-level function that creates and returns the netlist structure: 61.2261 + 61.2262 +To use HWSim, one creates a netlist composed of elements and communication paths connecting them. An element has a number of in-ports and outports, and a communication path connects an outport of the source element to an inport of the destination elements. The inport has an action attached, which in turn has a behavior function and a timing function, both of which are triggered by the arrival of a communication. The behavior function has local persistent state of the element available to use, and can generate out-going communications. The timing function calculates how much Guest (simulated) time the behavior spanned. In addition, communication paths have an attached function that calculates time from being sent until arrival of the communication. Both the behavior and timing function are application-programmer provided. The entire simulator application is composed of those three things: netlist, behavior functions and timing functions, and all are sequential code. 61.2263 + 61.2264 +The embedded DSL consists of standard data structures, such as netlist, inport, outport, that the application must use in the language-defined way, and a small number of language calls, such as send_comm and end_behavior. The advancement of simulated time is implied, and the parallelism is implied. The only parallelism-related restriction is that a behavior function may only use data local to the element it is attached to. If state in the hardware is shared, such as registers or memory, then other elements access that state by sending communications to the element that contains the state. Parallelism is created within the system by outports that connect to muliple destination inports, and by behavior functions that generate multiple output communications each. 61.2265 + 61.2266 + 61.2267 +\begin{small}\begin{verbatim} 61.2268 +HWSimNetlist * 61.2269 +createPingPongNetlist() 61.2270 + { HWSimNetlist *netlist; 61.2271 + HWSimElem **elems; 61.2272 + HWSimActivityType **activityTypes; 61.2273 + HWSimCommPath **commPaths; 61.2274 + int32 numElems, numActivityTypes, numCommPaths; 61.2275 +\end{verbatim}\end{small} 61.2276 + 61.2277 +The first thing to do is create the netlist structure, which holds three things: element structs, activity type structs, and communication path structs. It also has two collections of pointers to the traces collected during the run, but these are handled internally by HWSim. 61.2278 +\begin{small}\begin{verbatim} 61.2279 + netlist = malloc( sizeof(HWSimNetlist) ); 61.2280 + 61.2281 + numElems = 2; 61.2282 + elems = malloc( numElems * sizeof(HWSimElem *) ); 61.2283 + 61.2284 + numCommPaths = 2; 61.2285 + commPaths = malloc( numCommPaths * sizeof(HWSimCommPath *) ); 61.2286 + 61.2287 + numActivityTypes = 1; 61.2288 + activityTypes = malloc( numActivityTypes * sizeof(HWSimActivityType *) ); 61.2289 + 61.2290 + netlist->numElems = numElems; 61.2291 + netlist->elems = elems; 61.2292 + netlist->numCommPaths = numCommPaths; 61.2293 + netlist->commPaths = commPaths; 61.2294 + netlist->numActivityTypes = numActivityTypes; 61.2295 + netlist->activityTypes = activityTypes; 61.2296 +\end{verbatim}\end{small} 61.2297 + 61.2298 +Now, create the activity types. During the run, an activity instance is created each time a communication arrives on an in-port. The activity instance is a data structure that points to the activity type. The activity type holds the pointers to the behavior and timing functions. 61.2299 +\begin{small}\begin{verbatim} 61.2300 + //have to create activity types before create elements 61.2301 + //PING_PONG_ACTIVITY is just a #define for readability 61.2302 + netlist->activityTypes[PING_PONG_ACTIVITY] = createPingPongActivityType(); 61.2303 +\end{verbatim}\end{small} 61.2304 + 61.2305 +Next, create the elements, and pass the netlist structure to the creator. It will take pointers to activity types out of the netlist and place them into the in-ports of the elements. 61.2306 +\begin{small}\begin{verbatim} 61.2307 + elems[0] = createAPingPongElem( netlist ); //use activity types from netlist 61.2308 + elems[1] = createAPingPongElem( netlist ); 61.2309 +\end{verbatim}\end{small} 61.2310 + 61.2311 +Now, the reset in-port of one of the elements has to be set up to trigger an activity. Every element has a reset in-port, but normally they are set to NULL activity type. Here, we want only one of the two elements to have an activity triggered when the reset signal is sent to start the simulation. 61.2312 + 61.2313 +Note that during initialization, all the elements become active, each with its own timeline, but unless an activity is triggered in them they remain idle, with their timeline suspended and not making progress. Only ones that have an activity type attached to their reset in-port will begin to do something in simulated time when simulation starts. 61.2314 +\begin{small}\begin{verbatim} 61.2315 + //make reset trigger an action on one of the elements 61.2316 + elems[1]->inPorts[-1].triggeredActivityType = 61.2317 + netlist->activityTypes[PING_PONG_ACTIVITY]; 61.2318 +\end{verbatim}\end{small} 61.2319 + 61.2320 +Now, connect the elements together by creating commPath structures. A comm path connects the out-port of one element to the in-port of another. A given port may have many comm paths attached. However, an in-port has only one kind of activity type attached, and all incoming communications fire that same activity. There are multiple kinds of activity, including kinds that have no timing, and so can act as a dispatcher. These end themselves with a continuation activity, which is chosen according to the code in the behavior function. So, a commPath only connects an out port to an in port. 61.2321 + 61.2322 +This code sets fixed timing on the comm paths. It also uses a macro for setting the connections. The format is: sending elem-index, out-port, dest elem-index, in-port: 61.2323 +\begin{small}\begin{verbatim} 61.2324 + //elem 0, out-port 0 to elem 1, in-port 0 61.2325 + commPaths[0]= malloc(sizeof(HWSimCommPath)); 61.2326 + setCommPathValuesTo(commPaths[0],0,0,1,0); 61.2327 + commPaths[0]->hasFixedTiming = TRUE; 61.2328 + commPaths[0]->fixedFlightTime = 10; //all time is stated in (integer) units 61.2329 + 61.2330 + //elem 1, out-port 0 to elem 0, in-port 0 61.2331 + commPaths[1]= malloc(sizeof(HWSimCommPath)); 61.2332 + setCommPathValuesTo(commPaths[1], 1,0,0,0); 61.2333 + commPaths[1]->hasFixedTiming = TRUE; 61.2334 + commPaths[1]->fixedFlightTime = 10; //all time is stated in (integer) units 61.2335 +\end{verbatim}\end{small} 61.2336 + 61.2337 +done building netlist, return it 61.2338 +\begin{small}\begin{verbatim} 61.2339 + return netlist; 61.2340 + } 61.2341 +\end{verbatim}\end{small} 61.2342 + 61.2343 +The macro that sets the connections inside a comm path struct 61.2344 +\begin{small}\begin{verbatim} 61.2345 +#define setCommPathValuesTo( commPath, fromElIdx, outPort, toElIdx, inPort)\ 61.2346 +do{\ 61.2347 + commPath->idxOfFromElem = fromElIdx; \ 61.2348 + commPath->idxOfFromOutPort = outPort; \ 61.2349 + commPath->idxOfToElem = toElIdx; \ 61.2350 + commPath->idxOfToInPort = inPort; \ 61.2351 + }while(0); //macro magic for namespace 61.2352 +\end{verbatim}\end{small} 61.2353 + 61.2354 +Creating an element involves creating arrays for the in-ports and out-ports, then configuring the in-ports. The out-ports are automatically filled in during simulation start-up, by HWSim. The most interesting feature is that each in-port is assigned an activity type, which all arriving communications trigger. During the simulation, each incoming communication creates an activity instance, which points to this triggered activity type. The behavior and timing of the instance are calculated by the behavior and timing functions in the activity type. Notice that the activity type pointers are taken from the netlist, so they have to be created before creating the elements. 61.2355 +\begin{small}\begin{verbatim} 61.2356 +HWSimElem * 61.2357 +createAPingPongElem( HWSimNetlist *netlist ) 61.2358 + { HWSimElem *elem; 61.2359 + elem = malloc( sizeof(HWSimElem) ); 61.2360 + elem->numInPorts = 1; 61.2361 + elem->numOutPorts = 1; 61.2362 + elem->inPorts = HWSim_ext__make_inPortsArray( elem->numInPorts ); 61.2363 + elem->inPorts[-1].triggeredActivityType = IDLE_SPAN; //reset port 61.2364 + elem->inPorts[0].triggeredActivityType = netlist->activityTypes[PING_PONG_ACTIVITY]; 61.2365 + return elem; 61.2366 + } 61.2367 +\end{verbatim}\end{small} 61.2368 + 61.2369 +Creating an activity type involves setting the pointers to the behavior and timing functions, which are defined inside a separate directory where all the behavior and timing functions are defined. An activity may have behavior set to NULL, or timing set to NULL, and may have fixed timing. The structure has flags to state the combination. 61.2370 +\begin{small}\begin{verbatim} 61.2371 +HWSimActivityType * 61.2372 +createPingPongActivityType( ) 61.2373 + { HWSimActivityType *pingPongActivityType; 61.2374 + pingPongActivityType = malloc( sizeof(HWSimActivityType) ); 61.2375 + 61.2376 + pingPongActivityType->hasBehavior = TRUE; 61.2377 + pingPongActivityType->hasTiming = TRUE; 61.2378 + pingPongActivityType->timingIsFixed = TRUE; 61.2379 + pingPongActivityType->fixedTime = 10; 61.2380 + pingPongActivityType->behaviorFn = &pingPongElem_PingActivity_behavior; 61.2381 + return pingPongActivityType; 61.2382 + } 61.2383 +\end{verbatim} \end{small} 61.2384 + 61.2385 + 61.2386 +========= 61.2387 + 61.2388 +All behavior functions take a ptr to the activity instance they are executing the behavior of. The instance contains a pointer to the elem, and most behaviors will use the element's elemState field. It holds all the persistent state of the element, which remains between activities. 61.2389 + 61.2390 +Here is the behavior function from the ping-pong example: 61.2391 +\begin{small}\begin{verbatim} 61.2392 +void 61.2393 +pingPongElem_PingActivity_behavior( HWSimActivityInst *activityInst ) 61.2394 + { //NO_MSG is #define'd to NULL, and PORT0 to 0 61.2395 + HWSim__send_comm_on_port_and_idle( NO_MSG, PORT0, activityInst ); 61.2396 + } 61.2397 +\end{verbatim}\end{small} 61.2398 + 61.2399 +There are four ways a behavior can end: 61.2400 +\begin{description} 61.2401 +\item end, no continuation: 61.2402 +\begin{small}\begin{verbatim} HWSim__end_activity_then_idle( HWSimActivityInst *endingActivityInstance )\end{verbatim}\end{small} 61.2403 +\item end, with continuation: 61.2404 +\begin{small}\begin{verbatim} HWSim__end_activity_then_cont( HWSimActivityInst *endingActivityInstance, 61.2405 + HWSimActivityType *continuationActivityType)\end{verbatim}\end{small} 61.2406 +\item end by sending a communication, with no continuation: 61.2407 +\begin{small}\begin{verbatim} HWSim__send_comm_on_port_then_idle( void *msg, int32 outPort, 61.2408 + HWSimActivityInst *endingActivityInstance)\end{verbatim}\end{small} 61.2409 +\item end by sending a communication, with continuation: 61.2410 +\begin{small}\begin{verbatim} HWSim__send_comm_on_port_then_cont( void *msg, int32 outPort, 61.2411 + HWSimActivityInst *endingActivityInstance 61.2412 + HWSimActivityType *continuationActivityType)\end{verbatim}\end{small} 61.2413 + 61.2414 + 61.2415 +============= 61.2416 + 61.2417 + 61.2418 +\subsection{Activity Timing Functions} 61.2419 +All activity timing functions take a ptr to the activity instance they are calculating the timing of. The instance contains a pointer to the element the activity is in. The behavior function is free to communicate to the timing function by leaving special data inside the element state. The timing function might also simply depend on the current state of the element. 61.2420 + 61.2421 +Here's an example: 61.2422 +\begin{small}\begin{verbatim} 61.2423 +HWSimTimeSpan 61.2424 +sampleElem_sampleActivity_timing( HWSimActivityInst *activityInst ) 61.2425 + { 61.2426 + return doSomethingWithStateOfElem( sendingActivity->elem->elemState ); 61.2427 + } 61.2428 +\end{verbatim}\end{small} 61.2429 + 61.2430 +\subsection{Calculating the time-in-flight of a communication path} 61.2431 + 61.2432 +The timing function for a communication path is similar to that of an activity. Except, the timing might also depend on configuration data or state stored inside the comm path struct, so that is passed to the timing function as well. 61.2433 + 61.2434 +\begin{small}\begin{verbatim} 61.2435 +HWSimTimeSpan 61.2436 +commPath_TimeSpanCalc( HWSimCommPath *commPath, HWSimActivityInst *sendingActivity ) 61.2437 + { return doSomethingWithStateOfPathAndElem( commPath, sendingActivity->elem->elemState ); 61.2438 + } 61.2439 +\end{verbatim}\end{small} 61.2440 + 61.2441 + 61.2442 + 61.2443 +
62.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 62.2 +++ b/0__Papers/PRT/PRT__formal_def/latex/Paper_Design_2.txt Sat Aug 03 19:24:22 2013 -0700 62.3 @@ -0,0 +1,32 @@ 62.4 + 62.5 +====== 62.6 + 62.7 +Details of VMS interface, details of its impl on multi-core, details of differences on different machines. 62.8 + 62.9 +wrapper-lib calls VMS-supplied primitive that suspends the virtual-processor calling the lib, and sends a request to VMS. VMS calls lang-supplied plugin to handle requests -- this is the part of the scheduler that handles constraints -- it determines which virt-processors must remain suspended, and which are free to be re-animated. 62.10 + 62.11 +The language is implemented as either a collection of wrapper-lib calls embedded into the base language, or as custom syntax that uses uses the VMS-supplied primitive to suspend virtual processors and send requests to VMS. 62.12 + 62.13 + 62.14 +VMS is invisible to the application, only language constructs are visible. From the application-programmer point of view, the embedded version looks like a function call, albeit the data-struc of the virtual-processor animating the code has to be passed as a parameter to the wrapper-lib call. 62.15 + 62.16 +Hence, VMS is invisible to the application, only language constructs are visible. 62.17 + 62.18 +The wrapper-lib call is standard library code that is loaded along with the application executable. 62.19 + 62.20 +However, VMS primitives may be hardware-implemented, or loaded as OS modules, or dynamic or static libraries. Rhey are naturally custom instructions, but may be emulated by software. 62.21 + 62.22 +The interface between application-executable and language-runtime is the VMS-primitive that sends a request to VMS. The language-runtime receives the request under control of VMS, which calls a language-supplied request-handling function and passes the request as a parameter. This passive behavior of the request handler leaves control-flow inside VMS, which is part of hiding concurrency from the language-runtime implementation. 62.23 + 62.24 +The interface between the runtime and VMS is VMS's plugin API. The runtime is implemented as two functions, whose pointers are handed to VMS. VMS then controls the flow of execution. When a request is ready for the runtime, VMS cIalls the request-handler function, and when a spot on hardware is free for work, VMS calls the scheduler-assign function. Hence, the language implements its runtime as two isolated functions. By keeping control-flow inside VMS, the language-specific portion of the runtiem is simplified. 62.25 + 62.26 +This structure is also the reason VMS encourages reuse of scheduler code. The VMS API separates out control flow from scheduling, so scheduling code is isolated, with well-defined interfaces. Scheduling is then further sub-divided into modules: constraint-management (IE enforcing dependencies); and choosing physical location to place work. Each has its own well-defined interface, and they communicate to each other via VMS-managed shared state. 62.27 + 62.28 +The greatest application performance impact due to the scheduler is communication it causes. 62.29 + 62.30 +, management of the memory hierarchy, and the match between work-characteristics and hardware-characteristics (IE, assigning to accelerator vs CPU). Hence, significant work goes into implementing strategies and mechanisms for finding the best assignment-choices. Such implementations are only loosely coupled to language, through the shared state by which the request-handler informs the assigner of what work is ready to be animated. 62.31 + 62.32 +Hence, it is straight-forward to reuse the code that assigns work to physical locations. The only language-specific influence on the assigner is the shared constraint-state. 62.33 + 62.34 + 62.35 +
63.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 63.2 +++ b/0__Papers/PRT/PRT__formal_def/latex/bib_for_papers_jun_2012.bib Sat Aug 03 19:24:22 2013 -0700 63.3 @@ -0,0 +1,942 @@ 63.4 + 63.5 +@inbook{PerfToolPoem, 63.6 +title = {The Poems of John Godfrey Saxe, Complete edition}, 63.7 +chapter = {The Blind Men and the Elephant}, 63.8 +author = {John Godfrey Saxe}, 63.9 +publisher = {Boston: James R. Osgood and Company}, 63.10 +year = {1873}, 63.11 +pages = {77-78} 63.12 +} 63.13 +@article{PerfToolTau, 63.14 +author = {Shende, Sameer S. and Malony, Allen D.}, 63.15 +title = {The Tau Parallel Performance System}, 63.16 +volume = {20}, 63.17 +number = {2}, 63.18 +pages = {287-311}, 63.19 +year = {Summer 2006}, 63.20 +journal = {International Journal of High Performance Computing Applications} 63.21 +} 63.22 +@ARTICLE{PerfToolParadyn, 63.23 +author={Miller, B.P. and Callaghan, M.D. and Cargille, J.M. and Hollingsworth, J.K. and Irvin, R.B. and Karavanic, K.L. and Kunchithapadam, K. and Newhall, T.}, 63.24 +journal={Computer}, 63.25 +title={The Paradyn parallel performance measurement tool}, 63.26 +year={1995}, 63.27 +month={nov}, 63.28 +volume={28}, 63.29 +number={11}, 63.30 +pages={37 -46}, 63.31 +} 63.32 +@ARTICLE{PerfToolParagraph, 63.33 +author={Heath, M.T. and Etheridge, J.A.}, 63.34 +journal={Software, IEEE}, 63.35 +title={Visualizing the performance of parallel programs}, 63.36 +year={1991}, 63.37 +month={sept. }, 63.38 +volume={8}, 63.39 +number={5}, 63.40 +pages={29 -39}, 63.41 +} 63.42 +@article{PerfToolStarSs, 63.43 + author = {Steffen Brinkmann and 63.44 + Jos{\'e} Gracia and 63.45 + Christoph Niethammer and 63.46 + Rainer Keller}, 63.47 + title = {TEMANEJO - a debugger for task based parallel programming 63.48 + models}, 63.49 + journal = {CoRR}, 63.50 + volume = {abs/1112.4604}, 63.51 + year = {2011}, 63.52 +} 63.53 +@techrep{SyncConstr_impl_w_distr_coherence_HW_Utah_96, 63.54 + author = {Carter, J. B. and Kuo, C.-C. and Kuramkote, R.}, 63.55 + title = { A comparison of software and hardware synchronization mechanisms for distributed shared memory multiprocessors}, 63.56 + institution = {University of Utah, Salt Lake City, UT}, 63.57 + year = 1996, 63.58 + url = {http://www.cs.utah.edu/research/techreports/1996/pdf/UUCS-96-011.pdf}, 63.59 + number = {UUCS-96-011} 63.60 +} 63.61 +@Article{SWCoherence_Hill_SW_for_shared_coherence_w_HW_support_93, 63.62 + author = {Hill, Mark D. and Larus, James R. and Reinhardt, Steven K. and Wood, David A.}, 63.63 + title = {Cooperative shared memory: software and hardware for scalable multiprocessors}, 63.64 + journal = {ACM Trans. Comput. Syst.}, 63.65 + volume = 11, 63.66 + number = 4, 63.67 + year = 1993, 63.68 + pages = {300--318} 63.69 +} 63.70 +@InProceedings{SWCache_MIT_embedSW_manages_cache_w_HW_supp, 63.71 + author = {Chiou, Derek and Jain, Prabhat and Rudolph, Larry and Devadas, Srinivas}, 63.72 + title = {Application-specific memory management for embedded systems using software-controlled caches}, 63.73 + booktitle = {DAC}, 63.74 + year = 2000, 63.75 + pages = {416--419} 63.76 +} 63.77 +@InProceedings{SWCache_instr_trig_HW_supp_04, 63.78 + author = {Janapsatya, Andhi and Parameswaran, Sri and Ignjatovic, A.}, 63.79 + title = {Hardware/software managed scratchpad memory for embedded system}, 63.80 + booktitle = {Proceedings of the 2004 IEEE/ACM International conference on Computer-aided design}, 63.81 + series = {ICCAD '04}, 63.82 + year = 2004, 63.83 + pages = {370--377} 63.84 +} 63.85 +@InProceedings{SWCache_arch_supp_OS_policy_06, 63.86 + author = {Rafique, Nauman and Lim, Won-Taek and Thottethodi, Mithuna}, 63.87 + title = {Architectural support for operating system-driven CMP cache management}, 63.88 + booktitle = {Proceedings of the 15th international conference on Parallel architectures and compilation techniques}, 63.89 + series = {PACT '06}, 63.90 + year = 2006, 63.91 + pages = {2--12} 63.92 +} 63.93 +@InProceedings{SWCoherence_on_Distr_Mem_90, 63.94 + author = {Bennett, J.K. and Carter, J.B. and Zwaenepoel, W.}, 63.95 + booktitle = {Computer Architecture, 1990. Proceedings., 17th Annual International Symposium on}, 63.96 + title = {Adaptive software cache management for distributed shared memory architectures}, 63.97 + year = 1990, 63.98 + pages = {125 -134} 63.99 +} 63.100 +@InProceedings{Charm_runtime_opt_10, 63.101 + author = {Mei, Chao and Zheng, Gengbin and Gioachin, Filippo and Kal{\'e}, Laxmikant V.}, 63.102 + title = {Optimizing a parallel runtime system for multicore clusters: a case study}, 63.103 + booktitle = {The 2010 TeraGrid Conference}, 63.104 + year = 2010, 63.105 + pages = {12:1--12:8} 63.106 +} 63.107 +@InProceedings{TCC_Hammond_ISCA_04, 63.108 + author = {Hammond, Lance and al, et}, 63.109 + title = {Transactional Memory Coherence and Consistency}, 63.110 + series = {ISCA '04}, 63.111 + pages = {102--}, 63.112 + booktitle = {}, 63.113 + year = {} 63.114 +} 63.115 +@Misc{WorkTableHome, 63.116 + author = {Halle, Sean}, 63.117 + note = {http://musictwodotoh.com/worktable/content/refman.pdf}, 63.118 + title = {The WorkTable Language Reference Manual}, 63.119 + year = 2012 63.120 +} 63.121 +@Misc{HWSimHome, 63.122 + author = {Halle, Sean and Hausers, Stefan}, 63.123 + note = {http://musictwodotoh.com/hwsim/content/refman.pdf}, 63.124 + title = {The HWSim Language Reference Manual}, 63.125 + year = 2012 63.126 +} 63.127 +@Article{Lamport78, 63.128 + author = {Lamport, Leslie}, 63.129 + title = {Time, clocks, and the ordering of events in a distributed system}, 63.130 + journal = {Commun. ACM}, 63.131 + volume = 21, 63.132 + issue = 7, 63.133 + year = 1978, 63.134 + pages = {558--565} 63.135 +} 63.136 +@Article{Lamport87, 63.137 + author = {Lamport, Leslie}, 63.138 + title = {A fast mutual exclusion algorithm}, 63.139 + journal = {ACM Trans. Comput. Syst.}, 63.140 + volume = 5, 63.141 + issue = 1, 63.142 + year = 1987, 63.143 + pages = {1--11} 63.144 +} 63.145 +@InProceedings{Dijkstra67, 63.146 + author = {Dijkstra, Edsger W.}, 63.147 + title = {The structure of the "{THE}"-multiprogramming system}, 63.148 + booktitle = {Proceedings of the first ACM symposium on Operating System Principles}, 63.149 + series = {SOSP '67}, 63.150 + year = 1967, 63.151 + pages = {10.1--10.6} 63.152 +} 63.153 +@Article{Conway63, 63.154 + author = {Conway, Melvin E.}, 63.155 + title = {Design of a separable transition-diagram compiler}, 63.156 + journal = {Commun. ACM}, 63.157 + volume = 6, 63.158 + issue = 7, 63.159 + year = 1963, 63.160 + pages = {396--408} 63.161 +} 63.162 +@Book{ComponentModel00, 63.163 + author = {G Leavens and M Sitaraman (eds)}, 63.164 + title = {Foundations of Component-Based Systems}, 63.165 + publisher = {Cambridge University Press}, 63.166 + year = 2000 63.167 +} 63.168 +@Misc{Hewitt10, 63.169 + author = {Carl Hewitt}, 63.170 + title = {Actor Model of Computation}, 63.171 + year = 2010, 63.172 + note = {http://arxiv.org/abs/1008.1459} 63.173 +} 63.174 +@Article{Actors97, 63.175 + author = {Agha,G. and Mason,I. and Smith,S. and Talcott,C.}, 63.176 + title = {A foundation for actor computation}, 63.177 + journal = {Journal of Functional Programming}, 63.178 + volume = 7, 63.179 + number = 01, 63.180 + pages = {1-72}, 63.181 + year = 1997 63.182 +} 63.183 +@Article{SchedActivations, 63.184 + author = {Anderson, Thomas E. and Bershad, Brian N. and Lazowska, Edward D. and Levy, Henry M.}, 63.185 + title = {Scheduler activations: effective kernel support for the user-level management of parallelism}, 63.186 + journal = {ACM Trans. Comput. Syst.}, 63.187 + volume = 10, 63.188 + issue = 1, 63.189 + month = {February}, 63.190 + year = 1992, 63.191 + pages = {53--79} 63.192 +} 63.193 +@InProceedings{BOMinManticore, 63.194 + author = {Fluet, Matthew and Rainey, Mike and Reppy, John and Shaw, Adam and Xiao, Yingqi}, 63.195 + title = {Manticore: a heterogeneous parallel language}, 63.196 + booktitle = {Proceedings of the 2007 workshop on Declarative aspects of multicore programming}, 63.197 + series = {DAMP '07}, 63.198 + year = 2007, 63.199 + pages = {37--44}, 63.200 + numpages = 8 63.201 +} 63.202 +@TechReport{GainFromChaos_Halle_92, 63.203 + author = {Halle, K.S. and Chua, Leon O. and Anishchenko, V.S. and Safonova, M.A.}, 63.204 + title = {Signal Amplification via Chaos: Experimental Evidence}, 63.205 + institution = {EECS Department, University of California, Berkeley}, 63.206 + year = 1992, 63.207 + url = {http://www.eecs.berkeley.edu/Pubs/TechRpts/1992/2223.html}, 63.208 + number = {UCB/ERL M92/130} 63.209 +} 63.210 +@InProceedings{HotPar10_w_BLIS, 63.211 + author = {Sean Halle and Albert Cohen}, 63.212 + booktitle = {HOTPAR '10: USENIX Workshop on Hot Topics in Parallelism}, 63.213 + month = {June}, 63.214 + title = {Leveraging Semantics Attached to Function Calls to Isolate Applications from Hardware}, 63.215 + year = 2010 63.216 +} 63.217 +@InProceedings{HotPar11_w_Stack, 63.218 + author = {Sean Halle and Albert Cohen}, 63.219 + booktitle = {HOTPAR '11: USENIX Workshop on Hot Topics in Parallelism}, 63.220 + month = {May}, 63.221 + title = {}, 63.222 + year = 2011 63.223 +} 63.224 +@Article{VMS_LCPC_11, 63.225 + author = {Sean Halle and Albert Cohen}, 63.226 + title = {A Mutable Hardware Abstraction to Replace Threads}, 63.227 + journal = {24th International Workshop on Languages and Compilers for Parallel Languages (LCPC11)}, 63.228 + year = 2011 63.229 +} 63.230 +@Misc{StackTechRep_10, 63.231 + author = {Halle, Sean and Nadezhkin, Dmitry and Cohen, Albert}, 63.232 + note = {http://www.soe.ucsc.edu/share/technical-reports/2010/ucsc-soe-10-02.pdf}, 63.233 + title = {A Framework to Support Research on Portable High Performance Parallelism}, 63.234 + year = 2010 63.235 +} 63.236 +@Misc{CTBigStepSemTechRep_06, 63.237 + author = {Halle, Sean}, 63.238 + note = {http://www.soe.ucsc.edu/share/technical-reports/2006/ucsc-crl-06-11.pdf}, 63.239 + title = {The Big-Step Operational Semantics of CodeTime Circuits}, 63.240 + year = 2006 63.241 +} 63.242 +@Misc{MentalFrameworkTechRep_06, 63.243 + author = {Halle, Sean}, 63.244 + note = {http://www.soe.ucsc.edu/share/technical-reports/2006/ucsc-crl-06-12.pdf}, 63.245 + title = {A Mental Framework for use in Creating Hardware Independent Parallel Languages}, 63.246 + year = 2006 63.247 +} 63.248 +@Misc{DKUTechRep_09, 63.249 + author = {Halle, Sean and Cohen, Albert}, 63.250 + note = {http://www.soe.ucsc.edu/share/technical-reports/2009/ucsc-soe-09-06.pdf}, 63.251 + title = {DKU Pattern for Performance Portable Parallel Software}, 63.252 + year = 2009 63.253 +} 63.254 +@Misc{EQNLangTechRep, 63.255 + author = {Halle, Sean}, 63.256 + note = {http://www.soe.ucsc.edu/share/technical-reports/2009/ucsc-soe-09-16.pdf}, 63.257 + title = {An Extensible Parallel Language}, 63.258 + year = 2009 63.259 +} 63.260 +@Misc{CTOSTechRep, 63.261 + author = {Halle, Sean}, 63.262 + note = {http://www.soe.ucsc.edu/share/technical-reports/2009/ucsc-soe-09-15.pdf}, 63.263 + title = {A Hardware-Independent Parallel Operating System Abstraction LayerParallelism}, 63.264 + year = 2009 63.265 +} 63.266 +@Misc{SideEffectsTechRep, 63.267 + author = {Halle, Sean and Cohen, Albert}, 63.268 + note = {http://www.soe.ucsc.edu/share/technical-reports/2009/ucsc-soe-09-14.pdf}, 63.269 + title = {Parallel Language Extensions for Side Effects}, 63.270 + year = 2009 63.271 +} 63.272 +@Misc{BaCTiLTechRep, 63.273 + author = {Halle, Sean}, 63.274 + note = {http://www.soe.ucsc.edu/share/technical-reports/2006/ucsc-crl-06-08.pdf}, 63.275 + title = {BaCTiL: Base CodeTime Language}, 63.276 + year = 2006 63.277 +} 63.278 +@Misc{CTPlatformTechRep, 63.279 + author = {Halle, Sean}, 63.280 + note = {http://www.soe.ucsc.edu/share/technical-reports/2006/ucsc-crl-06-09.pdf}, 63.281 + title = {The Elements of the CodeTime Software Platform}, 63.282 + year = 2006 63.283 +} 63.284 +@Misc{CTRTTechRep, 63.285 + author = {Halle, Sean}, 63.286 + note = {http://www.soe.ucsc.edu/share/technical-reports/2006/ucsc-crl-06-10.pdf}, 63.287 + title = {A Scalable and Efficient Peer-to-Peer Run-Time System for a Hardware Independent Software Platform}, 63.288 + year = 2006 63.289 +} 63.290 +@Misc{CIPTechRep, 63.291 + author = {Halle, Sean}, 63.292 + note = {http://www.soe.ucsc.edu/share/technical-reports/2005/ucsc-crl-05-05.pdf}, 63.293 + title = {The Case for an Integrated Software Platform for HEC Illustrated Using the CodeTime Platform}, 63.294 + year = 2005 63.295 +} 63.296 +@Misc{Halle2008, 63.297 + author = {Sean Halle and Albert Cohen}, 63.298 + note = {http://omp.musictwodotoh.com}, 63.299 + title = {{DKU} infrastructure server} 63.300 +} 63.301 +@Misc{DKUSourceForge, 63.302 + author = {Sean Halle and Albert Cohen}, 63.303 + month = {November}, 63.304 + note = {http://dku.sourceforge.net}, 63.305 + title = {{DKU} website}, 63.306 + year = 2008 63.307 +} 63.308 +@Misc{BLISHome, 63.309 + author = {Sean Halle and Albert Cohen}, 63.310 + month = {November}, 63.311 + note = {http://blisplatform.sourceforge.net}, 63.312 + title = {{BLIS} website}, 63.313 + year = 2008 63.314 +} 63.315 +@Misc{VMSHome, 63.316 + author = {Sean Halle and Merten Sach and Ben Juurlink and Albert Cohen}, 63.317 + note = {http://virtualizedmasterslave.org}, 63.318 + title = {{VMS} Home Page}, 63.319 + year = 2010 63.320 +} 63.321 +@Misc{PStackHome, 63.322 + author = {Sean Halle}, 63.323 + note = {http://pstack.sourceforge.net}, 63.324 + title = {{PStack} Home Page}, 63.325 + year = 2012 63.326 +} 63.327 +@Misc{DeblockingCode, 63.328 + note = {http://dku.svn.sourceforge.net/viewvc/dku/branches/DKU\_C\_\_Deblocking\_\_orig/}, 63.329 + title = {{DKU-ized Deblocking Filter} code} 63.330 +} 63.331 +@Misc{SampleBLISCode, 63.332 + note = {http://dku.sourceforge.net/SampleCode.htm}, 63.333 + title = {{Sample BLIS Code}} 63.334 +} 63.335 +@Misc{OMPHome, 63.336 + note = {http://www.openmediaplatform.eu/}, 63.337 + title = {{Open Media Platform} homepage} 63.338 +} 63.339 +@Misc{MapReduceHome, 63.340 + author = {Google Corp.}, 63.341 + note = {http://labs.google.com/papers/mapreduce.html}, 63.342 + title = {{MapReduce} Home page} 63.343 +} 63.344 +@Misc{TBBHome, 63.345 + author = {Intel Corp.}, 63.346 + note = {http://www.threadingbuildingblocks.org}, 63.347 + title = {{TBB} Home page} 63.348 +} 63.349 +@Misc{HPFWikipedia, 63.350 + author = {Wikipedia}, 63.351 + note = {http://en.wikipedia.org/wiki/High_Performance_Fortran}, 63.352 + title = {{HPF} wikipedia page} 63.353 +} 63.354 +@Misc{OpenMPHome, 63.355 + author = {{OpenMP} organization}, 63.356 + note = {http://www.openmp.org}, 63.357 + title = {{OpenMP} Home page} 63.358 +} 63.359 +@Misc{MPIHome, 63.360 + author = {open-mpi organization}, 63.361 + note = {http://www.open-mpi.org}, 63.362 + title = {{Open MPI} Home page} 63.363 +} 63.364 +@Misc{OpenCLHome, 63.365 + author = {Kronos Group}, 63.366 + note = {http://www.khronos.org/opencl}, 63.367 + title = {{OpenCL} Home page} 63.368 +} 63.369 +@Misc{CILKHome, 63.370 + author = {Cilk group at MIT}, 63.371 + note = {http://supertech.csail.mit.edu/cilk/}, 63.372 + title = {{CILK} homepage} 63.373 +} 63.374 +@InProceedings{Fri98, 63.375 + author = {M. Frigo and C. E. Leiserson and K. H. Randall}, 63.376 + title = {The Implementation of the Cilk-5 Multithreaded Language}, 63.377 + booktitle = {PLDI '98: Proceedings of the 1998 ACM SIGPLAN conference on Programming language design and implementation}, 63.378 + pages = {212--223}, 63.379 + year = 1998, 63.380 + address = {Montreal, Quebec}, 63.381 + month = jun 63.382 +} 63.383 +@Misc{TitaniumHome, 63.384 + note = {http://titanium.cs.berkeley.edu}, 63.385 + title = {{Titanium} homepage} 63.386 +} 63.387 +@InProceedings{CnCInHotPar, 63.388 + author = {Knobe, Kathleen}, 63.389 + booktitle = {HOTPAR '09: USENIX Workshop on Hot Topics in Parallelism}, 63.390 + title = {Ease of Use with Concurrent Collections {(CnC)}}, 63.391 + year = 2009 63.392 +} 63.393 +@Misc{CnCHome, 63.394 + author = {Intel Corp.}, 63.395 + note = {http://software.intel.com/en-us/articles/intel-concurrent-collections-for-cc/}, 63.396 + title = {{CnC} homepage} 63.397 +} 63.398 +@Misc{SpiralHome, 63.399 + author = {Spiral Group at CMU}, 63.400 + note = {http://www.spiral.net}, 63.401 + title = {{Spiral} homepage} 63.402 +} 63.403 +@Misc{ScalaHome, 63.404 + author = {Scala organization}, 63.405 + note = {http://www.scala-lang.org/}, 63.406 + title = {{Scala} homepage} 63.407 +} 63.408 +@Misc{UPCHome, 63.409 + author = {UPC group at UC Berkeley}, 63.410 + note = {http://upc.lbl.gov/}, 63.411 + title = {{Unified Parallel C} homepage} 63.412 +} 63.413 +@Misc{SuifHome, 63.414 + note = {http://suif.stanford.edu}, 63.415 + title = {{Suif} Parallelizing compiler homepage} 63.416 +} 63.417 +@Article{SEJITS, 63.418 + author = {B. Catanzaro and S. Kamil and Y. Lee and K. Asanovic and J. Demmel and K. Keutzer and J. Shalf and K. Yelick and A. Fox}, 63.419 + title = {SEJITS: Getting Productivity AND Performance With Selective Embedded JIT Specialization}, 63.420 + journal = {First Workshop on Programmable Models for Emerging Architecture at the 18th International Conference on Parallel Architectures and Compilation Techniques }, 63.421 + year = 2009 63.422 +} 63.423 +@InProceedings{Arnaldo3D, 63.424 + author = {Azevedo, Arnaldo and Meenderinck, Cor and Juurlink, Ben and Terechko, Andrei and Hoogerbrugge, Jan and Alvarez, Mauricio and Ramirez, Alex}, 63.425 + title = {Parallel H.264 Decoding on an Embedded Multicore Processor}, 63.426 + booktitle = {HiPEAC '09: Proceedings of the 4th International Conference on High Performance Embedded Architectures and Compilers}, 63.427 + year = 2009, 63.428 + pages = {404--418} 63.429 +} 63.430 +@Article{NarayananGPUSched, 63.431 + author = {Narayanan Sundaram and Anand Raghunathan and Srimat T. Chakradhar}, 63.432 + title = {A framework for efficient and scalable execution of domain-specific templates on GPUs}, 63.433 + journal = {International Parallel and Distributed Processing Symposium {(IPDPS)}}, 63.434 + year = 2009, 63.435 + pages = {1-12} 63.436 +} 63.437 +@InProceedings{PolyForGPU, 63.438 + author = {Baskaran, Muthu Manikandan and Bondhugula, Uday and Krishnamoorthy, Sriram and Ramanujam, J. and Rountev, Atanas and Sadayappan, P.}, 63.439 + title = {A compiler framework for optimization of affine loop nests for gpgpus}, 63.440 + booktitle = {ICS '08: Proceedings of the 22nd annual international conference on Supercomputing}, 63.441 + year = 2008, 63.442 + pages = {225--234} 63.443 +} 63.444 +@InProceedings{Loulou08, 63.445 + author = {Pouchet, Louis-No\"{e}l and Bastoul, C\'{e}dric and Cohen, Albert and Cavazos, John}, 63.446 + title = {Iterative optimization in the polyhedral model: part ii, multidimensional time}, 63.447 + booktitle = {ACM SIGPLAN conference on Programming language design and implementation {(PLDI)} }, 63.448 + year = 2008, 63.449 + pages = {90--100} 63.450 +} 63.451 +@InProceedings{MergeInHotPar, 63.452 + author = {Michael D. Linderman and James Balfour and Teresa H. Meng and William J. Dally}, 63.453 + booktitle = {HOTPAR '09: USENIX Workshop on Hot Topics in Parallelism}, 63.454 + month = {March}, 63.455 + title = {Embracing Heterogeneity \- Parallel Programming for Changing Hardware}, 63.456 + year = 2009 63.457 +} 63.458 +@InProceedings{GaloisRef, 63.459 + author = {Kulkarni, Milind and Pingali, Keshav and Walter, Bruce and Ramanarayanan, Ganesh and Bala, Kavita and Chew, L. Paul}, 63.460 + title = {Optimistic parallelism requires abstractions}, 63.461 + booktitle = {PLDI '07: Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation}, 63.462 + year = 2007, 63.463 + pages = {211--222} 63.464 +} 63.465 +@Book{Allen2002, 63.466 + author = {Kennedy, Ken and Allen, John R.}, 63.467 + title = {Optimizing compilers for modern architectures: a dependence-based approach}, 63.468 + year = 2002, 63.469 + publisher = {Morgan Kaufmann Publishers Inc.} 63.470 +} 63.471 +@Misc{Stephens95, 63.472 + author = {R. Stephens}, 63.473 + title = {A Survey Of Stream Processing}, 63.474 + year = 1995 63.475 +} 63.476 +@InProceedings{Palatin06, 63.477 + author = {P Palatin and Y Lhuillier and O Temam}, 63.478 + title = {CAPSULE: Hardware-assisted parallel execution of componentbased programs}, 63.479 + booktitle = {In Proceedings of the 39th Annual International Symposium on Microarchitecture}, 63.480 + year = 2006, 63.481 + pages = {247--258} 63.482 +} 63.483 +@InProceedings{Sequioa06, 63.484 + author = {Fatahalian,, Kayvon and Horn,, Daniel Reiter and Knight,, Timothy J. and Leem,, Larkhoon and Houston,, Mike and Park,, Ji Young and Erez,, Mattan and Ren,, Manman and Aiken,, Alex and Dally,, William J. and Hanrahan,, Pat}, 63.485 + title = {Sequoia: programming the memory hierarchy}, 63.486 + booktitle = {SC '06: Proceedings of the 2006 ACM/IEEE conference on Supercomputing}, 63.487 + year = 2006, 63.488 + pages = 83 63.489 +} 63.490 +@Book{Cole89, 63.491 + author = {M Cole}, 63.492 + title = {Algorithmic skeletons: Structured management of parallel computation}, 63.493 + publisher = {Pitman}, 63.494 + year = 1989 63.495 +} 63.496 +@InProceedings{Ginhac98, 63.497 + author = {Dominique Ginhac and Jocelyn Serot and Jean Pierre Derutin}, 63.498 + title = {Fast prototyping of image processing applications using functional skeletons on a MIMD-DM architecture}, 63.499 + booktitle = {In IAPR Workshop on Machine Vision and Applications}, 63.500 + year = 1998, 63.501 + pages = {468--471} 63.502 +} 63.503 +@InProceedings{Serot08MetaParallel, 63.504 + author = {Serot, Jocelyn and Falcou, Joel}, 63.505 + title = {Functional Meta-programming for Parallel Skeletons}, 63.506 + booktitle = {ICCS '08: Proceedings of the 8th international conference on Computational Science, Part I}, 63.507 + year = 2008, 63.508 + pages = {154--163} 63.509 +} 63.510 +@InProceedings{Darlington93, 63.511 + author = {J. Darlington and A. J. Field and P. G. Harrison and P. H. J. Kelly and D. W. N. Sharp and Q. Wu}, 63.512 + title = {Parallel programming using skeleton functions}, 63.513 + booktitle = {}, 63.514 + year = 1993, 63.515 + pages = {146--160}, 63.516 + publisher = {Springer-Verlag} 63.517 +} 63.518 +@Article{Asanovic06BerkeleyView, 63.519 + title = {{The landscape of parallel computing research: A view from berkeley}}, 63.520 + author = {Asanovic, K. and Bodik, R. and Catanzaro, B.C. and Gebis, J.J. and Husbands, P. and Keutzer, K. and Patterson, D.A. and Plishker, W.L. and Shalf, J. and Williams, S.W. and others}, 63.521 + journal = {Electrical Engineering and Computer Sciences, University of California at Berkeley, Technical Report No. UCB/EECS-2006-183, December}, 63.522 + volume = 18, 63.523 + number = {2006-183}, 63.524 + pages = 19, 63.525 + year = 2006 63.526 +} 63.527 +@Misc{BerkeleyPattLang, 63.528 + note = {http://parlab.eecs.berkeley.edu/wiki/patterns}, 63.529 + title = {{Berkeley Pattern Language}} 63.530 +} 63.531 +@Book{Mattson04Patterns, 63.532 + title = {{Patterns for parallel programming}}, 63.533 + author = {Mattson, T. and Sanders, B. and Massingill, B.}, 63.534 + year = 2004, 63.535 + publisher = {Addison-Wesley Professional} 63.536 +} 63.537 +@Article{Skillicorn98, 63.538 + title = {{Models and languages for parallel computation}}, 63.539 + author = {Skillicorn, D.B. and Talia, D.}, 63.540 + journal = {ACM Computing Surveys (CSUR)}, 63.541 + volume = 30, 63.542 + number = 2, 63.543 + pages = {123--169}, 63.544 + year = 1998 63.545 +} 63.546 +@Conference{Blelloch93NESL, 63.547 + title = {{Implementation of a portable nested data-parallel language}}, 63.548 + author = {Blelloch, G.E. and Hardwick, J.C. and Chatterjee, S. and Sipelstein, J. and Zagha, M.}, 63.549 + booktitle = {Proceedings of the fourth ACM SIGPLAN symposium on Principles and practice of parallel programming}, 63.550 + pages = {102--111}, 63.551 + year = 1993, 63.552 + organization = {ACM New York, NY, USA} 63.553 +} 63.554 +@Article{McgrawSisal, 63.555 + title = {{SISAL: Streams and iteration in a single assignment language: Reference manual version 1.2}}, 63.556 + author = {McGraw, J. and Skedzielewski, SK and Allan, SJ and Oldehoeft, RR and Glauert, J. and Kirkham, C. and Noyce, B. and Thomas, R.}, 63.557 + journal = {Manual M-146, Rev}, 63.558 + volume = 1 63.559 +} 63.560 +@Article{Gelernter85Linda, 63.561 + title = {{Generative communication in Linda}}, 63.562 + author = {Gelernter, D.}, 63.563 + journal = {ACM Transactions on Programming Languages and Systems (TOPLAS)}, 63.564 + volume = 7, 63.565 + number = 1, 63.566 + pages = {80--112}, 63.567 + year = 1985 63.568 +} 63.569 +@Article{Lin94ZPL, 63.570 + title = {{ZPL: An array sublanguage}}, 63.571 + author = {Lin, C. and Snyder, L.}, 63.572 + journal = {Lecture Notes in Computer Science}, 63.573 + volume = 768, 63.574 + pages = {96--114}, 63.575 + year = 1994 63.576 +} 63.577 +@Article{baecker97, 63.578 + author = {Ron Baecker and Chris DiGiano and Aaron Marcus}, 63.579 + title = {Software visualization for debugging}, 63.580 + journal = {Communications of the ACM}, 63.581 + volume = 40, 63.582 + number = 4, 63.583 + year = 1997, 63.584 + issn = {0001-0782}, 63.585 + pages = {44--54}, 63.586 + publisher = {ACM Press} 63.587 +} 63.588 +@Article{ball96, 63.589 + author = {T. A. Ball and S. G. Eick}, 63.590 + title = {Software Visualization in the Large}, 63.591 + journal = {IEEE Computer}, 63.592 + volume = 29, 63.593 + number = 4, 63.594 + year = 1996, 63.595 + month = {apr}, 63.596 + pages = {33--43} 63.597 +} 63.598 +@Book{berry89, 63.599 + title = {{The chemical abstract machine}}, 63.600 + author = {Berry, G. and Boudol, G.}, 63.601 + year = 1989, 63.602 + publisher = {ACM Press} 63.603 +} 63.604 +@Article{blumofe95, 63.605 + author = {Robert D. Blumofe and Christopher F. Joerg and Bradley C. Kuszmaul and Charles E. Leiserson and Keith H. Randall and Yuli Zhou}, 63.606 + title = {Cilk: an efficient multithreaded runtime system}, 63.607 + journal = {SIGPLAN Not.}, 63.608 + volume = 30, 63.609 + number = 8, 63.610 + year = 1995, 63.611 + pages = {207--216} 63.612 +} 63.613 +@Article{burch90, 63.614 + title = {{Symbolic model checking: 10^{20} states and beyond}}, 63.615 + author = {Burch, JR and Clarke, EM and McMillan, KL and Dill, DL and Hwang, LJ}, 63.616 + journal = {Logic in Computer Science, 1990. LICS'90, Proceedings}, 63.617 + pages = {428--439}, 63.618 + year = 1990 63.619 +} 63.620 +@Article{chamberlain98, 63.621 + author = {B. Chamberlain and S. Choi and E. Lewis and C. Lin and L. Snyder and W. Weathersby}, 63.622 + title = {ZPL's WYSIWYG Performance Model}, 63.623 + journal = {hips}, 63.624 + volume = 00, 63.625 + year = 1998, 63.626 + isbn = {0-8186-8412-7}, 63.627 + pages = 50 63.628 +} 63.629 +@Article{church41, 63.630 + author = {A. Church}, 63.631 + title = {The Calculi of Lambda-Conversion}, 63.632 + journal = {Annals of Mathematics Studies}, 63.633 + number = 6, 63.634 + year = 1941, 63.635 + publisher = {Princeton University} 63.636 +} 63.637 +@Misc{CodeTimeSite, 63.638 + author = {Sean Halle}, 63.639 + key = {CodeTime}, 63.640 + title = {Homepage for The CodeTime Parallel Software Platform}, 63.641 + note = {{\ttfamily http://codetime.sourceforge.net}} 63.642 +} 63.643 +@Misc{CodeTimePlatform, 63.644 + author = {Sean Halle}, 63.645 + key = {CodeTime}, 63.646 + title = {The CodeTime Parallel Software Platform}, 63.647 + note = {{\ttfamily http://codetime.sourceforge.net/content/CodeTime\_Platform.pdf}} 63.648 +} 63.649 +@Misc{CodeTimeVS, 63.650 + author = {Sean Halle}, 63.651 + key = {CodeTime}, 63.652 + title = {The Specification of the CodeTime Platform's Virtual Server}, 63.653 + note = {{\ttfamily http://codetime.sourceforge.net/content/CodeTime\_Virtual\_Server.pdf}} 63.654 +} 63.655 +@Misc{CodeTimeOS, 63.656 + author = {Sean Halle}, 63.657 + key = {CodeTime}, 63.658 + title = {A Hardware Independent OS}, 63.659 + note = {{\ttfamily http://codetime.sourceforge.net/content/CodeTime\_OS.pdf}} 63.660 +} 63.661 +@Misc{CodeTimeSem, 63.662 + author = {Sean Halle}, 63.663 + key = {CodeTime}, 63.664 + title = {The Big-Step Operational Semantics of the CodeTime Computational Model}, 63.665 + note = {{\ttfamily http://codetime.sourceforge.net/content/CodeTime\_Semantics.pdf}} 63.666 +} 63.667 +@Misc{CodeTimeTh, 63.668 + author = {Sean Halle}, 63.669 + key = {CodeTime}, 63.670 + title = {A Mental Framework for Use in Creating Hardware-Independent Parallel Languages}, 63.671 + note = {{\ttfamily http://codetime.sourceforge.net/content/CodeTiime\_Theoretical\_Framework.pdf}} 63.672 +} 63.673 +@Misc{CodeTimeTh1, 63.674 + author = {Sean Halle}, 63.675 + key = {CodeTime}, 63.676 + title = {The CodeTime Parallel Software Platform}, 63.677 + note = {{\ttfamily http://codetime.sourceforge.net}} 63.678 +} 63.679 +@Misc{CodeTimeTh2, 63.680 + author = {Sean Halle}, 63.681 + key = {CodeTime}, 63.682 + title = {The CodeTime Parallel Software Platform}, 63.683 + note = {{\ttfamily http://codetime.sourceforge.net}} 63.684 +} 63.685 +@Misc{CodeTimeRT, 63.686 + author = {Sean Halle}, 63.687 + key = {CodeTime}, 63.688 + title = {The CodeTime Parallel Software Platform}, 63.689 + note = {{\ttfamily http://codetime.sourceforge.net}} 63.690 +} 63.691 +@Misc{CodeTimeWebSite, 63.692 + author = {Sean Halle}, 63.693 + key = {CodeTime}, 63.694 + title = {The CodeTime Parallel Software Platform}, 63.695 + note = {{\ttfamily http://codetime.sourceforge.net}} 63.696 +} 63.697 +@Misc{CodeTimeBaCTiL, 63.698 + author = {Sean Halle}, 63.699 + key = {CodeTime}, 63.700 + title = {The Base CodeTime Language}, 63.701 + note = {{\ttfamily http://codetime.sourceforge.net/content/CodeTime\_BaCTiL.pdf}} 63.702 +} 63.703 +@Misc{CodeTimeCert, 63.704 + author = {Sean Halle}, 63.705 + key = {CodeTime}, 63.706 + title = {The CodeTime Certification Strategy}, 63.707 + note = {{\ttfamily http://codetime.sourceforge.net/content/CodeTime\_Certification.pdf}} 63.708 +} 63.709 +@InProceedings{ducournau94, 63.710 + author = {R. Ducournau and M. Habib and M. Huchard and M. L. Mugnier}, 63.711 + title = {Proposal for a monotonic multiple inheritance linearization}, 63.712 + booktitle = {OOPSLA '94: Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications}, 63.713 + year = 1994, 63.714 + pages = {164--175}, 63.715 + publisher = {ACM Press} 63.716 +} 63.717 +@Article{emerson91, 63.718 + title = {{Tree automata, mu-calculus and determinacy}}, 63.719 + author = {Emerson, EA and Jutla, CS}, 63.720 + journal = {Proceedings of the 32nd Symposium on Foundations of Computer Science}, 63.721 + pages = {368--377}, 63.722 + year = 1991 63.723 +} 63.724 +@Article{fortune78, 63.725 + title = {{Parallelism in random access machines}}, 63.726 + author = {Fortune, S. and Wyllie, J.}, 63.727 + journal = {STOC '78: Proceedings of the tenth annual ACM symposium on Theory of computing}, 63.728 + pages = {114--118}, 63.729 + year = 1978, 63.730 + publisher = {ACM Press New York, NY, USA} 63.731 +} 63.732 +@Book{goldberg83, 63.733 + title = {{Smalltalk-80: the language and its implementation}}, 63.734 + author = {Goldberg, A. and Robson, D.}, 63.735 + year = 1983, 63.736 + publisher = {Addison-Wesley} 63.737 +} 63.738 +@InProceedings{goldschlager78, 63.739 + author = {Leslie M. Goldschlager}, 63.740 + title = {A unified approach to models of synchronous parallel machines}, 63.741 + booktitle = {STOC '78: Proceedings of the tenth annual ACM symposium on Theory of computing}, 63.742 + year = 1978, 63.743 + pages = {89--94}, 63.744 + location = {San Diego, California, United States}, 63.745 + doi = {http://doi.acm.org/10.1145/800133.804336}, 63.746 + publisher = {ACM Press} 63.747 +} 63.748 +@Book{gosling96, 63.749 + author = {J. Gosling and B. Joy and G. Steele and G. Bracha}, 63.750 + title = {The Java Language Specification}, 63.751 + publisher = {Addison-Wesley}, 63.752 + year = 1996 63.753 +} 63.754 +@Article{hasselbring00, 63.755 + author = {Wilhelm Hasselbring}, 63.756 + title = {Programming languages and systems for prototyping concurrent applications}, 63.757 + journal = {ACM Comput. Surv.}, 63.758 + volume = 32, 63.759 + number = 1, 63.760 + year = 2000, 63.761 + issn = {0360-0300}, 63.762 + pages = {43--79}, 63.763 + doi = {http://doi.acm.org/10.1145/349194.349199}, 63.764 + publisher = {ACM Press}, 63.765 + address = {New York, NY, USA} 63.766 +} 63.767 +@Article{hoare78, 63.768 + author = {C. A. R. Hoare}, 63.769 + title = {Communicating Sequential Processes}, 63.770 + journal = {Communications of the ACM}, 63.771 + year = 1978, 63.772 + volume = 21, 63.773 + number = 8, 63.774 + pages = {666-677} 63.775 +} 63.776 +@Article{huth, 63.777 + title = {{A Unifying Framework for Model Checking Labeled Kripke Structures, Modal Transition Systems, and Interval Transition Systems}}, 63.778 + author = {Huth, M.}, 63.779 + journal = {Proceedings of the 19th International Conference on the Foundations of Software Technology \& Theoretical Computer Science, Lecture Notes in Computer Science}, 63.780 + pages = {369--380}, 63.781 + publisher = {Springer-Verlag} 63.782 +} 63.783 +@Article{johnston04, 63.784 + author = {Wesley M. Johnston and J. R. Paul Hanna and Richard J. Millar}, 63.785 + title = {Advances in dataflow programming languages}, 63.786 + journal = {ACM Comput. Surv.}, 63.787 + volume = 36, 63.788 + number = 1, 63.789 + year = 2004, 63.790 + issn = {0360-0300}, 63.791 + pages = {1--34}, 63.792 + doi = {http://doi.acm.org/10.1145/1013208.1013209}, 63.793 + publisher = {ACM Press}, 63.794 + address = {New York, NY, USA} 63.795 +} 63.796 +@Book{koelbel93, 63.797 + author = {C. H. Koelbel and D. Loveman and R. Schreiber and G. Steele Jr}, 63.798 + title = {High Performance Fortran Handbook}, 63.799 + year = 1993, 63.800 + publisher = {MIT Press} 63.801 +} 63.802 +@Article{kozen83, 63.803 + title = {{Results on the Propositional mu-Calculus}}, 63.804 + author = {Kozen, D.}, 63.805 + journal = {TCS}, 63.806 + volume = 27, 63.807 + pages = {333--354}, 63.808 + year = 1983 63.809 +} 63.810 +@Article{kripke63, 63.811 + title = {{Semantical analysis of modal logic}}, 63.812 + author = {Kripke, S.}, 63.813 + journal = {Zeitschrift fur Mathematische Logik und Grundlagen der Mathematik}, 63.814 + volume = 9, 63.815 + pages = {67--96}, 63.816 + year = 1963 63.817 +} 63.818 +@Book{mcGraw85, 63.819 + author = {J McGraw and S. Skedzielewski and S. Allan and R Odefoeft}, 63.820 + title = {SISAL: Streams and Iteration in a Single-Assignment Language: Reference Manual Version 1.2}, 63.821 + note = {Manual M-146 Rev. 1}, 63.822 + publisher = {Lawrence Livermore National Laboratory}, 63.823 + year = 1985 63.824 +} 63.825 +@Book{milner80, 63.826 + title = {{A Calculus of Communicating Systems, volume 92 of Lecture Notes in Computer Science}}, 63.827 + author = {Milner, R.}, 63.828 + year = 1980, 63.829 + publisher = {Springer-Verlag} 63.830 +} 63.831 +@Article{milner92, 63.832 + title = {{A calculus of mobile processes, parts I and II}}, 63.833 + author = {Milner, R. and Parrow, J. and Walker, D.}, 63.834 + journal = {Information and Computation}, 63.835 + volume = 100, 63.836 + number = 1, 63.837 + pages = {1--40 and 41--77}, 63.838 + year = 1992, 63.839 + publisher = {Academic Press} 63.840 +} 63.841 +@Book{milner99, 63.842 + author = {Robin Milner}, 63.843 + title = {Communicating and Mobile Systems: The pi-Calculus}, 63.844 + publisher = {Cambridge University Press}, 63.845 + year = 1999 63.846 +} 63.847 +@Book{MPIForum94, 63.848 + author = {M. P. I. Forum}, 63.849 + title = {MPI: A Message-Passing Interface Standard}, 63.850 + year = 1994 63.851 +} 63.852 +@Article{petri62, 63.853 + title = {{Fundamentals of a theory of asynchronous information flow}}, 63.854 + author = {Petri, C.A.}, 63.855 + journal = {Proc. IFIP Congress}, 63.856 + volume = 62, 63.857 + pages = {386--390}, 63.858 + year = 1962 63.859 +} 63.860 +@Book{pierce02, 63.861 + title = {Types and Programming Languages}, 63.862 + author = {Pierce, B. C.}, 63.863 + year = 2002, 63.864 + publisher = {MIT Press} 63.865 +} 63.866 +@Article{price, 63.867 + author = {B. A. Price and R. M. Baecker and L. S. Small}, 63.868 + title = {A Principled Taxonomy of Software Visualization}, 63.869 + journal = {Journal of Visual Languages and Computing}, 63.870 + volume = 4, 63.871 + number = 3, 63.872 + pages = {211--266} 63.873 +} 63.874 +@Misc{pythonWebSite, 63.875 + key = {Python}, 63.876 + title = {The Python Software Foundation Mission Statement}, 63.877 + note = {{\ttfamily http://www.python.org/psf/mission.html}} 63.878 +} 63.879 +@Unpublished{reed03, 63.880 + editor = {Daniel A. Reed}, 63.881 + title = {Workshop on The Roadmap for the Revitalization of High-End Computing}, 63.882 + day = {16--18}, 63.883 + month = {jun}, 63.884 + year = 2003, 63.885 + note = {Available at {\ttfamily http://www.cra.org/reports/supercomputing.web.pdf}} 63.886 +} 63.887 +@Article{reeves84, 63.888 + author = {A. P. Reeves}, 63.889 + title = {Parallel Pascal -- An Extended Pascal for Parallel Computers}, 63.890 + journal = {Journal of Parallel and Distributed Computing}, 63.891 + volume = 1, 63.892 + number = {}, 63.893 + year = 1984, 63.894 + month = {aug}, 63.895 + pages = {64--80} 63.896 +} 63.897 +@Article{skillicorn98, 63.898 + author = {David B. Skillicorn and Domenico Talia}, 63.899 + title = {Models and languages for parallel computation}, 63.900 + journal = {ACM Comput. Surv.}, 63.901 + volume = 30, 63.902 + number = 2, 63.903 + year = 1998, 63.904 + issn = {0360-0300}, 63.905 + pages = {123--169}, 63.906 + doi = {http://doi.acm.org/10.1145/280277.280278}, 63.907 + publisher = {ACM Press}, 63.908 + address = {New York, NY, USA} 63.909 +} 63.910 +@Article{stefik86, 63.911 + title = {Object Oriented Programming: Themes and Variations}, 63.912 + author = {Stefik, M. and Bobrow, D. G.}, 63.913 + journal = {The AI Magazine}, 63.914 + volume = 6, 63.915 + number = 4, 63.916 + year = 1986 63.917 +} 63.918 +@Book{stirling92, 63.919 + title = {{Modal and Temporal Logics}}, 63.920 + author = {Stirling, C.}, 63.921 + year = 1992, 63.922 + publisher = {University of Edinburgh, Department of Computer Science} 63.923 +} 63.924 +@Misc{TitaniumWebSite, 63.925 + author = {Paul Hilfinger and et. al.}, 63.926 + title = {The Titanium Project Home Page}, 63.927 + note = {{\ttfamily http://www.cs.berkeley.edu/projects/titanium}} 63.928 +} 63.929 +@Misc{turing38, 63.930 + author = {A. Turing}, 63.931 + note = {http://www.turingarchive.org/intro/, and http://www.turing.org.uk/sources/biblio4.html, and http://web.comlab.ox.ac.uk/oucl/research/areas/ieg/e-library/sources/tp2-ie.pdf}, 63.932 + year = 1938 63.933 +} 63.934 +@Book{vonNeumann45, 63.935 + title = {First Draft of a Report on the EDVAC}, 63.936 + author = {J. von Neumann}, 63.937 + year = 1945, 63.938 + publisher = {United States Army Ordnance Department} 63.939 +} 63.940 +@Book{winskel93, 63.941 + title = {{The Formal Semantics of Programming Languages}}, 63.942 + author = {Winskel, G.}, 63.943 + year = 1993, 63.944 + publisher = {MIT Press} 63.945 +}
64.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 64.2 +++ b/0__Papers/PRT/PRT__formal_def/latex/sigplanconf.cls Sat Aug 03 19:24:22 2013 -0700 64.3 @@ -0,0 +1,1273 @@ 64.4 +%----------------------------------------------------------------------------- 64.5 +% 64.6 +% LaTeX Class/Style File 64.7 +% 64.8 +% Name: sigplanconf.cls 64.9 +% 64.10 +% Purpose: A LaTeX 2e class file for SIGPLAN conference proceedings. 64.11 +% This class file supercedes acm_proc_article-sp, 64.12 +% sig-alternate, and sigplan-proc. 64.13 +% 64.14 +% Author: Paul C. Anagnostopoulos 64.15 +% Windfall Software 64.16 +% 978 371-2316 64.17 +% paul [atsign] windfall.com 64.18 +% 64.19 +% Created: 12 September 2004 64.20 +% 64.21 +% Revisions: See end of file. 64.22 +% 64.23 +% This work is licensed under the Creative Commons Attribution License. 64.24 +% To view a copy of this license, visit 64.25 +% http://creativecommons.org/licenses/by/3.0/ 64.26 +% or send a letter to Creative Commons, 171 2nd Street, Suite 300, 64.27 +% San Francisco, California, 94105, U.S.A. 64.28 +% 64.29 +%----------------------------------------------------------------------------- 64.30 + 64.31 + 64.32 +\NeedsTeXFormat{LaTeX2e}[1995/12/01] 64.33 +\ProvidesClass{sigplanconf}[2011/11/08 v2.5 ACM SIGPLAN Proceedings] 64.34 + 64.35 +% The following few pages contain LaTeX programming extensions adapted 64.36 +% from the ZzTeX macro package. 64.37 + 64.38 +% Token Hackery 64.39 +% ----- ------- 64.40 + 64.41 + 64.42 +\def \@expandaftertwice {\expandafter\expandafter\expandafter} 64.43 +\def \@expandafterthrice {\expandafter\expandafter\expandafter\expandafter 64.44 + \expandafter\expandafter\expandafter} 64.45 + 64.46 +% This macro discards the next token. 64.47 + 64.48 +\def \@discardtok #1{}% token 64.49 + 64.50 +% This macro removes the `pt' following a dimension. 64.51 + 64.52 +{\catcode `\p = 12 \catcode `\t = 12 64.53 + 64.54 +\gdef \@remover #1pt{#1} 64.55 + 64.56 +} % \catcode 64.57 + 64.58 +% This macro extracts the contents of a macro and returns it as plain text. 64.59 +% Usage: \expandafter\@defof \meaning\macro\@mark 64.60 + 64.61 +\def \@defof #1:->#2\@mark{#2} 64.62 + 64.63 +% Control Sequence Names 64.64 +% ------- -------- ----- 64.65 + 64.66 + 64.67 +\def \@name #1{% {\tokens} 64.68 + \csname \expandafter\@discardtok \string#1\endcsname} 64.69 + 64.70 +\def \@withname #1#2{% {\command}{\tokens} 64.71 + \expandafter#1\csname \expandafter\@discardtok \string#2\endcsname} 64.72 + 64.73 +% Flags (Booleans) 64.74 +% ----- ---------- 64.75 + 64.76 +% The boolean literals \@true and \@false are appropriate for use with 64.77 +% the \if command, which tests the codes of the next two characters. 64.78 + 64.79 +\def \@true {TT} 64.80 +\def \@false {FL} 64.81 + 64.82 +\def \@setflag #1=#2{\edef #1{#2}}% \flag = boolean 64.83 + 64.84 +% IF and Predicates 64.85 +% -- --- ---------- 64.86 + 64.87 +% A "predicate" is a macro that returns \@true or \@false as its value. 64.88 +% Such values are suitable for use with the \if conditional. For example: 64.89 +% 64.90 +% \if \@oddp{\x} <then-clause> \else <else-clause> \fi 64.91 + 64.92 +% A predicate can be used with \@setflag as follows: 64.93 +% 64.94 +% \@setflag \flag = {<predicate>} 64.95 + 64.96 +% Here are the predicates for TeX's repertoire of conditional 64.97 +% commands. These might be more appropriately interspersed with 64.98 +% other definitions in this module, but what the heck. 64.99 +% Some additional "obvious" predicates are defined. 64.100 + 64.101 +\def \@eqlp #1#2{\ifnum #1 = #2\@true \else \@false \fi} 64.102 +\def \@neqlp #1#2{\ifnum #1 = #2\@false \else \@true \fi} 64.103 +\def \@lssp #1#2{\ifnum #1 < #2\@true \else \@false \fi} 64.104 +\def \@gtrp #1#2{\ifnum #1 > #2\@true \else \@false \fi} 64.105 +\def \@zerop #1{\ifnum #1 = 0\@true \else \@false \fi} 64.106 +\def \@onep #1{\ifnum #1 = 1\@true \else \@false \fi} 64.107 +\def \@posp #1{\ifnum #1 > 0\@true \else \@false \fi} 64.108 +\def \@negp #1{\ifnum #1 < 0\@true \else \@false \fi} 64.109 +\def \@oddp #1{\ifodd #1\@true \else \@false \fi} 64.110 +\def \@evenp #1{\ifodd #1\@false \else \@true \fi} 64.111 +\def \@rangep #1#2#3{\if \@orp{\@lssp{#1}{#2}}{\@gtrp{#1}{#3}}\@false \else 64.112 + \@true \fi} 64.113 +\def \@tensp #1{\@rangep{#1}{10}{19}} 64.114 + 64.115 +\def \@dimeqlp #1#2{\ifdim #1 = #2\@true \else \@false \fi} 64.116 +\def \@dimneqlp #1#2{\ifdim #1 = #2\@false \else \@true \fi} 64.117 +\def \@dimlssp #1#2{\ifdim #1 < #2\@true \else \@false \fi} 64.118 +\def \@dimgtrp #1#2{\ifdim #1 > #2\@true \else \@false \fi} 64.119 +\def \@dimzerop #1{\ifdim #1 = 0pt\@true \else \@false \fi} 64.120 +\def \@dimposp #1{\ifdim #1 > 0pt\@true \else \@false \fi} 64.121 +\def \@dimnegp #1{\ifdim #1 < 0pt\@true \else \@false \fi} 64.122 + 64.123 +\def \@vmodep {\ifvmode \@true \else \@false \fi} 64.124 +\def \@hmodep {\ifhmode \@true \else \@false \fi} 64.125 +\def \@mathmodep {\ifmmode \@true \else \@false \fi} 64.126 +\def \@textmodep {\ifmmode \@false \else \@true \fi} 64.127 +\def \@innermodep {\ifinner \@true \else \@false \fi} 64.128 + 64.129 +\long\def \@codeeqlp #1#2{\if #1#2\@true \else \@false \fi} 64.130 + 64.131 +\long\def \@cateqlp #1#2{\ifcat #1#2\@true \else \@false \fi} 64.132 + 64.133 +\long\def \@tokeqlp #1#2{\ifx #1#2\@true \else \@false \fi} 64.134 +\long\def \@xtokeqlp #1#2{\expandafter\ifx #1#2\@true \else \@false \fi} 64.135 + 64.136 +\long\def \@definedp #1{% 64.137 + \expandafter\ifx \csname \expandafter\@discardtok \string#1\endcsname 64.138 + \relax \@false \else \@true \fi} 64.139 + 64.140 +\long\def \@undefinedp #1{% 64.141 + \expandafter\ifx \csname \expandafter\@discardtok \string#1\endcsname 64.142 + \relax \@true \else \@false \fi} 64.143 + 64.144 +\def \@emptydefp #1{\ifx #1\@empty \@true \else \@false \fi}% {\name} 64.145 + 64.146 +\let \@emptylistp = \@emptydefp 64.147 + 64.148 +\long\def \@emptyargp #1{% {#n} 64.149 + \@empargp #1\@empargq\@mark} 64.150 +\long\def \@empargp #1#2\@mark{% 64.151 + \ifx #1\@empargq \@true \else \@false \fi} 64.152 +\def \@empargq {\@empargq} 64.153 + 64.154 +\def \@emptytoksp #1{% {\tokenreg} 64.155 + \expandafter\@emptoksp \the#1\@mark} 64.156 + 64.157 +\long\def \@emptoksp #1\@mark{\@emptyargp{#1}} 64.158 + 64.159 +\def \@voidboxp #1{\ifvoid #1\@true \else \@false \fi} 64.160 +\def \@hboxp #1{\ifhbox #1\@true \else \@false \fi} 64.161 +\def \@vboxp #1{\ifvbox #1\@true \else \@false \fi} 64.162 + 64.163 +\def \@eofp #1{\ifeof #1\@true \else \@false \fi} 64.164 + 64.165 + 64.166 +% Flags can also be used as predicates, as in: 64.167 +% 64.168 +% \if \flaga <then-clause> \else <else-clause> \fi 64.169 + 64.170 + 64.171 +% Now here we have predicates for the common logical operators. 64.172 + 64.173 +\def \@notp #1{\if #1\@false \else \@true \fi} 64.174 + 64.175 +\def \@andp #1#2{\if #1% 64.176 + \if #2\@true \else \@false \fi 64.177 + \else 64.178 + \@false 64.179 + \fi} 64.180 + 64.181 +\def \@orp #1#2{\if #1% 64.182 + \@true 64.183 + \else 64.184 + \if #2\@true \else \@false \fi 64.185 + \fi} 64.186 + 64.187 +\def \@xorp #1#2{\if #1% 64.188 + \if #2\@false \else \@true \fi 64.189 + \else 64.190 + \if #2\@true \else \@false \fi 64.191 + \fi} 64.192 + 64.193 +% Arithmetic 64.194 +% ---------- 64.195 + 64.196 +\def \@increment #1{\advance #1 by 1\relax}% {\count} 64.197 + 64.198 +\def \@decrement #1{\advance #1 by -1\relax}% {\count} 64.199 + 64.200 +% Options 64.201 +% ------- 64.202 + 64.203 + 64.204 +\@setflag \@authoryear = \@false 64.205 +\@setflag \@blockstyle = \@false 64.206 +\@setflag \@copyrightwanted = \@true 64.207 +\@setflag \@explicitsize = \@false 64.208 +\@setflag \@mathtime = \@false 64.209 +\@setflag \@natbib = \@true 64.210 +\@setflag \@ninepoint = \@true 64.211 +\newcount{\@numheaddepth} \@numheaddepth = 3 64.212 +\@setflag \@onecolumn = \@false 64.213 +\@setflag \@preprint = \@false 64.214 +\@setflag \@reprint = \@false 64.215 +\@setflag \@tenpoint = \@false 64.216 +\@setflag \@times = \@false 64.217 + 64.218 +% Note that all the dangerous article class options are trapped. 64.219 + 64.220 +\DeclareOption{9pt}{\@setflag \@ninepoint = \@true 64.221 + \@setflag \@explicitsize = \@true} 64.222 + 64.223 +\DeclareOption{10pt}{\PassOptionsToClass{10pt}{article}% 64.224 + \@setflag \@ninepoint = \@false 64.225 + \@setflag \@tenpoint = \@true 64.226 + \@setflag \@explicitsize = \@true} 64.227 + 64.228 +\DeclareOption{11pt}{\PassOptionsToClass{11pt}{article}% 64.229 + \@setflag \@ninepoint = \@false 64.230 + \@setflag \@explicitsize = \@true} 64.231 + 64.232 +\DeclareOption{12pt}{\@unsupportedoption{12pt}} 64.233 + 64.234 +\DeclareOption{a4paper}{\@unsupportedoption{a4paper}} 64.235 + 64.236 +\DeclareOption{a5paper}{\@unsupportedoption{a5paper}} 64.237 + 64.238 +\DeclareOption{authoryear}{\@setflag \@authoryear = \@true} 64.239 + 64.240 +\DeclareOption{b5paper}{\@unsupportedoption{b5paper}} 64.241 + 64.242 +\DeclareOption{blockstyle}{\@setflag \@blockstyle = \@true} 64.243 + 64.244 +\DeclareOption{cm}{\@setflag \@times = \@false} 64.245 + 64.246 +\DeclareOption{computermodern}{\@setflag \@times = \@false} 64.247 + 64.248 +\DeclareOption{executivepaper}{\@unsupportedoption{executivepaper}} 64.249 + 64.250 +\DeclareOption{indentedstyle}{\@setflag \@blockstyle = \@false} 64.251 + 64.252 +\DeclareOption{landscape}{\@unsupportedoption{landscape}} 64.253 + 64.254 +\DeclareOption{legalpaper}{\@unsupportedoption{legalpaper}} 64.255 + 64.256 +\DeclareOption{letterpaper}{\@unsupportedoption{letterpaper}} 64.257 + 64.258 +\DeclareOption{mathtime}{\@setflag \@mathtime = \@true} 64.259 + 64.260 +\DeclareOption{natbib}{\@setflag \@natbib = \@true} 64.261 + 64.262 +\DeclareOption{nonatbib}{\@setflag \@natbib = \@false} 64.263 + 64.264 +\DeclareOption{nocopyrightspace}{\@setflag \@copyrightwanted = \@false} 64.265 + 64.266 +\DeclareOption{notitlepage}{\@unsupportedoption{notitlepage}} 64.267 + 64.268 +\DeclareOption{numberedpars}{\@numheaddepth = 4} 64.269 + 64.270 +\DeclareOption{numbers}{\@setflag \@authoryear = \@false} 64.271 + 64.272 +%%%\DeclareOption{onecolumn}{\@setflag \@onecolumn = \@true} 64.273 + 64.274 +\DeclareOption{preprint}{\@setflag \@preprint = \@true} 64.275 + 64.276 +\DeclareOption{reprint}{\@setflag \@reprint = \@true} 64.277 + 64.278 +\DeclareOption{times}{\@setflag \@times = \@true} 64.279 + 64.280 +\DeclareOption{titlepage}{\@unsupportedoption{titlepage}} 64.281 + 64.282 +\DeclareOption{twocolumn}{\@setflag \@onecolumn = \@false} 64.283 + 64.284 +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} 64.285 + 64.286 +\ExecuteOptions{9pt,indentedstyle,times} 64.287 +\@setflag \@explicitsize = \@false 64.288 +\ProcessOptions 64.289 + 64.290 +\if \@onecolumn 64.291 + \if \@notp{\@explicitsize}% 64.292 + \@setflag \@ninepoint = \@false 64.293 + \PassOptionsToClass{11pt}{article}% 64.294 + \fi 64.295 + \PassOptionsToClass{twoside,onecolumn}{article} 64.296 +\else 64.297 + \PassOptionsToClass{twoside,twocolumn}{article} 64.298 +\fi 64.299 +\LoadClass{article} 64.300 + 64.301 +\def \@unsupportedoption #1{% 64.302 + \ClassError{proc}{The standard '#1' option is not supported.}} 64.303 + 64.304 +% This can be used with the 'reprint' option to get the final folios. 64.305 + 64.306 +\def \setpagenumber #1{% 64.307 + \setcounter{page}{#1}} 64.308 + 64.309 +\AtEndDocument{\label{sigplanconf@finalpage}} 64.310 + 64.311 +% Utilities 64.312 +% --------- 64.313 + 64.314 + 64.315 +\newcommand{\setvspace}[2]{% 64.316 + #1 = #2 64.317 + \advance #1 by -1\parskip} 64.318 + 64.319 +% Document Parameters 64.320 +% -------- ---------- 64.321 + 64.322 + 64.323 +% Page: 64.324 + 64.325 +\setlength{\hoffset}{-1in} 64.326 +\setlength{\voffset}{-1in} 64.327 + 64.328 +\setlength{\topmargin}{1in} 64.329 +\setlength{\headheight}{0pt} 64.330 +\setlength{\headsep}{0pt} 64.331 + 64.332 +\if \@onecolumn 64.333 + \setlength{\evensidemargin}{.75in} 64.334 + \setlength{\oddsidemargin}{.75in} 64.335 +\else 64.336 + \setlength{\evensidemargin}{.75in} 64.337 + \setlength{\oddsidemargin}{.75in} 64.338 +\fi 64.339 + 64.340 +% Text area: 64.341 + 64.342 +\newdimen{\standardtextwidth} 64.343 +\setlength{\standardtextwidth}{42pc} 64.344 + 64.345 +\if \@onecolumn 64.346 + \setlength{\textwidth}{40.5pc} 64.347 +\else 64.348 + \setlength{\textwidth}{\standardtextwidth} 64.349 +\fi 64.350 + 64.351 +\setlength{\topskip}{8pt} 64.352 +\setlength{\columnsep}{2pc} 64.353 +\setlength{\textheight}{54.5pc} 64.354 + 64.355 +% Running foot: 64.356 + 64.357 +\setlength{\footskip}{30pt} 64.358 + 64.359 +% Paragraphs: 64.360 + 64.361 +\if \@blockstyle 64.362 + \setlength{\parskip}{5pt plus .1pt minus .5pt} 64.363 + \setlength{\parindent}{0pt} 64.364 +\else 64.365 + \setlength{\parskip}{0pt} 64.366 + \setlength{\parindent}{12pt} 64.367 +\fi 64.368 + 64.369 +\setlength{\lineskip}{.5pt} 64.370 +\setlength{\lineskiplimit}{\lineskip} 64.371 + 64.372 +\frenchspacing 64.373 +\pretolerance = 400 64.374 +\tolerance = \pretolerance 64.375 +\setlength{\emergencystretch}{5pt} 64.376 +\clubpenalty = 10000 64.377 +\widowpenalty = 10000 64.378 +\setlength{\hfuzz}{.5pt} 64.379 + 64.380 +% Standard vertical spaces: 64.381 + 64.382 +\newskip{\standardvspace} 64.383 +\setvspace{\standardvspace}{5pt plus 1pt minus .5pt} 64.384 + 64.385 +% Margin paragraphs: 64.386 + 64.387 +\setlength{\marginparwidth}{36pt} 64.388 +\setlength{\marginparsep}{2pt} 64.389 +\setlength{\marginparpush}{8pt} 64.390 + 64.391 + 64.392 +\setlength{\skip\footins}{8pt plus 3pt minus 1pt} 64.393 +\setlength{\footnotesep}{9pt} 64.394 + 64.395 +\renewcommand{\footnoterule}{% 64.396 + \hrule width .5\columnwidth height .33pt depth 0pt} 64.397 + 64.398 +\renewcommand{\@makefntext}[1]{% 64.399 + \noindent \@makefnmark \hspace{1pt}#1} 64.400 + 64.401 +% Floats: 64.402 + 64.403 +\setcounter{topnumber}{4} 64.404 +\setcounter{bottomnumber}{1} 64.405 +\setcounter{totalnumber}{4} 64.406 + 64.407 +\renewcommand{\fps@figure}{tp} 64.408 +\renewcommand{\fps@table}{tp} 64.409 +\renewcommand{\topfraction}{0.90} 64.410 +\renewcommand{\bottomfraction}{0.30} 64.411 +\renewcommand{\textfraction}{0.10} 64.412 +\renewcommand{\floatpagefraction}{0.75} 64.413 + 64.414 +\setcounter{dbltopnumber}{4} 64.415 + 64.416 +\renewcommand{\dbltopfraction}{\topfraction} 64.417 +\renewcommand{\dblfloatpagefraction}{\floatpagefraction} 64.418 + 64.419 +\setlength{\floatsep}{18pt plus 4pt minus 2pt} 64.420 +\setlength{\textfloatsep}{18pt plus 4pt minus 3pt} 64.421 +\setlength{\intextsep}{10pt plus 4pt minus 3pt} 64.422 + 64.423 +\setlength{\dblfloatsep}{18pt plus 4pt minus 2pt} 64.424 +\setlength{\dbltextfloatsep}{20pt plus 4pt minus 3pt} 64.425 + 64.426 +% Miscellaneous: 64.427 + 64.428 +\errorcontextlines = 5 64.429 + 64.430 +% Fonts 64.431 +% ----- 64.432 + 64.433 + 64.434 +\if \@times 64.435 + \renewcommand{\rmdefault}{ptm}% 64.436 + \if \@mathtime 64.437 + \usepackage[mtbold,noTS1]{mathtime}% 64.438 + \else 64.439 +%%% \usepackage{mathptm}% 64.440 + \fi 64.441 +\else 64.442 + \relax 64.443 +\fi 64.444 + 64.445 +\if \@ninepoint 64.446 + 64.447 +\renewcommand{\normalsize}{% 64.448 + \@setfontsize{\normalsize}{9pt}{10pt}% 64.449 + \setlength{\abovedisplayskip}{5pt plus 1pt minus .5pt}% 64.450 + \setlength{\belowdisplayskip}{\abovedisplayskip}% 64.451 + \setlength{\abovedisplayshortskip}{3pt plus 1pt minus 2pt}% 64.452 + \setlength{\belowdisplayshortskip}{\abovedisplayshortskip}} 64.453 + 64.454 +\renewcommand{\tiny}{\@setfontsize{\tiny}{5pt}{6pt}} 64.455 + 64.456 +\renewcommand{\scriptsize}{\@setfontsize{\scriptsize}{7pt}{8pt}} 64.457 + 64.458 +\renewcommand{\small}{% 64.459 + \@setfontsize{\small}{8pt}{9pt}% 64.460 + \setlength{\abovedisplayskip}{4pt plus 1pt minus 1pt}% 64.461 + \setlength{\belowdisplayskip}{\abovedisplayskip}% 64.462 + \setlength{\abovedisplayshortskip}{2pt plus 1pt}% 64.463 + \setlength{\belowdisplayshortskip}{\abovedisplayshortskip}} 64.464 + 64.465 +\renewcommand{\footnotesize}{% 64.466 + \@setfontsize{\footnotesize}{8pt}{9pt}% 64.467 + \setlength{\abovedisplayskip}{4pt plus 1pt minus .5pt}% 64.468 + \setlength{\belowdisplayskip}{\abovedisplayskip}% 64.469 + \setlength{\abovedisplayshortskip}{2pt plus 1pt}% 64.470 + \setlength{\belowdisplayshortskip}{\abovedisplayshortskip}} 64.471 + 64.472 +\renewcommand{\large}{\@setfontsize{\large}{11pt}{13pt}} 64.473 + 64.474 +\renewcommand{\Large}{\@setfontsize{\Large}{14pt}{18pt}} 64.475 + 64.476 +\renewcommand{\LARGE}{\@setfontsize{\LARGE}{18pt}{20pt}} 64.477 + 64.478 +\renewcommand{\huge}{\@setfontsize{\huge}{20pt}{25pt}} 64.479 + 64.480 +\renewcommand{\Huge}{\@setfontsize{\Huge}{25pt}{30pt}} 64.481 + 64.482 +\else\if \@tenpoint 64.483 + 64.484 +\relax 64.485 + 64.486 +\else 64.487 + 64.488 +\relax 64.489 + 64.490 +\fi\fi 64.491 + 64.492 +% Abstract 64.493 +% -------- 64.494 + 64.495 + 64.496 +\renewenvironment{abstract}{% 64.497 + \section*{Abstract}% 64.498 + \normalsize}{% 64.499 + } 64.500 + 64.501 +% Bibliography 64.502 +% ------------ 64.503 + 64.504 + 64.505 +\renewenvironment{thebibliography}[1] 64.506 + {\section*{\refname 64.507 + \@mkboth{\MakeUppercase\refname}{\MakeUppercase\refname}}% 64.508 + \list{\@biblabel{\@arabic\c@enumiv}}% 64.509 + {\settowidth\labelwidth{\@biblabel{#1}}% 64.510 + \leftmargin\labelwidth 64.511 + \advance\leftmargin\labelsep 64.512 + \@openbib@code 64.513 + \usecounter{enumiv}% 64.514 + \let\p@enumiv\@empty 64.515 + \renewcommand\theenumiv{\@arabic\c@enumiv}}% 64.516 + \bibfont 64.517 + \clubpenalty4000 64.518 + \@clubpenalty \clubpenalty 64.519 + \widowpenalty4000% 64.520 + \sfcode`\.\@m} 64.521 + {\def\@noitemerr 64.522 + {\@latex@warning{Empty `thebibliography' environment}}% 64.523 + \endlist} 64.524 + 64.525 +\if \@natbib 64.526 + 64.527 +\if \@authoryear 64.528 + \typeout{Using natbib package with 'authoryear' citation style.} 64.529 + \usepackage[authoryear,square]{natbib} 64.530 + \bibpunct{[}{]}{;}{a}{}{,} % Change citation separator to semicolon, 64.531 + % eliminate comma between author and year. 64.532 + \let \cite = \citep 64.533 +\else 64.534 + \typeout{Using natbib package with 'numbers' citation style.} 64.535 + \usepackage[numbers,sort&compress,square]{natbib} 64.536 +\fi 64.537 +\setlength{\bibsep}{3pt plus .5pt minus .25pt} 64.538 + 64.539 +\fi 64.540 + 64.541 +\def \bibfont {\small} 64.542 + 64.543 +% Categories 64.544 +% ---------- 64.545 + 64.546 + 64.547 +\@setflag \@firstcategory = \@true 64.548 + 64.549 +\newcommand{\category}[3]{% 64.550 + \if \@firstcategory 64.551 + \paragraph*{Categories and Subject Descriptors}% 64.552 + \@setflag \@firstcategory = \@false 64.553 + \else 64.554 + \unskip ;\hspace{.75em}% 64.555 + \fi 64.556 + \@ifnextchar [{\@category{#1}{#2}{#3}}{\@category{#1}{#2}{#3}[]}} 64.557 + 64.558 +\def \@category #1#2#3[#4]{% 64.559 + {\let \and = \relax 64.560 + #1 [\textit{#2}]% 64.561 + \if \@emptyargp{#4}% 64.562 + \if \@notp{\@emptyargp{#3}}: #3\fi 64.563 + \else 64.564 + :\space 64.565 + \if \@notp{\@emptyargp{#3}}#3---\fi 64.566 + \textrm{#4}% 64.567 + \fi}} 64.568 + 64.569 +% Copyright Notice 64.570 +% --------- ------ 64.571 + 64.572 + 64.573 +\def \ftype@copyrightbox {8} 64.574 +\def \@toappear {} 64.575 +\def \@permission {} 64.576 +\def \@reprintprice {} 64.577 + 64.578 +\def \@copyrightspace {% 64.579 + \@float{copyrightbox}[b]% 64.580 + \vbox to 1in{% 64.581 + \vfill 64.582 + \parbox[b]{20pc}{% 64.583 + \scriptsize 64.584 + \if \@preprint 64.585 + [Copyright notice will appear here 64.586 + once 'preprint' option is removed.]\par 64.587 + \else 64.588 + \@toappear 64.589 + \fi 64.590 + \if \@reprint 64.591 + \noindent Reprinted from \@conferencename, 64.592 + \@proceedings, 64.593 + \@conferenceinfo, 64.594 + pp.~\number\thepage--\pageref{sigplanconf@finalpage}.\par 64.595 + \fi}}% 64.596 + \end@float} 64.597 + 64.598 +\long\def \toappear #1{% 64.599 + \def \@toappear {#1}} 64.600 + 64.601 +\toappear{% 64.602 + \noindent \@permission \par 64.603 + \vspace{2pt} 64.604 + \noindent \textsl{\@conferencename}\quad \@conferenceinfo \par 64.605 + \noindent Copyright \copyright\ \@copyrightyear\ ACM \@copyrightdata 64.606 + \dots \@reprintprice\par} 64.607 + 64.608 +\newcommand{\permission}[1]{% 64.609 + \gdef \@permission {#1}} 64.610 + 64.611 +\permission{% 64.612 + Permission to make digital or hard copies of all or 64.613 + part of this work for personal or classroom use is granted without 64.614 + fee provided that copies are not made or distributed for profit or 64.615 + commercial advantage and that copies bear this notice and the full 64.616 + citation on the first page. To copy otherwise, to republish, to 64.617 + post on servers or to redistribute to lists, requires prior specific 64.618 + permission and/or a fee.} 64.619 + 64.620 +% Here we have some alternate permission statements and copyright lines: 64.621 + 64.622 +\newcommand{\ACMCanadapermission}{% 64.623 + \permission{% 64.624 + Copyright \@copyrightyear\ Association for Computing Machinery. 64.625 + ACM acknowledges that 64.626 + this contribution was authored or co-authored by an affiliate of the 64.627 + National Research Council of Canada (NRC). 64.628 + As such, the Crown in Right of 64.629 + Canada retains an equal interest in the copyright, however granting 64.630 + nonexclusive, royalty-free right to publish or reproduce this article, 64.631 + or to allow others to do so, provided that clear attribution 64.632 + is also given to the authors and the NRC.}} 64.633 + 64.634 +\newcommand{\ACMUSpermission}{% 64.635 + \permission{% 64.636 + Copyright \@copyrightyear\ Association for 64.637 + Computing Machinery. ACM acknowledges that 64.638 + this contribution was authored or co-authored 64.639 + by a contractor or affiliate 64.640 + of the U.S. Government. As such, the Government retains a nonexclusive, 64.641 + royalty-free right to publish or reproduce this article, 64.642 + or to allow others to do so, for Government purposes only.}} 64.643 + 64.644 +\newcommand{\authorpermission}{% 64.645 + \permission{% 64.646 + Copyright is held by the author/owner(s).} 64.647 + \toappear{% 64.648 + \noindent \@permission \par 64.649 + \vspace{2pt} 64.650 + \noindent \textsl{\@conferencename}\quad \@conferenceinfo \par 64.651 + ACM \@copyrightdata.}} 64.652 + 64.653 +\newcommand{\Sunpermission}{% 64.654 + \permission{% 64.655 + Copyright is held by Sun Microsystems, Inc.}% 64.656 + \toappear{% 64.657 + \noindent \@permission \par 64.658 + \vspace{2pt} 64.659 + \noindent \textsl{\@conferencename}\quad \@conferenceinfo \par 64.660 + ACM \@copyrightdata.}} 64.661 + 64.662 +\newcommand{\USpublicpermission}{% 64.663 + \permission{% 64.664 + This paper is authored by an employee(s) of the United States 64.665 + Government and is in the public domain.}% 64.666 + \toappear{% 64.667 + \noindent \@permission \par 64.668 + \vspace{2pt} 64.669 + \noindent \textsl{\@conferencename}\quad \@conferenceinfo \par 64.670 + ACM \@copyrightdata.}} 64.671 + 64.672 +\newcommand{\reprintprice}[1]{% 64.673 + \gdef \@reprintprice {#1}} 64.674 + 64.675 +\reprintprice{\$10.00} 64.676 + 64.677 +\newcommand{\authorversion}[4]{% 64.678 + \permission{% 64.679 + Copyright \copyright\ ACM, #1. This is the author's version of the work. 64.680 + It is posted here by permission of ACM for your personal use. 64.681 + Not for redistribution. The definitive version was published in 64.682 + #2, #3, http://doi.acm.org/10.1145/#4.}} 64.683 + 64.684 +% Enunciations 64.685 +% ------------ 64.686 + 64.687 + 64.688 +\def \@begintheorem #1#2{% {name}{number} 64.689 + \trivlist 64.690 + \item[\hskip \labelsep \textsc{#1 #2.}]% 64.691 + \itshape\selectfont 64.692 + \ignorespaces} 64.693 + 64.694 +\def \@opargbegintheorem #1#2#3{% {name}{number}{title} 64.695 + \trivlist 64.696 + \item[% 64.697 + \hskip\labelsep \textsc{#1\ #2}% 64.698 + \if \@notp{\@emptyargp{#3}}\nut (#3).\fi]% 64.699 + \itshape\selectfont 64.700 + \ignorespaces} 64.701 + 64.702 +% Figures 64.703 +% ------- 64.704 + 64.705 + 64.706 +\@setflag \@caprule = \@true 64.707 + 64.708 +\long\def \@makecaption #1#2{% 64.709 + \addvspace{4pt} 64.710 + \if \@caprule 64.711 + \hrule width \hsize height .33pt 64.712 + \vspace{4pt} 64.713 + \fi 64.714 + \setbox \@tempboxa = \hbox{\@setfigurenumber{#1.}\nut #2}% 64.715 + \if \@dimgtrp{\wd\@tempboxa}{\hsize}% 64.716 + \noindent \@setfigurenumber{#1.}\nut #2\par 64.717 + \else 64.718 + \centerline{\box\@tempboxa}% 64.719 + \fi} 64.720 + 64.721 +\newcommand{\nocaptionrule}{% 64.722 + \@setflag \@caprule = \@false} 64.723 + 64.724 +\def \@setfigurenumber #1{% 64.725 + {\rmfamily \bfseries \selectfont #1}} 64.726 + 64.727 +% Hierarchy 64.728 +% --------- 64.729 + 64.730 + 64.731 +\setcounter{secnumdepth}{\@numheaddepth} 64.732 + 64.733 +\newskip{\@sectionaboveskip} 64.734 +\setvspace{\@sectionaboveskip}{10pt plus 3pt minus 2pt} 64.735 + 64.736 +\newskip{\@sectionbelowskip} 64.737 +\if \@blockstyle 64.738 + \setlength{\@sectionbelowskip}{0.1pt}% 64.739 +\else 64.740 + \setlength{\@sectionbelowskip}{4pt}% 64.741 +\fi 64.742 + 64.743 +\renewcommand{\section}{% 64.744 + \@startsection 64.745 + {section}% 64.746 + {1}% 64.747 + {0pt}% 64.748 + {-\@sectionaboveskip}% 64.749 + {\@sectionbelowskip}% 64.750 + {\large \bfseries \raggedright}} 64.751 + 64.752 +\newskip{\@subsectionaboveskip} 64.753 +\setvspace{\@subsectionaboveskip}{8pt plus 2pt minus 2pt} 64.754 + 64.755 +\newskip{\@subsectionbelowskip} 64.756 +\if \@blockstyle 64.757 + \setlength{\@subsectionbelowskip}{0.1pt}% 64.758 +\else 64.759 + \setlength{\@subsectionbelowskip}{4pt}% 64.760 +\fi 64.761 + 64.762 +\renewcommand{\subsection}{% 64.763 + \@startsection% 64.764 + {subsection}% 64.765 + {2}% 64.766 + {0pt}% 64.767 + {-\@subsectionaboveskip}% 64.768 + {\@subsectionbelowskip}% 64.769 + {\normalsize \bfseries \raggedright}} 64.770 + 64.771 +\renewcommand{\subsubsection}{% 64.772 + \@startsection% 64.773 + {subsubsection}% 64.774 + {3}% 64.775 + {0pt}% 64.776 + {-\@subsectionaboveskip} 64.777 + {\@subsectionbelowskip}% 64.778 + {\normalsize \bfseries \raggedright}} 64.779 + 64.780 +\newskip{\@paragraphaboveskip} 64.781 +\setvspace{\@paragraphaboveskip}{6pt plus 2pt minus 2pt} 64.782 + 64.783 +\renewcommand{\paragraph}{% 64.784 + \@startsection% 64.785 + {paragraph}% 64.786 + {4}% 64.787 + {0pt}% 64.788 + {\@paragraphaboveskip} 64.789 + {-1em}% 64.790 + {\normalsize \bfseries \if \@times \itshape \fi}} 64.791 + 64.792 +\renewcommand{\subparagraph}{% 64.793 + \@startsection% 64.794 + {subparagraph}% 64.795 + {4}% 64.796 + {0pt}% 64.797 + {\@paragraphaboveskip} 64.798 + {-1em}% 64.799 + {\normalsize \itshape}} 64.800 + 64.801 +% Standard headings: 64.802 + 64.803 +\newcommand{\acks}{\section*{Acknowledgments}} 64.804 + 64.805 +\newcommand{\keywords}{\paragraph*{Keywords}} 64.806 + 64.807 +\newcommand{\terms}{\paragraph*{General Terms}} 64.808 + 64.809 +% Identification 64.810 +% -------------- 64.811 + 64.812 + 64.813 +\def \@conferencename {} 64.814 +\def \@conferenceinfo {} 64.815 +\def \@copyrightyear {} 64.816 +\def \@copyrightdata {[to be supplied]} 64.817 +\def \@proceedings {[Unknown Proceedings]} 64.818 + 64.819 + 64.820 +\newcommand{\conferenceinfo}[2]{% 64.821 + \gdef \@conferencename {#1}% 64.822 + \gdef \@conferenceinfo {#2}} 64.823 + 64.824 +\newcommand{\copyrightyear}[1]{% 64.825 + \gdef \@copyrightyear {#1}} 64.826 + 64.827 +\let \CopyrightYear = \copyrightyear 64.828 + 64.829 +\newcommand{\copyrightdata}[1]{% 64.830 + \gdef \@copyrightdata {#1}} 64.831 + 64.832 +\let \crdata = \copyrightdata 64.833 + 64.834 +\newcommand{\proceedings}[1]{% 64.835 + \gdef \@proceedings {#1}} 64.836 + 64.837 +% Lists 64.838 +% ----- 64.839 + 64.840 + 64.841 +\setlength{\leftmargini}{13pt} 64.842 +\setlength\leftmarginii{13pt} 64.843 +\setlength\leftmarginiii{13pt} 64.844 +\setlength\leftmarginiv{13pt} 64.845 +\setlength{\labelsep}{3.5pt} 64.846 + 64.847 +\setlength{\topsep}{\standardvspace} 64.848 +\if \@blockstyle 64.849 + \setlength{\itemsep}{1pt} 64.850 + \setlength{\parsep}{3pt} 64.851 +\else 64.852 + \setlength{\itemsep}{1pt} 64.853 + \setlength{\parsep}{3pt} 64.854 +\fi 64.855 + 64.856 +\renewcommand{\labelitemi}{{\small \centeroncapheight{\textbullet}}} 64.857 +\renewcommand{\labelitemii}{\centeroncapheight{\rule{2.5pt}{2.5pt}}} 64.858 +\renewcommand{\labelitemiii}{$-$} 64.859 +\renewcommand{\labelitemiv}{{\Large \textperiodcentered}} 64.860 + 64.861 +\renewcommand{\@listi}{% 64.862 + \leftmargin = \leftmargini 64.863 + \listparindent = 0pt} 64.864 +%%% \itemsep = 1pt 64.865 +%%% \parsep = 3pt} 64.866 +%%% \listparindent = \parindent} 64.867 + 64.868 +\let \@listI = \@listi 64.869 + 64.870 +\renewcommand{\@listii}{% 64.871 + \leftmargin = \leftmarginii 64.872 + \topsep = 1pt 64.873 + \labelwidth = \leftmarginii 64.874 + \advance \labelwidth by -\labelsep 64.875 + \listparindent = \parindent} 64.876 + 64.877 +\renewcommand{\@listiii}{% 64.878 + \leftmargin = \leftmarginiii 64.879 + \labelwidth = \leftmarginiii 64.880 + \advance \labelwidth by -\labelsep 64.881 + \listparindent = \parindent} 64.882 + 64.883 +\renewcommand{\@listiv}{% 64.884 + \leftmargin = \leftmarginiv 64.885 + \labelwidth = \leftmarginiv 64.886 + \advance \labelwidth by -\labelsep 64.887 + \listparindent = \parindent} 64.888 + 64.889 +% Mathematics 64.890 +% ----------- 64.891 + 64.892 + 64.893 +\def \theequation {\arabic{equation}} 64.894 + 64.895 +% Miscellaneous 64.896 +% ------------- 64.897 + 64.898 + 64.899 +\newcommand{\balancecolumns}{% 64.900 + \vfill\eject 64.901 + \global\@colht = \textheight 64.902 + \global\ht\@cclv = \textheight} 64.903 + 64.904 +\newcommand{\nut}{\hspace{.5em}} 64.905 + 64.906 +\newcommand{\softraggedright}{% 64.907 + \let \\ = \@centercr 64.908 + \leftskip = 0pt 64.909 + \rightskip = 0pt plus 10pt} 64.910 + 64.911 +% Program Code 64.912 +% ------- ---- 64.913 + 64.914 + 64.915 +\newcommand{\mono}[1]{% 64.916 + {\@tempdima = \fontdimen2\font 64.917 + \texttt{\spaceskip = 1.1\@tempdima #1}}} 64.918 + 64.919 +% Running Heads and Feet 64.920 +% ------- ----- --- ---- 64.921 + 64.922 + 64.923 +\def \@preprintfooter {} 64.924 + 64.925 +\newcommand{\preprintfooter}[1]{% 64.926 + \gdef \@preprintfooter {#1}} 64.927 + 64.928 +\if \@preprint 64.929 + 64.930 +\def \ps@plain {% 64.931 + \let \@mkboth = \@gobbletwo 64.932 + \let \@evenhead = \@empty 64.933 + \def \@evenfoot {\scriptsize 64.934 + \rlap{\textit{\@preprintfooter}}\hfil 64.935 + \thepage \hfil 64.936 + \llap{\textit{\@formatyear}}}% 64.937 + \let \@oddhead = \@empty 64.938 + \let \@oddfoot = \@evenfoot} 64.939 + 64.940 +\else\if \@reprint 64.941 + 64.942 +\def \ps@plain {% 64.943 + \let \@mkboth = \@gobbletwo 64.944 + \let \@evenhead = \@empty 64.945 + \def \@evenfoot {\scriptsize \hfil \thepage \hfil}% 64.946 + \let \@oddhead = \@empty 64.947 + \let \@oddfoot = \@evenfoot} 64.948 + 64.949 +\else 64.950 + 64.951 +\let \ps@plain = \ps@empty 64.952 +\let \ps@headings = \ps@empty 64.953 +\let \ps@myheadings = \ps@empty 64.954 + 64.955 +\fi\fi 64.956 + 64.957 +\def \@formatyear {% 64.958 + \number\year/\number\month/\number\day} 64.959 + 64.960 +% Special Characters 64.961 +% ------- ---------- 64.962 + 64.963 + 64.964 +\DeclareRobustCommand{\euro}{% 64.965 + \protect{\rlap{=}}{\sf \kern .1em C}} 64.966 + 64.967 +% Title Page 64.968 +% ----- ---- 64.969 + 64.970 + 64.971 +\@setflag \@addauthorsdone = \@false 64.972 + 64.973 +\def \@titletext {\@latex@error{No title was provided}{}} 64.974 +\def \@subtitletext {} 64.975 + 64.976 +\newcount{\@authorcount} 64.977 + 64.978 +\newcount{\@titlenotecount} 64.979 +\newtoks{\@titlenotetext} 64.980 + 64.981 +\def \@titlebanner {} 64.982 + 64.983 +\renewcommand{\title}[1]{% 64.984 + \gdef \@titletext {#1}} 64.985 + 64.986 +\newcommand{\subtitle}[1]{% 64.987 + \gdef \@subtitletext {#1}} 64.988 + 64.989 +\newcommand{\authorinfo}[3]{% {names}{affiliation}{email/URL} 64.990 + \global\@increment \@authorcount 64.991 + \@withname\gdef {\@authorname\romannumeral\@authorcount}{#1}% 64.992 + \@withname\gdef {\@authoraffil\romannumeral\@authorcount}{#2}% 64.993 + \@withname\gdef {\@authoremail\romannumeral\@authorcount}{#3}} 64.994 + 64.995 +\renewcommand{\author}[1]{% 64.996 + \@latex@error{The \string\author\space command is obsolete; 64.997 + use \string\authorinfo}{}} 64.998 + 64.999 +\newcommand{\titlebanner}[1]{% 64.1000 + \gdef \@titlebanner {#1}} 64.1001 + 64.1002 +\renewcommand{\maketitle}{% 64.1003 + \pagestyle{plain}% 64.1004 + \if \@onecolumn 64.1005 + {\hsize = \standardtextwidth 64.1006 + \@maketitle}% 64.1007 + \else 64.1008 + \twocolumn[\@maketitle]% 64.1009 + \fi 64.1010 + \@placetitlenotes 64.1011 + \if \@copyrightwanted \@copyrightspace \fi} 64.1012 + 64.1013 +\def \@maketitle {% 64.1014 + \begin{center} 64.1015 + \@settitlebanner 64.1016 + \let \thanks = \titlenote 64.1017 + {\leftskip = 0pt plus 0.25\linewidth 64.1018 + \rightskip = 0pt plus 0.25 \linewidth 64.1019 + \parfillskip = 0pt 64.1020 + \spaceskip = .7em 64.1021 + \noindent \LARGE \bfseries \@titletext \par} 64.1022 + \vskip 6pt 64.1023 + \noindent \Large \@subtitletext \par 64.1024 + \vskip 12pt 64.1025 + \ifcase \@authorcount 64.1026 + \@latex@error{No authors were specified for this paper}{}\or 64.1027 + \@titleauthors{i}{}{}\or 64.1028 + \@titleauthors{i}{ii}{}\or 64.1029 + \@titleauthors{i}{ii}{iii}\or 64.1030 + \@titleauthors{i}{ii}{iii}\@titleauthors{iv}{}{}\or 64.1031 + \@titleauthors{i}{ii}{iii}\@titleauthors{iv}{v}{}\or 64.1032 + \@titleauthors{i}{ii}{iii}\@titleauthors{iv}{v}{vi}\or 64.1033 + \@titleauthors{i}{ii}{iii}\@titleauthors{iv}{v}{vi}% 64.1034 + \@titleauthors{vii}{}{}\or 64.1035 + \@titleauthors{i}{ii}{iii}\@titleauthors{iv}{v}{vi}% 64.1036 + \@titleauthors{vii}{viii}{}\or 64.1037 + \@titleauthors{i}{ii}{iii}\@titleauthors{iv}{v}{vi}% 64.1038 + \@titleauthors{vii}{viii}{ix}\or 64.1039 + \@titleauthors{i}{ii}{iii}\@titleauthors{iv}{v}{vi}% 64.1040 + \@titleauthors{vii}{viii}{ix}\@titleauthors{x}{}{}\or 64.1041 + \@titleauthors{i}{ii}{iii}\@titleauthors{iv}{v}{vi}% 64.1042 + \@titleauthors{vii}{viii}{ix}\@titleauthors{x}{xi}{}\or 64.1043 + \@titleauthors{i}{ii}{iii}\@titleauthors{iv}{v}{vi}% 64.1044 + \@titleauthors{vii}{viii}{ix}\@titleauthors{x}{xi}{xii}% 64.1045 + \else 64.1046 + \@latex@error{Cannot handle more than 12 authors}{}% 64.1047 + \fi 64.1048 + \vspace{1.75pc} 64.1049 + \end{center}} 64.1050 + 64.1051 +\def \@settitlebanner {% 64.1052 + \if \@andp{\@preprint}{\@notp{\@emptydefp{\@titlebanner}}}% 64.1053 + \vbox to 0pt{% 64.1054 + \vskip -32pt 64.1055 + \noindent \textbf{\@titlebanner}\par 64.1056 + \vss}% 64.1057 + \nointerlineskip 64.1058 + \fi} 64.1059 + 64.1060 +\def \@titleauthors #1#2#3{% 64.1061 + \if \@andp{\@emptyargp{#2}}{\@emptyargp{#3}}% 64.1062 + \noindent \@setauthor{40pc}{#1}{\@false}\par 64.1063 + \else\if \@emptyargp{#3}% 64.1064 + \noindent \@setauthor{17pc}{#1}{\@false}\hspace{3pc}% 64.1065 + \@setauthor{17pc}{#2}{\@false}\par 64.1066 + \else 64.1067 + \noindent \@setauthor{12.5pc}{#1}{\@false}\hspace{2pc}% 64.1068 + \@setauthor{12.5pc}{#2}{\@false}\hspace{2pc}% 64.1069 + \@setauthor{12.5pc}{#3}{\@true}\par 64.1070 + \relax 64.1071 + \fi\fi 64.1072 + \vspace{20pt}} 64.1073 + 64.1074 +\def \@setauthor #1#2#3{% {width}{text}{unused} 64.1075 + \vtop{% 64.1076 + \def \and {% 64.1077 + \hspace{16pt}} 64.1078 + \hsize = #1 64.1079 + \normalfont 64.1080 + \centering 64.1081 + \large \@name{\@authorname#2}\par 64.1082 + \vspace{5pt} 64.1083 + \normalsize \@name{\@authoraffil#2}\par 64.1084 + \vspace{2pt} 64.1085 + \textsf{\@name{\@authoremail#2}}\par}} 64.1086 + 64.1087 +\def \@maybetitlenote #1{% 64.1088 + \if \@andp{#1}{\@gtrp{\@authorcount}{3}}% 64.1089 + \titlenote{See page~\pageref{@addauthors} for additional authors.}% 64.1090 + \fi} 64.1091 + 64.1092 +\newtoks{\@fnmark} 64.1093 + 64.1094 +\newcommand{\titlenote}[1]{% 64.1095 + \global\@increment \@titlenotecount 64.1096 + \ifcase \@titlenotecount \relax \or 64.1097 + \@fnmark = {\ast}\or 64.1098 + \@fnmark = {\dagger}\or 64.1099 + \@fnmark = {\ddagger}\or 64.1100 + \@fnmark = {\S}\or 64.1101 + \@fnmark = {\P}\or 64.1102 + \@fnmark = {\ast\ast}% 64.1103 + \fi 64.1104 + \,$^{\the\@fnmark}$% 64.1105 + \edef \reserved@a {\noexpand\@appendtotext{% 64.1106 + \noexpand\@titlefootnote{\the\@fnmark}}}% 64.1107 + \reserved@a{#1}} 64.1108 + 64.1109 +\def \@appendtotext #1#2{% 64.1110 + \global\@titlenotetext = \expandafter{\the\@titlenotetext #1{#2}}} 64.1111 + 64.1112 +\newcount{\@authori} 64.1113 + 64.1114 +\iffalse 64.1115 +\def \additionalauthors {% 64.1116 + \if \@gtrp{\@authorcount}{3}% 64.1117 + \section{Additional Authors}% 64.1118 + \label{@addauthors}% 64.1119 + \noindent 64.1120 + \@authori = 4 64.1121 + {\let \\ = ,% 64.1122 + \loop 64.1123 + \textbf{\@name{\@authorname\romannumeral\@authori}}, 64.1124 + \@name{\@authoraffil\romannumeral\@authori}, 64.1125 + email: \@name{\@authoremail\romannumeral\@authori}.% 64.1126 + \@increment \@authori 64.1127 + \if \@notp{\@gtrp{\@authori}{\@authorcount}} \repeat}% 64.1128 + \par 64.1129 + \fi 64.1130 + \global\@setflag \@addauthorsdone = \@true} 64.1131 +\fi 64.1132 + 64.1133 +\let \addauthorsection = \additionalauthors 64.1134 + 64.1135 +\def \@placetitlenotes { 64.1136 + \the\@titlenotetext} 64.1137 + 64.1138 +% Utilities 64.1139 +% --------- 64.1140 + 64.1141 + 64.1142 +\newcommand{\centeroncapheight}[1]{% 64.1143 + {\setbox\@tempboxa = \hbox{#1}% 64.1144 + \@measurecapheight{\@tempdima}% % Calculate ht(CAP) - ht(text) 64.1145 + \advance \@tempdima by -\ht\@tempboxa % ------------------ 64.1146 + \divide \@tempdima by 2 % 2 64.1147 + \raise \@tempdima \box\@tempboxa}} 64.1148 + 64.1149 +\newbox{\@measbox} 64.1150 + 64.1151 +\def \@measurecapheight #1{% {\dimen} 64.1152 + \setbox\@measbox = \hbox{ABCDEFGHIJKLMNOPQRSTUVWXYZ}% 64.1153 + #1 = \ht\@measbox} 64.1154 + 64.1155 +\long\def \@titlefootnote #1#2{% 64.1156 + \insert\footins{% 64.1157 + \reset@font\footnotesize 64.1158 + \interlinepenalty\interfootnotelinepenalty 64.1159 + \splittopskip\footnotesep 64.1160 + \splitmaxdepth \dp\strutbox \floatingpenalty \@MM 64.1161 + \hsize\columnwidth \@parboxrestore 64.1162 +%%% \protected@edef\@currentlabel{% 64.1163 +%%% \csname p@footnote\endcsname\@thefnmark}% 64.1164 + \color@begingroup 64.1165 + \def \@makefnmark {$^{#1}$}% 64.1166 + \@makefntext{% 64.1167 + \rule\z@\footnotesep\ignorespaces#2\@finalstrut\strutbox}% 64.1168 + \color@endgroup}} 64.1169 + 64.1170 +% LaTeX Modifications 64.1171 +% ----- ------------- 64.1172 + 64.1173 +\def \@seccntformat #1{% 64.1174 + \@name{\the#1}% 64.1175 + \@expandaftertwice\@seccntformata \csname the#1\endcsname.\@mark 64.1176 + \quad} 64.1177 + 64.1178 +\def \@seccntformata #1.#2\@mark{% 64.1179 + \if \@emptyargp{#2}.\fi} 64.1180 + 64.1181 +% Revision History 64.1182 +% -------- ------- 64.1183 + 64.1184 + 64.1185 +% Date Person Ver. Change 64.1186 +% ---- ------ ---- ------ 64.1187 + 64.1188 +% 2004.09.12 PCA 0.1--5 Preliminary development. 64.1189 + 64.1190 +% 2004.11.18 PCA 0.5 Start beta testing. 64.1191 + 64.1192 +% 2004.11.19 PCA 0.6 Obsolete \author and replace with 64.1193 +% \authorinfo. 64.1194 +% Add 'nocopyrightspace' option. 64.1195 +% Compress article opener spacing. 64.1196 +% Add 'mathtime' option. 64.1197 +% Increase text height by 6 points. 64.1198 + 64.1199 +% 2004.11.28 PCA 0.7 Add 'cm/computermodern' options. 64.1200 +% Change default to Times text. 64.1201 + 64.1202 +% 2004.12.14 PCA 0.8 Remove use of mathptm.sty; it cannot 64.1203 +% coexist with latexsym or amssymb. 64.1204 + 64.1205 +% 2005.01.20 PCA 0.9 Rename class file to sigplanconf.cls. 64.1206 + 64.1207 +% 2005.03.05 PCA 0.91 Change default copyright data. 64.1208 + 64.1209 +% 2005.03.06 PCA 0.92 Add at-signs to some macro names. 64.1210 + 64.1211 +% 2005.03.07 PCA 0.93 The 'onecolumn' option defaults to '11pt', 64.1212 +% and it uses the full type width. 64.1213 + 64.1214 +% 2005.03.15 PCA 0.94 Add at-signs to more macro names. 64.1215 +% Allow margin paragraphs during review. 64.1216 + 64.1217 +% 2005.03.22 PCA 0.95 Implement \euro. 64.1218 +% Remove proof and newdef environments. 64.1219 + 64.1220 +% 2005.05.06 PCA 1.0 Eliminate 'onecolumn' option. 64.1221 +% Change footer to small italic and eliminate 64.1222 +% left portion if no \preprintfooter. 64.1223 +% Eliminate copyright notice if preprint. 64.1224 +% Clean up and shrink copyright box. 64.1225 + 64.1226 +% 2005.05.30 PCA 1.1 Add alternate permission statements. 64.1227 + 64.1228 +% 2005.06.29 PCA 1.1 Publish final first edition of guide. 64.1229 + 64.1230 +% 2005.07.14 PCA 1.2 Add \subparagraph. 64.1231 +% Use block paragraphs in lists, and adjust 64.1232 +% spacing between items and paragraphs. 64.1233 + 64.1234 +% 2006.06.22 PCA 1.3 Add 'reprint' option and associated 64.1235 +% commands. 64.1236 + 64.1237 +% 2006.08.24 PCA 1.4 Fix bug in \maketitle case command. 64.1238 + 64.1239 +% 2007.03.13 PCA 1.5 The title banner only displays with the 64.1240 +% 'preprint' option. 64.1241 + 64.1242 +% 2007.06.06 PCA 1.6 Use \bibfont in \thebibliography. 64.1243 +% Add 'natbib' option to load and configure 64.1244 +% the natbib package. 64.1245 + 64.1246 +% 2007.11.20 PCA 1.7 Balance line lengths in centered article 64.1247 +% title (thanks to Norman Ramsey). 64.1248 + 64.1249 +% 2009.01.26 PCA 1.8 Change natbib \bibpunct values. 64.1250 + 64.1251 +% 2009.03.24 PCA 1.9 Change natbib to use the 'numbers' option. 64.1252 +% Change templates to use 'natbib' option. 64.1253 + 64.1254 +% 2009.09.01 PCA 2.0 Add \reprintprice command (suggested by 64.1255 +% Stephen Chong). 64.1256 + 64.1257 +% 2009.09.08 PCA 2.1 Make 'natbib' the default; add 'nonatbib'. 64.1258 +% SB Add 'authoryear' and 'numbers' (default) to 64.1259 +% control citation style when using natbib. 64.1260 +% Add \bibpunct to change punctuation for 64.1261 +% 'authoryear' style. 64.1262 + 64.1263 +% 2009.09.21 PCA 2.2 Add \softraggedright to the thebibliography 64.1264 +% environment. Also add to template so it will 64.1265 +% happen with natbib. 64.1266 + 64.1267 +% 2009.09.30 PCA 2.3 Remove \softraggedright from thebibliography. 64.1268 +% Just include in the template. 64.1269 + 64.1270 +% 2010.05.24 PCA 2.4 Obfuscate author's email address. 64.1271 + 64.1272 +% 2011.11.08 PCA 2.5 Add copyright notice to this file. 64.1273 +% Remove 'sort' option from natbib when using 64.1274 +% 'authoryear' style. 64.1275 +% Add the \authorversion command. 64.1276 +
65.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 65.2 +++ b/0__Papers/PRT/PRT__formal_def/latex/url.sty Sat Aug 03 19:24:22 2013 -0700 65.3 @@ -0,0 +1,325 @@ 65.4 +% url.sty ver 1.4 02-Mar-1999 Donald Arseneau asnd@triumf.ca 65.5 +% Copyright 1996-1999 Donald Arseneau, Vancouver, Canada. 65.6 +% This program can be used, distributed, and modified under the terms 65.7 +% of the LaTeX Project Public License. 65.8 +% 65.9 +% A form of \verb that allows linebreaks at certain characters or 65.10 +% combinations of characters, accepts reconfiguration, and can usually 65.11 +% be used in the argument to another command. It is intended for email 65.12 +% addresses, hypertext links, directories/paths, etc., which normally 65.13 +% have no spaces. The font may be selected using the \urlstyle command, 65.14 +% and new url-like commands can be defined using \urldef. 65.15 +% 65.16 +% Usage: Conditions: 65.17 +% \url{ } If the argument contains any "%", "#", or "^^", or ends with 65.18 +% "\", it can't be used in the argument to another command. 65.19 +% The argument must not contain unbalanced braces. 65.20 +% \url| | ...where "|" is any character not used in the argument and not 65.21 +% "{" or a space. The same restrictions as above except that the 65.22 +% argument may contain unbalanced braces. 65.23 +% \xyz for "\xyz" a defined-url; this can be used anywhere, no matter 65.24 +% what characters it contains. 65.25 +% 65.26 +% See further instructions after "\endinput" 65.27 +% 65.28 +\def\Url@ttdo{% style assignments for tt fonts or T1 encoding 65.29 +\def\UrlBreaks{\do\.\do\@\do\\\do\/\do\!\do\_\do\|\do\%\do\;\do\>\do\]% 65.30 + \do\)\do\,\do\?\do\'\do\+\do\=}% 65.31 +\def\UrlBigBreaks{\do\:\do@url@hyp}% 65.32 +\def\UrlNoBreaks{\do\(\do\[\do\{\do\<}% (unnecessary) 65.33 +\def\UrlSpecials{\do\ {\ }}% 65.34 +\def\UrlOrds{\do\*\do\-\do\~}% any ordinary characters that aren't usually 65.35 +} 65.36 +\def\Url@do{% style assignments for OT1 fonts except tt 65.37 +\def\UrlBreaks{\do\.\do\@\do\/\do\!\do\%\do\;\do\]\do\)\do\,\do\?\do\+\do\=}% 65.38 +\def\UrlBigBreaks{\do\:\do@url@hyp}% 65.39 +\def\UrlNoBreaks{\do\(\do\[\do\{}% prevents breaks after *next* character 65.40 +\def\UrlSpecials{\do\<{\langle}\do\>{\mathbin{\rangle}}\do\_{\_% 65.41 + \penalty\@m}\do\|{\mid}\do\{{\lbrace}\do\}{\mathbin{\rbrace}}\do 65.42 + \\{\mathbin{\backslash}}\do\~{\raise.6ex\hbox{\m@th$\scriptstyle\sim$}}\do 65.43 + \ {\ }}% 65.44 +\def\UrlOrds{\do\'\do\"\do\-}% 65.45 +} 65.46 +\def\url@ttstyle{% 65.47 +\@ifundefined{selectfont}{\def\UrlFont{\tt}}{\def\UrlFont{\ttfamily}}\Url@ttdo 65.48 +} 65.49 +\def\url@rmstyle{% 65.50 +\@ifundefined{selectfont}{\def\UrlFont{\rm}}{\def\UrlFont{\rmfamily}}\Url@do 65.51 +} 65.52 +\def\url@sfstyle{% 65.53 +\@ifundefined{selectfont}{\def\UrlFont{\sf}}{\def\UrlFont{\sffamily}}\Url@do 65.54 +} 65.55 +\def\url@samestyle{\ifdim\fontdimen\thr@@\font=\z@ \url@ttstyle \else 65.56 + \url@rmstyle \fi \def\UrlFont{}} 65.57 + 65.58 +\@ifundefined{strip@prefix}{\def\strip@prefix#1>{}}{} 65.59 +\@ifundefined{verbatim@nolig@list}{\def\verbatim@nolig@list{\do\`}}{} 65.60 + 65.61 +\def\Url{% 65.62 + \begingroup \let\url@moving\relax\relax \endgroup 65.63 + \ifmmode\@nomatherr$\fi 65.64 + \UrlFont $\fam\z@ \textfont\z@\font 65.65 + \let\do\@makeother \dospecials % verbatim catcodes 65.66 + \catcode`{\@ne \catcode`}\tw@ \catcode`\ 10 % except braces and spaces 65.67 + \medmuskip0mu \thickmuskip\medmuskip \thinmuskip\medmuskip 65.68 + \@tempcnta\fam\multiply\@tempcnta\@cclvi 65.69 + \let\do\set@mathcode \UrlOrds % ordinary characters that were special 65.70 + \advance\@tempcnta 8192 \UrlBreaks % bin 65.71 + \advance\@tempcnta 4096 \UrlBigBreaks % rel 65.72 + \advance\@tempcnta 4096 \UrlNoBreaks % open 65.73 + \let\do\set@mathact \UrlSpecials % active 65.74 + \let\do\set@mathnolig \verbatim@nolig@list % prevent ligatures 65.75 + \@ifnextchar\bgroup\Url@z\Url@y} 65.76 + 65.77 +\def\Url@y#1{\catcode`{11 \catcode`}11 65.78 + \def\@tempa##1#1{\Url@z{##1}}\@tempa} 65.79 +\def\Url@z#1{\def\@tempa{#1}\expandafter\expandafter\expandafter\Url@Hook 65.80 + \expandafter\strip@prefix\meaning\@tempa\UrlRight\m@th$\endgroup} 65.81 +\def\Url@Hook{\UrlLeft} 65.82 +\let\UrlRight\@empty 65.83 +\let\UrlLeft\@empty 65.84 + 65.85 +\def\set@mathcode#1{\count@`#1\advance\count@\@tempcnta\mathcode`#1\count@} 65.86 +\def\set@mathact#1#2{\mathcode`#132768 \lccode`\~`#1\lowercase{\def~{#2}}} 65.87 +\def\set@mathnolig#1{\ifnum\mathcode`#1<32768 65.88 + \lccode`\~`#1\lowercase{\edef~{\mathchar\number\mathcode`#1_{\/}}}% 65.89 + \mathcode`#132768 \fi} 65.90 + 65.91 +\def\urldef#1#2{\begingroup \setbox\z@\hbox\bgroup 65.92 + \def\Url@z{\Url@def{#1}{#2}}#2} 65.93 +\expandafter\ifx\csname DeclareRobustCommand\endcsname\relax 65.94 + \def\Url@def#1#2#3{\m@th$\endgroup\egroup\endgroup 65.95 + \def#1{#2{#3}}} 65.96 +\else 65.97 + \def\Url@def#1#2#3{\m@th$\endgroup\egroup\endgroup 65.98 + \DeclareRobustCommand{#1}{#2{#3}}} 65.99 +\fi 65.100 + 65.101 +\def\urlstyle#1{\csname url@#1style\endcsname} 65.102 + 65.103 +% Sample (and default) configuration: 65.104 +% 65.105 +\newcommand\url{\begingroup \Url} 65.106 +% 65.107 +% picTeX defines \path, so declare it optionally: 65.108 +\@ifundefined{path}{\newcommand\path{\begingroup \urlstyle{tt}\Url}}{} 65.109 +% 65.110 +% too many styles define \email like \address, so I will not define it. 65.111 +% \newcommand\email{\begingroup \urlstyle{rm}\Url} 65.112 + 65.113 +% Process LaTeX \package options 65.114 +% 65.115 +\urlstyle{tt} 65.116 +\let\Url@sppen\@M 65.117 +\def\do@url@hyp{}% by default, no breaks after hyphens 65.118 + 65.119 +\@ifundefined{ProvidesPackage}{}{ 65.120 + \ProvidesPackage{url}[1999/03/02 \space ver 1.4 \space 65.121 + Verb mode for urls, email addresses, and file names] 65.122 + \DeclareOption{hyphens}{\def\do@url@hyp{\do\-}}% allow breaks after hyphens 65.123 + \DeclareOption{obeyspaces}{\let\Url@Hook\relax}% a flag for later 65.124 + \DeclareOption{spaces}{\let\Url@sppen\relpenalty} 65.125 + \DeclareOption{T1}{\let\Url@do\Url@ttdo} 65.126 + \ProcessOptions 65.127 +\ifx\Url@Hook\relax % [obeyspaces] was declared 65.128 + \def\Url@Hook#1\UrlRight\m@th{\edef\@tempa{\noexpand\UrlLeft 65.129 + \Url@retain#1\Url@nosp\, }\@tempa\UrlRight\m@th} 65.130 + \def\Url@retain#1 {#1\penalty\Url@sppen\ \Url@retain} 65.131 + \def\Url@nosp\,#1\Url@retain{} 65.132 +\fi 65.133 +} 65.134 + 65.135 +\edef\url@moving{\csname Url Error\endcsname} 65.136 +\expandafter\edef\url@moving 65.137 + {\csname url used in a moving argument.\endcsname} 65.138 +\expandafter\expandafter\expandafter \let \url@moving\undefined 65.139 + 65.140 +\endinput 65.141 +% 65.142 +% url.sty ver 1.4 02-Mar-1999 Donald Arseneau asnd@reg.triumf.ca 65.143 +% 65.144 +% This package defines "\url", a form of "\verb" that allows linebreaks, 65.145 +% and can often be used in the argument to another command. It can be 65.146 +% configured to print in different formats, and is particularly useful for 65.147 +% hypertext links, email addresses, directories/paths, etc. The font may 65.148 +% be selected using the "\urlstyle" command and pre-defined text can be 65.149 +% stored with the "\urldef" command. New url-like commands can be defined, 65.150 +% and a "\path" command is provided this way. 65.151 +% 65.152 +% Usage: Conditions: 65.153 +% \url{ } If the argument contains any "%", "#", or "^^", or ends with 65.154 +% "\", it can't be used in the argument to another command. 65.155 +% The argument must not contain unbalanced braces. 65.156 +% \url| | ...where "|" is any character not used in the argument and not 65.157 +% "{" or a space. The same restrictions as above except that the 65.158 +% argument may contain unbalanced braces. 65.159 +% \xyz for "\xyz" a defined-url; this can be used anywhere, no matter 65.160 +% what characters it contains. 65.161 +% 65.162 +% The "\url" command is fragile, and its argument is likely to be very 65.163 +% fragile, but a defined-url is robust. 65.164 +% 65.165 +% Package Option: obeyspaces 65.166 +% Ordinarily, all spaces are ignored in the url-text. The "[obeyspaces]" 65.167 +% option allows spaces, but may introduce spurious spaces when a url 65.168 +% containing "\" characters is given in the argument to another command. 65.169 +% So if you need to obey spaces you can say "\usepackage[obeyspaces]{url}", 65.170 +% and if you need both spaces and backslashes, use a `defined-url' for 65.171 +% anything with "\". 65.172 +% 65.173 +% Package Option: hyphens 65.174 +% Ordinarily, breaks are not allowed after "-" characters because this 65.175 +% leads to confusion. (Is the "-" part of the address or just a hyphen?) 65.176 +% The package option "[hyphens]" allows breaks after explicit hyphen 65.177 +% characters. The "\url" command will *never ever* hyphenate words. 65.178 +% 65.179 +% Package Option: spaces 65.180 +% Likewise, breaks are not usually allowed after spaces under the 65.181 +% "[obeyspaces]" option, but giving the options "[obeyspaces,spaces]" 65.182 +% will allow breaks at those spaces. 65.183 +% 65.184 +% Package Option: T1 65.185 +% This signifies that you will be using T1-encoded fonts which contain 65.186 +% some characters missing from most older (OT1) encoded TeX fonts. This 65.187 +% changes the default definition for "\urlstyle{rm}". 65.188 +% 65.189 +% Defining a defined-url: 65.190 +% Take for example the email address "myself%node@gateway.net" which could 65.191 +% not be given (using "\url" or "\verb") in a caption or parbox due to the 65.192 +% percent sign. This address can be predefined with 65.193 +% \urldef{\myself}\url{myself%node@gateway.net} or 65.194 +% \urldef{\myself}\url|myself%node@gateway.net| 65.195 +% and then you may use "\myself" instead of "\url{myself%node@gateway.net}" 65.196 +% in an argument, and even in a moving argument like a caption because a 65.197 +% defined-url is robust. 65.198 +% 65.199 +% Style: 65.200 +% You can switch the style of printing using "\urlstyle{tt}", where "tt" 65.201 +% can be any defined style. The pre-defined styles are "tt", "rm", "sf", 65.202 +% and "same" which all allow the same linebreaks but different fonts -- 65.203 +% the first three select a specific font and the "same" style uses the 65.204 +% current text font. You can define your own styles with different fonts 65.205 +% and/or line-breaking by following the explanations below. The "\url" 65.206 +% command follows whatever the currently-set style dictates. 65.207 +% 65.208 +% Alternate commands: 65.209 +% It may be desireable to have different things treated differently, each 65.210 +% in a predefined style; e.g., if you want directory paths to always be 65.211 +% in tt and email addresses to be rm, then you would define new url-like 65.212 +% commands as follows: 65.213 +% 65.214 +% \newcommand\email{\begingroup \urlstyle{rm}\Url} 65.215 +% \newcommand\directory{\begingroup \urlstyle{tt}\Url} 65.216 +% 65.217 +% You must follow this format closely, and NOTE that the final command is 65.218 +% "\Url", not "\url". In fact, the "\directory" example is exactly the 65.219 +% "\path" definition which is pre-defined in the package. If you look 65.220 +% above, you will see that "\url" is defined with 65.221 +% \newcommand\url{\begingroup \Url} 65.222 +% I.e., using whatever url-style has been selected. 65.223 +% 65.224 +% You can make a defined-url for these other styles, using the usual 65.225 +% "\urldef" command as in this example: 65.226 +% 65.227 +% \urldef{\myself}{\email}{myself%node.domain@gateway.net} 65.228 +% 65.229 +% which makes "\myself" act like "\email{myself%node.domain@gateway.net}", 65.230 +% if the "\email" command is defined as above. The "\myself" command 65.231 +% would then be robust. 65.232 +% 65.233 +% Defining styles: 65.234 +% Before describing how to customize the printing style, it is best to 65.235 +% mention something about the unusual implementation of "\url". Although 65.236 +% the material is textual in nature, and the font specification required 65.237 +% is a text-font command, the text is actually typeset in *math* mode. 65.238 +% This allows the context-sensitive linebreaking, but also accounts for 65.239 +% the default behavior of ignoring spaces. Now on to defining styles. 65.240 +% 65.241 +% To change the font or the list of characters that allow linebreaks, you 65.242 +% could redefine the commands "\UrlFont", "\UrlBreaks", "\UrlSpecials" etc. 65.243 +% directly in the document, but it is better to define a new `url-style' 65.244 +% (following the example of "\url@ttstyle" and "\url@rmstyle") which defines 65.245 +% all of "\UrlBigbreaks", "\UrlNoBreaks", "\UrlBreaks", "\UrlSpecials", and 65.246 +% "\UrlFont". 65.247 +% 65.248 +% Changing font: 65.249 +% The "\UrlFont" command selects the font. The definition of "\UrlFont" 65.250 +% done by the pre-defined styles varies to cope with a variety of LaTeX 65.251 +% font selection schemes, but it could be as simple as "\def\UrlFont{\tt}". 65.252 +% Depending on the font selected, some characters may need to be defined 65.253 +% in the "\UrlSpecials" list because many fonts don't contain all the 65.254 +% standard input characters. 65.255 +% 65.256 +% Changing linebreaks: 65.257 +% The list of characters that allow line-breaks is given by "\UrlBreaks" 65.258 +% and "\UrlBigBreaks", which have the format "\do\c" for character "c". 65.259 +% The differences are that `BigBreaks' have a lower penalty and have 65.260 +% different breakpoints when in sequence (as in "http://"): `BigBreaks' 65.261 +% are treated as mathrels while `Breaks' are mathbins (see The TeXbook, 65.262 +% p.170). In particular, a series of `BigBreak' characters will break at 65.263 +% the end and only at the end; a series of `Break' characters will break 65.264 +% after the first and after every following *pair*; there will be no 65.265 +% break after a `Break' character if a `BigBreak' follows. In the case 65.266 +% of "http://" it doesn't matter whether ":" is a `Break' or `BigBreak' -- 65.267 +% the breaks are the same in either case; but for DECnet nodes with "::" 65.268 +% it is important to prevent breaks *between* the colons, and that is why 65.269 +% colons are `BigBreaks'. 65.270 +% 65.271 +% It is possible for characters to prevent breaks after the next following 65.272 +% character (I use this for parentheses). Specify these in "\UrlNoBreaks". 65.273 +% 65.274 +% You can do arbitrarily complex things with characters by making them 65.275 +% active in math mode (mathcode hex-8000) and specifying the definition(s) 65.276 +% in "\UrlSpecials". This is used in the rm and sf styles for OT1 font 65.277 +% encoding to handle several characters that are not present in those 65.278 +% computer-modern style fonts. See the definition of "\Url@do", which 65.279 +% is used by both "\url@rmstyle" and "\url@sfstyle"; it handles missing 65.280 +% characters via "\UrlSpecials". The nominal format for setting each 65.281 +% special character "c" is: "\do\c{<definition>}", but you can include 65.282 +% other definitions too. 65.283 +% 65.284 +% 65.285 +% If all this sounds confusing ... well, it is! But I hope you won't need 65.286 +% to redefine breakpoints -- the default assignments seem to work well for 65.287 +% a wide variety of applications. If you do need to make changes, you can 65.288 +% test for breakpoints using regular math mode and the characters "+=(a". 65.289 +% 65.290 +% Yet more flexibility: 65.291 +% You can also customize the verbatim text by defining "\UrlRight" and/or 65.292 +% "\UrlLeft", e.g., for ISO formatting of urls surrounded by "< >", define 65.293 +% 65.294 +% \renewcommand\url{\begingroup \def\UrlLeft{<url: }\def\UrlRight{>}% 65.295 +% \urlstyle{tt}\Url} 65.296 +% 65.297 +% The meanings of "\UrlLeft" and "\UrlRight" are *not* reproduced verbatim. 65.298 +% This lets you use formatting commands there, but you must be careful not 65.299 +% to use TeX's special characters ("\^_%~#$&{}" etc.) improperly. 65.300 +% You can also define "\UrlLeft" to reprocess the verbatim text, but the 65.301 +% format of the definition is special: 65.302 +% 65.303 +% \def\UrlLeft#1\UrlRight{ ... do things with #1 ... } 65.304 +% 65.305 +% Yes, that is "#1" followed by "\UrlRight" then the definition. For 65.306 +% example, to put a hyperTeX hypertext link in the DVI file: 65.307 +% 65.308 +% \def\UrlLeft#1\UrlRight{\special{html:<a href="#1">}#1\special{html:</a>}} 65.309 +% 65.310 +% Using this technique, url.sty can provide a convenient interface for 65.311 +% performing various operations on verbatim text. You don't even need 65.312 +% to print out the argument! For greatest efficiency in such obscure 65.313 +% applications, you can define a null url-style where all the lists like 65.314 +% "\UrlBreaks" are empty. 65.315 +% 65.316 +% Revision History: 65.317 +% ver 1.1 6-Feb-1996: 65.318 +% Fix hyphens that wouldn't break and ligatures that weren't suppressed. 65.319 +% ver 1.2 19-Oct-1996: 65.320 +% Package option for T1 encoding; Hooks: "\UrlLeft" and "\UrlRight". 65.321 +% ver 1.3 21-Jul-1997: 65.322 +% Prohibit spaces as delimiter characters; change ascii tilde in OT1. 65.323 +% ver 1.4 02-Mar-1999 65.324 +% LaTeX license; moving-argument-error 65.325 +% The End 65.326 + 65.327 +Test file integrity: ASCII 32-57, 58-126: !"#$%&'()*+,-./0123456789 65.328 +:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
66.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 66.2 +++ b/0__Papers/PRT/PRT__formal_def/latex/usetex-v1-anon.cls Sat Aug 03 19:24:22 2013 -0700 66.3 @@ -0,0 +1,363 @@ 66.4 +\NeedsTeXFormat{LaTeX2e} 66.5 +\ProvidesClass{usetex-v1-anon}[2002/10/31 v1.2 usetex Usenix article class] 66.6 + 66.7 +% usetex-v1.cls - to be used with LaTeX2e for Usenix articles 66.8 +% 66.9 +% To use this style file, do this: 66.10 +% 66.11 +% \documentclass{usetex-v1} 66.12 +% 66.13 +% The following definitions are modifications of standard article.cls 66.14 +% definitions, arranged to do a better job of matching the Usenix 66.15 +% guidelines. and make for convenient Usenix paper writing 66.16 +% 66.17 +% Choose the appropriate option: 66.18 +% 66.19 +% 1. workingdraft: 66.20 +% 66.21 +% For initial submission and shepherding. Features prominent 66.22 +% date, notice of draft status, page numbers, and annotation 66.23 +% facilities. 66.24 +% 66.25 +% 2. proof: 66.26 +% 66.27 +% A galley proof identical to the final copy except for page 66.28 +% numbering and proof date on the bottom. Annotations are 66.29 +% removed. 66.30 +% 66.31 +% 3. webversion: 66.32 +% 66.33 +% A web-publishable version, uses \docstatus{} to indicate 66.34 +% publication information (where and when paper was published), 66.35 +% and page numbers. 66.36 +% 66.37 +% 4. finalversion: 66.38 +% 66.39 +% The final camera-ready-copy (CRC) version of the paper. 66.40 +% Published in conference proceedings. This doesn't include 66.41 +% page numbers, annotations, or draft status (Usenix adds 66.42 +% headers, footers, and page numbers onto the CRC). 66.43 +% 66.44 +% If several are used, the last one in this list wins 66.45 +% 66.46 + 66.47 +% 66.48 +% In addition, the option "endnotes" permits the use of the 66.49 +% otherwise-disabled, Usenix-deprecated footnote{} command in 66.50 +% documents. In this case, be sure to include a 66.51 +% \makeendnotes command at the end of your document or 66.52 +% the endnotes will not actually appear. 66.53 +% 66.54 + 66.55 +\newif\if@draftcopy \newif\ifworkingdraft 66.56 +\DeclareOption{workingdraft}{\workingdrafttrue\@draftcopytrue} 66.57 +\newif\ifproof \DeclareOption{proof}{\prooftrue\@draftcopytrue} 66.58 +\newif\ifwebversion 66.59 +\DeclareOption{webversion}{\prooftrue\webversiontrue\@draftcopytrue} 66.60 +\DeclareOption{finalversion}{} 66.61 +\newif\ifhasendnotes 66.62 +\DeclareOption{endnotes}{\hasendnotestrue} 66.63 + 66.64 +% pass all other options to the article class 66.65 +\DeclareOption*{% 66.66 + \PassOptionsToClass{\CurrentOption}{article}% 66.67 +} 66.68 + 66.69 +% actually process the options 66.70 +\ProcessOptions 66.71 + 66.72 +% usetex is based on article 66.73 +\LoadClass[twocolumn]{article} 66.74 + 66.75 +% Footnotes are not currently allowed, but 66.76 +% endnotes (while a bad idea) are. 66.77 +\ifhasendnotes 66.78 + \RequirePackage{endnotes} 66.79 +\fi 66.80 + 66.81 +% save any provided document status information 66.82 +\def\@docstatus{} 66.83 +\def\docstatus#1{\gdef\@docstatus{#1}} 66.84 + 66.85 +\ifworkingdraft 66.86 + 66.87 + % formatting helper for draft notes 66.88 + \newcommand{\@noteleader[1]}{% 66.89 + {\marginpar{\framebox{\scriptsize\textbf{#1}}}}% 66.90 + \bfseries\itshape 66.91 + } 66.92 + 66.93 + % put a small anonymous editing note in the draft copy 66.94 + \newcommand{\edannote}[1]{{\@noteleader[note] (#1)}} 66.95 + 66.96 + % put a small attributed editing note in the draft copy 66.97 + \newcommand{\edatnote}[2]{{\@noteleader[#1] #2}} 66.98 + 66.99 + % put an attributed editing note paragraph in the draft copy 66.100 + \newenvironment{ednote}[1] 66.101 + {\newcommand{\who}{#1}\@noteleader[\who]} 66.102 + 66.103 + % mark a spot where work has been left off for later 66.104 + \newcommand{\HERE}{% 66.105 + {\mbox{}\marginpar{\framebox{\textbf{here}}}}{\bf\ldots}} 66.106 + 66.107 +\else 66.108 + 66.109 + % dummy versions of editing commands to produce warnings 66.110 + 66.111 + \newcommand{\edannote}[1]{\@latex@warning 66.112 + {Leftover edannote command in final version ignored}} 66.113 + 66.114 + \newcommand{\edatnote}[1]{\@latex@warning 66.115 + {Leftover edatnote command in final version ignored}} 66.116 + 66.117 + \newsavebox{\@discard} 66.118 + \newenvironment{ednote}[1]{\@latex@warning 66.119 + {Leftover ednote environment in final version ignored}% 66.120 + \begin{lrbox}{\@discard}}{\end{lrbox}} 66.121 + 66.122 + \newcommand{\HERE}{\@latex@warning 66.123 + {Leftover HERE command in final version ignored}} 66.124 + 66.125 +\fi 66.126 + 66.127 +% set up the footers appropriately 66.128 +\def\@setfoot{% 66.129 + \ifwebversion 66.130 + % webversions get whatever status the author says 66.131 + \gdef\@evenfoot{\@docstatus \hfil \thepage}% 66.132 + \else 66.133 + % all other drafts get the standard draft footer 66.134 + \gdef\@evenfoot{\textbf{Draft:} \@draftdate\hfil \textbf{Page:} \thepage}% 66.135 + \fi 66.136 + \gdef\@oddfoot{\@evenfoot}% 66.137 +} 66.138 + 66.139 +% 66.140 +% Usenix wants no page numbers for submitted papers, so that 66.141 +% they can number them themselves. Drafts should have 66.142 +% numbered pages, so they can be edited. 66.143 +% 66.144 +\if@draftcopy 66.145 + % Compute a date and time for the draft for use 66.146 + % either in \@setfoot (proof) or in \maketitle (workingdraft) 66.147 + % 66.148 + % Time code adapted from custom-bib/makebst.tex 66.149 + % Copyright 1993-1999 Patrick W Daly 66.150 + % Max-Planck-Institut f\"ur Aeronomie 66.151 + % E-mail: daly@linmp.mpg.de 66.152 + \newcount\hour 66.153 + \hour=\time 66.154 + \divide\hour by 60 66.155 + \newcount\minute 66.156 + \minute=\hour 66.157 + \multiply\minute by 60 66.158 + \advance\minute by -\time 66.159 + \multiply\minute by -1 66.160 + \newcommand{\@draftdate} 66.161 + {{\the\year/\/\two@digits{\the\month}/\/\two@digits{\the\day}% 66.162 + ~\two@digits{\the\hour}:\two@digits{\the\minute}}} 66.163 + \pagestyle{plain} 66.164 + \@setfoot 66.165 +\else 66.166 + \pagestyle{empty} 66.167 +\fi 66.168 + 66.169 +% Times-Roman font is nice if you can get it (requires NFSS, 66.170 +% which is in latex2e). 66.171 +\usepackage{times} 66.172 + 66.173 +% endnote support, as described at 66.174 +% http://www.lyx.org/help/footnotes.php 66.175 +\ifhasendnotes 66.176 + \typeout 66.177 + {Warning: endnotes support is deprecated (see documentation for details)} 66.178 + \let\footnote=\endnote 66.179 + \def\enoteformat{\rightskip\z@ \leftskip\z@ 66.180 + \parindent=0pt\parskip=\baselineskip 66.181 + \@theenmark. } 66.182 + \newcommand{\makeendnotes}{ 66.183 + \begingroup 66.184 + \def\enotesize{\normalsize} 66.185 + \theendnotes 66.186 + \endgroup 66.187 + } 66.188 +\else 66.189 + \long\gdef\footnote{\@latex@error 66.190 + {Deprecated footnote command (see documentation for details)}} 66.191 + \long\gdef\endnote{\@latex@error 66.192 + {Deprecated endnote command (see documentation for details)}} 66.193 +\fi 66.194 + 66.195 +% 66.196 +% Usenix margins 66.197 +% Gives active areas of 6.45" x 9.0" 66.198 +% 66.199 +\setlength{\textheight}{9.0in} 66.200 +\setlength{\columnsep}{0.25in} 66.201 +\setlength{\textwidth}{6.45in} 66.202 +%\setlength{\footskip}{0.0in} 66.203 +%\setlength{\footheight}{0.0in} 66.204 +\setlength{\topmargin}{0.0in} 66.205 +\setlength{\headheight}{0.0in} 66.206 +\setlength{\headsep}{0.0in} 66.207 +\setlength{\evensidemargin}{0.0in} 66.208 +\setlength{\oddsidemargin}{0.0in} 66.209 +\setlength{\marginparsep}{1.5em} 66.210 +\setlength{\marginparwidth}{0.35in} 66.211 + 66.212 +% The standard maketitle insists on 66.213 +% messing with the style of the first page. 66.214 +% Thus, we will wrap maketitle with code to put 66.215 +% things right again. 66.216 +\let \save@maketitle=\maketitle 66.217 +\def\maketitle{ 66.218 + \save@maketitle 66.219 + \if@draftcopy 66.220 + \@specialpagefalse 66.221 + \else 66.222 + \thispagestyle{empty} 66.223 + \fi 66.224 +} 66.225 + 66.226 +% 66.227 +% Usenix titles are in 14-point bold type, with no date, and with no 66.228 +% change in the empty page headers. The author section is 66.229 +% 12 point roman and italic: see below. 66.230 +% 66.231 +\def\@maketitle{% 66.232 + \newpage 66.233 + \null 66.234 +% \vskip 3ex% 66.235 + \begin{center}% 66.236 +% \let \footnote \thanks 66.237 + {\Large \bf \@title \par}% % use 14 pt bold 66.238 +% \vskip 2ex% 66.239 + {\large 66.240 +% \lineskip .5ex% 66.241 +% \begin{tabular}[t]{c}% 66.242 +% \@author 66.243 +% \end{tabular}\par 66.244 + }% 66.245 + \ifworkingdraft 66.246 + \vskip 0.5ex 66.247 + \textbf{Draft of \@draftdate} 66.248 + \vskip 0.5ex 66.249 + \fi 66.250 + \ifwebversion 66.251 + \vskip 0.5ex 66.252 + \textit{Authors and affiliation elided for review.} 66.253 + \vskip 0.5ex 66.254 + \fi 66.255 + \end{center}% 66.256 + \par 66.257 +% \vskip 2ex 66.258 +} 66.259 + 66.260 +% 66.261 +% The author section 66.262 +% should have names in Roman, address in 66.263 +% italic, e-mail/http in typewriter. 66.264 +% This is enforced by use of these macros 66.265 +% 66.266 +\def\authname#1{{#1}\\} 66.267 +\def\authaddr#1{\itshape{#1}\\} 66.268 +\def\authurl#1{{\normalsize #1}\\} 66.269 + 66.270 +% 66.271 +% The abstract is preceded by a 12-pt bold centered heading 66.272 +% 66.273 +\def\abstract{\begin{center}% 66.274 + {\large\bf \abstractname\vspace{-.5ex}\vspace{\z@}}% 66.275 + \end{center}} 66.276 +\def\endabstract{} 66.277 + 66.278 +% 66.279 +% Main section titles are 12-pt bold. Lower divisions can 66.280 +% be same size or smaller: we choose same. 66.281 +% Main section leading is tight. Subsection leading is even 66.282 +% slightly tighter. All lower divisions are formatted like subsections. 66.283 +% 66.284 +\newcommand\@sectionfont{\reset@font\large\bf} 66.285 +\newlength\@sectionaboveskip 66.286 +\setlength\@sectionaboveskip{-0.7\baselineskip 66.287 + plus -0.1\baselineskip 66.288 + minus -0.1\baselineskip} 66.289 +\newlength\@sectionbelowskip 66.290 +\setlength\@sectionbelowskip{0.3\baselineskip 66.291 + plus 0.1\baselineskip} 66.292 +\newlength\@subsectionaboveskip 66.293 +\setlength\@subsectionaboveskip{-0.5\baselineskip 66.294 + plus -0.1\baselineskip} 66.295 +\renewcommand\section{\@startsection {section}{1}{\z@}% 66.296 + {\@sectionaboveskip}{\@sectionbelowskip}{\@sectionfont}} 66.297 +\newcommand\@gensubsection[2]{\@startsection {#1}{#2}{\z@}% 66.298 + {\@subsectionaboveskip}{\@sectionbelowskip}{\@sectionfont}} 66.299 +\renewcommand\subsection{\@gensubsection{subsection}{2}} 66.300 +\renewcommand\subsubsection{\@gensubsection{subsubsection}{3}} 66.301 +%\renewcommand\paragraph{\@gensubsection{paragraph}{4}} 66.302 +%\renewcommand\subparagraph{\@gensubsection{subparagaph}{5}} 66.303 +\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}% 66.304 + {1.25ex \@plus 0.2ex \@minus 0.2ex}% 66.305 + {-1.0em}% 66.306 + {\normalfont\normalsize\bfseries}} 66.307 +\renewcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}% 66.308 + {1.25ex \@plus 0.2ex \@minus 0.2ex}% 66.309 + {-1.0em}% 66.310 + {\normalfont\normalsize\bfseries}} 66.311 + 66.312 +% List items need to be tightened up. 66.313 +% There must be a better way than copying 66.314 +% the definitions to modify the list environment... 66.315 +\def\@itemspacings{\listparindent=\parindent 66.316 + \parsep=0pt\topsep=0.3\baselineskip\partopsep=0pt\itemsep=0pt} 66.317 +% now make envs use itemspacings 66.318 +\def\itemize{% 66.319 + \ifnum \@itemdepth >\thr@@\@toodeep\else 66.320 + \advance\@itemdepth\@ne 66.321 + \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% 66.322 + \expandafter 66.323 + \list 66.324 + \csname\@itemitem\endcsname 66.325 + {\@itemspacings\def\makelabel##1{\hss\llap{##1}}}% 66.326 + \fi} 66.327 +\def\enumerate{% 66.328 + \ifnum \@enumdepth >\thr@@\@toodeep\else 66.329 + \advance\@enumdepth\@ne 66.330 + \edef\@enumctr{enum\romannumeral\the\@enumdepth}% 66.331 + \expandafter 66.332 + \list 66.333 + \csname label\@enumctr\endcsname 66.334 + {\@itemspacings\usecounter\@enumctr\def\makelabel##1{\hss\llap{##1}}}% 66.335 + \fi} 66.336 +\def\description{% 66.337 + \list{}{\labelwidth\z@ \itemindent-\leftmargin 66.338 + \@itemspacings\let\makelabel\descriptionlabel}} 66.339 + 66.340 +% Bibliography items need to be tightened up. 66.341 +% Again, there must be a better way than copying 66.342 +% the definitions to modify the list environment... 66.343 +\def\thebibliography#1% 66.344 + {\section*{\refname}% 66.345 + \@mkboth{\MakeUppercase\refname}{\MakeUppercase\refname}% 66.346 + \list{\@biblabel{\@arabic\c@enumiv}}% 66.347 + {\settowidth\labelwidth{\@biblabel{#1}}% 66.348 + \leftmargin\labelwidth 66.349 + \advance\leftmargin\labelsep 66.350 + \@openbib@code 66.351 + \usecounter{enumiv}% 66.352 + \let\p@enumiv\@empty 66.353 + \renewcommand\theenumiv{\@arabic\c@enumiv}% 66.354 + \parsep=0pt}% pack entries 66.355 + \sloppy 66.356 + \hbadness=8000% mostly don't whine about bibliography fmt 66.357 + \clubpenalty=4000% 66.358 + \@clubpenalty=\clubpenalty 66.359 + \widowpenalty=4000% 66.360 + \sfcode`\.\@m} 66.361 + 66.362 +% Floating bodies need to be tightened up. 66.363 +\setlength\textfloatsep{14pt plus 2pt} 66.364 +\setlength\dbltextfloatsep{\textfloatsep} 66.365 +\setlength\intextsep{0.8\textfloatsep} 66.366 +\setlength\abovecaptionskip{8pt minus 2pt}
67.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 67.2 +++ b/0__Papers/PRT/PRT__formal_def/latex/usetex-v1.cls Sat Aug 03 19:24:22 2013 -0700 67.3 @@ -0,0 +1,357 @@ 67.4 +\NeedsTeXFormat{LaTeX2e} 67.5 +\ProvidesClass{usetex-v1}[2002/10/31 v1.2 usetex Usenix article class] 67.6 + 67.7 +% usetex-v1.cls - to be used with LaTeX2e for Usenix articles 67.8 +% 67.9 +% To use this style file, do this: 67.10 +% 67.11 +% \documentclass{usetex-v1} 67.12 +% 67.13 +% The following definitions are modifications of standard article.cls 67.14 +% definitions, arranged to do a better job of matching the Usenix 67.15 +% guidelines. and make for convenient Usenix paper writing 67.16 +% 67.17 +% Choose the appropriate option: 67.18 +% 67.19 +% 1. workingdraft: 67.20 +% 67.21 +% For initial submission and shepherding. Features prominent 67.22 +% date, notice of draft status, page numbers, and annotation 67.23 +% facilities. 67.24 +% 67.25 +% 2. proof: 67.26 +% 67.27 +% A galley proof identical to the final copy except for page 67.28 +% numbering and proof date on the bottom. Annotations are 67.29 +% removed. 67.30 +% 67.31 +% 3. webversion: 67.32 +% 67.33 +% A web-publishable version, uses \docstatus{} to indicate 67.34 +% publication information (where and when paper was published), 67.35 +% and page numbers. 67.36 +% 67.37 +% 4. finalversion: 67.38 +% 67.39 +% The final camera-ready-copy (CRC) version of the paper. 67.40 +% Published in conference proceedings. This doesn't include 67.41 +% page numbers, annotations, or draft status (Usenix adds 67.42 +% headers, footers, and page numbers onto the CRC). 67.43 +% 67.44 +% If several are used, the last one in this list wins 67.45 +% 67.46 + 67.47 +% 67.48 +% In addition, the option "endnotes" permits the use of the 67.49 +% otherwise-disabled, Usenix-deprecated footnote{} command in 67.50 +% documents. In this case, be sure to include a 67.51 +% \makeendnotes command at the end of your document or 67.52 +% the endnotes will not actually appear. 67.53 +% 67.54 + 67.55 +\newif\if@draftcopy \newif\ifworkingdraft 67.56 +\DeclareOption{workingdraft}{\workingdrafttrue\@draftcopytrue} 67.57 +\newif\ifproof \DeclareOption{proof}{\prooftrue\@draftcopytrue} 67.58 +\newif\ifwebversion 67.59 +\DeclareOption{webversion}{\prooftrue\webversiontrue\@draftcopytrue} 67.60 +\DeclareOption{finalversion}{} 67.61 +\newif\ifhasendnotes 67.62 +\DeclareOption{endnotes}{\hasendnotestrue} 67.63 + 67.64 +% pass all other options to the article class 67.65 +\DeclareOption*{% 67.66 + \PassOptionsToClass{\CurrentOption}{article}% 67.67 +} 67.68 + 67.69 +% actually process the options 67.70 +\ProcessOptions 67.71 + 67.72 +% usetex is based on article 67.73 +\LoadClass[twocolumn]{article} 67.74 + 67.75 +% Footnotes are not currently allowed, but 67.76 +% endnotes (while a bad idea) are. 67.77 +\ifhasendnotes 67.78 + \RequirePackage{endnotes} 67.79 +\fi 67.80 + 67.81 +% save any provided document status information 67.82 +\def\@docstatus{} 67.83 +\def\docstatus#1{\gdef\@docstatus{#1}} 67.84 + 67.85 +\ifworkingdraft 67.86 + 67.87 + % formatting helper for draft notes 67.88 + \newcommand{\@noteleader[1]}{% 67.89 + {\marginpar{\framebox{\scriptsize\textbf{#1}}}}% 67.90 + \bfseries\itshape 67.91 + } 67.92 + 67.93 + % put a small anonymous editing note in the draft copy 67.94 + \newcommand{\edannote}[1]{{\@noteleader[note] (#1)}} 67.95 + 67.96 + % put a small attributed editing note in the draft copy 67.97 + \newcommand{\edatnote}[2]{{\@noteleader[#1] #2}} 67.98 + 67.99 + % put an attributed editing note paragraph in the draft copy 67.100 + \newenvironment{ednote}[1] 67.101 + {\newcommand{\who}{#1}\@noteleader[\who]} 67.102 + 67.103 + % mark a spot where work has been left off for later 67.104 + \newcommand{\HERE}{% 67.105 + {\mbox{}\marginpar{\framebox{\textbf{here}}}}{\bf\ldots}} 67.106 + 67.107 +\else 67.108 + 67.109 + % dummy versions of editing commands to produce warnings 67.110 + 67.111 + \newcommand{\edannote}[1]{\@latex@warning 67.112 + {Leftover edannote command in final version ignored}} 67.113 + 67.114 + \newcommand{\edatnote}[1]{\@latex@warning 67.115 + {Leftover edatnote command in final version ignored}} 67.116 + 67.117 + \newsavebox{\@discard} 67.118 + \newenvironment{ednote}[1]{\@latex@warning 67.119 + {Leftover ednote environment in final version ignored}% 67.120 + \begin{lrbox}{\@discard}}{\end{lrbox}} 67.121 + 67.122 + \newcommand{\HERE}{\@latex@warning 67.123 + {Leftover HERE command in final version ignored}} 67.124 + 67.125 +\fi 67.126 + 67.127 +% set up the footers appropriately 67.128 +\def\@setfoot{% 67.129 + \ifwebversion 67.130 + % webversions get whatever status the author says 67.131 + \gdef\@evenfoot{\@docstatus \hfil \thepage}% 67.132 + \else 67.133 + % all other drafts get the standard draft footer 67.134 + \gdef\@evenfoot{\textbf{Draft:} \@draftdate\hfil \textbf{Page:} \thepage}% 67.135 + \fi 67.136 + \gdef\@oddfoot{\@evenfoot}% 67.137 +} 67.138 + 67.139 +% 67.140 +% Usenix wants no page numbers for submitted papers, so that 67.141 +% they can number them themselves. Drafts should have 67.142 +% numbered pages, so they can be edited. 67.143 +% 67.144 +\if@draftcopy 67.145 + % Compute a date and time for the draft for use 67.146 + % either in \@setfoot (proof) or in \maketitle (workingdraft) 67.147 + % 67.148 + % Time code adapted from custom-bib/makebst.tex 67.149 + % Copyright 1993-1999 Patrick W Daly 67.150 + % Max-Planck-Institut f\"ur Aeronomie 67.151 + % E-mail: daly@linmp.mpg.de 67.152 + \newcount\hour 67.153 + \hour=\time 67.154 + \divide\hour by 60 67.155 + \newcount\minute 67.156 + \minute=\hour 67.157 + \multiply\minute by 60 67.158 + \advance\minute by -\time 67.159 + \multiply\minute by -1 67.160 + \newcommand{\@draftdate} 67.161 + {{\the\year/\/\two@digits{\the\month}/\/\two@digits{\the\day}% 67.162 + ~\two@digits{\the\hour}:\two@digits{\the\minute}}} 67.163 + \pagestyle{plain} 67.164 + \@setfoot 67.165 +\else 67.166 + \pagestyle{empty} 67.167 +\fi 67.168 + 67.169 +% Times-Roman font is nice if you can get it (requires NFSS, 67.170 +% which is in latex2e). 67.171 +\usepackage{times} 67.172 + 67.173 +% endnote support, as described at 67.174 +% http://www.lyx.org/help/footnotes.php 67.175 +\ifhasendnotes 67.176 + \typeout 67.177 + {Warning: endnotes support is deprecated (see documentation for details)} 67.178 + \let\footnote=\endnote 67.179 + \def\enoteformat{\rightskip\z@ \leftskip\z@ 67.180 + \parindent=0pt\parskip=\baselineskip 67.181 + \@theenmark. } 67.182 + \newcommand{\makeendnotes}{ 67.183 + \begingroup 67.184 + \def\enotesize{\normalsize} 67.185 + \theendnotes 67.186 + \endgroup 67.187 + } 67.188 +\else 67.189 + \long\gdef\footnote{\@latex@error 67.190 + {Deprecated footnote command (see documentation for details)}} 67.191 + \long\gdef\endnote{\@latex@error 67.192 + {Deprecated endnote command (see documentation for details)}} 67.193 +\fi 67.194 + 67.195 +% 67.196 +% Usenix margins 67.197 +% Gives active areas of 6.45" x 9.0" 67.198 +% 67.199 +\setlength{\textheight}{9.0in} 67.200 +\setlength{\columnsep}{0.25in} 67.201 +\setlength{\textwidth}{6.45in} 67.202 +%\setlength{\footskip}{0.0in} 67.203 +%\setlength{\footheight}{0.0in} 67.204 +\setlength{\topmargin}{0.0in} 67.205 +\setlength{\headheight}{0.0in} 67.206 +\setlength{\headsep}{0.0in} 67.207 +\setlength{\evensidemargin}{0.0in} 67.208 +\setlength{\oddsidemargin}{0.0in} 67.209 +\setlength{\marginparsep}{1.5em} 67.210 +\setlength{\marginparwidth}{0.35in} 67.211 + 67.212 +% The standard maketitle insists on 67.213 +% messing with the style of the first page. 67.214 +% Thus, we will wrap maketitle with code to put 67.215 +% things right again. 67.216 +\let \save@maketitle=\maketitle 67.217 +\def\maketitle{ 67.218 + \save@maketitle 67.219 + \if@draftcopy 67.220 + \@specialpagefalse 67.221 + \else 67.222 + \thispagestyle{empty} 67.223 + \fi 67.224 +} 67.225 + 67.226 +% 67.227 +% Usenix titles are in 14-point bold type, with no date, and with no 67.228 +% change in the empty page headers. The author section is 67.229 +% 12 point roman and italic: see below. 67.230 +% 67.231 +\def\@maketitle{% 67.232 + \newpage 67.233 + \null 67.234 + \vskip 3ex% 67.235 + \begin{center}% 67.236 + \let \footnote \thanks 67.237 + {\Large \bf \@title \par}% % use 14 pt bold 67.238 + \vskip 2ex% 67.239 + {\large 67.240 + \lineskip .5ex% 67.241 + \begin{tabular}[t]{c}% 67.242 + \@author 67.243 + \end{tabular}\par}% 67.244 + \ifworkingdraft 67.245 + \vskip 3ex \textbf{Draft of \@draftdate} \vskip 3ex 67.246 + \fi 67.247 + \ifwebversion 67.248 + \vskip 3ex \textbf{\@docstatus} \vskip 3ex 67.249 + \fi 67.250 + \end{center}% 67.251 + \par 67.252 + \vskip 2ex} 67.253 + 67.254 +% 67.255 +% The author section 67.256 +% should have names in Roman, address in 67.257 +% italic, e-mail/http in typewriter. 67.258 +% This is enforced by use of these macros 67.259 +% 67.260 +\def\authname#1{{#1}\\} 67.261 +\def\authaddr#1{\itshape{#1}\\} 67.262 +\def\authurl#1{{\normalsize #1}\\} 67.263 + 67.264 +% 67.265 +% The abstract is preceded by a 12-pt bold centered heading 67.266 +% 67.267 +\def\abstract{\begin{center}% 67.268 + {\large\bf \abstractname\vspace{-.5ex}\vspace{\z@}}% 67.269 + \end{center}} 67.270 +\def\endabstract{} 67.271 + 67.272 +% 67.273 +% Main section titles are 12-pt bold. Lower divisions can 67.274 +% be same size or smaller: we choose same. 67.275 +% Main section leading is tight. Subsection leading is even 67.276 +% slightly tighter. All lower divisions are formatted like subsections. 67.277 +% 67.278 +\newcommand\@sectionfont{\reset@font\large\bf} 67.279 +\newlength\@sectionaboveskip 67.280 +\setlength\@sectionaboveskip{-0.7\baselineskip 67.281 + plus -0.1\baselineskip 67.282 + minus -0.1\baselineskip} 67.283 +\newlength\@sectionbelowskip 67.284 +\setlength\@sectionbelowskip{0.3\baselineskip 67.285 + plus 0.1\baselineskip} 67.286 +\newlength\@subsectionaboveskip 67.287 +\setlength\@subsectionaboveskip{-0.5\baselineskip 67.288 + plus -0.1\baselineskip} 67.289 +\renewcommand\section{\@startsection {section}{1}{\z@}% 67.290 + {\@sectionaboveskip}{\@sectionbelowskip}{\@sectionfont}} 67.291 +\newcommand\@gensubsection[2]{\@startsection {#1}{#2}{\z@}% 67.292 + {\@subsectionaboveskip}{\@sectionbelowskip}{\@sectionfont}} 67.293 +\renewcommand\subsection{\@gensubsection{subsection}{2}} 67.294 +\renewcommand\subsubsection{\@gensubsection{subsubsection}{3}} 67.295 +%\renewcommand\paragraph{\@gensubsection{paragraph}{4}} 67.296 +%\renewcommand\subparagraph{\@gensubsection{subparagaph}{5}} 67.297 +\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}% 67.298 + {1.25ex \@plus 0.2ex \@minus 0.2ex}% 67.299 + {-1.0em}% 67.300 + {\normalfont\normalsize\bfseries}} 67.301 +\renewcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}% 67.302 + {1.25ex \@plus 0.2ex \@minus 0.2ex}% 67.303 + {-1.0em}% 67.304 + {\normalfont\normalsize\bfseries}} 67.305 + 67.306 +% List items need to be tightened up. 67.307 +% There must be a better way than copying 67.308 +% the definitions to modify the list environment... 67.309 +\def\@itemspacings{\listparindent=\parindent 67.310 + \parsep=0pt\topsep=0.3\baselineskip\partopsep=0pt\itemsep=0pt} 67.311 +% now make envs use itemspacings 67.312 +\def\itemize{% 67.313 + \ifnum \@itemdepth >\thr@@\@toodeep\else 67.314 + \advance\@itemdepth\@ne 67.315 + \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% 67.316 + \expandafter 67.317 + \list 67.318 + \csname\@itemitem\endcsname 67.319 + {\@itemspacings\def\makelabel##1{\hss\llap{##1}}}% 67.320 + \fi} 67.321 +\def\enumerate{% 67.322 + \ifnum \@enumdepth >\thr@@\@toodeep\else 67.323 + \advance\@enumdepth\@ne 67.324 + \edef\@enumctr{enum\romannumeral\the\@enumdepth}% 67.325 + \expandafter 67.326 + \list 67.327 + \csname label\@enumctr\endcsname 67.328 + {\@itemspacings\usecounter\@enumctr\def\makelabel##1{\hss\llap{##1}}}% 67.329 + \fi} 67.330 +\def\description{% 67.331 + \list{}{\labelwidth\z@ \itemindent-\leftmargin 67.332 + \@itemspacings\let\makelabel\descriptionlabel}} 67.333 + 67.334 +% Bibliography items need to be tightened up. 67.335 +% Again, there must be a better way than copying 67.336 +% the definitions to modify the list environment... 67.337 +\def\thebibliography#1% 67.338 + {\section*{\refname}% 67.339 + \@mkboth{\MakeUppercase\refname}{\MakeUppercase\refname}% 67.340 + \list{\@biblabel{\@arabic\c@enumiv}}% 67.341 + {\settowidth\labelwidth{\@biblabel{#1}}% 67.342 + \leftmargin\labelwidth 67.343 + \advance\leftmargin\labelsep 67.344 + \@openbib@code 67.345 + \usecounter{enumiv}% 67.346 + \let\p@enumiv\@empty 67.347 + \renewcommand\theenumiv{\@arabic\c@enumiv}% 67.348 + \parsep=0pt}% pack entries 67.349 + \sloppy 67.350 + \hbadness=8000% mostly don't whine about bibliography fmt 67.351 + \clubpenalty=4000% 67.352 + \@clubpenalty=\clubpenalty 67.353 + \widowpenalty=4000% 67.354 + \sfcode`\.\@m} 67.355 + 67.356 +% Floating bodies need to be tightened up. 67.357 +\setlength\textfloatsep{14pt plus 2pt} 67.358 +\setlength\dbltextfloatsep{\textfloatsep} 67.359 +\setlength\intextsep{0.8\textfloatsep} 67.360 +\setlength\abovecaptionskip{8pt minus 2pt}
68.1 Binary file 0__Papers/VMS/Pics_from_talks/13_Ap_12__Arbab_proto_runtime__whiteboard.jpg has changed
69.1 Binary file 0__Papers/VMS/Pics_from_talks/13_Ap_12__Arbab_whiteboard_timelines_tie_points.jpg has changed
70.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 70.2 +++ b/0__Papers/VMS/VMS__Foundation_Paper/VMS__Full_conference_version/figures/PR__system_level_activity.svg Sat Aug 03 19:24:22 2013 -0700 70.3 @@ -0,0 +1,2923 @@ 70.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 70.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 70.6 + 70.7 +<svg 70.8 + xmlns:dc="http://purl.org/dc/elements/1.1/" 70.9 + xmlns:cc="http://creativecommons.org/ns#" 70.10 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 70.11 + xmlns:svg="http://www.w3.org/2000/svg" 70.12 + xmlns="http://www.w3.org/2000/svg" 70.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 70.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 70.15 + width="744.09448819" 70.16 + height="1052.3622047" 70.17 + id="svg2" 70.18 + sodipodi:version="0.32" 70.19 + inkscape:version="0.48.2 r9819" 70.20 + sodipodi:docname="PR__system_level_activity.svg" 70.21 + inkscape:output_extension="org.inkscape.output.svg.inkscape" 70.22 + version="1.1"> 70.23 + <defs 70.24 + id="defs4"> 70.25 + <marker 70.26 + inkscape:stockid="Arrow2Mend" 70.27 + orient="auto" 70.28 + refY="0.0" 70.29 + refX="0.0" 70.30 + id="Arrow2Mend" 70.31 + style="overflow:visible;"> 70.32 + <path 70.33 + id="path4008" 70.34 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 70.35 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 70.36 + transform="scale(0.6) rotate(180) translate(0,0)" /> 70.37 + </marker> 70.38 + <inkscape:perspective 70.39 + sodipodi:type="inkscape:persp3d" 70.40 + inkscape:vp_x="0 : 526.18109 : 1" 70.41 + inkscape:vp_y="0 : 1000 : 0" 70.42 + inkscape:vp_z="744.09448 : 526.18109 : 1" 70.43 + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" 70.44 + id="perspective10" /> 70.45 + <inkscape:perspective 70.46 + id="perspective12172" 70.47 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 70.48 + inkscape:vp_z="1 : 0.5 : 1" 70.49 + inkscape:vp_y="0 : 1000 : 0" 70.50 + inkscape:vp_x="0 : 0.5 : 1" 70.51 + sodipodi:type="inkscape:persp3d" /> 70.52 + <inkscape:perspective 70.53 + id="perspective12937" 70.54 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 70.55 + inkscape:vp_z="1 : 0.5 : 1" 70.56 + inkscape:vp_y="0 : 1000 : 0" 70.57 + inkscape:vp_x="0 : 0.5 : 1" 70.58 + sodipodi:type="inkscape:persp3d" /> 70.59 + </defs> 70.60 + <sodipodi:namedview 70.61 + id="base" 70.62 + pagecolor="#ffffff" 70.63 + bordercolor="#666666" 70.64 + borderopacity="1.0" 70.65 + gridtolerance="10000" 70.66 + guidetolerance="10" 70.67 + objecttolerance="10" 70.68 + inkscape:pageopacity="0.0" 70.69 + inkscape:pageshadow="2" 70.70 + inkscape:zoom="1.4897651" 70.71 + inkscape:cx="290.73583" 70.72 + inkscape:cy="795.84567" 70.73 + inkscape:document-units="px" 70.74 + inkscape:current-layer="layer1" 70.75 + showgrid="false" 70.76 + inkscape:window-width="1600" 70.77 + inkscape:window-height="848" 70.78 + inkscape:window-x="-8" 70.79 + inkscape:window-y="-8" 70.80 + inkscape:window-maximized="1" /> 70.81 + <metadata 70.82 + id="metadata7"> 70.83 + <rdf:RDF> 70.84 + <cc:Work 70.85 + rdf:about=""> 70.86 + <dc:format>image/svg+xml</dc:format> 70.87 + <dc:type 70.88 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 70.89 + <dc:title></dc:title> 70.90 + </cc:Work> 70.91 + </rdf:RDF> 70.92 + </metadata> 70.93 + <g 70.94 + inkscape:label="Layer 1" 70.95 + inkscape:groupmode="layer" 70.96 + id="layer1"> 70.97 + <text 70.98 + sodipodi:linespacing="100%" 70.99 + id="text12979" 70.100 + y="515.76575" 70.101 + x="326.92542" 70.102 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.103 + xml:space="preserve"><tspan 70.104 + y="515.76575" 70.105 + x="326.92542" 70.106 + id="tspan12981" 70.107 + sodipodi:role="line" 70.108 + style="text-align:center;text-anchor:middle">Master</tspan><tspan 70.109 + y="524.20056" 70.110 + x="326.92542" 70.111 + sodipodi:role="line" 70.112 + id="tspan3291" 70.113 + style="font-size:8px;text-align:center;text-anchor:middle">(runtime system)</tspan><tspan 70.114 + y="532.2005" 70.115 + x="326.92542" 70.116 + sodipodi:role="line" 70.117 + style="font-size:8px;text-align:center;text-anchor:middle" 70.118 + id="tspan8409">on core 1</tspan></text> 70.119 + <g 70.120 + id="g9336" 70.121 + transform="translate(44.002789,114)"> 70.122 + <rect 70.123 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 70.124 + id="rect3293" 70.125 + width="65.276405" 70.126 + height="37.165791" 70.127 + x="346.40247" 70.128 + y="389.58255" /> 70.129 + <text 70.130 + sodipodi:linespacing="100%" 70.131 + id="text3295" 70.132 + y="400.15268" 70.133 + x="379.00162" 70.134 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.135 + xml:space="preserve"><tspan 70.136 + id="tspan3301" 70.137 + y="400.15268" 70.138 + x="379.00162" 70.139 + sodipodi:role="line" 70.140 + style="text-align:center;text-anchor:middle;fill:#008000">Seed VP</tspan><tspan 70.141 + y="408.58746" 70.142 + x="379.00162" 70.143 + sodipodi:role="line" 70.144 + style="font-size:8px;text-align:center;text-anchor:middle;fill:#008000" 70.145 + id="tspan9389">(created at</tspan><tspan 70.146 + y="416.58746" 70.147 + x="379.00162" 70.148 + sodipodi:role="line" 70.149 + style="font-size:8px;text-align:center;text-anchor:middle;fill:#008000" 70.150 + id="tspan9391">app startup,</tspan><tspan 70.151 + y="424.58746" 70.152 + x="379.00162" 70.153 + sodipodi:role="line" 70.154 + style="font-size:8px;text-align:center;text-anchor:middle;fill:#008000" 70.155 + id="tspan9744">on core 1)</tspan></text> 70.156 + </g> 70.157 + <text 70.158 + xml:space="preserve" 70.159 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.160 + x="517.16797" 70.161 + y="467.42465" 70.162 + id="text3318-1" 70.163 + sodipodi:linespacing="100%"><tspan 70.164 + style="text-align:center;text-anchor:middle;fill:#008000" 70.165 + sodipodi:role="line" 70.166 + x="517.16797" 70.167 + y="467.42465" 70.168 + id="tspan3322-5">Application Code</tspan></text> 70.169 + <text 70.170 + sodipodi:linespacing="100%" 70.171 + id="text3376" 70.172 + y="541.42468" 70.173 + x="517.16797" 70.174 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.175 + xml:space="preserve"><tspan 70.176 + id="tspan3378" 70.177 + y="541.42468" 70.178 + x="517.16797" 70.179 + sodipodi:role="line" 70.180 + style="text-align:center;text-anchor:middle;fill:#008000">Seed_Fn</tspan></text> 70.181 + <text 70.182 + xml:space="preserve" 70.183 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.184 + x="517.16797" 70.185 + y="761.42468" 70.186 + id="text3380" 70.187 + sodipodi:linespacing="100%"><tspan 70.188 + style="text-align:center;text-anchor:middle;fill:#008000" 70.189 + sodipodi:role="line" 70.190 + x="517.16797" 70.191 + y="761.42468" 70.192 + id="tspan3382">Work_Fn</tspan></text> 70.193 + <text 70.194 + sodipodi:linespacing="100%" 70.195 + id="text3388" 70.196 + y="467.42465" 70.197 + x="604.63812" 70.198 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.199 + xml:space="preserve"><tspan 70.200 + id="tspan3390" 70.201 + y="467.42465" 70.202 + x="606.14203" 70.203 + sodipodi:role="line" 70.204 + style="text-align:center;text-anchor:middle;fill:#800000">Language </tspan><tspan 70.205 + y="477.42465" 70.206 + x="604.63812" 70.207 + sodipodi:role="line" 70.208 + style="text-align:center;text-anchor:middle;fill:#800000" 70.209 + id="tspan5106">Wrapper-Lib</tspan><tspan 70.210 + y="487.42465" 70.211 + x="604.63812" 70.212 + sodipodi:role="line" 70.213 + style="text-align:center;text-anchor:middle;fill:#800000" 70.214 + id="tspan3392">Code</tspan></text> 70.215 + <text 70.216 + xml:space="preserve" 70.217 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.218 + x="669.16797" 70.219 + y="467.42465" 70.220 + id="text3394" 70.221 + sodipodi:linespacing="100%"><tspan 70.222 + style="text-align:center;text-anchor:middle;fill:#000080" 70.223 + sodipodi:role="line" 70.224 + x="669.16797" 70.225 + y="467.42465" 70.226 + id="tspan3396">Proto-Runtime</tspan><tspan 70.227 + style="text-align:center;text-anchor:middle;fill:#000080" 70.228 + sodipodi:role="line" 70.229 + x="669.16797" 70.230 + y="477.42465" 70.231 + id="tspan4998">Primitive</tspan><tspan 70.232 + id="tspan3398" 70.233 + style="text-align:center;text-anchor:middle;fill:#000080" 70.234 + sodipodi:role="line" 70.235 + x="669.16797" 70.236 + y="487.42465">Code</tspan></text> 70.237 + <text 70.238 + xml:space="preserve" 70.239 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.240 + x="137.31689" 70.241 + y="573.42468" 70.242 + id="text3412" 70.243 + sodipodi:linespacing="100%"><tspan 70.244 + style="text-align:center;text-anchor:middle;fill:#800000" 70.245 + sodipodi:role="line" 70.246 + x="137.31689" 70.247 + y="573.42468" 70.248 + id="tspan3414">Lang Handler</tspan><tspan 70.249 + style="text-align:center;text-anchor:middle;fill:#800000" 70.250 + sodipodi:role="line" 70.251 + x="137.31689" 70.252 + y="583.42468" 70.253 + id="tspan3422">for create VP</tspan></text> 70.254 + <text 70.255 + xml:space="preserve" 70.256 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.257 + x="137.68066" 70.258 + y="621.42468" 70.259 + id="text3444" 70.260 + sodipodi:linespacing="100%"><tspan 70.261 + style="text-align:center;text-anchor:middle;fill:#800000" 70.262 + sodipodi:role="line" 70.263 + x="137.68066" 70.264 + y="621.42468" 70.265 + id="tspan3450">Assigner Fn</tspan></text> 70.266 + <text 70.267 + xml:space="preserve" 70.268 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.269 + x="327.16797" 70.270 + y="469.42465" 70.271 + id="text3456" 70.272 + sodipodi:linespacing="100%"><tspan 70.273 + style="text-align:center;text-anchor:middle" 70.274 + sodipodi:role="line" 70.275 + x="328.67188" 70.276 + y="469.42465" 70.277 + id="tspan3458">Instances of </tspan><tspan 70.278 + style="text-align:center;text-anchor:middle" 70.279 + sodipodi:role="line" 70.280 + x="327.16797" 70.281 + y="479.42465" 70.282 + id="tspan8405">runtime system</tspan><tspan 70.283 + style="font-size:8px;text-align:center;text-anchor:middle" 70.284 + sodipodi:role="line" 70.285 + x="327.16797" 70.286 + y="487.85944" 70.287 + id="tspan9383">(data structs</tspan><tspan 70.288 + style="font-size:8px;text-align:center;text-anchor:middle" 70.289 + sodipodi:role="line" 70.290 + x="327.16797" 70.291 + y="495.85944" 70.292 + id="tspan9385">on heap)</tspan><tspan 70.293 + id="tspan3460" 70.294 + style="text-align:center;text-anchor:middle" 70.295 + sodipodi:role="line" 70.296 + x="327.16797" 70.297 + y="503.85944" /></text> 70.298 + <text 70.299 + sodipodi:linespacing="100%" 70.300 + id="text3462" 70.301 + y="467.42465" 70.302 + x="423.16797" 70.303 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.304 + xml:space="preserve"><tspan 70.305 + id="tspan3464" 70.306 + y="467.42465" 70.307 + x="423.16797" 70.308 + sodipodi:role="line" 70.309 + style="text-align:center;text-anchor:middle">Instances of</tspan><tspan 70.310 + y="477.42465" 70.311 + x="423.16797" 70.312 + sodipodi:role="line" 70.313 + style="text-align:center;text-anchor:middle" 70.314 + id="tspan3468">Virtual Processors</tspan><tspan 70.315 + y="485.85944" 70.316 + x="423.16797" 70.317 + sodipodi:role="line" 70.318 + style="font-size:8px;text-align:center;text-anchor:middle" 70.319 + id="tspan3466">(data structs</tspan><tspan 70.320 + y="493.85944" 70.321 + x="423.16797" 70.322 + sodipodi:role="line" 70.323 + style="font-size:8px;text-align:center;text-anchor:middle" 70.324 + id="tspan9387">on heap)</tspan></text> 70.325 + <path 70.326 + inkscape:connector-curvature="0" 70.327 + id="path4796" 70.328 + d="m 457.32649,538.02605 c 38.42351,0 38.42351,0 38.42351,0" 70.329 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999996, 2.99999996;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 70.330 + <text 70.331 + xml:space="preserve" 70.332 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.333 + x="604.78461" 70.334 + y="535.42468" 70.335 + id="text4988" 70.336 + sodipodi:linespacing="100%"><tspan 70.337 + style="text-align:center;text-anchor:middle;fill:#800000" 70.338 + sodipodi:role="line" 70.339 + x="604.78461" 70.340 + y="535.42468" 70.341 + id="tspan4990">create VP</tspan><tspan 70.342 + style="text-align:center;text-anchor:middle;fill:#800000" 70.343 + sodipodi:role="line" 70.344 + x="604.78461" 70.345 + y="545.42468" 70.346 + id="tspan5104">wrapper Fn</tspan></text> 70.347 + <text 70.348 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)" 70.349 + xml:space="preserve" 70.350 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.351 + x="640.93384" 70.352 + y="566.94653" 70.353 + id="text5064" 70.354 + sodipodi:linespacing="100%"><tspan 70.355 + style="font-size:8px;text-align:center;text-anchor:middle" 70.356 + sodipodi:role="line" 70.357 + x="640.93384" 70.358 + y="566.94653" 70.359 + id="tspan5066">Call to dyn lib</tspan></text> 70.360 + <path 70.361 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000003, 3.00000003;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 70.362 + d="m 291.99816,538.02605 c -63.44071,0 -63.44071,0 -63.44071,0" 70.363 + id="path5068" 70.364 + inkscape:connector-curvature="0" /> 70.365 + <text 70.366 + sodipodi:linespacing="100%" 70.367 + id="text5070" 70.368 + y="574.53986" 70.369 + x="148.45142" 70.370 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.371 + xml:space="preserve" 70.372 + transform="matrix(0.97994281,-0.19927893,0.19927893,0.97994281,0,0)"><tspan 70.373 + id="tspan5072" 70.374 + y="574.53986" 70.375 + x="148.45142" 70.376 + sodipodi:role="line" 70.377 + style="font-size:8px;text-align:center;text-anchor:middle">Top Level Fn</tspan></text> 70.378 + <text 70.379 + transform="matrix(0.97994281,-0.19927893,0.19927893,0.97994281,0,0)" 70.380 + xml:space="preserve" 70.381 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.382 + x="368.35757" 70.383 + y="617.21826" 70.384 + id="text5074" 70.385 + sodipodi:linespacing="100%"><tspan 70.386 + style="font-size:8px;text-align:center;text-anchor:middle" 70.387 + sodipodi:role="line" 70.388 + x="368.35757" 70.389 + y="617.21826" 70.390 + id="tspan5076">Top Level Fn</tspan></text> 70.391 + <text 70.392 + sodipodi:linespacing="100%" 70.393 + id="text5078" 70.394 + y="833.20477" 70.395 + x="326.47617" 70.396 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.397 + xml:space="preserve" 70.398 + transform="matrix(0.97994281,-0.19927893,0.19927893,0.97994281,0,0)"><tspan 70.399 + id="tspan5080" 70.400 + y="833.20477" 70.401 + x="326.47617" 70.402 + sodipodi:role="line" 70.403 + style="font-size:8px;text-align:center;text-anchor:middle">Top Level Fn</tspan></text> 70.404 + <path 70.405 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999996, 2.99999996;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 70.406 + d="m 458.9835,758.02605 c 36.7665,0 36.7665,0 36.7665,0" 70.407 + id="path5082" 70.408 + inkscape:connector-curvature="0" /> 70.409 + <path 70.410 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 70.411 + d="m 514.02904,544.01894 c 0,5.6572 0,5.6572 0,5.6572" 70.412 + id="path5092" 70.413 + inkscape:connector-curvature="0" 70.414 + sodipodi:nodetypes="cc" /> 70.415 + <path 70.416 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 70.417 + d="m 514.24714,550.02605 c 85.56237,0 85.56237,0 85.56237,0" 70.418 + id="path5094" 70.419 + inkscape:connector-curvature="0" /> 70.420 + <path 70.421 + inkscape:connector-curvature="0" 70.422 + id="path5096" 70.423 + d="m 602.77166,658.02605 c -88.41298,0 -88.41298,0 -88.41298,0" 70.424 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 70.425 + <path 70.426 + sodipodi:nodetypes="cc" 70.427 + inkscape:connector-curvature="0" 70.428 + id="path5140" 70.429 + d="m 514.02904,658.31987 c 0,26.21842 0,26.21842 0,26.21842" 70.430 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 70.431 + <path 70.432 + inkscape:connector-curvature="0" 70.433 + id="path5142" 70.434 + d="m 514.2471,684.02605 c 87.58783,0 87.58783,0 87.58783,0" 70.435 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 70.436 + <text 70.437 + sodipodi:linespacing="100%" 70.438 + id="text5157" 70.439 + y="670.71179" 70.440 + x="604.78461" 70.441 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.442 + xml:space="preserve"><tspan 70.443 + id="tspan5161" 70.444 + y="670.71179" 70.445 + x="604.78461" 70.446 + sodipodi:role="line" 70.447 + style="text-align:center;text-anchor:middle;fill:#800000">end VP</tspan><tspan 70.448 + y="680.71179" 70.449 + x="604.78461" 70.450 + sodipodi:role="line" 70.451 + style="text-align:center;text-anchor:middle;fill:#800000" 70.452 + id="tspan5207">wrapper Fn</tspan></text> 70.453 + <path 70.454 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 70.455 + d="m 602.26584,690.02605 c 63.99676,0 63.99676,0 63.99676,0" 70.456 + id="path5165" 70.457 + inkscape:connector-curvature="0" /> 70.458 + <path 70.459 + sodipodi:nodetypes="cc" 70.460 + inkscape:connector-curvature="0" 70.461 + id="path5179" 70.462 + d="m 514.02904,764.01895 c 0,5.6572 0,5.6572 0,5.6572" 70.463 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 70.464 + <path 70.465 + sodipodi:nodetypes="cc" 70.466 + inkscape:connector-curvature="0" 70.467 + id="path5209" 70.468 + d="m 602.02904,682.31985 c 0,7.35629 0,7.35629 0,7.35629" 70.469 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 70.470 + <text 70.471 + xml:space="preserve" 70.472 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.473 + x="497.16797" 70.474 + y="399.42468" 70.475 + id="text5211" 70.476 + sodipodi:linespacing="100%"><tspan 70.477 + style="text-align:center;text-anchor:middle" 70.478 + sodipodi:role="line" 70.479 + x="497.16797" 70.480 + y="399.42468" 70.481 + id="tspan5215" /></text> 70.482 + <path 70.483 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 70.484 + d="m 602.02904,550.21843 c 0,19.4577 0,19.4577 0,19.4577" 70.485 + id="path5217" 70.486 + inkscape:connector-curvature="0" 70.487 + sodipodi:nodetypes="cc" /> 70.488 + <path 70.489 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 70.490 + d="m 602.24714,570.02605 c 64.71029,0 64.71029,0 64.71029,0" 70.491 + id="path5219" 70.492 + inkscape:connector-curvature="0" /> 70.493 + <path 70.494 + inkscape:connector-curvature="0" 70.495 + id="path5221" 70.496 + d="m 666.85635,654.02605 c -65.78483,0 -65.78483,0 -65.78483,0" 70.497 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 70.498 + <path 70.499 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 70.500 + d="m 668.02904,568.63925 c 0,13.68455 0,13.68455 0,13.68455" 70.501 + id="path5223" 70.502 + inkscape:connector-curvature="0" 70.503 + sodipodi:nodetypes="cc" /> 70.504 + <path 70.505 + sodipodi:nodetypes="cc" 70.506 + inkscape:connector-curvature="0" 70.507 + id="path5229" 70.508 + d="m 602.02904,653.22687 c 0,5.5885 0,5.5885 0,5.5885" 70.509 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 70.510 + <path 70.511 + sodipodi:nodetypes="cc" 70.512 + inkscape:connector-curvature="0" 70.513 + id="path5235" 70.514 + d="m 668.02904,640.63925 c 0,13.68455 0,13.68455 0,13.68455" 70.515 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 70.516 + <text 70.517 + sodipodi:linespacing="100%" 70.518 + id="text5239" 70.519 + y="887.21881" 70.520 + x="75.689163" 70.521 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.522 + xml:space="preserve" 70.523 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 70.524 + id="tspan5241" 70.525 + y="887.21881" 70.526 + x="75.689163" 70.527 + sodipodi:role="line" 70.528 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan><tspan 70.529 + y="895.21881" 70.530 + x="75.689163" 70.531 + sodipodi:role="line" 70.532 + style="font-size:8px;text-align:center;text-anchor:middle" 70.533 + id="tspan5243">and switch</tspan><tspan 70.534 + y="903.21881" 70.535 + x="75.689163" 70.536 + sodipodi:role="line" 70.537 + style="font-size:8px;text-align:center;text-anchor:middle" 70.538 + id="tspan5245">to runtime</tspan></text> 70.539 + <path 70.540 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 70.541 + d="m 271.03421,642.02605 c 193.92439,0 193.92439,0 193.92439,0" 70.542 + id="path5247" 70.543 + inkscape:connector-curvature="0" /> 70.544 + <text 70.545 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 70.546 + xml:space="preserve" 70.547 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.548 + x="45.084938" 70.549 + y="918.83185" 70.550 + id="text5249" 70.551 + sodipodi:linespacing="100%"><tspan 70.552 + id="tspan5255" 70.553 + style="font-size:8px;text-align:center;text-anchor:middle" 70.554 + sodipodi:role="line" 70.555 + x="45.084938" 70.556 + y="918.83185">return</tspan><tspan 70.557 + style="font-size:8px;text-align:center;text-anchor:middle" 70.558 + sodipodi:role="line" 70.559 + x="45.084938" 70.560 + y="926.83185" 70.561 + id="tspan5261">from</tspan><tspan 70.562 + style="font-size:8px;text-align:center;text-anchor:middle" 70.563 + sodipodi:role="line" 70.564 + x="45.084938" 70.565 + y="934.83185" 70.566 + id="tspan5263">suspend</tspan></text> 70.567 + <text 70.568 + sodipodi:linespacing="100%" 70.569 + id="text5345" 70.570 + y="557.42468" 70.571 + x="667.38037" 70.572 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.573 + xml:space="preserve"><tspan 70.574 + id="tspan5349" 70.575 + y="557.42468" 70.576 + x="667.38037" 70.577 + sodipodi:role="line" 70.578 + style="text-align:center;text-anchor:middle;fill:#000080">PR primitive Fn</tspan><tspan 70.579 + y="567.42468" 70.580 + x="667.38037" 70.581 + sodipodi:role="line" 70.582 + style="text-align:center;text-anchor:middle;fill:#000080" 70.583 + id="tspan5353">to send request</tspan></text> 70.584 + <text 70.585 + sodipodi:linespacing="100%" 70.586 + id="text5355" 70.587 + y="554.71265" 70.588 + x="556.00226" 70.589 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.590 + xml:space="preserve" 70.591 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 70.592 + id="tspan5357" 70.593 + y="554.71265" 70.594 + x="556.00226" 70.595 + sodipodi:role="line" 70.596 + style="font-size:8px;text-align:center;text-anchor:middle">normal call</tspan></text> 70.597 + <path 70.598 + sodipodi:nodetypes="cc" 70.599 + inkscape:connector-curvature="0" 70.600 + id="path5359" 70.601 + d="m 668.02904,689.28283 c 0,13.68455 0,13.68455 0,13.68455" 70.602 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 70.603 + <text 70.604 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 70.605 + xml:space="preserve" 70.606 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.607 + x="-4.9486814" 70.608 + y="973.39014" 70.609 + id="text5363" 70.610 + sodipodi:linespacing="100%"><tspan 70.611 + style="font-size:8px;text-align:center;text-anchor:middle" 70.612 + sodipodi:role="line" 70.613 + x="-4.9486814" 70.614 + y="973.39014" 70.615 + id="tspan5365">suspend</tspan><tspan 70.616 + id="tspan5367" 70.617 + style="font-size:8px;text-align:center;text-anchor:middle" 70.618 + sodipodi:role="line" 70.619 + x="-4.9486814" 70.620 + y="981.39014">and switch</tspan><tspan 70.621 + id="tspan5369" 70.622 + style="font-size:8px;text-align:center;text-anchor:middle" 70.623 + sodipodi:role="line" 70.624 + x="-4.9486814" 70.625 + y="989.39014">to runtime</tspan></text> 70.626 + <text 70.627 + sodipodi:linespacing="100%" 70.628 + id="text5371" 70.629 + y="755.42468" 70.630 + x="604.59662" 70.631 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.632 + xml:space="preserve"><tspan 70.633 + id="tspan5373" 70.634 + y="755.42468" 70.635 + x="604.59662" 70.636 + sodipodi:role="line" 70.637 + style="text-align:center;text-anchor:middle;fill:#800000">Mutex Acquire</tspan><tspan 70.638 + id="tspan5375" 70.639 + y="765.42468" 70.640 + x="604.59662" 70.641 + sodipodi:role="line" 70.642 + style="text-align:center;text-anchor:middle;fill:#800000">wrapper Fn</tspan></text> 70.643 + <path 70.644 + inkscape:connector-curvature="0" 70.645 + id="path5379" 70.646 + d="m 514.24714,770.02605 c 85.56237,0 85.56237,0 85.56237,0" 70.647 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 70.648 + <path 70.649 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 70.650 + d="m 602.77166,870.02605 c -88.41298,0 -88.41298,0 -88.41298,0" 70.651 + id="path5381" 70.652 + inkscape:connector-curvature="0" /> 70.653 + <text 70.654 + xml:space="preserve" 70.655 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.656 + x="604.78461" 70.657 + y="882.71179" 70.658 + id="text5387" 70.659 + sodipodi:linespacing="100%"><tspan 70.660 + style="text-align:center;text-anchor:middle;fill:#800000" 70.661 + sodipodi:role="line" 70.662 + x="604.78461" 70.663 + y="882.71179" 70.664 + id="tspan5389">end VP</tspan><tspan 70.665 + id="tspan5391" 70.666 + style="text-align:center;text-anchor:middle;fill:#800000" 70.667 + sodipodi:role="line" 70.668 + x="604.78461" 70.669 + y="892.71179">wrapper Fn</tspan></text> 70.670 + <path 70.671 + inkscape:connector-curvature="0" 70.672 + id="path5393" 70.673 + d="m 602.289,902.02605 c 65.24023,0 65.24023,0 65.24023,0" 70.674 + style="fill:none;stroke:#000000;stroke-width:0.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 70.675 + <path 70.676 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 70.677 + d="m 602.02904,894.31985 c 0,7.35629 0,7.35629 0,7.35629" 70.678 + id="path5401" 70.679 + inkscape:connector-curvature="0" 70.680 + sodipodi:nodetypes="cc" /> 70.681 + <path 70.682 + sodipodi:nodetypes="cc" 70.683 + inkscape:connector-curvature="0" 70.684 + id="path5403" 70.685 + d="m 602.02904,770.21843 c 0,19.4577 0,19.4577 0,19.4577" 70.686 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 70.687 + <path 70.688 + inkscape:connector-curvature="0" 70.689 + id="path5405" 70.690 + d="m 602.6148,790.02605 c 64.1779,0 64.1779,0 64.1779,0" 70.691 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 70.692 + <path 70.693 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 70.694 + d="m 668.13452,866.02605 c -67.06305,0 -67.06305,0 -67.06305,0" 70.695 + id="path5407" 70.696 + inkscape:connector-curvature="0" /> 70.697 + <path 70.698 + sodipodi:nodetypes="cc" 70.699 + inkscape:connector-curvature="0" 70.700 + id="path5409" 70.701 + d="m 668.02904,788.63925 c 0,13.68455 0,13.68455 0,13.68455" 70.702 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 70.703 + <path 70.704 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 70.705 + d="m 602.02904,865.22687 c 0,5.5885 0,5.5885 0,5.5885" 70.706 + id="path5411" 70.707 + inkscape:connector-curvature="0" 70.708 + sodipodi:nodetypes="cc" /> 70.709 + <path 70.710 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 70.711 + d="m 668.02904,852.63925 c 0,13.68455 0,13.68455 0,13.68455" 70.712 + id="path5417" 70.713 + inkscape:connector-curvature="0" 70.714 + sodipodi:nodetypes="cc" /> 70.715 + <text 70.716 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 70.717 + xml:space="preserve" 70.718 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.719 + x="-74.503059" 70.720 + y="1045.2394" 70.721 + id="text5421" 70.722 + sodipodi:linespacing="100%"><tspan 70.723 + style="font-size:8px;text-align:center;text-anchor:middle" 70.724 + sodipodi:role="line" 70.725 + x="-74.503059" 70.726 + y="1045.2394" 70.727 + id="tspan5423">suspend</tspan><tspan 70.728 + id="tspan5425" 70.729 + style="font-size:8px;text-align:center;text-anchor:middle" 70.730 + sodipodi:role="line" 70.731 + x="-74.503059" 70.732 + y="1053.2394">and switch</tspan><tspan 70.733 + id="tspan5427" 70.734 + style="font-size:8px;text-align:center;text-anchor:middle" 70.735 + sodipodi:role="line" 70.736 + x="-74.503059" 70.737 + y="1061.2394">to runtime</tspan></text> 70.738 + <text 70.739 + sodipodi:linespacing="100%" 70.740 + id="text5431" 70.741 + y="1071.1506" 70.742 + x="-102.37076" 70.743 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.744 + xml:space="preserve" 70.745 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 70.746 + y="1071.1506" 70.747 + x="-102.37076" 70.748 + sodipodi:role="line" 70.749 + style="font-size:8px;text-align:center;text-anchor:middle" 70.750 + id="tspan5433">return</tspan><tspan 70.751 + id="tspan5435" 70.752 + y="1079.1506" 70.753 + x="-102.37076" 70.754 + sodipodi:role="line" 70.755 + style="font-size:8px;text-align:center;text-anchor:middle">from</tspan><tspan 70.756 + id="tspan5437" 70.757 + y="1087.1506" 70.758 + x="-102.37076" 70.759 + sodipodi:role="line" 70.760 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan></text> 70.761 + <text 70.762 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 70.763 + xml:space="preserve" 70.764 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.765 + x="556.96783" 70.766 + y="774.71014" 70.767 + id="text5445" 70.768 + sodipodi:linespacing="100%"><tspan 70.769 + style="font-size:8px;text-align:center;text-anchor:middle" 70.770 + sodipodi:role="line" 70.771 + x="556.96783" 70.772 + y="774.71014" 70.773 + id="tspan5447">normal call</tspan></text> 70.774 + <path 70.775 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 70.776 + d="m 668.02904,901.28283 c 0,13.68455 0,13.68455 0,13.68455" 70.777 + id="path5449" 70.778 + inkscape:connector-curvature="0" 70.779 + sodipodi:nodetypes="cc" /> 70.780 + <text 70.781 + sodipodi:linespacing="100%" 70.782 + id="text5453" 70.783 + y="1128.538" 70.784 + x="-152.3584" 70.785 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.786 + xml:space="preserve" 70.787 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 70.788 + id="tspan5455" 70.789 + y="1128.538" 70.790 + x="-152.3584" 70.791 + sodipodi:role="line" 70.792 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan><tspan 70.793 + y="1136.538" 70.794 + x="-152.3584" 70.795 + sodipodi:role="line" 70.796 + style="font-size:8px;text-align:center;text-anchor:middle" 70.797 + id="tspan5457">and switch</tspan><tspan 70.798 + y="1144.538" 70.799 + x="-152.3584" 70.800 + sodipodi:role="line" 70.801 + style="font-size:8px;text-align:center;text-anchor:middle" 70.802 + id="tspan5459">to runtime</tspan></text> 70.803 + <path 70.804 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 70.805 + d="m 514.02904,870.31987 c 0,26.21842 0,26.21842 0,26.21842" 70.806 + id="path5461" 70.807 + inkscape:connector-curvature="0" 70.808 + sodipodi:nodetypes="cc" /> 70.809 + <path 70.810 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 70.811 + d="m 514.2471,896.02605 c 87.58783,0 87.58783,0 87.58783,0" 70.812 + id="path5463" 70.813 + inkscape:connector-curvature="0" /> 70.814 + <text 70.815 + sodipodi:linespacing="100%" 70.816 + id="text5465" 70.817 + y="688.71033" 70.818 + x="556.59009" 70.819 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.820 + xml:space="preserve" 70.821 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 70.822 + id="tspan5467" 70.823 + y="688.71033" 70.824 + x="556.59009" 70.825 + sodipodi:role="line" 70.826 + style="font-size:8px;text-align:center;text-anchor:middle">normal call</tspan></text> 70.827 + <text 70.828 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 70.829 + xml:space="preserve" 70.830 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.831 + x="557.52142" 70.832 + y="900.70972" 70.833 + id="text5469" 70.834 + sodipodi:linespacing="100%"><tspan 70.835 + style="font-size:8px;text-align:center;text-anchor:middle" 70.836 + sodipodi:role="line" 70.837 + x="557.52142" 70.838 + y="900.70972" 70.839 + id="tspan5471">normal call</tspan></text> 70.840 + <g 70.841 + transform="matrix(1,0,0,0.71130685,-16,282.52913)" 70.842 + id="g8395"> 70.843 + <rect 70.844 + y="313.58255" 70.845 + x="310.40247" 70.846 + height="52.250008" 70.847 + width="65.276405" 70.848 + id="rect8397" 70.849 + style="fill:none;stroke:#000000;stroke-width:1.28076112;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 70.850 + </g> 70.851 + <path 70.852 + sodipodi:nodetypes="cc" 70.853 + inkscape:connector-curvature="0" 70.854 + id="path9273" 70.855 + d="m 514.02904,658.31987 c 0,26.21842 0,26.21842 0,26.21842" 70.856 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 70.857 + <path 70.858 + sodipodi:nodetypes="cc" 70.859 + inkscape:connector-curvature="0" 70.860 + id="path9275" 70.861 + d="m 476.02904,544.79398 c 0,35.61575 0,35.61575 0,35.61575" 70.862 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:none" /> 70.863 + <path 70.864 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 70.865 + d="m 468.24715,580.02605 c 13.34137,0 13.34137,0 13.34137,0" 70.866 + id="path9277" 70.867 + inkscape:connector-curvature="0" /> 70.868 + <path 70.869 + inkscape:connector-curvature="0" 70.870 + id="path9279" 70.871 + d="m 481.57781,642.02605 c -13.14022,0 -13.14022,0 -13.14022,0" 70.872 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 70.873 + <path 70.874 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" 70.875 + d="m 476.02904,642.3113 c 0,57.40944 0,57.40944 0,57.40944" 70.876 + id="path9281" 70.877 + inkscape:connector-curvature="0" 70.878 + sodipodi:nodetypes="cc" /> 70.879 + <path 70.880 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 70.881 + d="m 481.57781,701.27417 c -13.14022,0 -13.14022,0 -13.14022,0" 70.882 + id="path9283" 70.883 + inkscape:connector-curvature="0" /> 70.884 + <text 70.885 + transform="matrix(-0.01875541,0.9998241,-0.9998241,-0.01875541,0,0)" 70.886 + xml:space="preserve" 70.887 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.888 + x="615.90454" 70.889 + y="-469.42978" 70.890 + id="text9285" 70.891 + sodipodi:linespacing="100%"><tspan 70.892 + style="text-align:center;text-anchor:middle;fill:#008000" 70.893 + sodipodi:role="line" 70.894 + x="615.90454" 70.895 + y="-469.42978" 70.896 + id="tspan9287">Timeline of SeedVP</tspan></text> 70.897 + <text 70.898 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 70.899 + xml:space="preserve" 70.900 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.901 + x="486.10849" 70.902 + y="579.01941" 70.903 + id="text9289" 70.904 + sodipodi:linespacing="100%"><tspan 70.905 + style="font-size:8px;text-align:start;text-anchor:start" 70.906 + sodipodi:role="line" 70.907 + x="486.10849" 70.908 + y="579.01941" 70.909 + id="tspan9291">suspend</tspan></text> 70.910 + <text 70.911 + sodipodi:linespacing="100%" 70.912 + id="text9293" 70.913 + y="643.01886" 70.914 + x="486.38965" 70.915 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.916 + xml:space="preserve" 70.917 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 70.918 + id="tspan9295" 70.919 + y="643.01886" 70.920 + x="486.38965" 70.921 + sodipodi:role="line" 70.922 + style="font-size:8px;text-align:start;text-anchor:start">resume</tspan></text> 70.923 + <text 70.924 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 70.925 + xml:space="preserve" 70.926 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.927 + x="486.64105" 70.928 + y="700.22437" 70.929 + id="text9297" 70.930 + sodipodi:linespacing="100%"><tspan 70.931 + style="font-size:8px;text-align:start;text-anchor:start" 70.932 + sodipodi:role="line" 70.933 + x="486.64105" 70.934 + y="700.22437" 70.935 + id="tspan9299">end</tspan></text> 70.936 + <text 70.937 + sodipodi:linespacing="100%" 70.938 + id="text9301" 70.939 + y="467.42465" 70.940 + x="63.167969" 70.941 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.942 + xml:space="preserve"><tspan 70.943 + id="tspan9303" 70.944 + y="467.42465" 70.945 + x="63.167969" 70.946 + sodipodi:role="line" 70.947 + style="text-align:center;text-anchor:middle;fill:#000080">Proto-Runtime</tspan><tspan 70.948 + id="tspan9305" 70.949 + y="477.42465" 70.950 + x="63.167969" 70.951 + sodipodi:role="line" 70.952 + style="text-align:center;text-anchor:middle;fill:#000080">Primitive</tspan><tspan 70.953 + y="487.42465" 70.954 + x="63.167969" 70.955 + sodipodi:role="line" 70.956 + style="text-align:center;text-anchor:middle;fill:#000080" 70.957 + id="tspan9307">Code</tspan></text> 70.958 + <text 70.959 + xml:space="preserve" 70.960 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.961 + x="65.380371" 70.962 + y="585.42468" 70.963 + id="text9309" 70.964 + sodipodi:linespacing="100%"><tspan 70.965 + id="tspan9313" 70.966 + style="text-align:center;text-anchor:middle;fill:#000080" 70.967 + sodipodi:role="line" 70.968 + x="65.380371" 70.969 + y="585.42468">PR primitive Fn</tspan><tspan 70.970 + style="text-align:center;text-anchor:middle;fill:#000080" 70.971 + sodipodi:role="line" 70.972 + x="65.380371" 70.973 + y="595.42468" 70.974 + id="tspan9317">to create VP</tspan></text> 70.975 + <path 70.976 + inkscape:connector-curvature="0" 70.977 + id="path9321" 70.978 + d="m 101.87628,587.85467 c 83.54552,12.98474 93.01032,9.74762 154.91834,33.79457 83.60123,32.47325 132.79902,111.74825 132.79902,111.74825" 70.979 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000006, 3.00000006;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 70.980 + sodipodi:nodetypes="csc" /> 70.981 + <g 70.982 + id="g9341" 70.983 + transform="translate(44.002789,336)"> 70.984 + <rect 70.985 + y="389.58255" 70.986 + x="346.40247" 70.987 + height="37.165791" 70.988 + width="65.276405" 70.989 + id="rect9343" 70.990 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 70.991 + <text 70.992 + xml:space="preserve" 70.993 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.994 + x="379.35806" 70.995 + y="400.72159" 70.996 + id="text9345" 70.997 + sodipodi:linespacing="100%"><tspan 70.998 + style="text-align:center;text-anchor:middle;fill:#008000" 70.999 + sodipodi:role="line" 70.1000 + x="379.35806" 70.1001 + y="400.72159" 70.1002 + id="tspan9347">VP 1</tspan><tspan 70.1003 + style="font-size:8px;text-align:center;text-anchor:middle;fill:#008000" 70.1004 + sodipodi:role="line" 70.1005 + x="379.35806" 70.1006 + y="409.15637" 70.1007 + id="tspan9349">(created by</tspan><tspan 70.1008 + style="font-size:8px;text-align:center;text-anchor:middle;fill:#008000" 70.1009 + sodipodi:role="line" 70.1010 + x="379.35806" 70.1011 + y="417.15637" 70.1012 + id="tspan9355">application,</tspan><tspan 70.1013 + style="font-size:8px;text-align:center;text-anchor:middle;fill:#008000" 70.1014 + sodipodi:role="line" 70.1015 + x="379.35806" 70.1016 + y="425.15637" 70.1017 + id="tspan9746">on core 2)</tspan></text> 70.1018 + </g> 70.1019 + <g 70.1020 + transform="translate(44.002789,370)" 70.1021 + id="g9371" /> 70.1022 + <text 70.1023 + xml:space="preserve" 70.1024 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.1025 + x="202.41257" 70.1026 + y="541.42468" 70.1027 + id="text9512" 70.1028 + sodipodi:linespacing="100%"><tspan 70.1029 + style="text-align:center;text-anchor:middle;fill:#000080" 70.1030 + sodipodi:role="line" 70.1031 + x="202.41257" 70.1032 + y="541.42468" 70.1033 + id="tspan9514">Master Fn</tspan></text> 70.1034 + <path 70.1035 + sodipodi:nodetypes="cc" 70.1036 + inkscape:connector-curvature="0" 70.1037 + id="path9522" 70.1038 + d="m 205.27805,580.31985 c 0,7.35629 0,7.35629 0,7.35629" 70.1039 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 70.1040 + <path 70.1041 + inkscape:connector-curvature="0" 70.1042 + id="path9524" 70.1043 + d="m 205.05995,586.02605 c -67.19099,0 -67.19099,0 -67.19099,0" 70.1044 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 70.1045 + <path 70.1046 + sodipodi:nodetypes="cc" 70.1047 + inkscape:connector-curvature="0" 70.1048 + id="path9548" 70.1049 + d="m 137.27805,585.85824 c 0,11.43122 0,11.43122 0,11.43122" 70.1050 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 70.1051 + <path 70.1052 + inkscape:connector-curvature="0" 70.1053 + id="path9550" 70.1054 + d="m 137.57123,598.02605 c -69.22157,0 -69.22157,0 -69.22157,0" 70.1055 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 70.1056 + <path 70.1057 + sodipodi:nodetypes="cc" 70.1058 + inkscape:connector-curvature="0" 70.1059 + id="path9554" 70.1060 + d="m 205.27805,636.63925 c 0,4.54718 0,4.54718 0,4.54718" 70.1061 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 70.1062 + <text 70.1063 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 70.1064 + xml:space="preserve" 70.1065 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.1066 + x="-300.35513" 70.1067 + y="609.46997" 70.1068 + id="text9566" 70.1069 + sodipodi:linespacing="100%"><tspan 70.1070 + style="font-size:8px;text-align:center;text-anchor:middle" 70.1071 + sodipodi:role="line" 70.1072 + x="-300.35513" 70.1073 + y="609.46997" 70.1074 + id="tspan9568">suspend</tspan><tspan 70.1075 + id="tspan9570" 70.1076 + style="font-size:8px;text-align:center;text-anchor:middle" 70.1077 + sodipodi:role="line" 70.1078 + x="-300.35513" 70.1079 + y="617.46997">and switch</tspan><tspan 70.1080 + id="tspan9572" 70.1081 + style="font-size:8px;text-align:center;text-anchor:middle" 70.1082 + sodipodi:role="line" 70.1083 + x="-300.35513" 70.1084 + y="625.46997">to app VP</tspan></text> 70.1085 + <path 70.1086 + sodipodi:nodetypes="cc" 70.1087 + inkscape:connector-curvature="0" 70.1088 + id="path9614" 70.1089 + d="m 205.27805,580.31985 c 0,7.35629 0,7.35629 0,7.35629" 70.1090 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 70.1091 + <path 70.1092 + sodipodi:nodetypes="cc" 70.1093 + inkscape:connector-curvature="0" 70.1094 + id="path9616" 70.1095 + d="m 205.27805,580.31985 c 0,7.35629 0,7.35629 0,7.35629" 70.1096 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 70.1097 + <path 70.1098 + inkscape:connector-curvature="0" 70.1099 + id="path9648" 70.1100 + d="m 468.24715,545.42364 c 13.34137,0 13.34137,0 13.34137,0" 70.1101 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 70.1102 + <text 70.1103 + sodipodi:linespacing="100%" 70.1104 + id="text9654" 70.1105 + y="547.021" 70.1106 + x="485.96786" 70.1107 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.1108 + xml:space="preserve" 70.1109 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 70.1110 + id="tspan9656" 70.1111 + y="547.021" 70.1112 + x="485.96786" 70.1113 + sodipodi:role="line" 70.1114 + style="font-size:8px;text-align:start;text-anchor:start">start</tspan></text> 70.1115 + <path 70.1116 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:none" 70.1117 + d="m 476.02904,764.79398 c 0,35.61575 0,35.61575 0,35.61575" 70.1118 + id="path9658" 70.1119 + inkscape:connector-curvature="0" 70.1120 + sodipodi:nodetypes="cc" /> 70.1121 + <path 70.1122 + inkscape:connector-curvature="0" 70.1123 + id="path9660" 70.1124 + d="m 468.24715,800.02605 c 13.34137,0 13.34137,0 13.34137,0" 70.1125 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 70.1126 + <path 70.1127 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 70.1128 + d="m 481.57781,854.02605 c -13.14022,0 -13.14022,0 -13.14022,0" 70.1129 + id="path9662" 70.1130 + inkscape:connector-curvature="0" /> 70.1131 + <text 70.1132 + sodipodi:linespacing="100%" 70.1133 + id="text9668" 70.1134 + y="-467.51968" 70.1135 + x="833.97864" 70.1136 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.1137 + xml:space="preserve" 70.1138 + transform="matrix(-0.01875541,0.9998241,-0.9998241,-0.01875541,0,0)"><tspan 70.1139 + y="-467.51968" 70.1140 + x="833.97864" 70.1141 + sodipodi:role="line" 70.1142 + style="text-align:center;text-anchor:middle;fill:#008000" 70.1143 + id="tspan9740">Timeline of VP 1</tspan></text> 70.1144 + <text 70.1145 + sodipodi:linespacing="100%" 70.1146 + id="text9672" 70.1147 + y="799.01776" 70.1148 + x="487.07419" 70.1149 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.1150 + xml:space="preserve" 70.1151 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 70.1152 + id="tspan9674" 70.1153 + y="799.01776" 70.1154 + x="487.07419" 70.1155 + sodipodi:role="line" 70.1156 + style="font-size:8px;text-align:start;text-anchor:start">suspend</tspan></text> 70.1157 + <text 70.1158 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 70.1159 + xml:space="preserve" 70.1160 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.1161 + x="487.32007" 70.1162 + y="855.01727" 70.1163 + id="text9676" 70.1164 + sodipodi:linespacing="100%"><tspan 70.1165 + style="font-size:8px;text-align:start;text-anchor:start" 70.1166 + sodipodi:role="line" 70.1167 + x="487.32007" 70.1168 + y="855.01727" 70.1169 + id="tspan9678">resume</tspan></text> 70.1170 + <path 70.1171 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 70.1172 + d="m 468.24715,765.42364 c 13.34137,0 13.34137,0 13.34137,0" 70.1173 + id="path9684" 70.1174 + inkscape:connector-curvature="0" /> 70.1175 + <text 70.1176 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 70.1177 + xml:space="preserve" 70.1178 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.1179 + x="486.93356" 70.1180 + y="767.01935" 70.1181 + id="text9686" 70.1182 + sodipodi:linespacing="100%"><tspan 70.1183 + style="font-size:8px;text-align:start;text-anchor:start" 70.1184 + sodipodi:role="line" 70.1185 + x="486.93356" 70.1186 + y="767.01935" 70.1187 + id="tspan9688">start</tspan></text> 70.1188 + <path 70.1189 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:none" 70.1190 + d="m 266.02904,579.4311 c 0,61.88904 0,61.88904 0,61.88904" 70.1191 + id="path9690" 70.1192 + inkscape:connector-curvature="0" 70.1193 + sodipodi:nodetypes="cc" /> 70.1194 + <path 70.1195 + inkscape:connector-curvature="0" 70.1196 + id="path9692" 70.1197 + d="m 258.24715,580.02605 c 13.34137,0 13.34137,0 13.34137,0" 70.1198 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 70.1199 + <path 70.1200 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 70.1201 + d="m 271.57781,642.02605 c -13.14022,0 -13.14022,0 -13.14022,0" 70.1202 + id="path9694" 70.1203 + inkscape:connector-curvature="0" /> 70.1204 + <text 70.1205 + sodipodi:linespacing="100%" 70.1206 + id="text9700" 70.1207 + y="-276.31772" 70.1208 + x="625.34003" 70.1209 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.1210 + xml:space="preserve" 70.1211 + transform="matrix(0.00239328,0.99999714,-0.99999714,0.00239328,0,0)"><tspan 70.1212 + y="-276.31772" 70.1213 + x="625.34003" 70.1214 + sodipodi:role="line" 70.1215 + style="text-align:center;text-anchor:middle;fill:#000080" 70.1216 + id="tspan9736">Timeline of Master on core 1</tspan></text> 70.1217 + <text 70.1218 + sodipodi:linespacing="100%" 70.1219 + id="text9704" 70.1220 + y="642.12531" 70.1221 + x="262.08206" 70.1222 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.1223 + xml:space="preserve" 70.1224 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 70.1225 + id="tspan9706" 70.1226 + y="642.12531" 70.1227 + x="262.08206" 70.1228 + sodipodi:role="line" 70.1229 + style="font-size:8px;text-align:end;text-anchor:end">suspend</tspan></text> 70.1230 + <text 70.1231 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 70.1232 + xml:space="preserve" 70.1233 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.1234 + x="259.36166" 70.1235 + y="582.12573" 70.1236 + id="text9708" 70.1237 + sodipodi:linespacing="100%"><tspan 70.1238 + style="font-size:8px;text-align:end;text-anchor:end" 70.1239 + sodipodi:role="line" 70.1240 + x="259.36166" 70.1241 + y="582.12573" 70.1242 + id="tspan9710">resume</tspan></text> 70.1243 + <path 70.1244 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 70.1245 + d="m 258.24715,545.42364 c 13.34137,0 13.34137,0 13.34137,0" 70.1246 + id="path9716" 70.1247 + inkscape:connector-curvature="0" /> 70.1248 + <text 70.1249 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 70.1250 + xml:space="preserve" 70.1251 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.1252 + x="258.41916" 70.1253 + y="548.09222" 70.1254 + id="text9718" 70.1255 + sodipodi:linespacing="100%"><tspan 70.1256 + style="font-size:8px;text-align:end;text-anchor:end" 70.1257 + sodipodi:role="line" 70.1258 + x="258.41916" 70.1259 + y="548.09222" 70.1260 + id="tspan9720">start</tspan></text> 70.1261 + <path 70.1262 + sodipodi:nodetypes="cc" 70.1263 + inkscape:connector-curvature="0" 70.1264 + id="path9722" 70.1265 + d="m 266.02904,699.43112 c 0,10.33165 0,10.33165 0,10.33165" 70.1266 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" /> 70.1267 + <path 70.1268 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 70.1269 + d="m 258.24715,700.02605 c 13.34137,0 13.34137,0 13.34137,0" 70.1270 + id="path9724" 70.1271 + inkscape:connector-curvature="0" /> 70.1272 + <text 70.1273 + sodipodi:linespacing="100%" 70.1274 + id="text9936" 70.1275 + y="786.9176" 70.1276 + x="644.57471" 70.1277 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.1278 + xml:space="preserve" 70.1279 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)"><tspan 70.1280 + id="tspan9938" 70.1281 + y="786.9176" 70.1282 + x="644.57471" 70.1283 + sodipodi:role="line" 70.1284 + style="font-size:8px;text-align:center;text-anchor:middle">Call to dyn lib</tspan></text> 70.1285 + <text 70.1286 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)" 70.1287 + xml:space="preserve" 70.1288 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.1289 + x="646.42737" 70.1290 + y="898.90509" 70.1291 + id="text9940" 70.1292 + sodipodi:linespacing="100%"><tspan 70.1293 + style="font-size:8px;text-align:center;text-anchor:middle" 70.1294 + sodipodi:role="line" 70.1295 + x="646.42737" 70.1296 + y="898.90509" 70.1297 + id="tspan9942">Call to dyn lib</tspan></text> 70.1298 + <text 70.1299 + sodipodi:linespacing="100%" 70.1300 + id="text9944" 70.1301 + y="686.93219" 70.1302 + x="642.91998" 70.1303 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.1304 + xml:space="preserve" 70.1305 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)"><tspan 70.1306 + id="tspan9946" 70.1307 + y="686.93219" 70.1308 + x="642.91998" 70.1309 + sodipodi:role="line" 70.1310 + style="font-size:8px;text-align:center;text-anchor:middle">Call to dyn lib</tspan></text> 70.1311 + <text 70.1312 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)" 70.1313 + xml:space="preserve" 70.1314 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.1315 + x="115.47029" 70.1316 + y="603.64581" 70.1317 + id="text9948" 70.1318 + sodipodi:linespacing="100%"><tspan 70.1319 + style="font-size:8px;text-align:center;text-anchor:middle" 70.1320 + sodipodi:role="line" 70.1321 + x="115.47029" 70.1322 + y="603.64581" 70.1323 + id="tspan9950">call to dyn lib</tspan></text> 70.1324 + <path 70.1325 + inkscape:connector-curvature="0" 70.1326 + id="path9952" 70.1327 + d="m 701.67453,642.02605 c -669.895225,0 -669.895225,0 -669.895225,0" 70.1328 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" /> 70.1329 + <path 70.1330 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" 70.1331 + d="m 701.67453,579.52981 c -669.895225,0 -669.895225,0 -669.895225,0" 70.1332 + id="path9954" 70.1333 + inkscape:connector-curvature="0" /> 70.1334 + <text 70.1335 + xml:space="preserve" 70.1336 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.1337 + x="326.92542" 70.1338 + y="739.76575" 70.1339 + id="text9956" 70.1340 + sodipodi:linespacing="100%"><tspan 70.1341 + style="text-align:center;text-anchor:middle" 70.1342 + sodipodi:role="line" 70.1343 + id="tspan9958" 70.1344 + x="326.92542" 70.1345 + y="739.76575">Master</tspan><tspan 70.1346 + style="font-size:8px;text-align:center;text-anchor:middle" 70.1347 + id="tspan9960" 70.1348 + sodipodi:role="line" 70.1349 + x="326.92542" 70.1350 + y="748.2005">(runtime system)</tspan><tspan 70.1351 + id="tspan9962" 70.1352 + style="font-size:8px;text-align:center;text-anchor:middle" 70.1353 + sodipodi:role="line" 70.1354 + x="326.92542" 70.1355 + y="756.2005">on core 2</tspan></text> 70.1356 + <path 70.1357 + inkscape:connector-curvature="0" 70.1358 + id="path9970" 70.1359 + d="m 291.99816,758.02605 c -63.44071,0 -63.44071,0 -63.44071,0" 70.1360 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000003, 3.00000003;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 70.1361 + <g 70.1362 + id="g9972" 70.1363 + transform="matrix(1,0,0,0.71130685,-16,504.52913)"> 70.1364 + <rect 70.1365 + style="fill:none;stroke:#000000;stroke-width:1.28076112;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 70.1366 + id="rect9974" 70.1367 + width="65.276405" 70.1368 + height="52.250008" 70.1369 + x="310.40247" 70.1370 + y="313.58255" /> 70.1371 + </g> 70.1372 + <text 70.1373 + sodipodi:linespacing="100%" 70.1374 + id="text9982" 70.1375 + y="761.42468" 70.1376 + x="202.41257" 70.1377 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.1378 + xml:space="preserve"><tspan 70.1379 + id="tspan9984" 70.1380 + y="761.42468" 70.1381 + x="202.41257" 70.1382 + sodipodi:role="line" 70.1383 + style="text-align:center;text-anchor:middle;fill:#000080">Master Fn</tspan></text> 70.1384 + <path 70.1385 + sodipodi:nodetypes="cc" 70.1386 + inkscape:connector-curvature="0" 70.1387 + id="path10010" 70.1388 + d="m 266.02904,799.43113 c 0,54.93536 0,54.93536 0,54.93536" 70.1389 + style="fill:none;stroke:#000000;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:none" /> 70.1390 + <path 70.1391 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 70.1392 + d="m 258.24715,800.02605 c 13.34137,0 13.34137,0 13.34137,0" 70.1393 + id="path10012" 70.1394 + inkscape:connector-curvature="0" /> 70.1395 + <path 70.1396 + inkscape:connector-curvature="0" 70.1397 + id="path10014" 70.1398 + d="m 271.57781,854.02605 c -13.14022,0 -13.14022,0 -13.14022,0" 70.1399 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 70.1400 + <text 70.1401 + transform="matrix(0.00962718,0.99995366,-0.99995366,0.00962718,0,0)" 70.1402 + xml:space="preserve" 70.1403 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.1404 + x="837.37762" 70.1405 + y="-273.75269" 70.1406 + id="text10018" 70.1407 + sodipodi:linespacing="100%"><tspan 70.1408 + id="tspan10020" 70.1409 + style="text-align:center;text-anchor:middle;fill:#000080" 70.1410 + sodipodi:role="line" 70.1411 + x="837.37762" 70.1412 + y="-273.75269">Timeline of Master on core 2</tspan></text> 70.1413 + <path 70.1414 + inkscape:connector-curvature="0" 70.1415 + id="path10030" 70.1416 + d="m 258.24715,765.42364 c 13.34137,0 13.34137,0 13.34137,0" 70.1417 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 70.1418 + <path 70.1419 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000002, 3.00000002;stroke-dashoffset:0" 70.1420 + d="m 205.27805,543.45805 c 0,3.23577 0,3.23577 0,3.23577" 70.1421 + id="path10054" 70.1422 + inkscape:connector-curvature="0" 70.1423 + sodipodi:nodetypes="cc" /> 70.1424 + <path 70.1425 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" 70.1426 + d="m 701.67453,854.02605 c -669.895225,0 -669.895225,0 -669.895225,0" 70.1427 + id="path10056" 70.1428 + inkscape:connector-curvature="0" /> 70.1429 + <path 70.1430 + inkscape:connector-curvature="0" 70.1431 + id="path10058" 70.1432 + d="m 701.67453,799.52981 c -669.895225,0 -669.895225,0 -669.895225,0" 70.1433 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" /> 70.1434 + <text 70.1435 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 70.1436 + xml:space="preserve" 70.1437 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.1438 + x="-248.43199" 70.1439 + y="551.17401" 70.1440 + id="text10062" 70.1441 + sodipodi:linespacing="100%"><tspan 70.1442 + id="tspan10068" 70.1443 + style="font-size:8px;text-align:center;text-anchor:middle" 70.1444 + sodipodi:role="line" 70.1445 + x="-248.43199" 70.1446 + y="551.17401">return from</tspan><tspan 70.1447 + style="font-size:8px;text-align:center;text-anchor:middle" 70.1448 + sodipodi:role="line" 70.1449 + x="-248.43199" 70.1450 + y="559.17401" 70.1451 + id="tspan10074">suspend</tspan></text> 70.1452 + <path 70.1453 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" 70.1454 + d="m 701.67453,700.02605 c -669.895225,0 -669.895225,0 -669.895225,0" 70.1455 + id="path10076" 70.1456 + inkscape:connector-curvature="0" /> 70.1457 + <text 70.1458 + xml:space="preserve" 70.1459 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.1460 + x="667.38037" 70.1461 + y="677.42468" 70.1462 + id="text10082" 70.1463 + sodipodi:linespacing="100%"><tspan 70.1464 + style="text-align:center;text-anchor:middle;fill:#000080" 70.1465 + sodipodi:role="line" 70.1466 + x="667.38037" 70.1467 + y="677.42468" 70.1468 + id="tspan10084">PR primitive Fn</tspan><tspan 70.1469 + id="tspan10086" 70.1470 + style="text-align:center;text-anchor:middle;fill:#000080" 70.1471 + sodipodi:role="line" 70.1472 + x="667.38037" 70.1473 + y="687.42468">to send request</tspan></text> 70.1474 + <text 70.1475 + sodipodi:linespacing="100%" 70.1476 + id="text10088" 70.1477 + y="777.42468" 70.1478 + x="667.38037" 70.1479 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.1480 + xml:space="preserve"><tspan 70.1481 + id="tspan10090" 70.1482 + y="777.42468" 70.1483 + x="667.38037" 70.1484 + sodipodi:role="line" 70.1485 + style="text-align:center;text-anchor:middle;fill:#000080">PR primitive Fn</tspan><tspan 70.1486 + y="787.42468" 70.1487 + x="667.38037" 70.1488 + sodipodi:role="line" 70.1489 + style="text-align:center;text-anchor:middle;fill:#000080" 70.1490 + id="tspan10092">to send request</tspan></text> 70.1491 + <text 70.1492 + xml:space="preserve" 70.1493 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.1494 + x="667.38037" 70.1495 + y="889.42468" 70.1496 + id="text10094" 70.1497 + sodipodi:linespacing="100%"><tspan 70.1498 + style="text-align:center;text-anchor:middle;fill:#000080" 70.1499 + sodipodi:role="line" 70.1500 + x="667.38037" 70.1501 + y="889.42468" 70.1502 + id="tspan10096">PR primitive Fn</tspan><tspan 70.1503 + id="tspan10098" 70.1504 + style="text-align:center;text-anchor:middle;fill:#000080" 70.1505 + sodipodi:role="line" 70.1506 + x="667.38037" 70.1507 + y="899.42468">to send request</tspan></text> 70.1508 + <path 70.1509 + sodipodi:nodetypes="cc" 70.1510 + inkscape:connector-curvature="0" 70.1511 + id="path10100" 70.1512 + d="m 476.02904,854.3113 c 0,57.40944 0,57.40944 0,57.40944" 70.1513 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" /> 70.1514 + <path 70.1515 + inkscape:connector-curvature="0" 70.1516 + id="path10102" 70.1517 + d="m 481.57781,913.27417 c -13.14022,0 -13.14022,0 -13.14022,0" 70.1518 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 70.1519 + <text 70.1520 + sodipodi:linespacing="100%" 70.1521 + id="text10104" 70.1522 + y="912.22235" 70.1523 + x="487.57166" 70.1524 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.1525 + xml:space="preserve" 70.1526 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 70.1527 + id="tspan10106" 70.1528 + y="912.22235" 70.1529 + x="487.57166" 70.1530 + sodipodi:role="line" 70.1531 + style="font-size:8px;text-align:start;text-anchor:start">end</tspan></text> 70.1532 + <path 70.1533 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" 70.1534 + d="m 266.02904,911.43112 c 0,10.33165 0,10.33165 0,10.33165" 70.1535 + id="path10108" 70.1536 + inkscape:connector-curvature="0" 70.1537 + sodipodi:nodetypes="cc" /> 70.1538 + <path 70.1539 + inkscape:connector-curvature="0" 70.1540 + id="path10110" 70.1541 + d="m 258.24715,912.02605 c 13.34137,0 13.34137,0 13.34137,0" 70.1542 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 70.1543 + <path 70.1544 + inkscape:connector-curvature="0" 70.1545 + id="path10116" 70.1546 + d="m 701.67453,912.02605 c -669.895225,0 -669.895225,0 -669.895225,0" 70.1547 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" /> 70.1548 + <text 70.1549 + sodipodi:linespacing="100%" 70.1550 + id="text10118" 70.1551 + y="702.12524" 70.1552 + x="259.88855" 70.1553 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.1554 + xml:space="preserve" 70.1555 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 70.1556 + id="tspan10120" 70.1557 + y="702.12524" 70.1558 + x="259.88855" 70.1559 + sodipodi:role="line" 70.1560 + style="font-size:8px;text-align:end;text-anchor:end">resume</tspan></text> 70.1561 + <text 70.1562 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 70.1563 + xml:space="preserve" 70.1564 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.1565 + x="260.32755" 70.1566 + y="802.12433" 70.1567 + id="text10122" 70.1568 + sodipodi:linespacing="100%"><tspan 70.1569 + style="font-size:8px;text-align:end;text-anchor:end" 70.1570 + sodipodi:role="line" 70.1571 + x="260.32755" 70.1572 + y="802.12433" 70.1573 + id="tspan10124">resume</tspan></text> 70.1574 + <text 70.1575 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 70.1576 + xml:space="preserve" 70.1577 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.1578 + x="263.01257" 70.1579 + y="854.12366" 70.1580 + id="text10126" 70.1581 + sodipodi:linespacing="100%"><tspan 70.1582 + style="font-size:8px;text-align:end;text-anchor:end" 70.1583 + sodipodi:role="line" 70.1584 + x="263.01257" 70.1585 + y="854.12366" 70.1586 + id="tspan10128">suspend</tspan></text> 70.1587 + <text 70.1588 + sodipodi:linespacing="100%" 70.1589 + id="text10130" 70.1590 + y="768.09064" 70.1591 + x="259.38495" 70.1592 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.1593 + xml:space="preserve" 70.1594 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 70.1595 + id="tspan10132" 70.1596 + y="768.09064" 70.1597 + x="259.38495" 70.1598 + sodipodi:role="line" 70.1599 + style="font-size:8px;text-align:end;text-anchor:end">start</tspan></text> 70.1600 + <text 70.1601 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 70.1602 + xml:space="preserve" 70.1603 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.1604 + x="260.81906" 70.1605 + y="914.12299" 70.1606 + id="text10134" 70.1607 + sodipodi:linespacing="100%"><tspan 70.1608 + style="font-size:8px;text-align:end;text-anchor:end" 70.1609 + sodipodi:role="line" 70.1610 + x="260.81906" 70.1611 + y="914.12299" 70.1612 + id="tspan10136">resume</tspan></text> 70.1613 + <text 70.1614 + xml:space="preserve" 70.1615 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.1616 + x="136.99219" 70.1617 + y="467.42465" 70.1618 + id="text10146" 70.1619 + sodipodi:linespacing="100%"><tspan 70.1620 + style="text-align:center;text-anchor:middle;fill:#800000" 70.1621 + sodipodi:role="line" 70.1622 + x="138.49609" 70.1623 + y="467.42465" 70.1624 + id="tspan10148">Language </tspan><tspan 70.1625 + id="tspan10150" 70.1626 + style="text-align:center;text-anchor:middle;fill:#800000" 70.1627 + sodipodi:role="line" 70.1628 + x="136.99219" 70.1629 + y="477.42465">Plugin</tspan><tspan 70.1630 + id="tspan10152" 70.1631 + style="text-align:center;text-anchor:middle;fill:#800000" 70.1632 + sodipodi:role="line" 70.1633 + x="136.99219" 70.1634 + y="487.42465">Code</tspan></text> 70.1635 + <text 70.1636 + xml:space="preserve" 70.1637 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.1638 + x="203.16797" 70.1639 + y="467.42465" 70.1640 + id="text10154" 70.1641 + sodipodi:linespacing="100%"><tspan 70.1642 + style="text-align:center;text-anchor:middle;fill:#000080" 70.1643 + sodipodi:role="line" 70.1644 + x="203.16797" 70.1645 + y="467.42465" 70.1646 + id="tspan10156">Proto-Runtime</tspan><tspan 70.1647 + style="text-align:center;text-anchor:middle;fill:#000080" 70.1648 + sodipodi:role="line" 70.1649 + x="203.16797" 70.1650 + y="477.42465" 70.1651 + id="tspan10158">Master</tspan><tspan 70.1652 + id="tspan10160" 70.1653 + style="text-align:center;text-anchor:middle;fill:#000080" 70.1654 + sodipodi:role="line" 70.1655 + x="203.16797" 70.1656 + y="487.42465">Code</tspan></text> 70.1657 + <path 70.1658 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 70.1659 + d="m 205.05995,586.02605 c -67.19099,0 -67.19099,0 -67.19099,0" 70.1660 + id="path10162" 70.1661 + inkscape:connector-curvature="0" /> 70.1662 + <path 70.1663 + inkscape:connector-curvature="0" 70.1664 + id="path10164" 70.1665 + d="m 137.04459,636.02605 c 67.19099,0 67.19099,0 67.19099,0" 70.1666 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 70.1667 + <path 70.1668 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 70.1669 + d="m 67.525286,610.02605 c 69.221574,0 69.221574,0 69.221574,0" 70.1670 + id="path10166" 70.1671 + inkscape:connector-curvature="0" /> 70.1672 + <path 70.1673 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 70.1674 + d="m 67.27805,597.85824 c 0,13.94668 0,13.94668 0,13.94668" 70.1675 + id="path10168" 70.1676 + inkscape:connector-curvature="0" 70.1677 + sodipodi:nodetypes="cc" /> 70.1678 + <path 70.1679 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 70.1680 + d="m 137.04459,612.02605 c 67.19099,0 67.19099,0 67.19099,0" 70.1681 + id="path10172" 70.1682 + inkscape:connector-curvature="0" /> 70.1683 + <path 70.1684 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 70.1685 + d="m 205.27805,612.63926 c 0,11.23237 0,11.23237 0,11.23237" 70.1686 + id="path10174" 70.1687 + inkscape:connector-curvature="0" 70.1688 + sodipodi:nodetypes="cc" /> 70.1689 + <path 70.1690 + inkscape:connector-curvature="0" 70.1691 + id="path10176" 70.1692 + d="m 205.05995,624.02605 c -67.19099,0 -67.19099,0 -67.19099,0" 70.1693 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 70.1694 + <text 70.1695 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)" 70.1696 + xml:space="preserve" 70.1697 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.1698 + x="191.85561" 70.1699 + y="626.38348" 70.1700 + id="text10178" 70.1701 + sodipodi:linespacing="100%"><tspan 70.1702 + style="font-size:7px;text-align:center;text-anchor:middle" 70.1703 + sodipodi:role="line" 70.1704 + x="191.85561" 70.1705 + y="626.38348" 70.1706 + id="tspan10180">call via Ptr to Dyn Lib Fn</tspan></text> 70.1707 + <path 70.1708 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 70.1709 + d="m 137.27805,623.85824 c 0,11.43122 0,11.43122 0,11.43122" 70.1710 + id="path10182" 70.1711 + inkscape:connector-curvature="0" 70.1712 + sodipodi:nodetypes="cc" /> 70.1713 + <text 70.1714 + sodipodi:linespacing="100%" 70.1715 + id="text10184" 70.1716 + y="588.38867" 70.1717 + x="191.22707" 70.1718 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.1719 + xml:space="preserve" 70.1720 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)"><tspan 70.1721 + id="tspan10186" 70.1722 + y="588.38867" 70.1723 + x="191.22707" 70.1724 + sodipodi:role="line" 70.1725 + style="font-size:7px;text-align:center;text-anchor:middle">call via Ptr to Dyn Lib Fn</tspan></text> 70.1726 + <text 70.1727 + sodipodi:linespacing="100%" 70.1728 + id="text10188" 70.1729 + y="791.42468" 70.1730 + x="137.31689" 70.1731 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.1732 + xml:space="preserve"><tspan 70.1733 + id="tspan10190" 70.1734 + y="791.42468" 70.1735 + x="137.31689" 70.1736 + sodipodi:role="line" 70.1737 + style="text-align:center;text-anchor:middle;fill:#800000">Lang Handler</tspan><tspan 70.1738 + id="tspan10192" 70.1739 + y="801.42468" 70.1740 + x="137.31689" 70.1741 + sodipodi:role="line" 70.1742 + style="text-align:center;text-anchor:middle;fill:#800000">for acq Mutex</tspan></text> 70.1743 + <path 70.1744 + sodipodi:nodetypes="cc" 70.1745 + inkscape:connector-curvature="0" 70.1746 + id="path10230" 70.1747 + d="m 205.27805,763.45805 c 0,3.23576 0,3.23576 0,3.23576" 70.1748 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 70.1749 + <path 70.1750 + inkscape:connector-curvature="0" 70.1751 + id="path4879" 70.1752 + d="m 465.78297,700.02605 c -193.92439,0 -193.92439,0 -193.92439,0" 70.1753 + style="fill:none;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 70.1754 + <path 70.1755 + inkscape:connector-curvature="0" 70.1756 + id="path5395" 70.1757 + d="m 466.19516,580.02605 c -193.92439,0 -193.92439,0 -193.92439,0" 70.1758 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 70.1759 + <path 70.1760 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 70.1761 + d="m 466.19516,800.02605 c -193.92439,0 -193.92439,0 -193.92439,0" 70.1762 + id="path5397" 70.1763 + inkscape:connector-curvature="0" /> 70.1764 + <path 70.1765 + inkscape:connector-curvature="0" 70.1766 + id="path5399" 70.1767 + d="m 466.19516,912.02605 c -193.92439,0 -193.92439,0 -193.92439,0" 70.1768 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 70.1769 + <path 70.1770 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 70.1771 + d="m 271.03421,854.02605 c 193.92439,0 193.92439,0 193.92439,0" 70.1772 + id="path5402" 70.1773 + inkscape:connector-curvature="0" /> 70.1774 + <text 70.1775 + sodipodi:linespacing="100%" 70.1776 + id="text5410" 70.1777 + y="833.42468" 70.1778 + x="137.68066" 70.1779 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.1780 + xml:space="preserve"><tspan 70.1781 + id="tspan5412" 70.1782 + y="833.42468" 70.1783 + x="137.68066" 70.1784 + sodipodi:role="line" 70.1785 + style="text-align:center;text-anchor:middle;fill:#800000">Assigner Fn</tspan></text> 70.1786 + <path 70.1787 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 70.1788 + d="m 205.27805,800.31985 c 0,7.35629 0,7.35629 0,7.35629" 70.1789 + id="path5420" 70.1790 + inkscape:connector-curvature="0" 70.1791 + sodipodi:nodetypes="cc" /> 70.1792 + <path 70.1793 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 70.1794 + d="m 205.05995,806.02605 c -67.19099,0 -67.19099,0 -67.19099,0" 70.1795 + id="path5422" 70.1796 + inkscape:connector-curvature="0" /> 70.1797 + <path 70.1798 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 70.1799 + d="m 137.27805,805.85824 c 0,11.43122 0,11.43122 0,11.43122" 70.1800 + id="path5424" 70.1801 + inkscape:connector-curvature="0" 70.1802 + sodipodi:nodetypes="cc" /> 70.1803 + <path 70.1804 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 70.1805 + d="m 205.27805,848.63925 c 0,4.54718 0,4.54718 0,4.54718" 70.1806 + id="path5428" 70.1807 + inkscape:connector-curvature="0" 70.1808 + sodipodi:nodetypes="cc" /> 70.1809 + <text 70.1810 + sodipodi:linespacing="100%" 70.1811 + id="text5430" 70.1812 + y="761.78809" 70.1813 + x="-447.8111" 70.1814 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.1815 + xml:space="preserve" 70.1816 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 70.1817 + id="tspan5432" 70.1818 + y="761.78809" 70.1819 + x="-447.8111" 70.1820 + sodipodi:role="line" 70.1821 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan><tspan 70.1822 + y="769.78809" 70.1823 + x="-447.8111" 70.1824 + sodipodi:role="line" 70.1825 + style="font-size:8px;text-align:center;text-anchor:middle" 70.1826 + id="tspan5434">and switch</tspan><tspan 70.1827 + y="777.78809" 70.1828 + x="-447.8111" 70.1829 + sodipodi:role="line" 70.1830 + style="font-size:8px;text-align:center;text-anchor:middle" 70.1831 + id="tspan5436">to app VP</tspan></text> 70.1832 + <path 70.1833 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 70.1834 + d="m 205.27805,800.31985 c 0,7.35629 0,7.35629 0,7.35629" 70.1835 + id="path5438" 70.1836 + inkscape:connector-curvature="0" 70.1837 + sodipodi:nodetypes="cc" /> 70.1838 + <path 70.1839 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 70.1840 + d="m 205.27805,800.31985 c 0,7.35629 0,7.35629 0,7.35629" 70.1841 + id="path5440" 70.1842 + inkscape:connector-curvature="0" 70.1843 + sodipodi:nodetypes="cc" /> 70.1844 + <text 70.1845 + sodipodi:linespacing="100%" 70.1846 + id="text5446" 70.1847 + y="709.24017" 70.1848 + x="-401.45242" 70.1849 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.1850 + xml:space="preserve" 70.1851 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 70.1852 + y="709.24017" 70.1853 + x="-401.45242" 70.1854 + sodipodi:role="line" 70.1855 + style="font-size:8px;text-align:center;text-anchor:middle" 70.1856 + id="tspan5448">return from</tspan><tspan 70.1857 + id="tspan5450" 70.1858 + y="717.24017" 70.1859 + x="-401.45242" 70.1860 + sodipodi:role="line" 70.1861 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan></text> 70.1862 + <path 70.1863 + inkscape:connector-curvature="0" 70.1864 + id="path5452" 70.1865 + d="m 205.05995,806.02605 c -67.19099,0 -67.19099,0 -67.19099,0" 70.1866 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 70.1867 + <path 70.1868 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 70.1869 + d="m 137.04459,848.02605 c 67.19099,0 67.19099,0 67.19099,0" 70.1870 + id="path5454" 70.1871 + inkscape:connector-curvature="0" /> 70.1872 + <path 70.1873 + inkscape:connector-curvature="0" 70.1874 + id="path5460" 70.1875 + d="m 137.04459,820.02605 c 67.19099,0 67.19099,0 67.19099,0" 70.1876 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 70.1877 + <path 70.1878 + sodipodi:nodetypes="cc" 70.1879 + inkscape:connector-curvature="0" 70.1880 + id="path5462" 70.1881 + d="m 205.27805,820.63927 c 0,14.88618 0,14.88618 0,14.88618" 70.1882 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 70.1883 + <path 70.1884 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 70.1885 + d="m 205.05995,836.02605 c -67.19099,0 -67.19099,0 -67.19099,0" 70.1886 + id="path5464" 70.1887 + inkscape:connector-curvature="0" /> 70.1888 + <text 70.1889 + sodipodi:linespacing="100%" 70.1890 + id="text5466" 70.1891 + y="838.35522" 70.1892 + x="195.36256" 70.1893 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.1894 + xml:space="preserve" 70.1895 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)"><tspan 70.1896 + id="tspan5468" 70.1897 + y="838.35522" 70.1898 + x="195.36256" 70.1899 + sodipodi:role="line" 70.1900 + style="font-size:7px;text-align:center;text-anchor:middle">call via Ptr to Dyn Lib Fn</tspan></text> 70.1901 + <path 70.1902 + sodipodi:nodetypes="cc" 70.1903 + inkscape:connector-curvature="0" 70.1904 + id="path5470" 70.1905 + d="m 137.27805,835.85824 c 0,11.43122 0,11.43122 0,11.43122" 70.1906 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 70.1907 + <text 70.1908 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)" 70.1909 + xml:space="preserve" 70.1910 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.1911 + x="194.86635" 70.1912 + y="808.35907" 70.1913 + id="text5472" 70.1914 + sodipodi:linespacing="100%"><tspan 70.1915 + style="font-size:7px;text-align:center;text-anchor:middle" 70.1916 + sodipodi:role="line" 70.1917 + x="194.86635" 70.1918 + y="808.35907" 70.1919 + id="tspan5474">call via Ptr to Dyn Lib Fn</tspan></text> 70.1920 + <text 70.1921 + sodipodi:linespacing="100%" 70.1922 + id="text5476" 70.1923 + y="713.48187" 70.1924 + x="-172.78647" 70.1925 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.1926 + xml:space="preserve" 70.1927 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 70.1928 + y="713.48187" 70.1929 + x="-172.78647" 70.1930 + sodipodi:role="line" 70.1931 + style="font-size:18px;text-align:center;text-anchor:middle" 70.1932 + id="tspan5482">core 1</tspan></text> 70.1933 + <text 70.1934 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 70.1935 + xml:space="preserve" 70.1936 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.1937 + x="-321.0329" 70.1938 + y="865.03326" 70.1939 + id="text5488" 70.1940 + sodipodi:linespacing="100%"><tspan 70.1941 + id="tspan5490" 70.1942 + style="font-size:18px;text-align:center;text-anchor:middle" 70.1943 + sodipodi:role="line" 70.1944 + x="-321.0329" 70.1945 + y="865.03326">core 2</tspan></text> 70.1946 + <path 70.1947 + sodipodi:nodetypes="cc" 70.1948 + inkscape:connector-curvature="0" 70.1949 + id="path5492" 70.1950 + d="m 205.27805,914.31985 c 0,7.35629 0,7.35629 0,7.35629" 70.1951 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 70.1952 + <path 70.1953 + sodipodi:nodetypes="cc" 70.1954 + inkscape:connector-curvature="0" 70.1955 + id="path5494" 70.1956 + d="m 205.27805,914.31985 c 0,7.35629 0,7.35629 0,7.35629" 70.1957 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 70.1958 + <path 70.1959 + sodipodi:nodetypes="cc" 70.1960 + inkscape:connector-curvature="0" 70.1961 + id="path5496" 70.1962 + d="m 205.27805,914.31985 c 0,7.35629 0,7.35629 0,7.35629" 70.1963 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 70.1964 + <text 70.1965 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 70.1966 + xml:space="preserve" 70.1967 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.1968 + x="-480.74414" 70.1969 + y="791.14636" 70.1970 + id="text5498" 70.1971 + sodipodi:linespacing="100%"><tspan 70.1972 + id="tspan5500" 70.1973 + style="font-size:8px;text-align:center;text-anchor:middle" 70.1974 + sodipodi:role="line" 70.1975 + x="-480.74414" 70.1976 + y="791.14636">return from</tspan><tspan 70.1977 + style="font-size:8px;text-align:center;text-anchor:middle" 70.1978 + sodipodi:role="line" 70.1979 + x="-480.74414" 70.1980 + y="799.14636" 70.1981 + id="tspan5502">suspend</tspan></text> 70.1982 + <path 70.1983 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 70.1984 + d="m 205.27805,700.31985 c 0,7.35629 0,7.35629 0,7.35629" 70.1985 + id="path5504" 70.1986 + inkscape:connector-curvature="0" 70.1987 + sodipodi:nodetypes="cc" /> 70.1988 + <path 70.1989 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 70.1990 + d="m 205.27805,700.31985 c 0,7.35629 0,7.35629 0,7.35629" 70.1991 + id="path5506" 70.1992 + inkscape:connector-curvature="0" 70.1993 + sodipodi:nodetypes="cc" /> 70.1994 + <path 70.1995 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 70.1996 + d="m 205.27805,700.31985 c 0,7.35629 0,7.35629 0,7.35629" 70.1997 + id="path5508" 70.1998 + inkscape:connector-curvature="0" 70.1999 + sodipodi:nodetypes="cc" /> 70.2000 + <text 70.2001 + sodipodi:linespacing="100%" 70.2002 + id="text5510" 70.2003 + y="637.39264" 70.2004 + x="-331.89792" 70.2005 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.2006 + xml:space="preserve" 70.2007 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 70.2008 + y="637.39264" 70.2009 + x="-331.89792" 70.2010 + sodipodi:role="line" 70.2011 + style="font-size:8px;text-align:center;text-anchor:middle" 70.2012 + id="tspan5512">return from</tspan><tspan 70.2013 + id="tspan5514" 70.2014 + y="645.39264" 70.2015 + x="-331.89792" 70.2016 + sodipodi:role="line" 70.2017 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan></text> 70.2018 + <path 70.2019 + inkscape:connector-curvature="0" 70.2020 + id="path5516" 70.2021 + d="m 271.03421,766.02605 c 193.92439,0 193.92439,0 193.92439,0" 70.2022 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 70.2023 + <path 70.2024 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 70.2025 + d="m 271.03421,546.02605 c 193.92439,0 193.92439,0 193.92439,0" 70.2026 + id="path5518" 70.2027 + inkscape:connector-curvature="0" /> 70.2028 + <text 70.2029 + xml:space="preserve" 70.2030 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.2031 + x="326.92542" 70.2032 + y="155.76575" 70.2033 + id="text3329" 70.2034 + sodipodi:linespacing="100%"><tspan 70.2035 + style="text-align:center;text-anchor:middle" 70.2036 + sodipodi:role="line" 70.2037 + id="tspan3331" 70.2038 + x="326.92542" 70.2039 + y="155.76575">PR OS thread</tspan><tspan 70.2040 + id="tspan3335" 70.2041 + style="font-size:8px;text-align:center;text-anchor:middle" 70.2042 + sodipodi:role="line" 70.2043 + x="326.92542" 70.2044 + y="164.20053">(core1)</tspan></text> 70.2045 + <g 70.2046 + transform="translate(44.002789,-346)" 70.2047 + id="g3337"> 70.2048 + <rect 70.2049 + y="389.58255" 70.2050 + x="346.40247" 70.2051 + height="37.165791" 70.2052 + width="65.276405" 70.2053 + id="rect3339" 70.2054 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 70.2055 + <text 70.2056 + xml:space="preserve" 70.2057 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.2058 + x="379.00162" 70.2059 + y="400.15268" 70.2060 + id="text3341" 70.2061 + sodipodi:linespacing="100%"><tspan 70.2062 + id="tspan3349" 70.2063 + style="font-size:8px;text-align:center;text-anchor:middle;fill:#008000" 70.2064 + sodipodi:role="line" 70.2065 + x="379.00162" 70.2066 + y="400.15268"><tspan 70.2067 + id="tspan3641" 70.2068 + style="font-size:10px;text-align:center;text-anchor:middle;fill:#008000">Main </tspan>OS thread</tspan></text> 70.2069 + </g> 70.2070 + <text 70.2071 + xml:space="preserve" 70.2072 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.2073 + x="517.16797" 70.2074 + y="81.424683" 70.2075 + id="text3351" 70.2076 + sodipodi:linespacing="100%"><tspan 70.2077 + style="text-align:center;text-anchor:middle;fill:#008000" 70.2078 + sodipodi:role="line" 70.2079 + x="517.16797" 70.2080 + y="81.424683" 70.2081 + id="tspan3353">main</tspan></text> 70.2082 + <text 70.2083 + sodipodi:linespacing="100%" 70.2084 + id="text3355" 70.2085 + y="273.42468" 70.2086 + x="137.31689" 70.2087 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.2088 + xml:space="preserve"><tspan 70.2089 + id="tspan3357" 70.2090 + y="273.42468" 70.2091 + x="137.31689" 70.2092 + sodipodi:role="line" 70.2093 + style="text-align:center;text-anchor:middle;fill:#800000">Lang Handler</tspan><tspan 70.2094 + id="tspan3359" 70.2095 + y="283.42468" 70.2096 + x="137.31689" 70.2097 + sodipodi:role="line" 70.2098 + style="text-align:center;text-anchor:middle;fill:#800000">for create VP</tspan></text> 70.2099 + <text 70.2100 + sodipodi:linespacing="100%" 70.2101 + id="text3361" 70.2102 + y="321.42468" 70.2103 + x="137.68066" 70.2104 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.2105 + xml:space="preserve"><tspan 70.2106 + id="tspan3363" 70.2107 + y="321.42468" 70.2108 + x="137.68066" 70.2109 + sodipodi:role="line" 70.2110 + style="text-align:center;text-anchor:middle;fill:#800000">Assigner Fn</tspan></text> 70.2111 + <path 70.2112 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999996, 2.99999996;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 70.2113 + d="m 457.32649,78.02605 c 38.42351,0 38.42351,0 38.42351,0" 70.2114 + id="path3365" 70.2115 + inkscape:connector-curvature="0" /> 70.2116 + <text 70.2117 + sodipodi:linespacing="100%" 70.2118 + id="text3367" 70.2119 + y="63.424683" 70.2120 + x="604.78461" 70.2121 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.2122 + xml:space="preserve"><tspan 70.2123 + id="tspan3371" 70.2124 + y="63.424683" 70.2125 + x="604.78461" 70.2126 + sodipodi:role="line" 70.2127 + style="text-align:center;text-anchor:middle;fill:#800000">PR_start()</tspan></text> 70.2128 + <text 70.2129 + sodipodi:linespacing="100%" 70.2130 + id="text3373" 70.2131 + y="107.0096" 70.2132 + x="633.32379" 70.2133 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.2134 + xml:space="preserve" 70.2135 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)"><tspan 70.2136 + id="tspan3375" 70.2137 + y="107.0096" 70.2138 + x="633.32379" 70.2139 + sodipodi:role="line" 70.2140 + style="font-size:8px;text-align:center;text-anchor:middle">Call to dyn lib</tspan></text> 70.2141 + <path 70.2142 + inkscape:connector-curvature="0" 70.2143 + id="path3377" 70.2144 + d="m 291.99816,238.02605 c -63.44071,0 -63.44071,0 -63.44071,0" 70.2145 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000003, 3.00000003;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 70.2146 + <text 70.2147 + transform="matrix(0.97994281,-0.19927893,0.19927893,0.97994281,0,0)" 70.2148 + xml:space="preserve" 70.2149 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.2150 + x="208.23512" 70.2151 + y="280.55707" 70.2152 + id="text3379" 70.2153 + sodipodi:linespacing="100%"><tspan 70.2154 + style="font-size:8px;text-align:center;text-anchor:middle" 70.2155 + sodipodi:role="line" 70.2156 + x="208.23512" 70.2157 + y="280.55707" 70.2158 + id="tspan3381">Top Level Fn</tspan></text> 70.2159 + <text 70.2160 + sodipodi:linespacing="100%" 70.2161 + id="text3383" 70.2162 + y="166.44456" 70.2163 + x="460.02557" 70.2164 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.2165 + xml:space="preserve" 70.2166 + transform="matrix(0.97994281,-0.19927893,0.19927893,0.97994281,0,0)"><tspan 70.2167 + id="tspan3385" 70.2168 + y="166.44456" 70.2169 + x="460.02557" 70.2170 + sodipodi:role="line" 70.2171 + style="font-size:8px;text-align:center;text-anchor:middle">birth Fn</tspan></text> 70.2172 + <path 70.2173 + sodipodi:nodetypes="cc" 70.2174 + inkscape:connector-curvature="0" 70.2175 + id="path3387" 70.2176 + d="m 514.02904,84.01894 c 0,5.6572 0,5.6572 0,5.6572" 70.2177 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 70.2178 + <path 70.2179 + inkscape:connector-curvature="0" 70.2180 + id="path3389" 70.2181 + d="m 514.24714,90.02605 c 85.56237,0 85.56237,0 85.56237,0" 70.2182 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 70.2183 + <path 70.2184 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 70.2185 + d="m 602.77166,358.02605 c -88.41298,0 -88.41298,0 -88.41298,0" 70.2186 + id="path3391" 70.2187 + inkscape:connector-curvature="0" /> 70.2188 + <path 70.2189 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 70.2190 + d="m 514.02904,358.31987 c 0,26.21842 0,26.21842 0,26.21842" 70.2191 + id="path3393" 70.2192 + inkscape:connector-curvature="0" 70.2193 + sodipodi:nodetypes="cc" /> 70.2194 + <path 70.2195 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 70.2196 + d="m 514.2471,384.02605 c 87.58783,0 87.58783,0 87.58783,0" 70.2197 + id="path3395" 70.2198 + inkscape:connector-curvature="0" /> 70.2199 + <text 70.2200 + xml:space="preserve" 70.2201 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.2202 + x="604.78461" 70.2203 + y="370.71179" 70.2204 + id="text3397" 70.2205 + sodipodi:linespacing="100%"><tspan 70.2206 + style="text-align:center;text-anchor:middle;fill:#800000" 70.2207 + sodipodi:role="line" 70.2208 + x="604.78461" 70.2209 + y="370.71179" 70.2210 + id="tspan3399">end VP</tspan><tspan 70.2211 + id="tspan3401" 70.2212 + style="text-align:center;text-anchor:middle;fill:#800000" 70.2213 + sodipodi:role="line" 70.2214 + x="604.78461" 70.2215 + y="380.71179">wrapper Fn</tspan></text> 70.2216 + <path 70.2217 + inkscape:connector-curvature="0" 70.2218 + id="path3403" 70.2219 + d="m 602.26584,390.02605 c 63.99676,0 63.99676,0 63.99676,0" 70.2220 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 70.2221 + <path 70.2222 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 70.2223 + d="m 602.02904,382.31985 c 0,7.35629 0,7.35629 0,7.35629" 70.2224 + id="path3405" 70.2225 + inkscape:connector-curvature="0" 70.2226 + sodipodi:nodetypes="cc" /> 70.2227 + <path 70.2228 + sodipodi:nodetypes="cc" 70.2229 + inkscape:connector-curvature="0" 70.2230 + id="path3407" 70.2231 + d="m 602.02904,90.21843 c 0,19.4577 0,19.4577 0,19.4577" 70.2232 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 70.2233 + <path 70.2234 + inkscape:connector-curvature="0" 70.2235 + id="path3409" 70.2236 + d="m 602.24714,110.02605 c 64.71029,0 64.71029,0 64.71029,0" 70.2237 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 70.2238 + <path 70.2239 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 70.2240 + d="m 666.85635,354.02605 c -65.78483,0 -65.78483,0 -65.78483,0" 70.2241 + id="path3411" 70.2242 + inkscape:connector-curvature="0" /> 70.2243 + <path 70.2244 + sodipodi:nodetypes="cc" 70.2245 + inkscape:connector-curvature="0" 70.2246 + id="path3413" 70.2247 + d="m 668.02904,108.63925 c 0,13.68455 0,13.68455 0,13.68455" 70.2248 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 70.2249 + <path 70.2250 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 70.2251 + d="m 602.02904,353.22687 c 0,5.5885 0,5.5885 0,5.5885" 70.2252 + id="path3415" 70.2253 + inkscape:connector-curvature="0" 70.2254 + sodipodi:nodetypes="cc" /> 70.2255 + <path 70.2256 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 70.2257 + d="m 668.02904,340.63925 c 0,13.68455 0,13.68455 0,13.68455" 70.2258 + id="path3417" 70.2259 + inkscape:connector-curvature="0" 70.2260 + sodipodi:nodetypes="cc" /> 70.2261 + <text 70.2262 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 70.2263 + xml:space="preserve" 70.2264 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.2265 + x="395.64081" 70.2266 + y="556.71735" 70.2267 + id="text3419" 70.2268 + sodipodi:linespacing="100%"><tspan 70.2269 + style="font-size:8px;text-align:center;text-anchor:middle" 70.2270 + sodipodi:role="line" 70.2271 + x="395.64081" 70.2272 + y="556.71735" 70.2273 + id="tspan3421">suspend</tspan><tspan 70.2274 + id="tspan3423" 70.2275 + style="font-size:8px;text-align:center;text-anchor:middle" 70.2276 + sodipodi:role="line" 70.2277 + x="395.64081" 70.2278 + y="564.71735">and switch</tspan><tspan 70.2279 + id="tspan3425" 70.2280 + style="font-size:8px;text-align:center;text-anchor:middle" 70.2281 + sodipodi:role="line" 70.2282 + x="395.64081" 70.2283 + y="572.71735">to runtime</tspan></text> 70.2284 + <path 70.2285 + inkscape:connector-curvature="0" 70.2286 + id="path3427" 70.2287 + d="m 271.03421,342.02605 c 193.92439,0 193.92439,0 193.92439,0" 70.2288 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 70.2289 + <text 70.2290 + sodipodi:linespacing="100%" 70.2291 + id="text3429" 70.2292 + y="703.28741" 70.2293 + x="253.74896" 70.2294 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.2295 + xml:space="preserve" 70.2296 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 70.2297 + y="703.28741" 70.2298 + x="253.74896" 70.2299 + sodipodi:role="line" 70.2300 + style="font-size:8px;text-align:center;text-anchor:middle" 70.2301 + id="tspan3431">return</tspan><tspan 70.2302 + id="tspan3433" 70.2303 + y="711.28741" 70.2304 + x="253.74896" 70.2305 + sodipodi:role="line" 70.2306 + style="font-size:8px;text-align:center;text-anchor:middle">from</tspan><tspan 70.2307 + id="tspan3435" 70.2308 + y="719.28741" 70.2309 + x="253.74896" 70.2310 + sodipodi:role="line" 70.2311 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan></text> 70.2312 + <text 70.2313 + xml:space="preserve" 70.2314 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.2315 + x="601.38037" 70.2316 + y="83.424683" 70.2317 + id="text3437" 70.2318 + sodipodi:linespacing="100%"><tspan 70.2319 + id="tspan3441" 70.2320 + style="text-align:center;text-anchor:middle;fill:#000080" 70.2321 + sodipodi:role="line" 70.2322 + x="601.38037" 70.2323 + y="83.424683">PR__start()</tspan></text> 70.2324 + <text 70.2325 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 70.2326 + xml:space="preserve" 70.2327 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.2328 + x="553.98218" 70.2329 + y="94.71698" 70.2330 + id="text3443" 70.2331 + sodipodi:linespacing="100%"><tspan 70.2332 + style="font-size:8px;text-align:center;text-anchor:middle" 70.2333 + sodipodi:role="line" 70.2334 + x="553.98218" 70.2335 + y="94.71698" 70.2336 + id="tspan3445">normal call</tspan></text> 70.2337 + <path 70.2338 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 70.2339 + d="m 668.02904,389.28283 c 0,13.68455 0,13.68455 0,13.68455" 70.2340 + id="path3447" 70.2341 + inkscape:connector-curvature="0" 70.2342 + sodipodi:nodetypes="cc" /> 70.2343 + <text 70.2344 + sodipodi:linespacing="100%" 70.2345 + id="text3449" 70.2346 + y="757.8457" 70.2347 + x="203.71536" 70.2348 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.2349 + xml:space="preserve" 70.2350 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 70.2351 + id="tspan3451" 70.2352 + y="757.8457" 70.2353 + x="203.71536" 70.2354 + sodipodi:role="line" 70.2355 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan><tspan 70.2356 + y="765.8457" 70.2357 + x="203.71536" 70.2358 + sodipodi:role="line" 70.2359 + style="font-size:8px;text-align:center;text-anchor:middle" 70.2360 + id="tspan3453">and switch</tspan><tspan 70.2361 + y="773.8457" 70.2362 + x="203.71536" 70.2363 + sodipodi:role="line" 70.2364 + style="font-size:8px;text-align:center;text-anchor:middle" 70.2365 + id="tspan3455">to runtime</tspan></text> 70.2366 + <text 70.2367 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 70.2368 + xml:space="preserve" 70.2369 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.2370 + x="555.27264" 70.2371 + y="388.71307" 70.2372 + id="text3457" 70.2373 + sodipodi:linespacing="100%"><tspan 70.2374 + style="font-size:8px;text-align:center;text-anchor:middle" 70.2375 + sodipodi:role="line" 70.2376 + x="555.27264" 70.2377 + y="388.71307" 70.2378 + id="tspan3459">normal call</tspan></text> 70.2379 + <g 70.2380 + id="g3461" 70.2381 + transform="matrix(1,0,0,0.71130685,-16,-77.47087)"> 70.2382 + <rect 70.2383 + style="fill:none;stroke:#000000;stroke-width:1.28076112;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 70.2384 + id="rect3463" 70.2385 + width="65.276405" 70.2386 + height="52.250008" 70.2387 + x="310.40247" 70.2388 + y="313.58255" /> 70.2389 + </g> 70.2390 + <path 70.2391 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 70.2392 + d="m 514.02904,358.31987 c 0,26.21842 0,26.21842 0,26.21842" 70.2393 + id="path3465" 70.2394 + inkscape:connector-curvature="0" 70.2395 + sodipodi:nodetypes="cc" /> 70.2396 + <path 70.2397 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:none" 70.2398 + d="m 476.02904,84.79398 c 0,35.61575 0,35.61575 0,35.61575" 70.2399 + id="path3467" 70.2400 + inkscape:connector-curvature="0" 70.2401 + sodipodi:nodetypes="cc" /> 70.2402 + <path 70.2403 + inkscape:connector-curvature="0" 70.2404 + id="path3469" 70.2405 + d="m 468.24715,120.02605 c 13.34137,0 13.34137,0 13.34137,0" 70.2406 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 70.2407 + <path 70.2408 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 70.2409 + d="m 481.57781,342.02605 c -13.14022,0 -13.14022,0 -13.14022,0" 70.2410 + id="path3471" 70.2411 + inkscape:connector-curvature="0" /> 70.2412 + <path 70.2413 + sodipodi:nodetypes="cc" 70.2414 + inkscape:connector-curvature="0" 70.2415 + id="path3473" 70.2416 + d="m 476.02904,342.3113 c 0,57.40944 0,57.40944 0,57.40944" 70.2417 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" /> 70.2418 + <path 70.2419 + inkscape:connector-curvature="0" 70.2420 + id="path3475" 70.2421 + d="m 481.57781,401.27417 c -13.14022,0 -13.14022,0 -13.14022,0" 70.2422 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 70.2423 + <text 70.2424 + sodipodi:linespacing="100%" 70.2425 + id="text3477" 70.2426 + y="-463.80295" 70.2427 + x="315.95734" 70.2428 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.2429 + xml:space="preserve" 70.2430 + transform="matrix(-0.01875541,0.9998241,-0.9998241,-0.01875541,0,0)"><tspan 70.2431 + id="tspan3479" 70.2432 + y="-463.80295" 70.2433 + x="315.95734" 70.2434 + sodipodi:role="line" 70.2435 + style="text-align:center;text-anchor:middle;fill:#008000">Timeline of SeedVP</tspan></text> 70.2436 + <text 70.2437 + sodipodi:linespacing="100%" 70.2438 + id="text3481" 70.2439 + y="119.02372" 70.2440 + x="484.08911" 70.2441 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.2442 + xml:space="preserve" 70.2443 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 70.2444 + id="tspan3483" 70.2445 + y="119.02372" 70.2446 + x="484.08911" 70.2447 + sodipodi:role="line" 70.2448 + style="font-size:8px;text-align:start;text-anchor:start">suspend</tspan></text> 70.2449 + <text 70.2450 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 70.2451 + xml:space="preserve" 70.2452 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.2453 + x="485.07266" 70.2454 + y="343.02161" 70.2455 + id="text3485" 70.2456 + sodipodi:linespacing="100%"><tspan 70.2457 + style="font-size:8px;text-align:start;text-anchor:start" 70.2458 + sodipodi:role="line" 70.2459 + x="485.07266" 70.2460 + y="343.02161" 70.2461 + id="tspan3487">resume</tspan></text> 70.2462 + <text 70.2463 + sodipodi:linespacing="100%" 70.2464 + id="text3489" 70.2465 + y="400.22711" 70.2466 + x="485.32407" 70.2467 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.2468 + xml:space="preserve" 70.2469 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 70.2470 + id="tspan3491" 70.2471 + y="400.22711" 70.2472 + x="485.32407" 70.2473 + sodipodi:role="line" 70.2474 + style="font-size:8px;text-align:start;text-anchor:start">end</tspan></text> 70.2475 + <text 70.2476 + sodipodi:linespacing="100%" 70.2477 + id="text3493" 70.2478 + y="285.42468" 70.2479 + x="65.380371" 70.2480 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.2481 + xml:space="preserve"><tspan 70.2482 + y="285.42468" 70.2483 + x="65.380371" 70.2484 + sodipodi:role="line" 70.2485 + style="text-align:center;text-anchor:middle;fill:#000080" 70.2486 + id="tspan3495">PR primitive Fn</tspan><tspan 70.2487 + id="tspan3497" 70.2488 + y="295.42468" 70.2489 + x="65.380371" 70.2490 + sodipodi:role="line" 70.2491 + style="text-align:center;text-anchor:middle;fill:#000080">to create VP</tspan></text> 70.2492 + <text 70.2493 + sodipodi:linespacing="100%" 70.2494 + id="text3499" 70.2495 + y="241.42468" 70.2496 + x="202.41257" 70.2497 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.2498 + xml:space="preserve"><tspan 70.2499 + id="tspan3501" 70.2500 + y="241.42468" 70.2501 + x="202.41257" 70.2502 + sodipodi:role="line" 70.2503 + style="text-align:center;text-anchor:middle;fill:#000080">Master Fn</tspan></text> 70.2504 + <path 70.2505 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 70.2506 + d="m 205.27805,280.31985 c 0,7.35629 0,7.35629 0,7.35629" 70.2507 + id="path3503" 70.2508 + inkscape:connector-curvature="0" 70.2509 + sodipodi:nodetypes="cc" /> 70.2510 + <path 70.2511 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 70.2512 + d="m 205.05995,286.02605 c -67.19099,0 -67.19099,0 -67.19099,0" 70.2513 + id="path3505" 70.2514 + inkscape:connector-curvature="0" /> 70.2515 + <path 70.2516 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 70.2517 + d="m 137.27805,285.85824 c 0,11.43122 0,11.43122 0,11.43122" 70.2518 + id="path3507" 70.2519 + inkscape:connector-curvature="0" 70.2520 + sodipodi:nodetypes="cc" /> 70.2521 + <path 70.2522 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 70.2523 + d="m 137.57123,298.02605 c -69.22157,0 -69.22157,0 -69.22157,0" 70.2524 + id="path3509" 70.2525 + inkscape:connector-curvature="0" /> 70.2526 + <path 70.2527 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 70.2528 + d="m 205.27805,336.63925 c 0,4.54718 0,4.54718 0,4.54718" 70.2529 + id="path3511" 70.2530 + inkscape:connector-curvature="0" 70.2531 + sodipodi:nodetypes="cc" /> 70.2532 + <text 70.2533 + sodipodi:linespacing="100%" 70.2534 + id="text3513" 70.2535 + y="393.92554" 70.2536 + x="-91.691048" 70.2537 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.2538 + xml:space="preserve" 70.2539 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 70.2540 + id="tspan3515" 70.2541 + y="393.92554" 70.2542 + x="-91.691048" 70.2543 + sodipodi:role="line" 70.2544 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan><tspan 70.2545 + y="401.92554" 70.2546 + x="-91.691048" 70.2547 + sodipodi:role="line" 70.2548 + style="font-size:8px;text-align:center;text-anchor:middle" 70.2549 + id="tspan3517">and switch</tspan><tspan 70.2550 + y="409.92554" 70.2551 + x="-91.691048" 70.2552 + sodipodi:role="line" 70.2553 + style="font-size:8px;text-align:center;text-anchor:middle" 70.2554 + id="tspan3519">to app VP</tspan></text> 70.2555 + <path 70.2556 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 70.2557 + d="m 205.27805,280.31985 c 0,7.35629 0,7.35629 0,7.35629" 70.2558 + id="path3521" 70.2559 + inkscape:connector-curvature="0" 70.2560 + sodipodi:nodetypes="cc" /> 70.2561 + <path 70.2562 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 70.2563 + d="m 205.27805,280.31985 c 0,7.35629 0,7.35629 0,7.35629" 70.2564 + id="path3523" 70.2565 + inkscape:connector-curvature="0" 70.2566 + sodipodi:nodetypes="cc" /> 70.2567 + <path 70.2568 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 70.2569 + d="m 468.24715,85.42364 c 13.34137,0 13.34137,0 13.34137,0" 70.2570 + id="path3525" 70.2571 + inkscape:connector-curvature="0" /> 70.2572 + <text 70.2573 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 70.2574 + xml:space="preserve" 70.2575 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.2576 + x="483.94849" 70.2577 + y="87.025322" 70.2578 + id="text3527" 70.2579 + sodipodi:linespacing="100%"><tspan 70.2580 + style="font-size:8px;text-align:start;text-anchor:start" 70.2581 + sodipodi:role="line" 70.2582 + x="483.94849" 70.2583 + y="87.025322" 70.2584 + id="tspan3529">start</tspan></text> 70.2585 + <path 70.2586 + sodipodi:nodetypes="cc" 70.2587 + inkscape:connector-curvature="0" 70.2588 + id="path3531" 70.2589 + d="m 266.02904,279.4311 c 0,61.88904 0,61.88904 0,61.88904" 70.2590 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:none" /> 70.2591 + <path 70.2592 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 70.2593 + d="m 258.24715,280.02605 c 13.34137,0 13.34137,0 13.34137,0" 70.2594 + id="path3533" 70.2595 + inkscape:connector-curvature="0" /> 70.2596 + <path 70.2597 + inkscape:connector-curvature="0" 70.2598 + id="path3535" 70.2599 + d="m 271.57781,342.02605 c -13.14022,0 -13.14022,0 -13.14022,0" 70.2600 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 70.2601 + <text 70.2602 + transform="matrix(0.00239328,0.99999714,-0.99999714,0.00239328,0,0)" 70.2603 + xml:space="preserve" 70.2604 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.2605 + x="325.34094" 70.2606 + y="-277.03549" 70.2607 + id="text3537" 70.2608 + sodipodi:linespacing="100%"><tspan 70.2609 + id="tspan3539" 70.2610 + style="text-align:center;text-anchor:middle;fill:#000080" 70.2611 + sodipodi:role="line" 70.2612 + x="325.34094" 70.2613 + y="-277.03549">Timeline of Master on core 1</tspan></text> 70.2614 + <text 70.2615 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 70.2616 + xml:space="preserve" 70.2617 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.2618 + x="260.76508" 70.2619 + y="342.12805" 70.2620 + id="text3541" 70.2621 + sodipodi:linespacing="100%"><tspan 70.2622 + style="font-size:8px;text-align:end;text-anchor:end" 70.2623 + sodipodi:role="line" 70.2624 + x="260.76508" 70.2625 + y="342.12805" 70.2626 + id="tspan3543">suspend</tspan></text> 70.2627 + <text 70.2628 + sodipodi:linespacing="100%" 70.2629 + id="text3545" 70.2630 + y="282.12848" 70.2631 + x="258.04468" 70.2632 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.2633 + xml:space="preserve" 70.2634 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 70.2635 + id="tspan3547" 70.2636 + y="282.12848" 70.2637 + x="258.04468" 70.2638 + sodipodi:role="line" 70.2639 + style="font-size:8px;text-align:end;text-anchor:end">resume</tspan></text> 70.2640 + <path 70.2641 + inkscape:connector-curvature="0" 70.2642 + id="path3549" 70.2643 + d="m 258.24715,245.42364 c 13.34137,0 13.34137,0 13.34137,0" 70.2644 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 70.2645 + <text 70.2646 + sodipodi:linespacing="100%" 70.2647 + id="text3551" 70.2648 + y="248.09499" 70.2649 + x="257.10217" 70.2650 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.2651 + xml:space="preserve" 70.2652 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 70.2653 + id="tspan3553" 70.2654 + y="248.09499" 70.2655 + x="257.10217" 70.2656 + sodipodi:role="line" 70.2657 + style="font-size:8px;text-align:end;text-anchor:end">start</tspan></text> 70.2658 + <path 70.2659 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" 70.2660 + d="m 266.02904,399.43112 c 0,10.33165 0,10.33165 0,10.33165" 70.2661 + id="path3555" 70.2662 + inkscape:connector-curvature="0" 70.2663 + sodipodi:nodetypes="cc" /> 70.2664 + <path 70.2665 + inkscape:connector-curvature="0" 70.2666 + id="path3557" 70.2667 + d="m 258.24715,400.02605 c 13.34137,0 13.34137,0 13.34137,0" 70.2668 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 70.2669 + <text 70.2670 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)" 70.2671 + xml:space="preserve" 70.2672 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.2673 + x="637.95691" 70.2674 + y="386.97339" 70.2675 + id="text3559" 70.2676 + sodipodi:linespacing="100%"><tspan 70.2677 + style="font-size:8px;text-align:center;text-anchor:middle" 70.2678 + sodipodi:role="line" 70.2679 + x="637.95691" 70.2680 + y="386.97339" 70.2681 + id="tspan3561">Call to dyn lib</tspan></text> 70.2682 + <text 70.2683 + sodipodi:linespacing="100%" 70.2684 + id="text3563" 70.2685 + y="303.68701" 70.2686 + x="110.50755" 70.2687 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.2688 + xml:space="preserve" 70.2689 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)"><tspan 70.2690 + id="tspan3565" 70.2691 + y="303.68701" 70.2692 + x="110.50755" 70.2693 + sodipodi:role="line" 70.2694 + style="font-size:8px;text-align:center;text-anchor:middle">call to dyn lib</tspan></text> 70.2695 + <path 70.2696 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" 70.2697 + d="m 701.67453,342.02605 c -669.895225,0 -669.895225,0 -669.895225,0" 70.2698 + id="path3567" 70.2699 + inkscape:connector-curvature="0" /> 70.2700 + <path 70.2701 + inkscape:connector-curvature="0" 70.2702 + id="path3569" 70.2703 + d="m 701.67453,279.52981 c -669.895225,0 -669.895225,0 -669.895225,0" 70.2704 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" /> 70.2705 + <path 70.2706 + sodipodi:nodetypes="cc" 70.2707 + inkscape:connector-curvature="0" 70.2708 + id="path3571" 70.2709 + d="m 205.27805,243.45805 c 0,3.23577 0,3.23577 0,3.23577" 70.2710 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000002, 3.00000002;stroke-dashoffset:0" /> 70.2711 + <text 70.2712 + sodipodi:linespacing="100%" 70.2713 + id="text3573" 70.2714 + y="335.62958" 70.2715 + x="-39.767914" 70.2716 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.2717 + xml:space="preserve" 70.2718 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 70.2719 + y="335.62958" 70.2720 + x="-39.767914" 70.2721 + sodipodi:role="line" 70.2722 + style="font-size:8px;text-align:center;text-anchor:middle" 70.2723 + id="tspan3575">return from</tspan><tspan 70.2724 + id="tspan3577" 70.2725 + y="343.62958" 70.2726 + x="-39.767914" 70.2727 + sodipodi:role="line" 70.2728 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan></text> 70.2729 + <path 70.2730 + inkscape:connector-curvature="0" 70.2731 + id="path3579" 70.2732 + d="m 701.67453,400.02605 c -669.895225,0 -669.895225,0 -669.895225,0" 70.2733 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" /> 70.2734 + <text 70.2735 + sodipodi:linespacing="100%" 70.2736 + id="text3581" 70.2737 + y="377.42468" 70.2738 + x="667.38037" 70.2739 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.2740 + xml:space="preserve"><tspan 70.2741 + id="tspan3583" 70.2742 + y="377.42468" 70.2743 + x="667.38037" 70.2744 + sodipodi:role="line" 70.2745 + style="text-align:center;text-anchor:middle;fill:#000080">PR primitive Fn</tspan><tspan 70.2746 + y="387.42468" 70.2747 + x="667.38037" 70.2748 + sodipodi:role="line" 70.2749 + style="text-align:center;text-anchor:middle;fill:#000080" 70.2750 + id="tspan3585">to send request</tspan></text> 70.2751 + <text 70.2752 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 70.2753 + xml:space="preserve" 70.2754 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.2755 + x="258.57156" 70.2756 + y="402.12799" 70.2757 + id="text3587" 70.2758 + sodipodi:linespacing="100%"><tspan 70.2759 + style="font-size:8px;text-align:end;text-anchor:end" 70.2760 + sodipodi:role="line" 70.2761 + x="258.57156" 70.2762 + y="402.12799" 70.2763 + id="tspan3589">resume</tspan></text> 70.2764 + <path 70.2765 + inkscape:connector-curvature="0" 70.2766 + id="path3591" 70.2767 + d="m 205.05995,286.02605 c -67.19099,0 -67.19099,0 -67.19099,0" 70.2768 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 70.2769 + <path 70.2770 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 70.2771 + d="m 137.04459,336.02605 c 67.19099,0 67.19099,0 67.19099,0" 70.2772 + id="path3593" 70.2773 + inkscape:connector-curvature="0" /> 70.2774 + <path 70.2775 + inkscape:connector-curvature="0" 70.2776 + id="path3595" 70.2777 + d="m 67.525286,310.02605 c 69.221574,0 69.221574,0 69.221574,0" 70.2778 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 70.2779 + <path 70.2780 + sodipodi:nodetypes="cc" 70.2781 + inkscape:connector-curvature="0" 70.2782 + id="path3597" 70.2783 + d="m 67.27805,297.85824 c 0,13.94668 0,13.94668 0,13.94668" 70.2784 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 70.2785 + <path 70.2786 + inkscape:connector-curvature="0" 70.2787 + id="path3599" 70.2788 + d="m 137.04459,312.02605 c 67.19099,0 67.19099,0 67.19099,0" 70.2789 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 70.2790 + <path 70.2791 + sodipodi:nodetypes="cc" 70.2792 + inkscape:connector-curvature="0" 70.2793 + id="path3601" 70.2794 + d="m 205.27805,312.63926 c 0,11.23237 0,11.23237 0,11.23237" 70.2795 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 70.2796 + <path 70.2797 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 70.2798 + d="m 205.05995,324.02605 c -67.19099,0 -67.19099,0 -67.19099,0" 70.2799 + id="path3603" 70.2800 + inkscape:connector-curvature="0" /> 70.2801 + <text 70.2802 + sodipodi:linespacing="100%" 70.2803 + id="text3605" 70.2804 + y="326.42468" 70.2805 + x="186.89299" 70.2806 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.2807 + xml:space="preserve" 70.2808 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)"><tspan 70.2809 + id="tspan3607" 70.2810 + y="326.42468" 70.2811 + x="186.89299" 70.2812 + sodipodi:role="line" 70.2813 + style="font-size:7px;text-align:center;text-anchor:middle">call via Ptr to Dyn Lib Fn</tspan></text> 70.2814 + <path 70.2815 + sodipodi:nodetypes="cc" 70.2816 + inkscape:connector-curvature="0" 70.2817 + id="path3609" 70.2818 + d="m 137.27805,323.85824 c 0,11.43122 0,11.43122 0,11.43122" 70.2819 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 70.2820 + <text 70.2821 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)" 70.2822 + xml:space="preserve" 70.2823 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.2824 + x="186.26445" 70.2825 + y="288.42987" 70.2826 + id="text3611" 70.2827 + sodipodi:linespacing="100%"><tspan 70.2828 + style="font-size:7px;text-align:center;text-anchor:middle" 70.2829 + sodipodi:role="line" 70.2830 + x="186.26445" 70.2831 + y="288.42987" 70.2832 + id="tspan3613">call via Ptr to Dyn Lib Fn</tspan></text> 70.2833 + <path 70.2834 + style="fill:none;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 70.2835 + d="m 465.78297,400.02605 c -193.92439,0 -193.92439,0 -193.92439,0" 70.2836 + id="path3615" 70.2837 + inkscape:connector-curvature="0" /> 70.2838 + <path 70.2839 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 70.2840 + d="m 466.19516,280.02605 c -193.92439,0 -193.92439,0 -193.92439,0" 70.2841 + id="path3617" 70.2842 + inkscape:connector-curvature="0" /> 70.2843 + <text 70.2844 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 70.2845 + xml:space="preserve" 70.2846 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.2847 + x="35.877613" 70.2848 + y="497.93744" 70.2849 + id="text3619" 70.2850 + sodipodi:linespacing="100%"><tspan 70.2851 + id="tspan3621" 70.2852 + style="font-size:18px;text-align:center;text-anchor:middle" 70.2853 + sodipodi:role="line" 70.2854 + x="35.877613" 70.2855 + y="497.93744">core 1</tspan></text> 70.2856 + <path 70.2857 + sodipodi:nodetypes="cc" 70.2858 + inkscape:connector-curvature="0" 70.2859 + id="path3623" 70.2860 + d="m 205.27805,400.31985 c 0,7.35629 0,7.35629 0,7.35629" 70.2861 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 70.2862 + <path 70.2863 + sodipodi:nodetypes="cc" 70.2864 + inkscape:connector-curvature="0" 70.2865 + id="path3625" 70.2866 + d="m 205.27805,400.31985 c 0,7.35629 0,7.35629 0,7.35629" 70.2867 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 70.2868 + <path 70.2869 + sodipodi:nodetypes="cc" 70.2870 + inkscape:connector-curvature="0" 70.2871 + id="path3627" 70.2872 + d="m 205.27805,400.31985 c 0,7.35629 0,7.35629 0,7.35629" 70.2873 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 70.2874 + <text 70.2875 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 70.2876 + xml:space="preserve" 70.2877 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.2878 + x="-123.23382" 70.2879 + y="421.84821" 70.2880 + id="text3629" 70.2881 + sodipodi:linespacing="100%"><tspan 70.2882 + id="tspan3631" 70.2883 + style="font-size:8px;text-align:center;text-anchor:middle" 70.2884 + sodipodi:role="line" 70.2885 + x="-123.23382" 70.2886 + y="421.84821">return from</tspan><tspan 70.2887 + style="font-size:8px;text-align:center;text-anchor:middle" 70.2888 + sodipodi:role="line" 70.2889 + x="-123.23382" 70.2890 + y="429.84821" 70.2891 + id="tspan3633">suspend</tspan></text> 70.2892 + <path 70.2893 + inkscape:connector-curvature="0" 70.2894 + id="path3635" 70.2895 + d="m 271.03421,246.02605 c 193.92439,0 193.92439,0 193.92439,0" 70.2896 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 70.2897 + <text 70.2898 + sodipodi:linespacing="100%" 70.2899 + id="text4289" 70.2900 + y="155.76575" 70.2901 + x="426.92542" 70.2902 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 70.2903 + xml:space="preserve"><tspan 70.2904 + y="155.76575" 70.2905 + x="426.92542" 70.2906 + id="tspan4291" 70.2907 + sodipodi:role="line" 70.2908 + style="text-align:center;text-anchor:middle">PR OS thread</tspan><tspan 70.2909 + y="164.20053" 70.2910 + x="426.92542" 70.2911 + sodipodi:role="line" 70.2912 + style="font-size:8px;text-align:center;text-anchor:middle" 70.2913 + id="tspan4295">(core 2)</tspan></text> 70.2914 + <g 70.2915 + transform="matrix(1,0,0,0.71130685,84,-77.47087)" 70.2916 + id="g4297"> 70.2917 + <rect 70.2918 + y="313.58255" 70.2919 + x="310.40247" 70.2920 + height="52.250008" 70.2921 + width="65.276405" 70.2922 + id="rect4299" 70.2923 + style="fill:none;stroke:#000000;stroke-width:1.28076112;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 70.2924 + </g> 70.2925 + </g> 70.2926 +</svg>
71.1 Binary file 0__Papers/VMS/VMS__Foundation_Paper/VMS__Full_conference_version/figures/PR__timeline_dual.pdf has changed
72.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 72.2 +++ b/0__Papers/VMS/VMS__Foundation_Paper/VMS__Full_conference_version/figures/PR__timeline_dual.svg Sat Aug 03 19:24:22 2013 -0700 72.3 @@ -0,0 +1,446 @@ 72.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 72.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 72.6 + 72.7 +<svg 72.8 + xmlns:dc="http://purl.org/dc/elements/1.1/" 72.9 + xmlns:cc="http://creativecommons.org/ns#" 72.10 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 72.11 + xmlns:svg="http://www.w3.org/2000/svg" 72.12 + xmlns="http://www.w3.org/2000/svg" 72.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 72.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 72.15 + width="744.09448819" 72.16 + height="1052.3622047" 72.17 + id="svg2" 72.18 + sodipodi:version="0.32" 72.19 + inkscape:version="0.48.2 r9819" 72.20 + sodipodi:docname="PR__timeline_dual.svg" 72.21 + inkscape:output_extension="org.inkscape.output.svg.inkscape" 72.22 + version="1.1"> 72.23 + <defs 72.24 + id="defs4"> 72.25 + <marker 72.26 + inkscape:stockid="Arrow2Mend" 72.27 + orient="auto" 72.28 + refY="0.0" 72.29 + refX="0.0" 72.30 + id="Arrow2Mend" 72.31 + style="overflow:visible;"> 72.32 + <path 72.33 + id="path4008" 72.34 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 72.35 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 72.36 + transform="scale(0.6) rotate(180) translate(0,0)" /> 72.37 + </marker> 72.38 + <inkscape:perspective 72.39 + sodipodi:type="inkscape:persp3d" 72.40 + inkscape:vp_x="0 : 526.18109 : 1" 72.41 + inkscape:vp_y="0 : 1000 : 0" 72.42 + inkscape:vp_z="744.09448 : 526.18109 : 1" 72.43 + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" 72.44 + id="perspective10" /> 72.45 + <inkscape:perspective 72.46 + id="perspective11923" 72.47 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 72.48 + inkscape:vp_z="1 : 0.5 : 1" 72.49 + inkscape:vp_y="0 : 1000 : 0" 72.50 + inkscape:vp_x="0 : 0.5 : 1" 72.51 + sodipodi:type="inkscape:persp3d" /> 72.52 + </defs> 72.53 + <sodipodi:namedview 72.54 + id="base" 72.55 + pagecolor="#ffffff" 72.56 + bordercolor="#666666" 72.57 + borderopacity="1.0" 72.58 + gridtolerance="10000" 72.59 + guidetolerance="10" 72.60 + objecttolerance="10" 72.61 + inkscape:pageopacity="0.0" 72.62 + inkscape:pageshadow="2" 72.63 + inkscape:zoom="1.3364318" 72.64 + inkscape:cx="331.64634" 72.65 + inkscape:cy="648.10677" 72.66 + inkscape:document-units="px" 72.67 + inkscape:current-layer="layer1" 72.68 + showgrid="false" 72.69 + inkscape:window-width="1317" 72.70 + inkscape:window-height="878" 72.71 + inkscape:window-x="7" 72.72 + inkscape:window-y="1" 72.73 + inkscape:window-maximized="0" /> 72.74 + <metadata 72.75 + id="metadata7"> 72.76 + <rdf:RDF> 72.77 + <cc:Work 72.78 + rdf:about=""> 72.79 + <dc:format>image/svg+xml</dc:format> 72.80 + <dc:type 72.81 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 72.82 + <dc:title /> 72.83 + </cc:Work> 72.84 + </rdf:RDF> 72.85 + </metadata> 72.86 + <g 72.87 + inkscape:label="Layer 1" 72.88 + inkscape:groupmode="layer" 72.89 + id="layer1"> 72.90 + <path 72.91 + id="path7353" 72.92 + d="m 196.98465,281.37498 c 69.82336,0 69.82336,0 69.82336,0" 72.93 + style="fill:#800000;stroke:#800000;stroke-width:1.80000007;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 72.94 + inkscape:connector-curvature="0" /> 72.95 + <g 72.96 + transform="translate(-32,-120)" 72.97 + id="g7355" 72.98 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none"> 72.99 + <path 72.100 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" 72.101 + d="m 298.82881,392.82004 c 0,19.38279 0,19.38279 0,19.38279" 72.102 + id="path7357" 72.103 + inkscape:connector-curvature="0" /> 72.104 + <text 72.105 + sodipodi:linespacing="100%" 72.106 + id="text7359" 72.107 + y="376.52615" 72.108 + x="298.7023" 72.109 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 72.110 + xml:space="preserve"><tspan 72.111 + y="376.52615" 72.112 + x="298.7023" 72.113 + id="tspan7361" 72.114 + sodipodi:role="line" 72.115 + style="font-size:10px;text-align:center;text-anchor:middle">Suspend</tspan><tspan 72.116 + y="385.74353" 72.117 + x="298.7023" 72.118 + sodipodi:role="line" 72.119 + id="tspan7363" 72.120 + style="font-size:9px;text-align:center;text-anchor:middle">(Point 2.S)</tspan></text> 72.121 + </g> 72.122 + <g 72.123 + transform="translate(-60,-120)" 72.124 + id="g7365" 72.125 + style="stroke-width:1.8;stroke-miterlimit:4;stroke-dasharray:none"> 72.126 + <path 72.127 + style="fill:none;stroke:#000000;stroke-width:1.8;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" 72.128 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 72.129 + id="path7367" 72.130 + inkscape:connector-curvature="0" /> 72.131 + <text 72.132 + sodipodi:linespacing="100%" 72.133 + id="text7369" 72.134 + y="376.52615" 72.135 + x="378.7023" 72.136 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 72.137 + xml:space="preserve"><tspan 72.138 + y="376.52615" 72.139 + x="380.20621" 72.140 + id="tspan7371" 72.141 + sodipodi:role="line" 72.142 + style="font-size:9px;text-align:center;text-anchor:middle"><tspan 72.143 + style="font-size:10px" 72.144 + id="tspan8087">Resume </tspan></tspan><tspan 72.145 + y="385.74353" 72.146 + x="378.7023" 72.147 + sodipodi:role="line" 72.148 + id="tspan7373" 72.149 + style="font-size:9px;text-align:center;text-anchor:middle">(Point 2.R)</tspan></text> 72.150 + </g> 72.151 + <text 72.152 + sodipodi:linespacing="100%" 72.153 + id="text7375" 72.154 + y="285.27441" 72.155 + x="352.7023" 72.156 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 72.157 + xml:space="preserve"><tspan 72.158 + y="285.27441" 72.159 + x="352.7023" 72.160 + sodipodi:role="line" 72.161 + id="tspan7379">Timeline B</tspan></text> 72.162 + <path 72.163 + inkscape:connector-curvature="0" 72.164 + style="fill:none;stroke:#800000;stroke-width:1.80000000000000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none" 72.165 + d="m 320.08408,281.37498 c 27.45405,0 27.45405,0 27.45405,0" 72.166 + id="path7387" /> 72.167 + <path 72.168 + id="path8089" 72.169 + d="m 195.41471,317.37498 c 151.68424,0 151.68424,0 151.68424,0" 72.170 + style="fill:#000000;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 72.171 + inkscape:connector-curvature="0" /> 72.172 + <text 72.173 + xml:space="preserve" 72.174 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 72.175 + x="352.7023" 72.176 + y="320.02267" 72.177 + id="text8091" 72.178 + sodipodi:linespacing="100%"><tspan 72.179 + id="tspan8093" 72.180 + sodipodi:role="line" 72.181 + x="352.7023" 72.182 + y="320.02267">Physical time</tspan></text> 72.183 + <path 72.184 + inkscape:connector-curvature="0" 72.185 + style="fill:none;stroke:#422fac;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 72.186 + d="m 195.92204,221.37498 c 33.06652,0 33.06652,0 33.06652,0" 72.187 + id="path8095" /> 72.188 + <g 72.189 + id="g8097" 72.190 + transform="translate(-70,-180)" 72.191 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none"> 72.192 + <path 72.193 + inkscape:connector-curvature="0" 72.194 + id="path8099" 72.195 + d="m 298.82881,392.82004 c 0,19.38279 0,19.38279 0,19.38279" 72.196 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> 72.197 + <text 72.198 + xml:space="preserve" 72.199 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 72.200 + x="298.7023" 72.201 + y="376.52615" 72.202 + id="text8101" 72.203 + sodipodi:linespacing="100%"><tspan 72.204 + style="font-size:10px;text-align:center;text-anchor:middle" 72.205 + sodipodi:role="line" 72.206 + id="tspan8103" 72.207 + x="298.7023" 72.208 + y="376.52615">Suspend</tspan><tspan 72.209 + style="font-size:9px;text-align:center;text-anchor:middle" 72.210 + id="tspan8105" 72.211 + sodipodi:role="line" 72.212 + x="298.7023" 72.213 + y="385.74353">(Point 1.S)</tspan></text> 72.214 + </g> 72.215 + <g 72.216 + id="g8107" 72.217 + transform="translate(-60,-180)" 72.218 + style="stroke-width:1.8;stroke-miterlimit:4;stroke-dasharray:none"> 72.219 + <path 72.220 + inkscape:connector-curvature="0" 72.221 + id="path8109" 72.222 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 72.223 + style="fill:none;stroke:#000000;stroke-width:1.8;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" /> 72.224 + <text 72.225 + xml:space="preserve" 72.226 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 72.227 + x="378.7023" 72.228 + y="376.52615" 72.229 + id="text8111" 72.230 + sodipodi:linespacing="100%"><tspan 72.231 + style="font-size:9px;text-align:center;text-anchor:middle" 72.232 + sodipodi:role="line" 72.233 + id="tspan8113" 72.234 + x="380.20621" 72.235 + y="376.52615"><tspan 72.236 + id="tspan8115" 72.237 + style="font-size:10px">Resume </tspan></tspan><tspan 72.238 + style="font-size:9px;text-align:center;text-anchor:middle" 72.239 + id="tspan8117" 72.240 + sodipodi:role="line" 72.241 + x="378.7023" 72.242 + y="385.74353">(Point 1.R)</tspan></text> 72.243 + </g> 72.244 + <text 72.245 + xml:space="preserve" 72.246 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 72.247 + x="352.7023" 72.248 + y="225.27441" 72.249 + id="text8119" 72.250 + sodipodi:linespacing="100%"><tspan 72.251 + id="tspan8121" 72.252 + sodipodi:role="line" 72.253 + x="352.7023" 72.254 + y="225.27441">Timeline A</tspan></text> 72.255 + <path 72.256 + id="path8123" 72.257 + d="m 320.08408,221.37498 c 27.45405,0 27.45405,0 27.45405,0" 72.258 + style="fill:none;stroke:#422fac;stroke-width:1.8;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none" 72.259 + inkscape:connector-curvature="0" /> 72.260 + <path 72.261 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999998, 2.99999998;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 72.262 + d="m 292.57011,280.15667 c 1.60737,-35.06333 -0.1867,-13.69014 2.41106,-33.11537 1.74808,-13.07166 19.28851,-14.93437 19.28851,-14.93437" 72.263 + id="path8125" 72.264 + inkscape:connector-curvature="0" 72.265 + sodipodi:nodetypes="csc" /> 72.266 + <path 72.267 + sodipodi:nodetypes="csc" 72.268 + inkscape:connector-curvature="0" 72.269 + id="path5550" 72.270 + d="m 239.09804,401.95213 c 23.67157,4.34238 9.24233,-0.50438 22.35648,6.51358 8.8248,4.72253 10.08233,52.10878 10.08233,52.10878" 72.271 + style="fill:none;stroke:#000000;stroke-width:0.99999982;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000004, 3.00000004;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 72.272 + <path 72.273 + inkscape:connector-curvature="0" 72.274 + style="fill:#800000;stroke:#800000;stroke-width:1.80000007;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 72.275 + d="m 196.98465,461.37498 c 69.82336,0 69.82336,0 69.82336,0" 72.276 + id="path5552" /> 72.277 + <g 72.278 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 72.279 + id="g5554" 72.280 + transform="translate(-32,60)"> 72.281 + <path 72.282 + inkscape:connector-curvature="0" 72.283 + id="path5556" 72.284 + d="m 298.82881,392.82004 c 0,19.38279 0,19.38279 0,19.38279" 72.285 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> 72.286 + <text 72.287 + xml:space="preserve" 72.288 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 72.289 + x="298.7023" 72.290 + y="376.52615" 72.291 + id="text5558" 72.292 + sodipodi:linespacing="100%"><tspan 72.293 + style="font-size:10px;text-align:center;text-anchor:middle" 72.294 + sodipodi:role="line" 72.295 + id="tspan5560" 72.296 + x="298.7023" 72.297 + y="376.52615">Suspend</tspan><tspan 72.298 + style="font-size:9px;text-align:center;text-anchor:middle" 72.299 + id="tspan5562" 72.300 + sodipodi:role="line" 72.301 + x="298.7023" 72.302 + y="385.74353">(Point 2.S)</tspan></text> 72.303 + </g> 72.304 + <g 72.305 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 72.306 + id="g5564" 72.307 + transform="translate(-60,60)"> 72.308 + <path 72.309 + inkscape:connector-curvature="0" 72.310 + id="path5566" 72.311 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 72.312 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> 72.313 + <text 72.314 + xml:space="preserve" 72.315 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 72.316 + x="378.7023" 72.317 + y="376.52615" 72.318 + id="text5568" 72.319 + sodipodi:linespacing="100%"><tspan 72.320 + style="font-size:9px;text-align:center;text-anchor:middle" 72.321 + sodipodi:role="line" 72.322 + id="tspan5570" 72.323 + x="380.20621" 72.324 + y="376.52615"><tspan 72.325 + id="tspan5572" 72.326 + style="font-size:10px">Resume </tspan></tspan><tspan 72.327 + style="font-size:9px;text-align:center;text-anchor:middle" 72.328 + id="tspan5574" 72.329 + sodipodi:role="line" 72.330 + x="378.7023" 72.331 + y="385.74353">(Point 2.R)</tspan></text> 72.332 + </g> 72.333 + <text 72.334 + xml:space="preserve" 72.335 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 72.336 + x="352.7023" 72.337 + y="465.27441" 72.338 + id="text5576" 72.339 + sodipodi:linespacing="100%"><tspan 72.340 + id="tspan5578" 72.341 + sodipodi:role="line" 72.342 + x="352.7023" 72.343 + y="465.27441">Timeline B</tspan></text> 72.344 + <path 72.345 + id="path5580" 72.346 + d="m 320.08408,461.37498 c 27.45405,0 27.45405,0 27.45405,0" 72.347 + style="fill:none;stroke:#800000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 72.348 + inkscape:connector-curvature="0" /> 72.349 + <path 72.350 + inkscape:connector-curvature="0" 72.351 + style="fill:#000000;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 72.352 + d="m 195.41471,497.37498 c 151.68424,0 151.68424,0 151.68424,0" 72.353 + id="path5582" /> 72.354 + <text 72.355 + sodipodi:linespacing="100%" 72.356 + id="text5584" 72.357 + y="500.02267" 72.358 + x="352.7023" 72.359 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 72.360 + xml:space="preserve"><tspan 72.361 + y="500.02267" 72.362 + x="352.7023" 72.363 + sodipodi:role="line" 72.364 + id="tspan5586">Physical time</tspan></text> 72.365 + <path 72.366 + id="path5588" 72.367 + d="m 195.92204,401.37498 c 33.06652,0 33.06652,0 33.06652,0" 72.368 + style="fill:none;stroke:#422fac;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 72.369 + inkscape:connector-curvature="0" /> 72.370 + <g 72.371 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 72.372 + transform="translate(-70,0)" 72.373 + id="g5590"> 72.374 + <path 72.375 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" 72.376 + d="m 298.82881,392.82004 c 0,19.38279 0,19.38279 0,19.38279" 72.377 + id="path5592" 72.378 + inkscape:connector-curvature="0" /> 72.379 + <text 72.380 + sodipodi:linespacing="100%" 72.381 + id="text5594" 72.382 + y="376.52615" 72.383 + x="298.7023" 72.384 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 72.385 + xml:space="preserve"><tspan 72.386 + y="376.52615" 72.387 + x="298.7023" 72.388 + id="tspan5596" 72.389 + sodipodi:role="line" 72.390 + style="font-size:10px;text-align:center;text-anchor:middle">Suspend</tspan><tspan 72.391 + y="385.74353" 72.392 + x="298.7023" 72.393 + sodipodi:role="line" 72.394 + id="tspan5598" 72.395 + style="font-size:9px;text-align:center;text-anchor:middle">(Point 1.S)</tspan></text> 72.396 + </g> 72.397 + <g 72.398 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 72.399 + transform="translate(-60,0)" 72.400 + id="g5600"> 72.401 + <path 72.402 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" 72.403 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 72.404 + id="path5602" 72.405 + inkscape:connector-curvature="0" /> 72.406 + <text 72.407 + sodipodi:linespacing="100%" 72.408 + id="text5604" 72.409 + y="376.52615" 72.410 + x="378.7023" 72.411 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 72.412 + xml:space="preserve"><tspan 72.413 + y="376.52615" 72.414 + x="380.20621" 72.415 + id="tspan5606" 72.416 + sodipodi:role="line" 72.417 + style="font-size:9px;text-align:center;text-anchor:middle"><tspan 72.418 + style="font-size:10px" 72.419 + id="tspan5608">Resume </tspan></tspan><tspan 72.420 + y="385.74353" 72.421 + x="378.7023" 72.422 + sodipodi:role="line" 72.423 + id="tspan5610" 72.424 + style="font-size:9px;text-align:center;text-anchor:middle">(Point 1.R)</tspan></text> 72.425 + </g> 72.426 + <text 72.427 + sodipodi:linespacing="100%" 72.428 + id="text5612" 72.429 + y="405.27441" 72.430 + x="352.7023" 72.431 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 72.432 + xml:space="preserve"><tspan 72.433 + y="405.27441" 72.434 + x="352.7023" 72.435 + sodipodi:role="line" 72.436 + id="tspan5614">Timeline A</tspan></text> 72.437 + <path 72.438 + inkscape:connector-curvature="0" 72.439 + style="fill:none;stroke:#422fac;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 72.440 + d="m 320.08408,401.37498 c 27.45405,0 27.45405,0 27.45405,0" 72.441 + id="path5616" /> 72.442 + <path 72.443 + sodipodi:nodetypes="csc" 72.444 + inkscape:connector-curvature="0" 72.445 + id="path5618" 72.446 + d="m 292.57011,460.15667 c 1.60737,-35.06333 -0.1867,-13.69014 2.41106,-33.11537 1.74808,-13.07166 19.28851,-14.93437 19.28851,-14.93437" 72.447 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999998, 2.99999998;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 72.448 + </g> 72.449 +</svg>
73.1 Binary file 0__Papers/VMS/VMS__Foundation_Paper/VMS__Full_conference_version/figures/PR__timeline_dual_2nd.pdf has changed
74.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 74.2 +++ b/0__Papers/VMS/VMS__Foundation_Paper/VMS__Full_conference_version/figures/PR__timeline_dual_2nd.svg Sat Aug 03 19:24:22 2013 -0700 74.3 @@ -0,0 +1,545 @@ 74.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 74.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 74.6 + 74.7 +<svg 74.8 + xmlns:dc="http://purl.org/dc/elements/1.1/" 74.9 + xmlns:cc="http://creativecommons.org/ns#" 74.10 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 74.11 + xmlns:svg="http://www.w3.org/2000/svg" 74.12 + xmlns="http://www.w3.org/2000/svg" 74.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 74.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 74.15 + width="744.09448819" 74.16 + height="1052.3622047" 74.17 + id="svg2" 74.18 + sodipodi:version="0.32" 74.19 + inkscape:version="0.48.2 r9819" 74.20 + sodipodi:docname="PR__timeline_dual_2nd.svg" 74.21 + inkscape:output_extension="org.inkscape.output.svg.inkscape" 74.22 + version="1.1"> 74.23 + <defs 74.24 + id="defs4"> 74.25 + <marker 74.26 + inkscape:stockid="Arrow2Mend" 74.27 + orient="auto" 74.28 + refY="0.0" 74.29 + refX="0.0" 74.30 + id="Arrow2Mend" 74.31 + style="overflow:visible;"> 74.32 + <path 74.33 + id="path4008" 74.34 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 74.35 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 74.36 + transform="scale(0.6) rotate(180) translate(0,0)" /> 74.37 + </marker> 74.38 + <inkscape:perspective 74.39 + sodipodi:type="inkscape:persp3d" 74.40 + inkscape:vp_x="0 : 526.18109 : 1" 74.41 + inkscape:vp_y="0 : 1000 : 0" 74.42 + inkscape:vp_z="744.09448 : 526.18109 : 1" 74.43 + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" 74.44 + id="perspective10" /> 74.45 + <inkscape:perspective 74.46 + id="perspective11923" 74.47 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 74.48 + inkscape:vp_z="1 : 0.5 : 1" 74.49 + inkscape:vp_y="0 : 1000 : 0" 74.50 + inkscape:vp_x="0 : 0.5 : 1" 74.51 + sodipodi:type="inkscape:persp3d" /> 74.52 + </defs> 74.53 + <sodipodi:namedview 74.54 + id="base" 74.55 + pagecolor="#ffffff" 74.56 + bordercolor="#666666" 74.57 + borderopacity="1.0" 74.58 + gridtolerance="10000" 74.59 + guidetolerance="10" 74.60 + objecttolerance="10" 74.61 + inkscape:pageopacity="0.0" 74.62 + inkscape:pageshadow="2" 74.63 + inkscape:zoom="1.3364318" 74.64 + inkscape:cx="214.9176" 74.65 + inkscape:cy="608.45761" 74.66 + inkscape:document-units="px" 74.67 + inkscape:current-layer="layer1" 74.68 + showgrid="false" 74.69 + inkscape:window-width="1317" 74.70 + inkscape:window-height="878" 74.71 + inkscape:window-x="7" 74.72 + inkscape:window-y="1" 74.73 + inkscape:window-maximized="0" /> 74.74 + <metadata 74.75 + id="metadata7"> 74.76 + <rdf:RDF> 74.77 + <cc:Work 74.78 + rdf:about=""> 74.79 + <dc:format>image/svg+xml</dc:format> 74.80 + <dc:type 74.81 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 74.82 + <dc:title></dc:title> 74.83 + </cc:Work> 74.84 + </rdf:RDF> 74.85 + </metadata> 74.86 + <g 74.87 + inkscape:label="Layer 1" 74.88 + inkscape:groupmode="layer" 74.89 + id="layer1"> 74.90 + <path 74.91 + id="path7353" 74.92 + d="m 196.98465,281.37498 c 69.82336,0 69.82336,0 69.82336,0" 74.93 + style="fill:#800000;stroke:#800000;stroke-width:1.80000007;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 74.94 + inkscape:connector-curvature="0" /> 74.95 + <g 74.96 + transform="translate(-32,-120)" 74.97 + id="g7355" 74.98 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none"> 74.99 + <path 74.100 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" 74.101 + d="m 298.82881,392.82004 c 0,19.38279 0,19.38279 0,19.38279" 74.102 + id="path7357" 74.103 + inkscape:connector-curvature="0" /> 74.104 + <text 74.105 + sodipodi:linespacing="100%" 74.106 + id="text7359" 74.107 + y="376.52615" 74.108 + x="298.7023" 74.109 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 74.110 + xml:space="preserve"><tspan 74.111 + y="376.52615" 74.112 + x="298.7023" 74.113 + id="tspan7361" 74.114 + sodipodi:role="line" 74.115 + style="font-size:10px;text-align:center;text-anchor:middle">Suspend</tspan><tspan 74.116 + y="385.74353" 74.117 + x="298.7023" 74.118 + sodipodi:role="line" 74.119 + id="tspan7363" 74.120 + style="font-size:9px;text-align:center;text-anchor:middle">(Point 2.S)</tspan></text> 74.121 + </g> 74.122 + <g 74.123 + transform="translate(-60,-120)" 74.124 + id="g7365" 74.125 + style="stroke-width:1.8;stroke-miterlimit:4;stroke-dasharray:none"> 74.126 + <path 74.127 + style="fill:none;stroke:#000000;stroke-width:1.8;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" 74.128 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 74.129 + id="path7367" 74.130 + inkscape:connector-curvature="0" /> 74.131 + <text 74.132 + sodipodi:linespacing="100%" 74.133 + id="text7369" 74.134 + y="376.52615" 74.135 + x="378.7023" 74.136 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 74.137 + xml:space="preserve"><tspan 74.138 + y="376.52615" 74.139 + x="380.20621" 74.140 + id="tspan7371" 74.141 + sodipodi:role="line" 74.142 + style="font-size:9px;text-align:center;text-anchor:middle"><tspan 74.143 + style="font-size:10px" 74.144 + id="tspan8087">Resume </tspan></tspan><tspan 74.145 + y="385.74353" 74.146 + x="378.7023" 74.147 + sodipodi:role="line" 74.148 + id="tspan7373" 74.149 + style="font-size:9px;text-align:center;text-anchor:middle">(Point 2.R)</tspan></text> 74.150 + </g> 74.151 + <text 74.152 + sodipodi:linespacing="100%" 74.153 + id="text7375" 74.154 + y="285.27441" 74.155 + x="352.7023" 74.156 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 74.157 + xml:space="preserve"><tspan 74.158 + y="285.27441" 74.159 + x="352.7023" 74.160 + sodipodi:role="line" 74.161 + id="tspan7379">Timeline B</tspan></text> 74.162 + <path 74.163 + inkscape:connector-curvature="0" 74.164 + style="fill:none;stroke:#800000;stroke-width:1.80000000000000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none" 74.165 + d="m 320.08408,281.37498 c 27.45405,0 27.45405,0 27.45405,0" 74.166 + id="path7387" /> 74.167 + <path 74.168 + id="path8089" 74.169 + d="m 195.41471,317.37498 c 151.68424,0 151.68424,0 151.68424,0" 74.170 + style="fill:#000000;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 74.171 + inkscape:connector-curvature="0" /> 74.172 + <text 74.173 + xml:space="preserve" 74.174 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 74.175 + x="352.7023" 74.176 + y="320.02267" 74.177 + id="text8091" 74.178 + sodipodi:linespacing="100%"><tspan 74.179 + id="tspan8093" 74.180 + sodipodi:role="line" 74.181 + x="352.7023" 74.182 + y="320.02267">Physical time</tspan></text> 74.183 + <path 74.184 + inkscape:connector-curvature="0" 74.185 + style="fill:none;stroke:#422fac;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 74.186 + d="m 195.92204,221.37498 c 33.06652,0 33.06652,0 33.06652,0" 74.187 + id="path8095" /> 74.188 + <g 74.189 + id="g8097" 74.190 + transform="translate(-70,-180)" 74.191 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none"> 74.192 + <path 74.193 + inkscape:connector-curvature="0" 74.194 + id="path8099" 74.195 + d="m 298.82881,392.82004 c 0,19.38279 0,19.38279 0,19.38279" 74.196 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> 74.197 + <text 74.198 + xml:space="preserve" 74.199 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 74.200 + x="298.7023" 74.201 + y="376.52615" 74.202 + id="text8101" 74.203 + sodipodi:linespacing="100%"><tspan 74.204 + style="font-size:10px;text-align:center;text-anchor:middle" 74.205 + sodipodi:role="line" 74.206 + id="tspan8103" 74.207 + x="298.7023" 74.208 + y="376.52615">Suspend</tspan><tspan 74.209 + style="font-size:9px;text-align:center;text-anchor:middle" 74.210 + id="tspan8105" 74.211 + sodipodi:role="line" 74.212 + x="298.7023" 74.213 + y="385.74353">(Point 1.S)</tspan></text> 74.214 + </g> 74.215 + <g 74.216 + id="g8107" 74.217 + transform="translate(-60,-180)" 74.218 + style="stroke-width:1.8;stroke-miterlimit:4;stroke-dasharray:none"> 74.219 + <path 74.220 + inkscape:connector-curvature="0" 74.221 + id="path8109" 74.222 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 74.223 + style="fill:none;stroke:#000000;stroke-width:1.8;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" /> 74.224 + <text 74.225 + xml:space="preserve" 74.226 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 74.227 + x="378.7023" 74.228 + y="376.52615" 74.229 + id="text8111" 74.230 + sodipodi:linespacing="100%"><tspan 74.231 + style="font-size:9px;text-align:center;text-anchor:middle" 74.232 + sodipodi:role="line" 74.233 + id="tspan8113" 74.234 + x="380.20621" 74.235 + y="376.52615"><tspan 74.236 + id="tspan8115" 74.237 + style="font-size:10px">Resume </tspan></tspan><tspan 74.238 + style="font-size:9px;text-align:center;text-anchor:middle" 74.239 + id="tspan8117" 74.240 + sodipodi:role="line" 74.241 + x="378.7023" 74.242 + y="385.74353">(Point 1.R)</tspan></text> 74.243 + </g> 74.244 + <text 74.245 + xml:space="preserve" 74.246 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 74.247 + x="352.7023" 74.248 + y="225.27441" 74.249 + id="text8119" 74.250 + sodipodi:linespacing="100%"><tspan 74.251 + id="tspan8121" 74.252 + sodipodi:role="line" 74.253 + x="352.7023" 74.254 + y="225.27441">Timeline A</tspan></text> 74.255 + <path 74.256 + id="path8123" 74.257 + d="m 320.08408,221.37498 c 27.45405,0 27.45405,0 27.45405,0" 74.258 + style="fill:none;stroke:#422fac;stroke-width:1.8;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none" 74.259 + inkscape:connector-curvature="0" /> 74.260 + <path 74.261 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999998, 2.99999998;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 74.262 + d="m 292.57011,280.15667 c 1.60737,-35.06333 -0.1867,-13.69014 2.41106,-33.11537 1.74808,-13.07166 19.28851,-14.93437 19.28851,-14.93437" 74.263 + id="path8125" 74.264 + inkscape:connector-curvature="0" 74.265 + sodipodi:nodetypes="csc" /> 74.266 + <path 74.267 + inkscape:connector-curvature="0" 74.268 + style="fill:#800000;stroke:#800000;stroke-width:1.80000007;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 74.269 + d="m 246.98465,423.37498 c 69.82336,0 69.82336,0 69.82336,0" 74.270 + id="path10381" /> 74.271 + <g 74.272 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 74.273 + id="g10393" 74.274 + transform="translate(-60,22)"> 74.275 + <path 74.276 + inkscape:connector-curvature="0" 74.277 + id="path10395" 74.278 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 74.279 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> 74.280 + <text 74.281 + xml:space="preserve" 74.282 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 74.283 + x="378.7023" 74.284 + y="390.52615" 74.285 + id="text10397" 74.286 + sodipodi:linespacing="100%"><tspan 74.287 + style="font-size:9px;text-align:center;text-anchor:middle" 74.288 + id="tspan10403" 74.289 + sodipodi:role="line" 74.290 + x="378.7023" 74.291 + y="390.52615">Tied Point</tspan></text> 74.292 + </g> 74.293 + <text 74.294 + xml:space="preserve" 74.295 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 74.296 + x="352.7023" 74.297 + y="427.27441" 74.298 + id="text10405" 74.299 + sodipodi:linespacing="100%"><tspan 74.300 + id="tspan10407" 74.301 + sodipodi:role="line" 74.302 + x="352.7023" 74.303 + y="427.27441">Timeline B</tspan></text> 74.304 + <path 74.305 + id="path10409" 74.306 + d="m 320.08408,423.37498 c 27.45405,0 27.45405,0 27.45405,0" 74.307 + style="fill:none;stroke:#800000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 74.308 + inkscape:connector-curvature="0" /> 74.309 + <path 74.310 + id="path10411" 74.311 + d="m 283.92204,381.37498 c 33.06652,0 33.06652,0 33.06652,0" 74.312 + style="fill:none;stroke:#422fac;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 74.313 + inkscape:connector-curvature="0" /> 74.314 + <g 74.315 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 74.316 + transform="translate(-60,-20)" 74.317 + id="g10423"> 74.318 + <path 74.319 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" 74.320 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 74.321 + id="path10425" 74.322 + inkscape:connector-curvature="0" /> 74.323 + <text 74.324 + sodipodi:linespacing="100%" 74.325 + id="text10427" 74.326 + y="388.52615" 74.327 + x="378.7023" 74.328 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 74.329 + xml:space="preserve"><tspan 74.330 + y="388.52615" 74.331 + x="378.7023" 74.332 + sodipodi:role="line" 74.333 + id="tspan10433" 74.334 + style="font-size:9px;text-align:center;text-anchor:middle">Tied Point</tspan></text> 74.335 + </g> 74.336 + <text 74.337 + sodipodi:linespacing="100%" 74.338 + id="text10435" 74.339 + y="385.27441" 74.340 + x="352.7023" 74.341 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 74.342 + xml:space="preserve"><tspan 74.343 + y="385.27441" 74.344 + x="352.7023" 74.345 + sodipodi:role="line" 74.346 + id="tspan10437">Timeline A</tspan></text> 74.347 + <path 74.348 + inkscape:connector-curvature="0" 74.349 + style="fill:none;stroke:#422fac;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 74.350 + d="m 320.08408,381.37498 c 27.45405,0 27.45405,0 27.45405,0" 74.351 + id="path10439" /> 74.352 + <path 74.353 + style="fill:none;stroke:#000000;stroke-width:1.29999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.89999986,3.89999986;stroke-dashoffset:0" 74.354 + d="m 318.92887,395.30966 c 0,24.40348 0,24.40348 0,24.40348" 74.355 + id="path10425-2" 74.356 + inkscape:connector-curvature="0" /> 74.357 + <path 74.358 + inkscape:connector-curvature="0" 74.359 + style="fill:#800000;stroke:#800000;stroke-width:1.80000007;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 74.360 + d="m 196.98465,549.37498 c 69.82336,0 69.82336,0 69.82336,0" 74.361 + id="path10981" /> 74.362 + <g 74.363 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 74.364 + id="g10983" 74.365 + transform="translate(-32,148)"> 74.366 + <path 74.367 + inkscape:connector-curvature="0" 74.368 + id="path10985" 74.369 + d="m 298.82881,392.82004 c 0,19.38279 0,19.38279 0,19.38279" 74.370 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> 74.371 + </g> 74.372 + <g 74.373 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 74.374 + id="g10993" 74.375 + transform="translate(-60,148)"> 74.376 + <path 74.377 + inkscape:connector-curvature="0" 74.378 + id="path10995" 74.379 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 74.380 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> 74.381 + </g> 74.382 + <text 74.383 + xml:space="preserve" 74.384 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 74.385 + x="352.7023" 74.386 + y="553.27441" 74.387 + id="text11005" 74.388 + sodipodi:linespacing="100%"><tspan 74.389 + id="tspan11007" 74.390 + sodipodi:role="line" 74.391 + x="352.7023" 74.392 + y="553.27441">Timeline B</tspan></text> 74.393 + <path 74.394 + id="path11009" 74.395 + d="m 320.08408,549.37498 c 27.45405,0 27.45405,0 27.45405,0" 74.396 + style="fill:none;stroke:#800000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 74.397 + inkscape:connector-curvature="0" /> 74.398 + <path 74.399 + id="path11011" 74.400 + d="m 195.92204,489.37498 c 33.06652,0 33.06652,0 33.06652,0" 74.401 + style="fill:none;stroke:#422fac;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 74.402 + inkscape:connector-curvature="0" /> 74.403 + <g 74.404 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 74.405 + transform="translate(-70,88)" 74.406 + id="g11013"> 74.407 + <path 74.408 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" 74.409 + d="m 298.82881,392.82004 c 0,19.38279 0,19.38279 0,19.38279" 74.410 + id="path11015" 74.411 + inkscape:connector-curvature="0" /> 74.412 + <text 74.413 + sodipodi:linespacing="100%" 74.414 + id="text11017" 74.415 + y="376.52615" 74.416 + x="298.7023" 74.417 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 74.418 + xml:space="preserve"><tspan 74.419 + y="376.52615" 74.420 + x="298.7023" 74.421 + id="tspan11019" 74.422 + sodipodi:role="line" 74.423 + style="font-size:10px;text-align:center;text-anchor:middle">Suspend</tspan><tspan 74.424 + y="385.74353" 74.425 + x="298.7023" 74.426 + sodipodi:role="line" 74.427 + id="tspan11021" 74.428 + style="font-size:9px;text-align:center;text-anchor:middle">(Point 1.S)</tspan></text> 74.429 + </g> 74.430 + <g 74.431 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 74.432 + transform="translate(-60,88)" 74.433 + id="g11023"> 74.434 + <path 74.435 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" 74.436 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 74.437 + id="path11025" 74.438 + inkscape:connector-curvature="0" /> 74.439 + <text 74.440 + sodipodi:linespacing="100%" 74.441 + id="text11027" 74.442 + y="376.52615" 74.443 + x="378.7023" 74.444 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 74.445 + xml:space="preserve"><tspan 74.446 + y="376.52615" 74.447 + x="380.20621" 74.448 + id="tspan11029" 74.449 + sodipodi:role="line" 74.450 + style="font-size:9px;text-align:center;text-anchor:middle"><tspan 74.451 + style="font-size:10px" 74.452 + id="tspan11031">Resume </tspan></tspan><tspan 74.453 + y="385.74353" 74.454 + x="378.7023" 74.455 + sodipodi:role="line" 74.456 + id="tspan11033" 74.457 + style="font-size:9px;text-align:center;text-anchor:middle">(Point 1.R)</tspan></text> 74.458 + </g> 74.459 + <text 74.460 + sodipodi:linespacing="100%" 74.461 + id="text11035" 74.462 + y="493.27441" 74.463 + x="352.7023" 74.464 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 74.465 + xml:space="preserve"><tspan 74.466 + y="493.27441" 74.467 + x="352.7023" 74.468 + sodipodi:role="line" 74.469 + id="tspan11037">Timeline A</tspan></text> 74.470 + <path 74.471 + inkscape:connector-curvature="0" 74.472 + style="fill:none;stroke:#422fac;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 74.473 + d="m 320.08408,489.37498 c 27.45405,0 27.45405,0 27.45405,0" 74.474 + id="path11039" /> 74.475 + <path 74.476 + sodipodi:nodetypes="cc" 74.477 + inkscape:connector-curvature="0" 74.478 + id="path11041" 74.479 + d="m 248.40878,545.16363 c 79.41657,-49.15176 5.94823,-3.26189 82.39224,-51.8417" 74.480 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999999, 2.99999999;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 74.481 + <path 74.482 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000003, 3.00000003;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 74.483 + d="m 329.77257,501.82974 c -70.11936,42.79661 -5.25188,2.84014 -72.74667,45.13875" 74.484 + id="path11043" 74.485 + inkscape:connector-curvature="0" 74.486 + sodipodi:nodetypes="cc" /> 74.487 + <text 74.488 + xml:space="preserve" 74.489 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 74.490 + x="-20.52177" 74.491 + y="592.72888" 74.492 + id="text11049" 74.493 + sodipodi:linespacing="100%" 74.494 + transform="matrix(0.85476126,-0.51902138,0.51902138,0.85476126,0,0)"><tspan 74.495 + id="tspan11051" 74.496 + sodipodi:role="line" 74.497 + x="-20.52177" 74.498 + y="592.72888">visible</tspan></text> 74.499 + <text 74.500 + transform="matrix(0.85476126,-0.51902138,0.51902138,0.85476126,0,0)" 74.501 + sodipodi:linespacing="100%" 74.502 + id="text11053" 74.503 + y="607.87146" 74.504 + x="-10.997777" 74.505 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 74.506 + xml:space="preserve"><tspan 74.507 + y="607.87146" 74.508 + x="-10.997777" 74.509 + sodipodi:role="line" 74.510 + id="tspan11055">NOT visible</tspan></text> 74.511 + <path 74.512 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000008, 3.00000008;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 74.513 + d="m 331.48246,541.42226 c -109.48644,-45.60627 -8.20044,-3.02659 -113.5888,-48.10218" 74.514 + id="path11057" 74.515 + inkscape:connector-curvature="0" 74.516 + sodipodi:nodetypes="cc" /> 74.517 + <path 74.518 + sodipodi:nodetypes="cc" 74.519 + inkscape:connector-curvature="0" 74.520 + id="path11059" 74.521 + d="m 218.69167,501.82968 c 107.30304,43.503 8.03691,2.88702 111.32359,45.8838" 74.522 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000006, 3.00000006;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 74.523 + <text 74.524 + transform="matrix(0.92037595,0.39103467,-0.39103467,0.92037595,0,0)" 74.525 + sodipodi:linespacing="100%" 74.526 + id="text11061" 74.527 + y="382.84756" 74.528 + x="402.31476" 74.529 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 74.530 + xml:space="preserve"><tspan 74.531 + y="382.84756" 74.532 + x="402.31476" 74.533 + sodipodi:role="line" 74.534 + id="tspan11063">visible</tspan></text> 74.535 + <text 74.536 + xml:space="preserve" 74.537 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 74.538 + x="408.54758" 74.539 + y="366.66327" 74.540 + id="text11065" 74.541 + sodipodi:linespacing="100%" 74.542 + transform="matrix(0.9201572,0.39154913,-0.39154913,0.9201572,0,0)"><tspan 74.543 + id="tspan11067" 74.544 + sodipodi:role="line" 74.545 + x="408.54758" 74.546 + y="366.66327">NOT visible</tspan></text> 74.547 + </g> 74.548 +</svg>
75.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 75.2 +++ b/0__Papers/VMS/VMS__Foundation_Paper/VMS__Full_conference_version/figures/PR__timeline_dual_three_versions.svg Sat Aug 03 19:24:22 2013 -0700 75.3 @@ -0,0 +1,754 @@ 75.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 75.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 75.6 + 75.7 +<svg 75.8 + xmlns:dc="http://purl.org/dc/elements/1.1/" 75.9 + xmlns:cc="http://creativecommons.org/ns#" 75.10 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 75.11 + xmlns:svg="http://www.w3.org/2000/svg" 75.12 + xmlns="http://www.w3.org/2000/svg" 75.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 75.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 75.15 + width="744.09448819" 75.16 + height="1052.3622047" 75.17 + id="svg2" 75.18 + sodipodi:version="0.32" 75.19 + inkscape:version="0.48.2 r9819" 75.20 + sodipodi:docname="PR__timeline_dual.svg" 75.21 + inkscape:output_extension="org.inkscape.output.svg.inkscape" 75.22 + version="1.1"> 75.23 + <defs 75.24 + id="defs4"> 75.25 + <marker 75.26 + inkscape:stockid="Arrow2Send" 75.27 + orient="auto" 75.28 + refY="0.0" 75.29 + refX="0.0" 75.30 + id="Arrow2Send" 75.31 + style="overflow:visible;"> 75.32 + <path 75.33 + id="path4262" 75.34 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 75.35 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 75.36 + transform="scale(0.3) rotate(180) translate(-2.3,0)" /> 75.37 + </marker> 75.38 + <marker 75.39 + inkscape:stockid="Arrow1Mend" 75.40 + orient="auto" 75.41 + refY="0.0" 75.42 + refX="0.0" 75.43 + id="Arrow1Mend" 75.44 + style="overflow:visible;"> 75.45 + <path 75.46 + id="path4238" 75.47 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 75.48 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" 75.49 + transform="scale(0.4) rotate(180) translate(10,0)" /> 75.50 + </marker> 75.51 + <marker 75.52 + inkscape:stockid="Arrow2Mend" 75.53 + orient="auto" 75.54 + refY="0.0" 75.55 + refX="0.0" 75.56 + id="Arrow2Mend" 75.57 + style="overflow:visible;"> 75.58 + <path 75.59 + id="path4008" 75.60 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 75.61 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 75.62 + transform="scale(0.6) rotate(180) translate(0,0)" /> 75.63 + </marker> 75.64 + <inkscape:perspective 75.65 + sodipodi:type="inkscape:persp3d" 75.66 + inkscape:vp_x="0 : 526.18109 : 1" 75.67 + inkscape:vp_y="0 : 1000 : 0" 75.68 + inkscape:vp_z="744.09448 : 526.18109 : 1" 75.69 + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" 75.70 + id="perspective10" /> 75.71 + <inkscape:perspective 75.72 + id="perspective11923" 75.73 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 75.74 + inkscape:vp_z="1 : 0.5 : 1" 75.75 + inkscape:vp_y="0 : 1000 : 0" 75.76 + inkscape:vp_x="0 : 0.5 : 1" 75.77 + sodipodi:type="inkscape:persp3d" /> 75.78 + </defs> 75.79 + <sodipodi:namedview 75.80 + id="base" 75.81 + pagecolor="#ffffff" 75.82 + bordercolor="#666666" 75.83 + borderopacity="1.0" 75.84 + gridtolerance="10000" 75.85 + guidetolerance="10" 75.86 + objecttolerance="10" 75.87 + inkscape:pageopacity="0.0" 75.88 + inkscape:pageshadow="2" 75.89 + inkscape:zoom="1.3364318" 75.90 + inkscape:cx="214.9176" 75.91 + inkscape:cy="612.44308" 75.92 + inkscape:document-units="px" 75.93 + inkscape:current-layer="layer1" 75.94 + showgrid="false" 75.95 + inkscape:window-width="1317" 75.96 + inkscape:window-height="878" 75.97 + inkscape:window-x="7" 75.98 + inkscape:window-y="1" 75.99 + inkscape:window-maximized="0" /> 75.100 + <metadata 75.101 + id="metadata7"> 75.102 + <rdf:RDF> 75.103 + <cc:Work 75.104 + rdf:about=""> 75.105 + <dc:format>image/svg+xml</dc:format> 75.106 + <dc:type 75.107 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 75.108 + <dc:title></dc:title> 75.109 + </cc:Work> 75.110 + </rdf:RDF> 75.111 + </metadata> 75.112 + <g 75.113 + inkscape:label="Layer 1" 75.114 + inkscape:groupmode="layer" 75.115 + id="layer1"> 75.116 + <path 75.117 + id="path7353" 75.118 + d="m 196.98465,281.37498 c 69.82336,0 69.82336,0 69.82336,0" 75.119 + style="fill:#800000;stroke:#800000;stroke-width:1.80000007;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 75.120 + inkscape:connector-curvature="0" /> 75.121 + <g 75.122 + transform="translate(-32,-120)" 75.123 + id="g7355" 75.124 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none"> 75.125 + <path 75.126 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" 75.127 + d="m 298.82881,392.82004 c 0,19.38279 0,19.38279 0,19.38279" 75.128 + id="path7357" 75.129 + inkscape:connector-curvature="0" /> 75.130 + <text 75.131 + sodipodi:linespacing="100%" 75.132 + id="text7359" 75.133 + y="376.52615" 75.134 + x="298.7023" 75.135 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 75.136 + xml:space="preserve"><tspan 75.137 + y="376.52615" 75.138 + x="298.7023" 75.139 + id="tspan7361" 75.140 + sodipodi:role="line" 75.141 + style="font-size:10px;text-align:center;text-anchor:middle">Suspend</tspan><tspan 75.142 + y="385.74353" 75.143 + x="298.7023" 75.144 + sodipodi:role="line" 75.145 + id="tspan7363" 75.146 + style="font-size:9px;text-align:center;text-anchor:middle">(Point 2.S)</tspan></text> 75.147 + </g> 75.148 + <g 75.149 + transform="translate(-60,-120)" 75.150 + id="g7365" 75.151 + style="stroke-width:1.8;stroke-miterlimit:4;stroke-dasharray:none"> 75.152 + <path 75.153 + style="fill:none;stroke:#000000;stroke-width:1.8;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" 75.154 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 75.155 + id="path7367" 75.156 + inkscape:connector-curvature="0" /> 75.157 + <text 75.158 + sodipodi:linespacing="100%" 75.159 + id="text7369" 75.160 + y="376.52615" 75.161 + x="378.7023" 75.162 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 75.163 + xml:space="preserve"><tspan 75.164 + y="376.52615" 75.165 + x="380.20621" 75.166 + id="tspan7371" 75.167 + sodipodi:role="line" 75.168 + style="font-size:9px;text-align:center;text-anchor:middle"><tspan 75.169 + style="font-size:10px" 75.170 + id="tspan8087">Resume </tspan></tspan><tspan 75.171 + y="385.74353" 75.172 + x="378.7023" 75.173 + sodipodi:role="line" 75.174 + id="tspan7373" 75.175 + style="font-size:9px;text-align:center;text-anchor:middle">(Point 2.R)</tspan></text> 75.176 + </g> 75.177 + <text 75.178 + sodipodi:linespacing="100%" 75.179 + id="text7375" 75.180 + y="285.27441" 75.181 + x="352.7023" 75.182 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 75.183 + xml:space="preserve"><tspan 75.184 + y="285.27441" 75.185 + x="352.7023" 75.186 + sodipodi:role="line" 75.187 + id="tspan7379">Timeline B</tspan></text> 75.188 + <path 75.189 + inkscape:connector-curvature="0" 75.190 + style="fill:none;stroke:#800000;stroke-width:1.80000000000000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none" 75.191 + d="m 320.08408,281.37498 c 27.45405,0 27.45405,0 27.45405,0" 75.192 + id="path7387" /> 75.193 + <path 75.194 + id="path8089" 75.195 + d="m 195.41471,317.37498 c 151.68424,0 151.68424,0 151.68424,0" 75.196 + style="fill:#000000;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 75.197 + inkscape:connector-curvature="0" /> 75.198 + <text 75.199 + xml:space="preserve" 75.200 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 75.201 + x="352.7023" 75.202 + y="320.02267" 75.203 + id="text8091" 75.204 + sodipodi:linespacing="100%"><tspan 75.205 + id="tspan8093" 75.206 + sodipodi:role="line" 75.207 + x="352.7023" 75.208 + y="320.02267">Physical time</tspan></text> 75.209 + <path 75.210 + inkscape:connector-curvature="0" 75.211 + style="fill:none;stroke:#422fac;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 75.212 + d="m 195.92204,221.37498 c 33.06652,0 33.06652,0 33.06652,0" 75.213 + id="path8095" /> 75.214 + <g 75.215 + id="g8097" 75.216 + transform="translate(-70,-180)" 75.217 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none"> 75.218 + <path 75.219 + inkscape:connector-curvature="0" 75.220 + id="path8099" 75.221 + d="m 298.82881,392.82004 c 0,19.38279 0,19.38279 0,19.38279" 75.222 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> 75.223 + <text 75.224 + xml:space="preserve" 75.225 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 75.226 + x="298.7023" 75.227 + y="376.52615" 75.228 + id="text8101" 75.229 + sodipodi:linespacing="100%"><tspan 75.230 + style="font-size:10px;text-align:center;text-anchor:middle" 75.231 + sodipodi:role="line" 75.232 + id="tspan8103" 75.233 + x="298.7023" 75.234 + y="376.52615">Suspend</tspan><tspan 75.235 + style="font-size:9px;text-align:center;text-anchor:middle" 75.236 + id="tspan8105" 75.237 + sodipodi:role="line" 75.238 + x="298.7023" 75.239 + y="385.74353">(Point 1.S)</tspan></text> 75.240 + </g> 75.241 + <g 75.242 + id="g8107" 75.243 + transform="translate(-60,-180)" 75.244 + style="stroke-width:1.8;stroke-miterlimit:4;stroke-dasharray:none"> 75.245 + <path 75.246 + inkscape:connector-curvature="0" 75.247 + id="path8109" 75.248 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 75.249 + style="fill:none;stroke:#000000;stroke-width:1.8;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" /> 75.250 + <text 75.251 + xml:space="preserve" 75.252 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 75.253 + x="378.7023" 75.254 + y="376.52615" 75.255 + id="text8111" 75.256 + sodipodi:linespacing="100%"><tspan 75.257 + style="font-size:9px;text-align:center;text-anchor:middle" 75.258 + sodipodi:role="line" 75.259 + id="tspan8113" 75.260 + x="380.20621" 75.261 + y="376.52615"><tspan 75.262 + id="tspan8115" 75.263 + style="font-size:10px">Resume </tspan></tspan><tspan 75.264 + style="font-size:9px;text-align:center;text-anchor:middle" 75.265 + id="tspan8117" 75.266 + sodipodi:role="line" 75.267 + x="378.7023" 75.268 + y="385.74353">(Point 1.R)</tspan></text> 75.269 + </g> 75.270 + <text 75.271 + xml:space="preserve" 75.272 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 75.273 + x="352.7023" 75.274 + y="225.27441" 75.275 + id="text8119" 75.276 + sodipodi:linespacing="100%"><tspan 75.277 + id="tspan8121" 75.278 + sodipodi:role="line" 75.279 + x="352.7023" 75.280 + y="225.27441">Timeline A</tspan></text> 75.281 + <path 75.282 + id="path8123" 75.283 + d="m 320.08408,221.37498 c 27.45405,0 27.45405,0 27.45405,0" 75.284 + style="fill:none;stroke:#422fac;stroke-width:1.8;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none" 75.285 + inkscape:connector-curvature="0" /> 75.286 + <path 75.287 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999998, 2.99999998;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 75.288 + d="m 292.57011,280.15667 c 1.60737,-35.06333 -0.1867,-13.69014 2.41106,-33.11537 1.74808,-13.07166 19.28851,-14.93437 19.28851,-14.93437" 75.289 + id="path8125" 75.290 + inkscape:connector-curvature="0" 75.291 + sodipodi:nodetypes="csc" /> 75.292 + <path 75.293 + inkscape:connector-curvature="0" 75.294 + style="fill:#800000;stroke:#800000;stroke-width:1.80000007;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 75.295 + d="m 195.48813,523.37498 c 69.82336,0 69.82336,0 69.82336,0" 75.296 + id="path5552" /> 75.297 + <path 75.298 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" 75.299 + d="m 266.82881,514.82004 c 0,19.38279 0,19.38279 0,19.38279" 75.300 + id="path5556" 75.301 + inkscape:connector-curvature="0" /> 75.302 + <text 75.303 + sodipodi:linespacing="100%" 75.304 + id="text5558" 75.305 + y="540.52612" 75.306 + x="264.7023" 75.307 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 75.308 + xml:space="preserve"><tspan 75.309 + y="540.52612" 75.310 + x="264.7023" 75.311 + id="tspan5560" 75.312 + sodipodi:role="line" 75.313 + style="font-size:10px;text-align:center;text-anchor:middle">Suspend</tspan><tspan 75.314 + y="549.74353" 75.315 + x="264.7023" 75.316 + sodipodi:role="line" 75.317 + id="tspan5562" 75.318 + style="font-size:9px;text-align:center;text-anchor:middle">(Point 2.S)</tspan></text> 75.319 + <path 75.320 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" 75.321 + d="m 318.82881,514.77746 c 0,19.15152 0,19.15152 0,19.15152" 75.322 + id="path5566" 75.323 + inkscape:connector-curvature="0" /> 75.324 + <text 75.325 + sodipodi:linespacing="100%" 75.326 + id="text5568" 75.327 + y="540.52612" 75.328 + x="320.7023" 75.329 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 75.330 + xml:space="preserve"><tspan 75.331 + y="540.52612" 75.332 + x="322.20621" 75.333 + id="tspan5570" 75.334 + sodipodi:role="line" 75.335 + style="font-size:9px;text-align:center;text-anchor:middle"><tspan 75.336 + style="font-size:10px" 75.337 + id="tspan5572">Resume </tspan></tspan><tspan 75.338 + y="549.74353" 75.339 + x="320.7023" 75.340 + sodipodi:role="line" 75.341 + id="tspan5574" 75.342 + style="font-size:9px;text-align:center;text-anchor:middle">(Point 2.R)</tspan></text> 75.343 + <text 75.344 + xml:space="preserve" 75.345 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 75.346 + x="354.7023" 75.347 + y="527.27441" 75.348 + id="text5576" 75.349 + sodipodi:linespacing="100%"><tspan 75.350 + id="tspan5578" 75.351 + sodipodi:role="line" 75.352 + x="354.7023" 75.353 + y="527.27441">Timeline B</tspan></text> 75.354 + <path 75.355 + id="path5580" 75.356 + d="m 320.08409,523.37498 c 28.16395,0 28.16395,0 28.16395,0" 75.357 + style="fill:none;stroke:#800000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 75.358 + inkscape:connector-curvature="0" /> 75.359 + <path 75.360 + inkscape:connector-curvature="0" 75.361 + style="fill:#000000;stroke:#000000;stroke-width:1.80000007;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 75.362 + d="m 195.41472,559.37498 c 153.16627,0 153.16627,0 153.16627,0" 75.363 + id="path5582" /> 75.364 + <text 75.365 + sodipodi:linespacing="100%" 75.366 + id="text5584" 75.367 + y="562.02271" 75.368 + x="354.05777" 75.369 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 75.370 + xml:space="preserve"><tspan 75.371 + y="562.02271" 75.372 + x="354.05777" 75.373 + sodipodi:role="line" 75.374 + id="tspan5586">Physical time</tspan></text> 75.375 + <path 75.376 + id="path5588" 75.377 + d="m 195.17378,437.37498 c 33.06652,0 33.06652,0 33.06652,0" 75.378 + style="fill:none;stroke:#422fac;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 75.379 + inkscape:connector-curvature="0" /> 75.380 + <g 75.381 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 75.382 + transform="translate(-70,36)" 75.383 + id="g5590"> 75.384 + <path 75.385 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" 75.386 + d="m 298.82881,392.82004 c 0,19.38279 0,19.38279 0,19.38279" 75.387 + id="path5592" 75.388 + inkscape:connector-curvature="0" /> 75.389 + <text 75.390 + sodipodi:linespacing="100%" 75.391 + id="text5594" 75.392 + y="376.52615" 75.393 + x="298.7023" 75.394 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 75.395 + xml:space="preserve"><tspan 75.396 + y="376.52615" 75.397 + x="298.7023" 75.398 + id="tspan5596" 75.399 + sodipodi:role="line" 75.400 + style="font-size:10px;text-align:center;text-anchor:middle">Suspend</tspan><tspan 75.401 + y="385.74353" 75.402 + x="298.7023" 75.403 + sodipodi:role="line" 75.404 + id="tspan5598" 75.405 + style="font-size:9px;text-align:center;text-anchor:middle">(Point 1.S)</tspan></text> 75.406 + </g> 75.407 + <g 75.408 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 75.409 + transform="translate(-60,36)" 75.410 + id="g5600"> 75.411 + <path 75.412 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" 75.413 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 75.414 + id="path5602" 75.415 + inkscape:connector-curvature="0" /> 75.416 + <text 75.417 + sodipodi:linespacing="100%" 75.418 + id="text5604" 75.419 + y="376.52615" 75.420 + x="378.7023" 75.421 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 75.422 + xml:space="preserve"><tspan 75.423 + y="376.52615" 75.424 + x="380.20621" 75.425 + id="tspan5606" 75.426 + sodipodi:role="line" 75.427 + style="font-size:9px;text-align:center;text-anchor:middle"><tspan 75.428 + style="font-size:10px" 75.429 + id="tspan5608">Resume </tspan></tspan><tspan 75.430 + y="385.74353" 75.431 + x="378.7023" 75.432 + sodipodi:role="line" 75.433 + id="tspan5610" 75.434 + style="font-size:9px;text-align:center;text-anchor:middle">(Point 1.R)</tspan></text> 75.435 + </g> 75.436 + <text 75.437 + sodipodi:linespacing="100%" 75.438 + id="text5612" 75.439 + y="441.27441" 75.440 + x="354.7023" 75.441 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 75.442 + xml:space="preserve"><tspan 75.443 + y="441.27441" 75.444 + x="354.7023" 75.445 + sodipodi:role="line" 75.446 + id="tspan5614">Timeline A</tspan></text> 75.447 + <path 75.448 + inkscape:connector-curvature="0" 75.449 + style="fill:none;stroke:#422fac;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 75.450 + d="m 320.08409,437.37498 c 28.16395,0 28.16395,0 28.16395,0" 75.451 + id="path5616" /> 75.452 + <path 75.453 + inkscape:connector-curvature="0" 75.454 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1.80000007;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.60000016, 3.60000016;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 75.455 + d="m 196.11806,483.37498 c 152.64336,0 152.64336,0 152.64336,0" 75.456 + id="path3063" /> 75.457 + <path 75.458 + style="fill:none;stroke:#000000;stroke-width:1.80000007;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.60000001, 3.60000001;stroke-dashoffset:0;marker-end:url(#Arrow2Send)" 75.459 + d="m 228.82881,449.32353 c 0,29.78359 0,29.78359 0,29.78359" 75.460 + id="path3086" 75.461 + inkscape:connector-curvature="0" /> 75.462 + <path 75.463 + inkscape:connector-curvature="0" 75.464 + id="path5044" 75.465 + d="m 266.82881,516.24027 c 0,-29.74405 0,-29.74405 0,-29.74405" 75.466 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.60000002, 3.60000002;stroke-dashoffset:0;marker-end:url(#Arrow2Send)" /> 75.467 + <path 75.468 + style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 75.469 + d="m 293.31837,481.43892 c 3.87039,-15.03735 4.2342,-21.56492 7.28321,-26.28454 5.73916,-8.88373 15.91289,-10.38025 15.91289,-10.38025" 75.470 + id="path5048" 75.471 + inkscape:connector-curvature="0" 75.472 + sodipodi:nodetypes="csc" /> 75.473 + <path 75.474 + sodipodi:nodetypes="csc" 75.475 + inkscape:connector-curvature="0" 75.476 + id="path5608" 75.477 + d="m 301.54925,484.53107 c 2.49703,15.03735 2.73174,21.56492 4.69884,26.28454 3.70269,8.88373 10.26639,10.38025 10.26639,10.38025" 75.478 + style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" /> 75.479 + <path 75.480 + id="path5610" 75.481 + d="m 196.98465,751.37498 c 69.82336,0 69.82336,0 69.82336,0" 75.482 + style="fill:#800000;stroke:#800000;stroke-width:1.80000007;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 75.483 + inkscape:connector-curvature="0" /> 75.484 + <path 75.485 + inkscape:connector-curvature="0" 75.486 + id="path5612" 75.487 + d="m 266.82881,742.82004 c 0,19.38279 0,19.38279 0,19.38279" 75.488 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> 75.489 + <text 75.490 + xml:space="preserve" 75.491 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 75.492 + x="264.7023" 75.493 + y="768.52612" 75.494 + id="text5614" 75.495 + sodipodi:linespacing="100%"><tspan 75.496 + style="font-size:10px;text-align:center;text-anchor:middle" 75.497 + sodipodi:role="line" 75.498 + id="tspan5616" 75.499 + x="264.7023" 75.500 + y="768.52612">Suspend</tspan><tspan 75.501 + style="font-size:9px;text-align:center;text-anchor:middle" 75.502 + id="tspan5618" 75.503 + sodipodi:role="line" 75.504 + x="264.7023" 75.505 + y="777.74353">(Point 2.S)</tspan></text> 75.506 + <path 75.507 + inkscape:connector-curvature="0" 75.508 + id="path5620" 75.509 + d="m 318.82881,742.77746 c 0,19.15152 0,19.15152 0,19.15152" 75.510 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> 75.511 + <text 75.512 + xml:space="preserve" 75.513 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 75.514 + x="320.7023" 75.515 + y="768.52612" 75.516 + id="text5622" 75.517 + sodipodi:linespacing="100%"><tspan 75.518 + style="font-size:9px;text-align:center;text-anchor:middle" 75.519 + sodipodi:role="line" 75.520 + id="tspan5624" 75.521 + x="322.20621" 75.522 + y="768.52612"><tspan 75.523 + id="tspan5626" 75.524 + style="font-size:10px">Resume </tspan></tspan><tspan 75.525 + style="font-size:9px;text-align:center;text-anchor:middle" 75.526 + id="tspan5628" 75.527 + sodipodi:role="line" 75.528 + x="320.7023" 75.529 + y="777.74353">(Point 2.R)</tspan></text> 75.530 + <text 75.531 + sodipodi:linespacing="100%" 75.532 + id="text5630" 75.533 + y="755.27441" 75.534 + x="352.7023" 75.535 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 75.536 + xml:space="preserve"><tspan 75.537 + y="755.27441" 75.538 + x="352.7023" 75.539 + sodipodi:role="line" 75.540 + id="tspan5632">Timeline B</tspan></text> 75.541 + <path 75.542 + inkscape:connector-curvature="0" 75.543 + style="fill:none;stroke:#800000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 75.544 + d="m 320.08408,751.37498 c 27.45405,0 27.45405,0 27.45405,0" 75.545 + id="path5634" /> 75.546 + <path 75.547 + id="path5636" 75.548 + d="m 195.41471,787.37498 c 151.68424,0 151.68424,0 151.68424,0" 75.549 + style="fill:#000000;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 75.550 + inkscape:connector-curvature="0" /> 75.551 + <text 75.552 + xml:space="preserve" 75.553 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 75.554 + x="352.7023" 75.555 + y="790.02271" 75.556 + id="text5638" 75.557 + sodipodi:linespacing="100%"><tspan 75.558 + id="tspan5640" 75.559 + sodipodi:role="line" 75.560 + x="352.7023" 75.561 + y="790.02271">Physical time</tspan></text> 75.562 + <path 75.563 + inkscape:connector-curvature="0" 75.564 + style="fill:none;stroke:#422fac;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 75.565 + d="m 195.92204,665.37498 c 33.06652,0 33.06652,0 33.06652,0" 75.566 + id="path5642" /> 75.567 + <g 75.568 + id="g5644" 75.569 + transform="translate(-70,264)" 75.570 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none"> 75.571 + <path 75.572 + inkscape:connector-curvature="0" 75.573 + id="path5646" 75.574 + d="m 298.82881,392.82004 c 0,19.38279 0,19.38279 0,19.38279" 75.575 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> 75.576 + <text 75.577 + xml:space="preserve" 75.578 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 75.579 + x="298.7023" 75.580 + y="376.52615" 75.581 + id="text5648" 75.582 + sodipodi:linespacing="100%"><tspan 75.583 + style="font-size:10px;text-align:center;text-anchor:middle" 75.584 + sodipodi:role="line" 75.585 + id="tspan5650" 75.586 + x="298.7023" 75.587 + y="376.52615">Suspend</tspan><tspan 75.588 + style="font-size:9px;text-align:center;text-anchor:middle" 75.589 + id="tspan5652" 75.590 + sodipodi:role="line" 75.591 + x="298.7023" 75.592 + y="385.74353">(Point 1.S)</tspan></text> 75.593 + </g> 75.594 + <g 75.595 + id="g5654" 75.596 + transform="translate(-60,264)" 75.597 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none"> 75.598 + <path 75.599 + inkscape:connector-curvature="0" 75.600 + id="path5656" 75.601 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 75.602 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> 75.603 + <text 75.604 + xml:space="preserve" 75.605 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 75.606 + x="378.7023" 75.607 + y="376.52615" 75.608 + id="text5658" 75.609 + sodipodi:linespacing="100%"><tspan 75.610 + style="font-size:9px;text-align:center;text-anchor:middle" 75.611 + sodipodi:role="line" 75.612 + id="tspan5660" 75.613 + x="380.20621" 75.614 + y="376.52615"><tspan 75.615 + id="tspan5662" 75.616 + style="font-size:10px">Resume </tspan></tspan><tspan 75.617 + style="font-size:9px;text-align:center;text-anchor:middle" 75.618 + id="tspan5664" 75.619 + sodipodi:role="line" 75.620 + x="378.7023" 75.621 + y="385.74353">(Point 1.R)</tspan></text> 75.622 + </g> 75.623 + <text 75.624 + xml:space="preserve" 75.625 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 75.626 + x="352.7023" 75.627 + y="669.27441" 75.628 + id="text5666" 75.629 + sodipodi:linespacing="100%"><tspan 75.630 + id="tspan5668" 75.631 + sodipodi:role="line" 75.632 + x="352.7023" 75.633 + y="669.27441">Timeline A</tspan></text> 75.634 + <path 75.635 + id="path5670" 75.636 + d="m 320.08408,665.37498 c 27.45405,0 27.45405,0 27.45405,0" 75.637 + style="fill:none;stroke:#422fac;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 75.638 + inkscape:connector-curvature="0" /> 75.639 + <path 75.640 + id="path5672" 75.641 + d="m 227.92204,711.37498 c 15.62732,0 15.62732,0 15.62732,0" 75.642 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1.80000007;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.60000014, 3.60000014;stroke-dashoffset:0;marker-end:none" 75.643 + inkscape:connector-curvature="0" /> 75.644 + <path 75.645 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" 75.646 + d="m 228.82881,701.32352 c 0,19.38279 0,19.38279 0,19.38279" 75.647 + id="path5674" 75.648 + inkscape:connector-curvature="0" /> 75.649 + <path 75.650 + inkscape:connector-curvature="0" 75.651 + id="path5676" 75.652 + d="m 242.82881,701.32352 c 0,19.38279 0,19.38279 0,19.38279" 75.653 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> 75.654 + <path 75.655 + inkscape:connector-curvature="0" 75.656 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1.80000007;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.6000001, 3.6000001;stroke-dashoffset:0;marker-end:none" 75.657 + d="m 265.92203,711.37498 c 28.40046,0 28.40046,0 28.40046,0" 75.658 + id="path5678" /> 75.659 + <path 75.660 + inkscape:connector-curvature="0" 75.661 + id="path5680" 75.662 + d="m 266.82881,701.32352 c 0,19.38279 0,19.38279 0,19.38279" 75.663 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> 75.664 + <path 75.665 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" 75.666 + d="m 294.82881,701.32352 c 0,19.38279 0,19.38279 0,19.38279" 75.667 + id="path5682" 75.668 + inkscape:connector-curvature="0" /> 75.669 + <path 75.670 + inkscape:connector-curvature="0" 75.671 + id="path5684" 75.672 + d="m 228.82881,677.32352 c 0,19.38279 0,19.38279 0,19.38279" 75.673 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.6, 3.6;stroke-dashoffset:0;marker-end:url(#Arrow2Send)" /> 75.674 + <path 75.675 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.6, 3.6;stroke-dashoffset:0;marker-end:url(#Arrow2Send)" 75.676 + d="m 266.82881,744.24025 c 0,-19.38279 0,-19.38279 0,-19.38279" 75.677 + id="path5686" 75.678 + inkscape:connector-curvature="0" /> 75.679 + <path 75.680 + sodipodi:nodetypes="csc" 75.681 + inkscape:connector-curvature="0" 75.682 + id="path5688" 75.683 + d="m 273.86358,709.43892 c 7.11652,-15.03735 7.78546,-21.56492 13.39171,-26.28454 10.55265,-8.88373 29.25918,-10.38025 29.25918,-10.38025" 75.684 + style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" /> 75.685 + <path 75.686 + style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 75.687 + d="m 284.33924,712.53107 c 5.3686,15.03735 5.87324,21.56492 10.10251,26.28454 7.96078,8.88373 22.07272,10.38025 22.07272,10.38025" 75.688 + id="path5690" 75.689 + inkscape:connector-curvature="0" 75.690 + sodipodi:nodetypes="csc" /> 75.691 + <text 75.692 + xml:space="preserve" 75.693 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 75.694 + x="354.7023" 75.695 + y="481.27441" 75.696 + id="text5880" 75.697 + sodipodi:linespacing="100%"><tspan 75.698 + id="tspan5882" 75.699 + sodipodi:role="line" 75.700 + x="354.7023" 75.701 + y="481.27441" 75.702 + style="fill:#ff0000">Hidden</tspan><tspan 75.703 + sodipodi:role="line" 75.704 + x="354.7023" 75.705 + y="491.27441" 75.706 + id="tspan5884" 75.707 + style="fill:#ff0000">Timeline</tspan></text> 75.708 + <text 75.709 + xml:space="preserve" 75.710 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 75.711 + x="248.7023" 75.712 + y="502.52612" 75.713 + id="text5886" 75.714 + sodipodi:linespacing="100%"><tspan 75.715 + style="font-size:10px;text-align:center;text-anchor:middle" 75.716 + id="tspan5890" 75.717 + sodipodi:role="line" 75.718 + x="248.7023" 75.719 + y="502.52612">comm</tspan></text> 75.720 + <text 75.721 + sodipodi:linespacing="100%" 75.722 + id="text5894" 75.723 + y="466.52612" 75.724 + x="244.7023" 75.725 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 75.726 + xml:space="preserve"><tspan 75.727 + y="466.52612" 75.728 + x="244.7023" 75.729 + sodipodi:role="line" 75.730 + id="tspan5896" 75.731 + style="font-size:10px;text-align:center;text-anchor:middle">comm</tspan></text> 75.732 + <text 75.733 + xml:space="preserve" 75.734 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 75.735 + x="314.7023" 75.736 + y="464.52612" 75.737 + id="text5898" 75.738 + sodipodi:linespacing="100%"><tspan 75.739 + style="font-size:10px;text-align:center;text-anchor:middle" 75.740 + id="tspan5900" 75.741 + sodipodi:role="line" 75.742 + x="314.7023" 75.743 + y="464.52612">control</tspan></text> 75.744 + <text 75.745 + sodipodi:linespacing="100%" 75.746 + id="text5902" 75.747 + y="506.52612" 75.748 + x="320.7023" 75.749 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 75.750 + xml:space="preserve"><tspan 75.751 + y="506.52612" 75.752 + x="320.7023" 75.753 + sodipodi:role="line" 75.754 + id="tspan5904" 75.755 + style="font-size:10px;text-align:center;text-anchor:middle">control</tspan></text> 75.756 + </g> 75.757 +</svg>
76.1 Binary file 0__Papers/VMS/VMS__Foundation_Paper/VMS__Full_conference_version/figures/PR__timeline_dual_w_hidden.pdf has changed
77.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 77.2 +++ b/0__Papers/VMS/VMS__Foundation_Paper/VMS__Full_conference_version/figures/PR__timeline_dual_w_hidden.svg Sat Aug 03 19:24:22 2013 -0700 77.3 @@ -0,0 +1,366 @@ 77.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 77.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 77.6 + 77.7 +<svg 77.8 + xmlns:dc="http://purl.org/dc/elements/1.1/" 77.9 + xmlns:cc="http://creativecommons.org/ns#" 77.10 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 77.11 + xmlns:svg="http://www.w3.org/2000/svg" 77.12 + xmlns="http://www.w3.org/2000/svg" 77.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 77.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 77.15 + width="744.09448819" 77.16 + height="1052.3622047" 77.17 + id="svg2" 77.18 + sodipodi:version="0.32" 77.19 + inkscape:version="0.48.2 r9819" 77.20 + sodipodi:docname="PR__timeline_dual_w_hidden.svg" 77.21 + inkscape:output_extension="org.inkscape.output.svg.inkscape" 77.22 + version="1.1"> 77.23 + <defs 77.24 + id="defs4"> 77.25 + <marker 77.26 + inkscape:stockid="Arrow2Send" 77.27 + orient="auto" 77.28 + refY="0.0" 77.29 + refX="0.0" 77.30 + id="Arrow2Send" 77.31 + style="overflow:visible;"> 77.32 + <path 77.33 + id="path4262" 77.34 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 77.35 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 77.36 + transform="scale(0.3) rotate(180) translate(-2.3,0)" /> 77.37 + </marker> 77.38 + <marker 77.39 + inkscape:stockid="Arrow1Mend" 77.40 + orient="auto" 77.41 + refY="0.0" 77.42 + refX="0.0" 77.43 + id="Arrow1Mend" 77.44 + style="overflow:visible;"> 77.45 + <path 77.46 + id="path4238" 77.47 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 77.48 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" 77.49 + transform="scale(0.4) rotate(180) translate(10,0)" /> 77.50 + </marker> 77.51 + <marker 77.52 + inkscape:stockid="Arrow2Mend" 77.53 + orient="auto" 77.54 + refY="0.0" 77.55 + refX="0.0" 77.56 + id="Arrow2Mend" 77.57 + style="overflow:visible;"> 77.58 + <path 77.59 + id="path4008" 77.60 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 77.61 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 77.62 + transform="scale(0.6) rotate(180) translate(0,0)" /> 77.63 + </marker> 77.64 + <inkscape:perspective 77.65 + sodipodi:type="inkscape:persp3d" 77.66 + inkscape:vp_x="0 : 526.18109 : 1" 77.67 + inkscape:vp_y="0 : 1000 : 0" 77.68 + inkscape:vp_z="744.09448 : 526.18109 : 1" 77.69 + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" 77.70 + id="perspective10" /> 77.71 + <inkscape:perspective 77.72 + id="perspective11923" 77.73 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 77.74 + inkscape:vp_z="1 : 0.5 : 1" 77.75 + inkscape:vp_y="0 : 1000 : 0" 77.76 + inkscape:vp_x="0 : 0.5 : 1" 77.77 + sodipodi:type="inkscape:persp3d" /> 77.78 + </defs> 77.79 + <sodipodi:namedview 77.80 + id="base" 77.81 + pagecolor="#ffffff" 77.82 + bordercolor="#666666" 77.83 + borderopacity="1.0" 77.84 + gridtolerance="10000" 77.85 + guidetolerance="10" 77.86 + objecttolerance="10" 77.87 + inkscape:pageopacity="0.0" 77.88 + inkscape:pageshadow="2" 77.89 + inkscape:zoom="1.3364318" 77.90 + inkscape:cx="214.9176" 77.91 + inkscape:cy="603.68563" 77.92 + inkscape:document-units="px" 77.93 + inkscape:current-layer="layer1" 77.94 + showgrid="false" 77.95 + inkscape:window-width="1317" 77.96 + inkscape:window-height="878" 77.97 + inkscape:window-x="7" 77.98 + inkscape:window-y="1" 77.99 + inkscape:window-maximized="0" /> 77.100 + <metadata 77.101 + id="metadata7"> 77.102 + <rdf:RDF> 77.103 + <cc:Work 77.104 + rdf:about=""> 77.105 + <dc:format>image/svg+xml</dc:format> 77.106 + <dc:type 77.107 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 77.108 + <dc:title></dc:title> 77.109 + </cc:Work> 77.110 + </rdf:RDF> 77.111 + </metadata> 77.112 + <g 77.113 + inkscape:label="Layer 1" 77.114 + inkscape:groupmode="layer" 77.115 + id="layer1"> 77.116 + <path 77.117 + inkscape:connector-curvature="0" 77.118 + style="fill:#800000;stroke:#800000;stroke-width:1.80000007;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 77.119 + d="m 195.48813,523.37498 c 69.82336,0 69.82336,0 69.82336,0" 77.120 + id="path5552" /> 77.121 + <path 77.122 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" 77.123 + d="m 266.82881,514.82004 c 0,19.38279 0,19.38279 0,19.38279" 77.124 + id="path5556" 77.125 + inkscape:connector-curvature="0" /> 77.126 + <text 77.127 + sodipodi:linespacing="100%" 77.128 + id="text5558" 77.129 + y="540.52612" 77.130 + x="264.7023" 77.131 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 77.132 + xml:space="preserve"><tspan 77.133 + y="540.52612" 77.134 + x="264.7023" 77.135 + id="tspan5560" 77.136 + sodipodi:role="line" 77.137 + style="font-size:10px;text-align:center;text-anchor:middle">Suspend</tspan><tspan 77.138 + y="549.74353" 77.139 + x="264.7023" 77.140 + sodipodi:role="line" 77.141 + id="tspan5562" 77.142 + style="font-size:9px;text-align:center;text-anchor:middle">(Point 2.S)</tspan></text> 77.143 + <path 77.144 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" 77.145 + d="m 318.82881,514.77746 c 0,19.15152 0,19.15152 0,19.15152" 77.146 + id="path5566" 77.147 + inkscape:connector-curvature="0" /> 77.148 + <text 77.149 + sodipodi:linespacing="100%" 77.150 + id="text5568" 77.151 + y="540.52612" 77.152 + x="320.7023" 77.153 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 77.154 + xml:space="preserve"><tspan 77.155 + y="540.52612" 77.156 + x="322.20621" 77.157 + id="tspan5570" 77.158 + sodipodi:role="line" 77.159 + style="font-size:9px;text-align:center;text-anchor:middle"><tspan 77.160 + style="font-size:10px" 77.161 + id="tspan5572">Resume </tspan></tspan><tspan 77.162 + y="549.74353" 77.163 + x="320.7023" 77.164 + sodipodi:role="line" 77.165 + id="tspan5574" 77.166 + style="font-size:9px;text-align:center;text-anchor:middle">(Point 2.R)</tspan></text> 77.167 + <text 77.168 + xml:space="preserve" 77.169 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 77.170 + x="354.7023" 77.171 + y="527.27441" 77.172 + id="text5576" 77.173 + sodipodi:linespacing="100%"><tspan 77.174 + id="tspan5578" 77.175 + sodipodi:role="line" 77.176 + x="354.7023" 77.177 + y="527.27441">Timeline B</tspan></text> 77.178 + <path 77.179 + id="path5580" 77.180 + d="m 320.08409,523.37498 c 28.16395,0 28.16395,0 28.16395,0" 77.181 + style="fill:none;stroke:#800000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 77.182 + inkscape:connector-curvature="0" /> 77.183 + <path 77.184 + inkscape:connector-curvature="0" 77.185 + style="fill:#000000;stroke:#000000;stroke-width:1.80000007;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 77.186 + d="m 195.41472,559.37498 c 153.16627,0 153.16627,0 153.16627,0" 77.187 + id="path5582" /> 77.188 + <text 77.189 + sodipodi:linespacing="100%" 77.190 + id="text5584" 77.191 + y="562.02271" 77.192 + x="354.05777" 77.193 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 77.194 + xml:space="preserve"><tspan 77.195 + y="562.02271" 77.196 + x="354.05777" 77.197 + sodipodi:role="line" 77.198 + id="tspan5586">Physical time</tspan></text> 77.199 + <path 77.200 + id="path5588" 77.201 + d="m 195.17378,437.37498 c 33.06652,0 33.06652,0 33.06652,0" 77.202 + style="fill:none;stroke:#422fac;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 77.203 + inkscape:connector-curvature="0" /> 77.204 + <g 77.205 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 77.206 + transform="translate(-70,36)" 77.207 + id="g5590"> 77.208 + <path 77.209 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" 77.210 + d="m 298.82881,392.82004 c 0,19.38279 0,19.38279 0,19.38279" 77.211 + id="path5592" 77.212 + inkscape:connector-curvature="0" /> 77.213 + <text 77.214 + sodipodi:linespacing="100%" 77.215 + id="text5594" 77.216 + y="376.52615" 77.217 + x="298.7023" 77.218 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 77.219 + xml:space="preserve"><tspan 77.220 + y="376.52615" 77.221 + x="298.7023" 77.222 + id="tspan5596" 77.223 + sodipodi:role="line" 77.224 + style="font-size:10px;text-align:center;text-anchor:middle">Suspend</tspan><tspan 77.225 + y="385.74353" 77.226 + x="298.7023" 77.227 + sodipodi:role="line" 77.228 + id="tspan5598" 77.229 + style="font-size:9px;text-align:center;text-anchor:middle">(Point 1.S)</tspan></text> 77.230 + </g> 77.231 + <g 77.232 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 77.233 + transform="translate(-60,36)" 77.234 + id="g5600"> 77.235 + <path 77.236 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" 77.237 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 77.238 + id="path5602" 77.239 + inkscape:connector-curvature="0" /> 77.240 + <text 77.241 + sodipodi:linespacing="100%" 77.242 + id="text5604" 77.243 + y="376.52615" 77.244 + x="378.7023" 77.245 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 77.246 + xml:space="preserve"><tspan 77.247 + y="376.52615" 77.248 + x="380.20621" 77.249 + id="tspan5606" 77.250 + sodipodi:role="line" 77.251 + style="font-size:9px;text-align:center;text-anchor:middle"><tspan 77.252 + style="font-size:10px" 77.253 + id="tspan5608">Resume </tspan></tspan><tspan 77.254 + y="385.74353" 77.255 + x="378.7023" 77.256 + sodipodi:role="line" 77.257 + id="tspan5610" 77.258 + style="font-size:9px;text-align:center;text-anchor:middle">(Point 1.R)</tspan></text> 77.259 + </g> 77.260 + <text 77.261 + sodipodi:linespacing="100%" 77.262 + id="text5612" 77.263 + y="441.27441" 77.264 + x="354.7023" 77.265 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 77.266 + xml:space="preserve"><tspan 77.267 + y="441.27441" 77.268 + x="354.7023" 77.269 + sodipodi:role="line" 77.270 + id="tspan5614">Timeline A</tspan></text> 77.271 + <path 77.272 + inkscape:connector-curvature="0" 77.273 + style="fill:none;stroke:#422fac;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 77.274 + d="m 320.08409,437.37498 c 28.16395,0 28.16395,0 28.16395,0" 77.275 + id="path5616" /> 77.276 + <path 77.277 + inkscape:connector-curvature="0" 77.278 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1.80000007;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.60000016, 3.60000016;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 77.279 + d="m 196.11806,483.37498 c 152.64336,0 152.64336,0 152.64336,0" 77.280 + id="path3063" /> 77.281 + <path 77.282 + style="fill:none;stroke:#000000;stroke-width:1.80000007;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.60000001, 3.60000001;stroke-dashoffset:0;marker-end:url(#Arrow2Send)" 77.283 + d="m 228.82881,449.32353 c 0,29.78359 0,29.78359 0,29.78359" 77.284 + id="path3086" 77.285 + inkscape:connector-curvature="0" /> 77.286 + <path 77.287 + inkscape:connector-curvature="0" 77.288 + id="path5044" 77.289 + d="m 266.82881,516.24027 c 0,-29.74405 0,-29.74405 0,-29.74405" 77.290 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.60000002, 3.60000002;stroke-dashoffset:0;marker-end:url(#Arrow2Send)" /> 77.291 + <path 77.292 + style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 77.293 + d="m 293.31837,481.43892 c 3.87039,-15.03735 4.2342,-21.56492 7.28321,-26.28454 5.73916,-8.88373 15.91289,-10.38025 15.91289,-10.38025" 77.294 + id="path5048" 77.295 + inkscape:connector-curvature="0" 77.296 + sodipodi:nodetypes="csc" /> 77.297 + <path 77.298 + sodipodi:nodetypes="csc" 77.299 + inkscape:connector-curvature="0" 77.300 + id="path5608" 77.301 + d="m 301.54925,484.53107 c 2.49703,15.03735 2.73174,21.56492 4.69884,26.28454 3.70269,8.88373 10.26639,10.38025 10.26639,10.38025" 77.302 + style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" /> 77.303 + <text 77.304 + xml:space="preserve" 77.305 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 77.306 + x="354.7023" 77.307 + y="481.27441" 77.308 + id="text5880" 77.309 + sodipodi:linespacing="100%"><tspan 77.310 + id="tspan5882" 77.311 + sodipodi:role="line" 77.312 + x="354.7023" 77.313 + y="481.27441" 77.314 + style="fill:#ff0000">Hidden</tspan><tspan 77.315 + sodipodi:role="line" 77.316 + x="354.7023" 77.317 + y="491.27441" 77.318 + id="tspan5884" 77.319 + style="fill:#ff0000">Timeline</tspan></text> 77.320 + <text 77.321 + xml:space="preserve" 77.322 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 77.323 + x="248.7023" 77.324 + y="502.52612" 77.325 + id="text5886" 77.326 + sodipodi:linespacing="100%"><tspan 77.327 + style="font-size:10px;text-align:center;text-anchor:middle" 77.328 + id="tspan5890" 77.329 + sodipodi:role="line" 77.330 + x="248.7023" 77.331 + y="502.52612">comm</tspan></text> 77.332 + <text 77.333 + sodipodi:linespacing="100%" 77.334 + id="text5894" 77.335 + y="466.52612" 77.336 + x="244.7023" 77.337 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 77.338 + xml:space="preserve"><tspan 77.339 + y="466.52612" 77.340 + x="244.7023" 77.341 + sodipodi:role="line" 77.342 + id="tspan5896" 77.343 + style="font-size:10px;text-align:center;text-anchor:middle">comm</tspan></text> 77.344 + <text 77.345 + xml:space="preserve" 77.346 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 77.347 + x="314.7023" 77.348 + y="464.52612" 77.349 + id="text5898" 77.350 + sodipodi:linespacing="100%"><tspan 77.351 + style="font-size:10px;text-align:center;text-anchor:middle" 77.352 + id="tspan5900" 77.353 + sodipodi:role="line" 77.354 + x="314.7023" 77.355 + y="464.52612">control</tspan></text> 77.356 + <text 77.357 + sodipodi:linespacing="100%" 77.358 + id="text5902" 77.359 + y="506.52612" 77.360 + x="320.7023" 77.361 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 77.362 + xml:space="preserve"><tspan 77.363 + y="506.52612" 77.364 + x="320.7023" 77.365 + sodipodi:role="line" 77.366 + id="tspan5904" 77.367 + style="font-size:10px;text-align:center;text-anchor:middle">control</tspan></text> 77.368 + </g> 77.369 +</svg>
78.1 Binary file 0__Papers/VMS/VMS__Foundation_Paper/VMS__Full_conference_version/figures/PR__timeline_single.pdf has changed
79.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 79.2 +++ b/0__Papers/VMS/VMS__Foundation_Paper/VMS__Full_conference_version/figures/PR__timeline_single.svg Sat Aug 03 19:24:22 2013 -0700 79.3 @@ -0,0 +1,306 @@ 79.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 79.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 79.6 + 79.7 +<svg 79.8 + xmlns:dc="http://purl.org/dc/elements/1.1/" 79.9 + xmlns:cc="http://creativecommons.org/ns#" 79.10 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 79.11 + xmlns:svg="http://www.w3.org/2000/svg" 79.12 + xmlns="http://www.w3.org/2000/svg" 79.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 79.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 79.15 + width="744.09448819" 79.16 + height="1052.3622047" 79.17 + id="svg2" 79.18 + sodipodi:version="0.32" 79.19 + inkscape:version="0.48.2 r9819" 79.20 + sodipodi:docname="PR__timeline_single.svg" 79.21 + inkscape:output_extension="org.inkscape.output.svg.inkscape" 79.22 + version="1.1"> 79.23 + <defs 79.24 + id="defs4"> 79.25 + <marker 79.26 + inkscape:stockid="Arrow2Mend" 79.27 + orient="auto" 79.28 + refY="0.0" 79.29 + refX="0.0" 79.30 + id="Arrow2Mend" 79.31 + style="overflow:visible;"> 79.32 + <path 79.33 + id="path4008" 79.34 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 79.35 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 79.36 + transform="scale(0.6) rotate(180) translate(0,0)" /> 79.37 + </marker> 79.38 + <inkscape:perspective 79.39 + sodipodi:type="inkscape:persp3d" 79.40 + inkscape:vp_x="0 : 526.18109 : 1" 79.41 + inkscape:vp_y="0 : 1000 : 0" 79.42 + inkscape:vp_z="744.09448 : 526.18109 : 1" 79.43 + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" 79.44 + id="perspective10" /> 79.45 + <inkscape:perspective 79.46 + id="perspective11923" 79.47 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 79.48 + inkscape:vp_z="1 : 0.5 : 1" 79.49 + inkscape:vp_y="0 : 1000 : 0" 79.50 + inkscape:vp_x="0 : 0.5 : 1" 79.51 + sodipodi:type="inkscape:persp3d" /> 79.52 + </defs> 79.53 + <sodipodi:namedview 79.54 + id="base" 79.55 + pagecolor="#ffffff" 79.56 + bordercolor="#666666" 79.57 + borderopacity="1.0" 79.58 + gridtolerance="10000" 79.59 + guidetolerance="10" 79.60 + objecttolerance="10" 79.61 + inkscape:pageopacity="0.0" 79.62 + inkscape:pageshadow="2" 79.63 + inkscape:zoom="3.5576235" 79.64 + inkscape:cx="283.87197" 79.65 + inkscape:cy="706.58767" 79.66 + inkscape:document-units="px" 79.67 + inkscape:current-layer="layer1" 79.68 + showgrid="false" 79.69 + inkscape:window-width="1600" 79.70 + inkscape:window-height="848" 79.71 + inkscape:window-x="-8" 79.72 + inkscape:window-y="-8" 79.73 + inkscape:window-maximized="0" /> 79.74 + <metadata 79.75 + id="metadata7"> 79.76 + <rdf:RDF> 79.77 + <cc:Work 79.78 + rdf:about=""> 79.79 + <dc:format>image/svg+xml</dc:format> 79.80 + <dc:type 79.81 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 79.82 + <dc:title /> 79.83 + </cc:Work> 79.84 + </rdf:RDF> 79.85 + </metadata> 79.86 + <g 79.87 + inkscape:label="Layer 1" 79.88 + inkscape:groupmode="layer" 79.89 + id="layer1"> 79.90 + <path 79.91 + id="path8089" 79.92 + d="m 195.41471,257.37498 c 151.68424,0 151.68424,0 151.68424,0" 79.93 + style="fill:#000000;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 79.94 + inkscape:connector-curvature="0" /> 79.95 + <text 79.96 + xml:space="preserve" 79.97 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 79.98 + x="352.7023" 79.99 + y="260.77094" 79.100 + id="text8091" 79.101 + sodipodi:linespacing="100%"><tspan 79.102 + id="tspan8093" 79.103 + sodipodi:role="line" 79.104 + x="352.7023" 79.105 + y="260.77094">Physical time</tspan></text> 79.106 + <path 79.107 + inkscape:connector-curvature="0" 79.108 + style="fill:none;stroke:#422fac;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 79.109 + d="m 195.92204,221.37498 c 33.06652,0 33.06652,0 33.06652,0" 79.110 + id="path8095" /> 79.111 + <g 79.112 + id="g8097" 79.113 + transform="translate(-70,-180)" 79.114 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none"> 79.115 + <path 79.116 + inkscape:connector-curvature="0" 79.117 + id="path8099" 79.118 + d="m 298.82881,392.82004 c 0,19.38279 0,19.38279 0,19.38279" 79.119 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> 79.120 + <text 79.121 + xml:space="preserve" 79.122 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 79.123 + x="298.7023" 79.124 + y="376.52615" 79.125 + id="text8101" 79.126 + sodipodi:linespacing="100%"><tspan 79.127 + style="font-size:10px;text-align:center;text-anchor:middle" 79.128 + sodipodi:role="line" 79.129 + id="tspan8103" 79.130 + x="298.7023" 79.131 + y="376.52615">Suspend</tspan><tspan 79.132 + style="font-size:9px;text-align:center;text-anchor:middle" 79.133 + id="tspan8105" 79.134 + sodipodi:role="line" 79.135 + x="298.7023" 79.136 + y="385.74353">(Point 1.S)</tspan></text> 79.137 + </g> 79.138 + <g 79.139 + id="g8107" 79.140 + transform="translate(-60,-180)" 79.141 + style="stroke-width:1.8;stroke-miterlimit:4;stroke-dasharray:none"> 79.142 + <path 79.143 + inkscape:connector-curvature="0" 79.144 + id="path8109" 79.145 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 79.146 + style="fill:none;stroke:#000000;stroke-width:1.8;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" /> 79.147 + <text 79.148 + xml:space="preserve" 79.149 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS;stroke-width:1.8;stroke-miterlimit:4;stroke-dasharray:none" 79.150 + x="378.7023" 79.151 + y="376.52615" 79.152 + id="text8111" 79.153 + sodipodi:linespacing="100%"><tspan 79.154 + style="font-size:9px;text-align:center;text-anchor:middle;stroke-width:1.8;stroke-miterlimit:4;stroke-dasharray:none" 79.155 + sodipodi:role="line" 79.156 + id="tspan8113" 79.157 + x="380.20621" 79.158 + y="376.52615"><tspan 79.159 + id="tspan8115" 79.160 + style="font-size:10px;stroke-width:1.8;stroke-miterlimit:4;stroke-dasharray:none">Resume </tspan></tspan><tspan 79.161 + style="font-size:9px;text-align:center;text-anchor:middle;stroke-width:1.8;stroke-miterlimit:4;stroke-dasharray:none" 79.162 + id="tspan8117" 79.163 + sodipodi:role="line" 79.164 + x="378.7023" 79.165 + y="385.74353">(Point 1.R)</tspan></text> 79.166 + </g> 79.167 + <text 79.168 + xml:space="preserve" 79.169 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 79.170 + x="352.7023" 79.171 + y="224.52615" 79.172 + id="text8119" 79.173 + sodipodi:linespacing="100%"><tspan 79.174 + id="tspan8121" 79.175 + sodipodi:role="line" 79.176 + x="352.7023" 79.177 + y="224.52615">Timeline A</tspan></text> 79.178 + <path 79.179 + id="path8123" 79.180 + d="m 320.08408,221.37498 c 27.45405,0 27.45405,0 27.45405,0" 79.181 + style="fill:none;stroke:#422fac;stroke-width:1.8;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none" 79.182 + inkscape:connector-curvature="0" /> 79.183 + <path 79.184 + inkscape:connector-curvature="0" 79.185 + style="fill:#000000;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 79.186 + d="m 195.41471,377.37498 c 151.68424,0 151.68424,0 151.68424,0" 79.187 + id="path5836" /> 79.188 + <text 79.189 + sodipodi:linespacing="100%" 79.190 + id="text5838" 79.191 + y="380.77094" 79.192 + x="352.7023" 79.193 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 79.194 + xml:space="preserve"><tspan 79.195 + y="380.77094" 79.196 + x="352.7023" 79.197 + sodipodi:role="line" 79.198 + id="tspan5840">Physical time</tspan></text> 79.199 + <path 79.200 + id="path5842" 79.201 + d="m 195.92204,341.37498 c 33.06652,0 33.06652,0 33.06652,0" 79.202 + style="fill:none;stroke:#422fac;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 79.203 + inkscape:connector-curvature="0" /> 79.204 + <g 79.205 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 79.206 + transform="translate(-70,-60)" 79.207 + id="g5844"> 79.208 + <path 79.209 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" 79.210 + d="m 298.82881,392.82004 c 0,19.38279 0,19.38279 0,19.38279" 79.211 + id="path5846" 79.212 + inkscape:connector-curvature="0" /> 79.213 + <text 79.214 + sodipodi:linespacing="100%" 79.215 + id="text5848" 79.216 + y="376.52615" 79.217 + x="298.7023" 79.218 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 79.219 + xml:space="preserve"><tspan 79.220 + y="376.52615" 79.221 + x="298.7023" 79.222 + id="tspan5850" 79.223 + sodipodi:role="line" 79.224 + style="font-size:10px;text-align:center;text-anchor:middle">Suspend</tspan><tspan 79.225 + y="385.74353" 79.226 + x="298.7023" 79.227 + sodipodi:role="line" 79.228 + id="tspan5852" 79.229 + style="font-size:9px;text-align:center;text-anchor:middle">(Point 1.S)</tspan></text> 79.230 + </g> 79.231 + <g 79.232 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 79.233 + transform="translate(-60,-60)" 79.234 + id="g5854"> 79.235 + <path 79.236 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" 79.237 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 79.238 + id="path5856" 79.239 + inkscape:connector-curvature="0" /> 79.240 + <text 79.241 + sodipodi:linespacing="100%" 79.242 + id="text5858" 79.243 + y="376.52615" 79.244 + x="378.7023" 79.245 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 79.246 + xml:space="preserve"><tspan 79.247 + y="376.52615" 79.248 + x="380.20621" 79.249 + id="tspan5860" 79.250 + sodipodi:role="line" 79.251 + style="font-size:9px;text-align:center;text-anchor:middle"><tspan 79.252 + style="font-size:10px" 79.253 + id="tspan5862">Resume </tspan></tspan><tspan 79.254 + y="385.74353" 79.255 + x="378.7023" 79.256 + sodipodi:role="line" 79.257 + id="tspan5864" 79.258 + style="font-size:9px;text-align:center;text-anchor:middle">(Point 1.R)</tspan></text> 79.259 + </g> 79.260 + <text 79.261 + sodipodi:linespacing="100%" 79.262 + id="text5866" 79.263 + y="344.52615" 79.264 + x="352.7023" 79.265 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 79.266 + xml:space="preserve"><tspan 79.267 + y="344.52615" 79.268 + x="352.7023" 79.269 + sodipodi:role="line" 79.270 + id="tspan5868">Timeline A</tspan></text> 79.271 + <path 79.272 + inkscape:connector-curvature="0" 79.273 + style="fill:none;stroke:#422fac;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 79.274 + d="m 320.08408,341.37498 c 27.45405,0 27.45405,0 27.45405,0" 79.275 + id="path5870" /> 79.276 + <path 79.277 + style="fill:none;stroke:#000000;stroke-width:1.8;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.6,1.8;stroke-dashoffset:0" 79.278 + d="m 248.81439,338.09818 c 0,9.22856 0,9.22856 0,9.22856" 79.279 + id="path5846-1" 79.280 + inkscape:connector-curvature="0" /> 79.281 + <path 79.282 + inkscape:connector-curvature="0" 79.283 + id="path6664" 79.284 + d="m 266.81439,338.09818 c 0,9.22856 0,9.22856 0,9.22856" 79.285 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.6, 1.8;stroke-dashoffset:0" /> 79.286 + <path 79.287 + inkscape:connector-curvature="0" 79.288 + style="fill:none;stroke:#999999;stroke-width:1.79999994999999990;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none;opacity:0.53539822999999997" 79.289 + d="m 249.92204,341.37498 c 16.089,0 16.089,0 16.089,0" 79.290 + id="path6666" /> 79.291 + <text 79.292 + xml:space="preserve" 79.293 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 79.294 + x="244.7023" 79.295 + y="356.52615" 79.296 + id="text6668" 79.297 + sodipodi:linespacing="100%"><tspan 79.298 + sodipodi:role="line" 79.299 + x="244.7023" 79.300 + y="356.52615" 79.301 + style="font-size:8px;fill:#999999" 79.302 + id="tspan6674">Hidden</tspan><tspan 79.303 + sodipodi:role="line" 79.304 + x="244.7023" 79.305 + y="364.52615" 79.306 + id="tspan6672" 79.307 + style="font-size:8px;fill:#999999">meta-comm</tspan></text> 79.308 + </g> 79.309 +</svg>
80.1 Binary file 0__Papers/VMS/VMS__Foundation_Paper/VMS__Full_conference_version/figures/PR__timeline_sync_def.pdf has changed
81.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 81.2 +++ b/0__Papers/VMS/VMS__Foundation_Paper/VMS__Full_conference_version/figures/PR__timeline_sync_def.svg Sat Aug 03 19:24:22 2013 -0700 81.3 @@ -0,0 +1,498 @@ 81.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 81.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 81.6 + 81.7 +<svg 81.8 + xmlns:dc="http://purl.org/dc/elements/1.1/" 81.9 + xmlns:cc="http://creativecommons.org/ns#" 81.10 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 81.11 + xmlns:svg="http://www.w3.org/2000/svg" 81.12 + xmlns="http://www.w3.org/2000/svg" 81.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 81.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 81.15 + width="744.09448819" 81.16 + height="1052.3622047" 81.17 + id="svg2" 81.18 + sodipodi:version="0.32" 81.19 + inkscape:version="0.48.2 r9819" 81.20 + sodipodi:docname="PR__timeline_sync_def.svg" 81.21 + inkscape:output_extension="org.inkscape.output.svg.inkscape" 81.22 + version="1.1"> 81.23 + <defs 81.24 + id="defs4"> 81.25 + <marker 81.26 + inkscape:stockid="Arrow2Mstart" 81.27 + orient="auto" 81.28 + refY="0.0" 81.29 + refX="0.0" 81.30 + id="Arrow2Mstart" 81.31 + style="overflow:visible"> 81.32 + <path 81.33 + id="path3961" 81.34 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round" 81.35 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 81.36 + transform="scale(0.6) translate(0,0)" /> 81.37 + </marker> 81.38 + <marker 81.39 + inkscape:stockid="Arrow2Mend" 81.40 + orient="auto" 81.41 + refY="0.0" 81.42 + refX="0.0" 81.43 + id="Arrow2Mend" 81.44 + style="overflow:visible;"> 81.45 + <path 81.46 + id="path4008" 81.47 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 81.48 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 81.49 + transform="scale(0.6) rotate(180) translate(0,0)" /> 81.50 + </marker> 81.51 + <inkscape:perspective 81.52 + sodipodi:type="inkscape:persp3d" 81.53 + inkscape:vp_x="0 : 526.18109 : 1" 81.54 + inkscape:vp_y="0 : 1000 : 0" 81.55 + inkscape:vp_z="744.09448 : 526.18109 : 1" 81.56 + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" 81.57 + id="perspective10" /> 81.58 + <inkscape:perspective 81.59 + id="perspective11923" 81.60 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 81.61 + inkscape:vp_z="1 : 0.5 : 1" 81.62 + inkscape:vp_y="0 : 1000 : 0" 81.63 + inkscape:vp_x="0 : 0.5 : 1" 81.64 + sodipodi:type="inkscape:persp3d" /> 81.65 + </defs> 81.66 + <sodipodi:namedview 81.67 + id="base" 81.68 + pagecolor="#ffffff" 81.69 + bordercolor="#666666" 81.70 + borderopacity="1.0" 81.71 + gridtolerance="10000" 81.72 + guidetolerance="10" 81.73 + objecttolerance="10" 81.74 + inkscape:pageopacity="0.0" 81.75 + inkscape:pageshadow="2" 81.76 + inkscape:zoom="2.0363696" 81.77 + inkscape:cx="138.31068" 81.78 + inkscape:cy="659.21141" 81.79 + inkscape:document-units="px" 81.80 + inkscape:current-layer="layer1" 81.81 + showgrid="false" 81.82 + inkscape:window-width="1600" 81.83 + inkscape:window-height="848" 81.84 + inkscape:window-x="-8" 81.85 + inkscape:window-y="-8" 81.86 + inkscape:window-maximized="1" /> 81.87 + <metadata 81.88 + id="metadata7"> 81.89 + <rdf:RDF> 81.90 + <cc:Work 81.91 + rdf:about=""> 81.92 + <dc:format>image/svg+xml</dc:format> 81.93 + <dc:type 81.94 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 81.95 + <dc:title></dc:title> 81.96 + </cc:Work> 81.97 + </rdf:RDF> 81.98 + </metadata> 81.99 + <g 81.100 + inkscape:label="Layer 1" 81.101 + inkscape:groupmode="layer" 81.102 + id="layer1"> 81.103 + <g 81.104 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 81.105 + id="g10393" 81.106 + transform="translate(-60,22)"> 81.107 + <path 81.108 + inkscape:connector-curvature="0" 81.109 + id="path10395" 81.110 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 81.111 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> 81.112 + </g> 81.113 + <text 81.114 + xml:space="preserve" 81.115 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 81.116 + x="374.7023" 81.117 + y="427.27441" 81.118 + id="text10405" 81.119 + sodipodi:linespacing="100%"><tspan 81.120 + id="tspan10407" 81.121 + sodipodi:role="line" 81.122 + x="374.7023" 81.123 + y="427.27441">Timeline B</tspan></text> 81.124 + <path 81.125 + id="path10409" 81.126 + d="m 320.08409,423.37498 c 48.88494,0 48.88494,0 48.88494,0" 81.127 + style="fill:none;stroke:#800000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 81.128 + inkscape:connector-curvature="0" /> 81.129 + <path 81.130 + id="path10411" 81.131 + d="m 283.92204,381.37498 c 33.06652,0 33.06652,0 33.06652,0" 81.132 + style="fill:none;stroke:#422fac;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 81.133 + inkscape:connector-curvature="0" /> 81.134 + <g 81.135 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 81.136 + transform="translate(-60,-20)" 81.137 + id="g10423"> 81.138 + <path 81.139 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" 81.140 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 81.141 + id="path10425" 81.142 + inkscape:connector-curvature="0" /> 81.143 + <text 81.144 + sodipodi:linespacing="100%" 81.145 + id="text10427" 81.146 + y="380.52615" 81.147 + x="378.7023" 81.148 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 81.149 + xml:space="preserve"><tspan 81.150 + y="380.52615" 81.151 + x="378.7023" 81.152 + sodipodi:role="line" 81.153 + id="tspan10433" 81.154 + style="font-size:9px;text-align:center;text-anchor:middle">Sync</tspan><tspan 81.155 + y="389.52615" 81.156 + x="378.7023" 81.157 + sodipodi:role="line" 81.158 + style="font-size:9px;text-align:center;text-anchor:middle" 81.159 + id="tspan11167">Point</tspan></text> 81.160 + </g> 81.161 + <text 81.162 + sodipodi:linespacing="100%" 81.163 + id="text10435" 81.164 + y="385.27441" 81.165 + x="374.7023" 81.166 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 81.167 + xml:space="preserve"><tspan 81.168 + y="385.27441" 81.169 + x="374.7023" 81.170 + sodipodi:role="line" 81.171 + id="tspan10437">Timeline A</tspan></text> 81.172 + <path 81.173 + inkscape:connector-curvature="0" 81.174 + style="fill:none;stroke:#422fac;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 81.175 + d="m 320.08409,381.37498 c 48.88494,0 48.88494,0 48.88494,0" 81.176 + id="path10439" /> 81.177 + <path 81.178 + style="fill:none;stroke:#000000;stroke-width:1.29999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.89999986,3.89999986;stroke-dashoffset:0" 81.179 + d="m 318.92887,395.30966 c 0,24.40348 0,24.40348 0,24.40348" 81.180 + id="path10425-2" 81.181 + inkscape:connector-curvature="0" /> 81.182 + <path 81.183 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000004, 3.00000004;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 81.184 + d="m 294.31645,382.21359 c 34.40952,37.45034 2.57725,2.48534 35.69881,39.49989" 81.185 + id="path11081" 81.186 + inkscape:connector-curvature="0" 81.187 + sodipodi:nodetypes="cc" /> 81.188 + <text 81.189 + sodipodi:linespacing="100%" 81.190 + id="text11017-7" 81.191 + y="380.07288" 81.192 + x="289.94116" 81.193 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 81.194 + xml:space="preserve"><tspan 81.195 + y="380.07288" 81.196 + x="289.94116" 81.197 + sodipodi:role="line" 81.198 + id="tspan11021-1" 81.199 + style="font-size:10px;text-align:center;text-anchor:middle">write</tspan></text> 81.200 + <text 81.201 + xml:space="preserve" 81.202 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 81.203 + x="331.94116" 81.204 + y="432.07288" 81.205 + id="text11111" 81.206 + sodipodi:linespacing="100%"><tspan 81.207 + style="font-size:10px;text-align:center;text-anchor:middle" 81.208 + id="tspan11113" 81.209 + sodipodi:role="line" 81.210 + x="331.94116" 81.211 + y="432.07288">read</tspan></text> 81.212 + <g 81.213 + transform="translate(-60,122)" 81.214 + id="g11117" 81.215 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none"> 81.216 + <path 81.217 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" 81.218 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 81.219 + id="path11119" 81.220 + inkscape:connector-curvature="0" /> 81.221 + </g> 81.222 + <text 81.223 + sodipodi:linespacing="100%" 81.224 + id="text11121" 81.225 + y="527.27441" 81.226 + x="394.7023" 81.227 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 81.228 + xml:space="preserve"><tspan 81.229 + y="527.27441" 81.230 + x="394.7023" 81.231 + sodipodi:role="line" 81.232 + id="tspan11123">Timeline B</tspan></text> 81.233 + <path 81.234 + inkscape:connector-curvature="0" 81.235 + style="fill:none;stroke:#800000;stroke-width:1.80000007;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 81.236 + d="m 320.08412,523.37498 c 70.34044,0 70.34044,0 70.34044,0" 81.237 + id="path11125" /> 81.238 + <path 81.239 + inkscape:connector-curvature="0" 81.240 + style="fill:none;stroke:#422fac;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 81.241 + d="m 283.92204,481.37498 c 33.06652,0 33.06652,0 33.06652,0" 81.242 + id="path11127" /> 81.243 + <g 81.244 + id="g11129" 81.245 + transform="translate(-60,80)" 81.246 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none"> 81.247 + <path 81.248 + inkscape:connector-curvature="0" 81.249 + id="path11131" 81.250 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 81.251 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> 81.252 + <text 81.253 + xml:space="preserve" 81.254 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 81.255 + x="378.7023" 81.256 + y="380.52615" 81.257 + id="text11133" 81.258 + sodipodi:linespacing="100%"><tspan 81.259 + style="font-size:9px;text-align:center;text-anchor:middle" 81.260 + id="tspan11135" 81.261 + sodipodi:role="line" 81.262 + x="378.7023" 81.263 + y="380.52615">Sync</tspan><tspan 81.264 + style="font-size:9px;text-align:center;text-anchor:middle" 81.265 + sodipodi:role="line" 81.266 + x="378.7023" 81.267 + y="389.52615" 81.268 + id="tspan11165">Point</tspan></text> 81.269 + </g> 81.270 + <text 81.271 + xml:space="preserve" 81.272 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 81.273 + x="394.7023" 81.274 + y="485.27441" 81.275 + id="text11137" 81.276 + sodipodi:linespacing="100%"><tspan 81.277 + id="tspan11139" 81.278 + sodipodi:role="line" 81.279 + x="394.7023" 81.280 + y="485.27441">Timeline A</tspan></text> 81.281 + <path 81.282 + id="path11141" 81.283 + d="m 320.08412,481.37498 c 70.34044,0 70.34044,0 70.34044,0" 81.284 + style="fill:none;stroke:#422fac;stroke-width:1.80000007;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 81.285 + inkscape:connector-curvature="0" /> 81.286 + <path 81.287 + inkscape:connector-curvature="0" 81.288 + id="path11143" 81.289 + d="m 318.92887,495.30966 c 0,24.40348 0,24.40348 0,24.40348" 81.290 + style="fill:none;stroke:#000000;stroke-width:1.29999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.89999986, 3.89999986;stroke-dashoffset:0" /> 81.291 + <path 81.292 + sodipodi:nodetypes="cc" 81.293 + inkscape:connector-curvature="0" 81.294 + id="path11145" 81.295 + d="m 294.31645,482.21359 c 34.40952,37.45034 2.57725,2.48534 35.69881,39.49989" 81.296 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000004, 3.00000004;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 81.297 + <text 81.298 + xml:space="preserve" 81.299 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 81.300 + x="291.94116" 81.301 + y="480.07288" 81.302 + id="text11147" 81.303 + sodipodi:linespacing="100%"><tspan 81.304 + style="font-size:10px;text-align:center;text-anchor:middle" 81.305 + id="tspan11149" 81.306 + sodipodi:role="line" 81.307 + x="291.94116" 81.308 + y="480.07288">write</tspan></text> 81.309 + <text 81.310 + sodipodi:linespacing="100%" 81.311 + id="text11151" 81.312 + y="532.07288" 81.313 + x="331.94116" 81.314 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 81.315 + xml:space="preserve"><tspan 81.316 + y="532.07288" 81.317 + x="331.94116" 81.318 + sodipodi:role="line" 81.319 + id="tspan11153" 81.320 + style="font-size:10px;text-align:center;text-anchor:middle">read</tspan></text> 81.321 + <g 81.322 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 81.323 + transform="translate(-26,80)" 81.324 + id="g11155"> 81.325 + <path 81.326 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" 81.327 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 81.328 + id="path11157" 81.329 + inkscape:connector-curvature="0" /> 81.330 + <text 81.331 + sodipodi:linespacing="100%" 81.332 + id="text11159" 81.333 + y="380.52615" 81.334 + x="378.7023" 81.335 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 81.336 + xml:space="preserve"><tspan 81.337 + y="380.52615" 81.338 + x="378.7023" 81.339 + sodipodi:role="line" 81.340 + id="tspan11161" 81.341 + style="font-size:9px;text-align:center;text-anchor:middle">Sync</tspan><tspan 81.342 + y="389.52615" 81.343 + x="378.7023" 81.344 + sodipodi:role="line" 81.345 + style="font-size:9px;text-align:center;text-anchor:middle" 81.346 + id="tspan11163">Point</tspan></text> 81.347 + </g> 81.348 + <text 81.349 + sodipodi:linespacing="100%" 81.350 + id="text11169" 81.351 + y="480.07288" 81.352 + x="369.94116" 81.353 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 81.354 + xml:space="preserve"><tspan 81.355 + y="480.07288" 81.356 + x="369.94116" 81.357 + sodipodi:role="line" 81.358 + id="tspan11171" 81.359 + style="font-size:10px;text-align:center;text-anchor:middle">write</tspan></text> 81.360 + <path 81.361 + style="fill:#ff0000;stroke:#ff0000;stroke-width:0.99999994000000003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000004000000020, 3.00000004000000020;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 81.362 + d="m 370.40555,482.21359 c -34.40952,37.45034 -2.57725,2.48534 -35.69881,39.49989" 81.363 + id="path11173" 81.364 + inkscape:connector-curvature="0" 81.365 + sodipodi:nodetypes="cc" /> 81.366 + <text 81.367 + xml:space="preserve" 81.368 + style="font-size:18.11628723000000100px;font-style:normal;font-weight:bold;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:#ff0000;font-family:Sans;-inkscape-font-specification:Sans Bold" 81.369 + x="254.37491" 81.370 + y="686.63239" 81.371 + id="text11175" 81.372 + sodipodi:linespacing="125%" 81.373 + transform="scale(1.3547877,0.73812303)"><tspan 81.374 + sodipodi:role="line" 81.375 + id="tspan11177" 81.376 + x="254.37491" 81.377 + y="686.63239">X</tspan></text> 81.378 + <path 81.379 + inkscape:connector-curvature="0" 81.380 + style="fill:none;stroke:#800000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 81.381 + d="m 258.91945,423.37498 c 58.04959,0 58.04959,0 58.04959,0" 81.382 + id="path11275" /> 81.383 + <path 81.384 + id="path11459" 81.385 + d="m 258.91945,523.37498 c 58.04959,0 58.04959,0 58.04959,0" 81.386 + style="fill:none;stroke:#800000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 81.387 + inkscape:connector-curvature="0" /> 81.388 + <g 81.389 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 81.390 + id="g11557" 81.391 + transform="translate(-26,122)"> 81.392 + <path 81.393 + inkscape:connector-curvature="0" 81.394 + id="path11559" 81.395 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 81.396 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> 81.397 + </g> 81.398 + <path 81.399 + style="fill:none;stroke:#000000;stroke-width:1.29999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.89999986, 3.89999986;stroke-dashoffset:0" 81.400 + d="m 352.92887,495.30966 c 0,24.40348 0,24.40348 0,24.40348" 81.401 + id="path11561" 81.402 + inkscape:connector-curvature="0" /> 81.403 + <text 81.404 + sodipodi:linespacing="100%" 81.405 + id="text11625" 81.406 + y="327.27441" 81.407 + x="374.7023" 81.408 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 81.409 + xml:space="preserve"><tspan 81.410 + y="327.27441" 81.411 + x="374.7023" 81.412 + sodipodi:role="line" 81.413 + id="tspan11627">Timeline B</tspan></text> 81.414 + <path 81.415 + inkscape:connector-curvature="0" 81.416 + style="fill:none;stroke:#800000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 81.417 + d="m 258.20925,323.37498 c 110.75976,0 110.75976,0 110.75976,0" 81.418 + id="path11629" /> 81.419 + <text 81.420 + xml:space="preserve" 81.421 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 81.422 + x="374.7023" 81.423 + y="285.27441" 81.424 + id="text11643" 81.425 + sodipodi:linespacing="100%"><tspan 81.426 + id="tspan11645" 81.427 + sodipodi:role="line" 81.428 + x="374.7023" 81.429 + y="285.27441">Timeline A</tspan></text> 81.430 + <path 81.431 + id="path11647" 81.432 + d="m 280.79847,281.37498 c 88.17054,0 88.17054,0 88.17054,0" 81.433 + style="fill:none;stroke:#422fac;stroke-width:1.79999983;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 81.434 + inkscape:connector-curvature="0" /> 81.435 + <text 81.436 + xml:space="preserve" 81.437 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 81.438 + x="289.94116" 81.439 + y="280.07288" 81.440 + id="text11653" 81.441 + sodipodi:linespacing="100%"><tspan 81.442 + style="font-size:10px;text-align:center;text-anchor:middle" 81.443 + id="tspan11655" 81.444 + sodipodi:role="line" 81.445 + x="289.94116" 81.446 + y="280.07288">write</tspan></text> 81.447 + <text 81.448 + sodipodi:linespacing="100%" 81.449 + id="text11657" 81.450 + y="332.07288" 81.451 + x="299.94116" 81.452 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 81.453 + xml:space="preserve"><tspan 81.454 + y="332.07288" 81.455 + x="299.94116" 81.456 + sodipodi:role="line" 81.457 + id="tspan11659" 81.458 + style="font-size:10px;text-align:center;text-anchor:middle">read</tspan></text> 81.459 + <text 81.460 + xml:space="preserve" 81.461 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 81.462 + x="319.94116" 81.463 + y="280.07288" 81.464 + id="text11663" 81.465 + sodipodi:linespacing="100%"><tspan 81.466 + style="font-size:10px;text-align:center;text-anchor:middle" 81.467 + id="tspan11665" 81.468 + sodipodi:role="line" 81.469 + x="319.94116" 81.470 + y="280.07288">read</tspan></text> 81.471 + <text 81.472 + sodipodi:linespacing="100%" 81.473 + id="text11667" 81.474 + y="332.07288" 81.475 + x="331.94116" 81.476 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 81.477 + xml:space="preserve"><tspan 81.478 + y="332.07288" 81.479 + x="331.94116" 81.480 + sodipodi:role="line" 81.481 + id="tspan11669" 81.482 + style="font-size:10px;text-align:center;text-anchor:middle">write</tspan></text> 81.483 + <path 81.484 + id="path3158" 81.485 + d="m 278.54842,303.37498 c 74.42058,0 74.42058,0 74.42058,0" 81.486 + style="fill:#000000;stroke:#000000;stroke-width:1.79999994999999990;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:5.39999986000000030, 5.39999986000000030;marker-end:url(#Arrow2Mend);marker-start:url(#Arrow2Mstart);stroke-dashoffset:0" 81.487 + inkscape:connector-curvature="0" /> 81.488 + <text 81.489 + xml:space="preserve" 81.490 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 81.491 + x="315.94116" 81.492 + y="300.07288" 81.493 + id="text4380" 81.494 + sodipodi:linespacing="100%"><tspan 81.495 + style="font-size:10px;text-align:center;text-anchor:middle" 81.496 + id="tspan4382" 81.497 + sodipodi:role="line" 81.498 + x="315.94116" 81.499 + y="300.07288">shift relative to each other</tspan></text> 81.500 + </g> 81.501 +</svg>
82.1 Binary file 0__Papers/VMS/VMS__Foundation_Paper/VMS__Full_conference_version/figures/PR__timeline_tie_point_ordering.pdf has changed
83.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 83.2 +++ b/0__Papers/VMS/VMS__Foundation_Paper/VMS__Full_conference_version/figures/PR__timeline_tie_point_ordering.svg Sat Aug 03 19:24:22 2013 -0700 83.3 @@ -0,0 +1,369 @@ 83.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 83.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 83.6 + 83.7 +<svg 83.8 + xmlns:dc="http://purl.org/dc/elements/1.1/" 83.9 + xmlns:cc="http://creativecommons.org/ns#" 83.10 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 83.11 + xmlns:svg="http://www.w3.org/2000/svg" 83.12 + xmlns="http://www.w3.org/2000/svg" 83.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 83.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 83.15 + width="744.09448819" 83.16 + height="1052.3622047" 83.17 + id="svg2" 83.18 + sodipodi:version="0.32" 83.19 + inkscape:version="0.48.2 r9819" 83.20 + sodipodi:docname="PR__timeline_tie_point_ordering.svg" 83.21 + inkscape:output_extension="org.inkscape.output.svg.inkscape" 83.22 + version="1.1"> 83.23 + <defs 83.24 + id="defs4"> 83.25 + <marker 83.26 + inkscape:stockid="Arrow2Mend" 83.27 + orient="auto" 83.28 + refY="0.0" 83.29 + refX="0.0" 83.30 + id="Arrow2Mend" 83.31 + style="overflow:visible;"> 83.32 + <path 83.33 + id="path4008" 83.34 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 83.35 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 83.36 + transform="scale(0.6) rotate(180) translate(0,0)" /> 83.37 + </marker> 83.38 + <inkscape:perspective 83.39 + sodipodi:type="inkscape:persp3d" 83.40 + inkscape:vp_x="0 : 526.18109 : 1" 83.41 + inkscape:vp_y="0 : 1000 : 0" 83.42 + inkscape:vp_z="744.09448 : 526.18109 : 1" 83.43 + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" 83.44 + id="perspective10" /> 83.45 + <inkscape:perspective 83.46 + id="perspective11923" 83.47 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 83.48 + inkscape:vp_z="1 : 0.5 : 1" 83.49 + inkscape:vp_y="0 : 1000 : 0" 83.50 + inkscape:vp_x="0 : 0.5 : 1" 83.51 + sodipodi:type="inkscape:persp3d" /> 83.52 + </defs> 83.53 + <sodipodi:namedview 83.54 + id="base" 83.55 + pagecolor="#ffffff" 83.56 + bordercolor="#666666" 83.57 + borderopacity="1.0" 83.58 + gridtolerance="10000" 83.59 + guidetolerance="10" 83.60 + objecttolerance="10" 83.61 + inkscape:pageopacity="0.0" 83.62 + inkscape:pageshadow="2" 83.63 + inkscape:zoom="1.3364318" 83.64 + inkscape:cx="214.9176" 83.65 + inkscape:cy="550.40126" 83.66 + inkscape:document-units="px" 83.67 + inkscape:current-layer="layer1" 83.68 + showgrid="false" 83.69 + inkscape:window-width="1317" 83.70 + inkscape:window-height="832" 83.71 + inkscape:window-x="7" 83.72 + inkscape:window-y="0" 83.73 + inkscape:window-maximized="0" /> 83.74 + <metadata 83.75 + id="metadata7"> 83.76 + <rdf:RDF> 83.77 + <cc:Work 83.78 + rdf:about=""> 83.79 + <dc:format>image/svg+xml</dc:format> 83.80 + <dc:type 83.81 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 83.82 + <dc:title /> 83.83 + </cc:Work> 83.84 + </rdf:RDF> 83.85 + </metadata> 83.86 + <g 83.87 + inkscape:label="Layer 1" 83.88 + inkscape:groupmode="layer" 83.89 + id="layer1"> 83.90 + <path 83.91 + inkscape:connector-curvature="0" 83.92 + style="fill:#800000;stroke:#800000;stroke-width:1.80000007;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 83.93 + d="m 246.98465,423.37498 c 69.82336,0 69.82336,0 69.82336,0" 83.94 + id="path10381" /> 83.95 + <g 83.96 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 83.97 + id="g10393" 83.98 + transform="translate(-60,22)"> 83.99 + <path 83.100 + inkscape:connector-curvature="0" 83.101 + id="path10395" 83.102 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 83.103 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> 83.104 + <text 83.105 + xml:space="preserve" 83.106 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 83.107 + x="378.7023" 83.108 + y="390.52615" 83.109 + id="text10397" 83.110 + sodipodi:linespacing="100%"><tspan 83.111 + style="font-size:9px;text-align:center;text-anchor:middle" 83.112 + id="tspan10403" 83.113 + sodipodi:role="line" 83.114 + x="378.7023" 83.115 + y="390.52615">Tied Point</tspan></text> 83.116 + </g> 83.117 + <text 83.118 + xml:space="preserve" 83.119 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 83.120 + x="352.7023" 83.121 + y="427.27441" 83.122 + id="text10405" 83.123 + sodipodi:linespacing="100%"><tspan 83.124 + id="tspan10407" 83.125 + sodipodi:role="line" 83.126 + x="352.7023" 83.127 + y="427.27441">Timeline B</tspan></text> 83.128 + <path 83.129 + id="path10409" 83.130 + d="m 320.08408,423.37498 c 27.45405,0 27.45405,0 27.45405,0" 83.131 + style="fill:none;stroke:#800000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 83.132 + inkscape:connector-curvature="0" /> 83.133 + <path 83.134 + id="path10411" 83.135 + d="m 283.92204,381.37498 c 33.06652,0 33.06652,0 33.06652,0" 83.136 + style="fill:none;stroke:#422fac;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 83.137 + inkscape:connector-curvature="0" /> 83.138 + <g 83.139 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 83.140 + transform="translate(-60,-20)" 83.141 + id="g10423"> 83.142 + <path 83.143 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" 83.144 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 83.145 + id="path10425" 83.146 + inkscape:connector-curvature="0" /> 83.147 + <text 83.148 + sodipodi:linespacing="100%" 83.149 + id="text10427" 83.150 + y="388.52615" 83.151 + x="378.7023" 83.152 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 83.153 + xml:space="preserve"><tspan 83.154 + y="388.52615" 83.155 + x="378.7023" 83.156 + sodipodi:role="line" 83.157 + id="tspan10433" 83.158 + style="font-size:9px;text-align:center;text-anchor:middle">Tied Point</tspan></text> 83.159 + </g> 83.160 + <text 83.161 + sodipodi:linespacing="100%" 83.162 + id="text10435" 83.163 + y="385.27441" 83.164 + x="352.7023" 83.165 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 83.166 + xml:space="preserve"><tspan 83.167 + y="385.27441" 83.168 + x="352.7023" 83.169 + sodipodi:role="line" 83.170 + id="tspan10437">Timeline A</tspan></text> 83.171 + <path 83.172 + inkscape:connector-curvature="0" 83.173 + style="fill:none;stroke:#422fac;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 83.174 + d="m 320.08408,381.37498 c 27.45405,0 27.45405,0 27.45405,0" 83.175 + id="path10439" /> 83.176 + <path 83.177 + style="fill:none;stroke:#000000;stroke-width:1.29999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.89999986,3.89999986;stroke-dashoffset:0" 83.178 + d="m 318.92887,395.30966 c 0,24.40348 0,24.40348 0,24.40348" 83.179 + id="path10425-2" 83.180 + inkscape:connector-curvature="0" /> 83.181 + <path 83.182 + inkscape:connector-curvature="0" 83.183 + style="fill:#800000;stroke:#800000;stroke-width:1.80000007;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 83.184 + d="m 196.98465,549.37498 c 69.82336,0 69.82336,0 69.82336,0" 83.185 + id="path10981" /> 83.186 + <g 83.187 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 83.188 + id="g10983" 83.189 + transform="translate(-32,148)"> 83.190 + <path 83.191 + inkscape:connector-curvature="0" 83.192 + id="path10985" 83.193 + d="m 298.82881,392.82004 c 0,19.38279 0,19.38279 0,19.38279" 83.194 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> 83.195 + </g> 83.196 + <g 83.197 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 83.198 + id="g10993" 83.199 + transform="translate(-60,148)"> 83.200 + <path 83.201 + inkscape:connector-curvature="0" 83.202 + id="path10995" 83.203 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 83.204 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> 83.205 + </g> 83.206 + <text 83.207 + xml:space="preserve" 83.208 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 83.209 + x="352.7023" 83.210 + y="553.27441" 83.211 + id="text11005" 83.212 + sodipodi:linespacing="100%"><tspan 83.213 + id="tspan11007" 83.214 + sodipodi:role="line" 83.215 + x="352.7023" 83.216 + y="553.27441">Timeline B</tspan></text> 83.217 + <path 83.218 + id="path11009" 83.219 + d="m 320.08408,549.37498 c 27.45405,0 27.45405,0 27.45405,0" 83.220 + style="fill:none;stroke:#800000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 83.221 + inkscape:connector-curvature="0" /> 83.222 + <path 83.223 + id="path11011" 83.224 + d="m 195.92204,489.37498 c 33.06652,0 33.06652,0 33.06652,0" 83.225 + style="fill:none;stroke:#422fac;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 83.226 + inkscape:connector-curvature="0" /> 83.227 + <g 83.228 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 83.229 + transform="translate(-70,88)" 83.230 + id="g11013"> 83.231 + <path 83.232 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" 83.233 + d="m 298.82881,392.82004 c 0,19.38279 0,19.38279 0,19.38279" 83.234 + id="path11015" 83.235 + inkscape:connector-curvature="0" /> 83.236 + <text 83.237 + sodipodi:linespacing="100%" 83.238 + id="text11017" 83.239 + y="376.52615" 83.240 + x="298.7023" 83.241 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 83.242 + xml:space="preserve"><tspan 83.243 + y="376.52615" 83.244 + x="298.7023" 83.245 + id="tspan11019" 83.246 + sodipodi:role="line" 83.247 + style="font-size:10px;text-align:center;text-anchor:middle">Suspend</tspan><tspan 83.248 + y="385.74353" 83.249 + x="298.7023" 83.250 + sodipodi:role="line" 83.251 + id="tspan11021" 83.252 + style="font-size:9px;text-align:center;text-anchor:middle">(Point 1.S)</tspan></text> 83.253 + </g> 83.254 + <g 83.255 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 83.256 + transform="translate(-60,88)" 83.257 + id="g11023"> 83.258 + <path 83.259 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" 83.260 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 83.261 + id="path11025" 83.262 + inkscape:connector-curvature="0" /> 83.263 + <text 83.264 + sodipodi:linespacing="100%" 83.265 + id="text11027" 83.266 + y="376.52615" 83.267 + x="378.7023" 83.268 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 83.269 + xml:space="preserve"><tspan 83.270 + y="376.52615" 83.271 + x="380.20621" 83.272 + id="tspan11029" 83.273 + sodipodi:role="line" 83.274 + style="font-size:9px;text-align:center;text-anchor:middle"><tspan 83.275 + style="font-size:10px" 83.276 + id="tspan11031">Resume </tspan></tspan><tspan 83.277 + y="385.74353" 83.278 + x="378.7023" 83.279 + sodipodi:role="line" 83.280 + id="tspan11033" 83.281 + style="font-size:9px;text-align:center;text-anchor:middle">(Point 1.R)</tspan></text> 83.282 + </g> 83.283 + <text 83.284 + sodipodi:linespacing="100%" 83.285 + id="text11035" 83.286 + y="493.27441" 83.287 + x="352.7023" 83.288 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 83.289 + xml:space="preserve"><tspan 83.290 + y="493.27441" 83.291 + x="352.7023" 83.292 + sodipodi:role="line" 83.293 + id="tspan11037">Timeline A</tspan></text> 83.294 + <path 83.295 + inkscape:connector-curvature="0" 83.296 + style="fill:none;stroke:#422fac;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 83.297 + d="m 320.08408,489.37498 c 27.45405,0 27.45405,0 27.45405,0" 83.298 + id="path11039" /> 83.299 + <path 83.300 + sodipodi:nodetypes="cc" 83.301 + inkscape:connector-curvature="0" 83.302 + id="path11041" 83.303 + d="m 248.40878,545.16363 c 79.41657,-49.15176 5.94823,-3.26189 82.39224,-51.8417" 83.304 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999999, 2.99999999;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 83.305 + <path 83.306 + style="fill:#ff0000;stroke:#ff0000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000003, 3.00000003;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 83.307 + d="m 333.77257,501.82974 c -70.11936,42.79661 -5.25188,2.84014 -72.74667,45.13875" 83.308 + id="path11043" 83.309 + inkscape:connector-curvature="0" 83.310 + sodipodi:nodetypes="cc" /> 83.311 + <text 83.312 + xml:space="preserve" 83.313 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 83.314 + x="-20.52177" 83.315 + y="592.72888" 83.316 + id="text11049" 83.317 + sodipodi:linespacing="100%" 83.318 + transform="matrix(0.85476126,-0.51902138,0.51902138,0.85476126,0,0)"><tspan 83.319 + id="tspan11051" 83.320 + sodipodi:role="line" 83.321 + x="-20.52177" 83.322 + y="592.72888">visible</tspan></text> 83.323 + <text 83.324 + transform="matrix(0.85476126,-0.51902138,0.51902138,0.85476126,0,0)" 83.325 + sodipodi:linespacing="100%" 83.326 + id="text11053" 83.327 + y="609.94751" 83.328 + x="-7.578732" 83.329 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 83.330 + xml:space="preserve"><tspan 83.331 + y="609.94751" 83.332 + x="-7.578732" 83.333 + sodipodi:role="line" 83.334 + id="tspan11055">NOT visible</tspan></text> 83.335 + <path 83.336 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000008, 3.00000008;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 83.337 + d="m 319.48246,543.42226 c -109.48644,-45.60627 -8.20044,-3.02659 -113.5888,-48.10218" 83.338 + id="path11057" 83.339 + inkscape:connector-curvature="0" 83.340 + sodipodi:nodetypes="cc" /> 83.341 + <path 83.342 + sodipodi:nodetypes="cc" 83.343 + inkscape:connector-curvature="0" 83.344 + id="path11059" 83.345 + d="m 218.69167,493.82968 c 107.30304,43.503 8.03691,2.88702 111.32359,45.8838" 83.346 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000006, 3.00000006;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 83.347 + <text 83.348 + transform="matrix(0.92037595,0.39103467,-0.39103467,0.92037595,0,0)" 83.349 + sodipodi:linespacing="100%" 83.350 + id="text11061" 83.351 + y="363.98227" 83.352 + x="416.02991" 83.353 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 83.354 + xml:space="preserve"><tspan 83.355 + y="363.98227" 83.356 + x="416.02991" 83.357 + sodipodi:role="line" 83.358 + id="tspan11063">visible</tspan></text> 83.359 + <text 83.360 + xml:space="preserve" 83.361 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 83.362 + x="374.53223" 83.363 + y="404.16913" 83.364 + id="text11065" 83.365 + sodipodi:linespacing="100%" 83.366 + transform="matrix(0.93857354,0.34507928,-0.34507928,0.93857354,0,0)"><tspan 83.367 + id="tspan11067" 83.368 + sodipodi:role="line" 83.369 + x="374.53223" 83.370 + y="404.16913">NOT visible</tspan></text> 83.371 + </g> 83.372 +</svg>
84.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 84.2 +++ b/0__Papers/VMS/VMS__Foundation_Paper/VMS__Full_conference_version/figures/PR__timeline_tie_point_ordering_2.svg Sat Aug 03 19:24:22 2013 -0700 84.3 @@ -0,0 +1,324 @@ 84.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 84.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 84.6 + 84.7 +<svg 84.8 + xmlns:dc="http://purl.org/dc/elements/1.1/" 84.9 + xmlns:cc="http://creativecommons.org/ns#" 84.10 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 84.11 + xmlns:svg="http://www.w3.org/2000/svg" 84.12 + xmlns="http://www.w3.org/2000/svg" 84.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 84.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 84.15 + width="744.09448819" 84.16 + height="1052.3622047" 84.17 + id="svg2" 84.18 + sodipodi:version="0.32" 84.19 + inkscape:version="0.48.2 r9819" 84.20 + sodipodi:docname="PR__timeline_tie_point_ordering.svg" 84.21 + inkscape:output_extension="org.inkscape.output.svg.inkscape" 84.22 + version="1.1"> 84.23 + <defs 84.24 + id="defs4"> 84.25 + <marker 84.26 + inkscape:stockid="Arrow2Mend" 84.27 + orient="auto" 84.28 + refY="0.0" 84.29 + refX="0.0" 84.30 + id="Arrow2Mend" 84.31 + style="overflow:visible;"> 84.32 + <path 84.33 + id="path4008" 84.34 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 84.35 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 84.36 + transform="scale(0.6) rotate(180) translate(0,0)" /> 84.37 + </marker> 84.38 + <inkscape:perspective 84.39 + sodipodi:type="inkscape:persp3d" 84.40 + inkscape:vp_x="0 : 526.18109 : 1" 84.41 + inkscape:vp_y="0 : 1000 : 0" 84.42 + inkscape:vp_z="744.09448 : 526.18109 : 1" 84.43 + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" 84.44 + id="perspective10" /> 84.45 + <inkscape:perspective 84.46 + id="perspective11923" 84.47 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 84.48 + inkscape:vp_z="1 : 0.5 : 1" 84.49 + inkscape:vp_y="0 : 1000 : 0" 84.50 + inkscape:vp_x="0 : 0.5 : 1" 84.51 + sodipodi:type="inkscape:persp3d" /> 84.52 + </defs> 84.53 + <sodipodi:namedview 84.54 + id="base" 84.55 + pagecolor="#ffffff" 84.56 + bordercolor="#666666" 84.57 + borderopacity="1.0" 84.58 + gridtolerance="10000" 84.59 + guidetolerance="10" 84.60 + objecttolerance="10" 84.61 + inkscape:pageopacity="0.0" 84.62 + inkscape:pageshadow="2" 84.63 + inkscape:zoom="1.3364318" 84.64 + inkscape:cx="214.9176" 84.65 + inkscape:cy="550.40126" 84.66 + inkscape:document-units="px" 84.67 + inkscape:current-layer="g4513" 84.68 + showgrid="false" 84.69 + inkscape:window-width="1317" 84.70 + inkscape:window-height="832" 84.71 + inkscape:window-x="7" 84.72 + inkscape:window-y="0" 84.73 + inkscape:window-maximized="0" /> 84.74 + <metadata 84.75 + id="metadata7"> 84.76 + <rdf:RDF> 84.77 + <cc:Work 84.78 + rdf:about=""> 84.79 + <dc:format>image/svg+xml</dc:format> 84.80 + <dc:type 84.81 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 84.82 + <dc:title></dc:title> 84.83 + </cc:Work> 84.84 + </rdf:RDF> 84.85 + </metadata> 84.86 + <g 84.87 + inkscape:label="Layer 1" 84.88 + inkscape:groupmode="layer" 84.89 + id="layer1"> 84.90 + <path 84.91 + inkscape:connector-curvature="0" 84.92 + style="fill:#800000;stroke:#800000;stroke-width:1.80000007;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 84.93 + d="m 193.90177,549.37498 c 80.90624,0 80.90624,0 80.90624,0" 84.94 + id="path10981" /> 84.95 + <g 84.96 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 84.97 + id="g10983" 84.98 + transform="translate(-24,148)"> 84.99 + <path 84.100 + inkscape:connector-curvature="0" 84.101 + id="path10985" 84.102 + d="m 298.82881,392.82004 c 0,19.38279 0,19.38279 0,19.38279" 84.103 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> 84.104 + </g> 84.105 + <g 84.106 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 84.107 + id="g10993" 84.108 + transform="translate(-38,148)"> 84.109 + <path 84.110 + inkscape:connector-curvature="0" 84.111 + id="path10995" 84.112 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 84.113 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> 84.114 + </g> 84.115 + <text 84.116 + xml:space="preserve" 84.117 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 84.118 + x="374.7023" 84.119 + y="551.79181" 84.120 + id="text11005" 84.121 + sodipodi:linespacing="100%"><tspan 84.122 + id="tspan11007" 84.123 + sodipodi:role="line" 84.124 + x="374.7023" 84.125 + y="551.79181">Timeline B</tspan></text> 84.126 + <path 84.127 + id="path11009" 84.128 + d="m 342.08408,549.37498 c 27.45405,0 27.45405,0 27.45405,0" 84.129 + style="fill:none;stroke:#800000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 84.130 + inkscape:connector-curvature="0" /> 84.131 + <path 84.132 + id="path11011" 84.133 + d="m 195.92204,489.37498 c 33.06652,0 33.06652,0 33.06652,0" 84.134 + style="fill:none;stroke:#422fac;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 84.135 + inkscape:connector-curvature="0" /> 84.136 + <g 84.137 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 84.138 + transform="translate(-70,88)" 84.139 + id="g11013"> 84.140 + <path 84.141 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" 84.142 + d="m 298.82881,392.82004 c 0,19.38279 0,19.38279 0,19.38279" 84.143 + id="path11015" 84.144 + inkscape:connector-curvature="0" /> 84.145 + <text 84.146 + sodipodi:linespacing="100%" 84.147 + id="text11017" 84.148 + y="376.52615" 84.149 + x="298.7023" 84.150 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 84.151 + xml:space="preserve"><tspan 84.152 + y="376.52615" 84.153 + x="298.7023" 84.154 + id="tspan11019" 84.155 + sodipodi:role="line" 84.156 + style="font-size:10px;text-align:center;text-anchor:middle">Suspend</tspan><tspan 84.157 + y="385.74353" 84.158 + x="298.7023" 84.159 + sodipodi:role="line" 84.160 + id="tspan11021" 84.161 + style="font-size:9px;text-align:center;text-anchor:middle">(Point A1.S)</tspan></text> 84.162 + </g> 84.163 + <g 84.164 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 84.165 + transform="translate(-60,88)" 84.166 + id="g11023"> 84.167 + <path 84.168 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" 84.169 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 84.170 + id="path11025" 84.171 + inkscape:connector-curvature="0" /> 84.172 + <text 84.173 + sodipodi:linespacing="100%" 84.174 + id="text11027" 84.175 + y="376.52615" 84.176 + x="378.7023" 84.177 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 84.178 + xml:space="preserve"><tspan 84.179 + y="376.52615" 84.180 + x="380.20621" 84.181 + id="tspan11029" 84.182 + sodipodi:role="line" 84.183 + style="font-size:9px;text-align:center;text-anchor:middle"><tspan 84.184 + style="font-size:10px" 84.185 + id="tspan11031">Resume </tspan></tspan><tspan 84.186 + y="385.74353" 84.187 + x="378.7023" 84.188 + sodipodi:role="line" 84.189 + id="tspan11033" 84.190 + style="font-size:9px;text-align:center;text-anchor:middle">(Point A1.R)</tspan></text> 84.191 + </g> 84.192 + <text 84.193 + sodipodi:linespacing="100%" 84.194 + id="text11035" 84.195 + y="493.27441" 84.196 + x="376.7023" 84.197 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 84.198 + xml:space="preserve"><tspan 84.199 + y="493.27441" 84.200 + x="376.7023" 84.201 + sodipodi:role="line" 84.202 + id="tspan11037">Timeline A</tspan></text> 84.203 + <path 84.204 + inkscape:connector-curvature="0" 84.205 + style="fill:none;stroke:#422fac;stroke-width:1.80000007;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 84.206 + d="m 320.08409,489.37498 c 50.17059,0 50.17059,0 50.17059,0" 84.207 + id="path11039" /> 84.208 + <path 84.209 + sodipodi:nodetypes="cc" 84.210 + inkscape:connector-curvature="0" 84.211 + id="path11041" 84.212 + d="m 248.40878,545.16363 c 79.41657,-49.15176 5.94823,-3.26189 82.39224,-51.8417" 84.213 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999999, 2.99999999;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 84.214 + <path 84.215 + style="fill:#ff0000;stroke:#ff0000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000003, 3.00000003;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 84.216 + d="m 333.77257,501.82974 c -70.11936,42.79661 -5.25188,2.84014 -72.74667,45.13875" 84.217 + id="path11043" 84.218 + inkscape:connector-curvature="0" 84.219 + sodipodi:nodetypes="cc" /> 84.220 + <text 84.221 + xml:space="preserve" 84.222 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 84.223 + x="-20.52177" 84.224 + y="592.72888" 84.225 + id="text11049" 84.226 + sodipodi:linespacing="100%" 84.227 + transform="matrix(0.85476126,-0.51902138,0.51902138,0.85476126,0,0)"><tspan 84.228 + id="tspan11051" 84.229 + sodipodi:role="line" 84.230 + x="-20.52177" 84.231 + y="592.72888">visible</tspan></text> 84.232 + <text 84.233 + transform="matrix(0.85476126,-0.51902138,0.51902138,0.85476126,0,0)" 84.234 + sodipodi:linespacing="100%" 84.235 + id="text11053" 84.236 + y="609.94751" 84.237 + x="-7.578732" 84.238 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 84.239 + xml:space="preserve"><tspan 84.240 + y="609.94751" 84.241 + x="-7.578732" 84.242 + sodipodi:role="line" 84.243 + id="tspan11055">NOT visible</tspan></text> 84.244 + <path 84.245 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.0000001, 3.0000001;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 84.246 + d="M 344.17507,545.66706 C 211.03802,497.93301 334.20322,542.49927 206.0495,495.32066" 84.247 + id="path11057" 84.248 + inkscape:connector-curvature="0" 84.249 + sodipodi:nodetypes="cc" /> 84.250 + <path 84.251 + sodipodi:nodetypes="cc" 84.252 + inkscape:connector-curvature="0" 84.253 + id="path11059" 84.254 + d="m 218.69167,493.82967 c 130.23301,47.05017 9.75435,3.12242 135.11273,49.6251" 84.255 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000003, 3.00000003;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 84.256 + <text 84.257 + transform="matrix(0.92037595,0.39103467,-0.39103467,0.92037595,0,0)" 84.258 + sodipodi:linespacing="100%" 84.259 + id="text11061" 84.260 + y="363.98227" 84.261 + x="416.02991" 84.262 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 84.263 + xml:space="preserve"><tspan 84.264 + y="363.98227" 84.265 + x="416.02991" 84.266 + sodipodi:role="line" 84.267 + id="tspan11063">visible</tspan></text> 84.268 + <text 84.269 + xml:space="preserve" 84.270 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 84.271 + x="374.53223" 84.272 + y="404.16913" 84.273 + id="text11065" 84.274 + sodipodi:linespacing="100%" 84.275 + transform="matrix(0.93857354,0.34507928,-0.34507928,0.93857354,0,0)"><tspan 84.276 + id="tspan11067" 84.277 + sodipodi:role="line" 84.278 + x="374.53223" 84.279 + y="404.16913">NOT visible</tspan></text> 84.280 + <g 84.281 + id="g4503" 84.282 + transform="translate(-22,190)" 84.283 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none"> 84.284 + <text 84.285 + xml:space="preserve" 84.286 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 84.287 + x="298.7023" 84.288 + y="376.52615" 84.289 + id="text4507" 84.290 + sodipodi:linespacing="100%"><tspan 84.291 + style="font-size:10px;text-align:center;text-anchor:middle" 84.292 + sodipodi:role="line" 84.293 + id="tspan4509" 84.294 + x="298.7023" 84.295 + y="376.52615">Suspend</tspan><tspan 84.296 + style="font-size:9px;text-align:center;text-anchor:middle" 84.297 + id="tspan4511" 84.298 + sodipodi:role="line" 84.299 + x="298.7023" 84.300 + y="385.74353">(Point B1.S)</tspan></text> 84.301 + </g> 84.302 + <g 84.303 + id="g4513" 84.304 + transform="translate(-38,190)" 84.305 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none"> 84.306 + <text 84.307 + xml:space="preserve" 84.308 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 84.309 + x="378.7023" 84.310 + y="376.52615" 84.311 + id="text4517" 84.312 + sodipodi:linespacing="100%"><tspan 84.313 + style="font-size:9px;text-align:center;text-anchor:middle" 84.314 + sodipodi:role="line" 84.315 + id="tspan4519" 84.316 + x="380.20621" 84.317 + y="376.52615"><tspan 84.318 + id="tspan4521" 84.319 + style="font-size:10px">Resume </tspan></tspan><tspan 84.320 + style="font-size:9px;text-align:center;text-anchor:middle" 84.321 + id="tspan4523" 84.322 + sodipodi:role="line" 84.323 + x="378.7023" 84.324 + y="385.74353">(Point B1.R)</tspan></text> 84.325 + </g> 84.326 + </g> 84.327 +</svg>
85.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 85.2 +++ b/0__Papers/VMS/VMS__Foundation_Paper/VMS__Full_conference_version/figures/PR__what_runtime_does.svg Sat Aug 03 19:24:22 2013 -0700 85.3 @@ -0,0 +1,2211 @@ 85.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 85.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 85.6 + 85.7 +<svg 85.8 + xmlns:dc="http://purl.org/dc/elements/1.1/" 85.9 + xmlns:cc="http://creativecommons.org/ns#" 85.10 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 85.11 + xmlns:svg="http://www.w3.org/2000/svg" 85.12 + xmlns="http://www.w3.org/2000/svg" 85.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 85.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 85.15 + width="744.09448819" 85.16 + height="1052.3622047" 85.17 + id="svg2" 85.18 + sodipodi:version="0.32" 85.19 + inkscape:version="0.48.2 r9819" 85.20 + sodipodi:docname="PR__what_runtime_does.svg" 85.21 + inkscape:output_extension="org.inkscape.output.svg.inkscape" 85.22 + version="1.1"> 85.23 + <defs 85.24 + id="defs4"> 85.25 + <marker 85.26 + inkscape:stockid="Arrow2Mstart" 85.27 + orient="auto" 85.28 + refY="0.0" 85.29 + refX="0.0" 85.30 + id="Arrow2Mstart" 85.31 + style="overflow:visible"> 85.32 + <path 85.33 + id="path4534" 85.34 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round" 85.35 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 85.36 + transform="scale(0.6) translate(0,0)" /> 85.37 + </marker> 85.38 + <marker 85.39 + inkscape:stockid="Arrow2Mend" 85.40 + orient="auto" 85.41 + refY="0.0" 85.42 + refX="0.0" 85.43 + id="Arrow2Mend" 85.44 + style="overflow:visible;"> 85.45 + <path 85.46 + id="path4008" 85.47 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 85.48 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 85.49 + transform="scale(0.6) rotate(180) translate(0,0)" /> 85.50 + </marker> 85.51 + <inkscape:perspective 85.52 + sodipodi:type="inkscape:persp3d" 85.53 + inkscape:vp_x="0 : 526.18109 : 1" 85.54 + inkscape:vp_y="0 : 1000 : 0" 85.55 + inkscape:vp_z="744.09448 : 526.18109 : 1" 85.56 + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" 85.57 + id="perspective10" /> 85.58 + <inkscape:perspective 85.59 + id="perspective12172" 85.60 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 85.61 + inkscape:vp_z="1 : 0.5 : 1" 85.62 + inkscape:vp_y="0 : 1000 : 0" 85.63 + inkscape:vp_x="0 : 0.5 : 1" 85.64 + sodipodi:type="inkscape:persp3d" /> 85.65 + <inkscape:perspective 85.66 + id="perspective12937" 85.67 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 85.68 + inkscape:vp_z="1 : 0.5 : 1" 85.69 + inkscape:vp_y="0 : 1000 : 0" 85.70 + inkscape:vp_x="0 : 0.5 : 1" 85.71 + sodipodi:type="inkscape:persp3d" /> 85.72 + </defs> 85.73 + <sodipodi:namedview 85.74 + id="base" 85.75 + pagecolor="#ffffff" 85.76 + bordercolor="#666666" 85.77 + borderopacity="1.0" 85.78 + gridtolerance="10000" 85.79 + guidetolerance="10" 85.80 + objecttolerance="10" 85.81 + inkscape:pageopacity="0.0" 85.82 + inkscape:pageshadow="2" 85.83 + inkscape:zoom="1.05" 85.84 + inkscape:cx="142.1644" 85.85 + inkscape:cy="472.51234" 85.86 + inkscape:document-units="px" 85.87 + inkscape:current-layer="layer1" 85.88 + showgrid="false" 85.89 + inkscape:window-width="1600" 85.90 + inkscape:window-height="848" 85.91 + inkscape:window-x="-8" 85.92 + inkscape:window-y="-8" 85.93 + inkscape:window-maximized="1" /> 85.94 + <metadata 85.95 + id="metadata7"> 85.96 + <rdf:RDF> 85.97 + <cc:Work 85.98 + rdf:about=""> 85.99 + <dc:format>image/svg+xml</dc:format> 85.100 + <dc:type 85.101 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 85.102 + <dc:title></dc:title> 85.103 + </cc:Work> 85.104 + </rdf:RDF> 85.105 + </metadata> 85.106 + <g 85.107 + inkscape:label="Layer 1" 85.108 + inkscape:groupmode="layer" 85.109 + id="layer1"> 85.110 + <text 85.111 + sodipodi:linespacing="100%" 85.112 + id="text12979" 85.113 + y="353.76575" 85.114 + x="326.92542" 85.115 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.116 + xml:space="preserve"><tspan 85.117 + y="353.76575" 85.118 + x="326.92542" 85.119 + id="tspan12981" 85.120 + sodipodi:role="line" 85.121 + style="text-align:center;text-anchor:middle">Master</tspan><tspan 85.122 + y="362.20053" 85.123 + x="326.92542" 85.124 + sodipodi:role="line" 85.125 + id="tspan3291" 85.126 + style="font-size:8px;text-align:center;text-anchor:middle">(runtime system)</tspan><tspan 85.127 + y="370.20053" 85.128 + x="326.92542" 85.129 + sodipodi:role="line" 85.130 + style="font-size:8px;text-align:center;text-anchor:middle" 85.131 + id="tspan8409">on core 1</tspan></text> 85.132 + <g 85.133 + id="g9336" 85.134 + transform="translate(44.002789,-48)"> 85.135 + <rect 85.136 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 85.137 + id="rect3293" 85.138 + width="65.276405" 85.139 + height="37.165791" 85.140 + x="346.40247" 85.141 + y="389.58255" /> 85.142 + <text 85.143 + sodipodi:linespacing="100%" 85.144 + id="text3295" 85.145 + y="400.15268" 85.146 + x="379.00162" 85.147 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.148 + xml:space="preserve"><tspan 85.149 + id="tspan3301" 85.150 + y="400.15268" 85.151 + x="379.00162" 85.152 + sodipodi:role="line" 85.153 + style="text-align:center;text-anchor:middle;fill:#008000">Seed VP</tspan><tspan 85.154 + y="408.58746" 85.155 + x="379.00162" 85.156 + sodipodi:role="line" 85.157 + style="font-size:8px;text-align:center;text-anchor:middle;fill:#008000" 85.158 + id="tspan9389">(created at</tspan><tspan 85.159 + y="416.58746" 85.160 + x="379.00162" 85.161 + sodipodi:role="line" 85.162 + style="font-size:8px;text-align:center;text-anchor:middle;fill:#008000" 85.163 + id="tspan9391">app startup,</tspan><tspan 85.164 + y="424.58746" 85.165 + x="379.00162" 85.166 + sodipodi:role="line" 85.167 + style="font-size:8px;text-align:center;text-anchor:middle;fill:#008000" 85.168 + id="tspan9744">on core 1)</tspan></text> 85.169 + </g> 85.170 + <text 85.171 + xml:space="preserve" 85.172 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.173 + x="517.16797" 85.174 + y="307.42465" 85.175 + id="text3318-1" 85.176 + sodipodi:linespacing="100%"><tspan 85.177 + style="text-align:center;text-anchor:middle;fill:#008000" 85.178 + sodipodi:role="line" 85.179 + x="517.16797" 85.180 + y="307.42465" 85.181 + id="tspan3322-5">Application Code</tspan></text> 85.182 + <text 85.183 + sodipodi:linespacing="100%" 85.184 + id="text3376" 85.185 + y="379.42465" 85.186 + x="517.16797" 85.187 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.188 + xml:space="preserve"><tspan 85.189 + id="tspan3378" 85.190 + y="379.42465" 85.191 + x="517.16797" 85.192 + sodipodi:role="line" 85.193 + style="text-align:center;text-anchor:middle;fill:#008000">Seed_Fn</tspan></text> 85.194 + <text 85.195 + xml:space="preserve" 85.196 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.197 + x="517.16797" 85.198 + y="599.42468" 85.199 + id="text3380" 85.200 + sodipodi:linespacing="100%"><tspan 85.201 + style="text-align:center;text-anchor:middle;fill:#008000" 85.202 + sodipodi:role="line" 85.203 + x="517.16797" 85.204 + y="599.42468" 85.205 + id="tspan3382">Work_Fn</tspan></text> 85.206 + <text 85.207 + sodipodi:linespacing="100%" 85.208 + id="text3388" 85.209 + y="307.42465" 85.210 + x="604.63812" 85.211 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.212 + xml:space="preserve"><tspan 85.213 + id="tspan3390" 85.214 + y="307.42465" 85.215 + x="606.14203" 85.216 + sodipodi:role="line" 85.217 + style="text-align:center;text-anchor:middle;fill:#800000">Language </tspan><tspan 85.218 + y="317.42465" 85.219 + x="604.63812" 85.220 + sodipodi:role="line" 85.221 + style="text-align:center;text-anchor:middle;fill:#800000" 85.222 + id="tspan5106">Wrapper-Lib</tspan><tspan 85.223 + y="327.42465" 85.224 + x="604.63812" 85.225 + sodipodi:role="line" 85.226 + style="text-align:center;text-anchor:middle;fill:#800000" 85.227 + id="tspan3392">Code</tspan></text> 85.228 + <text 85.229 + xml:space="preserve" 85.230 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.231 + x="669.16797" 85.232 + y="307.42465" 85.233 + id="text3394" 85.234 + sodipodi:linespacing="100%"><tspan 85.235 + style="text-align:center;text-anchor:middle;fill:#000080" 85.236 + sodipodi:role="line" 85.237 + x="669.16797" 85.238 + y="307.42465" 85.239 + id="tspan3396">Proto-Runtime</tspan><tspan 85.240 + style="text-align:center;text-anchor:middle;fill:#000080" 85.241 + sodipodi:role="line" 85.242 + x="669.16797" 85.243 + y="317.42465" 85.244 + id="tspan4998">Primitive</tspan><tspan 85.245 + id="tspan3398" 85.246 + style="text-align:center;text-anchor:middle;fill:#000080" 85.247 + sodipodi:role="line" 85.248 + x="669.16797" 85.249 + y="327.42465">Code</tspan></text> 85.250 + <text 85.251 + xml:space="preserve" 85.252 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.253 + x="137.31689" 85.254 + y="411.42465" 85.255 + id="text3412" 85.256 + sodipodi:linespacing="100%"><tspan 85.257 + style="text-align:center;text-anchor:middle;fill:#800000" 85.258 + sodipodi:role="line" 85.259 + x="137.31689" 85.260 + y="411.42465" 85.261 + id="tspan3414">Lang Handler</tspan><tspan 85.262 + style="text-align:center;text-anchor:middle;fill:#800000" 85.263 + sodipodi:role="line" 85.264 + x="137.31689" 85.265 + y="421.42465" 85.266 + id="tspan3422">for create VP</tspan></text> 85.267 + <text 85.268 + xml:space="preserve" 85.269 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.270 + x="137.68066" 85.271 + y="459.42468" 85.272 + id="text3444" 85.273 + sodipodi:linespacing="100%"><tspan 85.274 + style="text-align:center;text-anchor:middle;fill:#800000" 85.275 + sodipodi:role="line" 85.276 + x="137.68066" 85.277 + y="459.42468" 85.278 + id="tspan3450">Assigner Fn</tspan></text> 85.279 + <text 85.280 + xml:space="preserve" 85.281 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.282 + x="327.16797" 85.283 + y="309.42465" 85.284 + id="text3456" 85.285 + sodipodi:linespacing="100%"><tspan 85.286 + style="text-align:center;text-anchor:middle" 85.287 + sodipodi:role="line" 85.288 + x="328.67188" 85.289 + y="309.42465" 85.290 + id="tspan3458">Instances of </tspan><tspan 85.291 + style="text-align:center;text-anchor:middle" 85.292 + sodipodi:role="line" 85.293 + x="327.16797" 85.294 + y="319.42465" 85.295 + id="tspan8405">runtime system</tspan><tspan 85.296 + style="font-size:8px;text-align:center;text-anchor:middle" 85.297 + sodipodi:role="line" 85.298 + x="327.16797" 85.299 + y="327.85944" 85.300 + id="tspan9383">(data structs</tspan><tspan 85.301 + style="font-size:8px;text-align:center;text-anchor:middle" 85.302 + sodipodi:role="line" 85.303 + x="327.16797" 85.304 + y="335.85944" 85.305 + id="tspan9385">on heap)</tspan><tspan 85.306 + id="tspan3460" 85.307 + style="text-align:center;text-anchor:middle" 85.308 + sodipodi:role="line" 85.309 + x="327.16797" 85.310 + y="343.85944" /></text> 85.311 + <text 85.312 + sodipodi:linespacing="100%" 85.313 + id="text3462" 85.314 + y="307.42465" 85.315 + x="423.16797" 85.316 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.317 + xml:space="preserve"><tspan 85.318 + id="tspan3464" 85.319 + y="307.42465" 85.320 + x="423.16797" 85.321 + sodipodi:role="line" 85.322 + style="text-align:center;text-anchor:middle">Instances of</tspan><tspan 85.323 + y="317.42465" 85.324 + x="423.16797" 85.325 + sodipodi:role="line" 85.326 + style="text-align:center;text-anchor:middle" 85.327 + id="tspan3468">Virtual Processors</tspan><tspan 85.328 + y="325.85944" 85.329 + x="423.16797" 85.330 + sodipodi:role="line" 85.331 + style="font-size:8px;text-align:center;text-anchor:middle" 85.332 + id="tspan3466">(data structs</tspan><tspan 85.333 + y="333.85944" 85.334 + x="423.16797" 85.335 + sodipodi:role="line" 85.336 + style="font-size:8px;text-align:center;text-anchor:middle" 85.337 + id="tspan9387">on heap)</tspan></text> 85.338 + <path 85.339 + inkscape:connector-curvature="0" 85.340 + id="path4796" 85.341 + d="m 457.32649,376.02605 c 38.42351,0 38.42351,0 38.42351,0" 85.342 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999996, 2.99999996;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 85.343 + <text 85.344 + xml:space="preserve" 85.345 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.346 + x="604.78461" 85.347 + y="373.42465" 85.348 + id="text4988" 85.349 + sodipodi:linespacing="100%"><tspan 85.350 + style="text-align:center;text-anchor:middle;fill:#800000" 85.351 + sodipodi:role="line" 85.352 + x="604.78461" 85.353 + y="373.42465" 85.354 + id="tspan4990">create VP</tspan><tspan 85.355 + style="text-align:center;text-anchor:middle;fill:#800000" 85.356 + sodipodi:role="line" 85.357 + x="604.78461" 85.358 + y="383.42465" 85.359 + id="tspan5104">wrapper Fn</tspan></text> 85.360 + <text 85.361 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)" 85.362 + xml:space="preserve" 85.363 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.364 + x="638.25385" 85.365 + y="404.96878" 85.366 + id="text5064" 85.367 + sodipodi:linespacing="100%"><tspan 85.368 + style="font-size:8px;text-align:center;text-anchor:middle" 85.369 + sodipodi:role="line" 85.370 + x="638.25385" 85.371 + y="404.96878" 85.372 + id="tspan5066">Call to dyn lib</tspan></text> 85.373 + <path 85.374 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000003, 3.00000003;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 85.375 + d="m 291.99816,376.02605 c -63.44071,0 -63.44071,0 -63.44071,0" 85.376 + id="path5068" 85.377 + inkscape:connector-curvature="0" /> 85.378 + <text 85.379 + sodipodi:linespacing="100%" 85.380 + id="text5070" 85.381 + y="415.78891" 85.382 + x="180.73463" 85.383 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.384 + xml:space="preserve" 85.385 + transform="matrix(0.97994281,-0.19927893,0.19927893,0.97994281,0,0)"><tspan 85.386 + id="tspan5072" 85.387 + y="415.78891" 85.388 + x="180.73463" 85.389 + sodipodi:role="line" 85.390 + style="font-size:8px;text-align:center;text-anchor:middle">Top Level Fn</tspan></text> 85.391 + <text 85.392 + transform="matrix(0.97994281,-0.19927893,0.19927893,0.97994281,0,0)" 85.393 + xml:space="preserve" 85.394 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.395 + x="400.64069" 85.396 + y="458.46729" 85.397 + id="text5074" 85.398 + sodipodi:linespacing="100%"><tspan 85.399 + style="font-size:8px;text-align:center;text-anchor:middle" 85.400 + sodipodi:role="line" 85.401 + x="400.64069" 85.402 + y="458.46729" 85.403 + id="tspan5076">Top Level Fn</tspan></text> 85.404 + <text 85.405 + sodipodi:linespacing="100%" 85.406 + id="text5078" 85.407 + y="674.45374" 85.408 + x="358.75928" 85.409 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.410 + xml:space="preserve" 85.411 + transform="matrix(0.97994281,-0.19927893,0.19927893,0.97994281,0,0)"><tspan 85.412 + id="tspan5080" 85.413 + y="674.45374" 85.414 + x="358.75928" 85.415 + sodipodi:role="line" 85.416 + style="font-size:8px;text-align:center;text-anchor:middle">Top Level Fn</tspan></text> 85.417 + <path 85.418 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999996, 2.99999996;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 85.419 + d="m 458.9835,596.02605 c 36.7665,0 36.7665,0 36.7665,0" 85.420 + id="path5082" 85.421 + inkscape:connector-curvature="0" /> 85.422 + <path 85.423 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 85.424 + d="m 514.02904,382.01894 c 0,5.6572 0,5.6572 0,5.6572" 85.425 + id="path5092" 85.426 + inkscape:connector-curvature="0" 85.427 + sodipodi:nodetypes="cc" /> 85.428 + <path 85.429 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 85.430 + d="m 514.24714,388.02605 c 85.56237,0 85.56237,0 85.56237,0" 85.431 + id="path5094" 85.432 + inkscape:connector-curvature="0" /> 85.433 + <path 85.434 + inkscape:connector-curvature="0" 85.435 + id="path5096" 85.436 + d="m 602.77166,496.02605 c -88.41298,0 -88.41298,0 -88.41298,0" 85.437 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 85.438 + <path 85.439 + sodipodi:nodetypes="cc" 85.440 + inkscape:connector-curvature="0" 85.441 + id="path5140" 85.442 + d="m 514.02904,496.31987 c 0,26.21842 0,26.21842 0,26.21842" 85.443 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 85.444 + <path 85.445 + inkscape:connector-curvature="0" 85.446 + id="path5142" 85.447 + d="m 514.2471,522.02605 c 87.58783,0 87.58783,0 87.58783,0" 85.448 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 85.449 + <text 85.450 + sodipodi:linespacing="100%" 85.451 + id="text5157" 85.452 + y="508.71182" 85.453 + x="604.78461" 85.454 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.455 + xml:space="preserve"><tspan 85.456 + id="tspan5161" 85.457 + y="508.71182" 85.458 + x="604.78461" 85.459 + sodipodi:role="line" 85.460 + style="text-align:center;text-anchor:middle;fill:#800000">end VP</tspan><tspan 85.461 + y="518.71179" 85.462 + x="604.78461" 85.463 + sodipodi:role="line" 85.464 + style="text-align:center;text-anchor:middle;fill:#800000" 85.465 + id="tspan5207">wrapper Fn</tspan></text> 85.466 + <path 85.467 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 85.468 + d="m 602.26584,528.02605 c 63.99676,0 63.99676,0 63.99676,0" 85.469 + id="path5165" 85.470 + inkscape:connector-curvature="0" /> 85.471 + <path 85.472 + sodipodi:nodetypes="cc" 85.473 + inkscape:connector-curvature="0" 85.474 + id="path5179" 85.475 + d="m 514.02904,602.01895 c 0,5.6572 0,5.6572 0,5.6572" 85.476 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 85.477 + <path 85.478 + sodipodi:nodetypes="cc" 85.479 + inkscape:connector-curvature="0" 85.480 + id="path5209" 85.481 + d="m 602.02904,520.31985 c 0,7.35629 0,7.35629 0,7.35629" 85.482 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 85.483 + <text 85.484 + xml:space="preserve" 85.485 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.486 + x="497.16797" 85.487 + y="399.42468" 85.488 + id="text5211" 85.489 + sodipodi:linespacing="100%"><tspan 85.490 + style="text-align:center;text-anchor:middle" 85.491 + sodipodi:role="line" 85.492 + x="497.16797" 85.493 + y="399.42468" 85.494 + id="tspan5215" /></text> 85.495 + <path 85.496 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 85.497 + d="m 602.02904,388.21843 c 0,19.4577 0,19.4577 0,19.4577" 85.498 + id="path5217" 85.499 + inkscape:connector-curvature="0" 85.500 + sodipodi:nodetypes="cc" /> 85.501 + <path 85.502 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 85.503 + d="m 602.24714,408.02605 c 64.71029,0 64.71029,0 64.71029,0" 85.504 + id="path5219" 85.505 + inkscape:connector-curvature="0" /> 85.506 + <path 85.507 + inkscape:connector-curvature="0" 85.508 + id="path5221" 85.509 + d="m 666.85635,492.02605 c -65.78483,0 -65.78483,0 -65.78483,0" 85.510 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 85.511 + <path 85.512 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 85.513 + d="m 668.02904,406.63925 c 0,13.68455 0,13.68455 0,13.68455" 85.514 + id="path5223" 85.515 + inkscape:connector-curvature="0" 85.516 + sodipodi:nodetypes="cc" /> 85.517 + <path 85.518 + sodipodi:nodetypes="cc" 85.519 + inkscape:connector-curvature="0" 85.520 + id="path5229" 85.521 + d="m 602.02904,491.22687 c 0,5.5885 0,5.5885 0,5.5885" 85.522 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 85.523 + <path 85.524 + sodipodi:nodetypes="cc" 85.525 + inkscape:connector-curvature="0" 85.526 + id="path5235" 85.527 + d="m 668.02904,478.63925 c 0,13.68455 0,13.68455 0,13.68455" 85.528 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 85.529 + <text 85.530 + sodipodi:linespacing="100%" 85.531 + id="text5239" 85.532 + y="770.82495" 85.533 + x="188.36783" 85.534 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.535 + xml:space="preserve" 85.536 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 85.537 + id="tspan5241" 85.538 + y="770.82495" 85.539 + x="188.36783" 85.540 + sodipodi:role="line" 85.541 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan><tspan 85.542 + y="778.82495" 85.543 + x="188.36783" 85.544 + sodipodi:role="line" 85.545 + style="font-size:8px;text-align:center;text-anchor:middle" 85.546 + id="tspan5243">and switch</tspan><tspan 85.547 + y="786.82495" 85.548 + x="188.36783" 85.549 + sodipodi:role="line" 85.550 + style="font-size:8px;text-align:center;text-anchor:middle" 85.551 + id="tspan5245">to runtime</tspan></text> 85.552 + <path 85.553 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 85.554 + d="m 271.03421,480.02605 c 193.92439,0 193.92439,0 193.92439,0" 85.555 + id="path5247" 85.556 + inkscape:connector-curvature="0" /> 85.557 + <text 85.558 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 85.559 + xml:space="preserve" 85.560 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.561 + x="157.7636" 85.562 + y="802.43799" 85.563 + id="text5249" 85.564 + sodipodi:linespacing="100%"><tspan 85.565 + id="tspan5255" 85.566 + style="font-size:8px;text-align:center;text-anchor:middle" 85.567 + sodipodi:role="line" 85.568 + x="157.7636" 85.569 + y="802.43799">return</tspan><tspan 85.570 + style="font-size:8px;text-align:center;text-anchor:middle" 85.571 + sodipodi:role="line" 85.572 + x="157.7636" 85.573 + y="810.43799" 85.574 + id="tspan5261">from</tspan><tspan 85.575 + style="font-size:8px;text-align:center;text-anchor:middle" 85.576 + sodipodi:role="line" 85.577 + x="157.7636" 85.578 + y="818.43799" 85.579 + id="tspan5263">suspend</tspan></text> 85.580 + <text 85.581 + sodipodi:linespacing="100%" 85.582 + id="text5345" 85.583 + y="395.42465" 85.584 + x="667.38037" 85.585 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.586 + xml:space="preserve"><tspan 85.587 + id="tspan5349" 85.588 + y="395.42465" 85.589 + x="667.38037" 85.590 + sodipodi:role="line" 85.591 + style="text-align:center;text-anchor:middle;fill:#000080">PR primitive Fn</tspan><tspan 85.592 + y="405.42465" 85.593 + x="667.38037" 85.594 + sodipodi:role="line" 85.595 + style="text-align:center;text-anchor:middle;fill:#000080" 85.596 + id="tspan5353">to send request</tspan></text> 85.597 + <text 85.598 + sodipodi:linespacing="100%" 85.599 + id="text5355" 85.600 + y="392.71429" 85.601 + x="555.29077" 85.602 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.603 + xml:space="preserve" 85.604 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 85.605 + id="tspan5357" 85.606 + y="392.71429" 85.607 + x="555.29077" 85.608 + sodipodi:role="line" 85.609 + style="font-size:8px;text-align:center;text-anchor:middle">normal call</tspan></text> 85.610 + <path 85.611 + sodipodi:nodetypes="cc" 85.612 + inkscape:connector-curvature="0" 85.613 + id="path5359" 85.614 + d="m 668.02904,527.28283 c 0,13.68455 0,13.68455 0,13.68455" 85.615 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 85.616 + <text 85.617 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 85.618 + xml:space="preserve" 85.619 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.620 + x="107.72998" 85.621 + y="856.99628" 85.622 + id="text5363" 85.623 + sodipodi:linespacing="100%"><tspan 85.624 + style="font-size:8px;text-align:center;text-anchor:middle" 85.625 + sodipodi:role="line" 85.626 + x="107.72998" 85.627 + y="856.99628" 85.628 + id="tspan5365">suspend</tspan><tspan 85.629 + id="tspan5367" 85.630 + style="font-size:8px;text-align:center;text-anchor:middle" 85.631 + sodipodi:role="line" 85.632 + x="107.72998" 85.633 + y="864.99628">and switch</tspan><tspan 85.634 + id="tspan5369" 85.635 + style="font-size:8px;text-align:center;text-anchor:middle" 85.636 + sodipodi:role="line" 85.637 + x="107.72998" 85.638 + y="872.99628">to runtime</tspan></text> 85.639 + <text 85.640 + sodipodi:linespacing="100%" 85.641 + id="text5371" 85.642 + y="593.42468" 85.643 + x="604.59662" 85.644 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.645 + xml:space="preserve"><tspan 85.646 + id="tspan5373" 85.647 + y="593.42468" 85.648 + x="604.59662" 85.649 + sodipodi:role="line" 85.650 + style="text-align:center;text-anchor:middle;fill:#800000">Mutex Acquire</tspan><tspan 85.651 + id="tspan5375" 85.652 + y="603.42468" 85.653 + x="604.59662" 85.654 + sodipodi:role="line" 85.655 + style="text-align:center;text-anchor:middle;fill:#800000">wrapper Fn</tspan></text> 85.656 + <path 85.657 + inkscape:connector-curvature="0" 85.658 + id="path5379" 85.659 + d="m 514.24714,608.02605 c 85.56237,0 85.56237,0 85.56237,0" 85.660 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 85.661 + <path 85.662 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 85.663 + d="m 602.77166,708.02605 c -88.41298,0 -88.41298,0 -88.41298,0" 85.664 + id="path5381" 85.665 + inkscape:connector-curvature="0" /> 85.666 + <text 85.667 + xml:space="preserve" 85.668 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.669 + x="604.78461" 85.670 + y="720.71179" 85.671 + id="text5387" 85.672 + sodipodi:linespacing="100%"><tspan 85.673 + style="text-align:center;text-anchor:middle;fill:#800000" 85.674 + sodipodi:role="line" 85.675 + x="604.78461" 85.676 + y="720.71179" 85.677 + id="tspan5389">end VP</tspan><tspan 85.678 + id="tspan5391" 85.679 + style="text-align:center;text-anchor:middle;fill:#800000" 85.680 + sodipodi:role="line" 85.681 + x="604.78461" 85.682 + y="730.71179">wrapper Fn</tspan></text> 85.683 + <path 85.684 + inkscape:connector-curvature="0" 85.685 + id="path5393" 85.686 + d="m 602.289,740.02605 c 65.24023,0 65.24023,0 65.24023,0" 85.687 + style="fill:none;stroke:#000000;stroke-width:0.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 85.688 + <path 85.689 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 85.690 + d="m 602.02904,732.31985 c 0,7.35629 0,7.35629 0,7.35629" 85.691 + id="path5401" 85.692 + inkscape:connector-curvature="0" 85.693 + sodipodi:nodetypes="cc" /> 85.694 + <path 85.695 + sodipodi:nodetypes="cc" 85.696 + inkscape:connector-curvature="0" 85.697 + id="path5403" 85.698 + d="m 602.02904,608.21843 c 0,19.4577 0,19.4577 0,19.4577" 85.699 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 85.700 + <path 85.701 + inkscape:connector-curvature="0" 85.702 + id="path5405" 85.703 + d="m 602.6148,628.02605 c 64.1779,0 64.1779,0 64.1779,0" 85.704 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 85.705 + <path 85.706 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 85.707 + d="m 668.13452,704.02605 c -67.06305,0 -67.06305,0 -67.06305,0" 85.708 + id="path5407" 85.709 + inkscape:connector-curvature="0" /> 85.710 + <path 85.711 + sodipodi:nodetypes="cc" 85.712 + inkscape:connector-curvature="0" 85.713 + id="path5409" 85.714 + d="m 668.02904,626.63925 c 0,13.68455 0,13.68455 0,13.68455" 85.715 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 85.716 + <path 85.717 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 85.718 + d="m 602.02904,703.22687 c 0,5.5885 0,5.5885 0,5.5885" 85.719 + id="path5411" 85.720 + inkscape:connector-curvature="0" 85.721 + sodipodi:nodetypes="cc" /> 85.722 + <path 85.723 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 85.724 + d="m 668.02904,690.63925 c 0,13.68455 0,13.68455 0,13.68455" 85.725 + id="path5417" 85.726 + inkscape:connector-curvature="0" 85.727 + sodipodi:nodetypes="cc" /> 85.728 + <text 85.729 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 85.730 + xml:space="preserve" 85.731 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.732 + x="38.175541" 85.733 + y="928.84552" 85.734 + id="text5421" 85.735 + sodipodi:linespacing="100%"><tspan 85.736 + style="font-size:8px;text-align:center;text-anchor:middle" 85.737 + sodipodi:role="line" 85.738 + x="38.175541" 85.739 + y="928.84552" 85.740 + id="tspan5423">suspend</tspan><tspan 85.741 + id="tspan5425" 85.742 + style="font-size:8px;text-align:center;text-anchor:middle" 85.743 + sodipodi:role="line" 85.744 + x="38.175541" 85.745 + y="936.84552">and switch</tspan><tspan 85.746 + id="tspan5427" 85.747 + style="font-size:8px;text-align:center;text-anchor:middle" 85.748 + sodipodi:role="line" 85.749 + x="38.175541" 85.750 + y="944.84552">to runtime</tspan></text> 85.751 + <text 85.752 + sodipodi:linespacing="100%" 85.753 + id="text5431" 85.754 + y="954.75671" 85.755 + x="10.307833" 85.756 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.757 + xml:space="preserve" 85.758 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 85.759 + y="954.75671" 85.760 + x="10.307833" 85.761 + sodipodi:role="line" 85.762 + style="font-size:8px;text-align:center;text-anchor:middle" 85.763 + id="tspan5433">return</tspan><tspan 85.764 + id="tspan5435" 85.765 + y="962.75671" 85.766 + x="10.307833" 85.767 + sodipodi:role="line" 85.768 + style="font-size:8px;text-align:center;text-anchor:middle">from</tspan><tspan 85.769 + id="tspan5437" 85.770 + y="970.75671" 85.771 + x="10.307833" 85.772 + sodipodi:role="line" 85.773 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan></text> 85.774 + <text 85.775 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 85.776 + xml:space="preserve" 85.777 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.778 + x="556.25635" 85.779 + y="612.71143" 85.780 + id="text5445" 85.781 + sodipodi:linespacing="100%"><tspan 85.782 + style="font-size:8px;text-align:center;text-anchor:middle" 85.783 + sodipodi:role="line" 85.784 + x="556.25635" 85.785 + y="612.71143" 85.786 + id="tspan5447">normal call</tspan></text> 85.787 + <path 85.788 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 85.789 + d="m 668.02904,739.28283 c 0,13.68455 0,13.68455 0,13.68455" 85.790 + id="path5449" 85.791 + inkscape:connector-curvature="0" 85.792 + sodipodi:nodetypes="cc" /> 85.793 + <text 85.794 + sodipodi:linespacing="100%" 85.795 + id="text5453" 85.796 + y="1012.1439" 85.797 + x="-39.679813" 85.798 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.799 + xml:space="preserve" 85.800 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 85.801 + id="tspan5455" 85.802 + y="1012.1439" 85.803 + x="-39.679813" 85.804 + sodipodi:role="line" 85.805 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan><tspan 85.806 + y="1020.1439" 85.807 + x="-39.679813" 85.808 + sodipodi:role="line" 85.809 + style="font-size:8px;text-align:center;text-anchor:middle" 85.810 + id="tspan5457">and switch</tspan><tspan 85.811 + y="1028.144" 85.812 + x="-39.679813" 85.813 + sodipodi:role="line" 85.814 + style="font-size:8px;text-align:center;text-anchor:middle" 85.815 + id="tspan5459">to runtime</tspan></text> 85.816 + <path 85.817 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 85.818 + d="m 514.02904,708.31987 c 0,26.21842 0,26.21842 0,26.21842" 85.819 + id="path5461" 85.820 + inkscape:connector-curvature="0" 85.821 + sodipodi:nodetypes="cc" /> 85.822 + <path 85.823 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 85.824 + d="m 514.2471,734.02605 c 87.58783,0 87.58783,0 87.58783,0" 85.825 + id="path5463" 85.826 + inkscape:connector-curvature="0" /> 85.827 + <text 85.828 + sodipodi:linespacing="100%" 85.829 + id="text5465" 85.830 + y="526.71161" 85.831 + x="555.8786" 85.832 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.833 + xml:space="preserve" 85.834 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 85.835 + id="tspan5467" 85.836 + y="526.71161" 85.837 + x="555.8786" 85.838 + sodipodi:role="line" 85.839 + style="font-size:8px;text-align:center;text-anchor:middle">normal call</tspan></text> 85.840 + <text 85.841 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 85.842 + xml:space="preserve" 85.843 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.844 + x="556.80994" 85.845 + y="738.711" 85.846 + id="text5469" 85.847 + sodipodi:linespacing="100%"><tspan 85.848 + style="font-size:8px;text-align:center;text-anchor:middle" 85.849 + sodipodi:role="line" 85.850 + x="556.80994" 85.851 + y="738.711" 85.852 + id="tspan5471">normal call</tspan></text> 85.853 + <g 85.854 + transform="matrix(1,0,0,0.71130685,-16,120.52913)" 85.855 + id="g8395"> 85.856 + <rect 85.857 + y="313.58255" 85.858 + x="310.40247" 85.859 + height="52.250008" 85.860 + width="65.276405" 85.861 + id="rect8397" 85.862 + style="fill:none;stroke:#000000;stroke-width:1.28076112;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 85.863 + </g> 85.864 + <path 85.865 + sodipodi:nodetypes="cc" 85.866 + inkscape:connector-curvature="0" 85.867 + id="path9273" 85.868 + d="m 514.02904,496.31987 c 0,26.21842 0,26.21842 0,26.21842" 85.869 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 85.870 + <path 85.871 + sodipodi:nodetypes="cc" 85.872 + inkscape:connector-curvature="0" 85.873 + id="path9275" 85.874 + d="m 476.02904,382.79398 c 0,35.61575 0,35.61575 0,35.61575" 85.875 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:none" /> 85.876 + <path 85.877 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 85.878 + d="m 468.24715,418.02605 c 13.34137,0 13.34137,0 13.34137,0" 85.879 + id="path9277" 85.880 + inkscape:connector-curvature="0" /> 85.881 + <path 85.882 + inkscape:connector-curvature="0" 85.883 + id="path9279" 85.884 + d="m 481.57781,480.02605 c -13.14022,0 -13.14022,0 -13.14022,0" 85.885 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 85.886 + <path 85.887 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" 85.888 + d="m 476.02904,480.3113 c 0,57.40944 0,57.40944 0,57.40944" 85.889 + id="path9281" 85.890 + inkscape:connector-curvature="0" 85.891 + sodipodi:nodetypes="cc" /> 85.892 + <path 85.893 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 85.894 + d="m 481.57781,539.27417 c -13.14022,0 -13.14022,0 -13.14022,0" 85.895 + id="path9283" 85.896 + inkscape:connector-curvature="0" /> 85.897 + <text 85.898 + transform="matrix(-0.01875541,0.9998241,-0.9998241,-0.01875541,0,0)" 85.899 + xml:space="preserve" 85.900 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.901 + x="453.93332" 85.902 + y="-466.39136" 85.903 + id="text9285" 85.904 + sodipodi:linespacing="100%"><tspan 85.905 + style="text-align:center;text-anchor:middle;fill:#008000" 85.906 + sodipodi:role="line" 85.907 + x="453.93332" 85.908 + y="-466.39136" 85.909 + id="tspan9287">Timeline of SeedVP</tspan></text> 85.910 + <text 85.911 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 85.912 + xml:space="preserve" 85.913 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.914 + x="485.39722" 85.915 + y="417.02103" 85.916 + id="text9289" 85.917 + sodipodi:linespacing="100%"><tspan 85.918 + style="font-size:8px;text-align:start;text-anchor:start" 85.919 + sodipodi:role="line" 85.920 + x="485.39722" 85.921 + y="417.02103" 85.922 + id="tspan9291">suspend</tspan></text> 85.923 + <text 85.924 + sodipodi:linespacing="100%" 85.925 + id="text9293" 85.926 + y="481.02048" 85.927 + x="485.67838" 85.928 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.929 + xml:space="preserve" 85.930 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 85.931 + id="tspan9295" 85.932 + y="481.02048" 85.933 + x="485.67838" 85.934 + sodipodi:role="line" 85.935 + style="font-size:8px;text-align:start;text-anchor:start">resume</tspan></text> 85.936 + <text 85.937 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 85.938 + xml:space="preserve" 85.939 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.940 + x="485.92978" 85.941 + y="538.22565" 85.942 + id="text9297" 85.943 + sodipodi:linespacing="100%"><tspan 85.944 + style="font-size:8px;text-align:start;text-anchor:start" 85.945 + sodipodi:role="line" 85.946 + x="485.92978" 85.947 + y="538.22565" 85.948 + id="tspan9299">end</tspan></text> 85.949 + <text 85.950 + sodipodi:linespacing="100%" 85.951 + id="text9301" 85.952 + y="307.42465" 85.953 + x="63.167969" 85.954 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.955 + xml:space="preserve"><tspan 85.956 + id="tspan9303" 85.957 + y="307.42465" 85.958 + x="63.167969" 85.959 + sodipodi:role="line" 85.960 + style="text-align:center;text-anchor:middle;fill:#000080">Proto-Runtime</tspan><tspan 85.961 + id="tspan9305" 85.962 + y="317.42465" 85.963 + x="63.167969" 85.964 + sodipodi:role="line" 85.965 + style="text-align:center;text-anchor:middle;fill:#000080">Primitive</tspan><tspan 85.966 + y="327.42465" 85.967 + x="63.167969" 85.968 + sodipodi:role="line" 85.969 + style="text-align:center;text-anchor:middle;fill:#000080" 85.970 + id="tspan9307">Code</tspan></text> 85.971 + <text 85.972 + xml:space="preserve" 85.973 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.974 + x="65.380371" 85.975 + y="423.42465" 85.976 + id="text9309" 85.977 + sodipodi:linespacing="100%"><tspan 85.978 + id="tspan9313" 85.979 + style="text-align:center;text-anchor:middle;fill:#000080" 85.980 + sodipodi:role="line" 85.981 + x="65.380371" 85.982 + y="423.42465">PR primitive Fn</tspan><tspan 85.983 + style="text-align:center;text-anchor:middle;fill:#000080" 85.984 + sodipodi:role="line" 85.985 + x="65.380371" 85.986 + y="433.42465" 85.987 + id="tspan9317">to create VP</tspan></text> 85.988 + <path 85.989 + inkscape:connector-curvature="0" 85.990 + id="path9321" 85.991 + d="m 101.87628,425.85467 c 83.54552,12.98474 93.01032,9.74762 154.91834,33.79457 83.60123,32.47325 132.79902,111.74825 132.79902,111.74825" 85.992 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000006, 3.00000006;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 85.993 + sodipodi:nodetypes="csc" /> 85.994 + <g 85.995 + id="g9341" 85.996 + transform="translate(44.002789,174)"> 85.997 + <rect 85.998 + y="389.58255" 85.999 + x="346.40247" 85.1000 + height="37.165791" 85.1001 + width="65.276405" 85.1002 + id="rect9343" 85.1003 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 85.1004 + <text 85.1005 + xml:space="preserve" 85.1006 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.1007 + x="379.35806" 85.1008 + y="400.72159" 85.1009 + id="text9345" 85.1010 + sodipodi:linespacing="100%"><tspan 85.1011 + style="text-align:center;text-anchor:middle;fill:#008000" 85.1012 + sodipodi:role="line" 85.1013 + x="379.35806" 85.1014 + y="400.72159" 85.1015 + id="tspan9347">VP 1</tspan><tspan 85.1016 + style="font-size:8px;text-align:center;text-anchor:middle;fill:#008000" 85.1017 + sodipodi:role="line" 85.1018 + x="379.35806" 85.1019 + y="409.15637" 85.1020 + id="tspan9349">(created by</tspan><tspan 85.1021 + style="font-size:8px;text-align:center;text-anchor:middle;fill:#008000" 85.1022 + sodipodi:role="line" 85.1023 + x="379.35806" 85.1024 + y="417.15637" 85.1025 + id="tspan9355">application,</tspan><tspan 85.1026 + style="font-size:8px;text-align:center;text-anchor:middle;fill:#008000" 85.1027 + sodipodi:role="line" 85.1028 + x="379.35806" 85.1029 + y="425.15637" 85.1030 + id="tspan9746">on core 2)</tspan></text> 85.1031 + </g> 85.1032 + <g 85.1033 + transform="translate(44.002789,370)" 85.1034 + id="g9371" /> 85.1035 + <text 85.1036 + xml:space="preserve" 85.1037 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.1038 + x="202.41257" 85.1039 + y="379.42465" 85.1040 + id="text9512" 85.1041 + sodipodi:linespacing="100%"><tspan 85.1042 + style="text-align:center;text-anchor:middle;fill:#000080" 85.1043 + sodipodi:role="line" 85.1044 + x="202.41257" 85.1045 + y="379.42465" 85.1046 + id="tspan9514">Master Fn</tspan></text> 85.1047 + <path 85.1048 + sodipodi:nodetypes="cc" 85.1049 + inkscape:connector-curvature="0" 85.1050 + id="path9522" 85.1051 + d="m 205.27805,418.31985 c 0,7.35629 0,7.35629 0,7.35629" 85.1052 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 85.1053 + <path 85.1054 + inkscape:connector-curvature="0" 85.1055 + id="path9524" 85.1056 + d="m 205.05995,424.02605 c -67.19099,0 -67.19099,0 -67.19099,0" 85.1057 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 85.1058 + <path 85.1059 + sodipodi:nodetypes="cc" 85.1060 + inkscape:connector-curvature="0" 85.1061 + id="path9548" 85.1062 + d="m 137.27805,423.85824 c 0,11.43122 0,11.43122 0,11.43122" 85.1063 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 85.1064 + <path 85.1065 + inkscape:connector-curvature="0" 85.1066 + id="path9550" 85.1067 + d="m 137.57123,436.02605 c -69.22157,0 -69.22157,0 -69.22157,0" 85.1068 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 85.1069 + <path 85.1070 + sodipodi:nodetypes="cc" 85.1071 + inkscape:connector-curvature="0" 85.1072 + id="path9554" 85.1073 + d="m 205.27805,474.63925 c 0,4.54718 0,4.54718 0,4.54718" 85.1074 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 85.1075 + <text 85.1076 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 85.1077 + xml:space="preserve" 85.1078 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.1079 + x="-187.67645" 85.1080 + y="493.07611" 85.1081 + id="text9566" 85.1082 + sodipodi:linespacing="100%"><tspan 85.1083 + style="font-size:8px;text-align:center;text-anchor:middle" 85.1084 + sodipodi:role="line" 85.1085 + x="-187.67645" 85.1086 + y="493.07611" 85.1087 + id="tspan9568">suspend</tspan><tspan 85.1088 + id="tspan9570" 85.1089 + style="font-size:8px;text-align:center;text-anchor:middle" 85.1090 + sodipodi:role="line" 85.1091 + x="-187.67645" 85.1092 + y="501.07611">and switch</tspan><tspan 85.1093 + id="tspan9572" 85.1094 + style="font-size:8px;text-align:center;text-anchor:middle" 85.1095 + sodipodi:role="line" 85.1096 + x="-187.67645" 85.1097 + y="509.07611">to app VP</tspan></text> 85.1098 + <path 85.1099 + sodipodi:nodetypes="cc" 85.1100 + inkscape:connector-curvature="0" 85.1101 + id="path9614" 85.1102 + d="m 205.27805,418.31985 c 0,7.35629 0,7.35629 0,7.35629" 85.1103 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 85.1104 + <path 85.1105 + sodipodi:nodetypes="cc" 85.1106 + inkscape:connector-curvature="0" 85.1107 + id="path9616" 85.1108 + d="m 205.27805,418.31985 c 0,7.35629 0,7.35629 0,7.35629" 85.1109 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 85.1110 + <path 85.1111 + inkscape:connector-curvature="0" 85.1112 + id="path9648" 85.1113 + d="m 468.24715,383.42364 c 13.34137,0 13.34137,0 13.34137,0" 85.1114 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 85.1115 + <text 85.1116 + sodipodi:linespacing="100%" 85.1117 + id="text9654" 85.1118 + y="385.02261" 85.1119 + x="485.25659" 85.1120 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.1121 + xml:space="preserve" 85.1122 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 85.1123 + id="tspan9656" 85.1124 + y="385.02261" 85.1125 + x="485.25659" 85.1126 + sodipodi:role="line" 85.1127 + style="font-size:8px;text-align:start;text-anchor:start">start</tspan></text> 85.1128 + <path 85.1129 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:none" 85.1130 + d="m 476.02904,602.79398 c 0,35.61575 0,35.61575 0,35.61575" 85.1131 + id="path9658" 85.1132 + inkscape:connector-curvature="0" 85.1133 + sodipodi:nodetypes="cc" /> 85.1134 + <path 85.1135 + inkscape:connector-curvature="0" 85.1136 + id="path9660" 85.1137 + d="m 468.24715,638.02605 c 13.34137,0 13.34137,0 13.34137,0" 85.1138 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 85.1139 + <path 85.1140 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 85.1141 + d="m 481.57781,692.02605 c -13.14022,0 -13.14022,0 -13.14022,0" 85.1142 + id="path9662" 85.1143 + inkscape:connector-curvature="0" /> 85.1144 + <text 85.1145 + sodipodi:linespacing="100%" 85.1146 + id="text9668" 85.1147 + y="-464.48126" 85.1148 + x="672.00745" 85.1149 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.1150 + xml:space="preserve" 85.1151 + transform="matrix(-0.01875541,0.9998241,-0.9998241,-0.01875541,0,0)"><tspan 85.1152 + y="-464.48126" 85.1153 + x="672.00745" 85.1154 + sodipodi:role="line" 85.1155 + style="text-align:center;text-anchor:middle;fill:#008000" 85.1156 + id="tspan9740">Timeline of VP 1</tspan></text> 85.1157 + <text 85.1158 + sodipodi:linespacing="100%" 85.1159 + id="text9672" 85.1160 + y="637.01904" 85.1161 + x="486.36292" 85.1162 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.1163 + xml:space="preserve" 85.1164 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 85.1165 + id="tspan9674" 85.1166 + y="637.01904" 85.1167 + x="486.36292" 85.1168 + sodipodi:role="line" 85.1169 + style="font-size:8px;text-align:start;text-anchor:start">suspend</tspan></text> 85.1170 + <text 85.1171 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 85.1172 + xml:space="preserve" 85.1173 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.1174 + x="486.6088" 85.1175 + y="693.01855" 85.1176 + id="text9676" 85.1177 + sodipodi:linespacing="100%"><tspan 85.1178 + style="font-size:8px;text-align:start;text-anchor:start" 85.1179 + sodipodi:role="line" 85.1180 + x="486.6088" 85.1181 + y="693.01855" 85.1182 + id="tspan9678">resume</tspan></text> 85.1183 + <path 85.1184 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 85.1185 + d="m 468.24715,603.42364 c 13.34137,0 13.34137,0 13.34137,0" 85.1186 + id="path9684" 85.1187 + inkscape:connector-curvature="0" /> 85.1188 + <text 85.1189 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 85.1190 + xml:space="preserve" 85.1191 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.1192 + x="486.22229" 85.1193 + y="605.02063" 85.1194 + id="text9686" 85.1195 + sodipodi:linespacing="100%"><tspan 85.1196 + style="font-size:8px;text-align:start;text-anchor:start" 85.1197 + sodipodi:role="line" 85.1198 + x="486.22229" 85.1199 + y="605.02063" 85.1200 + id="tspan9688">start</tspan></text> 85.1201 + <path 85.1202 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:none" 85.1203 + d="m 266.02904,417.4311 c 0,61.88904 0,61.88904 0,61.88904" 85.1204 + id="path9690" 85.1205 + inkscape:connector-curvature="0" 85.1206 + sodipodi:nodetypes="cc" /> 85.1207 + <path 85.1208 + inkscape:connector-curvature="0" 85.1209 + id="path9692" 85.1210 + d="m 258.24715,418.02605 c 13.34137,0 13.34137,0 13.34137,0" 85.1211 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 85.1212 + <path 85.1213 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 85.1214 + d="m 271.57781,480.02605 c -13.14022,0 -13.14022,0 -13.14022,0" 85.1215 + id="path9694" 85.1216 + inkscape:connector-curvature="0" /> 85.1217 + <text 85.1218 + sodipodi:linespacing="100%" 85.1219 + id="text9700" 85.1220 + y="-276.70538" 85.1221 + x="463.34042" 85.1222 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.1223 + xml:space="preserve" 85.1224 + transform="matrix(0.00239328,0.99999714,-0.99999714,0.00239328,0,0)"><tspan 85.1225 + y="-276.70538" 85.1226 + x="463.34042" 85.1227 + sodipodi:role="line" 85.1228 + style="text-align:center;text-anchor:middle;fill:#000080" 85.1229 + id="tspan9736">Timeline of Master on core 1</tspan></text> 85.1230 + <text 85.1231 + sodipodi:linespacing="100%" 85.1232 + id="text9704" 85.1233 + y="480.12692" 85.1234 + x="261.37079" 85.1235 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.1236 + xml:space="preserve" 85.1237 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 85.1238 + id="tspan9706" 85.1239 + y="480.12692" 85.1240 + x="261.37079" 85.1241 + sodipodi:role="line" 85.1242 + style="font-size:8px;text-align:end;text-anchor:end">suspend</tspan></text> 85.1243 + <text 85.1244 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 85.1245 + xml:space="preserve" 85.1246 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.1247 + x="258.65039" 85.1248 + y="420.12738" 85.1249 + id="text9708" 85.1250 + sodipodi:linespacing="100%"><tspan 85.1251 + style="font-size:8px;text-align:end;text-anchor:end" 85.1252 + sodipodi:role="line" 85.1253 + x="258.65039" 85.1254 + y="420.12738" 85.1255 + id="tspan9710">resume</tspan></text> 85.1256 + <path 85.1257 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 85.1258 + d="m 258.24715,383.42364 c 13.34137,0 13.34137,0 13.34137,0" 85.1259 + id="path9716" 85.1260 + inkscape:connector-curvature="0" /> 85.1261 + <text 85.1262 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 85.1263 + xml:space="preserve" 85.1264 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.1265 + x="257.70789" 85.1266 + y="386.09387" 85.1267 + id="text9718" 85.1268 + sodipodi:linespacing="100%"><tspan 85.1269 + style="font-size:8px;text-align:end;text-anchor:end" 85.1270 + sodipodi:role="line" 85.1271 + x="257.70789" 85.1272 + y="386.09387" 85.1273 + id="tspan9720">start</tspan></text> 85.1274 + <path 85.1275 + sodipodi:nodetypes="cc" 85.1276 + inkscape:connector-curvature="0" 85.1277 + id="path9722" 85.1278 + d="m 266.02904,537.43112 c 0,10.33165 0,10.33165 0,10.33165" 85.1279 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" /> 85.1280 + <path 85.1281 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 85.1282 + d="m 258.24715,538.02605 c 13.34137,0 13.34137,0 13.34137,0" 85.1283 + id="path9724" 85.1284 + inkscape:connector-curvature="0" /> 85.1285 + <text 85.1286 + sodipodi:linespacing="100%" 85.1287 + id="text9936" 85.1288 + y="624.93951" 85.1289 + x="641.89471" 85.1290 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.1291 + xml:space="preserve" 85.1292 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)"><tspan 85.1293 + id="tspan9938" 85.1294 + y="624.93951" 85.1295 + x="641.89471" 85.1296 + sodipodi:role="line" 85.1297 + style="font-size:8px;text-align:center;text-anchor:middle">Call to dyn lib</tspan></text> 85.1298 + <text 85.1299 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)" 85.1300 + xml:space="preserve" 85.1301 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.1302 + x="643.74738" 85.1303 + y="736.927" 85.1304 + id="text9940" 85.1305 + sodipodi:linespacing="100%"><tspan 85.1306 + style="font-size:8px;text-align:center;text-anchor:middle" 85.1307 + sodipodi:role="line" 85.1308 + x="643.74738" 85.1309 + y="736.927" 85.1310 + id="tspan9942">Call to dyn lib</tspan></text> 85.1311 + <text 85.1312 + sodipodi:linespacing="100%" 85.1313 + id="text9944" 85.1314 + y="524.9541" 85.1315 + x="640.23999" 85.1316 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.1317 + xml:space="preserve" 85.1318 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)"><tspan 85.1319 + id="tspan9946" 85.1320 + y="524.9541" 85.1321 + x="640.23999" 85.1322 + sodipodi:role="line" 85.1323 + style="font-size:8px;text-align:center;text-anchor:middle">Call to dyn lib</tspan></text> 85.1324 + <text 85.1325 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)" 85.1326 + xml:space="preserve" 85.1327 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.1328 + x="112.79035" 85.1329 + y="441.66806" 85.1330 + id="text9948" 85.1331 + sodipodi:linespacing="100%"><tspan 85.1332 + style="font-size:8px;text-align:center;text-anchor:middle" 85.1333 + sodipodi:role="line" 85.1334 + x="112.79035" 85.1335 + y="441.66806" 85.1336 + id="tspan9950">call to dyn lib</tspan></text> 85.1337 + <path 85.1338 + inkscape:connector-curvature="0" 85.1339 + id="path9952" 85.1340 + d="m 701.67453,480.02605 c -669.895225,0 -669.895225,0 -669.895225,0" 85.1341 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" /> 85.1342 + <path 85.1343 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" 85.1344 + d="m 701.67453,417.52981 c -669.895225,0 -669.895225,0 -669.895225,0" 85.1345 + id="path9954" 85.1346 + inkscape:connector-curvature="0" /> 85.1347 + <text 85.1348 + xml:space="preserve" 85.1349 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.1350 + x="326.92542" 85.1351 + y="577.76575" 85.1352 + id="text9956" 85.1353 + sodipodi:linespacing="100%"><tspan 85.1354 + style="text-align:center;text-anchor:middle" 85.1355 + sodipodi:role="line" 85.1356 + id="tspan9958" 85.1357 + x="326.92542" 85.1358 + y="577.76575">Master</tspan><tspan 85.1359 + style="font-size:8px;text-align:center;text-anchor:middle" 85.1360 + id="tspan9960" 85.1361 + sodipodi:role="line" 85.1362 + x="326.92542" 85.1363 + y="586.2005">(runtime system)</tspan><tspan 85.1364 + id="tspan9962" 85.1365 + style="font-size:8px;text-align:center;text-anchor:middle" 85.1366 + sodipodi:role="line" 85.1367 + x="326.92542" 85.1368 + y="594.2005">on core 2</tspan></text> 85.1369 + <path 85.1370 + inkscape:connector-curvature="0" 85.1371 + id="path9970" 85.1372 + d="m 291.99816,596.02605 c -63.44071,0 -63.44071,0 -63.44071,0" 85.1373 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000003, 3.00000003;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 85.1374 + <g 85.1375 + id="g9972" 85.1376 + transform="matrix(1,0,0,0.71130685,-16,342.52913)"> 85.1377 + <rect 85.1378 + style="fill:none;stroke:#000000;stroke-width:1.28076112;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 85.1379 + id="rect9974" 85.1380 + width="65.276405" 85.1381 + height="52.250008" 85.1382 + x="310.40247" 85.1383 + y="313.58255" /> 85.1384 + </g> 85.1385 + <text 85.1386 + sodipodi:linespacing="100%" 85.1387 + id="text9982" 85.1388 + y="599.42468" 85.1389 + x="202.41257" 85.1390 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.1391 + xml:space="preserve"><tspan 85.1392 + id="tspan9984" 85.1393 + y="599.42468" 85.1394 + x="202.41257" 85.1395 + sodipodi:role="line" 85.1396 + style="text-align:center;text-anchor:middle;fill:#000080">Master Fn</tspan></text> 85.1397 + <path 85.1398 + sodipodi:nodetypes="cc" 85.1399 + inkscape:connector-curvature="0" 85.1400 + id="path10010" 85.1401 + d="m 266.02904,637.43113 c 0,54.93536 0,54.93536 0,54.93536" 85.1402 + style="fill:none;stroke:#000000;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:none" /> 85.1403 + <path 85.1404 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 85.1405 + d="m 258.24715,638.02605 c 13.34137,0 13.34137,0 13.34137,0" 85.1406 + id="path10012" 85.1407 + inkscape:connector-curvature="0" /> 85.1408 + <path 85.1409 + inkscape:connector-curvature="0" 85.1410 + id="path10014" 85.1411 + d="m 271.57781,692.02605 c -13.14022,0 -13.14022,0 -13.14022,0" 85.1412 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 85.1413 + <text 85.1414 + transform="matrix(0.00962718,0.99995366,-0.99995366,0.00962718,0,0)" 85.1415 + xml:space="preserve" 85.1416 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.1417 + x="675.3847" 85.1418 + y="-275.31226" 85.1419 + id="text10018" 85.1420 + sodipodi:linespacing="100%"><tspan 85.1421 + id="tspan10020" 85.1422 + style="text-align:center;text-anchor:middle;fill:#000080" 85.1423 + sodipodi:role="line" 85.1424 + x="675.3847" 85.1425 + y="-275.31226">Timeline of Master on core 2</tspan></text> 85.1426 + <path 85.1427 + inkscape:connector-curvature="0" 85.1428 + id="path10030" 85.1429 + d="m 258.24715,603.42364 c 13.34137,0 13.34137,0 13.34137,0" 85.1430 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 85.1431 + <path 85.1432 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000002, 3.00000002;stroke-dashoffset:0" 85.1433 + d="m 205.27805,381.45805 c 0,3.23577 0,3.23577 0,3.23577" 85.1434 + id="path10054" 85.1435 + inkscape:connector-curvature="0" 85.1436 + sodipodi:nodetypes="cc" /> 85.1437 + <path 85.1438 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" 85.1439 + d="m 701.67453,692.02605 c -669.895225,0 -669.895225,0 -669.895225,0" 85.1440 + id="path10056" 85.1441 + inkscape:connector-curvature="0" /> 85.1442 + <path 85.1443 + inkscape:connector-curvature="0" 85.1444 + id="path10058" 85.1445 + d="m 701.67453,637.52981 c -669.895225,0 -669.895225,0 -669.895225,0" 85.1446 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" /> 85.1447 + <text 85.1448 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 85.1449 + xml:space="preserve" 85.1450 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.1451 + x="-135.75337" 85.1452 + y="434.7803" 85.1453 + id="text10062" 85.1454 + sodipodi:linespacing="100%"><tspan 85.1455 + id="tspan10068" 85.1456 + style="font-size:8px;text-align:center;text-anchor:middle" 85.1457 + sodipodi:role="line" 85.1458 + x="-135.75337" 85.1459 + y="434.7803">return from</tspan><tspan 85.1460 + style="font-size:8px;text-align:center;text-anchor:middle" 85.1461 + sodipodi:role="line" 85.1462 + x="-135.75337" 85.1463 + y="442.7803" 85.1464 + id="tspan10074">suspend</tspan></text> 85.1465 + <path 85.1466 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" 85.1467 + d="m 701.67453,538.02605 c -669.895225,0 -669.895225,0 -669.895225,0" 85.1468 + id="path10076" 85.1469 + inkscape:connector-curvature="0" /> 85.1470 + <text 85.1471 + xml:space="preserve" 85.1472 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.1473 + x="667.38037" 85.1474 + y="515.42468" 85.1475 + id="text10082" 85.1476 + sodipodi:linespacing="100%"><tspan 85.1477 + style="text-align:center;text-anchor:middle;fill:#000080" 85.1478 + sodipodi:role="line" 85.1479 + x="667.38037" 85.1480 + y="515.42468" 85.1481 + id="tspan10084">PR primitive Fn</tspan><tspan 85.1482 + id="tspan10086" 85.1483 + style="text-align:center;text-anchor:middle;fill:#000080" 85.1484 + sodipodi:role="line" 85.1485 + x="667.38037" 85.1486 + y="525.42468">to send request</tspan></text> 85.1487 + <text 85.1488 + sodipodi:linespacing="100%" 85.1489 + id="text10088" 85.1490 + y="615.42468" 85.1491 + x="667.38037" 85.1492 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.1493 + xml:space="preserve"><tspan 85.1494 + id="tspan10090" 85.1495 + y="615.42468" 85.1496 + x="667.38037" 85.1497 + sodipodi:role="line" 85.1498 + style="text-align:center;text-anchor:middle;fill:#000080">PR primitive Fn</tspan><tspan 85.1499 + y="625.42468" 85.1500 + x="667.38037" 85.1501 + sodipodi:role="line" 85.1502 + style="text-align:center;text-anchor:middle;fill:#000080" 85.1503 + id="tspan10092">to send request</tspan></text> 85.1504 + <text 85.1505 + xml:space="preserve" 85.1506 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.1507 + x="667.38037" 85.1508 + y="727.42468" 85.1509 + id="text10094" 85.1510 + sodipodi:linespacing="100%"><tspan 85.1511 + style="text-align:center;text-anchor:middle;fill:#000080" 85.1512 + sodipodi:role="line" 85.1513 + x="667.38037" 85.1514 + y="727.42468" 85.1515 + id="tspan10096">PR primitive Fn</tspan><tspan 85.1516 + id="tspan10098" 85.1517 + style="text-align:center;text-anchor:middle;fill:#000080" 85.1518 + sodipodi:role="line" 85.1519 + x="667.38037" 85.1520 + y="737.42468">to send request</tspan></text> 85.1521 + <path 85.1522 + sodipodi:nodetypes="cc" 85.1523 + inkscape:connector-curvature="0" 85.1524 + id="path10100" 85.1525 + d="m 476.02904,692.3113 c 0,57.40944 0,57.40944 0,57.40944" 85.1526 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" /> 85.1527 + <path 85.1528 + inkscape:connector-curvature="0" 85.1529 + id="path10102" 85.1530 + d="m 481.57781,751.27417 c -13.14022,0 -13.14022,0 -13.14022,0" 85.1531 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 85.1532 + <text 85.1533 + sodipodi:linespacing="100%" 85.1534 + id="text10104" 85.1535 + y="750.22363" 85.1536 + x="486.86038" 85.1537 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.1538 + xml:space="preserve" 85.1539 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 85.1540 + id="tspan10106" 85.1541 + y="750.22363" 85.1542 + x="486.86038" 85.1543 + sodipodi:role="line" 85.1544 + style="font-size:8px;text-align:start;text-anchor:start">end</tspan></text> 85.1545 + <path 85.1546 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" 85.1547 + d="m 266.02904,749.43112 c 0,10.33165 0,10.33165 0,10.33165" 85.1548 + id="path10108" 85.1549 + inkscape:connector-curvature="0" 85.1550 + sodipodi:nodetypes="cc" /> 85.1551 + <path 85.1552 + inkscape:connector-curvature="0" 85.1553 + id="path10110" 85.1554 + d="m 258.24715,750.02605 c 13.34137,0 13.34137,0 13.34137,0" 85.1555 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 85.1556 + <path 85.1557 + inkscape:connector-curvature="0" 85.1558 + id="path10116" 85.1559 + d="m 701.67453,750.02605 c -669.895225,0 -669.895225,0 -669.895225,0" 85.1560 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" /> 85.1561 + <text 85.1562 + sodipodi:linespacing="100%" 85.1563 + id="text10118" 85.1564 + y="540.12653" 85.1565 + x="259.17728" 85.1566 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.1567 + xml:space="preserve" 85.1568 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 85.1569 + id="tspan10120" 85.1570 + y="540.12653" 85.1571 + x="259.17728" 85.1572 + sodipodi:role="line" 85.1573 + style="font-size:8px;text-align:end;text-anchor:end">resume</tspan></text> 85.1574 + <text 85.1575 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 85.1576 + xml:space="preserve" 85.1577 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.1578 + x="259.61627" 85.1579 + y="640.12561" 85.1580 + id="text10122" 85.1581 + sodipodi:linespacing="100%"><tspan 85.1582 + style="font-size:8px;text-align:end;text-anchor:end" 85.1583 + sodipodi:role="line" 85.1584 + x="259.61627" 85.1585 + y="640.12561" 85.1586 + id="tspan10124">resume</tspan></text> 85.1587 + <text 85.1588 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 85.1589 + xml:space="preserve" 85.1590 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.1591 + x="262.3013" 85.1592 + y="692.12494" 85.1593 + id="text10126" 85.1594 + sodipodi:linespacing="100%"><tspan 85.1595 + style="font-size:8px;text-align:end;text-anchor:end" 85.1596 + sodipodi:role="line" 85.1597 + x="262.3013" 85.1598 + y="692.12494" 85.1599 + id="tspan10128">suspend</tspan></text> 85.1600 + <text 85.1601 + sodipodi:linespacing="100%" 85.1602 + id="text10130" 85.1603 + y="606.09192" 85.1604 + x="258.67368" 85.1605 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.1606 + xml:space="preserve" 85.1607 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 85.1608 + id="tspan10132" 85.1609 + y="606.09192" 85.1610 + x="258.67368" 85.1611 + sodipodi:role="line" 85.1612 + style="font-size:8px;text-align:end;text-anchor:end">start</tspan></text> 85.1613 + <text 85.1614 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 85.1615 + xml:space="preserve" 85.1616 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.1617 + x="260.10779" 85.1618 + y="752.12427" 85.1619 + id="text10134" 85.1620 + sodipodi:linespacing="100%"><tspan 85.1621 + style="font-size:8px;text-align:end;text-anchor:end" 85.1622 + sodipodi:role="line" 85.1623 + x="260.10779" 85.1624 + y="752.12427" 85.1625 + id="tspan10136">resume</tspan></text> 85.1626 + <text 85.1627 + xml:space="preserve" 85.1628 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.1629 + x="136.99219" 85.1630 + y="307.42465" 85.1631 + id="text10146" 85.1632 + sodipodi:linespacing="100%"><tspan 85.1633 + style="text-align:center;text-anchor:middle;fill:#800000" 85.1634 + sodipodi:role="line" 85.1635 + x="138.49609" 85.1636 + y="307.42465" 85.1637 + id="tspan10148">Language </tspan><tspan 85.1638 + id="tspan10150" 85.1639 + style="text-align:center;text-anchor:middle;fill:#800000" 85.1640 + sodipodi:role="line" 85.1641 + x="136.99219" 85.1642 + y="317.42465">Plugin</tspan><tspan 85.1643 + id="tspan10152" 85.1644 + style="text-align:center;text-anchor:middle;fill:#800000" 85.1645 + sodipodi:role="line" 85.1646 + x="136.99219" 85.1647 + y="327.42465">Code</tspan></text> 85.1648 + <text 85.1649 + xml:space="preserve" 85.1650 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.1651 + x="203.16797" 85.1652 + y="307.42465" 85.1653 + id="text10154" 85.1654 + sodipodi:linespacing="100%"><tspan 85.1655 + style="text-align:center;text-anchor:middle;fill:#000080" 85.1656 + sodipodi:role="line" 85.1657 + x="203.16797" 85.1658 + y="307.42465" 85.1659 + id="tspan10156">Proto-Runtime</tspan><tspan 85.1660 + style="text-align:center;text-anchor:middle;fill:#000080" 85.1661 + sodipodi:role="line" 85.1662 + x="203.16797" 85.1663 + y="317.42465" 85.1664 + id="tspan10158">Master</tspan><tspan 85.1665 + id="tspan10160" 85.1666 + style="text-align:center;text-anchor:middle;fill:#000080" 85.1667 + sodipodi:role="line" 85.1668 + x="203.16797" 85.1669 + y="327.42465">Code</tspan></text> 85.1670 + <path 85.1671 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 85.1672 + d="m 205.05995,424.02605 c -67.19099,0 -67.19099,0 -67.19099,0" 85.1673 + id="path10162" 85.1674 + inkscape:connector-curvature="0" /> 85.1675 + <path 85.1676 + inkscape:connector-curvature="0" 85.1677 + id="path10164" 85.1678 + d="m 137.04459,474.02605 c 67.19099,0 67.19099,0 67.19099,0" 85.1679 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 85.1680 + <path 85.1681 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 85.1682 + d="m 67.525286,448.02605 c 69.221574,0 69.221574,0 69.221574,0" 85.1683 + id="path10166" 85.1684 + inkscape:connector-curvature="0" /> 85.1685 + <path 85.1686 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 85.1687 + d="m 67.27805,435.85824 c 0,13.94668 0,13.94668 0,13.94668" 85.1688 + id="path10168" 85.1689 + inkscape:connector-curvature="0" 85.1690 + sodipodi:nodetypes="cc" /> 85.1691 + <path 85.1692 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 85.1693 + d="m 137.04459,450.02605 c 67.19099,0 67.19099,0 67.19099,0" 85.1694 + id="path10172" 85.1695 + inkscape:connector-curvature="0" /> 85.1696 + <path 85.1697 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 85.1698 + d="m 205.27805,450.63926 c 0,11.23237 0,11.23237 0,11.23237" 85.1699 + id="path10174" 85.1700 + inkscape:connector-curvature="0" 85.1701 + sodipodi:nodetypes="cc" /> 85.1702 + <path 85.1703 + inkscape:connector-curvature="0" 85.1704 + id="path10176" 85.1705 + d="m 205.05995,462.02605 c -67.19099,0 -67.19099,0 -67.19099,0" 85.1706 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 85.1707 + <text 85.1708 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)" 85.1709 + xml:space="preserve" 85.1710 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.1711 + x="189.17583" 85.1712 + y="464.4057" 85.1713 + id="text10178" 85.1714 + sodipodi:linespacing="100%"><tspan 85.1715 + style="font-size:7px;text-align:center;text-anchor:middle" 85.1716 + sodipodi:role="line" 85.1717 + x="189.17583" 85.1718 + y="464.4057" 85.1719 + id="tspan10180">call via Ptr to Dyn Lib Fn</tspan></text> 85.1720 + <path 85.1721 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 85.1722 + d="m 137.27805,461.85824 c 0,11.43122 0,11.43122 0,11.43122" 85.1723 + id="path10182" 85.1724 + inkscape:connector-curvature="0" 85.1725 + sodipodi:nodetypes="cc" /> 85.1726 + <text 85.1727 + sodipodi:linespacing="100%" 85.1728 + id="text10184" 85.1729 + y="426.41092" 85.1730 + x="188.54729" 85.1731 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.1732 + xml:space="preserve" 85.1733 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)"><tspan 85.1734 + id="tspan10186" 85.1735 + y="426.41092" 85.1736 + x="188.54729" 85.1737 + sodipodi:role="line" 85.1738 + style="font-size:7px;text-align:center;text-anchor:middle">call via Ptr to Dyn Lib Fn</tspan></text> 85.1739 + <text 85.1740 + sodipodi:linespacing="100%" 85.1741 + id="text10188" 85.1742 + y="629.42468" 85.1743 + x="137.31689" 85.1744 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.1745 + xml:space="preserve"><tspan 85.1746 + id="tspan10190" 85.1747 + y="629.42468" 85.1748 + x="137.31689" 85.1749 + sodipodi:role="line" 85.1750 + style="text-align:center;text-anchor:middle;fill:#800000">Lang Handler</tspan><tspan 85.1751 + id="tspan10192" 85.1752 + y="639.42468" 85.1753 + x="137.31689" 85.1754 + sodipodi:role="line" 85.1755 + style="text-align:center;text-anchor:middle;fill:#800000">for acq Mutex</tspan></text> 85.1756 + <path 85.1757 + sodipodi:nodetypes="cc" 85.1758 + inkscape:connector-curvature="0" 85.1759 + id="path10230" 85.1760 + d="m 205.27805,601.45805 c 0,3.23576 0,3.23576 0,3.23576" 85.1761 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 85.1762 + <path 85.1763 + inkscape:connector-curvature="0" 85.1764 + id="path4879" 85.1765 + d="m 465.78297,538.02605 c -193.92439,0 -193.92439,0 -193.92439,0" 85.1766 + style="fill:none;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 85.1767 + <path 85.1768 + inkscape:connector-curvature="0" 85.1769 + id="path5395" 85.1770 + d="m 466.19516,418.02605 c -193.92439,0 -193.92439,0 -193.92439,0" 85.1771 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 85.1772 + <path 85.1773 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 85.1774 + d="m 466.19516,638.02605 c -193.92439,0 -193.92439,0 -193.92439,0" 85.1775 + id="path5397" 85.1776 + inkscape:connector-curvature="0" /> 85.1777 + <path 85.1778 + inkscape:connector-curvature="0" 85.1779 + id="path5399" 85.1780 + d="m 466.19516,750.02605 c -193.92439,0 -193.92439,0 -193.92439,0" 85.1781 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 85.1782 + <path 85.1783 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 85.1784 + d="m 271.03421,692.02605 c 193.92439,0 193.92439,0 193.92439,0" 85.1785 + id="path5402" 85.1786 + inkscape:connector-curvature="0" /> 85.1787 + <text 85.1788 + sodipodi:linespacing="100%" 85.1789 + id="text5410" 85.1790 + y="671.42468" 85.1791 + x="137.68066" 85.1792 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.1793 + xml:space="preserve"><tspan 85.1794 + id="tspan5412" 85.1795 + y="671.42468" 85.1796 + x="137.68066" 85.1797 + sodipodi:role="line" 85.1798 + style="text-align:center;text-anchor:middle;fill:#800000">Assigner Fn</tspan></text> 85.1799 + <path 85.1800 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 85.1801 + d="m 205.27805,638.31985 c 0,7.35629 0,7.35629 0,7.35629" 85.1802 + id="path5420" 85.1803 + inkscape:connector-curvature="0" 85.1804 + sodipodi:nodetypes="cc" /> 85.1805 + <path 85.1806 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 85.1807 + d="m 205.05995,644.02605 c -67.19099,0 -67.19099,0 -67.19099,0" 85.1808 + id="path5422" 85.1809 + inkscape:connector-curvature="0" /> 85.1810 + <path 85.1811 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 85.1812 + d="m 137.27805,643.85824 c 0,11.43122 0,11.43122 0,11.43122" 85.1813 + id="path5424" 85.1814 + inkscape:connector-curvature="0" 85.1815 + sodipodi:nodetypes="cc" /> 85.1816 + <path 85.1817 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 85.1818 + d="m 205.27805,686.63925 c 0,4.54718 0,4.54718 0,4.54718" 85.1819 + id="path5428" 85.1820 + inkscape:connector-curvature="0" 85.1821 + sodipodi:nodetypes="cc" /> 85.1822 + <text 85.1823 + sodipodi:linespacing="100%" 85.1824 + id="text5430" 85.1825 + y="645.39423" 85.1826 + x="-335.13254" 85.1827 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.1828 + xml:space="preserve" 85.1829 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 85.1830 + id="tspan5432" 85.1831 + y="645.39423" 85.1832 + x="-335.13254" 85.1833 + sodipodi:role="line" 85.1834 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan><tspan 85.1835 + y="653.39423" 85.1836 + x="-335.13254" 85.1837 + sodipodi:role="line" 85.1838 + style="font-size:8px;text-align:center;text-anchor:middle" 85.1839 + id="tspan5434">and switch</tspan><tspan 85.1840 + y="661.39423" 85.1841 + x="-335.13254" 85.1842 + sodipodi:role="line" 85.1843 + style="font-size:8px;text-align:center;text-anchor:middle" 85.1844 + id="tspan5436">to app VP</tspan></text> 85.1845 + <path 85.1846 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 85.1847 + d="m 205.27805,638.31985 c 0,7.35629 0,7.35629 0,7.35629" 85.1848 + id="path5438" 85.1849 + inkscape:connector-curvature="0" 85.1850 + sodipodi:nodetypes="cc" /> 85.1851 + <path 85.1852 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 85.1853 + d="m 205.27805,638.31985 c 0,7.35629 0,7.35629 0,7.35629" 85.1854 + id="path5440" 85.1855 + inkscape:connector-curvature="0" 85.1856 + sodipodi:nodetypes="cc" /> 85.1857 + <text 85.1858 + sodipodi:linespacing="100%" 85.1859 + id="text5446" 85.1860 + y="592.84631" 85.1861 + x="-288.77386" 85.1862 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.1863 + xml:space="preserve" 85.1864 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 85.1865 + y="592.84631" 85.1866 + x="-288.77386" 85.1867 + sodipodi:role="line" 85.1868 + style="font-size:8px;text-align:center;text-anchor:middle" 85.1869 + id="tspan5448">return from</tspan><tspan 85.1870 + id="tspan5450" 85.1871 + y="600.84631" 85.1872 + x="-288.77386" 85.1873 + sodipodi:role="line" 85.1874 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan></text> 85.1875 + <path 85.1876 + inkscape:connector-curvature="0" 85.1877 + id="path5452" 85.1878 + d="m 205.05995,644.02605 c -67.19099,0 -67.19099,0 -67.19099,0" 85.1879 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 85.1880 + <path 85.1881 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 85.1882 + d="m 137.04459,686.02605 c 67.19099,0 67.19099,0 67.19099,0" 85.1883 + id="path5454" 85.1884 + inkscape:connector-curvature="0" /> 85.1885 + <path 85.1886 + inkscape:connector-curvature="0" 85.1887 + id="path5460" 85.1888 + d="m 137.04459,658.02605 c 67.19099,0 67.19099,0 67.19099,0" 85.1889 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 85.1890 + <path 85.1891 + sodipodi:nodetypes="cc" 85.1892 + inkscape:connector-curvature="0" 85.1893 + id="path5462" 85.1894 + d="m 205.27805,658.63927 c 0,14.88618 0,14.88618 0,14.88618" 85.1895 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 85.1896 + <path 85.1897 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 85.1898 + d="m 205.05995,674.02605 c -67.19099,0 -67.19099,0 -67.19099,0" 85.1899 + id="path5464" 85.1900 + inkscape:connector-curvature="0" /> 85.1901 + <text 85.1902 + sodipodi:linespacing="100%" 85.1903 + id="text5466" 85.1904 + y="676.37714" 85.1905 + x="192.68279" 85.1906 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.1907 + xml:space="preserve" 85.1908 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)"><tspan 85.1909 + id="tspan5468" 85.1910 + y="676.37714" 85.1911 + x="192.68279" 85.1912 + sodipodi:role="line" 85.1913 + style="font-size:7px;text-align:center;text-anchor:middle">call via Ptr to Dyn Lib Fn</tspan></text> 85.1914 + <path 85.1915 + sodipodi:nodetypes="cc" 85.1916 + inkscape:connector-curvature="0" 85.1917 + id="path5470" 85.1918 + d="m 137.27805,673.85824 c 0,11.43122 0,11.43122 0,11.43122" 85.1919 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 85.1920 + <text 85.1921 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)" 85.1922 + xml:space="preserve" 85.1923 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.1924 + x="192.18657" 85.1925 + y="646.38098" 85.1926 + id="text5472" 85.1927 + sodipodi:linespacing="100%"><tspan 85.1928 + style="font-size:7px;text-align:center;text-anchor:middle" 85.1929 + sodipodi:role="line" 85.1930 + x="192.18657" 85.1931 + y="646.38098" 85.1932 + id="tspan5474">call via Ptr to Dyn Lib Fn</tspan></text> 85.1933 + <text 85.1934 + sodipodi:linespacing="100%" 85.1935 + id="text5476" 85.1936 + y="597.08801" 85.1937 + x="-60.107929" 85.1938 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.1939 + xml:space="preserve" 85.1940 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 85.1941 + y="597.08801" 85.1942 + x="-60.107929" 85.1943 + sodipodi:role="line" 85.1944 + style="font-size:18px;text-align:center;text-anchor:middle" 85.1945 + id="tspan5482">core 1</tspan></text> 85.1946 + <text 85.1947 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 85.1948 + xml:space="preserve" 85.1949 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.1950 + x="-208.35422" 85.1951 + y="748.6394" 85.1952 + id="text5488" 85.1953 + sodipodi:linespacing="100%"><tspan 85.1954 + id="tspan5490" 85.1955 + style="font-size:18px;text-align:center;text-anchor:middle" 85.1956 + sodipodi:role="line" 85.1957 + x="-208.35422" 85.1958 + y="748.6394">core 2</tspan></text> 85.1959 + <path 85.1960 + sodipodi:nodetypes="cc" 85.1961 + inkscape:connector-curvature="0" 85.1962 + id="path5492" 85.1963 + d="m 205.27805,752.31985 c 0,7.35629 0,7.35629 0,7.35629" 85.1964 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 85.1965 + <path 85.1966 + sodipodi:nodetypes="cc" 85.1967 + inkscape:connector-curvature="0" 85.1968 + id="path5494" 85.1969 + d="m 205.27805,752.31985 c 0,7.35629 0,7.35629 0,7.35629" 85.1970 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 85.1971 + <path 85.1972 + sodipodi:nodetypes="cc" 85.1973 + inkscape:connector-curvature="0" 85.1974 + id="path5496" 85.1975 + d="m 205.27805,752.31985 c 0,7.35629 0,7.35629 0,7.35629" 85.1976 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 85.1977 + <text 85.1978 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 85.1979 + xml:space="preserve" 85.1980 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.1981 + x="-368.06558" 85.1982 + y="674.7525" 85.1983 + id="text5498" 85.1984 + sodipodi:linespacing="100%"><tspan 85.1985 + id="tspan5500" 85.1986 + style="font-size:8px;text-align:center;text-anchor:middle" 85.1987 + sodipodi:role="line" 85.1988 + x="-368.06558" 85.1989 + y="674.7525">return from</tspan><tspan 85.1990 + style="font-size:8px;text-align:center;text-anchor:middle" 85.1991 + sodipodi:role="line" 85.1992 + x="-368.06558" 85.1993 + y="682.7525" 85.1994 + id="tspan5502">suspend</tspan></text> 85.1995 + <path 85.1996 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 85.1997 + d="m 205.27805,538.31985 c 0,7.35629 0,7.35629 0,7.35629" 85.1998 + id="path5504" 85.1999 + inkscape:connector-curvature="0" 85.2000 + sodipodi:nodetypes="cc" /> 85.2001 + <path 85.2002 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 85.2003 + d="m 205.27805,538.31985 c 0,7.35629 0,7.35629 0,7.35629" 85.2004 + id="path5506" 85.2005 + inkscape:connector-curvature="0" 85.2006 + sodipodi:nodetypes="cc" /> 85.2007 + <path 85.2008 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 85.2009 + d="m 205.27805,538.31985 c 0,7.35629 0,7.35629 0,7.35629" 85.2010 + id="path5508" 85.2011 + inkscape:connector-curvature="0" 85.2012 + sodipodi:nodetypes="cc" /> 85.2013 + <text 85.2014 + sodipodi:linespacing="100%" 85.2015 + id="text5510" 85.2016 + y="520.99878" 85.2017 + x="-219.21922" 85.2018 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 85.2019 + xml:space="preserve" 85.2020 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 85.2021 + y="520.99878" 85.2022 + x="-219.21922" 85.2023 + sodipodi:role="line" 85.2024 + style="font-size:8px;text-align:center;text-anchor:middle" 85.2025 + id="tspan5512">return from</tspan><tspan 85.2026 + id="tspan5514" 85.2027 + y="528.99878" 85.2028 + x="-219.21922" 85.2029 + sodipodi:role="line" 85.2030 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan></text> 85.2031 + <path 85.2032 + inkscape:connector-curvature="0" 85.2033 + id="path5516" 85.2034 + d="m 271.03421,604.02605 c 193.92439,0 193.92439,0 193.92439,0" 85.2035 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 85.2036 + <path 85.2037 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 85.2038 + d="m 271.03421,384.02605 c 193.92439,0 193.92439,0 193.92439,0" 85.2039 + id="path5518" 85.2040 + inkscape:connector-curvature="0" /> 85.2041 + <path 85.2042 + sodipodi:type="arc" 85.2043 + style="fill:none;stroke:#000000;stroke-width:3.17508554;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 85.2044 + id="path4107" 85.2045 + sodipodi:cx="-177.61905" 85.2046 + sodipodi:cy="432.36218" 85.2047 + sodipodi:rx="21.428572" 85.2048 + sodipodi:ry="21.904762" 85.2049 + d="m -156.19048,432.36218 a 21.428572,21.904762 0 1 1 -42.85714,0 21.428572,21.904762 0 1 1 42.85714,0 z" 85.2050 + transform="matrix(0.46666667,0,0,0.47826088,-94.15873,438.15169)" /> 85.2051 + <path 85.2052 + transform="matrix(0.46666667,0,0,0.47826088,-94.15873,478.15169)" 85.2053 + d="m -156.19048,432.36218 a 21.428572,21.904762 0 1 1 -42.85714,0 21.428572,21.904762 0 1 1 42.85714,0 z" 85.2054 + sodipodi:ry="21.904762" 85.2055 + sodipodi:rx="21.428572" 85.2056 + sodipodi:cy="432.36218" 85.2057 + sodipodi:cx="-177.61905" 85.2058 + id="path4109" 85.2059 + style="fill:none;stroke:#000000;stroke-width:3.17508554;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 85.2060 + sodipodi:type="arc" /> 85.2061 + <path 85.2062 + sodipodi:type="arc" 85.2063 + style="fill:none;stroke:#000000;stroke-width:3.17508554;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 85.2064 + id="path4111" 85.2065 + sodipodi:cx="-177.61905" 85.2066 + sodipodi:cy="432.36218" 85.2067 + sodipodi:rx="21.428572" 85.2068 + sodipodi:ry="21.904762" 85.2069 + d="m -156.19048,432.36218 a 21.428572,21.904762 0 1 1 -42.85714,0 21.428572,21.904762 0 1 1 42.85714,0 z" 85.2070 + transform="matrix(0.46666667,0,0,0.47826088,-54.15873,478.15169)" /> 85.2071 + <path 85.2072 + transform="matrix(0.46666667,0,0,0.47826088,-134.15873,478.15169)" 85.2073 + d="m -156.19048,432.36218 a 21.428572,21.904762 0 1 1 -42.85714,0 21.428572,21.904762 0 1 1 42.85714,0 z" 85.2074 + sodipodi:ry="21.904762" 85.2075 + sodipodi:rx="21.428572" 85.2076 + sodipodi:cy="432.36218" 85.2077 + sodipodi:cx="-177.61905" 85.2078 + id="path4113" 85.2079 + style="fill:none;stroke:#000000;stroke-width:3.17508554;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 85.2080 + sodipodi:type="arc" /> 85.2081 + <path 85.2082 + sodipodi:type="arc" 85.2083 + style="fill:none;stroke:#000000;stroke-width:3.17508554;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 85.2084 + id="path4115" 85.2085 + sodipodi:cx="-177.61905" 85.2086 + sodipodi:cy="432.36218" 85.2087 + sodipodi:rx="21.428572" 85.2088 + sodipodi:ry="21.904762" 85.2089 + d="m -156.19048,432.36218 a 21.428572,21.904762 0 1 1 -42.85714,0 21.428572,21.904762 0 1 1 42.85714,0 z" 85.2090 + transform="matrix(0.46666667,0,0,0.47826088,-174.15873,478.15169)" /> 85.2091 + <path 85.2092 + transform="matrix(0.46666667,0,0,0.47826088,-134.15873,438.15169)" 85.2093 + d="m -156.19048,432.36218 a 21.428572,21.904762 0 1 1 -42.85714,0 21.428572,21.904762 0 1 1 42.85714,0 z" 85.2094 + sodipodi:ry="21.904762" 85.2095 + sodipodi:rx="21.428572" 85.2096 + sodipodi:cy="432.36218" 85.2097 + sodipodi:cx="-177.61905" 85.2098 + id="path4117" 85.2099 + style="fill:none;stroke:#000000;stroke-width:3.17508554;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 85.2100 + sodipodi:type="arc" /> 85.2101 + <path 85.2102 + style="fill:none;stroke:#000000;stroke-width:1.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 85.2103 + d="m -200.95238,433.31456 c -11.42857,21.90477 -11.42857,21.90477 -11.42857,21.90477" 85.2104 + id="path4121" 85.2105 + inkscape:connector-curvature="0" /> 85.2106 + <path 85.2107 + inkscape:connector-curvature="0" 85.2108 + id="path4305" 85.2109 + d="m -192.50586,433.31456 c 11.42857,21.90477 11.42857,21.90477 11.42857,21.90477" 85.2110 + style="fill:none;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" /> 85.2111 + <path 85.2112 + inkscape:connector-curvature="0" 85.2113 + id="path4307" 85.2114 + d="m -225.71428,651.40978 c -26.50192,23.74125 -26.50192,23.74125 -26.50192,23.74125" 85.2115 + style="fill:none;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" /> 85.2116 + <path 85.2117 + style="fill:none;stroke:#000000;stroke-width:1.20000017;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 85.2118 + d="m -217.42015,655.21934 c -0.30787,19.83147 -0.30787,19.83147 -0.30787,19.83147" 85.2119 + id="path4309" 85.2120 + inkscape:connector-curvature="0" /> 85.2121 + <path 85.2122 + style="fill:none;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 85.2123 + d="m -168.4046,651.40978 c 26.50192,23.74125 26.50192,23.74125 26.50192,23.74125" 85.2124 + id="path4311" 85.2125 + inkscape:connector-curvature="0" /> 85.2126 + <path 85.2127 + inkscape:connector-curvature="0" 85.2128 + id="path4313" 85.2129 + d="m -176.69873,655.21934 c 0.30787,19.83147 0.30787,19.83147 0.30787,19.83147" 85.2130 + style="fill:none;stroke:#000000;stroke-width:1.20000017;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" /> 85.2131 + <path 85.2132 + transform="matrix(0.46666667,0,0,0.47826088,-94.15873,258.15169)" 85.2133 + d="m -156.19048,432.36218 a 21.428572,21.904762 0 1 1 -42.85714,0 21.428572,21.904762 0 1 1 42.85714,0 z" 85.2134 + sodipodi:ry="21.904762" 85.2135 + sodipodi:rx="21.428572" 85.2136 + sodipodi:cy="432.36218" 85.2137 + sodipodi:cx="-177.61905" 85.2138 + id="path4315" 85.2139 + style="fill:none;stroke:#000000;stroke-width:3.17508554;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 85.2140 + sodipodi:type="arc" /> 85.2141 + <path 85.2142 + sodipodi:type="arc" 85.2143 + style="fill:none;stroke:#000000;stroke-width:3.17508554;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 85.2144 + id="path4317" 85.2145 + sodipodi:cx="-177.61905" 85.2146 + sodipodi:cy="432.36218" 85.2147 + sodipodi:rx="21.428572" 85.2148 + sodipodi:ry="21.904762" 85.2149 + d="m -156.19048,432.36218 a 21.428572,21.904762 0 1 1 -42.85714,0 21.428572,21.904762 0 1 1 42.85714,0 z" 85.2150 + transform="matrix(0.46666667,0,0,0.47826088,-134.15873,258.15169)" /> 85.2151 + <path 85.2152 + transform="matrix(0.46666667,0,0,0.47826088,-114.15873,298.15169)" 85.2153 + d="m -156.19048,432.36218 a 21.428572,21.904762 0 1 1 -42.85714,0 21.428572,21.904762 0 1 1 42.85714,0 z" 85.2154 + sodipodi:ry="21.904762" 85.2155 + sodipodi:rx="21.428572" 85.2156 + sodipodi:cy="432.36218" 85.2157 + sodipodi:cx="-177.61905" 85.2158 + id="path4319" 85.2159 + style="fill:none;stroke:#000000;stroke-width:3.17508554;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 85.2160 + sodipodi:type="arc" /> 85.2161 + <path 85.2162 + inkscape:connector-curvature="0" 85.2163 + id="path4321" 85.2164 + d="M -200.95238,496.03367 C -212.38095,474.1289 -212.38095,474.1289 -212.38095,474.1289" 85.2165 + style="fill:none;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow2Mstart);marker-end:none" /> 85.2166 + <path 85.2167 + style="fill:none;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow2Mstart);marker-end:none" 85.2168 + d="m -192.50586,496.03367 c 11.42857,-21.90477 11.42857,-21.90477 11.42857,-21.90477" 85.2169 + id="path4323" 85.2170 + inkscape:connector-curvature="0" /> 85.2171 + <path 85.2172 + style="fill:none;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 85.2173 + d="M -225.71428,716.04005 C -252.2162,692.2988 -252.2162,692.2988 -252.2162,692.2988" 85.2174 + id="path4953" 85.2175 + inkscape:connector-curvature="0" /> 85.2176 + <path 85.2177 + inkscape:connector-curvature="0" 85.2178 + id="path4955" 85.2179 + d="m -217.42015,712.23049 c -0.30787,-19.83147 -0.30787,-19.83147 -0.30787,-19.83147" 85.2180 + style="fill:none;stroke:#000000;stroke-width:1.20000017;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" /> 85.2181 + <path 85.2182 + inkscape:connector-curvature="0" 85.2183 + id="path4957" 85.2184 + d="m -168.4046,716.04005 c 26.50192,-23.74125 26.50192,-23.74125 26.50192,-23.74125" 85.2185 + style="fill:none;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" /> 85.2186 + <path 85.2187 + style="fill:none;stroke:#000000;stroke-width:1.20000017;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 85.2188 + d="m -176.69873,712.23049 c 0.30787,-19.83147 0.30787,-19.83147 0.30787,-19.83147" 85.2189 + id="path4959" 85.2190 + inkscape:connector-curvature="0" /> 85.2191 + <path 85.2192 + sodipodi:nodetypes="ccc" 85.2193 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 85.2194 + d="m -197.36182,516.33087 c -13.85073,9.59482 -52.96579,-1.16125 -54.75298,-45.56715 0.82351,-52.26625 16.71934,-80.84752 48.43875,-56.61916" 85.2195 + id="path4961" 85.2196 + inkscape:connector-curvature="0" /> 85.2197 + <path 85.2198 + style="fill:none;stroke:#000000;stroke-width:1.20000017;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 85.2199 + d="m -196.69873,395.21934 c 0.30787,19.83147 0.30787,19.83147 0.30787,19.83147" 85.2200 + id="path4963" 85.2201 + inkscape:connector-curvature="0" /> 85.2202 + <g 85.2203 + id="g4965" 85.2204 + transform="matrix(0.33573247,0,0,0.33475494,-311.95371,310.77262)"> 85.2205 + <rect 85.2206 + style="fill:none;stroke:#000000;stroke-width:3.22208095;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 85.2207 + id="rect4967" 85.2208 + width="65.276405" 85.2209 + height="52.250008" 85.2210 + x="310.40247" 85.2211 + y="313.58255" /> 85.2212 + </g> 85.2213 + </g> 85.2214 +</svg>
86.1 Binary file 0__Papers/VMS/VMS__Foundation_Paper/VMS__Full_conference_version/figures/Proto-Runtime__modules.pdf has changed
87.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 87.2 +++ b/0__Papers/VMS/VMS__Foundation_Paper/VMS__Full_conference_version/figures/Proto-Runtime__modules.svg Sat Aug 03 19:24:22 2013 -0700 87.3 @@ -0,0 +1,219 @@ 87.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 87.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 87.6 + 87.7 +<svg 87.8 + xmlns:dc="http://purl.org/dc/elements/1.1/" 87.9 + xmlns:cc="http://creativecommons.org/ns#" 87.10 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 87.11 + xmlns:svg="http://www.w3.org/2000/svg" 87.12 + xmlns="http://www.w3.org/2000/svg" 87.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 87.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 87.15 + width="744.09448819" 87.16 + height="1052.3622047" 87.17 + id="svg2" 87.18 + sodipodi:version="0.32" 87.19 + inkscape:version="0.48.2 r9819" 87.20 + sodipodi:docname="Proto-Runtime__modules.pdf" 87.21 + inkscape:output_extension="org.inkscape.output.svg.inkscape" 87.22 + version="1.1"> 87.23 + <defs 87.24 + id="defs4"> 87.25 + <marker 87.26 + inkscape:stockid="Arrow2Mend" 87.27 + orient="auto" 87.28 + refY="0.0" 87.29 + refX="0.0" 87.30 + id="Arrow2Mend" 87.31 + style="overflow:visible;"> 87.32 + <path 87.33 + id="path4008" 87.34 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 87.35 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 87.36 + transform="scale(0.6) rotate(180) translate(0,0)" /> 87.37 + </marker> 87.38 + <inkscape:perspective 87.39 + sodipodi:type="inkscape:persp3d" 87.40 + inkscape:vp_x="0 : 526.18109 : 1" 87.41 + inkscape:vp_y="0 : 1000 : 0" 87.42 + inkscape:vp_z="744.09448 : 526.18109 : 1" 87.43 + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" 87.44 + id="perspective10" /> 87.45 + <inkscape:perspective 87.46 + id="perspective12172" 87.47 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 87.48 + inkscape:vp_z="1 : 0.5 : 1" 87.49 + inkscape:vp_y="0 : 1000 : 0" 87.50 + inkscape:vp_x="0 : 0.5 : 1" 87.51 + sodipodi:type="inkscape:persp3d" /> 87.52 + <inkscape:perspective 87.53 + id="perspective12937" 87.54 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 87.55 + inkscape:vp_z="1 : 0.5 : 1" 87.56 + inkscape:vp_y="0 : 1000 : 0" 87.57 + inkscape:vp_x="0 : 0.5 : 1" 87.58 + sodipodi:type="inkscape:persp3d" /> 87.59 + </defs> 87.60 + <sodipodi:namedview 87.61 + id="base" 87.62 + pagecolor="#ffffff" 87.63 + bordercolor="#666666" 87.64 + borderopacity="1.0" 87.65 + gridtolerance="10000" 87.66 + guidetolerance="10" 87.67 + objecttolerance="10" 87.68 + inkscape:pageopacity="0.0" 87.69 + inkscape:pageshadow="2" 87.70 + inkscape:zoom="2.5442307" 87.71 + inkscape:cx="331.10449" 87.72 + inkscape:cy="538.12533" 87.73 + inkscape:document-units="px" 87.74 + inkscape:current-layer="layer1" 87.75 + showgrid="false" 87.76 + inkscape:window-width="1226" 87.77 + inkscape:window-height="878" 87.78 + inkscape:window-x="12" 87.79 + inkscape:window-y="0" 87.80 + inkscape:window-maximized="0" /> 87.81 + <metadata 87.82 + id="metadata7"> 87.83 + <rdf:RDF> 87.84 + <cc:Work 87.85 + rdf:about=""> 87.86 + <dc:format>image/svg+xml</dc:format> 87.87 + <dc:type 87.88 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 87.89 + <dc:title></dc:title> 87.90 + </cc:Work> 87.91 + </rdf:RDF> 87.92 + </metadata> 87.93 + <g 87.94 + inkscape:label="Layer 1" 87.95 + inkscape:groupmode="layer" 87.96 + id="layer1"> 87.97 + <text 87.98 + sodipodi:linespacing="100%" 87.99 + id="text12985" 87.100 + y="447.55026" 87.101 + x="343.00162" 87.102 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 87.103 + xml:space="preserve"><tspan 87.104 + y="447.55026" 87.105 + x="343.00162" 87.106 + sodipodi:role="line" 87.107 + id="tspan12989" 87.108 + style="text-align:center;text-anchor:middle">Parallelism</tspan><tspan 87.109 + id="tspan3147" 87.110 + y="457.55026" 87.111 + x="343.00162" 87.112 + sodipodi:role="line" 87.113 + style="text-align:center;text-anchor:middle">Construct</tspan><tspan 87.114 + id="tspan3149" 87.115 + y="467.55026" 87.116 + x="343.00162" 87.117 + sodipodi:role="line" 87.118 + style="text-align:center;text-anchor:middle">Module</tspan></text> 87.119 + <rect 87.120 + style="fill:none;stroke:#000000;stroke-width:1.08018136;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 87.121 + id="rect12971" 87.122 + width="131.7012" 87.123 + height="52.250008" 87.124 + x="310.30118" 87.125 + y="495.43658" /> 87.126 + <text 87.127 + xml:space="preserve" 87.128 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 87.129 + x="376.33487" 87.130 + y="515.20319" 87.131 + id="text12973" 87.132 + sodipodi:linespacing="100%"><tspan 87.133 + sodipodi:role="line" 87.134 + id="tspan12975" 87.135 + x="376.33487" 87.136 + y="515.20319" 87.137 + style="text-align:center;text-anchor:middle">Hardware Specific Module</tspan><tspan 87.138 + sodipodi:role="line" 87.139 + x="376.33487" 87.140 + y="525.20319" 87.141 + style="text-align:center;text-anchor:middle" 87.142 + id="tspan3155" /><tspan 87.143 + sodipodi:role="line" 87.144 + x="376.33487" 87.145 + y="533.63794" 87.146 + id="tspan3089" 87.147 + style="font-size:8px;text-align:center;text-anchor:middle">(Proto-Runtime)</tspan></text> 87.148 + <text 87.149 + sodipodi:linespacing="100%" 87.150 + id="text12985-7" 87.151 + y="447.52585" 87.152 + x="409.1481" 87.153 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 87.154 + xml:space="preserve"><tspan 87.155 + y="447.52585" 87.156 + x="409.1481" 87.157 + id="tspan12987-4" 87.158 + sodipodi:role="line" 87.159 + style="text-align:center;text-anchor:middle">Assignment</tspan><tspan 87.160 + id="tspan3151" 87.161 + y="457.52585" 87.162 + x="409.1481" 87.163 + sodipodi:role="line" 87.164 + style="text-align:center;text-anchor:middle">of Work</tspan><tspan 87.165 + y="467.52585" 87.166 + x="409.1481" 87.167 + sodipodi:role="line" 87.168 + id="tspan12989-0" 87.169 + style="text-align:center;text-anchor:middle">onto Cores</tspan><tspan 87.170 + id="tspan3153" 87.171 + y="477.52585" 87.172 + x="409.1481" 87.173 + sodipodi:role="line" 87.174 + style="text-align:center;text-anchor:middle">Module</tspan></text> 87.175 + <text 87.176 + xml:space="preserve" 87.177 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 87.178 + x="376.3902" 87.179 + y="493.19415" 87.180 + id="text12973-5" 87.181 + sodipodi:linespacing="100%"><tspan 87.182 + sodipodi:role="line" 87.183 + x="376.3902" 87.184 + y="493.19415" 87.185 + id="tspan3089-7" 87.186 + style="font-size:8px;text-align:center;text-anchor:middle">Hardware Abstraction Interface</tspan></text> 87.187 + <rect 87.188 + y="-495.43658" 87.189 + x="310.30118" 87.190 + height="9.1641436" 87.191 + width="131.7012" 87.192 + id="rect3204" 87.193 + style="fill:none;stroke:#000000;stroke-width:1.08018136;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 87.194 + transform="scale(1,-1)" /> 87.195 + <rect 87.196 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 87.197 + id="rect3217" 87.198 + width="65.276405" 87.199 + height="52.250008" 87.200 + x="310.40247" 87.201 + y="433.58255" /> 87.202 + <rect 87.203 + y="433.58255" 87.204 + x="376.40247" 87.205 + height="52.250008" 87.206 + width="65.276405" 87.207 + id="rect3219" 87.208 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 87.209 + <text 87.210 + sodipodi:linespacing="100%" 87.211 + id="text3328" 87.212 + y="425.20319" 87.213 + x="375.5488" 87.214 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 87.215 + xml:space="preserve"><tspan 87.216 + style="font-size:10px;text-align:center;text-anchor:middle" 87.217 + id="tspan3334" 87.218 + y="425.20319" 87.219 + x="375.5488" 87.220 + sodipodi:role="line">Code Stack for Runtime System</tspan></text> 87.221 + </g> 87.222 +</svg>
88.1 Binary file 0__Papers/VMS/VMS__Foundation_Paper/VMS__Full_conference_version/figures/Proto-Runtime__modules_lang_breakdown.pdf has changed
89.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 89.2 +++ b/0__Papers/VMS/VMS__Foundation_Paper/VMS__Full_conference_version/figures/Proto-Runtime__modules_lang_breakdown.svg Sat Aug 03 19:24:22 2013 -0700 89.3 @@ -0,0 +1,243 @@ 89.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 89.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 89.6 + 89.7 +<svg 89.8 + xmlns:dc="http://purl.org/dc/elements/1.1/" 89.9 + xmlns:cc="http://creativecommons.org/ns#" 89.10 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 89.11 + xmlns:svg="http://www.w3.org/2000/svg" 89.12 + xmlns="http://www.w3.org/2000/svg" 89.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 89.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 89.15 + width="744.09448819" 89.16 + height="1052.3622047" 89.17 + id="svg2" 89.18 + sodipodi:version="0.32" 89.19 + inkscape:version="0.48.2 r9819" 89.20 + sodipodi:docname="Proto-Runtime__modules_lang_breakdown.svg" 89.21 + inkscape:output_extension="org.inkscape.output.svg.inkscape" 89.22 + version="1.1"> 89.23 + <defs 89.24 + id="defs4"> 89.25 + <marker 89.26 + inkscape:stockid="Arrow2Mend" 89.27 + orient="auto" 89.28 + refY="0.0" 89.29 + refX="0.0" 89.30 + id="Arrow2Mend" 89.31 + style="overflow:visible;"> 89.32 + <path 89.33 + id="path4008" 89.34 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 89.35 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 89.36 + transform="scale(0.6) rotate(180) translate(0,0)" /> 89.37 + </marker> 89.38 + <inkscape:perspective 89.39 + sodipodi:type="inkscape:persp3d" 89.40 + inkscape:vp_x="0 : 526.18109 : 1" 89.41 + inkscape:vp_y="0 : 1000 : 0" 89.42 + inkscape:vp_z="744.09448 : 526.18109 : 1" 89.43 + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" 89.44 + id="perspective10" /> 89.45 + <inkscape:perspective 89.46 + id="perspective12172" 89.47 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 89.48 + inkscape:vp_z="1 : 0.5 : 1" 89.49 + inkscape:vp_y="0 : 1000 : 0" 89.50 + inkscape:vp_x="0 : 0.5 : 1" 89.51 + sodipodi:type="inkscape:persp3d" /> 89.52 + <inkscape:perspective 89.53 + id="perspective12937" 89.54 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 89.55 + inkscape:vp_z="1 : 0.5 : 1" 89.56 + inkscape:vp_y="0 : 1000 : 0" 89.57 + inkscape:vp_x="0 : 0.5 : 1" 89.58 + sodipodi:type="inkscape:persp3d" /> 89.59 + </defs> 89.60 + <sodipodi:namedview 89.61 + id="base" 89.62 + pagecolor="#ffffff" 89.63 + bordercolor="#666666" 89.64 + borderopacity="1.0" 89.65 + gridtolerance="10000" 89.66 + guidetolerance="10" 89.67 + objecttolerance="10" 89.68 + inkscape:pageopacity="0.0" 89.69 + inkscape:pageshadow="2" 89.70 + inkscape:zoom="2.5442307" 89.71 + inkscape:cx="377.60185" 89.72 + inkscape:cy="538.12533" 89.73 + inkscape:document-units="px" 89.74 + inkscape:current-layer="layer1" 89.75 + showgrid="false" 89.76 + inkscape:window-width="1226" 89.77 + inkscape:window-height="878" 89.78 + inkscape:window-x="12" 89.79 + inkscape:window-y="0" 89.80 + inkscape:window-maximized="0" /> 89.81 + <metadata 89.82 + id="metadata7"> 89.83 + <rdf:RDF> 89.84 + <cc:Work 89.85 + rdf:about=""> 89.86 + <dc:format>image/svg+xml</dc:format> 89.87 + <dc:type 89.88 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 89.89 + <dc:title></dc:title> 89.90 + </cc:Work> 89.91 + </rdf:RDF> 89.92 + </metadata> 89.93 + <g 89.94 + inkscape:label="Layer 1" 89.95 + inkscape:groupmode="layer" 89.96 + id="layer1"> 89.97 + <text 89.98 + sodipodi:linespacing="100%" 89.99 + id="text12985" 89.100 + y="447.55026" 89.101 + x="393.00162" 89.102 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 89.103 + xml:space="preserve"><tspan 89.104 + y="447.55026" 89.105 + x="393.00162" 89.106 + sodipodi:role="line" 89.107 + id="tspan12989" 89.108 + style="text-align:center;text-anchor:middle">Code of</tspan><tspan 89.109 + y="457.55026" 89.110 + x="393.00162" 89.111 + sodipodi:role="line" 89.112 + style="text-align:center;text-anchor:middle" 89.113 + id="tspan6029">parallelism</tspan><tspan 89.114 + id="tspan3147" 89.115 + y="467.55026" 89.116 + x="393.00162" 89.117 + sodipodi:role="line" 89.118 + style="text-align:center;text-anchor:middle">construct</tspan><tspan 89.119 + id="tspan3149" 89.120 + y="477.55026" 89.121 + x="393.00162" 89.122 + sodipodi:role="line" 89.123 + style="text-align:center;text-anchor:middle">module</tspan></text> 89.124 + <text 89.125 + sodipodi:linespacing="100%" 89.126 + id="text12985-7" 89.127 + y="447.52585" 89.128 + x="459.1481" 89.129 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 89.130 + xml:space="preserve"><tspan 89.131 + y="447.52585" 89.132 + x="459.1481" 89.133 + id="tspan12987-4" 89.134 + sodipodi:role="line" 89.135 + style="text-align:center;text-anchor:middle">Code of</tspan><tspan 89.136 + y="457.52585" 89.137 + x="459.1481" 89.138 + sodipodi:role="line" 89.139 + style="text-align:center;text-anchor:middle" 89.140 + id="tspan6031">assignment</tspan><tspan 89.141 + y="467.52585" 89.142 + x="459.1481" 89.143 + sodipodi:role="line" 89.144 + id="tspan12989-0" 89.145 + style="text-align:center;text-anchor:middle">onto cores</tspan><tspan 89.146 + id="tspan3153" 89.147 + y="477.52585" 89.148 + x="459.1481" 89.149 + sodipodi:role="line" 89.150 + style="text-align:center;text-anchor:middle">module</tspan></text> 89.151 + <rect 89.152 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 89.153 + id="rect3217" 89.154 + width="65.276405" 89.155 + height="52.250008" 89.156 + x="360.40247" 89.157 + y="433.58255" /> 89.158 + <rect 89.159 + y="433.58255" 89.160 + x="426.40247" 89.161 + height="52.250008" 89.162 + width="65.276405" 89.163 + id="rect3219" 89.164 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 89.165 + <text 89.166 + sodipodi:linespacing="100%" 89.167 + id="text3328" 89.168 + y="425.20319" 89.169 + x="375.5488" 89.170 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 89.171 + xml:space="preserve"><tspan 89.172 + style="font-size:10px;text-align:center;text-anchor:middle" 89.173 + id="tspan3334" 89.174 + y="425.20319" 89.175 + x="375.5488" 89.176 + sodipodi:role="line">Code Breakdown of a Language Implementation</tspan></text> 89.177 + <text 89.178 + xml:space="preserve" 89.179 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 89.180 + x="297.00894" 89.181 + y="447.55026" 89.182 + id="text5501" 89.183 + sodipodi:linespacing="100%"><tspan 89.184 + style="text-align:center;text-anchor:middle" 89.185 + id="tspan5503" 89.186 + sodipodi:role="line" 89.187 + x="297.00894" 89.188 + y="447.55026">Code of</tspan><tspan 89.189 + style="text-align:center;text-anchor:middle" 89.190 + sodipodi:role="line" 89.191 + x="297.00894" 89.192 + y="457.55026" 89.193 + id="tspan6027">wrapper</tspan><tspan 89.194 + style="text-align:center;text-anchor:middle" 89.195 + sodipodi:role="line" 89.196 + x="297.00894" 89.197 + y="467.55026" 89.198 + id="tspan5507">library</tspan></text> 89.199 + <rect 89.200 + y="433.58255" 89.201 + x="264.40247" 89.202 + height="52.250008" 89.203 + width="65.276405" 89.204 + id="rect5511" 89.205 + style="fill:none;stroke:#000000;stroke-width:1.08000004;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:4.32, 4.32;stroke-dashoffset:0" /> 89.206 + <text 89.207 + sodipodi:linespacing="100%" 89.208 + id="text6035" 89.209 + y="503.55026" 89.210 + x="297.01334" 89.211 + style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 89.212 + xml:space="preserve"><tspan 89.213 + id="tspan6041" 89.214 + y="503.55026" 89.215 + x="297.01334" 89.216 + sodipodi:role="line" 89.217 + style="font-size:8px;text-align:center;text-anchor:middle">Compiled into</tspan><tspan 89.218 + y="511.55026" 89.219 + x="297.01334" 89.220 + sodipodi:role="line" 89.221 + style="font-size:8px;text-align:center;text-anchor:middle" 89.222 + id="tspan6047">application</tspan><tspan 89.223 + y="519.55029" 89.224 + x="297.01334" 89.225 + sodipodi:role="line" 89.226 + style="font-size:8px;text-align:center;text-anchor:middle" 89.227 + id="tspan6049">executable</tspan></text> 89.228 + <text 89.229 + xml:space="preserve" 89.230 + style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 89.231 + x="425.00162" 89.232 + y="503.55026" 89.233 + id="text6051" 89.234 + sodipodi:linespacing="100%"><tspan 89.235 + style="font-size:8px;text-align:center;text-anchor:middle" 89.236 + sodipodi:role="line" 89.237 + x="425.00162" 89.238 + y="503.55026" 89.239 + id="tspan6053">Compiled separately</tspan><tspan 89.240 + id="tspan6057" 89.241 + style="font-size:8px;text-align:center;text-anchor:middle" 89.242 + sodipodi:role="line" 89.243 + x="425.00162" 89.244 + y="511.55026">as a dynamic library</tspan></text> 89.245 + </g> 89.246 +</svg>
90.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 90.2 +++ b/0__Papers/VMS/VMS__Foundation_Paper/VMS__Full_conference_version/figures/Proto-Runtime__modules_plus_plugin.svg Sat Aug 03 19:24:22 2013 -0700 90.3 @@ -0,0 +1,618 @@ 90.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 90.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 90.6 + 90.7 +<svg 90.8 + xmlns:dc="http://purl.org/dc/elements/1.1/" 90.9 + xmlns:cc="http://creativecommons.org/ns#" 90.10 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 90.11 + xmlns:svg="http://www.w3.org/2000/svg" 90.12 + xmlns="http://www.w3.org/2000/svg" 90.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 90.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 90.15 + width="744.09448819" 90.16 + height="1052.3622047" 90.17 + id="svg2" 90.18 + sodipodi:version="0.32" 90.19 + inkscape:version="0.48.2 r9819" 90.20 + sodipodi:docname="Proto-Runtime__modules_plus_plugin.svg" 90.21 + inkscape:output_extension="org.inkscape.output.svg.inkscape" 90.22 + version="1.1"> 90.23 + <defs 90.24 + id="defs4"> 90.25 + <marker 90.26 + inkscape:stockid="Arrow2Mend" 90.27 + orient="auto" 90.28 + refY="0.0" 90.29 + refX="0.0" 90.30 + id="Arrow2Mend" 90.31 + style="overflow:visible;"> 90.32 + <path 90.33 + id="path4008" 90.34 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 90.35 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 90.36 + transform="scale(0.6) rotate(180) translate(0,0)" /> 90.37 + </marker> 90.38 + <inkscape:perspective 90.39 + sodipodi:type="inkscape:persp3d" 90.40 + inkscape:vp_x="0 : 526.18109 : 1" 90.41 + inkscape:vp_y="0 : 1000 : 0" 90.42 + inkscape:vp_z="744.09448 : 526.18109 : 1" 90.43 + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" 90.44 + id="perspective10" /> 90.45 + <inkscape:perspective 90.46 + id="perspective12172" 90.47 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 90.48 + inkscape:vp_z="1 : 0.5 : 1" 90.49 + inkscape:vp_y="0 : 1000 : 0" 90.50 + inkscape:vp_x="0 : 0.5 : 1" 90.51 + sodipodi:type="inkscape:persp3d" /> 90.52 + <inkscape:perspective 90.53 + id="perspective12937" 90.54 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 90.55 + inkscape:vp_z="1 : 0.5 : 1" 90.56 + inkscape:vp_y="0 : 1000 : 0" 90.57 + inkscape:vp_x="0 : 0.5 : 1" 90.58 + sodipodi:type="inkscape:persp3d" /> 90.59 + </defs> 90.60 + <sodipodi:namedview 90.61 + id="base" 90.62 + pagecolor="#ffffff" 90.63 + bordercolor="#666666" 90.64 + borderopacity="1.0" 90.65 + gridtolerance="10000" 90.66 + guidetolerance="10" 90.67 + objecttolerance="10" 90.68 + inkscape:pageopacity="0.0" 90.69 + inkscape:pageshadow="2" 90.70 + inkscape:zoom="1.553811" 90.71 + inkscape:cx="310.29102" 90.72 + inkscape:cy="586.15006" 90.73 + inkscape:document-units="px" 90.74 + inkscape:current-layer="layer1" 90.75 + showgrid="false" 90.76 + inkscape:window-width="1600" 90.77 + inkscape:window-height="848" 90.78 + inkscape:window-x="-8" 90.79 + inkscape:window-y="-8" 90.80 + inkscape:window-maximized="1" /> 90.81 + <metadata 90.82 + id="metadata7"> 90.83 + <rdf:RDF> 90.84 + <cc:Work 90.85 + rdf:about=""> 90.86 + <dc:format>image/svg+xml</dc:format> 90.87 + <dc:type 90.88 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 90.89 + <dc:title /> 90.90 + </cc:Work> 90.91 + </rdf:RDF> 90.92 + </metadata> 90.93 + <g 90.94 + inkscape:label="Layer 1" 90.95 + inkscape:groupmode="layer" 90.96 + id="layer1"> 90.97 + <rect 90.98 + y="417.82236" 90.99 + x="127.32263" 90.100 + height="69.307014" 90.101 + width="137.26534" 90.102 + id="rect12977" 90.103 + style="fill:none;stroke:#800000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:4.32072507, 4.32072507;stroke-dashoffset:0" /> 90.104 + <text 90.105 + sodipodi:linespacing="100%" 90.106 + id="text12979" 90.107 + y="399.76575" 90.108 + x="195.84009" 90.109 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 90.110 + xml:space="preserve"><tspan 90.111 + y="399.76575" 90.112 + x="195.84009" 90.113 + id="tspan12981" 90.114 + sodipodi:role="line" 90.115 + style="text-align:center;text-anchor:middle">Master</tspan><tspan 90.116 + y="408.20053" 90.117 + x="195.84009" 90.118 + sodipodi:role="line" 90.119 + id="tspan3291" 90.120 + style="font-size:8px;text-align:center;text-anchor:middle">(runtime system)</tspan></text> 90.121 + <text 90.122 + sodipodi:linespacing="100%" 90.123 + id="text12985" 90.124 + y="447.55026" 90.125 + x="163.00162" 90.126 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 90.127 + xml:space="preserve"><tspan 90.128 + y="447.55026" 90.129 + x="163.00162" 90.130 + sodipodi:role="line" 90.131 + id="tspan12989" 90.132 + style="text-align:center;text-anchor:middle">Construct</tspan><tspan 90.133 + id="tspan3147" 90.134 + y="457.55026" 90.135 + x="163.00162" 90.136 + sodipodi:role="line" 90.137 + style="text-align:center;text-anchor:middle">Semantics</tspan><tspan 90.138 + id="tspan3149" 90.139 + y="467.55026" 90.140 + x="163.00162" 90.141 + sodipodi:role="line" 90.142 + style="text-align:center;text-anchor:middle">Module</tspan></text> 90.143 + <rect 90.144 + style="fill:none;stroke:#000000;stroke-width:1.08018136;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 90.145 + id="rect12971" 90.146 + width="131.7012" 90.147 + height="52.250008" 90.148 + x="130.30118" 90.149 + y="495.43658" /> 90.150 + <text 90.151 + xml:space="preserve" 90.152 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 90.153 + x="196.33487" 90.154 + y="515.20319" 90.155 + id="text12973" 90.156 + sodipodi:linespacing="100%"><tspan 90.157 + sodipodi:role="line" 90.158 + id="tspan12975" 90.159 + x="196.33487" 90.160 + y="515.20319" 90.161 + style="text-align:center;text-anchor:middle">Hardware Specific Module</tspan><tspan 90.162 + sodipodi:role="line" 90.163 + x="196.33487" 90.164 + y="525.20319" 90.165 + style="text-align:center;text-anchor:middle" 90.166 + id="tspan3155" /><tspan 90.167 + sodipodi:role="line" 90.168 + x="196.33487" 90.169 + y="533.63794" 90.170 + id="tspan3089" 90.171 + style="font-size:8px;text-align:center;text-anchor:middle">(Proto-Runtime)</tspan></text> 90.172 + <text 90.173 + sodipodi:linespacing="100%" 90.174 + id="text12985-7" 90.175 + y="447.52585" 90.176 + x="229.1481" 90.177 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 90.178 + xml:space="preserve"><tspan 90.179 + y="447.52585" 90.180 + x="229.1481" 90.181 + id="tspan12987-4" 90.182 + sodipodi:role="line" 90.183 + style="text-align:center;text-anchor:middle">Assignment</tspan><tspan 90.184 + id="tspan3151" 90.185 + y="457.52585" 90.186 + x="229.1481" 90.187 + sodipodi:role="line" 90.188 + style="text-align:center;text-anchor:middle">of Work</tspan><tspan 90.189 + y="467.52585" 90.190 + x="229.1481" 90.191 + sodipodi:role="line" 90.192 + id="tspan12989-0" 90.193 + style="text-align:center;text-anchor:middle">onto Cores</tspan><tspan 90.194 + id="tspan3153" 90.195 + y="477.52585" 90.196 + x="229.1481" 90.197 + sodipodi:role="line" 90.198 + style="text-align:center;text-anchor:middle">Module</tspan></text> 90.199 + <text 90.200 + xml:space="preserve" 90.201 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 90.202 + x="193.25641" 90.203 + y="426.6572" 90.204 + id="text12985-8" 90.205 + sodipodi:linespacing="100%"><tspan 90.206 + style="text-align:center;text-anchor:middle;fill:#800000" 90.207 + id="tspan12989-4" 90.208 + sodipodi:role="line" 90.209 + x="193.25641" 90.210 + y="426.6572">Language Plug-in</tspan></text> 90.211 + <text 90.212 + xml:space="preserve" 90.213 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 90.214 + x="196.3902" 90.215 + y="493.19415" 90.216 + id="text12973-5" 90.217 + sodipodi:linespacing="100%"><tspan 90.218 + sodipodi:role="line" 90.219 + x="196.3902" 90.220 + y="493.19415" 90.221 + id="tspan3089-7" 90.222 + style="font-size:8px;text-align:center;text-anchor:middle">Hardware Abstraction Interface</tspan></text> 90.223 + <rect 90.224 + y="-495.43658" 90.225 + x="130.30118" 90.226 + height="9.1641436" 90.227 + width="131.7012" 90.228 + id="rect3204" 90.229 + style="fill:none;stroke:#000000;stroke-width:1.08018136;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 90.230 + transform="scale(1,-1)" /> 90.231 + <rect 90.232 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 90.233 + id="rect3217" 90.234 + width="65.276405" 90.235 + height="52.250008" 90.236 + x="130.40247" 90.237 + y="433.58255" /> 90.238 + <rect 90.239 + y="433.58255" 90.240 + x="196.40247" 90.241 + height="52.250008" 90.242 + width="65.276405" 90.243 + id="rect3219" 90.244 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 90.245 + <rect 90.246 + style="fill:none;stroke:#000080;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 90.247 + id="rect3289" 90.248 + width="148.27063" 90.249 + height="164.03113" 90.250 + x="121.82001" 90.251 + y="389.8118" /> 90.252 + <g 90.253 + id="g3303" 90.254 + transform="translate(-16,76)"> 90.255 + <rect 90.256 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 90.257 + id="rect3293" 90.258 + width="65.276405" 90.259 + height="52.250008" 90.260 + x="310.40247" 90.261 + y="313.58255" /> 90.262 + <text 90.263 + sodipodi:linespacing="100%" 90.264 + id="text3295" 90.265 + y="327.55026" 90.266 + x="343.00162" 90.267 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 90.268 + xml:space="preserve"><tspan 90.269 + id="tspan3301" 90.270 + y="327.55026" 90.271 + x="343.00162" 90.272 + sodipodi:role="line" 90.273 + style="text-align:center;text-anchor:middle">Seed VP</tspan></text> 90.274 + </g> 90.275 + <g 90.276 + id="g3314" 90.277 + transform="translate(-16,140)"> 90.278 + <rect 90.279 + y="313.58255" 90.280 + x="310.40247" 90.281 + height="52.250008" 90.282 + width="65.276405" 90.283 + id="rect3316" 90.284 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 90.285 + <text 90.286 + xml:space="preserve" 90.287 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 90.288 + x="343.00162" 90.289 + y="327.55026" 90.290 + id="text3318" 90.291 + sodipodi:linespacing="100%"><tspan 90.292 + style="text-align:center;text-anchor:middle" 90.293 + sodipodi:role="line" 90.294 + x="343.00162" 90.295 + y="327.55026" 90.296 + id="tspan3320">VP created</tspan><tspan 90.297 + style="text-align:center;text-anchor:middle" 90.298 + sodipodi:role="line" 90.299 + x="343.00162" 90.300 + y="337.55026" 90.301 + id="tspan3322">by Application</tspan></text> 90.302 + </g> 90.303 + <g 90.304 + transform="translate(-16,204)" 90.305 + id="g3340"> 90.306 + <rect 90.307 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 90.308 + id="rect3342" 90.309 + width="65.276405" 90.310 + height="52.250008" 90.311 + x="310.40247" 90.312 + y="313.58255" /> 90.313 + <text 90.314 + sodipodi:linespacing="100%" 90.315 + id="text3344" 90.316 + y="327.55026" 90.317 + x="343.00162" 90.318 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 90.319 + xml:space="preserve"><tspan 90.320 + id="tspan3346" 90.321 + y="327.55026" 90.322 + x="343.00162" 90.323 + sodipodi:role="line" 90.324 + style="text-align:center;text-anchor:middle">VP created</tspan><tspan 90.325 + id="tspan3348" 90.326 + y="337.55026" 90.327 + x="343.00162" 90.328 + sodipodi:role="line" 90.329 + style="text-align:center;text-anchor:middle">by Application</tspan></text> 90.330 + </g> 90.331 + <text 90.332 + xml:space="preserve" 90.333 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 90.334 + x="411.16797" 90.335 + y="369.42465" 90.336 + id="text3318-1" 90.337 + sodipodi:linespacing="100%"><tspan 90.338 + style="text-align:center;text-anchor:middle" 90.339 + sodipodi:role="line" 90.340 + x="411.16797" 90.341 + y="369.42465" 90.342 + id="tspan3322-5">Application Code</tspan></text> 90.343 + <text 90.344 + sodipodi:linespacing="100%" 90.345 + id="text3376" 90.346 + y="417.42465" 90.347 + x="411.16797" 90.348 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 90.349 + xml:space="preserve"><tspan 90.350 + id="tspan3378" 90.351 + y="417.42465" 90.352 + x="411.16797" 90.353 + sodipodi:role="line" 90.354 + style="text-align:center;text-anchor:middle">Seed_Fn</tspan></text> 90.355 + <text 90.356 + xml:space="preserve" 90.357 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 90.358 + x="411.16797" 90.359 + y="513.42468" 90.360 + id="text3380" 90.361 + sodipodi:linespacing="100%"><tspan 90.362 + style="text-align:center;text-anchor:middle" 90.363 + sodipodi:role="line" 90.364 + x="411.16797" 90.365 + y="513.42468" 90.366 + id="tspan3382">Work_Fn</tspan></text> 90.367 + <text 90.368 + sodipodi:linespacing="100%" 90.369 + id="text3384" 90.370 + y="505.42465" 90.371 + x="511.16797" 90.372 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 90.373 + xml:space="preserve"><tspan 90.374 + id="tspan3386" 90.375 + y="505.42465" 90.376 + x="511.16797" 90.377 + sodipodi:role="line" 90.378 + style="text-align:center;text-anchor:middle">prallelism_construct2_Fn</tspan></text> 90.379 + <text 90.380 + sodipodi:linespacing="100%" 90.381 + id="text3388" 90.382 + y="369.42465" 90.383 + x="509.16797" 90.384 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 90.385 + xml:space="preserve"><tspan 90.386 + id="tspan3390" 90.387 + y="369.42465" 90.388 + x="509.16797" 90.389 + sodipodi:role="line" 90.390 + style="text-align:center;text-anchor:middle">Language Wrapper Lib</tspan><tspan 90.391 + y="379.42465" 90.392 + x="509.16797" 90.393 + sodipodi:role="line" 90.394 + style="text-align:center;text-anchor:middle" 90.395 + id="tspan3392">Code</tspan></text> 90.396 + <text 90.397 + xml:space="preserve" 90.398 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 90.399 + x="619.16797" 90.400 + y="369.42465" 90.401 + id="text3394" 90.402 + sodipodi:linespacing="100%"><tspan 90.403 + style="text-align:center;text-anchor:middle" 90.404 + sodipodi:role="line" 90.405 + x="619.16797" 90.406 + y="369.42465" 90.407 + id="tspan3396">Proto-Runtime Primitive</tspan><tspan 90.408 + id="tspan3398" 90.409 + style="text-align:center;text-anchor:middle" 90.410 + sodipodi:role="line" 90.411 + x="619.16797" 90.412 + y="379.42465">Code</tspan></text> 90.413 + <text 90.414 + sodipodi:linespacing="100%" 90.415 + id="text3400" 90.416 + y="369.42465" 90.417 + x="67.167969" 90.418 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 90.419 + xml:space="preserve"><tspan 90.420 + id="tspan3402" 90.421 + y="369.42465" 90.422 + x="67.167969" 90.423 + sodipodi:role="line" 90.424 + style="text-align:center;text-anchor:middle">Language Plugin</tspan><tspan 90.425 + y="379.42465" 90.426 + x="67.167969" 90.427 + sodipodi:role="line" 90.428 + style="text-align:center;text-anchor:middle" 90.429 + id="tspan3404">Code</tspan></text> 90.430 + <text 90.431 + xml:space="preserve" 90.432 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 90.433 + x="-20.832031" 90.434 + y="369.42465" 90.435 + id="text3406" 90.436 + sodipodi:linespacing="100%"><tspan 90.437 + style="text-align:center;text-anchor:middle" 90.438 + sodipodi:role="line" 90.439 + x="-20.832031" 90.440 + y="369.42465" 90.441 + id="tspan3408">Proto-Runtime</tspan><tspan 90.442 + id="tspan3410" 90.443 + style="text-align:center;text-anchor:middle" 90.444 + sodipodi:role="line" 90.445 + x="-20.832031" 90.446 + y="379.42465">Code</tspan></text> 90.447 + <text 90.448 + xml:space="preserve" 90.449 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 90.450 + x="67.167969" 90.451 + y="439.42465" 90.452 + id="text3412" 90.453 + sodipodi:linespacing="100%"><tspan 90.454 + style="text-align:center;text-anchor:middle" 90.455 + sodipodi:role="line" 90.456 + x="67.167969" 90.457 + y="439.42465" 90.458 + id="tspan3414">Handler</tspan><tspan 90.459 + style="text-align:center;text-anchor:middle" 90.460 + sodipodi:role="line" 90.461 + x="67.167969" 90.462 + y="449.42465" 90.463 + id="tspan3418">for Language</tspan><tspan 90.464 + style="text-align:center;text-anchor:middle" 90.465 + sodipodi:role="line" 90.466 + x="67.167969" 90.467 + y="459.42465" 90.468 + id="tspan3422">Construct1</tspan></text> 90.469 + <text 90.470 + sodipodi:linespacing="100%" 90.471 + id="text3424" 90.472 + y="481.42465" 90.473 + x="67.167969" 90.474 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 90.475 + xml:space="preserve"><tspan 90.476 + id="tspan3426" 90.477 + y="481.42465" 90.478 + x="67.167969" 90.479 + sodipodi:role="line" 90.480 + style="text-align:center;text-anchor:middle">Handler</tspan><tspan 90.481 + id="tspan3428" 90.482 + y="491.42465" 90.483 + x="67.167969" 90.484 + sodipodi:role="line" 90.485 + style="text-align:center;text-anchor:middle">for Language</tspan><tspan 90.486 + id="tspan3430" 90.487 + y="501.42465" 90.488 + x="67.167969" 90.489 + sodipodi:role="line" 90.490 + style="text-align:center;text-anchor:middle">Construct2</tspan></text> 90.491 + <text 90.492 + xml:space="preserve" 90.493 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 90.494 + x="-14.832031" 90.495 + y="447.42465" 90.496 + id="text3432" 90.497 + sodipodi:linespacing="100%"><tspan 90.498 + style="text-align:center;text-anchor:middle" 90.499 + sodipodi:role="line" 90.500 + x="-14.832031" 90.501 + y="447.42465" 90.502 + id="tspan3438">Master Fn</tspan></text> 90.503 + <text 90.504 + xml:space="preserve" 90.505 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 90.506 + x="67.167969" 90.507 + y="531.42468" 90.508 + id="text3444" 90.509 + sodipodi:linespacing="100%"><tspan 90.510 + style="text-align:center;text-anchor:middle" 90.511 + sodipodi:role="line" 90.512 + x="67.167969" 90.513 + y="531.42468" 90.514 + id="tspan3450">Assigner Fn</tspan></text> 90.515 + <text 90.516 + xml:space="preserve" 90.517 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 90.518 + x="187.16797" 90.519 + y="369.42465" 90.520 + id="text3456" 90.521 + sodipodi:linespacing="100%"><tspan 90.522 + style="text-align:center;text-anchor:middle" 90.523 + sodipodi:role="line" 90.524 + x="187.16797" 90.525 + y="369.42465" 90.526 + id="tspan3458">Instance of runtime system</tspan><tspan 90.527 + id="tspan3460" 90.528 + style="text-align:center;text-anchor:middle" 90.529 + sodipodi:role="line" 90.530 + x="187.16797" 90.531 + y="379.42465" /></text> 90.532 + <text 90.533 + sodipodi:linespacing="100%" 90.534 + id="text3462" 90.535 + y="369.42465" 90.536 + x="329.16797" 90.537 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 90.538 + xml:space="preserve"><tspan 90.539 + id="tspan3464" 90.540 + y="369.42465" 90.541 + x="329.16797" 90.542 + sodipodi:role="line" 90.543 + style="text-align:center;text-anchor:middle">Instances of</tspan><tspan 90.544 + y="379.42465" 90.545 + x="329.16797" 90.546 + sodipodi:role="line" 90.547 + style="text-align:center;text-anchor:middle" 90.548 + id="tspan3468">Virtual Processors</tspan><tspan 90.549 + y="389.42465" 90.550 + x="329.16797" 90.551 + sodipodi:role="line" 90.552 + style="text-align:center;text-anchor:middle" 90.553 + id="tspan3466" /></text> 90.554 + <path 90.555 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:3,3;stroke-dashoffset:0" 90.556 + d="m 135.99815,448.02605 c -36.926653,0 -36.926653,0 -36.926653,0" 90.557 + id="path3470" 90.558 + inkscape:connector-curvature="0" /> 90.559 + <path 90.560 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:3,3;stroke-dashoffset:0" 90.561 + d="m 135.99815,464.23775 c -36.026003,21.6156 -36.026003,21.6156 -36.026003,21.6156" 90.562 + id="path3472" 90.563 + inkscape:connector-curvature="0" /> 90.564 + <path 90.565 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:3,3;stroke-dashoffset:0" 90.566 + d="M 205.34819,475.9462 C 98.170847,524.5813 98.170847,524.5813 98.170847,524.5813" 90.567 + id="path3474" 90.568 + inkscape:connector-curvature="0" /> 90.569 + <path 90.570 + inkscape:connector-curvature="0" 90.571 + id="path4796" 90.572 + d="m 352.24713,414.02605 c 36.92665,0 36.92665,0 36.92665,0" 90.573 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:3,3;stroke-dashoffset:0" /> 90.574 + <path 90.575 + inkscape:connector-curvature="0" 90.576 + id="path4798" 90.577 + d="m 347.34145,484.23775 c 36.026,21.6156 36.026,21.6156 36.026,21.6156" 90.578 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:3,3;stroke-dashoffset:0" /> 90.579 + <path 90.580 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:3,3;stroke-dashoffset:0" 90.581 + d="m 347.34145,538.0265 c 36.026,-21.6156 36.026,-21.6156 36.026,-21.6156" 90.582 + id="path4800" 90.583 + inkscape:connector-curvature="0" /> 90.584 + <path 90.585 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:3,3;stroke-dashoffset:0" 90.586 + d="M 143.20334,538.09105 C 33.324049,540.793 45.933148,547.09755 33.324049,540.793 20.714949,534.48845 3.6025999,454.3306 3.6025999,454.3306" 90.587 + id="path4804" 90.588 + inkscape:connector-curvature="0" 90.589 + sodipodi:nodetypes="csc" /> 90.590 + <text 90.591 + xml:space="preserve" 90.592 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 90.593 + x="511.16797" 90.594 + y="465.42465" 90.595 + id="text4988" 90.596 + sodipodi:linespacing="100%"><tspan 90.597 + style="text-align:center;text-anchor:middle" 90.598 + sodipodi:role="line" 90.599 + x="511.16797" 90.600 + y="465.42465" 90.601 + id="tspan4990">prallelism_construct1_Fn</tspan></text> 90.602 + <path 90.603 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 90.604 + d="m 408.02904,422.29841 c 0,38.61474 0,38.61474 0,38.61474" 90.605 + id="path4992" 90.606 + inkscape:connector-curvature="0" 90.607 + sodipodi:nodetypes="cc" /> 90.608 + <path 90.609 + sodipodi:nodetypes="cc" 90.610 + inkscape:connector-curvature="0" 90.611 + id="path4994" 90.612 + d="m 408.02904,522.29841 c 0,38.61474 0,38.61474 0,38.61474" 90.613 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 90.614 + <path 90.615 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 90.616 + d="m -15.97096,456.2984 c 0,76.74209 0,76.74209 0,76.74209" 90.617 + id="path4996" 90.618 + inkscape:connector-curvature="0" 90.619 + sodipodi:nodetypes="cc" /> 90.620 + </g> 90.621 +</svg>
91.1 Binary file 0__Papers/VMS/VMS__Foundation_Paper/VMS__Full_conference_version/figures/Proto-Runtime__modules_plus_plugin_plus_code.pdf has changed
92.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 92.2 +++ b/0__Papers/VMS/VMS__Foundation_Paper/VMS__Full_conference_version/figures/Proto-Runtime__modules_plus_plugin_plus_code.svg Sat Aug 03 19:24:22 2013 -0700 92.3 @@ -0,0 +1,2026 @@ 92.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 92.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 92.6 + 92.7 +<svg 92.8 + xmlns:dc="http://purl.org/dc/elements/1.1/" 92.9 + xmlns:cc="http://creativecommons.org/ns#" 92.10 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 92.11 + xmlns:svg="http://www.w3.org/2000/svg" 92.12 + xmlns="http://www.w3.org/2000/svg" 92.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 92.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 92.15 + width="744.09448819" 92.16 + height="1052.3622047" 92.17 + id="svg2" 92.18 + sodipodi:version="0.32" 92.19 + inkscape:version="0.48.2 r9819" 92.20 + sodipodi:docname="Proto-Runtime__modules_plus_plugin_plus_code.svg" 92.21 + inkscape:output_extension="org.inkscape.output.svg.inkscape" 92.22 + version="1.1"> 92.23 + <defs 92.24 + id="defs4"> 92.25 + <marker 92.26 + inkscape:stockid="Arrow2Mend" 92.27 + orient="auto" 92.28 + refY="0.0" 92.29 + refX="0.0" 92.30 + id="Arrow2Mend" 92.31 + style="overflow:visible;"> 92.32 + <path 92.33 + id="path4008" 92.34 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 92.35 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 92.36 + transform="scale(0.6) rotate(180) translate(0,0)" /> 92.37 + </marker> 92.38 + <inkscape:perspective 92.39 + sodipodi:type="inkscape:persp3d" 92.40 + inkscape:vp_x="0 : 526.18109 : 1" 92.41 + inkscape:vp_y="0 : 1000 : 0" 92.42 + inkscape:vp_z="744.09448 : 526.18109 : 1" 92.43 + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" 92.44 + id="perspective10" /> 92.45 + <inkscape:perspective 92.46 + id="perspective12172" 92.47 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 92.48 + inkscape:vp_z="1 : 0.5 : 1" 92.49 + inkscape:vp_y="0 : 1000 : 0" 92.50 + inkscape:vp_x="0 : 0.5 : 1" 92.51 + sodipodi:type="inkscape:persp3d" /> 92.52 + <inkscape:perspective 92.53 + id="perspective12937" 92.54 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 92.55 + inkscape:vp_z="1 : 0.5 : 1" 92.56 + inkscape:vp_y="0 : 1000 : 0" 92.57 + inkscape:vp_x="0 : 0.5 : 1" 92.58 + sodipodi:type="inkscape:persp3d" /> 92.59 + </defs> 92.60 + <sodipodi:namedview 92.61 + id="base" 92.62 + pagecolor="#ffffff" 92.63 + bordercolor="#666666" 92.64 + borderopacity="1.0" 92.65 + gridtolerance="10000" 92.66 + guidetolerance="10" 92.67 + objecttolerance="10" 92.68 + inkscape:pageopacity="0.0" 92.69 + inkscape:pageshadow="2" 92.70 + inkscape:zoom="1.05" 92.71 + inkscape:cx="290.73583" 92.72 + inkscape:cy="472.51234" 92.73 + inkscape:document-units="px" 92.74 + inkscape:current-layer="layer1" 92.75 + showgrid="false" 92.76 + inkscape:window-width="1600" 92.77 + inkscape:window-height="848" 92.78 + inkscape:window-x="-8" 92.79 + inkscape:window-y="-8" 92.80 + inkscape:window-maximized="1" /> 92.81 + <metadata 92.82 + id="metadata7"> 92.83 + <rdf:RDF> 92.84 + <cc:Work 92.85 + rdf:about=""> 92.86 + <dc:format>image/svg+xml</dc:format> 92.87 + <dc:type 92.88 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 92.89 + <dc:title></dc:title> 92.90 + </cc:Work> 92.91 + </rdf:RDF> 92.92 + </metadata> 92.93 + <g 92.94 + inkscape:label="Layer 1" 92.95 + inkscape:groupmode="layer" 92.96 + id="layer1"> 92.97 + <text 92.98 + sodipodi:linespacing="100%" 92.99 + id="text12979" 92.100 + y="353.76575" 92.101 + x="326.92542" 92.102 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.103 + xml:space="preserve"><tspan 92.104 + y="353.76575" 92.105 + x="326.92542" 92.106 + id="tspan12981" 92.107 + sodipodi:role="line" 92.108 + style="text-align:center;text-anchor:middle">Master</tspan><tspan 92.109 + y="362.20053" 92.110 + x="326.92542" 92.111 + sodipodi:role="line" 92.112 + id="tspan3291" 92.113 + style="font-size:8px;text-align:center;text-anchor:middle">(runtime system)</tspan><tspan 92.114 + y="370.20053" 92.115 + x="326.92542" 92.116 + sodipodi:role="line" 92.117 + style="font-size:8px;text-align:center;text-anchor:middle" 92.118 + id="tspan8409">on core 1</tspan></text> 92.119 + <g 92.120 + id="g9336" 92.121 + transform="translate(44.002789,-48)"> 92.122 + <rect 92.123 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 92.124 + id="rect3293" 92.125 + width="65.276405" 92.126 + height="37.165791" 92.127 + x="346.40247" 92.128 + y="389.58255" /> 92.129 + <text 92.130 + sodipodi:linespacing="100%" 92.131 + id="text3295" 92.132 + y="400.15268" 92.133 + x="379.00162" 92.134 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.135 + xml:space="preserve"><tspan 92.136 + id="tspan3301" 92.137 + y="400.15268" 92.138 + x="379.00162" 92.139 + sodipodi:role="line" 92.140 + style="text-align:center;text-anchor:middle;fill:#008000">Seed VP</tspan><tspan 92.141 + y="408.58746" 92.142 + x="379.00162" 92.143 + sodipodi:role="line" 92.144 + style="font-size:8px;text-align:center;text-anchor:middle;fill:#008000" 92.145 + id="tspan9389">(created at</tspan><tspan 92.146 + y="416.58746" 92.147 + x="379.00162" 92.148 + sodipodi:role="line" 92.149 + style="font-size:8px;text-align:center;text-anchor:middle;fill:#008000" 92.150 + id="tspan9391">app startup,</tspan><tspan 92.151 + y="424.58746" 92.152 + x="379.00162" 92.153 + sodipodi:role="line" 92.154 + style="font-size:8px;text-align:center;text-anchor:middle;fill:#008000" 92.155 + id="tspan9744">on core 1)</tspan></text> 92.156 + </g> 92.157 + <text 92.158 + xml:space="preserve" 92.159 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.160 + x="517.16797" 92.161 + y="307.42465" 92.162 + id="text3318-1" 92.163 + sodipodi:linespacing="100%"><tspan 92.164 + style="text-align:center;text-anchor:middle;fill:#008000" 92.165 + sodipodi:role="line" 92.166 + x="517.16797" 92.167 + y="307.42465" 92.168 + id="tspan3322-5">Application Code</tspan></text> 92.169 + <text 92.170 + sodipodi:linespacing="100%" 92.171 + id="text3376" 92.172 + y="379.42465" 92.173 + x="517.16797" 92.174 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.175 + xml:space="preserve"><tspan 92.176 + id="tspan3378" 92.177 + y="379.42465" 92.178 + x="517.16797" 92.179 + sodipodi:role="line" 92.180 + style="text-align:center;text-anchor:middle;fill:#008000">Seed_Fn</tspan></text> 92.181 + <text 92.182 + xml:space="preserve" 92.183 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.184 + x="517.16797" 92.185 + y="599.42468" 92.186 + id="text3380" 92.187 + sodipodi:linespacing="100%"><tspan 92.188 + style="text-align:center;text-anchor:middle;fill:#008000" 92.189 + sodipodi:role="line" 92.190 + x="517.16797" 92.191 + y="599.42468" 92.192 + id="tspan3382">Work_Fn</tspan></text> 92.193 + <text 92.194 + sodipodi:linespacing="100%" 92.195 + id="text3388" 92.196 + y="307.42465" 92.197 + x="604.63812" 92.198 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.199 + xml:space="preserve"><tspan 92.200 + id="tspan3390" 92.201 + y="307.42465" 92.202 + x="606.14203" 92.203 + sodipodi:role="line" 92.204 + style="text-align:center;text-anchor:middle;fill:#800000">Language </tspan><tspan 92.205 + y="317.42465" 92.206 + x="604.63812" 92.207 + sodipodi:role="line" 92.208 + style="text-align:center;text-anchor:middle;fill:#800000" 92.209 + id="tspan5106">Wrapper-Lib</tspan><tspan 92.210 + y="327.42465" 92.211 + x="604.63812" 92.212 + sodipodi:role="line" 92.213 + style="text-align:center;text-anchor:middle;fill:#800000" 92.214 + id="tspan3392">Code</tspan></text> 92.215 + <text 92.216 + xml:space="preserve" 92.217 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.218 + x="669.16797" 92.219 + y="307.42465" 92.220 + id="text3394" 92.221 + sodipodi:linespacing="100%"><tspan 92.222 + style="text-align:center;text-anchor:middle;fill:#000080" 92.223 + sodipodi:role="line" 92.224 + x="669.16797" 92.225 + y="307.42465" 92.226 + id="tspan3396">Proto-Runtime</tspan><tspan 92.227 + style="text-align:center;text-anchor:middle;fill:#000080" 92.228 + sodipodi:role="line" 92.229 + x="669.16797" 92.230 + y="317.42465" 92.231 + id="tspan4998">Primitive</tspan><tspan 92.232 + id="tspan3398" 92.233 + style="text-align:center;text-anchor:middle;fill:#000080" 92.234 + sodipodi:role="line" 92.235 + x="669.16797" 92.236 + y="327.42465">Code</tspan></text> 92.237 + <text 92.238 + xml:space="preserve" 92.239 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.240 + x="137.31689" 92.241 + y="411.42465" 92.242 + id="text3412" 92.243 + sodipodi:linespacing="100%"><tspan 92.244 + style="text-align:center;text-anchor:middle;fill:#800000" 92.245 + sodipodi:role="line" 92.246 + x="137.31689" 92.247 + y="411.42465" 92.248 + id="tspan3414">Lang Handler</tspan><tspan 92.249 + style="text-align:center;text-anchor:middle;fill:#800000" 92.250 + sodipodi:role="line" 92.251 + x="137.31689" 92.252 + y="421.42465" 92.253 + id="tspan3422">for create VP</tspan></text> 92.254 + <text 92.255 + xml:space="preserve" 92.256 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.257 + x="137.68066" 92.258 + y="459.42468" 92.259 + id="text3444" 92.260 + sodipodi:linespacing="100%"><tspan 92.261 + style="text-align:center;text-anchor:middle;fill:#800000" 92.262 + sodipodi:role="line" 92.263 + x="137.68066" 92.264 + y="459.42468" 92.265 + id="tspan3450">Assigner Fn</tspan></text> 92.266 + <text 92.267 + xml:space="preserve" 92.268 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.269 + x="327.16797" 92.270 + y="309.42465" 92.271 + id="text3456" 92.272 + sodipodi:linespacing="100%"><tspan 92.273 + style="text-align:center;text-anchor:middle" 92.274 + sodipodi:role="line" 92.275 + x="328.67188" 92.276 + y="309.42465" 92.277 + id="tspan3458">Instances of </tspan><tspan 92.278 + style="text-align:center;text-anchor:middle" 92.279 + sodipodi:role="line" 92.280 + x="327.16797" 92.281 + y="319.42465" 92.282 + id="tspan8405">runtime system</tspan><tspan 92.283 + style="font-size:8px;text-align:center;text-anchor:middle" 92.284 + sodipodi:role="line" 92.285 + x="327.16797" 92.286 + y="327.85944" 92.287 + id="tspan9383">(data structs</tspan><tspan 92.288 + style="font-size:8px;text-align:center;text-anchor:middle" 92.289 + sodipodi:role="line" 92.290 + x="327.16797" 92.291 + y="335.85944" 92.292 + id="tspan9385">on heap)</tspan><tspan 92.293 + id="tspan3460" 92.294 + style="text-align:center;text-anchor:middle" 92.295 + sodipodi:role="line" 92.296 + x="327.16797" 92.297 + y="343.85944" /></text> 92.298 + <text 92.299 + sodipodi:linespacing="100%" 92.300 + id="text3462" 92.301 + y="307.42465" 92.302 + x="423.16797" 92.303 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.304 + xml:space="preserve"><tspan 92.305 + id="tspan3464" 92.306 + y="307.42465" 92.307 + x="423.16797" 92.308 + sodipodi:role="line" 92.309 + style="text-align:center;text-anchor:middle">Instances of</tspan><tspan 92.310 + y="317.42465" 92.311 + x="423.16797" 92.312 + sodipodi:role="line" 92.313 + style="text-align:center;text-anchor:middle" 92.314 + id="tspan3468">Virtual Processors</tspan><tspan 92.315 + y="325.85944" 92.316 + x="423.16797" 92.317 + sodipodi:role="line" 92.318 + style="font-size:8px;text-align:center;text-anchor:middle" 92.319 + id="tspan3466">(data structs</tspan><tspan 92.320 + y="333.85944" 92.321 + x="423.16797" 92.322 + sodipodi:role="line" 92.323 + style="font-size:8px;text-align:center;text-anchor:middle" 92.324 + id="tspan9387">on heap)</tspan></text> 92.325 + <path 92.326 + inkscape:connector-curvature="0" 92.327 + id="path4796" 92.328 + d="m 457.32649,376.02605 c 38.42351,0 38.42351,0 38.42351,0" 92.329 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999996, 2.99999996;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 92.330 + <text 92.331 + xml:space="preserve" 92.332 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.333 + x="604.78461" 92.334 + y="373.42465" 92.335 + id="text4988" 92.336 + sodipodi:linespacing="100%"><tspan 92.337 + style="text-align:center;text-anchor:middle;fill:#800000" 92.338 + sodipodi:role="line" 92.339 + x="604.78461" 92.340 + y="373.42465" 92.341 + id="tspan4990">create VP</tspan><tspan 92.342 + style="text-align:center;text-anchor:middle;fill:#800000" 92.343 + sodipodi:role="line" 92.344 + x="604.78461" 92.345 + y="383.42465" 92.346 + id="tspan5104">wrapper Fn</tspan></text> 92.347 + <text 92.348 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)" 92.349 + xml:space="preserve" 92.350 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.351 + x="638.25385" 92.352 + y="404.96878" 92.353 + id="text5064" 92.354 + sodipodi:linespacing="100%"><tspan 92.355 + style="font-size:8px;text-align:center;text-anchor:middle" 92.356 + sodipodi:role="line" 92.357 + x="638.25385" 92.358 + y="404.96878" 92.359 + id="tspan5066">Call to dyn lib</tspan></text> 92.360 + <path 92.361 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000003, 3.00000003;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 92.362 + d="m 291.99816,376.02605 c -63.44071,0 -63.44071,0 -63.44071,0" 92.363 + id="path5068" 92.364 + inkscape:connector-curvature="0" /> 92.365 + <text 92.366 + sodipodi:linespacing="100%" 92.367 + id="text5070" 92.368 + y="415.78891" 92.369 + x="180.73463" 92.370 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.371 + xml:space="preserve" 92.372 + transform="matrix(0.97994281,-0.19927893,0.19927893,0.97994281,0,0)"><tspan 92.373 + id="tspan5072" 92.374 + y="415.78891" 92.375 + x="180.73463" 92.376 + sodipodi:role="line" 92.377 + style="font-size:8px;text-align:center;text-anchor:middle">Top Level Fn</tspan></text> 92.378 + <text 92.379 + transform="matrix(0.97994281,-0.19927893,0.19927893,0.97994281,0,0)" 92.380 + xml:space="preserve" 92.381 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.382 + x="400.64069" 92.383 + y="458.46729" 92.384 + id="text5074" 92.385 + sodipodi:linespacing="100%"><tspan 92.386 + style="font-size:8px;text-align:center;text-anchor:middle" 92.387 + sodipodi:role="line" 92.388 + x="400.64069" 92.389 + y="458.46729" 92.390 + id="tspan5076">Top Level Fn</tspan></text> 92.391 + <text 92.392 + sodipodi:linespacing="100%" 92.393 + id="text5078" 92.394 + y="674.45374" 92.395 + x="358.75928" 92.396 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.397 + xml:space="preserve" 92.398 + transform="matrix(0.97994281,-0.19927893,0.19927893,0.97994281,0,0)"><tspan 92.399 + id="tspan5080" 92.400 + y="674.45374" 92.401 + x="358.75928" 92.402 + sodipodi:role="line" 92.403 + style="font-size:8px;text-align:center;text-anchor:middle">Top Level Fn</tspan></text> 92.404 + <path 92.405 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999996, 2.99999996;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 92.406 + d="m 458.9835,596.02605 c 36.7665,0 36.7665,0 36.7665,0" 92.407 + id="path5082" 92.408 + inkscape:connector-curvature="0" /> 92.409 + <path 92.410 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 92.411 + d="m 514.02904,382.01894 c 0,5.6572 0,5.6572 0,5.6572" 92.412 + id="path5092" 92.413 + inkscape:connector-curvature="0" 92.414 + sodipodi:nodetypes="cc" /> 92.415 + <path 92.416 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 92.417 + d="m 514.24714,388.02605 c 85.56237,0 85.56237,0 85.56237,0" 92.418 + id="path5094" 92.419 + inkscape:connector-curvature="0" /> 92.420 + <path 92.421 + inkscape:connector-curvature="0" 92.422 + id="path5096" 92.423 + d="m 602.77166,496.02605 c -88.41298,0 -88.41298,0 -88.41298,0" 92.424 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 92.425 + <path 92.426 + sodipodi:nodetypes="cc" 92.427 + inkscape:connector-curvature="0" 92.428 + id="path5140" 92.429 + d="m 514.02904,496.31987 c 0,26.21842 0,26.21842 0,26.21842" 92.430 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 92.431 + <path 92.432 + inkscape:connector-curvature="0" 92.433 + id="path5142" 92.434 + d="m 514.2471,522.02605 c 87.58783,0 87.58783,0 87.58783,0" 92.435 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 92.436 + <text 92.437 + sodipodi:linespacing="100%" 92.438 + id="text5157" 92.439 + y="508.71182" 92.440 + x="604.78461" 92.441 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.442 + xml:space="preserve"><tspan 92.443 + id="tspan5161" 92.444 + y="508.71182" 92.445 + x="604.78461" 92.446 + sodipodi:role="line" 92.447 + style="text-align:center;text-anchor:middle;fill:#800000">end VP</tspan><tspan 92.448 + y="518.71179" 92.449 + x="604.78461" 92.450 + sodipodi:role="line" 92.451 + style="text-align:center;text-anchor:middle;fill:#800000" 92.452 + id="tspan5207">wrapper Fn</tspan></text> 92.453 + <path 92.454 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 92.455 + d="m 602.26584,528.02605 c 63.99676,0 63.99676,0 63.99676,0" 92.456 + id="path5165" 92.457 + inkscape:connector-curvature="0" /> 92.458 + <path 92.459 + sodipodi:nodetypes="cc" 92.460 + inkscape:connector-curvature="0" 92.461 + id="path5179" 92.462 + d="m 514.02904,602.01895 c 0,5.6572 0,5.6572 0,5.6572" 92.463 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 92.464 + <path 92.465 + sodipodi:nodetypes="cc" 92.466 + inkscape:connector-curvature="0" 92.467 + id="path5209" 92.468 + d="m 602.02904,520.31985 c 0,7.35629 0,7.35629 0,7.35629" 92.469 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 92.470 + <text 92.471 + xml:space="preserve" 92.472 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.473 + x="497.16797" 92.474 + y="399.42468" 92.475 + id="text5211" 92.476 + sodipodi:linespacing="100%"><tspan 92.477 + style="text-align:center;text-anchor:middle" 92.478 + sodipodi:role="line" 92.479 + x="497.16797" 92.480 + y="399.42468" 92.481 + id="tspan5215" /></text> 92.482 + <path 92.483 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 92.484 + d="m 602.02904,388.21843 c 0,19.4577 0,19.4577 0,19.4577" 92.485 + id="path5217" 92.486 + inkscape:connector-curvature="0" 92.487 + sodipodi:nodetypes="cc" /> 92.488 + <path 92.489 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 92.490 + d="m 602.24714,408.02605 c 64.71029,0 64.71029,0 64.71029,0" 92.491 + id="path5219" 92.492 + inkscape:connector-curvature="0" /> 92.493 + <path 92.494 + inkscape:connector-curvature="0" 92.495 + id="path5221" 92.496 + d="m 666.85635,492.02605 c -65.78483,0 -65.78483,0 -65.78483,0" 92.497 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 92.498 + <path 92.499 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 92.500 + d="m 668.02904,406.63925 c 0,13.68455 0,13.68455 0,13.68455" 92.501 + id="path5223" 92.502 + inkscape:connector-curvature="0" 92.503 + sodipodi:nodetypes="cc" /> 92.504 + <path 92.505 + sodipodi:nodetypes="cc" 92.506 + inkscape:connector-curvature="0" 92.507 + id="path5229" 92.508 + d="m 602.02904,491.22687 c 0,5.5885 0,5.5885 0,5.5885" 92.509 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 92.510 + <path 92.511 + sodipodi:nodetypes="cc" 92.512 + inkscape:connector-curvature="0" 92.513 + id="path5235" 92.514 + d="m 668.02904,478.63925 c 0,13.68455 0,13.68455 0,13.68455" 92.515 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 92.516 + <text 92.517 + sodipodi:linespacing="100%" 92.518 + id="text5239" 92.519 + y="770.82495" 92.520 + x="188.36783" 92.521 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.522 + xml:space="preserve" 92.523 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 92.524 + id="tspan5241" 92.525 + y="770.82495" 92.526 + x="188.36783" 92.527 + sodipodi:role="line" 92.528 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan><tspan 92.529 + y="778.82495" 92.530 + x="188.36783" 92.531 + sodipodi:role="line" 92.532 + style="font-size:8px;text-align:center;text-anchor:middle" 92.533 + id="tspan5243">and switch</tspan><tspan 92.534 + y="786.82495" 92.535 + x="188.36783" 92.536 + sodipodi:role="line" 92.537 + style="font-size:8px;text-align:center;text-anchor:middle" 92.538 + id="tspan5245">to runtime</tspan></text> 92.539 + <path 92.540 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 92.541 + d="m 271.03421,480.02605 c 193.92439,0 193.92439,0 193.92439,0" 92.542 + id="path5247" 92.543 + inkscape:connector-curvature="0" /> 92.544 + <text 92.545 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 92.546 + xml:space="preserve" 92.547 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.548 + x="157.7636" 92.549 + y="802.43799" 92.550 + id="text5249" 92.551 + sodipodi:linespacing="100%"><tspan 92.552 + id="tspan5255" 92.553 + style="font-size:8px;text-align:center;text-anchor:middle" 92.554 + sodipodi:role="line" 92.555 + x="157.7636" 92.556 + y="802.43799">return</tspan><tspan 92.557 + style="font-size:8px;text-align:center;text-anchor:middle" 92.558 + sodipodi:role="line" 92.559 + x="157.7636" 92.560 + y="810.43799" 92.561 + id="tspan5261">from</tspan><tspan 92.562 + style="font-size:8px;text-align:center;text-anchor:middle" 92.563 + sodipodi:role="line" 92.564 + x="157.7636" 92.565 + y="818.43799" 92.566 + id="tspan5263">suspend</tspan></text> 92.567 + <text 92.568 + sodipodi:linespacing="100%" 92.569 + id="text5345" 92.570 + y="395.42465" 92.571 + x="667.38037" 92.572 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.573 + xml:space="preserve"><tspan 92.574 + id="tspan5349" 92.575 + y="395.42465" 92.576 + x="667.38037" 92.577 + sodipodi:role="line" 92.578 + style="text-align:center;text-anchor:middle;fill:#000080">PR primitive Fn</tspan><tspan 92.579 + y="405.42465" 92.580 + x="667.38037" 92.581 + sodipodi:role="line" 92.582 + style="text-align:center;text-anchor:middle;fill:#000080" 92.583 + id="tspan5353">to send request</tspan></text> 92.584 + <text 92.585 + sodipodi:linespacing="100%" 92.586 + id="text5355" 92.587 + y="392.71429" 92.588 + x="555.29077" 92.589 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.590 + xml:space="preserve" 92.591 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 92.592 + id="tspan5357" 92.593 + y="392.71429" 92.594 + x="555.29077" 92.595 + sodipodi:role="line" 92.596 + style="font-size:8px;text-align:center;text-anchor:middle">normal call</tspan></text> 92.597 + <path 92.598 + sodipodi:nodetypes="cc" 92.599 + inkscape:connector-curvature="0" 92.600 + id="path5359" 92.601 + d="m 668.02904,527.28283 c 0,13.68455 0,13.68455 0,13.68455" 92.602 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 92.603 + <text 92.604 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 92.605 + xml:space="preserve" 92.606 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.607 + x="107.72998" 92.608 + y="856.99628" 92.609 + id="text5363" 92.610 + sodipodi:linespacing="100%"><tspan 92.611 + style="font-size:8px;text-align:center;text-anchor:middle" 92.612 + sodipodi:role="line" 92.613 + x="107.72998" 92.614 + y="856.99628" 92.615 + id="tspan5365">suspend</tspan><tspan 92.616 + id="tspan5367" 92.617 + style="font-size:8px;text-align:center;text-anchor:middle" 92.618 + sodipodi:role="line" 92.619 + x="107.72998" 92.620 + y="864.99628">and switch</tspan><tspan 92.621 + id="tspan5369" 92.622 + style="font-size:8px;text-align:center;text-anchor:middle" 92.623 + sodipodi:role="line" 92.624 + x="107.72998" 92.625 + y="872.99628">to runtime</tspan></text> 92.626 + <text 92.627 + sodipodi:linespacing="100%" 92.628 + id="text5371" 92.629 + y="593.42468" 92.630 + x="604.59662" 92.631 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.632 + xml:space="preserve"><tspan 92.633 + id="tspan5373" 92.634 + y="593.42468" 92.635 + x="604.59662" 92.636 + sodipodi:role="line" 92.637 + style="text-align:center;text-anchor:middle;fill:#800000">Mutex Acquire</tspan><tspan 92.638 + id="tspan5375" 92.639 + y="603.42468" 92.640 + x="604.59662" 92.641 + sodipodi:role="line" 92.642 + style="text-align:center;text-anchor:middle;fill:#800000">wrapper Fn</tspan></text> 92.643 + <path 92.644 + inkscape:connector-curvature="0" 92.645 + id="path5379" 92.646 + d="m 514.24714,608.02605 c 85.56237,0 85.56237,0 85.56237,0" 92.647 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 92.648 + <path 92.649 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 92.650 + d="m 602.77166,708.02605 c -88.41298,0 -88.41298,0 -88.41298,0" 92.651 + id="path5381" 92.652 + inkscape:connector-curvature="0" /> 92.653 + <text 92.654 + xml:space="preserve" 92.655 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.656 + x="604.78461" 92.657 + y="720.71179" 92.658 + id="text5387" 92.659 + sodipodi:linespacing="100%"><tspan 92.660 + style="text-align:center;text-anchor:middle;fill:#800000" 92.661 + sodipodi:role="line" 92.662 + x="604.78461" 92.663 + y="720.71179" 92.664 + id="tspan5389">end VP</tspan><tspan 92.665 + id="tspan5391" 92.666 + style="text-align:center;text-anchor:middle;fill:#800000" 92.667 + sodipodi:role="line" 92.668 + x="604.78461" 92.669 + y="730.71179">wrapper Fn</tspan></text> 92.670 + <path 92.671 + inkscape:connector-curvature="0" 92.672 + id="path5393" 92.673 + d="m 602.289,740.02605 c 65.24023,0 65.24023,0 65.24023,0" 92.674 + style="fill:none;stroke:#000000;stroke-width:0.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 92.675 + <path 92.676 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 92.677 + d="m 602.02904,732.31985 c 0,7.35629 0,7.35629 0,7.35629" 92.678 + id="path5401" 92.679 + inkscape:connector-curvature="0" 92.680 + sodipodi:nodetypes="cc" /> 92.681 + <path 92.682 + sodipodi:nodetypes="cc" 92.683 + inkscape:connector-curvature="0" 92.684 + id="path5403" 92.685 + d="m 602.02904,608.21843 c 0,19.4577 0,19.4577 0,19.4577" 92.686 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 92.687 + <path 92.688 + inkscape:connector-curvature="0" 92.689 + id="path5405" 92.690 + d="m 602.6148,628.02605 c 64.1779,0 64.1779,0 64.1779,0" 92.691 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 92.692 + <path 92.693 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 92.694 + d="m 668.13452,704.02605 c -67.06305,0 -67.06305,0 -67.06305,0" 92.695 + id="path5407" 92.696 + inkscape:connector-curvature="0" /> 92.697 + <path 92.698 + sodipodi:nodetypes="cc" 92.699 + inkscape:connector-curvature="0" 92.700 + id="path5409" 92.701 + d="m 668.02904,626.63925 c 0,13.68455 0,13.68455 0,13.68455" 92.702 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 92.703 + <path 92.704 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 92.705 + d="m 602.02904,703.22687 c 0,5.5885 0,5.5885 0,5.5885" 92.706 + id="path5411" 92.707 + inkscape:connector-curvature="0" 92.708 + sodipodi:nodetypes="cc" /> 92.709 + <path 92.710 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 92.711 + d="m 668.02904,690.63925 c 0,13.68455 0,13.68455 0,13.68455" 92.712 + id="path5417" 92.713 + inkscape:connector-curvature="0" 92.714 + sodipodi:nodetypes="cc" /> 92.715 + <text 92.716 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 92.717 + xml:space="preserve" 92.718 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.719 + x="38.175541" 92.720 + y="928.84552" 92.721 + id="text5421" 92.722 + sodipodi:linespacing="100%"><tspan 92.723 + style="font-size:8px;text-align:center;text-anchor:middle" 92.724 + sodipodi:role="line" 92.725 + x="38.175541" 92.726 + y="928.84552" 92.727 + id="tspan5423">suspend</tspan><tspan 92.728 + id="tspan5425" 92.729 + style="font-size:8px;text-align:center;text-anchor:middle" 92.730 + sodipodi:role="line" 92.731 + x="38.175541" 92.732 + y="936.84552">and switch</tspan><tspan 92.733 + id="tspan5427" 92.734 + style="font-size:8px;text-align:center;text-anchor:middle" 92.735 + sodipodi:role="line" 92.736 + x="38.175541" 92.737 + y="944.84552">to runtime</tspan></text> 92.738 + <text 92.739 + sodipodi:linespacing="100%" 92.740 + id="text5431" 92.741 + y="954.75671" 92.742 + x="10.307833" 92.743 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.744 + xml:space="preserve" 92.745 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 92.746 + y="954.75671" 92.747 + x="10.307833" 92.748 + sodipodi:role="line" 92.749 + style="font-size:8px;text-align:center;text-anchor:middle" 92.750 + id="tspan5433">return</tspan><tspan 92.751 + id="tspan5435" 92.752 + y="962.75671" 92.753 + x="10.307833" 92.754 + sodipodi:role="line" 92.755 + style="font-size:8px;text-align:center;text-anchor:middle">from</tspan><tspan 92.756 + id="tspan5437" 92.757 + y="970.75671" 92.758 + x="10.307833" 92.759 + sodipodi:role="line" 92.760 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan></text> 92.761 + <text 92.762 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 92.763 + xml:space="preserve" 92.764 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.765 + x="556.25635" 92.766 + y="612.71143" 92.767 + id="text5445" 92.768 + sodipodi:linespacing="100%"><tspan 92.769 + style="font-size:8px;text-align:center;text-anchor:middle" 92.770 + sodipodi:role="line" 92.771 + x="556.25635" 92.772 + y="612.71143" 92.773 + id="tspan5447">normal call</tspan></text> 92.774 + <path 92.775 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 92.776 + d="m 668.02904,739.28283 c 0,13.68455 0,13.68455 0,13.68455" 92.777 + id="path5449" 92.778 + inkscape:connector-curvature="0" 92.779 + sodipodi:nodetypes="cc" /> 92.780 + <text 92.781 + sodipodi:linespacing="100%" 92.782 + id="text5453" 92.783 + y="1012.1439" 92.784 + x="-39.679813" 92.785 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.786 + xml:space="preserve" 92.787 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 92.788 + id="tspan5455" 92.789 + y="1012.1439" 92.790 + x="-39.679813" 92.791 + sodipodi:role="line" 92.792 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan><tspan 92.793 + y="1020.1439" 92.794 + x="-39.679813" 92.795 + sodipodi:role="line" 92.796 + style="font-size:8px;text-align:center;text-anchor:middle" 92.797 + id="tspan5457">and switch</tspan><tspan 92.798 + y="1028.144" 92.799 + x="-39.679813" 92.800 + sodipodi:role="line" 92.801 + style="font-size:8px;text-align:center;text-anchor:middle" 92.802 + id="tspan5459">to runtime</tspan></text> 92.803 + <path 92.804 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 92.805 + d="m 514.02904,708.31987 c 0,26.21842 0,26.21842 0,26.21842" 92.806 + id="path5461" 92.807 + inkscape:connector-curvature="0" 92.808 + sodipodi:nodetypes="cc" /> 92.809 + <path 92.810 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 92.811 + d="m 514.2471,734.02605 c 87.58783,0 87.58783,0 87.58783,0" 92.812 + id="path5463" 92.813 + inkscape:connector-curvature="0" /> 92.814 + <text 92.815 + sodipodi:linespacing="100%" 92.816 + id="text5465" 92.817 + y="526.71161" 92.818 + x="555.8786" 92.819 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.820 + xml:space="preserve" 92.821 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 92.822 + id="tspan5467" 92.823 + y="526.71161" 92.824 + x="555.8786" 92.825 + sodipodi:role="line" 92.826 + style="font-size:8px;text-align:center;text-anchor:middle">normal call</tspan></text> 92.827 + <text 92.828 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 92.829 + xml:space="preserve" 92.830 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.831 + x="556.80994" 92.832 + y="738.711" 92.833 + id="text5469" 92.834 + sodipodi:linespacing="100%"><tspan 92.835 + style="font-size:8px;text-align:center;text-anchor:middle" 92.836 + sodipodi:role="line" 92.837 + x="556.80994" 92.838 + y="738.711" 92.839 + id="tspan5471">normal call</tspan></text> 92.840 + <g 92.841 + transform="matrix(1,0,0,0.71130685,-16,120.52913)" 92.842 + id="g8395"> 92.843 + <rect 92.844 + y="313.58255" 92.845 + x="310.40247" 92.846 + height="52.250008" 92.847 + width="65.276405" 92.848 + id="rect8397" 92.849 + style="fill:none;stroke:#000000;stroke-width:1.28076112;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 92.850 + </g> 92.851 + <path 92.852 + sodipodi:nodetypes="cc" 92.853 + inkscape:connector-curvature="0" 92.854 + id="path9273" 92.855 + d="m 514.02904,496.31987 c 0,26.21842 0,26.21842 0,26.21842" 92.856 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 92.857 + <path 92.858 + sodipodi:nodetypes="cc" 92.859 + inkscape:connector-curvature="0" 92.860 + id="path9275" 92.861 + d="m 476.02904,382.79398 c 0,35.61575 0,35.61575 0,35.61575" 92.862 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:none" /> 92.863 + <path 92.864 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 92.865 + d="m 468.24715,418.02605 c 13.34137,0 13.34137,0 13.34137,0" 92.866 + id="path9277" 92.867 + inkscape:connector-curvature="0" /> 92.868 + <path 92.869 + inkscape:connector-curvature="0" 92.870 + id="path9279" 92.871 + d="m 481.57781,480.02605 c -13.14022,0 -13.14022,0 -13.14022,0" 92.872 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 92.873 + <path 92.874 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" 92.875 + d="m 476.02904,480.3113 c 0,57.40944 0,57.40944 0,57.40944" 92.876 + id="path9281" 92.877 + inkscape:connector-curvature="0" 92.878 + sodipodi:nodetypes="cc" /> 92.879 + <path 92.880 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 92.881 + d="m 481.57781,539.27417 c -13.14022,0 -13.14022,0 -13.14022,0" 92.882 + id="path9283" 92.883 + inkscape:connector-curvature="0" /> 92.884 + <text 92.885 + transform="matrix(-0.01875541,0.9998241,-0.9998241,-0.01875541,0,0)" 92.886 + xml:space="preserve" 92.887 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.888 + x="453.93332" 92.889 + y="-466.39136" 92.890 + id="text9285" 92.891 + sodipodi:linespacing="100%"><tspan 92.892 + style="text-align:center;text-anchor:middle;fill:#008000" 92.893 + sodipodi:role="line" 92.894 + x="453.93332" 92.895 + y="-466.39136" 92.896 + id="tspan9287">Timeline of SeedVP</tspan></text> 92.897 + <text 92.898 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 92.899 + xml:space="preserve" 92.900 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.901 + x="485.39722" 92.902 + y="417.02103" 92.903 + id="text9289" 92.904 + sodipodi:linespacing="100%"><tspan 92.905 + style="font-size:8px;text-align:start;text-anchor:start" 92.906 + sodipodi:role="line" 92.907 + x="485.39722" 92.908 + y="417.02103" 92.909 + id="tspan9291">suspend</tspan></text> 92.910 + <text 92.911 + sodipodi:linespacing="100%" 92.912 + id="text9293" 92.913 + y="481.02048" 92.914 + x="485.67838" 92.915 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.916 + xml:space="preserve" 92.917 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 92.918 + id="tspan9295" 92.919 + y="481.02048" 92.920 + x="485.67838" 92.921 + sodipodi:role="line" 92.922 + style="font-size:8px;text-align:start;text-anchor:start">resume</tspan></text> 92.923 + <text 92.924 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 92.925 + xml:space="preserve" 92.926 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.927 + x="485.92978" 92.928 + y="538.22565" 92.929 + id="text9297" 92.930 + sodipodi:linespacing="100%"><tspan 92.931 + style="font-size:8px;text-align:start;text-anchor:start" 92.932 + sodipodi:role="line" 92.933 + x="485.92978" 92.934 + y="538.22565" 92.935 + id="tspan9299">end</tspan></text> 92.936 + <text 92.937 + sodipodi:linespacing="100%" 92.938 + id="text9301" 92.939 + y="307.42465" 92.940 + x="63.167969" 92.941 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.942 + xml:space="preserve"><tspan 92.943 + id="tspan9303" 92.944 + y="307.42465" 92.945 + x="63.167969" 92.946 + sodipodi:role="line" 92.947 + style="text-align:center;text-anchor:middle;fill:#000080">Proto-Runtime</tspan><tspan 92.948 + id="tspan9305" 92.949 + y="317.42465" 92.950 + x="63.167969" 92.951 + sodipodi:role="line" 92.952 + style="text-align:center;text-anchor:middle;fill:#000080">Primitive</tspan><tspan 92.953 + y="327.42465" 92.954 + x="63.167969" 92.955 + sodipodi:role="line" 92.956 + style="text-align:center;text-anchor:middle;fill:#000080" 92.957 + id="tspan9307">Code</tspan></text> 92.958 + <text 92.959 + xml:space="preserve" 92.960 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.961 + x="65.380371" 92.962 + y="423.42465" 92.963 + id="text9309" 92.964 + sodipodi:linespacing="100%"><tspan 92.965 + id="tspan9313" 92.966 + style="text-align:center;text-anchor:middle;fill:#000080" 92.967 + sodipodi:role="line" 92.968 + x="65.380371" 92.969 + y="423.42465">PR primitive Fn</tspan><tspan 92.970 + style="text-align:center;text-anchor:middle;fill:#000080" 92.971 + sodipodi:role="line" 92.972 + x="65.380371" 92.973 + y="433.42465" 92.974 + id="tspan9317">to create VP</tspan></text> 92.975 + <path 92.976 + inkscape:connector-curvature="0" 92.977 + id="path9321" 92.978 + d="m 101.87628,425.85467 c 83.54552,12.98474 93.01032,9.74762 154.91834,33.79457 83.60123,32.47325 132.79902,111.74825 132.79902,111.74825" 92.979 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000006, 3.00000006;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 92.980 + sodipodi:nodetypes="csc" /> 92.981 + <g 92.982 + id="g9341" 92.983 + transform="translate(44.002789,174)"> 92.984 + <rect 92.985 + y="389.58255" 92.986 + x="346.40247" 92.987 + height="37.165791" 92.988 + width="65.276405" 92.989 + id="rect9343" 92.990 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 92.991 + <text 92.992 + xml:space="preserve" 92.993 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.994 + x="379.35806" 92.995 + y="400.72159" 92.996 + id="text9345" 92.997 + sodipodi:linespacing="100%"><tspan 92.998 + style="text-align:center;text-anchor:middle;fill:#008000" 92.999 + sodipodi:role="line" 92.1000 + x="379.35806" 92.1001 + y="400.72159" 92.1002 + id="tspan9347">VP 1</tspan><tspan 92.1003 + style="font-size:8px;text-align:center;text-anchor:middle;fill:#008000" 92.1004 + sodipodi:role="line" 92.1005 + x="379.35806" 92.1006 + y="409.15637" 92.1007 + id="tspan9349">(created by</tspan><tspan 92.1008 + style="font-size:8px;text-align:center;text-anchor:middle;fill:#008000" 92.1009 + sodipodi:role="line" 92.1010 + x="379.35806" 92.1011 + y="417.15637" 92.1012 + id="tspan9355">application,</tspan><tspan 92.1013 + style="font-size:8px;text-align:center;text-anchor:middle;fill:#008000" 92.1014 + sodipodi:role="line" 92.1015 + x="379.35806" 92.1016 + y="425.15637" 92.1017 + id="tspan9746">on core 2)</tspan></text> 92.1018 + </g> 92.1019 + <g 92.1020 + transform="translate(44.002789,370)" 92.1021 + id="g9371" /> 92.1022 + <text 92.1023 + xml:space="preserve" 92.1024 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.1025 + x="202.41257" 92.1026 + y="379.42465" 92.1027 + id="text9512" 92.1028 + sodipodi:linespacing="100%"><tspan 92.1029 + style="text-align:center;text-anchor:middle;fill:#000080" 92.1030 + sodipodi:role="line" 92.1031 + x="202.41257" 92.1032 + y="379.42465" 92.1033 + id="tspan9514">Master Fn</tspan></text> 92.1034 + <path 92.1035 + sodipodi:nodetypes="cc" 92.1036 + inkscape:connector-curvature="0" 92.1037 + id="path9522" 92.1038 + d="m 205.27805,418.31985 c 0,7.35629 0,7.35629 0,7.35629" 92.1039 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 92.1040 + <path 92.1041 + inkscape:connector-curvature="0" 92.1042 + id="path9524" 92.1043 + d="m 205.05995,424.02605 c -67.19099,0 -67.19099,0 -67.19099,0" 92.1044 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 92.1045 + <path 92.1046 + sodipodi:nodetypes="cc" 92.1047 + inkscape:connector-curvature="0" 92.1048 + id="path9548" 92.1049 + d="m 137.27805,423.85824 c 0,11.43122 0,11.43122 0,11.43122" 92.1050 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 92.1051 + <path 92.1052 + inkscape:connector-curvature="0" 92.1053 + id="path9550" 92.1054 + d="m 137.57123,436.02605 c -69.22157,0 -69.22157,0 -69.22157,0" 92.1055 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 92.1056 + <path 92.1057 + sodipodi:nodetypes="cc" 92.1058 + inkscape:connector-curvature="0" 92.1059 + id="path9554" 92.1060 + d="m 205.27805,474.63925 c 0,4.54718 0,4.54718 0,4.54718" 92.1061 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 92.1062 + <text 92.1063 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 92.1064 + xml:space="preserve" 92.1065 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.1066 + x="-187.67645" 92.1067 + y="493.07611" 92.1068 + id="text9566" 92.1069 + sodipodi:linespacing="100%"><tspan 92.1070 + style="font-size:8px;text-align:center;text-anchor:middle" 92.1071 + sodipodi:role="line" 92.1072 + x="-187.67645" 92.1073 + y="493.07611" 92.1074 + id="tspan9568">suspend</tspan><tspan 92.1075 + id="tspan9570" 92.1076 + style="font-size:8px;text-align:center;text-anchor:middle" 92.1077 + sodipodi:role="line" 92.1078 + x="-187.67645" 92.1079 + y="501.07611">and switch</tspan><tspan 92.1080 + id="tspan9572" 92.1081 + style="font-size:8px;text-align:center;text-anchor:middle" 92.1082 + sodipodi:role="line" 92.1083 + x="-187.67645" 92.1084 + y="509.07611">to app VP</tspan></text> 92.1085 + <path 92.1086 + sodipodi:nodetypes="cc" 92.1087 + inkscape:connector-curvature="0" 92.1088 + id="path9614" 92.1089 + d="m 205.27805,418.31985 c 0,7.35629 0,7.35629 0,7.35629" 92.1090 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 92.1091 + <path 92.1092 + sodipodi:nodetypes="cc" 92.1093 + inkscape:connector-curvature="0" 92.1094 + id="path9616" 92.1095 + d="m 205.27805,418.31985 c 0,7.35629 0,7.35629 0,7.35629" 92.1096 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 92.1097 + <path 92.1098 + inkscape:connector-curvature="0" 92.1099 + id="path9648" 92.1100 + d="m 468.24715,383.42364 c 13.34137,0 13.34137,0 13.34137,0" 92.1101 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 92.1102 + <text 92.1103 + sodipodi:linespacing="100%" 92.1104 + id="text9654" 92.1105 + y="385.02261" 92.1106 + x="485.25659" 92.1107 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.1108 + xml:space="preserve" 92.1109 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 92.1110 + id="tspan9656" 92.1111 + y="385.02261" 92.1112 + x="485.25659" 92.1113 + sodipodi:role="line" 92.1114 + style="font-size:8px;text-align:start;text-anchor:start">start</tspan></text> 92.1115 + <path 92.1116 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:none" 92.1117 + d="m 476.02904,602.79398 c 0,35.61575 0,35.61575 0,35.61575" 92.1118 + id="path9658" 92.1119 + inkscape:connector-curvature="0" 92.1120 + sodipodi:nodetypes="cc" /> 92.1121 + <path 92.1122 + inkscape:connector-curvature="0" 92.1123 + id="path9660" 92.1124 + d="m 468.24715,638.02605 c 13.34137,0 13.34137,0 13.34137,0" 92.1125 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 92.1126 + <path 92.1127 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 92.1128 + d="m 481.57781,692.02605 c -13.14022,0 -13.14022,0 -13.14022,0" 92.1129 + id="path9662" 92.1130 + inkscape:connector-curvature="0" /> 92.1131 + <text 92.1132 + sodipodi:linespacing="100%" 92.1133 + id="text9668" 92.1134 + y="-464.48126" 92.1135 + x="672.00745" 92.1136 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.1137 + xml:space="preserve" 92.1138 + transform="matrix(-0.01875541,0.9998241,-0.9998241,-0.01875541,0,0)"><tspan 92.1139 + y="-464.48126" 92.1140 + x="672.00745" 92.1141 + sodipodi:role="line" 92.1142 + style="text-align:center;text-anchor:middle;fill:#008000" 92.1143 + id="tspan9740">Timeline of VP 1</tspan></text> 92.1144 + <text 92.1145 + sodipodi:linespacing="100%" 92.1146 + id="text9672" 92.1147 + y="637.01904" 92.1148 + x="486.36292" 92.1149 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.1150 + xml:space="preserve" 92.1151 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 92.1152 + id="tspan9674" 92.1153 + y="637.01904" 92.1154 + x="486.36292" 92.1155 + sodipodi:role="line" 92.1156 + style="font-size:8px;text-align:start;text-anchor:start">suspend</tspan></text> 92.1157 + <text 92.1158 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 92.1159 + xml:space="preserve" 92.1160 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.1161 + x="486.6088" 92.1162 + y="693.01855" 92.1163 + id="text9676" 92.1164 + sodipodi:linespacing="100%"><tspan 92.1165 + style="font-size:8px;text-align:start;text-anchor:start" 92.1166 + sodipodi:role="line" 92.1167 + x="486.6088" 92.1168 + y="693.01855" 92.1169 + id="tspan9678">resume</tspan></text> 92.1170 + <path 92.1171 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 92.1172 + d="m 468.24715,603.42364 c 13.34137,0 13.34137,0 13.34137,0" 92.1173 + id="path9684" 92.1174 + inkscape:connector-curvature="0" /> 92.1175 + <text 92.1176 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 92.1177 + xml:space="preserve" 92.1178 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.1179 + x="486.22229" 92.1180 + y="605.02063" 92.1181 + id="text9686" 92.1182 + sodipodi:linespacing="100%"><tspan 92.1183 + style="font-size:8px;text-align:start;text-anchor:start" 92.1184 + sodipodi:role="line" 92.1185 + x="486.22229" 92.1186 + y="605.02063" 92.1187 + id="tspan9688">start</tspan></text> 92.1188 + <path 92.1189 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:none" 92.1190 + d="m 266.02904,417.4311 c 0,61.88904 0,61.88904 0,61.88904" 92.1191 + id="path9690" 92.1192 + inkscape:connector-curvature="0" 92.1193 + sodipodi:nodetypes="cc" /> 92.1194 + <path 92.1195 + inkscape:connector-curvature="0" 92.1196 + id="path9692" 92.1197 + d="m 258.24715,418.02605 c 13.34137,0 13.34137,0 13.34137,0" 92.1198 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 92.1199 + <path 92.1200 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 92.1201 + d="m 271.57781,480.02605 c -13.14022,0 -13.14022,0 -13.14022,0" 92.1202 + id="path9694" 92.1203 + inkscape:connector-curvature="0" /> 92.1204 + <text 92.1205 + sodipodi:linespacing="100%" 92.1206 + id="text9700" 92.1207 + y="-276.70538" 92.1208 + x="463.34042" 92.1209 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.1210 + xml:space="preserve" 92.1211 + transform="matrix(0.00239328,0.99999714,-0.99999714,0.00239328,0,0)"><tspan 92.1212 + y="-276.70538" 92.1213 + x="463.34042" 92.1214 + sodipodi:role="line" 92.1215 + style="text-align:center;text-anchor:middle;fill:#000080" 92.1216 + id="tspan9736">Timeline of Master on core 1</tspan></text> 92.1217 + <text 92.1218 + sodipodi:linespacing="100%" 92.1219 + id="text9704" 92.1220 + y="480.12692" 92.1221 + x="261.37079" 92.1222 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.1223 + xml:space="preserve" 92.1224 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 92.1225 + id="tspan9706" 92.1226 + y="480.12692" 92.1227 + x="261.37079" 92.1228 + sodipodi:role="line" 92.1229 + style="font-size:8px;text-align:end;text-anchor:end">suspend</tspan></text> 92.1230 + <text 92.1231 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 92.1232 + xml:space="preserve" 92.1233 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.1234 + x="258.65039" 92.1235 + y="420.12738" 92.1236 + id="text9708" 92.1237 + sodipodi:linespacing="100%"><tspan 92.1238 + style="font-size:8px;text-align:end;text-anchor:end" 92.1239 + sodipodi:role="line" 92.1240 + x="258.65039" 92.1241 + y="420.12738" 92.1242 + id="tspan9710">resume</tspan></text> 92.1243 + <path 92.1244 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 92.1245 + d="m 258.24715,383.42364 c 13.34137,0 13.34137,0 13.34137,0" 92.1246 + id="path9716" 92.1247 + inkscape:connector-curvature="0" /> 92.1248 + <text 92.1249 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 92.1250 + xml:space="preserve" 92.1251 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.1252 + x="257.70789" 92.1253 + y="386.09387" 92.1254 + id="text9718" 92.1255 + sodipodi:linespacing="100%"><tspan 92.1256 + style="font-size:8px;text-align:end;text-anchor:end" 92.1257 + sodipodi:role="line" 92.1258 + x="257.70789" 92.1259 + y="386.09387" 92.1260 + id="tspan9720">start</tspan></text> 92.1261 + <path 92.1262 + sodipodi:nodetypes="cc" 92.1263 + inkscape:connector-curvature="0" 92.1264 + id="path9722" 92.1265 + d="m 266.02904,537.43112 c 0,10.33165 0,10.33165 0,10.33165" 92.1266 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" /> 92.1267 + <path 92.1268 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 92.1269 + d="m 258.24715,538.02605 c 13.34137,0 13.34137,0 13.34137,0" 92.1270 + id="path9724" 92.1271 + inkscape:connector-curvature="0" /> 92.1272 + <text 92.1273 + sodipodi:linespacing="100%" 92.1274 + id="text9936" 92.1275 + y="624.93951" 92.1276 + x="641.89471" 92.1277 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.1278 + xml:space="preserve" 92.1279 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)"><tspan 92.1280 + id="tspan9938" 92.1281 + y="624.93951" 92.1282 + x="641.89471" 92.1283 + sodipodi:role="line" 92.1284 + style="font-size:8px;text-align:center;text-anchor:middle">Call to dyn lib</tspan></text> 92.1285 + <text 92.1286 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)" 92.1287 + xml:space="preserve" 92.1288 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.1289 + x="643.74738" 92.1290 + y="736.927" 92.1291 + id="text9940" 92.1292 + sodipodi:linespacing="100%"><tspan 92.1293 + style="font-size:8px;text-align:center;text-anchor:middle" 92.1294 + sodipodi:role="line" 92.1295 + x="643.74738" 92.1296 + y="736.927" 92.1297 + id="tspan9942">Call to dyn lib</tspan></text> 92.1298 + <text 92.1299 + sodipodi:linespacing="100%" 92.1300 + id="text9944" 92.1301 + y="524.9541" 92.1302 + x="640.23999" 92.1303 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.1304 + xml:space="preserve" 92.1305 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)"><tspan 92.1306 + id="tspan9946" 92.1307 + y="524.9541" 92.1308 + x="640.23999" 92.1309 + sodipodi:role="line" 92.1310 + style="font-size:8px;text-align:center;text-anchor:middle">Call to dyn lib</tspan></text> 92.1311 + <text 92.1312 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)" 92.1313 + xml:space="preserve" 92.1314 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.1315 + x="112.79035" 92.1316 + y="441.66806" 92.1317 + id="text9948" 92.1318 + sodipodi:linespacing="100%"><tspan 92.1319 + style="font-size:8px;text-align:center;text-anchor:middle" 92.1320 + sodipodi:role="line" 92.1321 + x="112.79035" 92.1322 + y="441.66806" 92.1323 + id="tspan9950">call to dyn lib</tspan></text> 92.1324 + <path 92.1325 + inkscape:connector-curvature="0" 92.1326 + id="path9952" 92.1327 + d="m 701.67453,480.02605 c -669.895225,0 -669.895225,0 -669.895225,0" 92.1328 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" /> 92.1329 + <path 92.1330 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" 92.1331 + d="m 701.67453,417.52981 c -669.895225,0 -669.895225,0 -669.895225,0" 92.1332 + id="path9954" 92.1333 + inkscape:connector-curvature="0" /> 92.1334 + <text 92.1335 + xml:space="preserve" 92.1336 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.1337 + x="326.92542" 92.1338 + y="577.76575" 92.1339 + id="text9956" 92.1340 + sodipodi:linespacing="100%"><tspan 92.1341 + style="text-align:center;text-anchor:middle" 92.1342 + sodipodi:role="line" 92.1343 + id="tspan9958" 92.1344 + x="326.92542" 92.1345 + y="577.76575">Master</tspan><tspan 92.1346 + style="font-size:8px;text-align:center;text-anchor:middle" 92.1347 + id="tspan9960" 92.1348 + sodipodi:role="line" 92.1349 + x="326.92542" 92.1350 + y="586.2005">(runtime system)</tspan><tspan 92.1351 + id="tspan9962" 92.1352 + style="font-size:8px;text-align:center;text-anchor:middle" 92.1353 + sodipodi:role="line" 92.1354 + x="326.92542" 92.1355 + y="594.2005">on core 2</tspan></text> 92.1356 + <path 92.1357 + inkscape:connector-curvature="0" 92.1358 + id="path9970" 92.1359 + d="m 291.99816,596.02605 c -63.44071,0 -63.44071,0 -63.44071,0" 92.1360 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000003, 3.00000003;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 92.1361 + <g 92.1362 + id="g9972" 92.1363 + transform="matrix(1,0,0,0.71130685,-16,342.52913)"> 92.1364 + <rect 92.1365 + style="fill:none;stroke:#000000;stroke-width:1.28076112;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 92.1366 + id="rect9974" 92.1367 + width="65.276405" 92.1368 + height="52.250008" 92.1369 + x="310.40247" 92.1370 + y="313.58255" /> 92.1371 + </g> 92.1372 + <text 92.1373 + sodipodi:linespacing="100%" 92.1374 + id="text9982" 92.1375 + y="599.42468" 92.1376 + x="202.41257" 92.1377 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.1378 + xml:space="preserve"><tspan 92.1379 + id="tspan9984" 92.1380 + y="599.42468" 92.1381 + x="202.41257" 92.1382 + sodipodi:role="line" 92.1383 + style="text-align:center;text-anchor:middle;fill:#000080">Master Fn</tspan></text> 92.1384 + <path 92.1385 + sodipodi:nodetypes="cc" 92.1386 + inkscape:connector-curvature="0" 92.1387 + id="path10010" 92.1388 + d="m 266.02904,637.43113 c 0,54.93536 0,54.93536 0,54.93536" 92.1389 + style="fill:none;stroke:#000000;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:none" /> 92.1390 + <path 92.1391 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 92.1392 + d="m 258.24715,638.02605 c 13.34137,0 13.34137,0 13.34137,0" 92.1393 + id="path10012" 92.1394 + inkscape:connector-curvature="0" /> 92.1395 + <path 92.1396 + inkscape:connector-curvature="0" 92.1397 + id="path10014" 92.1398 + d="m 271.57781,692.02605 c -13.14022,0 -13.14022,0 -13.14022,0" 92.1399 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 92.1400 + <text 92.1401 + transform="matrix(0.00962718,0.99995366,-0.99995366,0.00962718,0,0)" 92.1402 + xml:space="preserve" 92.1403 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.1404 + x="675.3847" 92.1405 + y="-275.31226" 92.1406 + id="text10018" 92.1407 + sodipodi:linespacing="100%"><tspan 92.1408 + id="tspan10020" 92.1409 + style="text-align:center;text-anchor:middle;fill:#000080" 92.1410 + sodipodi:role="line" 92.1411 + x="675.3847" 92.1412 + y="-275.31226">Timeline of Master on core 2</tspan></text> 92.1413 + <path 92.1414 + inkscape:connector-curvature="0" 92.1415 + id="path10030" 92.1416 + d="m 258.24715,603.42364 c 13.34137,0 13.34137,0 13.34137,0" 92.1417 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 92.1418 + <path 92.1419 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000002, 3.00000002;stroke-dashoffset:0" 92.1420 + d="m 205.27805,381.45805 c 0,3.23577 0,3.23577 0,3.23577" 92.1421 + id="path10054" 92.1422 + inkscape:connector-curvature="0" 92.1423 + sodipodi:nodetypes="cc" /> 92.1424 + <path 92.1425 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" 92.1426 + d="m 701.67453,692.02605 c -669.895225,0 -669.895225,0 -669.895225,0" 92.1427 + id="path10056" 92.1428 + inkscape:connector-curvature="0" /> 92.1429 + <path 92.1430 + inkscape:connector-curvature="0" 92.1431 + id="path10058" 92.1432 + d="m 701.67453,637.52981 c -669.895225,0 -669.895225,0 -669.895225,0" 92.1433 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" /> 92.1434 + <text 92.1435 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 92.1436 + xml:space="preserve" 92.1437 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.1438 + x="-135.75337" 92.1439 + y="434.7803" 92.1440 + id="text10062" 92.1441 + sodipodi:linespacing="100%"><tspan 92.1442 + id="tspan10068" 92.1443 + style="font-size:8px;text-align:center;text-anchor:middle" 92.1444 + sodipodi:role="line" 92.1445 + x="-135.75337" 92.1446 + y="434.7803">return from</tspan><tspan 92.1447 + style="font-size:8px;text-align:center;text-anchor:middle" 92.1448 + sodipodi:role="line" 92.1449 + x="-135.75337" 92.1450 + y="442.7803" 92.1451 + id="tspan10074">suspend</tspan></text> 92.1452 + <path 92.1453 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" 92.1454 + d="m 701.67453,538.02605 c -669.895225,0 -669.895225,0 -669.895225,0" 92.1455 + id="path10076" 92.1456 + inkscape:connector-curvature="0" /> 92.1457 + <text 92.1458 + xml:space="preserve" 92.1459 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.1460 + x="667.38037" 92.1461 + y="515.42468" 92.1462 + id="text10082" 92.1463 + sodipodi:linespacing="100%"><tspan 92.1464 + style="text-align:center;text-anchor:middle;fill:#000080" 92.1465 + sodipodi:role="line" 92.1466 + x="667.38037" 92.1467 + y="515.42468" 92.1468 + id="tspan10084">PR primitive Fn</tspan><tspan 92.1469 + id="tspan10086" 92.1470 + style="text-align:center;text-anchor:middle;fill:#000080" 92.1471 + sodipodi:role="line" 92.1472 + x="667.38037" 92.1473 + y="525.42468">to send request</tspan></text> 92.1474 + <text 92.1475 + sodipodi:linespacing="100%" 92.1476 + id="text10088" 92.1477 + y="615.42468" 92.1478 + x="667.38037" 92.1479 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.1480 + xml:space="preserve"><tspan 92.1481 + id="tspan10090" 92.1482 + y="615.42468" 92.1483 + x="667.38037" 92.1484 + sodipodi:role="line" 92.1485 + style="text-align:center;text-anchor:middle;fill:#000080">PR primitive Fn</tspan><tspan 92.1486 + y="625.42468" 92.1487 + x="667.38037" 92.1488 + sodipodi:role="line" 92.1489 + style="text-align:center;text-anchor:middle;fill:#000080" 92.1490 + id="tspan10092">to send request</tspan></text> 92.1491 + <text 92.1492 + xml:space="preserve" 92.1493 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.1494 + x="667.38037" 92.1495 + y="727.42468" 92.1496 + id="text10094" 92.1497 + sodipodi:linespacing="100%"><tspan 92.1498 + style="text-align:center;text-anchor:middle;fill:#000080" 92.1499 + sodipodi:role="line" 92.1500 + x="667.38037" 92.1501 + y="727.42468" 92.1502 + id="tspan10096">PR primitive Fn</tspan><tspan 92.1503 + id="tspan10098" 92.1504 + style="text-align:center;text-anchor:middle;fill:#000080" 92.1505 + sodipodi:role="line" 92.1506 + x="667.38037" 92.1507 + y="737.42468">to send request</tspan></text> 92.1508 + <path 92.1509 + sodipodi:nodetypes="cc" 92.1510 + inkscape:connector-curvature="0" 92.1511 + id="path10100" 92.1512 + d="m 476.02904,692.3113 c 0,57.40944 0,57.40944 0,57.40944" 92.1513 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" /> 92.1514 + <path 92.1515 + inkscape:connector-curvature="0" 92.1516 + id="path10102" 92.1517 + d="m 481.57781,751.27417 c -13.14022,0 -13.14022,0 -13.14022,0" 92.1518 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 92.1519 + <text 92.1520 + sodipodi:linespacing="100%" 92.1521 + id="text10104" 92.1522 + y="750.22363" 92.1523 + x="486.86038" 92.1524 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.1525 + xml:space="preserve" 92.1526 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 92.1527 + id="tspan10106" 92.1528 + y="750.22363" 92.1529 + x="486.86038" 92.1530 + sodipodi:role="line" 92.1531 + style="font-size:8px;text-align:start;text-anchor:start">end</tspan></text> 92.1532 + <path 92.1533 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" 92.1534 + d="m 266.02904,749.43112 c 0,10.33165 0,10.33165 0,10.33165" 92.1535 + id="path10108" 92.1536 + inkscape:connector-curvature="0" 92.1537 + sodipodi:nodetypes="cc" /> 92.1538 + <path 92.1539 + inkscape:connector-curvature="0" 92.1540 + id="path10110" 92.1541 + d="m 258.24715,750.02605 c 13.34137,0 13.34137,0 13.34137,0" 92.1542 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 92.1543 + <path 92.1544 + inkscape:connector-curvature="0" 92.1545 + id="path10116" 92.1546 + d="m 701.67453,750.02605 c -669.895225,0 -669.895225,0 -669.895225,0" 92.1547 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" /> 92.1548 + <text 92.1549 + sodipodi:linespacing="100%" 92.1550 + id="text10118" 92.1551 + y="540.12653" 92.1552 + x="259.17728" 92.1553 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.1554 + xml:space="preserve" 92.1555 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 92.1556 + id="tspan10120" 92.1557 + y="540.12653" 92.1558 + x="259.17728" 92.1559 + sodipodi:role="line" 92.1560 + style="font-size:8px;text-align:end;text-anchor:end">resume</tspan></text> 92.1561 + <text 92.1562 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 92.1563 + xml:space="preserve" 92.1564 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.1565 + x="259.61627" 92.1566 + y="640.12561" 92.1567 + id="text10122" 92.1568 + sodipodi:linespacing="100%"><tspan 92.1569 + style="font-size:8px;text-align:end;text-anchor:end" 92.1570 + sodipodi:role="line" 92.1571 + x="259.61627" 92.1572 + y="640.12561" 92.1573 + id="tspan10124">resume</tspan></text> 92.1574 + <text 92.1575 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 92.1576 + xml:space="preserve" 92.1577 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.1578 + x="262.3013" 92.1579 + y="692.12494" 92.1580 + id="text10126" 92.1581 + sodipodi:linespacing="100%"><tspan 92.1582 + style="font-size:8px;text-align:end;text-anchor:end" 92.1583 + sodipodi:role="line" 92.1584 + x="262.3013" 92.1585 + y="692.12494" 92.1586 + id="tspan10128">suspend</tspan></text> 92.1587 + <text 92.1588 + sodipodi:linespacing="100%" 92.1589 + id="text10130" 92.1590 + y="606.09192" 92.1591 + x="258.67368" 92.1592 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.1593 + xml:space="preserve" 92.1594 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 92.1595 + id="tspan10132" 92.1596 + y="606.09192" 92.1597 + x="258.67368" 92.1598 + sodipodi:role="line" 92.1599 + style="font-size:8px;text-align:end;text-anchor:end">start</tspan></text> 92.1600 + <text 92.1601 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 92.1602 + xml:space="preserve" 92.1603 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.1604 + x="260.10779" 92.1605 + y="752.12427" 92.1606 + id="text10134" 92.1607 + sodipodi:linespacing="100%"><tspan 92.1608 + style="font-size:8px;text-align:end;text-anchor:end" 92.1609 + sodipodi:role="line" 92.1610 + x="260.10779" 92.1611 + y="752.12427" 92.1612 + id="tspan10136">resume</tspan></text> 92.1613 + <text 92.1614 + xml:space="preserve" 92.1615 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.1616 + x="136.99219" 92.1617 + y="307.42465" 92.1618 + id="text10146" 92.1619 + sodipodi:linespacing="100%"><tspan 92.1620 + style="text-align:center;text-anchor:middle;fill:#800000" 92.1621 + sodipodi:role="line" 92.1622 + x="138.49609" 92.1623 + y="307.42465" 92.1624 + id="tspan10148">Language </tspan><tspan 92.1625 + id="tspan10150" 92.1626 + style="text-align:center;text-anchor:middle;fill:#800000" 92.1627 + sodipodi:role="line" 92.1628 + x="136.99219" 92.1629 + y="317.42465">Plugin</tspan><tspan 92.1630 + id="tspan10152" 92.1631 + style="text-align:center;text-anchor:middle;fill:#800000" 92.1632 + sodipodi:role="line" 92.1633 + x="136.99219" 92.1634 + y="327.42465">Code</tspan></text> 92.1635 + <text 92.1636 + xml:space="preserve" 92.1637 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.1638 + x="203.16797" 92.1639 + y="307.42465" 92.1640 + id="text10154" 92.1641 + sodipodi:linespacing="100%"><tspan 92.1642 + style="text-align:center;text-anchor:middle;fill:#000080" 92.1643 + sodipodi:role="line" 92.1644 + x="203.16797" 92.1645 + y="307.42465" 92.1646 + id="tspan10156">Proto-Runtime</tspan><tspan 92.1647 + style="text-align:center;text-anchor:middle;fill:#000080" 92.1648 + sodipodi:role="line" 92.1649 + x="203.16797" 92.1650 + y="317.42465" 92.1651 + id="tspan10158">Master</tspan><tspan 92.1652 + id="tspan10160" 92.1653 + style="text-align:center;text-anchor:middle;fill:#000080" 92.1654 + sodipodi:role="line" 92.1655 + x="203.16797" 92.1656 + y="327.42465">Code</tspan></text> 92.1657 + <path 92.1658 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 92.1659 + d="m 205.05995,424.02605 c -67.19099,0 -67.19099,0 -67.19099,0" 92.1660 + id="path10162" 92.1661 + inkscape:connector-curvature="0" /> 92.1662 + <path 92.1663 + inkscape:connector-curvature="0" 92.1664 + id="path10164" 92.1665 + d="m 137.04459,474.02605 c 67.19099,0 67.19099,0 67.19099,0" 92.1666 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 92.1667 + <path 92.1668 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 92.1669 + d="m 67.525286,448.02605 c 69.221574,0 69.221574,0 69.221574,0" 92.1670 + id="path10166" 92.1671 + inkscape:connector-curvature="0" /> 92.1672 + <path 92.1673 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 92.1674 + d="m 67.27805,435.85824 c 0,13.94668 0,13.94668 0,13.94668" 92.1675 + id="path10168" 92.1676 + inkscape:connector-curvature="0" 92.1677 + sodipodi:nodetypes="cc" /> 92.1678 + <path 92.1679 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 92.1680 + d="m 137.04459,450.02605 c 67.19099,0 67.19099,0 67.19099,0" 92.1681 + id="path10172" 92.1682 + inkscape:connector-curvature="0" /> 92.1683 + <path 92.1684 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 92.1685 + d="m 205.27805,450.63926 c 0,11.23237 0,11.23237 0,11.23237" 92.1686 + id="path10174" 92.1687 + inkscape:connector-curvature="0" 92.1688 + sodipodi:nodetypes="cc" /> 92.1689 + <path 92.1690 + inkscape:connector-curvature="0" 92.1691 + id="path10176" 92.1692 + d="m 205.05995,462.02605 c -67.19099,0 -67.19099,0 -67.19099,0" 92.1693 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 92.1694 + <text 92.1695 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)" 92.1696 + xml:space="preserve" 92.1697 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.1698 + x="189.17583" 92.1699 + y="464.4057" 92.1700 + id="text10178" 92.1701 + sodipodi:linespacing="100%"><tspan 92.1702 + style="font-size:7px;text-align:center;text-anchor:middle" 92.1703 + sodipodi:role="line" 92.1704 + x="189.17583" 92.1705 + y="464.4057" 92.1706 + id="tspan10180">call via Ptr to Dyn Lib Fn</tspan></text> 92.1707 + <path 92.1708 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 92.1709 + d="m 137.27805,461.85824 c 0,11.43122 0,11.43122 0,11.43122" 92.1710 + id="path10182" 92.1711 + inkscape:connector-curvature="0" 92.1712 + sodipodi:nodetypes="cc" /> 92.1713 + <text 92.1714 + sodipodi:linespacing="100%" 92.1715 + id="text10184" 92.1716 + y="426.41092" 92.1717 + x="188.54729" 92.1718 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.1719 + xml:space="preserve" 92.1720 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)"><tspan 92.1721 + id="tspan10186" 92.1722 + y="426.41092" 92.1723 + x="188.54729" 92.1724 + sodipodi:role="line" 92.1725 + style="font-size:7px;text-align:center;text-anchor:middle">call via Ptr to Dyn Lib Fn</tspan></text> 92.1726 + <text 92.1727 + sodipodi:linespacing="100%" 92.1728 + id="text10188" 92.1729 + y="629.42468" 92.1730 + x="137.31689" 92.1731 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.1732 + xml:space="preserve"><tspan 92.1733 + id="tspan10190" 92.1734 + y="629.42468" 92.1735 + x="137.31689" 92.1736 + sodipodi:role="line" 92.1737 + style="text-align:center;text-anchor:middle;fill:#800000">Lang Handler</tspan><tspan 92.1738 + id="tspan10192" 92.1739 + y="639.42468" 92.1740 + x="137.31689" 92.1741 + sodipodi:role="line" 92.1742 + style="text-align:center;text-anchor:middle;fill:#800000">for acq Mutex</tspan></text> 92.1743 + <path 92.1744 + sodipodi:nodetypes="cc" 92.1745 + inkscape:connector-curvature="0" 92.1746 + id="path10230" 92.1747 + d="m 205.27805,601.45805 c 0,3.23576 0,3.23576 0,3.23576" 92.1748 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 92.1749 + <path 92.1750 + inkscape:connector-curvature="0" 92.1751 + id="path4879" 92.1752 + d="m 465.78297,538.02605 c -193.92439,0 -193.92439,0 -193.92439,0" 92.1753 + style="fill:none;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 92.1754 + <path 92.1755 + inkscape:connector-curvature="0" 92.1756 + id="path5395" 92.1757 + d="m 466.19516,418.02605 c -193.92439,0 -193.92439,0 -193.92439,0" 92.1758 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 92.1759 + <path 92.1760 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 92.1761 + d="m 466.19516,638.02605 c -193.92439,0 -193.92439,0 -193.92439,0" 92.1762 + id="path5397" 92.1763 + inkscape:connector-curvature="0" /> 92.1764 + <path 92.1765 + inkscape:connector-curvature="0" 92.1766 + id="path5399" 92.1767 + d="m 466.19516,750.02605 c -193.92439,0 -193.92439,0 -193.92439,0" 92.1768 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 92.1769 + <path 92.1770 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 92.1771 + d="m 271.03421,692.02605 c 193.92439,0 193.92439,0 193.92439,0" 92.1772 + id="path5402" 92.1773 + inkscape:connector-curvature="0" /> 92.1774 + <text 92.1775 + sodipodi:linespacing="100%" 92.1776 + id="text5410" 92.1777 + y="671.42468" 92.1778 + x="137.68066" 92.1779 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.1780 + xml:space="preserve"><tspan 92.1781 + id="tspan5412" 92.1782 + y="671.42468" 92.1783 + x="137.68066" 92.1784 + sodipodi:role="line" 92.1785 + style="text-align:center;text-anchor:middle;fill:#800000">Assigner Fn</tspan></text> 92.1786 + <path 92.1787 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 92.1788 + d="m 205.27805,638.31985 c 0,7.35629 0,7.35629 0,7.35629" 92.1789 + id="path5420" 92.1790 + inkscape:connector-curvature="0" 92.1791 + sodipodi:nodetypes="cc" /> 92.1792 + <path 92.1793 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 92.1794 + d="m 205.05995,644.02605 c -67.19099,0 -67.19099,0 -67.19099,0" 92.1795 + id="path5422" 92.1796 + inkscape:connector-curvature="0" /> 92.1797 + <path 92.1798 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 92.1799 + d="m 137.27805,643.85824 c 0,11.43122 0,11.43122 0,11.43122" 92.1800 + id="path5424" 92.1801 + inkscape:connector-curvature="0" 92.1802 + sodipodi:nodetypes="cc" /> 92.1803 + <path 92.1804 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 92.1805 + d="m 205.27805,686.63925 c 0,4.54718 0,4.54718 0,4.54718" 92.1806 + id="path5428" 92.1807 + inkscape:connector-curvature="0" 92.1808 + sodipodi:nodetypes="cc" /> 92.1809 + <text 92.1810 + sodipodi:linespacing="100%" 92.1811 + id="text5430" 92.1812 + y="645.39423" 92.1813 + x="-335.13254" 92.1814 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.1815 + xml:space="preserve" 92.1816 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 92.1817 + id="tspan5432" 92.1818 + y="645.39423" 92.1819 + x="-335.13254" 92.1820 + sodipodi:role="line" 92.1821 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan><tspan 92.1822 + y="653.39423" 92.1823 + x="-335.13254" 92.1824 + sodipodi:role="line" 92.1825 + style="font-size:8px;text-align:center;text-anchor:middle" 92.1826 + id="tspan5434">and switch</tspan><tspan 92.1827 + y="661.39423" 92.1828 + x="-335.13254" 92.1829 + sodipodi:role="line" 92.1830 + style="font-size:8px;text-align:center;text-anchor:middle" 92.1831 + id="tspan5436">to app VP</tspan></text> 92.1832 + <path 92.1833 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 92.1834 + d="m 205.27805,638.31985 c 0,7.35629 0,7.35629 0,7.35629" 92.1835 + id="path5438" 92.1836 + inkscape:connector-curvature="0" 92.1837 + sodipodi:nodetypes="cc" /> 92.1838 + <path 92.1839 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 92.1840 + d="m 205.27805,638.31985 c 0,7.35629 0,7.35629 0,7.35629" 92.1841 + id="path5440" 92.1842 + inkscape:connector-curvature="0" 92.1843 + sodipodi:nodetypes="cc" /> 92.1844 + <text 92.1845 + sodipodi:linespacing="100%" 92.1846 + id="text5446" 92.1847 + y="592.84631" 92.1848 + x="-288.77386" 92.1849 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.1850 + xml:space="preserve" 92.1851 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 92.1852 + y="592.84631" 92.1853 + x="-288.77386" 92.1854 + sodipodi:role="line" 92.1855 + style="font-size:8px;text-align:center;text-anchor:middle" 92.1856 + id="tspan5448">return from</tspan><tspan 92.1857 + id="tspan5450" 92.1858 + y="600.84631" 92.1859 + x="-288.77386" 92.1860 + sodipodi:role="line" 92.1861 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan></text> 92.1862 + <path 92.1863 + inkscape:connector-curvature="0" 92.1864 + id="path5452" 92.1865 + d="m 205.05995,644.02605 c -67.19099,0 -67.19099,0 -67.19099,0" 92.1866 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 92.1867 + <path 92.1868 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 92.1869 + d="m 137.04459,686.02605 c 67.19099,0 67.19099,0 67.19099,0" 92.1870 + id="path5454" 92.1871 + inkscape:connector-curvature="0" /> 92.1872 + <path 92.1873 + inkscape:connector-curvature="0" 92.1874 + id="path5460" 92.1875 + d="m 137.04459,658.02605 c 67.19099,0 67.19099,0 67.19099,0" 92.1876 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 92.1877 + <path 92.1878 + sodipodi:nodetypes="cc" 92.1879 + inkscape:connector-curvature="0" 92.1880 + id="path5462" 92.1881 + d="m 205.27805,658.63927 c 0,14.88618 0,14.88618 0,14.88618" 92.1882 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 92.1883 + <path 92.1884 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 92.1885 + d="m 205.05995,674.02605 c -67.19099,0 -67.19099,0 -67.19099,0" 92.1886 + id="path5464" 92.1887 + inkscape:connector-curvature="0" /> 92.1888 + <text 92.1889 + sodipodi:linespacing="100%" 92.1890 + id="text5466" 92.1891 + y="676.37714" 92.1892 + x="192.68279" 92.1893 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.1894 + xml:space="preserve" 92.1895 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)"><tspan 92.1896 + id="tspan5468" 92.1897 + y="676.37714" 92.1898 + x="192.68279" 92.1899 + sodipodi:role="line" 92.1900 + style="font-size:7px;text-align:center;text-anchor:middle">call via Ptr to Dyn Lib Fn</tspan></text> 92.1901 + <path 92.1902 + sodipodi:nodetypes="cc" 92.1903 + inkscape:connector-curvature="0" 92.1904 + id="path5470" 92.1905 + d="m 137.27805,673.85824 c 0,11.43122 0,11.43122 0,11.43122" 92.1906 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 92.1907 + <text 92.1908 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)" 92.1909 + xml:space="preserve" 92.1910 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.1911 + x="192.18657" 92.1912 + y="646.38098" 92.1913 + id="text5472" 92.1914 + sodipodi:linespacing="100%"><tspan 92.1915 + style="font-size:7px;text-align:center;text-anchor:middle" 92.1916 + sodipodi:role="line" 92.1917 + x="192.18657" 92.1918 + y="646.38098" 92.1919 + id="tspan5474">call via Ptr to Dyn Lib Fn</tspan></text> 92.1920 + <text 92.1921 + sodipodi:linespacing="100%" 92.1922 + id="text5476" 92.1923 + y="597.08801" 92.1924 + x="-60.107929" 92.1925 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.1926 + xml:space="preserve" 92.1927 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 92.1928 + y="597.08801" 92.1929 + x="-60.107929" 92.1930 + sodipodi:role="line" 92.1931 + style="font-size:18px;text-align:center;text-anchor:middle" 92.1932 + id="tspan5482">core 1</tspan></text> 92.1933 + <text 92.1934 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 92.1935 + xml:space="preserve" 92.1936 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.1937 + x="-208.35422" 92.1938 + y="748.6394" 92.1939 + id="text5488" 92.1940 + sodipodi:linespacing="100%"><tspan 92.1941 + id="tspan5490" 92.1942 + style="font-size:18px;text-align:center;text-anchor:middle" 92.1943 + sodipodi:role="line" 92.1944 + x="-208.35422" 92.1945 + y="748.6394">core 2</tspan></text> 92.1946 + <path 92.1947 + sodipodi:nodetypes="cc" 92.1948 + inkscape:connector-curvature="0" 92.1949 + id="path5492" 92.1950 + d="m 205.27805,752.31985 c 0,7.35629 0,7.35629 0,7.35629" 92.1951 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 92.1952 + <path 92.1953 + sodipodi:nodetypes="cc" 92.1954 + inkscape:connector-curvature="0" 92.1955 + id="path5494" 92.1956 + d="m 205.27805,752.31985 c 0,7.35629 0,7.35629 0,7.35629" 92.1957 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 92.1958 + <path 92.1959 + sodipodi:nodetypes="cc" 92.1960 + inkscape:connector-curvature="0" 92.1961 + id="path5496" 92.1962 + d="m 205.27805,752.31985 c 0,7.35629 0,7.35629 0,7.35629" 92.1963 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 92.1964 + <text 92.1965 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 92.1966 + xml:space="preserve" 92.1967 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.1968 + x="-368.06558" 92.1969 + y="674.7525" 92.1970 + id="text5498" 92.1971 + sodipodi:linespacing="100%"><tspan 92.1972 + id="tspan5500" 92.1973 + style="font-size:8px;text-align:center;text-anchor:middle" 92.1974 + sodipodi:role="line" 92.1975 + x="-368.06558" 92.1976 + y="674.7525">return from</tspan><tspan 92.1977 + style="font-size:8px;text-align:center;text-anchor:middle" 92.1978 + sodipodi:role="line" 92.1979 + x="-368.06558" 92.1980 + y="682.7525" 92.1981 + id="tspan5502">suspend</tspan></text> 92.1982 + <path 92.1983 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 92.1984 + d="m 205.27805,538.31985 c 0,7.35629 0,7.35629 0,7.35629" 92.1985 + id="path5504" 92.1986 + inkscape:connector-curvature="0" 92.1987 + sodipodi:nodetypes="cc" /> 92.1988 + <path 92.1989 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 92.1990 + d="m 205.27805,538.31985 c 0,7.35629 0,7.35629 0,7.35629" 92.1991 + id="path5506" 92.1992 + inkscape:connector-curvature="0" 92.1993 + sodipodi:nodetypes="cc" /> 92.1994 + <path 92.1995 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 92.1996 + d="m 205.27805,538.31985 c 0,7.35629 0,7.35629 0,7.35629" 92.1997 + id="path5508" 92.1998 + inkscape:connector-curvature="0" 92.1999 + sodipodi:nodetypes="cc" /> 92.2000 + <text 92.2001 + sodipodi:linespacing="100%" 92.2002 + id="text5510" 92.2003 + y="520.99878" 92.2004 + x="-219.21922" 92.2005 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 92.2006 + xml:space="preserve" 92.2007 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 92.2008 + y="520.99878" 92.2009 + x="-219.21922" 92.2010 + sodipodi:role="line" 92.2011 + style="font-size:8px;text-align:center;text-anchor:middle" 92.2012 + id="tspan5512">return from</tspan><tspan 92.2013 + id="tspan5514" 92.2014 + y="528.99878" 92.2015 + x="-219.21922" 92.2016 + sodipodi:role="line" 92.2017 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan></text> 92.2018 + <path 92.2019 + inkscape:connector-curvature="0" 92.2020 + id="path5516" 92.2021 + d="m 271.03421,604.02605 c 193.92439,0 193.92439,0 193.92439,0" 92.2022 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 92.2023 + <path 92.2024 + style="fill:#ff0000;stroke:#ff0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 92.2025 + d="m 271.03421,384.02605 c 193.92439,0 193.92439,0 193.92439,0" 92.2026 + id="path5518" 92.2027 + inkscape:connector-curvature="0" /> 92.2028 + </g> 92.2029 +</svg>
93.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 93.2 +++ b/0__Papers/VMS/VMS__Foundation_Paper/VMS__Full_conference_version/figures/Proto-Runtime__modules_plus_plugin_plus_code_back.svg Sat Aug 03 19:24:22 2013 -0700 93.3 @@ -0,0 +1,1678 @@ 93.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 93.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 93.6 + 93.7 +<svg 93.8 + xmlns:dc="http://purl.org/dc/elements/1.1/" 93.9 + xmlns:cc="http://creativecommons.org/ns#" 93.10 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 93.11 + xmlns:svg="http://www.w3.org/2000/svg" 93.12 + xmlns="http://www.w3.org/2000/svg" 93.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 93.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 93.15 + width="744.09448819" 93.16 + height="1052.3622047" 93.17 + id="svg2" 93.18 + sodipodi:version="0.32" 93.19 + inkscape:version="0.48.2 r9819" 93.20 + sodipodi:docname="Proto-Runtime__modules_plus_plugin_plus_code.svg" 93.21 + inkscape:output_extension="org.inkscape.output.svg.inkscape" 93.22 + version="1.1"> 93.23 + <defs 93.24 + id="defs4"> 93.25 + <marker 93.26 + inkscape:stockid="Arrow2Mend" 93.27 + orient="auto" 93.28 + refY="0.0" 93.29 + refX="0.0" 93.30 + id="Arrow2Mend" 93.31 + style="overflow:visible;"> 93.32 + <path 93.33 + id="path4008" 93.34 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 93.35 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 93.36 + transform="scale(0.6) rotate(180) translate(0,0)" /> 93.37 + </marker> 93.38 + <inkscape:perspective 93.39 + sodipodi:type="inkscape:persp3d" 93.40 + inkscape:vp_x="0 : 526.18109 : 1" 93.41 + inkscape:vp_y="0 : 1000 : 0" 93.42 + inkscape:vp_z="744.09448 : 526.18109 : 1" 93.43 + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" 93.44 + id="perspective10" /> 93.45 + <inkscape:perspective 93.46 + id="perspective12172" 93.47 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 93.48 + inkscape:vp_z="1 : 0.5 : 1" 93.49 + inkscape:vp_y="0 : 1000 : 0" 93.50 + inkscape:vp_x="0 : 0.5 : 1" 93.51 + sodipodi:type="inkscape:persp3d" /> 93.52 + <inkscape:perspective 93.53 + id="perspective12937" 93.54 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 93.55 + inkscape:vp_z="1 : 0.5 : 1" 93.56 + inkscape:vp_y="0 : 1000 : 0" 93.57 + inkscape:vp_x="0 : 0.5 : 1" 93.58 + sodipodi:type="inkscape:persp3d" /> 93.59 + </defs> 93.60 + <sodipodi:namedview 93.61 + id="base" 93.62 + pagecolor="#ffffff" 93.63 + bordercolor="#666666" 93.64 + borderopacity="1.0" 93.65 + gridtolerance="10000" 93.66 + guidetolerance="10" 93.67 + objecttolerance="10" 93.68 + inkscape:pageopacity="0.0" 93.69 + inkscape:pageshadow="2" 93.70 + inkscape:zoom="1.553811" 93.71 + inkscape:cx="311.64997" 93.72 + inkscape:cy="481.64087" 93.73 + inkscape:document-units="px" 93.74 + inkscape:current-layer="layer1" 93.75 + showgrid="false" 93.76 + inkscape:window-width="1600" 93.77 + inkscape:window-height="848" 93.78 + inkscape:window-x="-8" 93.79 + inkscape:window-y="-8" 93.80 + inkscape:window-maximized="1" /> 93.81 + <metadata 93.82 + id="metadata7"> 93.83 + <rdf:RDF> 93.84 + <cc:Work 93.85 + rdf:about=""> 93.86 + <dc:format>image/svg+xml</dc:format> 93.87 + <dc:type 93.88 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 93.89 + <dc:title></dc:title> 93.90 + </cc:Work> 93.91 + </rdf:RDF> 93.92 + </metadata> 93.93 + <g 93.94 + inkscape:label="Layer 1" 93.95 + inkscape:groupmode="layer" 93.96 + id="layer1"> 93.97 + <rect 93.98 + y="757.82239" 93.99 + x="-46.677368" 93.100 + height="69.307014" 93.101 + width="137.26534" 93.102 + id="rect12977" 93.103 + style="opacity:0.41346154;fill:none;stroke:#800000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:4.32072507, 4.32072507;stroke-dashoffset:0" /> 93.104 + <text 93.105 + sodipodi:linespacing="100%" 93.106 + id="text12979" 93.107 + y="399.76575" 93.108 + x="228.92543" 93.109 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.110 + xml:space="preserve"><tspan 93.111 + y="399.76575" 93.112 + x="228.92543" 93.113 + id="tspan12981" 93.114 + sodipodi:role="line" 93.115 + style="text-align:center;text-anchor:middle">Master</tspan><tspan 93.116 + y="408.20053" 93.117 + x="228.92543" 93.118 + sodipodi:role="line" 93.119 + id="tspan3291" 93.120 + style="font-size:8px;text-align:center;text-anchor:middle">(runtime system)</tspan><tspan 93.121 + y="416.20053" 93.122 + x="228.92543" 93.123 + sodipodi:role="line" 93.124 + style="font-size:8px;text-align:center;text-anchor:middle" 93.125 + id="tspan8409">on core 1</tspan></text> 93.126 + <text 93.127 + sodipodi:linespacing="100%" 93.128 + id="text12985" 93.129 + y="787.55029" 93.130 + x="-10.998383" 93.131 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;opacity:0.41346154;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.132 + xml:space="preserve"><tspan 93.133 + y="787.55029" 93.134 + x="-10.998383" 93.135 + sodipodi:role="line" 93.136 + id="tspan12989" 93.137 + style="text-align:center;text-anchor:middle">Construct</tspan><tspan 93.138 + id="tspan3147" 93.139 + y="797.55029" 93.140 + x="-10.998383" 93.141 + sodipodi:role="line" 93.142 + style="text-align:center;text-anchor:middle">Semantics</tspan><tspan 93.143 + id="tspan3149" 93.144 + y="807.55029" 93.145 + x="-10.998383" 93.146 + sodipodi:role="line" 93.147 + style="text-align:center;text-anchor:middle">Module</tspan></text> 93.148 + <rect 93.149 + style="opacity:0.41346154;fill:none;stroke:#000000;stroke-width:1.08018136;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 93.150 + id="rect12971" 93.151 + width="131.7012" 93.152 + height="52.250008" 93.153 + x="-43.698822" 93.154 + y="835.43658" /> 93.155 + <text 93.156 + xml:space="preserve" 93.157 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;opacity:0.41346154;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.158 + x="22.334869" 93.159 + y="855.20319" 93.160 + id="text12973" 93.161 + sodipodi:linespacing="100%"><tspan 93.162 + sodipodi:role="line" 93.163 + id="tspan12975" 93.164 + x="22.334869" 93.165 + y="855.20319" 93.166 + style="text-align:center;text-anchor:middle">Hardware Specific Module</tspan><tspan 93.167 + sodipodi:role="line" 93.168 + x="22.334869" 93.169 + y="865.20319" 93.170 + style="text-align:center;text-anchor:middle" 93.171 + id="tspan3155" /><tspan 93.172 + sodipodi:role="line" 93.173 + x="22.334869" 93.174 + y="873.63794" 93.175 + id="tspan3089" 93.176 + style="font-size:8px;text-align:center;text-anchor:middle">(Proto-Runtime)</tspan></text> 93.177 + <text 93.178 + sodipodi:linespacing="100%" 93.179 + id="text12985-7" 93.180 + y="787.52588" 93.181 + x="55.148102" 93.182 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;opacity:0.41346154;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.183 + xml:space="preserve"><tspan 93.184 + y="787.52588" 93.185 + x="55.148102" 93.186 + id="tspan12987-4" 93.187 + sodipodi:role="line" 93.188 + style="text-align:center;text-anchor:middle">Assignment</tspan><tspan 93.189 + id="tspan3151" 93.190 + y="797.52588" 93.191 + x="55.148102" 93.192 + sodipodi:role="line" 93.193 + style="text-align:center;text-anchor:middle">of Work</tspan><tspan 93.194 + y="807.52588" 93.195 + x="55.148102" 93.196 + sodipodi:role="line" 93.197 + id="tspan12989-0" 93.198 + style="text-align:center;text-anchor:middle">onto Cores</tspan><tspan 93.199 + id="tspan3153" 93.200 + y="817.52588" 93.201 + x="55.148102" 93.202 + sodipodi:role="line" 93.203 + style="text-align:center;text-anchor:middle">Module</tspan></text> 93.204 + <text 93.205 + xml:space="preserve" 93.206 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;opacity:0.41346154;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.207 + x="19.256409" 93.208 + y="766.65723" 93.209 + id="text12985-8" 93.210 + sodipodi:linespacing="100%"><tspan 93.211 + style="text-align:center;text-anchor:middle;fill:#800000" 93.212 + id="tspan12989-4" 93.213 + sodipodi:role="line" 93.214 + x="19.256409" 93.215 + y="766.65723">Language Plug-in</tspan></text> 93.216 + <text 93.217 + xml:space="preserve" 93.218 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;opacity:0.41346154;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.219 + x="22.390198" 93.220 + y="833.19415" 93.221 + id="text12973-5" 93.222 + sodipodi:linespacing="100%"><tspan 93.223 + sodipodi:role="line" 93.224 + x="22.390198" 93.225 + y="833.19415" 93.226 + id="tspan3089-7" 93.227 + style="font-size:8px;text-align:center;text-anchor:middle">Hardware Abstraction Interface</tspan></text> 93.228 + <rect 93.229 + y="-835.43658" 93.230 + x="-43.698822" 93.231 + height="9.1641436" 93.232 + width="131.7012" 93.233 + id="rect3204" 93.234 + style="opacity:0.41346154;fill:none;stroke:#000000;stroke-width:1.08018136;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 93.235 + transform="scale(1,-1)" /> 93.236 + <rect 93.237 + style="opacity:0.41346154;fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 93.238 + id="rect3217" 93.239 + width="65.276405" 93.240 + height="52.250008" 93.241 + x="-43.597527" 93.242 + y="773.58252" /> 93.243 + <rect 93.244 + y="773.58252" 93.245 + x="22.402473" 93.246 + height="52.250008" 93.247 + width="65.276405" 93.248 + id="rect3219" 93.249 + style="opacity:0.41346154;fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 93.250 + <g 93.251 + id="g3303" 93.252 + transform="translate(-16,76)"> 93.253 + <rect 93.254 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 93.255 + id="rect3293" 93.256 + width="65.276405" 93.257 + height="52.250008" 93.258 + x="310.40247" 93.259 + y="313.58255" /> 93.260 + <text 93.261 + sodipodi:linespacing="100%" 93.262 + id="text3295" 93.263 + y="327.55026" 93.264 + x="343.00162" 93.265 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.266 + xml:space="preserve"><tspan 93.267 + id="tspan3301" 93.268 + y="327.55026" 93.269 + x="343.00162" 93.270 + sodipodi:role="line" 93.271 + style="text-align:center;text-anchor:middle">Seed VP</tspan></text> 93.272 + </g> 93.273 + <g 93.274 + id="g3314" 93.275 + transform="translate(-16,222)"> 93.276 + <rect 93.277 + y="313.58255" 93.278 + x="310.40247" 93.279 + height="52.250008" 93.280 + width="65.276405" 93.281 + id="rect3316" 93.282 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 93.283 + <text 93.284 + xml:space="preserve" 93.285 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.286 + x="343.00162" 93.287 + y="327.55026" 93.288 + id="text3318" 93.289 + sodipodi:linespacing="100%"><tspan 93.290 + style="text-align:center;text-anchor:middle" 93.291 + sodipodi:role="line" 93.292 + x="343.00162" 93.293 + y="327.55026" 93.294 + id="tspan3320">VP created</tspan><tspan 93.295 + style="text-align:center;text-anchor:middle" 93.296 + sodipodi:role="line" 93.297 + x="343.00162" 93.298 + y="337.55026" 93.299 + id="tspan3322">by Application</tspan><tspan 93.300 + style="text-align:center;text-anchor:middle" 93.301 + sodipodi:role="line" 93.302 + x="343.00162" 93.303 + y="347.55026" 93.304 + id="tspan5485">1</tspan></text> 93.305 + </g> 93.306 + <g 93.307 + transform="translate(-16,372)" 93.308 + id="g3340"> 93.309 + <rect 93.310 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 93.311 + id="rect3342" 93.312 + width="65.276405" 93.313 + height="52.250008" 93.314 + x="310.40247" 93.315 + y="313.58255" /> 93.316 + <text 93.317 + sodipodi:linespacing="100%" 93.318 + id="text3344" 93.319 + y="327.55026" 93.320 + x="343.00162" 93.321 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.322 + xml:space="preserve"><tspan 93.323 + id="tspan3346" 93.324 + y="327.55026" 93.325 + x="343.00162" 93.326 + sodipodi:role="line" 93.327 + style="text-align:center;text-anchor:middle">VP created</tspan><tspan 93.328 + id="tspan3348" 93.329 + y="337.55026" 93.330 + x="343.00162" 93.331 + sodipodi:role="line" 93.332 + style="text-align:center;text-anchor:middle">by Application</tspan><tspan 93.333 + y="347.55026" 93.334 + x="343.00162" 93.335 + sodipodi:role="line" 93.336 + style="text-align:center;text-anchor:middle" 93.337 + id="tspan5487">2</tspan></text> 93.338 + </g> 93.339 + <text 93.340 + xml:space="preserve" 93.341 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.342 + x="419.16797" 93.343 + y="363.42465" 93.344 + id="text3318-1" 93.345 + sodipodi:linespacing="100%"><tspan 93.346 + style="text-align:center;text-anchor:middle;fill:#008000" 93.347 + sodipodi:role="line" 93.348 + x="419.16797" 93.349 + y="363.42465" 93.350 + id="tspan3322-5">Application Code</tspan></text> 93.351 + <text 93.352 + sodipodi:linespacing="100%" 93.353 + id="text3376" 93.354 + y="403.42465" 93.355 + x="419.16797" 93.356 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.357 + xml:space="preserve"><tspan 93.358 + id="tspan3378" 93.359 + y="403.42465" 93.360 + x="419.16797" 93.361 + sodipodi:role="line" 93.362 + style="text-align:center;text-anchor:middle;fill:#008000">Seed_Fn</tspan></text> 93.363 + <text 93.364 + xml:space="preserve" 93.365 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.366 + x="419.16797" 93.367 + y="563.42468" 93.368 + id="text3380" 93.369 + sodipodi:linespacing="100%"><tspan 93.370 + style="text-align:center;text-anchor:middle;fill:#008000" 93.371 + sodipodi:role="line" 93.372 + x="419.16797" 93.373 + y="563.42468" 93.374 + id="tspan3382">Work_Fn</tspan></text> 93.375 + <text 93.376 + sodipodi:linespacing="100%" 93.377 + id="text3388" 93.378 + y="363.42465" 93.379 + x="506.63812" 93.380 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.381 + xml:space="preserve"><tspan 93.382 + id="tspan3390" 93.383 + y="363.42465" 93.384 + x="508.14203" 93.385 + sodipodi:role="line" 93.386 + style="text-align:center;text-anchor:middle;fill:#800000">Language </tspan><tspan 93.387 + y="373.42465" 93.388 + x="506.63812" 93.389 + sodipodi:role="line" 93.390 + style="text-align:center;text-anchor:middle;fill:#800000" 93.391 + id="tspan5106">Wrapper-Lib</tspan><tspan 93.392 + y="383.42465" 93.393 + x="506.63812" 93.394 + sodipodi:role="line" 93.395 + style="text-align:center;text-anchor:middle;fill:#800000" 93.396 + id="tspan3392">Code</tspan></text> 93.397 + <text 93.398 + xml:space="preserve" 93.399 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.400 + x="571.16797" 93.401 + y="363.42465" 93.402 + id="text3394" 93.403 + sodipodi:linespacing="100%"><tspan 93.404 + style="text-align:center;text-anchor:middle;fill:#000080" 93.405 + sodipodi:role="line" 93.406 + x="571.16797" 93.407 + y="363.42465" 93.408 + id="tspan3396">Proto-Runtime</tspan><tspan 93.409 + style="text-align:center;text-anchor:middle;fill:#000080" 93.410 + sodipodi:role="line" 93.411 + x="571.16797" 93.412 + y="373.42465" 93.413 + id="tspan4998">Primitive</tspan><tspan 93.414 + id="tspan3398" 93.415 + style="text-align:center;text-anchor:middle;fill:#000080" 93.416 + sodipodi:role="line" 93.417 + x="571.16797" 93.418 + y="383.42465">Code</tspan></text> 93.419 + <text 93.420 + sodipodi:linespacing="100%" 93.421 + id="text3400" 93.422 + y="363.42465" 93.423 + x="131.16797" 93.424 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.425 + xml:space="preserve"><tspan 93.426 + id="tspan3402" 93.427 + y="363.42465" 93.428 + x="131.16797" 93.429 + sodipodi:role="line" 93.430 + style="text-align:center;text-anchor:middle;fill:#800000">Language Plugin</tspan><tspan 93.431 + y="373.42465" 93.432 + x="131.16797" 93.433 + sodipodi:role="line" 93.434 + style="text-align:center;text-anchor:middle;fill:#800000" 93.435 + id="tspan3404">Code</tspan></text> 93.436 + <text 93.437 + xml:space="preserve" 93.438 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.439 + x="47.167969" 93.440 + y="363.42465" 93.441 + id="text3406" 93.442 + sodipodi:linespacing="100%"><tspan 93.443 + style="text-align:center;text-anchor:middle" 93.444 + sodipodi:role="line" 93.445 + x="47.167969" 93.446 + y="363.42465" 93.447 + id="tspan3408">Proto-Runtime</tspan><tspan 93.448 + id="tspan3410" 93.449 + style="text-align:center;text-anchor:middle" 93.450 + sodipodi:role="line" 93.451 + x="47.167969" 93.452 + y="373.42465">Code</tspan></text> 93.453 + <text 93.454 + xml:space="preserve" 93.455 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.456 + x="131.19971" 93.457 + y="413.42465" 93.458 + id="text3412" 93.459 + sodipodi:linespacing="100%"><tspan 93.460 + style="text-align:center;text-anchor:middle;fill:#800000" 93.461 + sodipodi:role="line" 93.462 + x="131.19971" 93.463 + y="413.42465" 93.464 + id="tspan3414">Handler</tspan><tspan 93.465 + style="text-align:center;text-anchor:middle;fill:#800000" 93.466 + sodipodi:role="line" 93.467 + x="131.19971" 93.468 + y="423.42465" 93.469 + id="tspan3422">for create VP</tspan></text> 93.470 + <text 93.471 + sodipodi:linespacing="100%" 93.472 + id="text3424" 93.473 + y="493.42465" 93.474 + x="131.19971" 93.475 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.476 + xml:space="preserve"><tspan 93.477 + id="tspan3426" 93.478 + y="493.42465" 93.479 + x="131.19971" 93.480 + sodipodi:role="line" 93.481 + style="text-align:center;text-anchor:middle;fill:#800000">Handler</tspan><tspan 93.482 + id="tspan3428" 93.483 + y="503.42465" 93.484 + x="131.19971" 93.485 + sodipodi:role="line" 93.486 + style="text-align:center;text-anchor:middle;fill:#800000">for Language</tspan><tspan 93.487 + id="tspan3430" 93.488 + y="513.42468" 93.489 + x="131.19971" 93.490 + sodipodi:role="line" 93.491 + style="text-align:center;text-anchor:middle;fill:#800000">Construct2</tspan></text> 93.492 + <text 93.493 + xml:space="preserve" 93.494 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.495 + x="47.661133" 93.496 + y="403.42465" 93.497 + id="text3432" 93.498 + sodipodi:linespacing="100%"><tspan 93.499 + style="text-align:center;text-anchor:middle" 93.500 + sodipodi:role="line" 93.501 + x="47.661133" 93.502 + y="403.42465" 93.503 + id="tspan3438">Master Fn</tspan></text> 93.504 + <text 93.505 + xml:space="preserve" 93.506 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.507 + x="131.52441" 93.508 + y="539.42468" 93.509 + id="text3444" 93.510 + sodipodi:linespacing="100%"><tspan 93.511 + style="text-align:center;text-anchor:middle;fill:#800000" 93.512 + sodipodi:role="line" 93.513 + x="131.52441" 93.514 + y="539.42468" 93.515 + id="tspan3450">Assigner Fn</tspan></text> 93.516 + <text 93.517 + xml:space="preserve" 93.518 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.519 + x="229.16797" 93.520 + y="365.42465" 93.521 + id="text3456" 93.522 + sodipodi:linespacing="100%"><tspan 93.523 + style="text-align:center;text-anchor:middle" 93.524 + sodipodi:role="line" 93.525 + x="230.67188" 93.526 + y="365.42465" 93.527 + id="tspan3458">Instances of </tspan><tspan 93.528 + style="text-align:center;text-anchor:middle" 93.529 + sodipodi:role="line" 93.530 + x="229.16797" 93.531 + y="375.42465" 93.532 + id="tspan8405">runtime system</tspan><tspan 93.533 + id="tspan3460" 93.534 + style="text-align:center;text-anchor:middle" 93.535 + sodipodi:role="line" 93.536 + x="229.16797" 93.537 + y="385.42465" /></text> 93.538 + <text 93.539 + sodipodi:linespacing="100%" 93.540 + id="text3462" 93.541 + y="363.42465" 93.542 + x="325.16797" 93.543 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.544 + xml:space="preserve"><tspan 93.545 + id="tspan3464" 93.546 + y="363.42465" 93.547 + x="325.16797" 93.548 + sodipodi:role="line" 93.549 + style="text-align:center;text-anchor:middle">Instances of</tspan><tspan 93.550 + y="373.42465" 93.551 + x="325.16797" 93.552 + sodipodi:role="line" 93.553 + style="text-align:center;text-anchor:middle" 93.554 + id="tspan3468">Virtual Processors</tspan><tspan 93.555 + y="383.42465" 93.556 + x="325.16797" 93.557 + sodipodi:role="line" 93.558 + style="text-align:center;text-anchor:middle" 93.559 + id="tspan3466" /></text> 93.560 + <path 93.561 + inkscape:connector-curvature="0" 93.562 + id="path4796" 93.563 + d="m 359.32649,400.02605 c 38.42351,0 38.42351,0 38.42351,0" 93.564 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999996, 2.99999996;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 93.565 + <text 93.566 + xml:space="preserve" 93.567 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.568 + x="506.78461" 93.569 + y="397.42465" 93.570 + id="text4988" 93.571 + sodipodi:linespacing="100%"><tspan 93.572 + style="text-align:center;text-anchor:middle;fill:#800000" 93.573 + sodipodi:role="line" 93.574 + x="506.78461" 93.575 + y="397.42465" 93.576 + id="tspan4990">create VP</tspan><tspan 93.577 + style="text-align:center;text-anchor:middle;fill:#800000" 93.578 + sodipodi:role="line" 93.579 + x="506.78461" 93.580 + y="407.42465" 93.581 + id="tspan5104">wrapper Fn</tspan></text> 93.582 + <path 93.583 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 93.584 + d="m 48.02904,406.29842 c 0,7.37773 0,7.37773 0,7.37773" 93.585 + id="path4996" 93.586 + inkscape:connector-curvature="0" 93.587 + sodipodi:nodetypes="cc" /> 93.588 + <path 93.589 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 93.590 + d="m 48.247131,414.02605 c 48.887624,0 48.887624,0 48.887624,0" 93.591 + id="path5000" 93.592 + inkscape:connector-curvature="0" /> 93.593 + <path 93.594 + inkscape:connector-curvature="0" 93.595 + id="path5002" 93.596 + d="m 98.156891,426.02605 c -51.085387,0 -51.085387,0 -51.085387,0" 93.597 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 93.598 + <path 93.599 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 93.600 + d="m 98.02904,412.63925 c 0,13.68455 0,13.68455 0,13.68455" 93.601 + id="path5006" 93.602 + inkscape:connector-curvature="0" 93.603 + sodipodi:nodetypes="cc" /> 93.604 + <text 93.605 + sodipodi:linespacing="100%" 93.606 + id="text5012" 93.607 + y="455.42465" 93.608 + x="131.19971" 93.609 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.610 + xml:space="preserve"><tspan 93.611 + id="tspan5014" 93.612 + y="455.42465" 93.613 + x="131.19971" 93.614 + sodipodi:role="line" 93.615 + style="text-align:center;text-anchor:middle;fill:#800000">Handler</tspan><tspan 93.616 + id="tspan5016" 93.617 + y="465.42465" 93.618 + x="131.19971" 93.619 + sodipodi:role="line" 93.620 + style="text-align:center;text-anchor:middle;fill:#800000">for Language</tspan><tspan 93.621 + id="tspan5018" 93.622 + y="475.42465" 93.623 + x="131.19971" 93.624 + sodipodi:role="line" 93.625 + style="text-align:center;text-anchor:middle;fill:#800000">Construct1</tspan></text> 93.626 + <path 93.627 + sodipodi:nodetypes="cc" 93.628 + inkscape:connector-curvature="0" 93.629 + id="path5020" 93.630 + d="m 48.02904,426.51232 c 0,29.16381 0,29.16381 0,29.16381" 93.631 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 93.632 + <path 93.633 + inkscape:connector-curvature="0" 93.634 + id="path5022" 93.635 + d="m 48.247131,456.02605 c 48.887624,0 48.887624,0 48.887624,0" 93.636 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 93.637 + <path 93.638 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 93.639 + d="m 98.156891,468.02605 c -51.085387,0 -51.085387,0 -51.085387,0" 93.640 + id="path5024" 93.641 + inkscape:connector-curvature="0" /> 93.642 + <path 93.643 + sodipodi:nodetypes="cc" 93.644 + inkscape:connector-curvature="0" 93.645 + id="path5026" 93.646 + d="m 98.02904,454.63925 c 0,13.68455 0,13.68455 0,13.68455" 93.647 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 93.648 + <path 93.649 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 93.650 + d="m 48.02904,468.14337 c 0,25.5328 0,25.5328 0,25.5328" 93.651 + id="path5032" 93.652 + inkscape:connector-curvature="0" 93.653 + sodipodi:nodetypes="cc" /> 93.654 + <path 93.655 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 93.656 + d="m 48.247131,494.02605 c 48.887624,0 48.887624,0 48.887624,0" 93.657 + id="path5034" 93.658 + inkscape:connector-curvature="0" /> 93.659 + <path 93.660 + inkscape:connector-curvature="0" 93.661 + id="path5036" 93.662 + d="m 98.156891,506.02605 c -51.085387,0 -51.085387,0 -51.085387,0" 93.663 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 93.664 + <path 93.665 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 93.666 + d="m 98.02904,492.63925 c 0,13.68455 0,13.68455 0,13.68455" 93.667 + id="path5038" 93.668 + inkscape:connector-curvature="0" 93.669 + sodipodi:nodetypes="cc" /> 93.670 + <path 93.671 + sodipodi:nodetypes="cc" 93.672 + inkscape:connector-curvature="0" 93.673 + id="path5044" 93.674 + d="m 48.02904,506.56402 c 0,23.11212 0,23.11212 0,23.11212" 93.675 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 93.676 + <path 93.677 + inkscape:connector-curvature="0" 93.678 + id="path5046" 93.679 + d="m 48.247131,530.02605 c 48.887624,0 48.887624,0 48.887624,0" 93.680 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 93.681 + <path 93.682 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 93.683 + d="m 98.156891,542.02605 c -51.085387,0 -51.085387,0 -51.085387,0" 93.684 + id="path5048" 93.685 + inkscape:connector-curvature="0" /> 93.686 + <path 93.687 + sodipodi:nodetypes="cc" 93.688 + inkscape:connector-curvature="0" 93.689 + id="path5050" 93.690 + d="m 98.02904,528.63925 c 0,13.68455 0,13.68455 0,13.68455" 93.691 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 93.692 + <text 93.693 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)" 93.694 + xml:space="preserve" 93.695 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.696 + x="78.264717" 93.697 + y="410.23279" 93.698 + id="text5064" 93.699 + sodipodi:linespacing="100%"><tspan 93.700 + style="font-size:8px;text-align:center;text-anchor:middle" 93.701 + sodipodi:role="line" 93.702 + x="78.264717" 93.703 + y="410.23279" 93.704 + id="tspan5066">Call via Ptr</tspan></text> 93.705 + <path 93.706 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000003, 3.00000003;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 93.707 + d="m 193.99816,400.02605 c -117.505852,0 -117.505852,0 -117.505852,0" 93.708 + id="path5068" 93.709 + inkscape:connector-curvature="0" /> 93.710 + <text 93.711 + sodipodi:linespacing="100%" 93.712 + id="text5070" 93.713 + y="415.39398" 93.714 + x="58.358849" 93.715 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.716 + xml:space="preserve" 93.717 + transform="matrix(0.97994281,-0.19927893,0.19927893,0.97994281,0,0)"><tspan 93.718 + id="tspan5072" 93.719 + y="415.39398" 93.720 + x="58.358849" 93.721 + sodipodi:role="line" 93.722 + style="font-size:8px;text-align:center;text-anchor:middle">Top Level Fn</tspan></text> 93.723 + <text 93.724 + transform="matrix(0.97994281,-0.19927893,0.19927893,0.97994281,0,0)" 93.725 + xml:space="preserve" 93.726 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.727 + x="299.82327" 93.728 + y="462.45642" 93.729 + id="text5074" 93.730 + sodipodi:linespacing="100%"><tspan 93.731 + style="font-size:8px;text-align:center;text-anchor:middle" 93.732 + sodipodi:role="line" 93.733 + x="299.82327" 93.734 + y="462.45642" 93.735 + id="tspan5076">Top Level Fn</tspan></text> 93.736 + <text 93.737 + sodipodi:linespacing="100%" 93.738 + id="text5078" 93.739 + y="619.64636" 93.740 + x="269.89853" 93.741 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.742 + xml:space="preserve" 93.743 + transform="matrix(0.97994281,-0.19927893,0.19927893,0.97994281,0,0)"><tspan 93.744 + id="tspan5080" 93.745 + y="619.64636" 93.746 + x="269.89853" 93.747 + sodipodi:role="line" 93.748 + style="font-size:8px;text-align:center;text-anchor:middle">Top Level Fn</tspan></text> 93.749 + <path 93.750 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999996, 2.99999996;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 93.751 + d="m 360.9835,560.02605 c 36.7665,0 36.7665,0 36.7665,0" 93.752 + id="path5082" 93.753 + inkscape:connector-curvature="0" /> 93.754 + <path 93.755 + inkscape:connector-curvature="0" 93.756 + id="path5084" 93.757 + d="m 359.32649,712.02605 c 38.42351,0 38.42351,0 38.42351,0" 93.758 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999996, 2.99999996;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 93.759 + <path 93.760 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 93.761 + d="m 416.02904,404.31985 c 0,7.35629 0,7.35629 0,7.35629" 93.762 + id="path5092" 93.763 + inkscape:connector-curvature="0" 93.764 + sodipodi:nodetypes="cc" /> 93.765 + <path 93.766 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 93.767 + d="m 416.24714,412.02605 c 85.56237,0 85.56237,0 85.56237,0" 93.768 + id="path5094" 93.769 + inkscape:connector-curvature="0" /> 93.770 + <path 93.771 + inkscape:connector-curvature="0" 93.772 + id="path5096" 93.773 + d="m 504.77166,478.02605 c -88.41298,0 -88.41298,0 -88.41298,0" 93.774 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 93.775 + <text 93.776 + transform="matrix(0.97994281,-0.19927893,0.19927893,0.97994281,0,0)" 93.777 + xml:space="preserve" 93.778 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.779 + x="239.60797" 93.780 + y="768.59875" 93.781 + id="text5114" 93.782 + sodipodi:linespacing="100%"><tspan 93.783 + style="font-size:8px;text-align:center;text-anchor:middle" 93.784 + sodipodi:role="line" 93.785 + x="239.60797" 93.786 + y="768.59875" 93.787 + id="tspan5116">Top Level Fn</tspan></text> 93.788 + <text 93.789 + sodipodi:linespacing="100%" 93.790 + id="text5136" 93.791 + y="715.42468" 93.792 + x="419.16797" 93.793 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.794 + xml:space="preserve"><tspan 93.795 + id="tspan5138" 93.796 + y="715.42468" 93.797 + x="419.16797" 93.798 + sodipodi:role="line" 93.799 + style="text-align:center;text-anchor:middle;fill:#008000">Work_Fn</tspan></text> 93.800 + <path 93.801 + sodipodi:nodetypes="cc" 93.802 + inkscape:connector-curvature="0" 93.803 + id="path5140" 93.804 + d="m 416.02904,478.31987 c 0,26.21842 0,26.21842 0,26.21842" 93.805 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 93.806 + <path 93.807 + inkscape:connector-curvature="0" 93.808 + id="path5142" 93.809 + d="m 416.2471,504.02605 c 87.58783,0 87.58783,0 87.58783,0" 93.810 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 93.811 + <text 93.812 + sodipodi:linespacing="100%" 93.813 + id="text5157" 93.814 + y="490.71182" 93.815 + x="506.78461" 93.816 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.817 + xml:space="preserve"><tspan 93.818 + id="tspan5161" 93.819 + y="490.71182" 93.820 + x="506.78461" 93.821 + sodipodi:role="line" 93.822 + style="text-align:center;text-anchor:middle;fill:#800000">end VP</tspan><tspan 93.823 + y="500.71182" 93.824 + x="506.78461" 93.825 + sodipodi:role="line" 93.826 + style="text-align:center;text-anchor:middle;fill:#800000" 93.827 + id="tspan5207">wrapper Fn</tspan></text> 93.828 + <path 93.829 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 93.830 + d="m 504.26584,510.02605 c 63.99676,0 63.99676,0 63.99676,0" 93.831 + id="path5165" 93.832 + inkscape:connector-curvature="0" /> 93.833 + <text 93.834 + xml:space="preserve" 93.835 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.836 + x="571.34375" 93.837 + y="496.71182" 93.838 + id="text5167" 93.839 + sodipodi:linespacing="100%"><tspan 93.840 + style="text-align:center;text-anchor:middle;fill:#000080" 93.841 + sodipodi:role="line" 93.842 + x="571.34375" 93.843 + y="496.71182" 93.844 + id="tspan5169">End VP</tspan><tspan 93.845 + style="text-align:center;text-anchor:middle;fill:#000080" 93.846 + sodipodi:role="line" 93.847 + x="571.34375" 93.848 + y="506.71182" 93.849 + id="tspan5171">Primitive Fn</tspan></text> 93.850 + <path 93.851 + sodipodi:nodetypes="cc" 93.852 + inkscape:connector-curvature="0" 93.853 + id="path5179" 93.854 + d="m 416.02904,564.31985 c 0,7.35629 0,7.35629 0,7.35629" 93.855 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 93.856 + <path 93.857 + sodipodi:nodetypes="cc" 93.858 + inkscape:connector-curvature="0" 93.859 + id="path5209" 93.860 + d="m 504.02904,502.31985 c 0,7.35629 0,7.35629 0,7.35629" 93.861 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 93.862 + <text 93.863 + xml:space="preserve" 93.864 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.865 + x="497.16797" 93.866 + y="399.42468" 93.867 + id="text5211" 93.868 + sodipodi:linespacing="100%"><tspan 93.869 + style="text-align:center;text-anchor:middle" 93.870 + sodipodi:role="line" 93.871 + x="497.16797" 93.872 + y="399.42468" 93.873 + id="tspan5215" /></text> 93.874 + <path 93.875 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 93.876 + d="m 504.02904,412.21843 c 0,19.4577 0,19.4577 0,19.4577" 93.877 + id="path5217" 93.878 + inkscape:connector-curvature="0" 93.879 + sodipodi:nodetypes="cc" /> 93.880 + <path 93.881 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 93.882 + d="m 504.24714,432.02605 c 64.71029,0 64.71029,0 64.71029,0" 93.883 + id="path5219" 93.884 + inkscape:connector-curvature="0" /> 93.885 + <path 93.886 + inkscape:connector-curvature="0" 93.887 + id="path5221" 93.888 + d="m 568.85635,474.02605 c -65.78483,0 -65.78483,0 -65.78483,0" 93.889 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 93.890 + <path 93.891 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 93.892 + d="m 570.02904,430.63925 c 0,13.68455 0,13.68455 0,13.68455" 93.893 + id="path5223" 93.894 + inkscape:connector-curvature="0" 93.895 + sodipodi:nodetypes="cc" /> 93.896 + <path 93.897 + sodipodi:nodetypes="cc" 93.898 + inkscape:connector-curvature="0" 93.899 + id="path5229" 93.900 + d="m 504.02904,473.22687 c 0,5.5885 0,5.5885 0,5.5885" 93.901 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 93.902 + <text 93.903 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 93.904 + xml:space="preserve" 93.905 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.906 + x="527.4845" 93.907 + y="436.83682" 93.908 + id="text5231" 93.909 + sodipodi:linespacing="100%"><tspan 93.910 + style="font-size:8px;text-align:center;text-anchor:middle" 93.911 + sodipodi:role="line" 93.912 + x="527.4845" 93.913 + y="436.83682" 93.914 + id="tspan5233">normal call</tspan></text> 93.915 + <path 93.916 + sodipodi:nodetypes="cc" 93.917 + inkscape:connector-curvature="0" 93.918 + id="path5235" 93.919 + d="m 570.02904,460.63925 c 0,13.68455 0,13.68455 0,13.68455" 93.920 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 93.921 + <path 93.922 + inkscape:connector-curvature="0" 93.923 + id="path5237" 93.924 + d="m 570.24715,442.02605 c 57.74832,0 57.74832,0 57.74832,0" 93.925 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 93.926 + <text 93.927 + sodipodi:linespacing="100%" 93.928 + id="text5239" 93.929 + y="732.05804" 93.930 + x="136.82079" 93.931 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.932 + xml:space="preserve" 93.933 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 93.934 + id="tspan5241" 93.935 + y="732.05804" 93.936 + x="136.82079" 93.937 + sodipodi:role="line" 93.938 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan><tspan 93.939 + y="740.05804" 93.940 + x="136.82079" 93.941 + sodipodi:role="line" 93.942 + style="font-size:8px;text-align:center;text-anchor:middle" 93.943 + id="tspan5243">and switch</tspan><tspan 93.944 + y="748.05804" 93.945 + x="136.82079" 93.946 + sodipodi:role="line" 93.947 + style="font-size:8px;text-align:center;text-anchor:middle" 93.948 + id="tspan5245">to runtime</tspan></text> 93.949 + <path 93.950 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 93.951 + d="m 627.94909,462.02605 c -56.8776,0 -56.8776,0 -56.8776,0" 93.952 + id="path5247" 93.953 + inkscape:connector-curvature="0" /> 93.954 + <text 93.955 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 93.956 + xml:space="preserve" 93.957 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.958 + x="111.73514" 93.959 + y="755.09509" 93.960 + id="text5249" 93.961 + sodipodi:linespacing="100%"><tspan 93.962 + id="tspan5255" 93.963 + style="font-size:8px;text-align:center;text-anchor:middle" 93.964 + sodipodi:role="line" 93.965 + x="111.73514" 93.966 + y="755.09509">return</tspan><tspan 93.967 + style="font-size:8px;text-align:center;text-anchor:middle" 93.968 + sodipodi:role="line" 93.969 + x="111.73514" 93.970 + y="763.09509" 93.971 + id="tspan5261">from</tspan><tspan 93.972 + style="font-size:8px;text-align:center;text-anchor:middle" 93.973 + sodipodi:role="line" 93.974 + x="111.73514" 93.975 + y="771.09509" 93.976 + id="tspan5263">suspend</tspan></text> 93.977 + <text 93.978 + sodipodi:linespacing="100%" 93.979 + id="text5345" 93.980 + y="417.42465" 93.981 + x="571.38037" 93.982 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.983 + xml:space="preserve"><tspan 93.984 + id="tspan5349" 93.985 + y="417.42465" 93.986 + x="571.38037" 93.987 + sodipodi:role="line" 93.988 + style="text-align:center;text-anchor:middle;fill:#000080">create VP</tspan><tspan 93.989 + y="427.42465" 93.990 + x="571.38037" 93.991 + sodipodi:role="line" 93.992 + style="text-align:center;text-anchor:middle;fill:#000080" 93.993 + id="tspan5353">primitive Fn</tspan></text> 93.994 + <text 93.995 + sodipodi:linespacing="100%" 93.996 + id="text5355" 93.997 + y="417.14474" 93.998 + x="457.39746" 93.999 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.1000 + xml:space="preserve" 93.1001 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 93.1002 + id="tspan5357" 93.1003 + y="417.14474" 93.1004 + x="457.39746" 93.1005 + sodipodi:role="line" 93.1006 + style="font-size:8px;text-align:center;text-anchor:middle">normal call</tspan></text> 93.1007 + <path 93.1008 + sodipodi:nodetypes="cc" 93.1009 + inkscape:connector-curvature="0" 93.1010 + id="path5359" 93.1011 + d="m 570.02904,509.28283 c 0,13.68455 0,13.68455 0,13.68455" 93.1012 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 93.1013 + <path 93.1014 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 93.1015 + d="m 570.24715,520.66963 c 57.74832,0 57.74832,0 57.74832,0" 93.1016 + id="path5361" 93.1017 + inkscape:connector-curvature="0" /> 93.1018 + <text 93.1019 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 93.1020 + xml:space="preserve" 93.1021 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.1022 + x="81.17688" 93.1023 + y="789.53607" 93.1024 + id="text5363" 93.1025 + sodipodi:linespacing="100%"><tspan 93.1026 + style="font-size:8px;text-align:center;text-anchor:middle" 93.1027 + sodipodi:role="line" 93.1028 + x="81.17688" 93.1029 + y="789.53607" 93.1030 + id="tspan5365">suspend</tspan><tspan 93.1031 + id="tspan5367" 93.1032 + style="font-size:8px;text-align:center;text-anchor:middle" 93.1033 + sodipodi:role="line" 93.1034 + x="81.17688" 93.1035 + y="797.53607">and switch</tspan><tspan 93.1036 + id="tspan5369" 93.1037 + style="font-size:8px;text-align:center;text-anchor:middle" 93.1038 + sodipodi:role="line" 93.1039 + x="81.17688" 93.1040 + y="805.53607">to runtime</tspan></text> 93.1041 + <text 93.1042 + sodipodi:linespacing="100%" 93.1043 + id="text5371" 93.1044 + y="557.42468" 93.1045 + x="506.59662" 93.1046 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.1047 + xml:space="preserve"><tspan 93.1048 + id="tspan5373" 93.1049 + y="557.42468" 93.1050 + x="506.59662" 93.1051 + sodipodi:role="line" 93.1052 + style="text-align:center;text-anchor:middle;fill:#800000">Mutex Acquire</tspan><tspan 93.1053 + id="tspan5375" 93.1054 + y="567.42468" 93.1055 + x="506.59662" 93.1056 + sodipodi:role="line" 93.1057 + style="text-align:center;text-anchor:middle;fill:#800000">wrapper Fn</tspan></text> 93.1058 + <path 93.1059 + sodipodi:nodetypes="cc" 93.1060 + inkscape:connector-curvature="0" 93.1061 + id="path5377" 93.1062 + d="m 416.02904,564.31985 c 0,7.35629 0,7.35629 0,7.35629" 93.1063 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 93.1064 + <path 93.1065 + inkscape:connector-curvature="0" 93.1066 + id="path5379" 93.1067 + d="m 416.24714,572.02605 c 85.56237,0 85.56237,0 85.56237,0" 93.1068 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 93.1069 + <path 93.1070 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 93.1071 + d="m 504.77166,638.02605 c -88.41298,0 -88.41298,0 -88.41298,0" 93.1072 + id="path5381" 93.1073 + inkscape:connector-curvature="0" /> 93.1074 + <text 93.1075 + xml:space="preserve" 93.1076 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.1077 + x="506.78461" 93.1078 + y="650.71179" 93.1079 + id="text5387" 93.1080 + sodipodi:linespacing="100%"><tspan 93.1081 + style="text-align:center;text-anchor:middle;fill:#800000" 93.1082 + sodipodi:role="line" 93.1083 + x="506.78461" 93.1084 + y="650.71179" 93.1085 + id="tspan5389">end VP</tspan><tspan 93.1086 + id="tspan5391" 93.1087 + style="text-align:center;text-anchor:middle;fill:#800000" 93.1088 + sodipodi:role="line" 93.1089 + x="506.78461" 93.1090 + y="660.71179">wrapper Fn</tspan></text> 93.1091 + <path 93.1092 + inkscape:connector-curvature="0" 93.1093 + id="path5393" 93.1094 + d="m 504.289,670.02605 c 65.24023,0 65.24023,0 65.24023,0" 93.1095 + style="fill:none;stroke:#000000;stroke-width:0.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 93.1096 + <text 93.1097 + sodipodi:linespacing="100%" 93.1098 + id="text5395" 93.1099 + y="656.71179" 93.1100 + x="571.34375" 93.1101 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.1102 + xml:space="preserve"><tspan 93.1103 + id="tspan5397" 93.1104 + y="656.71179" 93.1105 + x="571.34375" 93.1106 + sodipodi:role="line" 93.1107 + style="text-align:center;text-anchor:middle;fill:#000080">end VP</tspan><tspan 93.1108 + id="tspan5399" 93.1109 + y="666.71179" 93.1110 + x="571.34375" 93.1111 + sodipodi:role="line" 93.1112 + style="text-align:center;text-anchor:middle;fill:#000080">Primitive Fn</tspan></text> 93.1113 + <path 93.1114 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 93.1115 + d="m 504.02904,662.31985 c 0,7.35629 0,7.35629 0,7.35629" 93.1116 + id="path5401" 93.1117 + inkscape:connector-curvature="0" 93.1118 + sodipodi:nodetypes="cc" /> 93.1119 + <path 93.1120 + sodipodi:nodetypes="cc" 93.1121 + inkscape:connector-curvature="0" 93.1122 + id="path5403" 93.1123 + d="m 504.02904,572.21843 c 0,19.4577 0,19.4577 0,19.4577" 93.1124 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 93.1125 + <path 93.1126 + inkscape:connector-curvature="0" 93.1127 + id="path5405" 93.1128 + d="m 504.6148,592.02605 c 64.1779,0 64.1779,0 64.1779,0" 93.1129 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 93.1130 + <path 93.1131 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 93.1132 + d="m 570.13452,634.02605 c -67.06305,0 -67.06305,0 -67.06305,0" 93.1133 + id="path5407" 93.1134 + inkscape:connector-curvature="0" /> 93.1135 + <path 93.1136 + sodipodi:nodetypes="cc" 93.1137 + inkscape:connector-curvature="0" 93.1138 + id="path5409" 93.1139 + d="m 570.02904,590.63925 c 0,13.68455 0,13.68455 0,13.68455" 93.1140 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 93.1141 + <path 93.1142 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 93.1143 + d="m 504.02904,633.22687 c 0,5.5885 0,5.5885 0,5.5885" 93.1144 + id="path5411" 93.1145 + inkscape:connector-curvature="0" 93.1146 + sodipodi:nodetypes="cc" /> 93.1147 + <text 93.1148 + sodipodi:linespacing="100%" 93.1149 + id="text5413" 93.1150 + y="596.83447" 93.1151 + x="528.18695" 93.1152 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.1153 + xml:space="preserve" 93.1154 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 93.1155 + id="tspan5415" 93.1156 + y="596.83447" 93.1157 + x="528.18695" 93.1158 + sodipodi:role="line" 93.1159 + style="font-size:8px;text-align:center;text-anchor:middle">normal call</tspan></text> 93.1160 + <path 93.1161 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 93.1162 + d="m 570.02904,620.63925 c 0,13.68455 0,13.68455 0,13.68455" 93.1163 + id="path5417" 93.1164 + inkscape:connector-curvature="0" 93.1165 + sodipodi:nodetypes="cc" /> 93.1166 + <path 93.1167 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 93.1168 + d="m 570.24715,602.02605 c 57.74832,0 57.74832,0 57.74832,0" 93.1169 + id="path5419" 93.1170 + inkscape:connector-curvature="0" /> 93.1171 + <text 93.1172 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 93.1173 + xml:space="preserve" 93.1174 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.1175 + x="25.533201" 93.1176 + y="847.01544" 93.1177 + id="text5421" 93.1178 + sodipodi:linespacing="100%"><tspan 93.1179 + style="font-size:8px;text-align:center;text-anchor:middle" 93.1180 + sodipodi:role="line" 93.1181 + x="25.533201" 93.1182 + y="847.01544" 93.1183 + id="tspan5423">suspend</tspan><tspan 93.1184 + id="tspan5425" 93.1185 + style="font-size:8px;text-align:center;text-anchor:middle" 93.1186 + sodipodi:role="line" 93.1187 + x="25.533201" 93.1188 + y="855.01544">and switch</tspan><tspan 93.1189 + id="tspan5427" 93.1190 + style="font-size:8px;text-align:center;text-anchor:middle" 93.1191 + sodipodi:role="line" 93.1192 + x="25.533201" 93.1193 + y="863.01544">to runtime</tspan></text> 93.1194 + <path 93.1195 + inkscape:connector-curvature="0" 93.1196 + id="path5429" 93.1197 + d="m 627.94909,622.02605 c -56.8776,0 -56.8776,0 -56.8776,0" 93.1198 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 93.1199 + <text 93.1200 + sodipodi:linespacing="100%" 93.1201 + id="text5431" 93.1202 + y="871.4436" 93.1203 + x="1.8845758" 93.1204 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.1205 + xml:space="preserve" 93.1206 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 93.1207 + y="871.4436" 93.1208 + x="1.8845758" 93.1209 + sodipodi:role="line" 93.1210 + style="font-size:8px;text-align:center;text-anchor:middle" 93.1211 + id="tspan5433">return</tspan><tspan 93.1212 + id="tspan5435" 93.1213 + y="879.4436" 93.1214 + x="1.8845758" 93.1215 + sodipodi:role="line" 93.1216 + style="font-size:8px;text-align:center;text-anchor:middle">from</tspan><tspan 93.1217 + id="tspan5437" 93.1218 + y="887.4436" 93.1219 + x="1.8845758" 93.1220 + sodipodi:role="line" 93.1221 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan></text> 93.1222 + <text 93.1223 + xml:space="preserve" 93.1224 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.1225 + x="571.33643" 93.1226 + y="577.42468" 93.1227 + id="text5439" 93.1228 + sodipodi:linespacing="100%"><tspan 93.1229 + style="text-align:center;text-anchor:middle;fill:#000080" 93.1230 + sodipodi:role="line" 93.1231 + x="571.33643" 93.1232 + y="577.42468" 93.1233 + id="tspan5441">send request</tspan><tspan 93.1234 + id="tspan5443" 93.1235 + style="text-align:center;text-anchor:middle;fill:#000080" 93.1236 + sodipodi:role="line" 93.1237 + x="571.33643" 93.1238 + y="587.42468">primitive Fn</tspan></text> 93.1239 + <text 93.1240 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 93.1241 + xml:space="preserve" 93.1242 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.1243 + x="458.09958" 93.1244 + y="577.1424" 93.1245 + id="text5445" 93.1246 + sodipodi:linespacing="100%"><tspan 93.1247 + style="font-size:8px;text-align:center;text-anchor:middle" 93.1248 + sodipodi:role="line" 93.1249 + x="458.09958" 93.1250 + y="577.1424" 93.1251 + id="tspan5447">normal call</tspan></text> 93.1252 + <path 93.1253 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 93.1254 + d="m 570.02904,669.28283 c 0,13.68455 0,13.68455 0,13.68455" 93.1255 + id="path5449" 93.1256 + inkscape:connector-curvature="0" 93.1257 + sodipodi:nodetypes="cc" /> 93.1258 + <path 93.1259 + inkscape:connector-curvature="0" 93.1260 + id="path5451" 93.1261 + d="m 570.24715,680.66963 c 57.74832,0 57.74832,0 57.74832,0" 93.1262 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 93.1263 + <text 93.1264 + sodipodi:linespacing="100%" 93.1265 + id="text5453" 93.1266 + y="904.49347" 93.1267 + x="-30.11055" 93.1268 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.1269 + xml:space="preserve" 93.1270 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 93.1271 + id="tspan5455" 93.1272 + y="904.49347" 93.1273 + x="-30.11055" 93.1274 + sodipodi:role="line" 93.1275 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan><tspan 93.1276 + y="912.49347" 93.1277 + x="-30.11055" 93.1278 + sodipodi:role="line" 93.1279 + style="font-size:8px;text-align:center;text-anchor:middle" 93.1280 + id="tspan5457">and switch</tspan><tspan 93.1281 + y="920.49347" 93.1282 + x="-30.11055" 93.1283 + sodipodi:role="line" 93.1284 + style="font-size:8px;text-align:center;text-anchor:middle" 93.1285 + id="tspan5459">to runtime</tspan></text> 93.1286 + <path 93.1287 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 93.1288 + d="m 416.02904,638.31987 c 0,26.21842 0,26.21842 0,26.21842" 93.1289 + id="path5461" 93.1290 + inkscape:connector-curvature="0" 93.1291 + sodipodi:nodetypes="cc" /> 93.1292 + <path 93.1293 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 93.1294 + d="m 416.2471,664.02605 c 87.58783,0 87.58783,0 87.58783,0" 93.1295 + id="path5463" 93.1296 + inkscape:connector-curvature="0" /> 93.1297 + <text 93.1298 + sodipodi:linespacing="100%" 93.1299 + id="text5465" 93.1300 + y="509.14246" 93.1301 + x="457.80075" 93.1302 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.1303 + xml:space="preserve" 93.1304 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 93.1305 + id="tspan5467" 93.1306 + y="509.14246" 93.1307 + x="457.80075" 93.1308 + sodipodi:role="line" 93.1309 + style="font-size:8px;text-align:center;text-anchor:middle">normal call</tspan></text> 93.1310 + <text 93.1311 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 93.1312 + xml:space="preserve" 93.1313 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.1314 + x="458.50388" 93.1315 + y="669.1424" 93.1316 + id="text5469" 93.1317 + sodipodi:linespacing="100%"><tspan 93.1318 + style="font-size:8px;text-align:center;text-anchor:middle" 93.1319 + sodipodi:role="line" 93.1320 + x="458.50388" 93.1321 + y="669.1424" 93.1322 + id="tspan5471">normal call</tspan></text> 93.1323 + <text 93.1324 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 93.1325 + xml:space="preserve" 93.1326 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.1327 + x="528.52972" 93.1328 + y="674.83447" 93.1329 + id="text5477" 93.1330 + sodipodi:linespacing="100%"><tspan 93.1331 + style="font-size:8px;text-align:center;text-anchor:middle" 93.1332 + sodipodi:role="line" 93.1333 + x="528.52972" 93.1334 + y="674.83447" 93.1335 + id="tspan5479">normal call</tspan></text> 93.1336 + <text 93.1337 + sodipodi:linespacing="100%" 93.1338 + id="text5481" 93.1339 + y="514.83447" 93.1340 + x="527.8266" 93.1341 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.1342 + xml:space="preserve" 93.1343 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 93.1344 + id="tspan5483" 93.1345 + y="514.83447" 93.1346 + x="527.8266" 93.1347 + sodipodi:role="line" 93.1348 + style="font-size:8px;text-align:center;text-anchor:middle">normal call</tspan></text> 93.1349 + <text 93.1350 + sodipodi:linespacing="100%" 93.1351 + id="text5489" 93.1352 + y="452.22702" 93.1353 + x="78.959503" 93.1354 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.1355 + xml:space="preserve" 93.1356 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)"><tspan 93.1357 + id="tspan5491" 93.1358 + y="452.22702" 93.1359 + x="78.959503" 93.1360 + sodipodi:role="line" 93.1361 + style="font-size:8px;text-align:center;text-anchor:middle">Call via Ptr</tspan></text> 93.1362 + <text 93.1363 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)" 93.1364 + xml:space="preserve" 93.1365 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.1366 + x="79.588112" 93.1367 + y="490.2218" 93.1368 + id="text5493" 93.1369 + sodipodi:linespacing="100%"><tspan 93.1370 + style="font-size:8px;text-align:center;text-anchor:middle" 93.1371 + sodipodi:role="line" 93.1372 + x="79.588112" 93.1373 + y="490.2218" 93.1374 + id="tspan5495">Call via Ptr</tspan></text> 93.1375 + <text 93.1376 + sodipodi:linespacing="100%" 93.1377 + id="text5497" 93.1378 + y="526.21716" 93.1379 + x="80.18364" 93.1380 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.1381 + xml:space="preserve" 93.1382 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)"><tspan 93.1383 + id="tspan5499" 93.1384 + y="526.21716" 93.1385 + x="80.18364" 93.1386 + sodipodi:role="line" 93.1387 + style="font-size:8px;text-align:center;text-anchor:middle">Call via Ptr</tspan></text> 93.1388 + <g 93.1389 + transform="translate(-114,76)" 93.1390 + id="g8395"> 93.1391 + <rect 93.1392 + y="313.58255" 93.1393 + x="310.40247" 93.1394 + height="52.250008" 93.1395 + width="65.276405" 93.1396 + id="rect8397" 93.1397 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 93.1398 + </g> 93.1399 + <text 93.1400 + xml:space="preserve" 93.1401 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.1402 + x="228.92543" 93.1403 + y="577.76575" 93.1404 + id="text8411" 93.1405 + sodipodi:linespacing="100%"><tspan 93.1406 + style="text-align:center;text-anchor:middle" 93.1407 + sodipodi:role="line" 93.1408 + id="tspan8413" 93.1409 + x="228.92543" 93.1410 + y="577.76575">Master</tspan><tspan 93.1411 + style="font-size:8px;text-align:center;text-anchor:middle" 93.1412 + id="tspan8415" 93.1413 + sodipodi:role="line" 93.1414 + x="228.92543" 93.1415 + y="586.2005">(runtime system)</tspan><tspan 93.1416 + id="tspan8417" 93.1417 + style="font-size:8px;text-align:center;text-anchor:middle" 93.1418 + sodipodi:role="line" 93.1419 + x="228.92543" 93.1420 + y="594.2005">on core 2</tspan></text> 93.1421 + <g 93.1422 + id="g8419" 93.1423 + transform="translate(-114,254)"> 93.1424 + <rect 93.1425 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 93.1426 + id="rect8421" 93.1427 + width="65.276405" 93.1428 + height="52.250008" 93.1429 + x="310.40247" 93.1430 + y="313.58255" /> 93.1431 + </g> 93.1432 + <text 93.1433 + sodipodi:linespacing="100%" 93.1434 + id="text8425" 93.1435 + y="593.42468" 93.1436 + x="131.19971" 93.1437 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.1438 + xml:space="preserve"><tspan 93.1439 + id="tspan8427" 93.1440 + y="593.42468" 93.1441 + x="131.19971" 93.1442 + sodipodi:role="line" 93.1443 + style="text-align:center;text-anchor:middle;fill:#800000">Handler</tspan><tspan 93.1444 + id="tspan8429" 93.1445 + y="603.42468" 93.1446 + x="131.19971" 93.1447 + sodipodi:role="line" 93.1448 + style="text-align:center;text-anchor:middle;fill:#800000">for Language</tspan><tspan 93.1449 + id="tspan8431" 93.1450 + y="613.42468" 93.1451 + x="131.19971" 93.1452 + sodipodi:role="line" 93.1453 + style="text-align:center;text-anchor:middle;fill:#800000">Construct1</tspan></text> 93.1454 + <text 93.1455 + xml:space="preserve" 93.1456 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.1457 + x="131.19971" 93.1458 + y="673.42468" 93.1459 + id="text8433" 93.1460 + sodipodi:linespacing="100%"><tspan 93.1461 + style="text-align:center;text-anchor:middle;fill:#800000" 93.1462 + sodipodi:role="line" 93.1463 + x="131.19971" 93.1464 + y="673.42468" 93.1465 + id="tspan8435">Handler</tspan><tspan 93.1466 + style="text-align:center;text-anchor:middle;fill:#800000" 93.1467 + sodipodi:role="line" 93.1468 + x="131.19971" 93.1469 + y="683.42468" 93.1470 + id="tspan8437">for Language</tspan><tspan 93.1471 + style="text-align:center;text-anchor:middle;fill:#800000" 93.1472 + sodipodi:role="line" 93.1473 + x="131.19971" 93.1474 + y="693.42468" 93.1475 + id="tspan8439">Construct2</tspan></text> 93.1476 + <text 93.1477 + sodipodi:linespacing="100%" 93.1478 + id="text8441" 93.1479 + y="583.42468" 93.1480 + x="47.661133" 93.1481 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.1482 + xml:space="preserve"><tspan 93.1483 + id="tspan8443" 93.1484 + y="583.42468" 93.1485 + x="47.661133" 93.1486 + sodipodi:role="line" 93.1487 + style="text-align:center;text-anchor:middle">Master Fn</tspan></text> 93.1488 + <text 93.1489 + sodipodi:linespacing="100%" 93.1490 + id="text8445" 93.1491 + y="719.42468" 93.1492 + x="131.52441" 93.1493 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.1494 + xml:space="preserve"><tspan 93.1495 + id="tspan8447" 93.1496 + y="719.42468" 93.1497 + x="131.52441" 93.1498 + sodipodi:role="line" 93.1499 + style="text-align:center;text-anchor:middle;fill:#800000">Assigner Fn</tspan></text> 93.1500 + <path 93.1501 + sodipodi:nodetypes="cc" 93.1502 + inkscape:connector-curvature="0" 93.1503 + id="path8449" 93.1504 + d="m 48.02904,586.29842 c 0,7.37773 0,7.37773 0,7.37773" 93.1505 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 93.1506 + <path 93.1507 + inkscape:connector-curvature="0" 93.1508 + id="path8451" 93.1509 + d="m 48.247131,594.02605 c 48.887624,0 48.887624,0 48.887624,0" 93.1510 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 93.1511 + <path 93.1512 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 93.1513 + d="m 98.156891,606.02605 c -51.085387,0 -51.085387,0 -51.085387,0" 93.1514 + id="path8453" 93.1515 + inkscape:connector-curvature="0" /> 93.1516 + <path 93.1517 + sodipodi:nodetypes="cc" 93.1518 + inkscape:connector-curvature="0" 93.1519 + id="path8455" 93.1520 + d="m 98.02904,592.63925 c 0,13.68455 0,13.68455 0,13.68455" 93.1521 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 93.1522 + <text 93.1523 + xml:space="preserve" 93.1524 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.1525 + x="131.19971" 93.1526 + y="635.42468" 93.1527 + id="text8457" 93.1528 + sodipodi:linespacing="100%"><tspan 93.1529 + style="text-align:center;text-anchor:middle;fill:#800000" 93.1530 + sodipodi:role="line" 93.1531 + x="131.19971" 93.1532 + y="635.42468" 93.1533 + id="tspan8459">Handler</tspan><tspan 93.1534 + style="text-align:center;text-anchor:middle;fill:#800000" 93.1535 + sodipodi:role="line" 93.1536 + x="131.19971" 93.1537 + y="645.42468" 93.1538 + id="tspan8461">for Language</tspan><tspan 93.1539 + style="text-align:center;text-anchor:middle;fill:#800000" 93.1540 + sodipodi:role="line" 93.1541 + x="131.19971" 93.1542 + y="655.42468" 93.1543 + id="tspan8463">Construct1</tspan></text> 93.1544 + <path 93.1545 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 93.1546 + d="m 48.02904,606.51232 c 0,29.16381 0,29.16381 0,29.16381" 93.1547 + id="path8465" 93.1548 + inkscape:connector-curvature="0" 93.1549 + sodipodi:nodetypes="cc" /> 93.1550 + <path 93.1551 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 93.1552 + d="m 48.247131,636.02605 c 48.887624,0 48.887624,0 48.887624,0" 93.1553 + id="path8467" 93.1554 + inkscape:connector-curvature="0" /> 93.1555 + <path 93.1556 + inkscape:connector-curvature="0" 93.1557 + id="path8469" 93.1558 + d="m 98.156891,648.02605 c -51.085387,0 -51.085387,0 -51.085387,0" 93.1559 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 93.1560 + <path 93.1561 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 93.1562 + d="m 98.02904,634.63925 c 0,13.68455 0,13.68455 0,13.68455" 93.1563 + id="path8471" 93.1564 + inkscape:connector-curvature="0" 93.1565 + sodipodi:nodetypes="cc" /> 93.1566 + <path 93.1567 + sodipodi:nodetypes="cc" 93.1568 + inkscape:connector-curvature="0" 93.1569 + id="path8473" 93.1570 + d="m 48.02904,648.14337 c 0,25.5328 0,25.5328 0,25.5328" 93.1571 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 93.1572 + <path 93.1573 + inkscape:connector-curvature="0" 93.1574 + id="path8475" 93.1575 + d="m 48.247131,674.02605 c 48.887624,0 48.887624,0 48.887624,0" 93.1576 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 93.1577 + <path 93.1578 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 93.1579 + d="m 98.156891,686.02605 c -51.085387,0 -51.085387,0 -51.085387,0" 93.1580 + id="path8477" 93.1581 + inkscape:connector-curvature="0" /> 93.1582 + <path 93.1583 + sodipodi:nodetypes="cc" 93.1584 + inkscape:connector-curvature="0" 93.1585 + id="path8479" 93.1586 + d="m 98.02904,672.63925 c 0,13.68455 0,13.68455 0,13.68455" 93.1587 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 93.1588 + <path 93.1589 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 93.1590 + d="m 48.02904,686.56402 c 0,23.11212 0,23.11212 0,23.11212" 93.1591 + id="path8481" 93.1592 + inkscape:connector-curvature="0" 93.1593 + sodipodi:nodetypes="cc" /> 93.1594 + <path 93.1595 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 93.1596 + d="m 48.247131,710.02605 c 48.887624,0 48.887624,0 48.887624,0" 93.1597 + id="path8483" 93.1598 + inkscape:connector-curvature="0" /> 93.1599 + <path 93.1600 + inkscape:connector-curvature="0" 93.1601 + id="path8485" 93.1602 + d="m 98.156891,722.02605 c -51.085387,0 -51.085387,0 -51.085387,0" 93.1603 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 93.1604 + <path 93.1605 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 93.1606 + d="m 98.02904,708.63925 c 0,13.68455 0,13.68455 0,13.68455" 93.1607 + id="path8487" 93.1608 + inkscape:connector-curvature="0" 93.1609 + sodipodi:nodetypes="cc" /> 93.1610 + <text 93.1611 + sodipodi:linespacing="100%" 93.1612 + id="text8489" 93.1613 + y="590.20807" 93.1614 + x="81.242355" 93.1615 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.1616 + xml:space="preserve" 93.1617 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)"><tspan 93.1618 + id="tspan8491" 93.1619 + y="590.20807" 93.1620 + x="81.242355" 93.1621 + sodipodi:role="line" 93.1622 + style="font-size:8px;text-align:center;text-anchor:middle">Call via Ptr</tspan></text> 93.1623 + <path 93.1624 + inkscape:connector-curvature="0" 93.1625 + id="path8493" 93.1626 + d="m 193.99816,580.02605 c -117.505852,0 -117.505852,0 -117.505852,0" 93.1627 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000003, 3.00000003;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 93.1628 + <text 93.1629 + transform="matrix(0.97994281,-0.19927893,0.19927893,0.97994281,0,0)" 93.1630 + xml:space="preserve" 93.1631 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.1632 + x="22.488649" 93.1633 + y="591.78375" 93.1634 + id="text8495" 93.1635 + sodipodi:linespacing="100%"><tspan 93.1636 + style="font-size:8px;text-align:center;text-anchor:middle" 93.1637 + sodipodi:role="line" 93.1638 + x="22.488649" 93.1639 + y="591.78375" 93.1640 + id="tspan8497">Top Level Fn</tspan></text> 93.1641 + <text 93.1642 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)" 93.1643 + xml:space="preserve" 93.1644 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.1645 + x="81.937141" 93.1646 + y="632.20233" 93.1647 + id="text8499" 93.1648 + sodipodi:linespacing="100%"><tspan 93.1649 + style="font-size:8px;text-align:center;text-anchor:middle" 93.1650 + sodipodi:role="line" 93.1651 + x="81.937141" 93.1652 + y="632.20233" 93.1653 + id="tspan8501">Call via Ptr</tspan></text> 93.1654 + <text 93.1655 + sodipodi:linespacing="100%" 93.1656 + id="text8503" 93.1657 + y="670.19708" 93.1658 + x="82.56575" 93.1659 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.1660 + xml:space="preserve" 93.1661 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)"><tspan 93.1662 + id="tspan8505" 93.1663 + y="670.19708" 93.1664 + x="82.56575" 93.1665 + sodipodi:role="line" 93.1666 + style="font-size:8px;text-align:center;text-anchor:middle">Call via Ptr</tspan></text> 93.1667 + <text 93.1668 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)" 93.1669 + xml:space="preserve" 93.1670 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 93.1671 + x="83.161278" 93.1672 + y="706.19244" 93.1673 + id="text8507" 93.1674 + sodipodi:linespacing="100%"><tspan 93.1675 + style="font-size:8px;text-align:center;text-anchor:middle" 93.1676 + sodipodi:role="line" 93.1677 + x="83.161278" 93.1678 + y="706.19244" 93.1679 + id="tspan8509">Call via Ptr</tspan></text> 93.1680 + </g> 93.1681 +</svg>
94.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 94.2 +++ b/0__Papers/VMS/VMS__Foundation_Paper/VMS__Full_conference_version/figures/Proto-Runtime__modules_plus_plugin_plus_code_back_2.svg Sat Aug 03 19:24:22 2013 -0700 94.3 @@ -0,0 +1,2231 @@ 94.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 94.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 94.6 + 94.7 +<svg 94.8 + xmlns:dc="http://purl.org/dc/elements/1.1/" 94.9 + xmlns:cc="http://creativecommons.org/ns#" 94.10 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 94.11 + xmlns:svg="http://www.w3.org/2000/svg" 94.12 + xmlns="http://www.w3.org/2000/svg" 94.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 94.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 94.15 + width="744.09448819" 94.16 + height="1052.3622047" 94.17 + id="svg2" 94.18 + sodipodi:version="0.32" 94.19 + inkscape:version="0.48.2 r9819" 94.20 + sodipodi:docname="Proto-Runtime__modules_plus_plugin_plus_code.svg" 94.21 + inkscape:output_extension="org.inkscape.output.svg.inkscape" 94.22 + version="1.1"> 94.23 + <defs 94.24 + id="defs4"> 94.25 + <marker 94.26 + inkscape:stockid="Arrow2Mend" 94.27 + orient="auto" 94.28 + refY="0.0" 94.29 + refX="0.0" 94.30 + id="Arrow2Mend" 94.31 + style="overflow:visible;"> 94.32 + <path 94.33 + id="path4008" 94.34 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 94.35 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 94.36 + transform="scale(0.6) rotate(180) translate(0,0)" /> 94.37 + </marker> 94.38 + <inkscape:perspective 94.39 + sodipodi:type="inkscape:persp3d" 94.40 + inkscape:vp_x="0 : 526.18109 : 1" 94.41 + inkscape:vp_y="0 : 1000 : 0" 94.42 + inkscape:vp_z="744.09448 : 526.18109 : 1" 94.43 + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" 94.44 + id="perspective10" /> 94.45 + <inkscape:perspective 94.46 + id="perspective12172" 94.47 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 94.48 + inkscape:vp_z="1 : 0.5 : 1" 94.49 + inkscape:vp_y="0 : 1000 : 0" 94.50 + inkscape:vp_x="0 : 0.5 : 1" 94.51 + sodipodi:type="inkscape:persp3d" /> 94.52 + <inkscape:perspective 94.53 + id="perspective12937" 94.54 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 94.55 + inkscape:vp_z="1 : 0.5 : 1" 94.56 + inkscape:vp_y="0 : 1000 : 0" 94.57 + inkscape:vp_x="0 : 0.5 : 1" 94.58 + sodipodi:type="inkscape:persp3d" /> 94.59 + </defs> 94.60 + <sodipodi:namedview 94.61 + id="base" 94.62 + pagecolor="#ffffff" 94.63 + bordercolor="#666666" 94.64 + borderopacity="1.0" 94.65 + gridtolerance="10000" 94.66 + guidetolerance="10" 94.67 + objecttolerance="10" 94.68 + inkscape:pageopacity="0.0" 94.69 + inkscape:pageshadow="2" 94.70 + inkscape:zoom="1.6398134" 94.71 + inkscape:cx="167.915" 94.72 + inkscape:cy="557.78994" 94.73 + inkscape:document-units="px" 94.74 + inkscape:current-layer="layer1" 94.75 + showgrid="false" 94.76 + inkscape:window-width="1600" 94.77 + inkscape:window-height="848" 94.78 + inkscape:window-x="-8" 94.79 + inkscape:window-y="-8" 94.80 + inkscape:window-maximized="1" /> 94.81 + <metadata 94.82 + id="metadata7"> 94.83 + <rdf:RDF> 94.84 + <cc:Work 94.85 + rdf:about=""> 94.86 + <dc:format>image/svg+xml</dc:format> 94.87 + <dc:type 94.88 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 94.89 + <dc:title></dc:title> 94.90 + </cc:Work> 94.91 + </rdf:RDF> 94.92 + </metadata> 94.93 + <g 94.94 + inkscape:label="Layer 1" 94.95 + inkscape:groupmode="layer" 94.96 + id="layer1"> 94.97 + <text 94.98 + sodipodi:linespacing="100%" 94.99 + id="text12979" 94.100 + y="399.76575" 94.101 + x="326.92542" 94.102 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.103 + xml:space="preserve"><tspan 94.104 + y="399.76575" 94.105 + x="326.92542" 94.106 + id="tspan12981" 94.107 + sodipodi:role="line" 94.108 + style="text-align:center;text-anchor:middle">Master</tspan><tspan 94.109 + y="408.20053" 94.110 + x="326.92542" 94.111 + sodipodi:role="line" 94.112 + id="tspan3291" 94.113 + style="font-size:8px;text-align:center;text-anchor:middle">(runtime system)</tspan><tspan 94.114 + y="416.20053" 94.115 + x="326.92542" 94.116 + sodipodi:role="line" 94.117 + style="font-size:8px;text-align:center;text-anchor:middle" 94.118 + id="tspan8409">on core 1</tspan></text> 94.119 + <g 94.120 + id="g9336" 94.121 + transform="translate(44.002789,0)"> 94.122 + <rect 94.123 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 94.124 + id="rect3293" 94.125 + width="65.276405" 94.126 + height="37.165791" 94.127 + x="346.40247" 94.128 + y="389.58255" /> 94.129 + <text 94.130 + sodipodi:linespacing="100%" 94.131 + id="text3295" 94.132 + y="400.15268" 94.133 + x="379.00162" 94.134 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.135 + xml:space="preserve"><tspan 94.136 + id="tspan3301" 94.137 + y="400.15268" 94.138 + x="379.00162" 94.139 + sodipodi:role="line" 94.140 + style="text-align:center;text-anchor:middle">Seed VP</tspan><tspan 94.141 + y="408.58746" 94.142 + x="379.00162" 94.143 + sodipodi:role="line" 94.144 + style="font-size:8px;text-align:center;text-anchor:middle" 94.145 + id="tspan9389">(created at</tspan><tspan 94.146 + y="416.58746" 94.147 + x="379.00162" 94.148 + sodipodi:role="line" 94.149 + style="font-size:8px;text-align:center;text-anchor:middle" 94.150 + id="tspan9391">app startup,</tspan><tspan 94.151 + y="424.58746" 94.152 + x="379.00162" 94.153 + sodipodi:role="line" 94.154 + style="font-size:8px;text-align:center;text-anchor:middle" 94.155 + id="tspan9744">on core 1)</tspan></text> 94.156 + </g> 94.157 + <text 94.158 + xml:space="preserve" 94.159 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.160 + x="517.16797" 94.161 + y="357.42465" 94.162 + id="text3318-1" 94.163 + sodipodi:linespacing="100%"><tspan 94.164 + style="text-align:center;text-anchor:middle;fill:#008000" 94.165 + sodipodi:role="line" 94.166 + x="517.16797" 94.167 + y="357.42465" 94.168 + id="tspan3322-5">Application Code</tspan></text> 94.169 + <text 94.170 + sodipodi:linespacing="100%" 94.171 + id="text3376" 94.172 + y="403.42465" 94.173 + x="517.16797" 94.174 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.175 + xml:space="preserve"><tspan 94.176 + id="tspan3378" 94.177 + y="403.42465" 94.178 + x="517.16797" 94.179 + sodipodi:role="line" 94.180 + style="text-align:center;text-anchor:middle;fill:#008000">Seed_Fn</tspan></text> 94.181 + <text 94.182 + xml:space="preserve" 94.183 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.184 + x="517.16797" 94.185 + y="571.42468" 94.186 + id="text3380" 94.187 + sodipodi:linespacing="100%"><tspan 94.188 + style="text-align:center;text-anchor:middle;fill:#008000" 94.189 + sodipodi:role="line" 94.190 + x="517.16797" 94.191 + y="571.42468" 94.192 + id="tspan3382">Work_Fn</tspan></text> 94.193 + <text 94.194 + sodipodi:linespacing="100%" 94.195 + id="text3388" 94.196 + y="357.42465" 94.197 + x="604.63812" 94.198 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.199 + xml:space="preserve"><tspan 94.200 + id="tspan3390" 94.201 + y="357.42465" 94.202 + x="606.14203" 94.203 + sodipodi:role="line" 94.204 + style="text-align:center;text-anchor:middle;fill:#800000">Language </tspan><tspan 94.205 + y="367.42465" 94.206 + x="604.63812" 94.207 + sodipodi:role="line" 94.208 + style="text-align:center;text-anchor:middle;fill:#800000" 94.209 + id="tspan5106">Wrapper-Lib</tspan><tspan 94.210 + y="377.42465" 94.211 + x="604.63812" 94.212 + sodipodi:role="line" 94.213 + style="text-align:center;text-anchor:middle;fill:#800000" 94.214 + id="tspan3392">Code</tspan></text> 94.215 + <text 94.216 + xml:space="preserve" 94.217 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.218 + x="669.16797" 94.219 + y="357.42465" 94.220 + id="text3394" 94.221 + sodipodi:linespacing="100%"><tspan 94.222 + style="text-align:center;text-anchor:middle;fill:#000080" 94.223 + sodipodi:role="line" 94.224 + x="669.16797" 94.225 + y="357.42465" 94.226 + id="tspan3396">Proto-Runtime</tspan><tspan 94.227 + style="text-align:center;text-anchor:middle;fill:#000080" 94.228 + sodipodi:role="line" 94.229 + x="669.16797" 94.230 + y="367.42465" 94.231 + id="tspan4998">Primitive</tspan><tspan 94.232 + id="tspan3398" 94.233 + style="text-align:center;text-anchor:middle;fill:#000080" 94.234 + sodipodi:role="line" 94.235 + x="669.16797" 94.236 + y="377.42465">Code</tspan></text> 94.237 + <text 94.238 + xml:space="preserve" 94.239 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.240 + x="137.31689" 94.241 + y="433.42465" 94.242 + id="text3412" 94.243 + sodipodi:linespacing="100%"><tspan 94.244 + style="text-align:center;text-anchor:middle;fill:#800000" 94.245 + sodipodi:role="line" 94.246 + x="137.31689" 94.247 + y="433.42465" 94.248 + id="tspan3414">Lang Handler</tspan><tspan 94.249 + style="text-align:center;text-anchor:middle;fill:#800000" 94.250 + sodipodi:role="line" 94.251 + x="137.31689" 94.252 + y="443.42465" 94.253 + id="tspan3422">for create VP</tspan></text> 94.254 + <text 94.255 + xml:space="preserve" 94.256 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.257 + x="137.68066" 94.258 + y="481.42468" 94.259 + id="text3444" 94.260 + sodipodi:linespacing="100%"><tspan 94.261 + style="text-align:center;text-anchor:middle;fill:#800000" 94.262 + sodipodi:role="line" 94.263 + x="137.68066" 94.264 + y="481.42468" 94.265 + id="tspan3450">Assigner Fn</tspan></text> 94.266 + <text 94.267 + xml:space="preserve" 94.268 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.269 + x="327.16797" 94.270 + y="359.42465" 94.271 + id="text3456" 94.272 + sodipodi:linespacing="100%"><tspan 94.273 + style="text-align:center;text-anchor:middle" 94.274 + sodipodi:role="line" 94.275 + x="328.67188" 94.276 + y="359.42465" 94.277 + id="tspan3458">Instances of </tspan><tspan 94.278 + style="text-align:center;text-anchor:middle" 94.279 + sodipodi:role="line" 94.280 + x="327.16797" 94.281 + y="369.42465" 94.282 + id="tspan8405">runtime system</tspan><tspan 94.283 + style="font-size:8px;text-align:center;text-anchor:middle" 94.284 + sodipodi:role="line" 94.285 + x="327.16797" 94.286 + y="377.85944" 94.287 + id="tspan9383">(data structs</tspan><tspan 94.288 + style="font-size:8px;text-align:center;text-anchor:middle" 94.289 + sodipodi:role="line" 94.290 + x="327.16797" 94.291 + y="385.85944" 94.292 + id="tspan9385">on heap)</tspan><tspan 94.293 + id="tspan3460" 94.294 + style="text-align:center;text-anchor:middle" 94.295 + sodipodi:role="line" 94.296 + x="327.16797" 94.297 + y="393.85944" /></text> 94.298 + <text 94.299 + sodipodi:linespacing="100%" 94.300 + id="text3462" 94.301 + y="357.42465" 94.302 + x="423.16797" 94.303 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.304 + xml:space="preserve"><tspan 94.305 + id="tspan3464" 94.306 + y="357.42465" 94.307 + x="423.16797" 94.308 + sodipodi:role="line" 94.309 + style="text-align:center;text-anchor:middle">Instances of</tspan><tspan 94.310 + y="367.42465" 94.311 + x="423.16797" 94.312 + sodipodi:role="line" 94.313 + style="text-align:center;text-anchor:middle" 94.314 + id="tspan3468">Virtual Processors</tspan><tspan 94.315 + y="375.85944" 94.316 + x="423.16797" 94.317 + sodipodi:role="line" 94.318 + style="font-size:8px;text-align:center;text-anchor:middle" 94.319 + id="tspan3466">(data structs</tspan><tspan 94.320 + y="383.85944" 94.321 + x="423.16797" 94.322 + sodipodi:role="line" 94.323 + style="font-size:8px;text-align:center;text-anchor:middle" 94.324 + id="tspan9387">on heap)</tspan></text> 94.325 + <path 94.326 + inkscape:connector-curvature="0" 94.327 + id="path4796" 94.328 + d="m 457.32649,400.02605 c 38.42351,0 38.42351,0 38.42351,0" 94.329 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999996, 2.99999996;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 94.330 + <text 94.331 + xml:space="preserve" 94.332 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.333 + x="604.78461" 94.334 + y="397.42465" 94.335 + id="text4988" 94.336 + sodipodi:linespacing="100%"><tspan 94.337 + style="text-align:center;text-anchor:middle;fill:#800000" 94.338 + sodipodi:role="line" 94.339 + x="604.78461" 94.340 + y="397.42465" 94.341 + id="tspan4990">create VP</tspan><tspan 94.342 + style="text-align:center;text-anchor:middle;fill:#800000" 94.343 + sodipodi:role="line" 94.344 + x="604.78461" 94.345 + y="407.42465" 94.346 + id="tspan5104">wrapper Fn</tspan></text> 94.347 + <text 94.348 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)" 94.349 + xml:space="preserve" 94.350 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.351 + x="638.65094" 94.352 + y="428.96548" 94.353 + id="text5064" 94.354 + sodipodi:linespacing="100%"><tspan 94.355 + style="font-size:8px;text-align:center;text-anchor:middle" 94.356 + sodipodi:role="line" 94.357 + x="638.65094" 94.358 + y="428.96548" 94.359 + id="tspan5066">Call to dyn lib</tspan></text> 94.360 + <path 94.361 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000003, 3.00000003;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 94.362 + d="m 291.99816,400.02605 c -63.44071,0 -63.44071,0 -63.44071,0" 94.363 + id="path5068" 94.364 + inkscape:connector-curvature="0" /> 94.365 + <text 94.366 + sodipodi:linespacing="100%" 94.367 + id="text5070" 94.368 + y="439.30746" 94.369 + x="175.95195" 94.370 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.371 + xml:space="preserve" 94.372 + transform="matrix(0.97994281,-0.19927893,0.19927893,0.97994281,0,0)"><tspan 94.373 + id="tspan5072" 94.374 + y="439.30746" 94.375 + x="175.95195" 94.376 + sodipodi:role="line" 94.377 + style="font-size:8px;text-align:center;text-anchor:middle">Top Level Fn</tspan></text> 94.378 + <text 94.379 + transform="matrix(0.97994281,-0.19927893,0.19927893,0.97994281,0,0)" 94.380 + xml:space="preserve" 94.381 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.382 + x="395.85803" 94.383 + y="481.98584" 94.384 + id="text5074" 94.385 + sodipodi:linespacing="100%"><tspan 94.386 + style="font-size:8px;text-align:center;text-anchor:middle" 94.387 + sodipodi:role="line" 94.388 + x="395.85803" 94.389 + y="481.98584" 94.390 + id="tspan5076">Top Level Fn</tspan></text> 94.391 + <text 94.392 + sodipodi:linespacing="100%" 94.393 + id="text5078" 94.394 + y="647.01514" 94.395 + x="364.33911" 94.396 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.397 + xml:space="preserve" 94.398 + transform="matrix(0.97994281,-0.19927893,0.19927893,0.97994281,0,0)"><tspan 94.399 + id="tspan5080" 94.400 + y="647.01514" 94.401 + x="364.33911" 94.402 + sodipodi:role="line" 94.403 + style="font-size:8px;text-align:center;text-anchor:middle">Top Level Fn</tspan></text> 94.404 + <path 94.405 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999996, 2.99999996;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 94.406 + d="m 458.9835,568.02605 c 36.7665,0 36.7665,0 36.7665,0" 94.407 + id="path5082" 94.408 + inkscape:connector-curvature="0" /> 94.409 + <path 94.410 + inkscape:connector-curvature="0" 94.411 + id="path5084" 94.412 + d="m 457.32649,728.02605 c 38.42351,0 38.42351,0 38.42351,0" 94.413 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999996, 2.99999996;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 94.414 + <path 94.415 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 94.416 + d="m 514.02904,406.01894 c 0,5.6572 0,5.6572 0,5.6572" 94.417 + id="path5092" 94.418 + inkscape:connector-curvature="0" 94.419 + sodipodi:nodetypes="cc" /> 94.420 + <path 94.421 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 94.422 + d="m 514.24714,412.02605 c 85.56237,0 85.56237,0 85.56237,0" 94.423 + id="path5094" 94.424 + inkscape:connector-curvature="0" /> 94.425 + <path 94.426 + inkscape:connector-curvature="0" 94.427 + id="path5096" 94.428 + d="m 602.77166,486.02605 c -88.41298,0 -88.41298,0 -88.41298,0" 94.429 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 94.430 + <text 94.431 + transform="matrix(0.97994281,-0.19927893,0.19927893,0.97994281,0,0)" 94.432 + xml:space="preserve" 94.433 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.434 + x="332.45419" 94.435 + y="803.80713" 94.436 + id="text5114" 94.437 + sodipodi:linespacing="100%"><tspan 94.438 + style="font-size:8px;text-align:center;text-anchor:middle" 94.439 + sodipodi:role="line" 94.440 + x="332.45419" 94.441 + y="803.80713" 94.442 + id="tspan5116">Top Level Fn</tspan></text> 94.443 + <text 94.444 + sodipodi:linespacing="100%" 94.445 + id="text5136" 94.446 + y="731.42468" 94.447 + x="517.16797" 94.448 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.449 + xml:space="preserve"><tspan 94.450 + id="tspan5138" 94.451 + y="731.42468" 94.452 + x="517.16797" 94.453 + sodipodi:role="line" 94.454 + style="text-align:center;text-anchor:middle;fill:#008000">Work_Fn</tspan></text> 94.455 + <path 94.456 + sodipodi:nodetypes="cc" 94.457 + inkscape:connector-curvature="0" 94.458 + id="path5140" 94.459 + d="m 514.02904,486.31987 c 0,26.21842 0,26.21842 0,26.21842" 94.460 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 94.461 + <path 94.462 + inkscape:connector-curvature="0" 94.463 + id="path5142" 94.464 + d="m 514.2471,512.02605 c 87.58783,0 87.58783,0 87.58783,0" 94.465 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 94.466 + <text 94.467 + sodipodi:linespacing="100%" 94.468 + id="text5157" 94.469 + y="498.71182" 94.470 + x="604.78461" 94.471 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.472 + xml:space="preserve"><tspan 94.473 + id="tspan5161" 94.474 + y="498.71182" 94.475 + x="604.78461" 94.476 + sodipodi:role="line" 94.477 + style="text-align:center;text-anchor:middle;fill:#800000">end VP</tspan><tspan 94.478 + y="508.71182" 94.479 + x="604.78461" 94.480 + sodipodi:role="line" 94.481 + style="text-align:center;text-anchor:middle;fill:#800000" 94.482 + id="tspan5207">wrapper Fn</tspan></text> 94.483 + <path 94.484 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 94.485 + d="m 602.26584,518.02605 c 63.99676,0 63.99676,0 63.99676,0" 94.486 + id="path5165" 94.487 + inkscape:connector-curvature="0" /> 94.488 + <path 94.489 + sodipodi:nodetypes="cc" 94.490 + inkscape:connector-curvature="0" 94.491 + id="path5179" 94.492 + d="m 514.02904,574.01895 c 0,5.6572 0,5.6572 0,5.6572" 94.493 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 94.494 + <path 94.495 + sodipodi:nodetypes="cc" 94.496 + inkscape:connector-curvature="0" 94.497 + id="path5209" 94.498 + d="m 602.02904,510.31985 c 0,7.35629 0,7.35629 0,7.35629" 94.499 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 94.500 + <text 94.501 + xml:space="preserve" 94.502 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.503 + x="497.16797" 94.504 + y="399.42468" 94.505 + id="text5211" 94.506 + sodipodi:linespacing="100%"><tspan 94.507 + style="text-align:center;text-anchor:middle" 94.508 + sodipodi:role="line" 94.509 + x="497.16797" 94.510 + y="399.42468" 94.511 + id="tspan5215" /></text> 94.512 + <path 94.513 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 94.514 + d="m 602.02904,412.21843 c 0,19.4577 0,19.4577 0,19.4577" 94.515 + id="path5217" 94.516 + inkscape:connector-curvature="0" 94.517 + sodipodi:nodetypes="cc" /> 94.518 + <path 94.519 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 94.520 + d="m 602.24714,432.02605 c 64.71029,0 64.71029,0 64.71029,0" 94.521 + id="path5219" 94.522 + inkscape:connector-curvature="0" /> 94.523 + <path 94.524 + inkscape:connector-curvature="0" 94.525 + id="path5221" 94.526 + d="m 666.85635,482.02605 c -65.78483,0 -65.78483,0 -65.78483,0" 94.527 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 94.528 + <path 94.529 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 94.530 + d="m 668.02904,430.63925 c 0,13.68455 0,13.68455 0,13.68455" 94.531 + id="path5223" 94.532 + inkscape:connector-curvature="0" 94.533 + sodipodi:nodetypes="cc" /> 94.534 + <path 94.535 + sodipodi:nodetypes="cc" 94.536 + inkscape:connector-curvature="0" 94.537 + id="path5229" 94.538 + d="m 602.02904,481.22687 c 0,5.5885 0,5.5885 0,5.5885" 94.539 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 94.540 + <path 94.541 + sodipodi:nodetypes="cc" 94.542 + inkscape:connector-curvature="0" 94.543 + id="path5235" 94.544 + d="m 668.02904,468.63925 c 0,13.68455 0,13.68455 0,13.68455" 94.545 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 94.546 + <path 94.547 + inkscape:connector-curvature="0" 94.548 + id="path5237" 94.549 + d="m 668.24715,442.02605 c 57.74832,0 57.74832,0 57.74832,0" 94.550 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 94.551 + <text 94.552 + sodipodi:linespacing="100%" 94.553 + id="text5239" 94.554 + y="800.22192" 94.555 + x="207.23195" 94.556 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.557 + xml:space="preserve" 94.558 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 94.559 + id="tspan5241" 94.560 + y="800.22192" 94.561 + x="207.23195" 94.562 + sodipodi:role="line" 94.563 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan><tspan 94.564 + y="808.22192" 94.565 + x="207.23195" 94.566 + sodipodi:role="line" 94.567 + style="font-size:8px;text-align:center;text-anchor:middle" 94.568 + id="tspan5243">and switch</tspan><tspan 94.569 + y="816.22192" 94.570 + x="207.23195" 94.571 + sodipodi:role="line" 94.572 + style="font-size:8px;text-align:center;text-anchor:middle" 94.573 + id="tspan5245">to runtime</tspan></text> 94.574 + <path 94.575 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 94.576 + d="m 725.94909,470.02605 c -56.8776,0 -56.8776,0 -56.8776,0" 94.577 + id="path5247" 94.578 + inkscape:connector-curvature="0" /> 94.579 + <text 94.580 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 94.581 + xml:space="preserve" 94.582 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.583 + x="176.58183" 94.584 + y="829.00677" 94.585 + id="text5249" 94.586 + sodipodi:linespacing="100%"><tspan 94.587 + id="tspan5255" 94.588 + style="font-size:8px;text-align:center;text-anchor:middle" 94.589 + sodipodi:role="line" 94.590 + x="176.58183" 94.591 + y="829.00677">return</tspan><tspan 94.592 + style="font-size:8px;text-align:center;text-anchor:middle" 94.593 + sodipodi:role="line" 94.594 + x="176.58183" 94.595 + y="837.00677" 94.596 + id="tspan5261">from</tspan><tspan 94.597 + style="font-size:8px;text-align:center;text-anchor:middle" 94.598 + sodipodi:role="line" 94.599 + x="176.58183" 94.600 + y="845.00677" 94.601 + id="tspan5263">suspend</tspan></text> 94.602 + <text 94.603 + sodipodi:linespacing="100%" 94.604 + id="text5345" 94.605 + y="419.42465" 94.606 + x="667.38037" 94.607 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.608 + xml:space="preserve"><tspan 94.609 + id="tspan5349" 94.610 + y="419.42465" 94.611 + x="667.38037" 94.612 + sodipodi:role="line" 94.613 + style="text-align:center;text-anchor:middle;fill:#000080">PR primitive Fn</tspan><tspan 94.614 + y="429.42465" 94.615 + x="667.38037" 94.616 + sodipodi:role="line" 94.617 + style="text-align:center;text-anchor:middle;fill:#000080" 94.618 + id="tspan5353">to send request</tspan></text> 94.619 + <text 94.620 + sodipodi:linespacing="100%" 94.621 + id="text5355" 94.622 + y="416.71411" 94.623 + x="555.39612" 94.624 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.625 + xml:space="preserve" 94.626 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 94.627 + id="tspan5357" 94.628 + y="416.71411" 94.629 + x="555.39612" 94.630 + sodipodi:role="line" 94.631 + style="font-size:8px;text-align:center;text-anchor:middle">normal call</tspan></text> 94.632 + <path 94.633 + sodipodi:nodetypes="cc" 94.634 + inkscape:connector-curvature="0" 94.635 + id="path5359" 94.636 + d="m 668.02904,517.28283 c 0,13.68455 0,13.68455 0,13.68455" 94.637 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 94.638 + <path 94.639 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 94.640 + d="m 668.24715,528.66963 c 57.74832,0 57.74832,0 57.74832,0" 94.641 + id="path5361" 94.642 + inkscape:connector-curvature="0" /> 94.643 + <text 94.644 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 94.645 + xml:space="preserve" 94.646 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.647 + x="146.02351" 94.648 + y="863.44775" 94.649 + id="text5363" 94.650 + sodipodi:linespacing="100%"><tspan 94.651 + style="font-size:8px;text-align:center;text-anchor:middle" 94.652 + sodipodi:role="line" 94.653 + x="146.02351" 94.654 + y="863.44775" 94.655 + id="tspan5365">suspend</tspan><tspan 94.656 + id="tspan5367" 94.657 + style="font-size:8px;text-align:center;text-anchor:middle" 94.658 + sodipodi:role="line" 94.659 + x="146.02351" 94.660 + y="871.44775">and switch</tspan><tspan 94.661 + id="tspan5369" 94.662 + style="font-size:8px;text-align:center;text-anchor:middle" 94.663 + sodipodi:role="line" 94.664 + x="146.02351" 94.665 + y="879.44775">to runtime</tspan></text> 94.666 + <text 94.667 + sodipodi:linespacing="100%" 94.668 + id="text5371" 94.669 + y="565.42468" 94.670 + x="604.59662" 94.671 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.672 + xml:space="preserve"><tspan 94.673 + id="tspan5373" 94.674 + y="565.42468" 94.675 + x="604.59662" 94.676 + sodipodi:role="line" 94.677 + style="text-align:center;text-anchor:middle;fill:#800000">Mutex Acquire</tspan><tspan 94.678 + id="tspan5375" 94.679 + y="575.42468" 94.680 + x="604.59662" 94.681 + sodipodi:role="line" 94.682 + style="text-align:center;text-anchor:middle;fill:#800000">wrapper Fn</tspan></text> 94.683 + <path 94.684 + inkscape:connector-curvature="0" 94.685 + id="path5379" 94.686 + d="m 514.24714,580.02605 c 85.56237,0 85.56237,0 85.56237,0" 94.687 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 94.688 + <path 94.689 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 94.690 + d="m 602.77166,654.02605 c -88.41298,0 -88.41298,0 -88.41298,0" 94.691 + id="path5381" 94.692 + inkscape:connector-curvature="0" /> 94.693 + <text 94.694 + xml:space="preserve" 94.695 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.696 + x="604.78461" 94.697 + y="666.71179" 94.698 + id="text5387" 94.699 + sodipodi:linespacing="100%"><tspan 94.700 + style="text-align:center;text-anchor:middle;fill:#800000" 94.701 + sodipodi:role="line" 94.702 + x="604.78461" 94.703 + y="666.71179" 94.704 + id="tspan5389">end VP</tspan><tspan 94.705 + id="tspan5391" 94.706 + style="text-align:center;text-anchor:middle;fill:#800000" 94.707 + sodipodi:role="line" 94.708 + x="604.78461" 94.709 + y="676.71179">wrapper Fn</tspan></text> 94.710 + <path 94.711 + inkscape:connector-curvature="0" 94.712 + id="path5393" 94.713 + d="m 602.289,686.02605 c 65.24023,0 65.24023,0 65.24023,0" 94.714 + style="fill:none;stroke:#000000;stroke-width:0.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 94.715 + <path 94.716 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 94.717 + d="m 602.02904,678.31985 c 0,7.35629 0,7.35629 0,7.35629" 94.718 + id="path5401" 94.719 + inkscape:connector-curvature="0" 94.720 + sodipodi:nodetypes="cc" /> 94.721 + <path 94.722 + sodipodi:nodetypes="cc" 94.723 + inkscape:connector-curvature="0" 94.724 + id="path5403" 94.725 + d="m 602.02904,580.21843 c 0,19.4577 0,19.4577 0,19.4577" 94.726 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 94.727 + <path 94.728 + inkscape:connector-curvature="0" 94.729 + id="path5405" 94.730 + d="m 602.6148,600.02605 c 64.1779,0 64.1779,0 64.1779,0" 94.731 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 94.732 + <path 94.733 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 94.734 + d="m 668.13452,650.02605 c -67.06305,0 -67.06305,0 -67.06305,0" 94.735 + id="path5407" 94.736 + inkscape:connector-curvature="0" /> 94.737 + <path 94.738 + sodipodi:nodetypes="cc" 94.739 + inkscape:connector-curvature="0" 94.740 + id="path5409" 94.741 + d="m 668.02904,598.63925 c 0,13.68455 0,13.68455 0,13.68455" 94.742 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 94.743 + <path 94.744 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 94.745 + d="m 602.02904,649.22687 c 0,5.5885 0,5.5885 0,5.5885" 94.746 + id="path5411" 94.747 + inkscape:connector-curvature="0" 94.748 + sodipodi:nodetypes="cc" /> 94.749 + <path 94.750 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 94.751 + d="m 668.02904,636.63925 c 0,13.68455 0,13.68455 0,13.68455" 94.752 + id="path5417" 94.753 + inkscape:connector-curvature="0" 94.754 + sodipodi:nodetypes="cc" /> 94.755 + <path 94.756 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 94.757 + d="m 668.24715,610.02605 c 57.74832,0 57.74832,0 57.74832,0" 94.758 + id="path5419" 94.759 + inkscape:connector-curvature="0" /> 94.760 + <text 94.761 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 94.762 + xml:space="preserve" 94.763 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.764 + x="90.37989" 94.765 + y="920.92737" 94.766 + id="text5421" 94.767 + sodipodi:linespacing="100%"><tspan 94.768 + style="font-size:8px;text-align:center;text-anchor:middle" 94.769 + sodipodi:role="line" 94.770 + x="90.37989" 94.771 + y="920.92737" 94.772 + id="tspan5423">suspend</tspan><tspan 94.773 + id="tspan5425" 94.774 + style="font-size:8px;text-align:center;text-anchor:middle" 94.775 + sodipodi:role="line" 94.776 + x="90.37989" 94.777 + y="928.92737">and switch</tspan><tspan 94.778 + id="tspan5427" 94.779 + style="font-size:8px;text-align:center;text-anchor:middle" 94.780 + sodipodi:role="line" 94.781 + x="90.37989" 94.782 + y="936.92737">to runtime</tspan></text> 94.783 + <path 94.784 + inkscape:connector-curvature="0" 94.785 + id="path5429" 94.786 + d="m 725.94909,638.02605 c -56.8776,0 -56.8776,0 -56.8776,0" 94.787 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 94.788 + <text 94.789 + sodipodi:linespacing="100%" 94.790 + id="text5431" 94.791 + y="951.10333" 94.792 + x="61.166965" 94.793 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.794 + xml:space="preserve" 94.795 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 94.796 + y="951.10333" 94.797 + x="61.166965" 94.798 + sodipodi:role="line" 94.799 + style="font-size:8px;text-align:center;text-anchor:middle" 94.800 + id="tspan5433">return</tspan><tspan 94.801 + id="tspan5435" 94.802 + y="959.10333" 94.803 + x="61.166965" 94.804 + sodipodi:role="line" 94.805 + style="font-size:8px;text-align:center;text-anchor:middle">from</tspan><tspan 94.806 + id="tspan5437" 94.807 + y="967.10333" 94.808 + x="61.166965" 94.809 + sodipodi:role="line" 94.810 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan></text> 94.811 + <text 94.812 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 94.813 + xml:space="preserve" 94.814 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.815 + x="556.1333" 94.816 + y="584.71155" 94.817 + id="text5445" 94.818 + sodipodi:linespacing="100%"><tspan 94.819 + style="font-size:8px;text-align:center;text-anchor:middle" 94.820 + sodipodi:role="line" 94.821 + x="556.1333" 94.822 + y="584.71155" 94.823 + id="tspan5447">normal call</tspan></text> 94.824 + <path 94.825 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 94.826 + d="m 668.02904,685.28283 c 0,13.68455 0,13.68455 0,13.68455" 94.827 + id="path5449" 94.828 + inkscape:connector-curvature="0" 94.829 + sodipodi:nodetypes="cc" /> 94.830 + <path 94.831 + inkscape:connector-curvature="0" 94.832 + id="path5451" 94.833 + d="m 668.24715,696.66963 c 57.74832,0 57.74832,0 57.74832,0" 94.834 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 94.835 + <text 94.836 + sodipodi:linespacing="100%" 94.837 + id="text5453" 94.838 + y="984.15332" 94.839 + x="29.171814" 94.840 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.841 + xml:space="preserve" 94.842 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 94.843 + id="tspan5455" 94.844 + y="984.15332" 94.845 + x="29.171814" 94.846 + sodipodi:role="line" 94.847 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan><tspan 94.848 + y="992.15332" 94.849 + x="29.171814" 94.850 + sodipodi:role="line" 94.851 + style="font-size:8px;text-align:center;text-anchor:middle" 94.852 + id="tspan5457">and switch</tspan><tspan 94.853 + y="1000.1533" 94.854 + x="29.171814" 94.855 + sodipodi:role="line" 94.856 + style="font-size:8px;text-align:center;text-anchor:middle" 94.857 + id="tspan5459">to runtime</tspan></text> 94.858 + <path 94.859 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 94.860 + d="m 514.02904,654.31987 c 0,26.21842 0,26.21842 0,26.21842" 94.861 + id="path5461" 94.862 + inkscape:connector-curvature="0" 94.863 + sodipodi:nodetypes="cc" /> 94.864 + <path 94.865 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 94.866 + d="m 514.2471,680.02605 c 87.58783,0 87.58783,0 87.58783,0" 94.867 + id="path5463" 94.868 + inkscape:connector-curvature="0" /> 94.869 + <text 94.870 + sodipodi:linespacing="100%" 94.871 + id="text5465" 94.872 + y="516.71179" 94.873 + x="555.83459" 94.874 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.875 + xml:space="preserve" 94.876 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 94.877 + id="tspan5467" 94.878 + y="516.71179" 94.879 + x="555.83459" 94.880 + sodipodi:role="line" 94.881 + style="font-size:8px;text-align:center;text-anchor:middle">normal call</tspan></text> 94.882 + <text 94.883 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 94.884 + xml:space="preserve" 94.885 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.886 + x="556.57275" 94.887 + y="684.71155" 94.888 + id="text5469" 94.889 + sodipodi:linespacing="100%"><tspan 94.890 + style="font-size:8px;text-align:center;text-anchor:middle" 94.891 + sodipodi:role="line" 94.892 + x="556.57275" 94.893 + y="684.71155" 94.894 + id="tspan5471">normal call</tspan></text> 94.895 + <g 94.896 + transform="matrix(1,0,0,0.71130685,-16,166.52913)" 94.897 + id="g8395"> 94.898 + <rect 94.899 + y="313.58255" 94.900 + x="310.40247" 94.901 + height="52.250008" 94.902 + width="65.276405" 94.903 + id="rect8397" 94.904 + style="fill:none;stroke:#000000;stroke-width:1.28076112;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 94.905 + </g> 94.906 + <text 94.907 + xml:space="preserve" 94.908 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.909 + x="326.92542" 94.910 + y="897.76575" 94.911 + id="text8411" 94.912 + sodipodi:linespacing="100%"><tspan 94.913 + style="text-align:center;text-anchor:middle" 94.914 + sodipodi:role="line" 94.915 + id="tspan8413" 94.916 + x="326.92542" 94.917 + y="897.76575">Master</tspan><tspan 94.918 + style="font-size:8px;text-align:center;text-anchor:middle" 94.919 + id="tspan8415" 94.920 + sodipodi:role="line" 94.921 + x="326.92542" 94.922 + y="906.2005">(runtime system)</tspan><tspan 94.923 + id="tspan8417" 94.924 + style="font-size:8px;text-align:center;text-anchor:middle" 94.925 + sodipodi:role="line" 94.926 + x="326.92542" 94.927 + y="914.2005">on core 2</tspan></text> 94.928 + <g 94.929 + id="g8419" 94.930 + transform="translate(-16,574)"> 94.931 + <rect 94.932 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 94.933 + id="rect8421" 94.934 + width="65.276405" 94.935 + height="52.250008" 94.936 + x="310.40247" 94.937 + y="313.58255" /> 94.938 + </g> 94.939 + <text 94.940 + sodipodi:linespacing="100%" 94.941 + id="text8425" 94.942 + y="913.42468" 94.943 + x="131.19971" 94.944 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.945 + xml:space="preserve"><tspan 94.946 + id="tspan8427" 94.947 + y="913.42468" 94.948 + x="131.19971" 94.949 + sodipodi:role="line" 94.950 + style="text-align:center;text-anchor:middle;fill:#800000">Handler</tspan><tspan 94.951 + id="tspan8429" 94.952 + y="923.42468" 94.953 + x="131.19971" 94.954 + sodipodi:role="line" 94.955 + style="text-align:center;text-anchor:middle;fill:#800000">for Language</tspan><tspan 94.956 + id="tspan8431" 94.957 + y="933.42468" 94.958 + x="131.19971" 94.959 + sodipodi:role="line" 94.960 + style="text-align:center;text-anchor:middle;fill:#800000">Construct1</tspan></text> 94.961 + <text 94.962 + xml:space="preserve" 94.963 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.964 + x="131.19971" 94.965 + y="993.42468" 94.966 + id="text8433" 94.967 + sodipodi:linespacing="100%"><tspan 94.968 + style="text-align:center;text-anchor:middle;fill:#800000" 94.969 + sodipodi:role="line" 94.970 + x="131.19971" 94.971 + y="993.42468" 94.972 + id="tspan8435">Handler</tspan><tspan 94.973 + style="text-align:center;text-anchor:middle;fill:#800000" 94.974 + sodipodi:role="line" 94.975 + x="131.19971" 94.976 + y="1003.4247" 94.977 + id="tspan8437">for Language</tspan><tspan 94.978 + style="text-align:center;text-anchor:middle;fill:#800000" 94.979 + sodipodi:role="line" 94.980 + x="131.19971" 94.981 + y="1013.4247" 94.982 + id="tspan8439">Construct2</tspan></text> 94.983 + <text 94.984 + sodipodi:linespacing="100%" 94.985 + id="text8445" 94.986 + y="1039.4247" 94.987 + x="131.52441" 94.988 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.989 + xml:space="preserve"><tspan 94.990 + id="tspan8447" 94.991 + y="1039.4247" 94.992 + x="131.52441" 94.993 + sodipodi:role="line" 94.994 + style="text-align:center;text-anchor:middle;fill:#800000">Assigner Fn</tspan></text> 94.995 + <text 94.996 + xml:space="preserve" 94.997 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.998 + x="131.19971" 94.999 + y="955.42468" 94.1000 + id="text8457" 94.1001 + sodipodi:linespacing="100%"><tspan 94.1002 + style="text-align:center;text-anchor:middle;fill:#800000" 94.1003 + sodipodi:role="line" 94.1004 + x="131.19971" 94.1005 + y="955.42468" 94.1006 + id="tspan8459">Handler</tspan><tspan 94.1007 + style="text-align:center;text-anchor:middle;fill:#800000" 94.1008 + sodipodi:role="line" 94.1009 + x="131.19971" 94.1010 + y="965.42468" 94.1011 + id="tspan8461">for Language</tspan><tspan 94.1012 + style="text-align:center;text-anchor:middle;fill:#800000" 94.1013 + sodipodi:role="line" 94.1014 + x="131.19971" 94.1015 + y="975.42468" 94.1016 + id="tspan8463">Construct1</tspan></text> 94.1017 + <path 94.1018 + inkscape:connector-curvature="0" 94.1019 + id="path8493" 94.1020 + d="m 193.99816,900.02605 c -117.505852,0 -117.505852,0 -117.505852,0" 94.1021 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000003, 3.00000003;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 94.1022 + <text 94.1023 + transform="matrix(0.97994281,-0.19927893,0.19927893,0.97994281,0,0)" 94.1024 + xml:space="preserve" 94.1025 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.1026 + x="-41.280613" 94.1027 + y="905.36578" 94.1028 + id="text8495" 94.1029 + sodipodi:linespacing="100%"><tspan 94.1030 + style="font-size:8px;text-align:center;text-anchor:middle" 94.1031 + sodipodi:role="line" 94.1032 + x="-41.280613" 94.1033 + y="905.36578" 94.1034 + id="tspan8497">Top Level Fn</tspan></text> 94.1035 + <path 94.1036 + sodipodi:nodetypes="cc" 94.1037 + inkscape:connector-curvature="0" 94.1038 + id="path9273" 94.1039 + d="m 514.02904,486.31987 c 0,26.21842 0,26.21842 0,26.21842" 94.1040 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 94.1041 + <path 94.1042 + sodipodi:nodetypes="cc" 94.1043 + inkscape:connector-curvature="0" 94.1044 + id="path9275" 94.1045 + d="m 476.02904,406.79398 c 0,35.61575 0,35.61575 0,35.61575" 94.1046 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:none" /> 94.1047 + <path 94.1048 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 94.1049 + d="m 468.24715,442.02605 c 13.34137,0 13.34137,0 13.34137,0" 94.1050 + id="path9277" 94.1051 + inkscape:connector-curvature="0" /> 94.1052 + <path 94.1053 + inkscape:connector-curvature="0" 94.1054 + id="path9279" 94.1055 + d="m 481.57781,470.02605 c -13.14022,0 -13.14022,0 -13.14022,0" 94.1056 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 94.1057 + <path 94.1058 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" 94.1059 + d="m 476.02904,470.3113 c 0,57.40944 0,57.40944 0,57.40944" 94.1060 + id="path9281" 94.1061 + inkscape:connector-curvature="0" 94.1062 + sodipodi:nodetypes="cc" /> 94.1063 + <path 94.1064 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 94.1065 + d="m 481.57781,529.27417 c -13.14022,0 -13.14022,0 -13.14022,0" 94.1066 + id="path9283" 94.1067 + inkscape:connector-curvature="0" /> 94.1068 + <text 94.1069 + transform="matrix(-0.01875541,0.9998241,-0.9998241,-0.01875541,0,0)" 94.1070 + xml:space="preserve" 94.1071 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.1072 + x="445.89752" 94.1073 + y="-468.24112" 94.1074 + id="text9285" 94.1075 + sodipodi:linespacing="100%"><tspan 94.1076 + style="text-align:center;text-anchor:middle;fill:#008000" 94.1077 + sodipodi:role="line" 94.1078 + x="445.89752" 94.1079 + y="-468.24112" 94.1080 + id="tspan9287">Timeline of SeedVP</tspan></text> 94.1081 + <text 94.1082 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 94.1083 + xml:space="preserve" 94.1084 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.1085 + x="485.50256" 94.1086 + y="441.02084" 94.1087 + id="text9289" 94.1088 + sodipodi:linespacing="100%"><tspan 94.1089 + style="font-size:8px;text-align:start;text-anchor:start" 94.1090 + sodipodi:role="line" 94.1091 + x="485.50256" 94.1092 + y="441.02084" 94.1093 + id="tspan9291">suspend</tspan></text> 94.1094 + <text 94.1095 + sodipodi:linespacing="100%" 94.1096 + id="text9293" 94.1097 + y="471.02069" 94.1098 + x="485.6344" 94.1099 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.1100 + xml:space="preserve" 94.1101 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 94.1102 + id="tspan9295" 94.1103 + y="471.02069" 94.1104 + x="485.6344" 94.1105 + sodipodi:role="line" 94.1106 + style="font-size:8px;text-align:start;text-anchor:start">resume</tspan></text> 94.1107 + <text 94.1108 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 94.1109 + xml:space="preserve" 94.1110 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.1111 + x="485.8858" 94.1112 + y="528.22565" 94.1113 + id="text9297" 94.1114 + sodipodi:linespacing="100%"><tspan 94.1115 + style="font-size:8px;text-align:start;text-anchor:start" 94.1116 + sodipodi:role="line" 94.1117 + x="485.8858" 94.1118 + y="528.22565" 94.1119 + id="tspan9299">end</tspan></text> 94.1120 + <text 94.1121 + sodipodi:linespacing="100%" 94.1122 + id="text9301" 94.1123 + y="357.42465" 94.1124 + x="63.167969" 94.1125 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.1126 + xml:space="preserve"><tspan 94.1127 + id="tspan9303" 94.1128 + y="357.42465" 94.1129 + x="63.167969" 94.1130 + sodipodi:role="line" 94.1131 + style="text-align:center;text-anchor:middle;fill:#000080">Proto-Runtime</tspan><tspan 94.1132 + id="tspan9305" 94.1133 + y="367.42465" 94.1134 + x="63.167969" 94.1135 + sodipodi:role="line" 94.1136 + style="text-align:center;text-anchor:middle;fill:#000080">Primitive</tspan><tspan 94.1137 + y="377.42465" 94.1138 + x="63.167969" 94.1139 + sodipodi:role="line" 94.1140 + style="text-align:center;text-anchor:middle;fill:#000080" 94.1141 + id="tspan9307">Code</tspan></text> 94.1142 + <text 94.1143 + xml:space="preserve" 94.1144 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.1145 + x="65.380371" 94.1146 + y="445.42465" 94.1147 + id="text9309" 94.1148 + sodipodi:linespacing="100%"><tspan 94.1149 + id="tspan9313" 94.1150 + style="text-align:center;text-anchor:middle;fill:#000080" 94.1151 + sodipodi:role="line" 94.1152 + x="65.380371" 94.1153 + y="445.42465">PR primitive Fn</tspan><tspan 94.1154 + style="text-align:center;text-anchor:middle;fill:#000080" 94.1155 + sodipodi:role="line" 94.1156 + x="65.380371" 94.1157 + y="455.42465" 94.1158 + id="tspan9317">to create VP</tspan></text> 94.1159 + <path 94.1160 + inkscape:connector-curvature="0" 94.1161 + id="path9321" 94.1162 + d="m 101.87629,449.27701 c 71.06548,12.76616 75.82677,13.24993 150.67864,41.1502 79.15373,29.50373 134.12108,64.97026 134.12108,64.97026" 94.1163 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000009, 3.00000009;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 94.1164 + sodipodi:nodetypes="csc" /> 94.1165 + <g 94.1166 + id="g9341" 94.1167 + transform="translate(44.002789,168)"> 94.1168 + <rect 94.1169 + y="389.58255" 94.1170 + x="346.40247" 94.1171 + height="37.165791" 94.1172 + width="65.276405" 94.1173 + id="rect9343" 94.1174 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 94.1175 + <text 94.1176 + xml:space="preserve" 94.1177 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.1178 + x="379.35806" 94.1179 + y="400.72159" 94.1180 + id="text9345" 94.1181 + sodipodi:linespacing="100%"><tspan 94.1182 + style="text-align:center;text-anchor:middle" 94.1183 + sodipodi:role="line" 94.1184 + x="379.35806" 94.1185 + y="400.72159" 94.1186 + id="tspan9347">VP 1</tspan><tspan 94.1187 + style="font-size:8px;text-align:center;text-anchor:middle" 94.1188 + sodipodi:role="line" 94.1189 + x="379.35806" 94.1190 + y="409.15637" 94.1191 + id="tspan9349">(created by</tspan><tspan 94.1192 + style="font-size:8px;text-align:center;text-anchor:middle" 94.1193 + sodipodi:role="line" 94.1194 + x="379.35806" 94.1195 + y="417.15637" 94.1196 + id="tspan9355">application,</tspan><tspan 94.1197 + style="font-size:8px;text-align:center;text-anchor:middle" 94.1198 + sodipodi:role="line" 94.1199 + x="379.35806" 94.1200 + y="425.15637" 94.1201 + id="tspan9746">on core 2)</tspan></text> 94.1202 + </g> 94.1203 + <g 94.1204 + transform="translate(44.002789,330)" 94.1205 + id="g9371"> 94.1206 + <rect 94.1207 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 94.1208 + id="rect9373" 94.1209 + width="65.276405" 94.1210 + height="37.165791" 94.1211 + x="346.40247" 94.1212 + y="389.58255" /> 94.1213 + <text 94.1214 + sodipodi:linespacing="100%" 94.1215 + id="text9375" 94.1216 + y="400.72159" 94.1217 + x="379.35806" 94.1218 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.1219 + xml:space="preserve"><tspan 94.1220 + id="tspan9377" 94.1221 + y="400.72159" 94.1222 + x="379.35806" 94.1223 + sodipodi:role="line" 94.1224 + style="text-align:center;text-anchor:middle">VP 2</tspan><tspan 94.1225 + id="tspan9379" 94.1226 + y="409.15637" 94.1227 + x="379.35806" 94.1228 + sodipodi:role="line" 94.1229 + style="font-size:8px;text-align:center;text-anchor:middle">(created by</tspan><tspan 94.1230 + id="tspan9381" 94.1231 + y="417.15637" 94.1232 + x="379.35806" 94.1233 + sodipodi:role="line" 94.1234 + style="font-size:8px;text-align:center;text-anchor:middle">application,</tspan><tspan 94.1235 + y="425.15637" 94.1236 + x="379.35806" 94.1237 + sodipodi:role="line" 94.1238 + style="font-size:8px;text-align:center;text-anchor:middle" 94.1239 + id="tspan9748">on core 3)</tspan></text> 94.1240 + </g> 94.1241 + <text 94.1242 + xml:space="preserve" 94.1243 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.1244 + x="202.41257" 94.1245 + y="403.42465" 94.1246 + id="text9512" 94.1247 + sodipodi:linespacing="100%"><tspan 94.1248 + style="text-align:center;text-anchor:middle;fill:#000080" 94.1249 + sodipodi:role="line" 94.1250 + x="202.41257" 94.1251 + y="403.42465" 94.1252 + id="tspan9514">Master Fn</tspan></text> 94.1253 + <path 94.1254 + sodipodi:nodetypes="cc" 94.1255 + inkscape:connector-curvature="0" 94.1256 + id="path9522" 94.1257 + d="m 205.27805,442.31985 c 0,7.35629 0,7.35629 0,7.35629" 94.1258 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 94.1259 + <path 94.1260 + inkscape:connector-curvature="0" 94.1261 + id="path9524" 94.1262 + d="m 205.05995,448.02605 c -67.19099,0 -67.19099,0 -67.19099,0" 94.1263 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 94.1264 + <path 94.1265 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 94.1266 + d="m 116.53543,810.02605 c 88.41298,0 88.41298,0 88.41298,0" 94.1267 + id="path9526" 94.1268 + inkscape:connector-curvature="0" /> 94.1269 + <path 94.1270 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 94.1271 + d="m 205.27805,810.31987 c 0,26.21842 0,26.21842 0,26.21842" 94.1272 + id="path9528" 94.1273 + inkscape:connector-curvature="0" 94.1274 + sodipodi:nodetypes="cc" /> 94.1275 + <path 94.1276 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 94.1277 + d="m 205.05999,836.02605 c -87.58783,0 -87.58783,0 -87.58783,0" 94.1278 + id="path9530" 94.1279 + inkscape:connector-curvature="0" /> 94.1280 + <text 94.1281 + xml:space="preserve" 94.1282 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.1283 + x="115.1133" 94.1284 + y="822.71179" 94.1285 + id="text9532" 94.1286 + sodipodi:linespacing="100%"><tspan 94.1287 + style="text-align:center;text-anchor:middle;fill:#800000" 94.1288 + sodipodi:role="line" 94.1289 + x="115.1133" 94.1290 + y="822.71179" 94.1291 + id="tspan9534">end VP</tspan><tspan 94.1292 + id="tspan9536" 94.1293 + style="text-align:center;text-anchor:middle;fill:#800000" 94.1294 + sodipodi:role="line" 94.1295 + x="115.1133" 94.1296 + y="832.71179">wrapper Fn</tspan></text> 94.1297 + <path 94.1298 + inkscape:connector-curvature="0" 94.1299 + id="path9538" 94.1300 + d="m 117.04125,842.02605 c -63.99676,0 -63.99676,0 -63.99676,0" 94.1301 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 94.1302 + <text 94.1303 + sodipodi:linespacing="100%" 94.1304 + id="text9540" 94.1305 + y="828.71179" 94.1306 + x="49.880333" 94.1307 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.1308 + xml:space="preserve"><tspan 94.1309 + id="tspan9542" 94.1310 + y="828.71179" 94.1311 + x="49.880333" 94.1312 + sodipodi:role="line" 94.1313 + style="text-align:center;text-anchor:middle;fill:#000080">send request</tspan><tspan 94.1314 + id="tspan9544" 94.1315 + y="838.71179" 94.1316 + x="49.880333" 94.1317 + sodipodi:role="line" 94.1318 + style="text-align:center;text-anchor:middle;fill:#000080">primitive Fn</tspan></text> 94.1319 + <path 94.1320 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 94.1321 + d="m 117.27805,834.31985 c 0,7.35629 0,7.35629 0,7.35629" 94.1322 + id="path9546" 94.1323 + inkscape:connector-curvature="0" 94.1324 + sodipodi:nodetypes="cc" /> 94.1325 + <path 94.1326 + sodipodi:nodetypes="cc" 94.1327 + inkscape:connector-curvature="0" 94.1328 + id="path9548" 94.1329 + d="m 137.27805,447.85824 c 0,11.43122 0,11.43122 0,11.43122" 94.1330 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 94.1331 + <path 94.1332 + inkscape:connector-curvature="0" 94.1333 + id="path9550" 94.1334 + d="m 137.57123,460.02605 c -69.22157,0 -69.22157,0 -69.22157,0" 94.1335 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 94.1336 + <path 94.1337 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 94.1338 + d="m 52.45074,806.02605 c 65.78483,0 65.78483,0 65.78483,0" 94.1339 + id="path9552" 94.1340 + inkscape:connector-curvature="0" /> 94.1341 + <path 94.1342 + sodipodi:nodetypes="cc" 94.1343 + inkscape:connector-curvature="0" 94.1344 + id="path9554" 94.1345 + d="m 205.27805,474.63925 c 0,13.68455 0,13.68455 0,13.68455" 94.1346 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 94.1347 + <path 94.1348 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 94.1349 + d="m 117.27805,805.22687 c 0,5.5885 0,5.5885 0,5.5885" 94.1350 + id="path9556" 94.1351 + inkscape:connector-curvature="0" 94.1352 + sodipodi:nodetypes="cc" /> 94.1353 + <path 94.1354 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 94.1355 + d="m 51.27805,792.63925 c 0,13.68455 0,13.68455 0,13.68455" 94.1356 + id="path9562" 94.1357 + inkscape:connector-curvature="0" 94.1358 + sodipodi:nodetypes="cc" /> 94.1359 + <path 94.1360 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 94.1361 + d="m 205.05994,486.02605 c -57.74832,0 -57.74832,0 -57.74832,0" 94.1362 + id="path9564" 94.1363 + inkscape:connector-curvature="0" /> 94.1364 + <text 94.1365 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 94.1366 + xml:space="preserve" 94.1367 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.1368 + x="-217.71529" 94.1369 + y="472.34747" 94.1370 + id="text9566" 94.1371 + sodipodi:linespacing="100%"><tspan 94.1372 + style="font-size:8px;text-align:center;text-anchor:middle" 94.1373 + sodipodi:role="line" 94.1374 + x="-217.71529" 94.1375 + y="472.34747" 94.1376 + id="tspan9568">suspend</tspan><tspan 94.1377 + id="tspan9570" 94.1378 + style="font-size:8px;text-align:center;text-anchor:middle" 94.1379 + sodipodi:role="line" 94.1380 + x="-217.71529" 94.1381 + y="480.34747">and switch</tspan><tspan 94.1382 + id="tspan9572" 94.1383 + style="font-size:8px;text-align:center;text-anchor:middle" 94.1384 + sodipodi:role="line" 94.1385 + x="-217.71529" 94.1386 + y="488.34747">to app VP</tspan></text> 94.1387 + <path 94.1388 + inkscape:connector-curvature="0" 94.1389 + id="path9574" 94.1390 + d="m -6.642,794.02605 c 56.8776,0 56.8776,0 56.8776,0" 94.1391 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 94.1392 + <text 94.1393 + sodipodi:linespacing="100%" 94.1394 + id="text9576" 94.1395 + y="576.25653" 94.1396 + x="-550.32233" 94.1397 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.1398 + xml:space="preserve" 94.1399 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 94.1400 + y="576.25653" 94.1401 + x="-550.32233" 94.1402 + sodipodi:role="line" 94.1403 + style="font-size:8px;text-align:center;text-anchor:middle" 94.1404 + id="tspan9578">return</tspan><tspan 94.1405 + id="tspan9580" 94.1406 + y="584.25653" 94.1407 + x="-550.32233" 94.1408 + sodipodi:role="line" 94.1409 + style="font-size:8px;text-align:center;text-anchor:middle">from</tspan><tspan 94.1410 + id="tspan9582" 94.1411 + y="592.25653" 94.1412 + x="-550.32233" 94.1413 + sodipodi:role="line" 94.1414 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan></text> 94.1415 + <path 94.1416 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 94.1417 + d="m 51.27805,841.28283 c 0,13.68455 0,13.68455 0,13.68455" 94.1418 + id="path9594" 94.1419 + inkscape:connector-curvature="0" 94.1420 + sodipodi:nodetypes="cc" /> 94.1421 + <path 94.1422 + inkscape:connector-curvature="0" 94.1423 + id="path9596" 94.1424 + d="m 51.05994,852.66963 c -57.74832,0 -57.74832,0 -57.74832,0" 94.1425 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 94.1426 + <text 94.1427 + sodipodi:linespacing="100%" 94.1428 + id="text9598" 94.1429 + y="607.01007" 94.1430 + x="-584.68982" 94.1431 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.1432 + xml:space="preserve" 94.1433 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 94.1434 + id="tspan9600" 94.1435 + y="607.01007" 94.1436 + x="-584.68982" 94.1437 + sodipodi:role="line" 94.1438 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan><tspan 94.1439 + y="615.01007" 94.1440 + x="-584.68982" 94.1441 + sodipodi:role="line" 94.1442 + style="font-size:8px;text-align:center;text-anchor:middle" 94.1443 + id="tspan9602">and switch</tspan><tspan 94.1444 + y="623.01007" 94.1445 + x="-584.68982" 94.1446 + sodipodi:role="line" 94.1447 + style="font-size:8px;text-align:center;text-anchor:middle" 94.1448 + id="tspan9604">to runtime</tspan></text> 94.1449 + <text 94.1450 + transform="matrix(-0.99999036,0.00439064,0.00439064,0.99999036,0,0)" 94.1451 + xml:space="preserve" 94.1452 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.1453 + x="-162.04274" 94.1454 + y="843.867" 94.1455 + id="text9606" 94.1456 + sodipodi:linespacing="100%"><tspan 94.1457 + style="font-size:8px;text-align:center;text-anchor:middle" 94.1458 + sodipodi:role="line" 94.1459 + x="-162.04274" 94.1460 + y="843.867" 94.1461 + id="tspan9608">normal call</tspan></text> 94.1462 + <text 94.1463 + transform="matrix(-0.99999036,0.00439064,0.00439064,0.99999036,0,0)" 94.1464 + xml:space="preserve" 94.1465 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.1466 + x="-92.01651" 94.1467 + y="849.56036" 94.1468 + id="text9610" 94.1469 + sodipodi:linespacing="100%"><tspan 94.1470 + style="font-size:8px;text-align:center;text-anchor:middle" 94.1471 + sodipodi:role="line" 94.1472 + x="-92.01651" 94.1473 + y="849.56036" 94.1474 + id="tspan9612">normal call</tspan></text> 94.1475 + <path 94.1476 + sodipodi:nodetypes="cc" 94.1477 + inkscape:connector-curvature="0" 94.1478 + id="path9614" 94.1479 + d="m 205.27805,442.31985 c 0,7.35629 0,7.35629 0,7.35629" 94.1480 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 94.1481 + <path 94.1482 + sodipodi:nodetypes="cc" 94.1483 + inkscape:connector-curvature="0" 94.1484 + id="path9616" 94.1485 + d="m 205.27805,442.31985 c 0,7.35629 0,7.35629 0,7.35629" 94.1486 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 94.1487 + <path 94.1488 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 94.1489 + d="m 205.27805,810.31987 c 0,26.21842 0,26.21842 0,26.21842" 94.1490 + id="path9618" 94.1491 + inkscape:connector-curvature="0" 94.1492 + sodipodi:nodetypes="cc" /> 94.1493 + <path 94.1494 + inkscape:connector-curvature="0" 94.1495 + id="path9648" 94.1496 + d="m 468.24715,407.42364 c 13.34137,0 13.34137,0 13.34137,0" 94.1497 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 94.1498 + <text 94.1499 + sodipodi:linespacing="100%" 94.1500 + id="text9654" 94.1501 + y="409.02243" 94.1502 + x="485.36194" 94.1503 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.1504 + xml:space="preserve" 94.1505 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 94.1506 + id="tspan9656" 94.1507 + y="409.02243" 94.1508 + x="485.36194" 94.1509 + sodipodi:role="line" 94.1510 + style="font-size:8px;text-align:start;text-anchor:start">start</tspan></text> 94.1511 + <path 94.1512 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:none" 94.1513 + d="m 476.02904,574.79398 c 0,35.61575 0,35.61575 0,35.61575" 94.1514 + id="path9658" 94.1515 + inkscape:connector-curvature="0" 94.1516 + sodipodi:nodetypes="cc" /> 94.1517 + <path 94.1518 + inkscape:connector-curvature="0" 94.1519 + id="path9660" 94.1520 + d="m 468.24715,610.02605 c 13.34137,0 13.34137,0 13.34137,0" 94.1521 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 94.1522 + <path 94.1523 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 94.1524 + d="m 481.57781,638.02605 c -13.14022,0 -13.14022,0 -13.14022,0" 94.1525 + id="path9662" 94.1526 + inkscape:connector-curvature="0" /> 94.1527 + <text 94.1528 + sodipodi:linespacing="100%" 94.1529 + id="text9668" 94.1530 + y="-471.39224" 94.1531 + x="613.86792" 94.1532 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.1533 + xml:space="preserve" 94.1534 + transform="matrix(-0.01875541,0.9998241,-0.9998241,-0.01875541,0,0)"><tspan 94.1535 + y="-471.39224" 94.1536 + x="613.86792" 94.1537 + sodipodi:role="line" 94.1538 + style="text-align:center;text-anchor:middle;fill:#008000" 94.1539 + id="tspan9740">Timeline of VP 1</tspan></text> 94.1540 + <text 94.1541 + sodipodi:linespacing="100%" 94.1542 + id="text9672" 94.1543 + y="609.01917" 94.1544 + x="486.23993" 94.1545 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.1546 + xml:space="preserve" 94.1547 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 94.1548 + id="tspan9674" 94.1549 + y="609.01917" 94.1550 + x="486.23993" 94.1551 + sodipodi:role="line" 94.1552 + style="font-size:8px;text-align:start;text-anchor:start">suspend</tspan></text> 94.1553 + <text 94.1554 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 94.1555 + xml:space="preserve" 94.1556 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.1557 + x="486.37177" 94.1558 + y="639.0191" 94.1559 + id="text9676" 94.1560 + sodipodi:linespacing="100%"><tspan 94.1561 + style="font-size:8px;text-align:start;text-anchor:start" 94.1562 + sodipodi:role="line" 94.1563 + x="486.37177" 94.1564 + y="639.0191" 94.1565 + id="tspan9678">resume</tspan></text> 94.1566 + <path 94.1567 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 94.1568 + d="m 468.24715,575.42364 c 13.34137,0 13.34137,0 13.34137,0" 94.1569 + id="path9684" 94.1570 + inkscape:connector-curvature="0" /> 94.1571 + <text 94.1572 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 94.1573 + xml:space="preserve" 94.1574 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.1575 + x="486.0993" 94.1576 + y="577.02075" 94.1577 + id="text9686" 94.1578 + sodipodi:linespacing="100%"><tspan 94.1579 + style="font-size:8px;text-align:start;text-anchor:start" 94.1580 + sodipodi:role="line" 94.1581 + x="486.0993" 94.1582 + y="577.02075" 94.1583 + id="tspan9688">start</tspan></text> 94.1584 + <path 94.1585 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:none" 94.1586 + d="m 266.02904,441.43112 c 0,28.2402 0,28.2402 0,28.2402" 94.1587 + id="path9690" 94.1588 + inkscape:connector-curvature="0" 94.1589 + sodipodi:nodetypes="cc" /> 94.1590 + <path 94.1591 + inkscape:connector-curvature="0" 94.1592 + id="path9692" 94.1593 + d="m 258.24715,442.02605 c 13.34137,0 13.34137,0 13.34137,0" 94.1594 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 94.1595 + <path 94.1596 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 94.1597 + d="m 271.57781,470.02605 c -13.14022,0 -13.14022,0 -13.14022,0" 94.1598 + id="path9694" 94.1599 + inkscape:connector-curvature="0" /> 94.1600 + <text 94.1601 + sodipodi:linespacing="100%" 94.1602 + id="text9700" 94.1603 + y="-286.46057" 94.1604 + x="459.30908" 94.1605 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.1606 + xml:space="preserve" 94.1607 + transform="matrix(-0.01875541,0.9998241,-0.9998241,-0.01875541,0,0)"><tspan 94.1608 + y="-286.46057" 94.1609 + x="459.30908" 94.1610 + sodipodi:role="line" 94.1611 + style="text-align:center;text-anchor:middle;fill:#008000" 94.1612 + id="tspan9736">Timeline of Master on core 1</tspan></text> 94.1613 + <text 94.1614 + sodipodi:linespacing="100%" 94.1615 + id="text9704" 94.1616 + y="470.12714" 94.1617 + x="261.32681" 94.1618 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.1619 + xml:space="preserve" 94.1620 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 94.1621 + id="tspan9706" 94.1622 + y="470.12714" 94.1623 + x="261.32681" 94.1624 + sodipodi:role="line" 94.1625 + style="font-size:8px;text-align:end;text-anchor:end">suspend</tspan></text> 94.1626 + <text 94.1627 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 94.1628 + xml:space="preserve" 94.1629 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.1630 + x="258.75574" 94.1631 + y="444.1272" 94.1632 + id="text9708" 94.1633 + sodipodi:linespacing="100%"><tspan 94.1634 + style="font-size:8px;text-align:end;text-anchor:end" 94.1635 + sodipodi:role="line" 94.1636 + x="258.75574" 94.1637 + y="444.1272" 94.1638 + id="tspan9710">resume</tspan></text> 94.1639 + <path 94.1640 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 94.1641 + d="m 258.24715,407.42364 c 13.34137,0 13.34137,0 13.34137,0" 94.1642 + id="path9716" 94.1643 + inkscape:connector-curvature="0" /> 94.1644 + <text 94.1645 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 94.1646 + xml:space="preserve" 94.1647 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.1648 + x="257.81323" 94.1649 + y="410.09369" 94.1650 + id="text9718" 94.1651 + sodipodi:linespacing="100%"><tspan 94.1652 + style="font-size:8px;text-align:end;text-anchor:end" 94.1653 + sodipodi:role="line" 94.1654 + x="257.81323" 94.1655 + y="410.09369" 94.1656 + id="tspan9720">start</tspan></text> 94.1657 + <path 94.1658 + sodipodi:nodetypes="cc" 94.1659 + inkscape:connector-curvature="0" 94.1660 + id="path9722" 94.1661 + d="m 266.02904,529.43112 c 0,10.33165 0,10.33165 0,10.33165" 94.1662 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" /> 94.1663 + <path 94.1664 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 94.1665 + d="m 258.24715,530.02605 c 13.34137,0 13.34137,0 13.34137,0" 94.1666 + id="path9724" 94.1667 + inkscape:connector-curvature="0" /> 94.1668 + <text 94.1669 + sodipodi:linespacing="100%" 94.1670 + id="text9932" 94.1671 + y="452.53967" 94.1672 + x="180.9785" 94.1673 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.1674 + xml:space="preserve" 94.1675 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)"><tspan 94.1676 + id="tspan9934" 94.1677 + y="452.53967" 94.1678 + x="180.9785" 94.1679 + sodipodi:role="line" 94.1680 + style="font-size:8px;text-align:center;text-anchor:middle">Call via Ptr</tspan></text> 94.1681 + <text 94.1682 + sodipodi:linespacing="100%" 94.1683 + id="text9936" 94.1684 + y="596.94305" 94.1685 + x="641.43158" 94.1686 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.1687 + xml:space="preserve" 94.1688 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)"><tspan 94.1689 + id="tspan9938" 94.1690 + y="596.94305" 94.1691 + x="641.43158" 94.1692 + sodipodi:role="line" 94.1693 + style="font-size:8px;text-align:center;text-anchor:middle">Call to dyn lib</tspan></text> 94.1694 + <text 94.1695 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)" 94.1696 + xml:space="preserve" 94.1697 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.1698 + x="642.85406" 94.1699 + y="682.93286" 94.1700 + id="text9940" 94.1701 + sodipodi:linespacing="100%"><tspan 94.1702 + style="font-size:8px;text-align:center;text-anchor:middle" 94.1703 + sodipodi:role="line" 94.1704 + x="642.85406" 94.1705 + y="682.93286" 94.1706 + id="tspan9942">Call to dyn lib</tspan></text> 94.1707 + <text 94.1708 + sodipodi:linespacing="100%" 94.1709 + id="text9944" 94.1710 + y="514.95538" 94.1711 + x="640.07465" 94.1712 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.1713 + xml:space="preserve" 94.1714 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)"><tspan 94.1715 + id="tspan9946" 94.1716 + y="514.95538" 94.1717 + x="640.07465" 94.1718 + sodipodi:role="line" 94.1719 + style="font-size:8px;text-align:center;text-anchor:middle">Call to dyn lib</tspan></text> 94.1720 + <text 94.1721 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)" 94.1722 + xml:space="preserve" 94.1723 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.1724 + x="113.18735" 94.1725 + y="465.66476" 94.1726 + id="text9948" 94.1727 + sodipodi:linespacing="100%"><tspan 94.1728 + style="font-size:8px;text-align:center;text-anchor:middle" 94.1729 + sodipodi:role="line" 94.1730 + x="113.18735" 94.1731 + y="465.66476" 94.1732 + id="tspan9950">Call to dyn lib</tspan></text> 94.1733 + <path 94.1734 + inkscape:connector-curvature="0" 94.1735 + id="path9952" 94.1736 + d="m 733.1031,470.02605 c -727.990461,0 -727.990461,0 -727.990461,0" 94.1737 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" /> 94.1738 + <path 94.1739 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" 94.1740 + d="m 733.1031,441.52981 c -727.990461,0 -727.990461,0 -727.990461,0" 94.1741 + id="path9954" 94.1742 + inkscape:connector-curvature="0" /> 94.1743 + <text 94.1744 + xml:space="preserve" 94.1745 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.1746 + x="326.92542" 94.1747 + y="567.76575" 94.1748 + id="text9956" 94.1749 + sodipodi:linespacing="100%"><tspan 94.1750 + style="text-align:center;text-anchor:middle" 94.1751 + sodipodi:role="line" 94.1752 + id="tspan9958" 94.1753 + x="326.92542" 94.1754 + y="567.76575">Master</tspan><tspan 94.1755 + style="font-size:8px;text-align:center;text-anchor:middle" 94.1756 + id="tspan9960" 94.1757 + sodipodi:role="line" 94.1758 + x="326.92542" 94.1759 + y="576.2005">(runtime system)</tspan><tspan 94.1760 + id="tspan9962" 94.1761 + style="font-size:8px;text-align:center;text-anchor:middle" 94.1762 + sodipodi:role="line" 94.1763 + x="326.92542" 94.1764 + y="584.2005">on core 2</tspan></text> 94.1765 + <text 94.1766 + sodipodi:linespacing="100%" 94.1767 + id="text9964" 94.1768 + y="601.42468" 94.1769 + x="137.19971" 94.1770 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.1771 + xml:space="preserve"><tspan 94.1772 + id="tspan9966" 94.1773 + y="601.42468" 94.1774 + x="137.19971" 94.1775 + sodipodi:role="line" 94.1776 + style="text-align:center;text-anchor:middle;fill:#800000">Lang Handler</tspan><tspan 94.1777 + id="tspan9968" 94.1778 + y="611.42468" 94.1779 + x="138.70361" 94.1780 + sodipodi:role="line" 94.1781 + style="text-align:center;text-anchor:middle;fill:#800000">for Acq Mutex </tspan></text> 94.1782 + <path 94.1783 + inkscape:connector-curvature="0" 94.1784 + id="path9970" 94.1785 + d="m 291.99816,568.02605 c -63.44071,0 -63.44071,0 -63.44071,0" 94.1786 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000003, 3.00000003;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 94.1787 + <g 94.1788 + id="g9972" 94.1789 + transform="matrix(1,0,0,0.71130685,-16,334.52913)"> 94.1790 + <rect 94.1791 + style="fill:none;stroke:#000000;stroke-width:1.28076112;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 94.1792 + id="rect9974" 94.1793 + width="65.276405" 94.1794 + height="52.250008" 94.1795 + x="310.40247" 94.1796 + y="313.58255" /> 94.1797 + </g> 94.1798 + <text 94.1799 + sodipodi:linespacing="100%" 94.1800 + id="text9976" 94.1801 + y="613.42468" 94.1802 + x="65.380371" 94.1803 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.1804 + xml:space="preserve"><tspan 94.1805 + y="613.42468" 94.1806 + x="65.380371" 94.1807 + sodipodi:role="line" 94.1808 + style="text-align:center;text-anchor:middle;fill:#000080" 94.1809 + id="tspan9978">PR primitive Fn</tspan><tspan 94.1810 + id="tspan9980" 94.1811 + y="623.42468" 94.1812 + x="65.380371" 94.1813 + sodipodi:role="line" 94.1814 + style="text-align:center;text-anchor:middle;fill:#000080">to create VP</tspan></text> 94.1815 + <text 94.1816 + sodipodi:linespacing="100%" 94.1817 + id="text9982" 94.1818 + y="571.42468" 94.1819 + x="202.41257" 94.1820 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.1821 + xml:space="preserve"><tspan 94.1822 + id="tspan9984" 94.1823 + y="571.42468" 94.1824 + x="202.41257" 94.1825 + sodipodi:role="line" 94.1826 + style="text-align:center;text-anchor:middle;fill:#000080">Master Fn</tspan></text> 94.1827 + <path 94.1828 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 94.1829 + d="m 205.27805,610.31985 c 0,7.35629 0,7.35629 0,7.35629" 94.1830 + id="path9986" 94.1831 + inkscape:connector-curvature="0" 94.1832 + sodipodi:nodetypes="cc" /> 94.1833 + <path 94.1834 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 94.1835 + d="m 205.05995,616.02605 c -67.19099,0 -67.19099,0 -67.19099,0" 94.1836 + id="path9988" 94.1837 + inkscape:connector-curvature="0" /> 94.1838 + <path 94.1839 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 94.1840 + d="m 137.27805,615.85824 c 0,11.43122 0,11.43122 0,11.43122" 94.1841 + id="path9990" 94.1842 + inkscape:connector-curvature="0" 94.1843 + sodipodi:nodetypes="cc" /> 94.1844 + <path 94.1845 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 94.1846 + d="m 137.57123,628.02605 c -69.22157,0 -69.22157,0 -69.22157,0" 94.1847 + id="path9992" 94.1848 + inkscape:connector-curvature="0" /> 94.1849 + <path 94.1850 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 94.1851 + d="m 67.27805,626.63925 c 0,13.68455 0,13.68455 0,13.68455" 94.1852 + id="path9994" 94.1853 + inkscape:connector-curvature="0" 94.1854 + sodipodi:nodetypes="cc" /> 94.1855 + <path 94.1856 + inkscape:connector-curvature="0" 94.1857 + id="path9996" 94.1858 + d="m 67.05994,638.02605 c -57.74832,0 -57.74832,0 -57.74832,0" 94.1859 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 94.1860 + <text 94.1861 + sodipodi:linespacing="100%" 94.1862 + id="text9998" 94.1863 + y="485.57098" 94.1864 + x="-422.58896" 94.1865 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.1866 + xml:space="preserve" 94.1867 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 94.1868 + id="tspan10000" 94.1869 + y="485.57098" 94.1870 + x="-422.58896" 94.1871 + sodipodi:role="line" 94.1872 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan><tspan 94.1873 + y="493.57098" 94.1874 + x="-422.58896" 94.1875 + sodipodi:role="line" 94.1876 + style="font-size:8px;text-align:center;text-anchor:middle" 94.1877 + id="tspan10002">and switch</tspan><tspan 94.1878 + y="501.57098" 94.1879 + x="-422.58896" 94.1880 + sodipodi:role="line" 94.1881 + style="font-size:8px;text-align:center;text-anchor:middle" 94.1882 + id="tspan10004">to app VP</tspan></text> 94.1883 + <path 94.1884 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 94.1885 + d="m 205.27805,610.31985 c 0,7.35629 0,7.35629 0,7.35629" 94.1886 + id="path10006" 94.1887 + inkscape:connector-curvature="0" 94.1888 + sodipodi:nodetypes="cc" /> 94.1889 + <path 94.1890 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 94.1891 + d="m 205.27805,610.31985 c 0,7.35629 0,7.35629 0,7.35629" 94.1892 + id="path10008" 94.1893 + inkscape:connector-curvature="0" 94.1894 + sodipodi:nodetypes="cc" /> 94.1895 + <path 94.1896 + sodipodi:nodetypes="cc" 94.1897 + inkscape:connector-curvature="0" 94.1898 + id="path10010" 94.1899 + d="m 266.02904,609.43114 c 0,28.51925 0,28.51925 0,28.51925" 94.1900 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:none" /> 94.1901 + <path 94.1902 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" 94.1903 + d="m 258.24715,610.02605 c 13.34137,0 13.34137,0 13.34137,0" 94.1904 + id="path10012" 94.1905 + inkscape:connector-curvature="0" /> 94.1906 + <path 94.1907 + inkscape:connector-curvature="0" 94.1908 + id="path10014" 94.1909 + d="m 271.57781,638.02605 c -13.14022,0 -13.14022,0 -13.14022,0" 94.1910 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 94.1911 + <text 94.1912 + transform="matrix(-0.01875541,0.9998241,-0.9998241,-0.01875541,0,0)" 94.1913 + xml:space="preserve" 94.1914 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.1915 + x="627.31714" 94.1916 + y="-287.61206" 94.1917 + id="text10018" 94.1918 + sodipodi:linespacing="100%"><tspan 94.1919 + id="tspan10020" 94.1920 + style="text-align:center;text-anchor:middle;fill:#008000" 94.1921 + sodipodi:role="line" 94.1922 + x="627.31714" 94.1923 + y="-287.61206">Timeline of Master on core 2</tspan></text> 94.1924 + <path 94.1925 + inkscape:connector-curvature="0" 94.1926 + id="path10030" 94.1927 + d="m 258.24715,575.42364 c 13.34137,0 13.34137,0 13.34137,0" 94.1928 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 94.1929 + <text 94.1930 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)" 94.1931 + xml:space="preserve" 94.1932 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.1933 + x="183.75761" 94.1934 + y="620.51709" 94.1935 + id="text10044" 94.1936 + sodipodi:linespacing="100%"><tspan 94.1937 + style="font-size:8px;text-align:center;text-anchor:middle" 94.1938 + sodipodi:role="line" 94.1939 + x="183.75761" 94.1940 + y="620.51709" 94.1941 + id="tspan10046">Call via Ptr</tspan></text> 94.1942 + <text 94.1943 + sodipodi:linespacing="100%" 94.1944 + id="text10048" 94.1945 + y="633.64221" 94.1946 + x="115.96657" 94.1947 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.1948 + xml:space="preserve" 94.1949 + transform="matrix(0.99986317,0.01654229,-0.01654229,0.99986317,0,0)"><tspan 94.1950 + id="tspan10050" 94.1951 + y="633.64221" 94.1952 + x="115.96657" 94.1953 + sodipodi:role="line" 94.1954 + style="font-size:8px;text-align:center;text-anchor:middle">Call to dyn lib</tspan></text> 94.1955 + <path 94.1956 + sodipodi:nodetypes="cc" 94.1957 + inkscape:connector-curvature="0" 94.1958 + id="path10052" 94.1959 + d="m 205.27805,573.45805 c 0,34.21814 0,34.21814 0,34.21814" 94.1960 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3, 3;stroke-dashoffset:0" /> 94.1961 + <path 94.1962 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3, 3;stroke-dashoffset:0" 94.1963 + d="m 205.27805,405.45805 c 0,34.21814 0,34.21814 0,34.21814" 94.1964 + id="path10054" 94.1965 + inkscape:connector-curvature="0" 94.1966 + sodipodi:nodetypes="cc" /> 94.1967 + <path 94.1968 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" 94.1969 + d="m 733.1031,638.02605 c -727.990461,0 -727.990461,0 -727.990461,0" 94.1970 + id="path10056" 94.1971 + inkscape:connector-curvature="0" /> 94.1972 + <path 94.1973 + inkscape:connector-curvature="0" 94.1974 + id="path10058" 94.1975 + d="m 733.1031,609.52981 c -727.990461,0 -727.990461,0 -727.990461,0" 94.1976 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" /> 94.1977 + <path 94.1978 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 94.1979 + d="m 170.94559,442.02605 c 34.44005,0 34.44005,0 34.44005,0" 94.1980 + id="path10060" 94.1981 + inkscape:connector-curvature="0" /> 94.1982 + <text 94.1983 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)" 94.1984 + xml:space="preserve" 94.1985 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.1986 + x="-165.37918" 94.1987 + y="439.50415" 94.1988 + id="text10062" 94.1989 + sodipodi:linespacing="100%"><tspan 94.1990 + id="tspan10068" 94.1991 + style="font-size:8px;text-align:center;text-anchor:middle" 94.1992 + sodipodi:role="line" 94.1993 + x="-165.37918" 94.1994 + y="439.50415">return from</tspan><tspan 94.1995 + style="font-size:8px;text-align:center;text-anchor:middle" 94.1996 + sodipodi:role="line" 94.1997 + x="-165.37918" 94.1998 + y="447.50415" 94.1999 + id="tspan10074">suspend</tspan></text> 94.2000 + <path 94.2001 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" 94.2002 + d="m 733.1031,530.02605 c -727.990461,0 -727.990461,0 -727.990461,0" 94.2003 + id="path10076" 94.2004 + inkscape:connector-curvature="0" /> 94.2005 + <text 94.2006 + xml:space="preserve" 94.2007 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.2008 + x="667.38037" 94.2009 + y="505.42465" 94.2010 + id="text10082" 94.2011 + sodipodi:linespacing="100%"><tspan 94.2012 + style="text-align:center;text-anchor:middle;fill:#000080" 94.2013 + sodipodi:role="line" 94.2014 + x="667.38037" 94.2015 + y="505.42465" 94.2016 + id="tspan10084">PR primitive Fn</tspan><tspan 94.2017 + id="tspan10086" 94.2018 + style="text-align:center;text-anchor:middle;fill:#000080" 94.2019 + sodipodi:role="line" 94.2020 + x="667.38037" 94.2021 + y="515.42468">to send request</tspan></text> 94.2022 + <text 94.2023 + sodipodi:linespacing="100%" 94.2024 + id="text10088" 94.2025 + y="587.42468" 94.2026 + x="667.38037" 94.2027 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.2028 + xml:space="preserve"><tspan 94.2029 + id="tspan10090" 94.2030 + y="587.42468" 94.2031 + x="667.38037" 94.2032 + sodipodi:role="line" 94.2033 + style="text-align:center;text-anchor:middle;fill:#000080">PR primitive Fn</tspan><tspan 94.2034 + y="597.42468" 94.2035 + x="667.38037" 94.2036 + sodipodi:role="line" 94.2037 + style="text-align:center;text-anchor:middle;fill:#000080" 94.2038 + id="tspan10092">to send request</tspan></text> 94.2039 + <text 94.2040 + xml:space="preserve" 94.2041 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.2042 + x="667.38037" 94.2043 + y="673.42468" 94.2044 + id="text10094" 94.2045 + sodipodi:linespacing="100%"><tspan 94.2046 + style="text-align:center;text-anchor:middle;fill:#000080" 94.2047 + sodipodi:role="line" 94.2048 + x="667.38037" 94.2049 + y="673.42468" 94.2050 + id="tspan10096">PR primitive Fn</tspan><tspan 94.2051 + id="tspan10098" 94.2052 + style="text-align:center;text-anchor:middle;fill:#000080" 94.2053 + sodipodi:role="line" 94.2054 + x="667.38037" 94.2055 + y="683.42468">to send request</tspan></text> 94.2056 + <path 94.2057 + sodipodi:nodetypes="cc" 94.2058 + inkscape:connector-curvature="0" 94.2059 + id="path10100" 94.2060 + d="m 476.02904,638.3113 c 0,57.40944 0,57.40944 0,57.40944" 94.2061 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" /> 94.2062 + <path 94.2063 + inkscape:connector-curvature="0" 94.2064 + id="path10102" 94.2065 + d="m 481.57781,697.27417 c -13.14022,0 -13.14022,0 -13.14022,0" 94.2066 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 94.2067 + <text 94.2068 + sodipodi:linespacing="100%" 94.2069 + id="text10104" 94.2070 + y="696.22418" 94.2071 + x="486.62335" 94.2072 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.2073 + xml:space="preserve" 94.2074 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 94.2075 + id="tspan10106" 94.2076 + y="696.22418" 94.2077 + x="486.62335" 94.2078 + sodipodi:role="line" 94.2079 + style="font-size:8px;text-align:start;text-anchor:start">end</tspan></text> 94.2080 + <path 94.2081 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" 94.2082 + d="m 266.02904,697.43112 c 0,10.33165 0,10.33165 0,10.33165" 94.2083 + id="path10108" 94.2084 + inkscape:connector-curvature="0" 94.2085 + sodipodi:nodetypes="cc" /> 94.2086 + <path 94.2087 + inkscape:connector-curvature="0" 94.2088 + id="path10110" 94.2089 + d="m 258.24715,698.02605 c 13.34137,0 13.34137,0 13.34137,0" 94.2090 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:none" /> 94.2091 + <path 94.2092 + inkscape:connector-curvature="0" 94.2093 + id="path10116" 94.2094 + d="m 733.1031,698.02605 c -727.990461,0 -727.990461,0 -727.990461,0" 94.2095 + style="opacity:0.3125;fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999982, 2.99999982;stroke-dashoffset:0;marker-end:none" /> 94.2096 + <text 94.2097 + sodipodi:linespacing="100%" 94.2098 + id="text10118" 94.2099 + y="532.12646" 94.2100 + x="259.14209" 94.2101 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.2102 + xml:space="preserve" 94.2103 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 94.2104 + id="tspan10120" 94.2105 + y="532.12646" 94.2106 + x="259.14209" 94.2107 + sodipodi:role="line" 94.2108 + style="font-size:8px;text-align:end;text-anchor:end">resume</tspan></text> 94.2109 + <text 94.2110 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 94.2111 + xml:space="preserve" 94.2112 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.2113 + x="259.49329" 94.2114 + y="612.12573" 94.2115 + id="text10122" 94.2116 + sodipodi:linespacing="100%"><tspan 94.2117 + style="font-size:8px;text-align:end;text-anchor:end" 94.2118 + sodipodi:role="line" 94.2119 + x="259.49329" 94.2120 + y="612.12573" 94.2121 + id="tspan10124">resume</tspan></text> 94.2122 + <text 94.2123 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 94.2124 + xml:space="preserve" 94.2125 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.2126 + x="262.06427" 94.2127 + y="638.12549" 94.2128 + id="text10126" 94.2129 + sodipodi:linespacing="100%"><tspan 94.2130 + style="font-size:8px;text-align:end;text-anchor:end" 94.2131 + sodipodi:role="line" 94.2132 + x="262.06427" 94.2133 + y="638.12549" 94.2134 + id="tspan10128">suspend</tspan></text> 94.2135 + <text 94.2136 + sodipodi:linespacing="100%" 94.2137 + id="text10130" 94.2138 + y="578.09204" 94.2139 + x="258.55069" 94.2140 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.2141 + xml:space="preserve" 94.2142 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)"><tspan 94.2143 + id="tspan10132" 94.2144 + y="578.09204" 94.2145 + x="258.55069" 94.2146 + sodipodi:role="line" 94.2147 + style="font-size:8px;text-align:end;text-anchor:end">start</tspan></text> 94.2148 + <text 94.2149 + transform="matrix(0.99999036,0.00439064,-0.00439064,0.99999036,0,0)" 94.2150 + xml:space="preserve" 94.2151 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.2152 + x="259.87955" 94.2153 + y="700.12482" 94.2154 + id="text10134" 94.2155 + sodipodi:linespacing="100%"><tspan 94.2156 + style="font-size:8px;text-align:end;text-anchor:end" 94.2157 + sodipodi:role="line" 94.2158 + x="259.87955" 94.2159 + y="700.12482" 94.2160 + id="tspan10136">resume</tspan></text> 94.2161 + <path 94.2162 + inkscape:connector-curvature="0" 94.2163 + id="path10138" 94.2164 + d="m 170.94559,610.02605 c 34.44005,0 34.44005,0 34.44005,0" 94.2165 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 94.2166 + <text 94.2167 + sodipodi:linespacing="100%" 94.2168 + id="text10140" 94.2169 + y="560.2088" 94.2170 + x="-282.23102" 94.2171 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.2172 + xml:space="preserve" 94.2173 + transform="matrix(0.71848067,-0.69554692,0.69554692,0.71848067,0,0)"><tspan 94.2174 + y="560.2088" 94.2175 + x="-282.23102" 94.2176 + sodipodi:role="line" 94.2177 + style="font-size:8px;text-align:center;text-anchor:middle" 94.2178 + id="tspan10142">return from</tspan><tspan 94.2179 + id="tspan10144" 94.2180 + y="568.2088" 94.2181 + x="-282.23102" 94.2182 + sodipodi:role="line" 94.2183 + style="font-size:8px;text-align:center;text-anchor:middle">suspend</tspan></text> 94.2184 + <text 94.2185 + xml:space="preserve" 94.2186 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.2187 + x="136.99219" 94.2188 + y="357.42465" 94.2189 + id="text10146" 94.2190 + sodipodi:linespacing="100%"><tspan 94.2191 + style="text-align:center;text-anchor:middle;fill:#800000" 94.2192 + sodipodi:role="line" 94.2193 + x="138.49609" 94.2194 + y="357.42465" 94.2195 + id="tspan10148">Language </tspan><tspan 94.2196 + id="tspan10150" 94.2197 + style="text-align:center;text-anchor:middle;fill:#800000" 94.2198 + sodipodi:role="line" 94.2199 + x="136.99219" 94.2200 + y="367.42465">Plugin</tspan><tspan 94.2201 + id="tspan10152" 94.2202 + style="text-align:center;text-anchor:middle;fill:#800000" 94.2203 + sodipodi:role="line" 94.2204 + x="136.99219" 94.2205 + y="377.42465">Code</tspan></text> 94.2206 + <text 94.2207 + xml:space="preserve" 94.2208 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 94.2209 + x="203.16797" 94.2210 + y="357.42465" 94.2211 + id="text10154" 94.2212 + sodipodi:linespacing="100%"><tspan 94.2213 + style="text-align:center;text-anchor:middle;fill:#000080" 94.2214 + sodipodi:role="line" 94.2215 + x="203.16797" 94.2216 + y="357.42465" 94.2217 + id="tspan10156">Proto-Runtime</tspan><tspan 94.2218 + style="text-align:center;text-anchor:middle;fill:#000080" 94.2219 + sodipodi:role="line" 94.2220 + x="203.16797" 94.2221 + y="367.42465" 94.2222 + id="tspan10158">Master</tspan><tspan 94.2223 + id="tspan10160" 94.2224 + style="text-align:center;text-anchor:middle;fill:#000080" 94.2225 + sodipodi:role="line" 94.2226 + x="203.16797" 94.2227 + y="377.42465">Code</tspan></text> 94.2228 + <path 94.2229 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 94.2230 + d="m 205.05995,448.02605 c -67.19099,0 -67.19099,0 -67.19099,0" 94.2231 + id="path10162" 94.2232 + inkscape:connector-curvature="0" /> 94.2233 + </g> 94.2234 +</svg>
95.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 95.2 +++ b/0__Papers/VMS/VMS__Foundation_Paper/VMS__Full_conference_version/figures/Scheduling_states_2.eps Sat Aug 03 19:24:22 2013 -0700 95.3 @@ -0,0 +1,460 @@ 95.4 +%!PS-Adobe-3.0 EPSF-3.0 95.5 +%%Creator: cairo 1.8.6 (http://cairographics.org) 95.6 +%%CreationDate: Sat Nov 13 08:19:40 2010 95.7 +%%Pages: 1 95.8 +%%BoundingBox: 0 0 196 77 95.9 +%%DocumentData: Clean7Bit 95.10 +%%LanguageLevel: 2 95.11 +%%EndComments 95.12 +%%BeginProlog 95.13 +/cairo_eps_state save def 95.14 +/dict_count countdictstack def 95.15 +/op_count count 1 sub def 95.16 +userdict begin 95.17 +/q { gsave } bind def 95.18 +/Q { grestore } bind def 95.19 +/cm { 6 array astore concat } bind def 95.20 +/w { setlinewidth } bind def 95.21 +/J { setlinecap } bind def 95.22 +/j { setlinejoin } bind def 95.23 +/M { setmiterlimit } bind def 95.24 +/d { setdash } bind def 95.25 +/m { moveto } bind def 95.26 +/l { lineto } bind def 95.27 +/c { curveto } bind def 95.28 +/h { closepath } bind def 95.29 +/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto 95.30 + 0 exch rlineto 0 rlineto closepath } bind def 95.31 +/S { stroke } bind def 95.32 +/f { fill } bind def 95.33 +/f* { eofill } bind def 95.34 +/B { fill stroke } bind def 95.35 +/B* { eofill stroke } bind def 95.36 +/n { newpath } bind def 95.37 +/W { clip } bind def 95.38 +/W* { eoclip } bind def 95.39 +/BT { } bind def 95.40 +/ET { } bind def 95.41 +/pdfmark where { pop globaldict /?pdfmark /exec load put } 95.42 + { globaldict begin /?pdfmark /pop load def /pdfmark 95.43 + /cleartomark load def end } ifelse 95.44 +/BDC { mark 3 1 roll /BDC pdfmark } bind def 95.45 +/EMC { mark /EMC pdfmark } bind def 95.46 +/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def 95.47 +/Tj { show currentpoint cairo_store_point } bind def 95.48 +/TJ { 95.49 + { 95.50 + dup 95.51 + type /stringtype eq 95.52 + { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse 95.53 + } forall 95.54 + currentpoint cairo_store_point 95.55 +} bind def 95.56 +/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore 95.57 + cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def 95.58 +/Tf { pop /cairo_font exch def /cairo_font_matrix where 95.59 + { pop cairo_selectfont } if } bind def 95.60 +/Td { matrix translate cairo_font_matrix matrix concatmatrix dup 95.61 + /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point 95.62 + /cairo_font where { pop cairo_selectfont } if } bind def 95.63 +/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def 95.64 + cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def 95.65 +/g { setgray } bind def 95.66 +/rg { setrgbcolor } bind def 95.67 +/d1 { setcachedevice } bind def 95.68 +%%EndProlog 95.69 +%%Page: 1 1 95.70 +%%BeginPageSetup 95.71 +%%PageBoundingBox: 0 0 196 77 95.72 +%%EndPageSetup 95.73 +q 95.74 +Q q 95.75 +q 0 0 197 77 rectclip 95.76 +% Fallback Image: x=0, y=0, w=196, h=76 res=300dpi size=776967 95.77 +[ 0.24 0 0 0.24 0 0.916468 ] concat 95.78 +/DeviceRGB setcolorspace 95.79 +8 dict dup begin 95.80 + /ImageType 1 def 95.81 + /Width 817 def 95.82 + /Height 317 def 95.83 + /BitsPerComponent 8 def 95.84 + /Decode [ 0 1 0 1 0 1 ] def 95.85 + /DataSource currentfile /ASCII85Decode filter /LZWDecode filter def 95.86 + /ImageMatrix [ 1 0 0 -1 0 317 ] def 95.87 +end 95.88 +image 95.89 +J3I@:GU(oO"FIqV0;rCK*=mro@So+\<\5,H7Uo<*jE<[.O@Wn[3@'nb-^757;Rp>H>q_R=Al 95.90 + C^cenm@9:1mM9jS"!dTMT<$3[GQ$8#0$s<4ZX!SPQ1`A'g"%<TR;.<aa6d`HE,+YZP^B4!g 95.91 + 3;B=(iZ<kDqOh/Bf.DHAorf'R[o?>ioWjnAY&^gM+`4=1jRLW!YA=M/6)*KS9PE`kN%="Tc 95.92 + _Aoh+fk'&t\ctI:h]"?)EVlIDd]!t-Xh$Ve"[JLu9_eZN2gNOTbQKrP([VkioDBB7=[,UR, 95.93 + Hi@$GNQ^C&p\W4]93o[!Fh+rPIlj(Jn9-kkY-14!k3ht)5*"HoRH<m_r]WPZbLQ=\HN&Dt^ 95.94 + XMoO5Hj,<r%.;1#6R5q'GCO!c[3P"3fin8!'p!h(Bd%.<&4_0Y]I&S^9EhP$:=6h2[i'Xe5 95.95 + Hi.ORs\,]MULe&O`lL:DH='_T*?\/t?>d]TK".)b+h3HQG[sd`!J'DZ"t[_D3s3(.rT]M^h 95.96 + <(_S[]nEccj\7PZ6M.8)G'`o"._.^6"^W"Ppcc4c/u3R3him5rW-bk4-FPO/64ckHom6-ti 95.97 + J%7AMW9b)h,-_jSiSuV&ELS'g5/:Q%^br&5DeEnb\e.gFr;4j*_9i=p_2*k2@[8f4f<AenT 95.98 + <`W38;-MOnKj.e_Q,3?(f9Om7?e4oCJQgZ*h2u1!2'n#gg%K!DB3<_"X(keF*MZ_@G1Ed7> 95.99 + ;haXA))8C?"dI7ot,?P2T;S5?2%pJG?hVRcZ<)f7H[>"\)m@0?8V'$JR>njlZch42=GEj[T 95.100 + 4&n?hf?XIq!P\.u@^0VDF-?GfCPQA,''qCLT7E23?\J*`H"p).jbLiOLj8QXgt7CRShB%EX 95.101 + iFq6k?EkOj:*SRe,%AVXodSr'0))J4\okLfL'T'%#7D6$`!`A)dSfo@#OBmIG1V.mMqX0?E 95.102 + InfEH^'PuKNd`;(C\aGrimCVg+cLnm>S*p6in/MrB_=3sJ%E%]U:DLk=S8TFgnf3]:amtt* 95.103 + /^*`*cS`u=SF8VeoGnH2dI`t_:"/bU:K>s<SSqfcp)T3*g%Lu>q+ssgKcl$loZ@-jp`9s"i 95.104 + V8utNT9gU:R1&;So:1_qAt]ol2%!TXm>j*caE0;T'sA]r#ZHgnbf"4c1ClU:Y#.:T5WQ[rZ 95.105 + @3_q>R"imJHo*ch78:TC;^Xhuj(2:F3QNPpBD[Js(>X@KF9s*<Y5Q&V<hS$:.cG"lR<:K2? 95.106 + Fq6.e=*i<1<W:lZ/T=A9+[qup"1*.pM>])p%>.#(RD)FIVD%H55cLJ[C[6eHetiWMQ';%=d 95.107 + <=H*&a;#Q*#g(u1n*:KUa;2S4G.RdIA(#m/7Mc"@E7G,9iirieH&L<&FZF9n0Hjks2Xu8c% 95.108 + h&GC-EK3oA3_*<>*TP(`Kb5XX`7SK>U]c71;@Z#a=UcP87#@%(/k/Ca#i)(-?%E3_1_7*i, 95.109 + G`8GP>Z9n5GAiRV$*J3dYr(d=\L[65g5KkXC+ZJG:Vd.YSC']>"`"1.ODluQW!6X9;*jh`' 95.110 + hG/;\!2k3K,!@7*1iq+?3'AbqnL8d@&s:C'@bB2<Mj1Rc,`6"A-9ck60b6;iYln+FQ8dSEZ 95.111 + SCY'*Rnh)jeQnX`#NH;7W14m(ZpRoAa(9q\[Sk*5rU_:jK7\We7N7)YI%:52EpGUTMD[[*Z 95.112 + )MG"j=0Bg?TUJe%&dFh5CV&8?Z,JK=4g.b0'74EU=nju1$.1>000r7jpRT!C,"4V.\*0fki 95.113 + b*c3_l3+=,<=W20!C\WZNCfL(#,Y(^RN*^]>cL_9,h6&9%B@A6"EeMm<R=*7^l;d(5WZ1N$ 95.114 + I)`>7;8l(Y-qBbh-93!ENW<e\lW)&?0fITY>t#)=5*U[lihV72@ctm.h,Qr5U$At/p.8#*B 95.115 + 8Y!Odbn>/'njfA`cO0ZW&>F=kRsGXTZ!HQB#&URnPW?7&CrIY#))IDen`oZ%;POHon**5pQ 95.116 + ?6[oVqR7`OU>7kMQAd]?p5=^Wa45btqglpb7-$$56"CV!G0/6uD]&h_,[#5<"X!dhUi!4Cd 95.117 + e5T92q)pNZs7HqKeY4c2Vh0\UEn\/)MqHm&!"7O#=^K)Hkhq?O?_=ZUlQk&D8M4bf,7*1h5 95.118 + %Uf[&*%,]Y[&@HV=A#j'L$@7N*Z/eOiS6R?Xe_.Y1r;mTX?VR37O`bkKQ,quWJebc0pY_]: 95.119 + ub]&;X/)>%2eFcA(e!snc1qr=*F$5r/Fg/5"WKA0.(5`rI+`p@]WTX.Th3oQ045b]3sKBKL 95.120 + tc"B"ZV$ZjLLOr67O+0S7PK.lM"ph*Rt5Q(cmW3bM^b/ugcAU/`-okM5HooEKjWq@>Dr=d* 95.121 + F7NarR7MagLt"r/oW1t#=<'5:^P@K=-1b$&]!J=N1.o`e*kJ2e!Q>q-/Y:d`c66mm]%>T*3 95.122 + fagpCB88D'_XlZ4df2iYqN?*ErV$UMJ>7Y1/X@#Xc*)=GZb@9hoSKj+Rn\[=kC^e"Z/-TqE 95.123 + `hJ45M*VZ]k"'7B=bnJD>uVBu<i6$]X9NRu6bE)HB=ra5Z"]:Q@P7-tSNu4a:&D.--Fd4:< 95.124 + !55N=puRa71,a*Dh_+4?,Pm1],4dJNJt]S`T[5r*?8rnaq>f&jOYE:'ShX,hCDD,*3^5aY) 95.125 + *Jq>qX(10qgo1RS8h/c0,Y?$ZfQ%F4nOI!Q=9<TVfY7TI5s_O%I$q,Qm[S&.El86L$j4WWk 95.126 + Yg*BM.F&>EC3$?!L.qZ\bm")"nLT$=LM#ANR$04VrC?a?KBC[PKR'.K'sh8\W'Q$CMQ$*O1 95.127 + MHiSH]=R7kP>_!FWha7L[/-pLWQ/h2O!V06K;Ltk[%(sA:o2C.="Yd@Ik(\\[2)%;>+XQC7 95.128 + hKbDrcdk`!;(D*\e<JTt:oOrhmGq`>PW#U_b%jg0XY@k_(5uEi90al$hgc;"c=H'Fh_[Ij> 95.129 + +5&4+Tr,$$GOK8!hX93IGZ4/2eWU%T8XQb>QLl,s66N^PLG@<NU$b8`;X"HC>9ED6G:G8OV 95.130 + *\+7UcdhY2]IX"TW2B;62O<!N+rhi2FuUoSjF&TYT?UT_b<g!j%=_m7.!A*W`K)nuStsWRM 95.131 + 0W6jU"fRc(j^l(F]"m,iirQqh*'iBIMqB^>b;UB,h\bUsk(FL@jT!0DU6kW0mO66":-)GlA 95.132 + 0d#d?tFI%k.'<73.0!q$"#c^/#!_L,IJ56#M3:WXb"&&"'%8QL[F:$=8d=B1)5k5N6e>U3# 95.133 + %BZ]L@Dr^#[g3Q/LX+V4lq%12lORcUg*o_j+_qW=N"PRc&!7800bEr[Wr/Mnnu_'_bNdQW_ 95.134 + ?.lg"DQB^TUQTJU=K=iek;VAmuE]j@-g\Q`M(/50_lG<<5ZUGU`m,\kuJV*A/6n5W6h+I&T 95.135 + IQldL5Qc$.)'FWtkl#ZiP0'&dndYJ/8:R[L$rA(N'QiDj:MM55kSD)QrWMK2WM)[!tj)O31 95.136 + rOEPRSC2BDn.*3R6TNOK?_*"R&B'97AG5^sh0K&'fi!3to.bKf@&0cse#+/!ZslDb.DU>/# 95.137 + `ZU"-pEY.]U1mW]4+g$"@_4q9e]Ta]o*&9)inh>HC']WWKg6&BPnCeZ']G/TLeo@;H^rIJ[ 95.138 + kQi;>-(mOMmZARulI2Ct-D5W2lR;SF'dmE[-a@1uTrf^ta!3?qH',]*lZ4J[P_92k*:fX+_ 95.139 + 5,[KEi?en.^>Sh:C[QV[2si)/$`]hE4I:Q5jA>Z-#qfN^u[.!(86:+\Nrd]NHkG[6On.'0! 95.140 + ajsk\=$>f.UR90<S+do)P+n(AZ6tnF.n2i&<ACR4IRR!E1!@nUA9RT"1O4-_X$7dXiCT9.p 95.141 + hH[YnrCVg06Q3AbBs+mMB4'2\sn[ikbg/Kj-^O@TY^(uE%32R=7'%6Fqr%\)el\j4jNO4k; 95.142 + SKd!./Q#2&9#3Rh,PrWoQOFp1GTsk=/N5BLnq,:Q%i4P[3YQhm+40on-;]-G^:;@>B$Se8* 95.143 + O5VQ%2`[mN1WsV8$r&mKRSlt()t2i)JQ"cf#SHTuk=s8>0dcHV"#fGn47<peZ<@G4NBqX.% 95.144 + ?qjZ@/hgA7k.;a%O&dae)`qR2+)9D;@uUh8gkG`iX`Cf%*A)k5[<0nn>oO0!`,?;Tci=Q>k 95.145 + d437^P.9&rtX#P=G$ImbuhK&HW`PRhl)*RK/aHo++8h#qMYT*g7*W1U-0FkpiAG1=Ds9oW\ 95.146 + (QkspuK9=2B",/3f8V*m)l7"G.9&d&`.-Lq^-!O78Ji0cmHfenV"pbFj&kbUd*i7X@aVSX' 95.147 + 3ZgU+%;a58o4L'AKYIX`HnK,IQo!6?/0m8s>eLeU_;Qp`!_:(D$qbqVt;me`6_A*d6V++88 95.148 + *J!lG$iqnYR,.-jk])srC7a1dM&Pq8;s6LHJb&iX\IULV<ljbR')EO;UmH&Ik<O5nmjg;h" 95.149 + Uii6qZ'Tbo<A`=@5pPF(Y,V\+k9dSI9Uj)>ID+m@NHL(`#(AQgMG@N:s@_cC'9Y?aj&u*2. 95.150 + 'B74"=*%;cUROM',_&b5]uc?KeCe&*ZV9igD;FkRm%L'U^Zu2ToL'@B:"LXhGA3N@4CN;76 95.151 + @3p+^&81q%#WrmU=>NXucL38a9&"V!N7OcZ,0U=O+A'p'",(,gP>oiICRAgfoB:L_1]fbs6 95.152 + >Z+t)U[XdTo7p4B9"SGJ@O_>LRQ"b1(%p!O]p7Z4ZUk=gipaKod1/T)8Iii&P^9j:1m9(RR 95.153 + E"rmmm1uRE(1utLHYhm;/+';1Pc55pdl&m5=\V+G:FdOFF$-,cDm3RQP;?\!fl2-AE46726 95.154 + W6VYSeZGeCC[I^<Xuhqk=#oV@P?\([\H"+F^MTfHt"09n7_d/*q8\M<G\"):phY.Gg'/]iI 95.155 + Noo:<4A)?$!JhG.2=3kbT8:`>V=2eW!@HbM*DbU^0hi>*CaVeF@TMG./,RG6aC"d$3jI/C> 95.156 + 2=h_c7bTEfg!`G8DW64p%AktQ!GSU>Y'I(.=XJe\3M>1RI<=kA2;0>e3!*r,:L<jXZ"1j<o 95.157 + ep)S1'/Wi%qi-,QelWI%:S+br9O5S`X@=7hfJ[c_Okj0Ho'eROjT.hn2O2CamP;!#DUb_Ii 95.158 + (Rnn$UH29e%G4A0o[^aB'd[82KsGk6=?-BuB7^t7L:D)Tkn>%S-5]]j(NG(UlN95A4IYjj3 95.159 + `j92QpB>HqB62,)6/Z"==hP:jPJ:6%+ZYCJQF]0TgKZ:Mn$HYpqW)f&F<5#KqQT:5\XN)!> 95.160 + u?loSH`g'Xom+nfP:5N7U'M8k9unIkm52A@JiECYn:$X#JC3jUk@K3>%B6'p39>;GP1;n"U 95.161 + MrbitHo+OYaoD4?A@OVLiD#*qU'lO^c%g<3mGPdC(L&tBs;)3oJMQ+:/;os,T6M+lD7#h7S 95.162 + 3o=lD&eH$(UP?-97,/3h*gBs$+]oJL3Nc^Xi0*bMEQ2-u=q4X6.4AsP`*DKZ"b5YmH+;FX^ 95.163 + O"4S(enWmam;-^3Dc7Fb&%2P'@rJ%1:ednKq5'ZCjdpb]fS8Pi%D&j2J-)bH;2N$AZn/$IP 95.164 + d]Q>Ik,kh0Uil(,eX^=<Ua.DO\MFY-),]7U9;p^Dgn'TLJ]]Knk%A:q08$i^pWoGc7L,RMp 95.165 + 3+T[09N?_`BBGqI-6^AF3qO#)s3tb4uX8,GHUlUhMb4Q)G*PKnrA$5Yd(Ca`iYEmA>2tWOe 95.166 + Y"m@P<g.2VdYY1*Ukn6\],mAJ&5;V60s<)GnQq+6m"d24m03h`Z:eZF/Mm5\Y_X][aNm+uO 95.167 + d#0>b)'m5Q#m>j0Fk=Z3b>/r/&<<\JL)`l`Xq[p(p'\K0Z1=?8\$KG:9T."Bd%e'F0LuFXY 95.168 + V'UI2Y0hj#n):M*(USN\[(B#N'enCH`N2\n)$uuTkd.=G\ON:Hf&8VI3i]A%ro[33PrhdNq 95.169 + gl7=KZ!>`%2`!G1mn]3k_a^tMF,'G0es'EY-/S2"^#uJH\]3p[C^dqVM-=cJPNufk?1[=pZ 95.170 + RI,F$Y)=P_d_jSW>;$cR")U@$KEX^:WdHqs^JDl#'ZaXn2cZ\cRZ!dB?)_DK"KYHW[G<d5@ 95.171 + A<^H<OQr#rp+0VgL0r$pY&/SC(lBt:0S+\l8V)K;ja.pVs[_H]gRr)(E^%7eeS&"G2Qpk8E 95.172 + uCVtrt+VXT8lK7>h.$b`0`E[i3r.2p;fVC4GDT^i_%AJO0nR%b>KL-chg5)n2%u'kfaBYji 95.173 + r3=En`=;6cXqJ^5kXWa>mE):bDKrEsWoaJ4e\h0Cb?WlJr8GpLMJdF1-7[VM:J$tQ1WG4tp 95.174 + [N^8G's(Tp!-hLd(Kn8k]&r<@]gF(S)!auB_s4q6@p$JDHr.&cA,uE#LOPPe%IonkWEa$gL 95.175 + TU&?$hlhg]u&Z"E&R'YNk)&:QM(f6.UHuf"GmO[hPn$6ER9+jTm<K'19HH!0l)j2[]ioS2J 95.176 + mrQ.^SRfr+GMOohbf4+i>6c\L^^e>]TChdN1Q>X?3Zh8.l0`S>+];_ZS#\Gl9e*SSQm'\gR 95.177 + .lOaG/akhI1hS&9'1>0,dd90^=eU8R:Y2)TR-@RfUJ4eLUo3I9Fn)8^5iP$:WGd36#c]@`% 95.178 + J,I7r(=ep&e0,H$Xq?9\4s/iL7HAng+7s-UC=(gbA:K$[HunTE!+`4="ba\H+Wa;=rc.*ak 95.179 + A5S=XR)XV-h$/p^Bn&IXc;]n5'?*RQ0E^c_8.h-[F_Mclf^jJ7NQlX.DJXWRHo=4lb,G=b1 95.180 + eg;2LV-I]j,l0jYHYgAF`<U],nZQro*9-XA[12XgG$UI].Q:[e$NR9t"9o?NKX\"irF=/5" 95.181 + FKG8,KInp.@4F\:BY\@(gU-1ZO7_C^&uhuQ,-gjK,;GrYB<C>0Rf"7j2uoY4,4:fsj'g3p[ 95.182 + gZMlV*[!h'DgOL:bo`&e%s)G;1*uHKX$_F/B)_G-@?@!hhoEs7fqaL6DQ2,otWR\'dg_-^W 95.183 + S:+a*GN'@iWn?,+(&>VTqnKh=Dka@.41E8TnRgqH9%qI<\,63YrP.0RZ6cdc&bDRm[]=8t5 95.184 + 0eC0+K_mdb.ldU&,6hK#mGrIi=MAU/f>+R6fJ[pPYNYBMacY<R+-"6*KN_O&fDCD8L9QljV 95.185 + !t\Y$!?C9BHm*Pg3u#Rn`&ZRFLYM#;K#i'H.N@M"@B5hpe"[/b)P]e*7Y!_sXKsI_uo.O:? 95.186 + )]64R)PFrB\-a^qe]m1u0kY1[[$>OE:HQ-SW:]3XkAS(6s&ID9.WD;5[9$!j4%E>4:117Ip 95.187 + W<,&a1h-(HBb6%8P?iV]:bg0ZR)BBTS8YsmMobsB%Y?A!ZC\A\fQHs9QJWr)2Tt]t0ri9#' 95.188 + cYS;1X%S(/GlnOWC:4.AF8"E2QVXU2lZN(FT%@nkh=#Rc*Zl(ZC$!T9YYEds-[eYK5'T1.Q 95.189 + :iY13dpqu'9DV&rVo+O"9SZiE$Pen5k%/T"[R!OX:<#4d2NBTCg$W/^+=?fii;2SLCZDHct 95.190 + *ePn750*7.EZD'h*+Q>8K`uKOYlD6VM7>#Vj7Gp7JJi*iHnLR[2&!Z6M3O!Cj_c)9Ho0RjU 95.191 + euKVKtgEho`d7*d;qblG'.i@cH0@t)G<a/jfl&Q;'f!"m[jY;]2IK]>'fF/8+`:@lE'0-1* 95.192 + -qTTfJ"MkGF8qVl?*HXOe75I\8@*)2$Kd0/eFJUK\;Y7pa9dClF3mA3n"U,pnPUYmEeEi:c 95.193 + <B5riNE9&$Kk"7dFerkX<qXFPedL$g1aZ;s'Z>AY/fDuF1B:W9/(o'qRqGmtKqi?cG,;6D& 95.194 + 9brK:5&<K).CaHPs@U@5TS#nReF/<F^93&gNQrtL#U`!GG?tshX=o:0\b/&SpFc/pc-M+GU 95.195 + ;I(@/*2)Kjf4<)i#SK"sZ!-a$')&_XPB?ND2lc4,;kl#"+M`GpZ1J7OFF"2&dEF/Q'`0&tU 95.196 + UcCs[6mAGO5dSS*61H_4s:agIg:7YZhf=AB1YV,9L!1f7u`#,A/4HD[aDCAPdOE9hRE4CRI 95.197 + JiuD(cCsWWt:Mm@$[1bW6gUD%sL?#g^H`$,@DYqHF]l/8[qnI(I#6Ve]Hm]<>E;W3>`Gp9; 95.198 + p1j-k[a\+C]Vd:'Er<s6c#\9q43qr$O$g"@pnp@*FT"^.eTH:Q>M!bI:L_`k4f$S@pA4u;V 95.199 + ^^XZHHc^:"/Z=uF'":[GlC3sj`u;fS*,(rLSO*[I]'74HN(skm<a<F]C1$@\&3!+@"5r_I/ 95.200 + c^comM=&g\6-rLSc,AI3-)srr:%1rI9=[qu8nMnGl9.72cK3Tado?O%6KD"f>rq_"WNP+8c 95.201 + e(OB)`TGVKD1e/*KV=n0<V2[Eh+,D;/E'0^'k%j.emK^cDd6MOst@5Iuq#*<1ZFOW>pe-RS 95.202 + .k]AFR#%j%B&U^h*,=Hd=&n4g5I*d$I`)rEA@['fKOW"qNZ%j''e6@inFpc,S817s\7PfsF 95.203 + h%,'p)H0JeNKFfi.FUF"A!D%pOk)TaGjuhbe9d7=p-2(C!?bneK92636V)J7,%OZ2OchUm8 95.204 + GO1bP>k:\YEChrGp+MFe=2YbG#(^*5q$:YUQLD5/%(`1IR>*UP`iIV9)2mHAX'NeP/L\MFO 95.205 + _3;(k.g+BGJ_cb^7;[_d&+aWCGnV(8b$*R=r\HN@?4LUoY[e;^a4ke`?lAe>I'pV";]"Ye( 95.206 + S(\U[//AVG1^'W4oB.RG>')5&iL:T;a)djAYO)=U71I*mSq:+/h>mljf`g+^uqX3KZ^3%,E 95.207 + iS7gti)B_C89[JWjPH^p?.PPIboc'K7g3T%;X[;7a,+iN1Ke4c=5UO/h>r3+qct9CH$oKE/ 95.208 + M`uleH6-G6<BEoQgg8B:n/lBWRK\rlNgj3M:h^@rWJ"lHc2"0C.S'Q=FZ!l2ie:&EXYME6d 95.209 + ]4mUDJ#liI[FT/blGo61!'LoN8bV^)5'9#C,rZ$F]P]tEZ\6D9i5):epuA+RoTk*>&'=ATi 95.210 + LCYXQp1IXC_*HcC*6SlX<[)(030jWoe-`odd:*FG*_qB4!)Ue>ZIIcRWc6!%]?nYf-gb>'2 95.211 + ]3b3b0A,JMn4RrDu7&>;Te#[(C(eCkCtS$j+IJQ`DmBU4Xr\B<CPg:!hn5R"@%W`Ide.qi5 95.212 + lXkR1*h5(VIHFJY5j%WA*?VH>CBs+R_\J?7J/IRtmeW%n(P+i^iCYsN(V:R+SA@`L`;1M?e 95.213 + =hodaX"f1l^efn%\9=%8?E<`tDf)Yl.m!Ia'f17]<VD>0idTj?/Uma(r[qZT'.0DuMJt<<3 95.214 + <o[@@e2Dg0pUt!=G"0D4/[d5DAU=8<t.TTq2]F!?C[,,]FW5K0>Ue[JW&TQ=Z0Y=16J"ZJ. 95.215 + \oD)Ei_R[R-d7ip&%qH']5*5Jrlo0e")2M$nad&uhg0B(Ard(ARU3_n67fF#8<_VHKPbQHj 95.216 + )g(RMDX@*;Y>5UUBi2fHB+_tkB8AspeI.G3q2i'Sh:9/C+C)nSq?X%ucBd)@QeL!TTVE9Jk 95.217 + mB_1X&e@M&/kaE$Vle\Vkai?q_@d,q*Q0!b][lGp8l8:I4I/lqMJt"=/X]j#KM<8S*m%iaE 95.218 + .?:^@3n%agI;W<.k1`U/S=!q8qO'rj]F2ld!2op9Cc5&?C:c6ND!_\D'"65hHW&ql@qm5If 95.219 + )#ccp#GMfS%e:bZFEH=2/S;/6aV\e)>l?:R@l:Q7o'fQqJSBa1;Z$CWL<n$G:T-<f=[Q<m] 95.220 + 'HSO_kej6#Wo`_n%Pf4jF7i\2m[F-*VE2Hk^"LDWiEoJT)J>W$](gC'L4FJsq-Uak?\>YIp 95.221 + @$-N31;GI?kr#1;msI^"_*RT8LHUH4#k^m]o-@j]a4"<T7HO@SMCm>7b^p@\DJ3_)s0m8Kl 95.222 + sXl6<RLATkH6\/J@5".Ni00^h6_3^1WCHA%$lDDnFOF42cr/bU_M6"FdD]Y-hl"!S<'H/<k 95.223 + WT\AB2!<*'E?%a';utUO9jXnABegMeI?==!L!QRh<d3Bf?Z[o=IsmG413C5:fD&q'`8)LON 95.224 + dPQHpnTR:$)9BLd7;GQSnssXDm0Y!dV9$eFJokF8th@""&E=Zo-UI]#^C%/+Z\$grp_H8:' 95.225 + ke2k-'W%P(ikXbQQiD!Wjaml3i7#08&*hOn8b:":0AT^15$?oEC.oj-kki1AKM;G_85jbr> 95.226 + gi^h^)48t7kCS0iQAJFPJtoFjF`S\GIQ]1TVtgDL&92&e4O(;N5#G_2W^T`D_G-ZDHYN#rE 95.227 + hqMeF)MA)A8_gk"qI_Z'r$d8X;Hm">@$O@FCWUcXW\;!>+f0[Bq6<hAg8sd(m=Li3M]HHg% 95.228 + `%;Md1Qc25$)#3>lEgP"2$.#C4,C1"q,3J;H]Oi[#XHKgn227K!.dC:6l:KBk[tQ*#fKC>" 95.229 + 5uWQ=Iqj(e3Z-f^sjSfnA@Yf'VH^?NO1O#4=7;>!fN"4L_Il736aRY1d\i-%\ut=bZ0S.#a 95.230 + tl&ZlBFlG_j=Q4h)J#P>cnK.#jlEkJWIb`C&h-n;`^eX9C^c76AX]9+_G'?&UT<#eUQS1ej 95.231 + "322Q'+#1t4kl/RD$E&'\-$To.e4?X86L8ujnJ;N<GfGfNlGQ@)U*][aAfJpFOEXB*D*LYW 95.232 + Bak?s?]0G?TJntCK4CJR2:.;Cu7/J"D#e3<:J\Iq9%5`p$>`+C!=IK(i^0FjZ.#LOibso4" 95.233 + _AVT&nY6A3JHBQM\--N%S15S-K8_L;THMKK8;p+_Y/W0\7`^cGpcZaqg]0o'$6TPTfXAgL1 95.234 + IKfN8&RCh=lhVgk!>-dK.(V0W0g*-dCsl`5*:rJ\@p&SSOd6W2-X_7I"a`e9>X5Rb5fo4A; 95.235 + X#>\OahS]blsSgbK;bMS&)i.I`0`8a]+tKhKhZ`5%/Ona?`oR",0q7TdPh39a#mO2&9""6u 95.236 + kEcl1-@D2X(C6"HetWNh.Z'$UaOU&o*WGa1n:d2l/I95qMf@%0e$)&T'8K!=El1\lkIe-dO 95.237 + &bV63A['e)-M8_$^%+BXJi/gCMhp*(V7I/&\<8\$=RLD%1#b9rZP\?+?jp!f+7RO7NA7<Jn 95.238 + X@@HJbE6'Zo,!#Z?dDA=Ls3I@X6Mp\!`&6Y9H]*^Gk8pKQG4Rr8P7p(pk2Cu!&t*Zb]&&qg 95.239 + 7M&4is8VG&'S!H"R$aTq+6[%c`j*7d"fW>Y0,\gb^bS0OBg0-.a\PT!%HsN#X_HNg'?!8]/ 95.240 + (4a`2(F=N!te@d?kNnWUGj\-W/+r#mB%AoMWsZI14XHQsA5NXWiUtfFhH*+!<=:BOK89\d5 95.241 + tjM<kJnJYLFi!6\2n`G>@tM<25MJ'#:[8Lo8:E.YlR"cDX'LnpO^KTcUjMU8'Z9MC+8*%re 95.242 + c0Gd]+Jl&.,*6FO,NR)EA*q_4CEnNDSbD;E:67@Oad"tR!Th,fKbY79E7#qUOfgS/_;eViQ 95.243 + 1nDGQYsAAEO(<aBg2jdWjGmn&eQVKu!5,uqZophMLqp&HOB=#h&0F<eJLFDrk`8W/^.u:j/ 95.244 + X8mr\ALuClH['<\*N5,9])F19*u?UZFjS`YcboM"OMC,;T"#cBs#AMU=QE2$oDES'd:Onl\ 95.245 + MZR^dMKfeT6PZmRC-tf-Khh4Rig0,a"Im<C$/,'n8oIWeTGhec;84r'erVB?S)J'AY\jQ"L 95.246 + A=XWGG=LckFAS7,GHLeZjpeF8.DdHukQneQ1R=W-7fYT0uZf`u2I<"S;cbZ%\hL/d(2<m6W 95.247 + Fm;'L.P<L!X$4T]8]Ed*Y!)tA$ddZZ^\La4cIAPjd2^B%;oQ?aX@Pu\r$cL<?Pg5+(CEIWh 95.248 + !OR(TI40o*Jd]7#$5DaY"b]e/CHt8afP0DMR"A%4@oH<S;jB#FlRUO`k#n@3cfHn`D6o$Qm 95.249 + *siGSrG\XMHi`,CKOSa),h%ZJ2Z2.jUQ(X)f5W^26_qZmT?#nd#a+8j*n!#!`+f$cMUXtFd 95.250 + WRMIG,D6#DE92[?q45l:)LscgZ`pV6W/$Z]j4Z%mA'k'f<p<1g>+M"%=GkSWK.he<<aVJ3. 95.251 + %:[1nEkQ9H#f>oD\Xd#(`:O$^d7`_F)e=G5,A[n_'=LgqsLMkLDfZ&/u_Nl,)X8a<40%8$= 95.252 + XLAgrX-*#!FPM^BR4S6jRNQ[6^R7V8QM@E$^'I6`tl<WV'gOP)&h:IHG/4j,!#Yi*jFeBe` 95.253 + n;&\)T"r'AaX.22&0@D(d0M4UXqP,dJRA2AT)A[bBSSpnnrM&1Lg7mQEtMX'L/+jm>Yp&Zm 95.254 + MXNn:dgkd<qqPO>2Ri#`8=Lp]G0OeIH-W@*$1<(J>bA8W]5eTk`1S[i#&WUrZ.VEL.D1q*h 95.255 + FWb7667K/7.`J=d@NEAg"4E!8l2aZDg<dGW_71@o\oC6a8tq`V^#]qk=,a^N^RTZP8,S4BN 95.256 + SY%5j's^k:I/$/p0i>tN`U2$7)CoAD3Rgu\\Lb\(4SJ_f*2L$O?O\6d>6o>s:melX9G*`*+ 95.257 + X;c#k4A<l\@^"[!m;r,[rROtsU<\=^o#0AiWhAtUQFiHF]2i!]1A.e/.[V&+;2nR/C5^>NL 95.258 + gT2&gp"6,gLaA^+aG8NH7gL]7?EfPSI@suhKis]]#`^N>`LVM_SqsgaM2isLFqY%YmK$(2@ 95.259 + iNE\^.nr&LtT:%#c[Q2NGTa9$>/-JMX<pq=Mn[rJkkt7%b"Xrcksf.Gl[.V(&0+bW&>;s7o 95.260 + FS>_k>`Dj7,3-P#7T>T&j7?W&0CQ<nU$*iD@$nj`cLZ2Irso;AL'Nc>200Ja)$@gHbAn6*2 95.261 + '`r9>te>Gd75AoNQ\GM'ogjfI`WI7.NeM;g3l@k=).=Gc4.QFB6.Jtc0cQnrMAZtiFECL4G 95.262 + bDRXD1\8.,8CS&+QY.JJ`\B9Br!fk!,SqRG=[Gj^W@"'ra@)HB#oJiE"?Mu"*2E'_L%VH`/ 95.263 + #fZ-9lc7le@;%"&Md$W6VS$aEcts9?D'%,B0%4Y=a.IlPm9Y9U@#%ENS*HRd#u2=u4+JdR` 95.264 + *J%M8?=Z/J0p(1g;50]NqEkm%K!mWO:&:fJRRbSE!n?B/AlA\M&)NfIXpH<K\o<#C4=iN(l 95.265 + .Mhmg)<46VK%4\<T=,<p*LdLphKfG#7CFdR,q;M`=)mW\8;$rJkP:n(h<(,hn5^MW]G,D:Y 95.266 + _#?L1hgh=$s=C+f9D[]E`ep'<LnLu,?BHOW7^r,Be(?<m*_5!9?D1g.7f#aQPlTTnlST][X 95.267 + sm<2"d(?t<BT\MG(eimMH2\Q\hif=<(ks1=KGYoME2t,BEOH;r&\7jUoX5mO8cBbX>Aa](q 95.268 + "7#l&miM^@?Rj$4CBZlhi+Em#:lF\=NblGLMXI;H<sjdjqLh'BF'85IBHm%srkV))Ej"inK 95.269 + ?A8=..Zg6E)-Ol)<G2mWG3%;kViQ[Sp>CMZZ*L8o4LN9D<6B<8-RmBE;7o!`tSLY!JipWnn 95.270 + joh7k8ZEJ+UKLnqS(7?8ot?@<<k:@s[KA&H>U8pec.Y;1OW203`=8._Tu$Bb:sc2X63++7) 95.271 + 2sLgOQ3cCXXJ;Y31M>R&IA-S+Q?0j^R=od;D9;>5$q_/nLFMgT&da);Vj5f%qiG9:jL06;> 95.272 + %FE^N'G@,N;Dg-DTG^"#dT6@pMNk]bp.<PkFGK4HA7r!l@j3F2HD3"..p<@gE6$(,YYgR<2 95.273 + O,%t0Lj4u;Gb9k<YD9f2q!D0Rm;I[aCrGb5m0XXbn!A]K1kfRlO_i:PoJF;Hpoa'`T8sL&N 95.274 + rN2m^jAq'O%fArKo@)YMq`8K^WsSoEF1ucInsuQB(g_;p1KQa7LjZ=AGA1XoiBpo0X9R+-+ 95.275 + f'bT$HM2K!]-T,C6a!ok15P50`UGFGR*h!!f7Tmh^f2CinjFLPF]+-Gs<])i6e?p)e\XB8+ 95.276 + gG_:-ML@/sORj?Vngj`osoLk[O.(kc0Z'XuZ6mK'H/f(TG?5X7dDd^<r`(sQGi`(!PEL_9b 95.277 + sO2ZpA[En&]%i:XopDrn!eogboq$HHIr)WYaV=ZD0l6j>pkM>D_E0F>WV7u3ma56RSQ?oai 95.278 + MdNOtSjVHKHf6,!iBVnkOI8YC@cdnWpb1a_#'G`?9nb`jq/tHl(Ja_EE+Mi7IjSD,=&F=2# 95.279 + ^G[qHihiG&U!Ztk$jpC@^uu_9F;%-rWNCU6"&&a6m`WVL-oCr0Eaik&r4>&;0\U"HQ.a4,L 95.280 + Mn^L.*8DVP,T07#k7tOiH"WQV>D%1R^a@ET?,?EAjCaB@H\[n_litSg`),74+9mMSH.:g4S 95.281 + C\p8U8jeL/9&[8;>$/(OLk5/eWr=_nk#6H[h8[S!Yp-qoY`EedpE[qXs`D0giVA-gB^rqUP 95.282 + r;C<(`Ml+l.-KAVH*/2]HMonb_=a:oi23lI"F4KlBL=cOT%eRl671J2aYlj?YD#Snh2TRjt 95.283 + UtGpd#pGNk@Je^^hc13*aS2p0XGrpsT;hY5c(#jd);;tfZ7]?K4k\q<-f#f'E*M@a%m8\j8 95.284 + #Oo'KoCH2^d#c8o2pEJ?[,3SopO)%5Ko9WV7,TOKV>+*HJ4Xmm`HAV_9beFMnogj'\^?AJg 95.285 + 1Z=.T@Bt]<9W_&@.9nMPJ*e4#j,[b2TY+7E;F4XWM<=;&Z-&CL/S^c&=Lg5qT]lO?aEklO" 95.286 + g(!Z*+*;H/nE8CC2'T"2g$5q0GsnhVdE12M-*1?Oeq91uT2aFU@HYTl!#@3!oa9uc8PT>q5 95.287 + [b8j9ZqF';9CeM)`Ui7hbKK<e9DW@G?*!jR#LdX<GU++e9^_)DA91'iiaO*\U<*Beb+7;`W 95.288 + 9T9TEer`j0Z]N6[oR\#Z,]]GPK"Ek)4Zf?U(g?LCosK'OZ`r^s*8!s4/9][fj7Hd(2=t`hT 95.289 + l'oeP,Ltn<fa%J`2??XNNB@GgCA;)Ju."<,+^+168M1bnKaj$]("ODGbB7i6DG&-Q10Ao;. 95.290 + ?@<WlMgS)+Kt9f/]RHXpC\(#b88tccF@?J(`?=g4Wp[RN[Q^Z=Ys=j/=JeP[2CpYjXB.k"? 95.291 + 75\AdP_fm$8"YZ?R<=u0d1%WN44GVURuAgfKa$rFJI(7-V5Z=?C<+9QN"VjBl=M,fuK5(g^ 95.292 + cRTtm,g58=5:O+:sRHNdFEErg=*mpUt5lTD"mF[;GAEE\`l+6<,>!]?0nZD#:?JF8UIB"cc 95.293 + WiN.%&u!)m)<)m5EC_suM-MN*(5Zs3c/?EQ]YoW<o6@`/MK:Ti\#CV-RLMG@H(%)`+^0VTh 95.294 + c<KYZ@luYqZ42LXf\Te+nm0J=D3r6<kr:5Na.]KS:?oUSK<$Xk`oJEcH>[-#9C2<.9^_h-J 95.295 + 3WDib9rcIAWkk7p2M$GrDYLU:pd3;ANTqR72O[>V5M[?e7BTCntV52KtVjcX=P=_1i(KJV) 95.296 + 1*4*#U:p&[Ms,i&b.g4EqU^6+`]"j^D)+/NC%U?#cage8\_7?'>I#U2eS&SPlS[Jm(ZglP( 95.297 + KH#taW)T*t46/8O5,YljC15%?WLgs81Na.5ipjEV(,KV2a/e^YdR.]=ZBRYke;n@R4G"F/% 95.298 + -g5^FY*/j@91%DXmf>h0eKl(G/2JHroDh:2)JYi-3[;gZqih90l!k9`?"FWq0:2Z+i!`MFb 95.299 + eaTQp`UgAA;r`JJKRMD3<i$E)j3Zg%mgL.N#Xr*/$`E6`CNu"(',:37@i1q(tcd&$ofGIH8 95.300 + d+[>!SZ?Ss6?.P002!6_=BqKqpb85,[biLh$6>&!d,]QPC0j"Ak<r4G1d%m5-/ceXFYS6'3 95.301 + T(2<Nl^OY\mac.U&n%8rQl8S%#016EjgPa7k.rXTO-jI+IZ,=ZX<ED7hee/n-fM+Tmk3Q[N 95.302 + JV2VQ$L$i*dapO@]=U0o&C-)[=V\Y'aj.,$-SfO/*@olNB>%>E1Xa'8TTX9"iE>XMZd:GBU 95.303 + /!$*OAnOm7)*Y$b25\mYT?WND2X/1DDC=iWVCI!jhI158FV6^U"mUrE5mrl/&:6_m4$D[&q 95.304 + 1T4u;:O=-<pJ\YV;tC=e^kO1.huWsd70Z,$@,e>eDI,:L:1.t\k=4nEZil9!)Dh*;ocg"E5 95.305 + cEb:9)EAX<iS)a`u$/)\1RQ*K.2R4Yg',f467/DQFSib#snQ7$SK#1,_J3=/sMP/+f@9'iM 95.306 + kJG'd8+eZH70'!IEI_e[f1NOG/0g_@pWY3jH_ZI[1B>MFjNaBbL=Q*S+WiTe2`]83JnG2$7 95.307 + pV0(XdYp)*Ol671BG&HEZ[r;]BaD69JmLA-fenX4uHKAidh"G,u=P#m-Vg7a-oj8M;!*tNL 95.308 + BC=UQ^Xa1hhtSLBn'0t0=<=X%RdGGONISLiVYJ]"kCPCb'fJ#1rF'0QC7K.B_cVA^?lVGfn 95.309 + 0T$kGb/n_X4C5)*IYW/:A<QQ3;,'".)sopL#It"NX>+Oa-cj&@P!&HE@s>oGodH)WoH3SSF 95.310 + dlS\pS!=,AQ_>8BTS;*E4SnO)^[ibB\OEj=J*M1+lbSH(F).X-&;_rD9)q_^NdRI@;sgeB9 95.311 + l%L?C\hT%HeIc\U1.kPYP-F&dS3P%t9UC`bY.eq;B$5<J*"$);U.Pt&=]9-12;VKCg'd'f! 95.312 + &eI&-enW%Y5\CXL@Ra%XM[Zo<G][(;O?tV=QZe!0P:Y&a5^TM1,^'Nn+ll*:41p4"6>9'GS 95.313 + /Wa&AY05M;03m'[G)PpFcd^WD%cpug[cXa2dT[Z.DA!Vg[hV,1<\&4YOrq&GmL7Tkq^H=je 95.314 + \'sThU24QH>Y=V^.<FlhjaXh<R'?PX:C3=qeL]NR?qAn<bC+a+,+\Hs1\8j#N+<<Ept!VP6 95.315 + ]B.an`hi9muQO3?kogg,kGf?"_,:;#fPQ[qB]\[Dt9#e\W9KQueQt_^>[!hY><O-D#q<qBn 95.316 + _qh&iG7Ss@b#B2.XH5H&]GV:>@><U/CIXEC,Bf)"Q8leN\GffjLCn0^NfrL^H?T%2QlB5R% 95.317 + l^USJ/jj?=0F[W^>-0cIUU3X3PgDJCmG!?+iq*'FWnLqh*T,$A`B8uH<5KJ*l-04uu)!kQ: 95.318 + ZM@ibk5=D5oA4uDH65T:XVSM:<gUPdqrQc7@V,&?$cDg*AaKAn[J&J7gj>K6D`r$,pKmmXH 95.319 + ln(3r[52I]1]hBY>`)^?`j.FgXkWX^\#CHeb\01m!YM6pAX72qqlnmINQQ(s!Qq+hk0OiT@ 95.320 + Nf<BC5ZT^\E:#jni8$IJMq$C]C$irr;0[s3L]F&-Do/#69hn!70^?YS+cjP1PEii3-+s:[\ 95.321 + ?Q6M`A`!miS&&2OD[0_F^<e;WDJ:*B^Y7P,0%"HZC_&5ra/,iEMS!UlEX0NSHFHN_].#1.8 95.322 + n&9?HC>5<$<k7DbA!XAq6K*[Qs#geUR%VWu2HNYu#bKu@U:koAhV[ANd$HosbN^2aqRgSXb 95.323 + $;e>C&AnoQ`mDY)`NN,H:AkFeaTF63%?THW&E=6l5moA1j=.1l0]qB!h%*?Z&((=f#(G9:> 95.324 + h?2e#LL!m0*`#M'+p?G&^_X_0^@L,%gFa2jq/CBd5)G52\Uc^&lB)EYgt6H`tXQs'[]\k&Q 95.325 + 9EA<u$j%(!aB#EFLHg0b^g-(=@%4Ys,Q,eI_kI<"Fm(&VCotLDZ/26NGRQ&SC3`hWN:+):> 95.326 + &p&JGIBkm<IA"@ALmnVnJb[i:IA)p^kh!7MfR^tfTt*7<(Q&D4gXh[\#B&u(^3,"2M%k8oc 95.327 + O*msEu&b@)ApA9G3*&5HNERQ%.#9]+b(JRO:0mY9'iZ_eA+jp_*Z2GOa]bZbS,18+h%SIr6 95.328 + 5oS+?eH14DJgDSV%jNSH,#Q<'Od<<CRj>:D-.6,Y;$LCs*>`Z;b(@AR+sS@B#,MAf2X47c; 95.329 + /A<=DLH5TR^,^3&^)L6QRS)dgQH+OdVB%"DCa.U!"sI@LmD"<K+c1gOt!R`&lTd1)_'4Y/C 95.330 + Mhoni%'CWt-LS*$Rm'$5E#F9.R!)I\<.!ZGJ&R.kMD20@Kj<En)2YW>bp_/eT6V.N14EH;> 95.331 + dq'2jT6J=A0JT.`Nt09ZDm'/MF;bo1TT&onX+nU3+.74oo60d`,nZSmDe73D*>+>["U'4Wp 95.332 + n__\$d)RA$7n_l<66SteULeB^+1M2Nn=X%n\,tie8PD)"qQT9s?0N!*P1)DlY5rYe^8^jc= 95.333 + _V[+fM*"9"18:$ho:%j@a#o3j3V%"@13#?a1HMIXL<:DfMC]2@nfm(<N!G;@_Z5K+F;uR'N 95.334 + <D#3K)dthINg49F@^U>;s5LDClX+t-`GT^_N@%D-6jaQ,dXp&1aY1,)a`cZL53X*V)Dl6)A 95.335 + Yq'$)1%dP!Cc9r1`E';H*i\@re?n&gS,p37>h0Zcbj<G=RO/.MH]gP1h&lXZ`Zh6&Lnd1Tk 95.336 + f)H6Q;s-3@[AinAQ"IW?gE<)cdcM3UYs$V"SDQm@-JB!`p2I&Q)$O+Q+[WXNtn5^TEKR,ft 95.337 + h!Z+J+_b05Z/j_?`dk*QFaZ22):XoD@#brj]$S#"&0U);dnjuJ'Fsj/GO0k.4U=c*<mO2\3 95.338 + CQu(teAh#-@!<;5-?UXY',ZMR[o>a=2'NE-U_?`"%OH6X6F,rk-X;J7c@2!A,#n.r'_]>Lq 95.339 + bT.s=4Mb;Zd1+Bdjh]U+gVbUob`'BdV29S<lIC(-6l[1&<&C4-.QNK8^0GATN#N\,@t1AeN 95.340 + b5:'3-.U5A*5-;RUgZ#?kRI;9+;o-dEj6auOSq+uQSHo2%Htn2I7uG!Z^H5u1j>;.%f04k7 95.341 + n)APZT@">s3:7RH'<_0]Df:L$o@3PnrEL-[e^;+C.a=;F,3(.)@CKi$<V0XBRmQ&m86n/u@ 95.342 + g<3gm+[9QO\)eFUA.b2H\L6XiBUKldsQLfZ3WF]ZARqA[`*Y^L=[4ibgUIiuOT]2>`p'jRD 95.343 + KHq;d+dGJj+q&%L1*X/U+t7s`PJ/J%_dlfkCt?l`(.g=t%l@<a2jRG5ZFOI36V\gE<)lsBp 95.344 + )G8)jIfM;LK:<I5QPbs(me9L-]$_TVP.]jD/iPA/Hn7]nuYe*r+0E6CdO8#QI0bT2fjS>c& 95.345 + (NAYa5eTd-q_!D:>J%#^oIA_eMLcBXG]4pDbO%rW!_ME$U3X(?QkY?;`TLEgLcdLu:2c$ms 95.346 + SZ0t2rf2^"ePqe>_pUBJ&Hei,$5a`FqlHIo;K2Us%W6n&h,FXUB]U,")14"/]23sIWhGBJ* 95.347 + Qs&umn+ZArm(:.g9dsc3p+Yt99jJlH$A0JGP@WrW:(XHhSS>DqpIC?\)28=N2"+<K`<u/hX 95.348 + 9MKjN-\@^9HW+o/cN?U;:Hb&ZI:FdXGO&Z2c%L0E@?oh,64,G+i$)7YJ<umR0/[pi&2dJ1E 95.349 + ms>FiSfOBpP0SWKD6C2[f:R7Af;F4@\R@dJi/)r?\.r+Jh2n5\>+p^d=V"C2`BDf2jo2k_h 95.350 + :"WL)5Ds+qKH>0n*2A.9O/4p)5/r]k/I:NBqoNP45.^"b).gN+=)\="Ym[1Q$GSO40RpEbQ 95.351 + [5[inhb=OKWjfS22Lcl_NJ?:&u^R*&Z9'PV=IF4\`=FYk:CE(=N6DZY?NajYc"7uY<8@X+% 95.352 + f\Li*ZRu_fd=.'#R).Q1(WgXWTU"Kr(=VH`=4cu!uKu+RBq*^UF+\QkEI#85pLVI<_ckPT0 95.353 + B`c&;oL"E/7@JEJQY5iUQ"a7j:*TE;M3Ein<,ieDAXo13:YBELq.q2*]hqdnRe[bKJd6POM 95.354 + (ujdG(M#X62uVTE&Y9-R2N"Jg$U%E]Kc30Mq2I1q+I@U'Hl*&,MDsDRMT$#_,iY9-$db1)D 95.355 + dHd3q&D*=EdD?\2d[egS!3^R3HuGe$`,Zm?0dAL#Z[=U&RdD!F]"./]W/\K2bf:>bZjN:3^ 95.356 + @mqK,XsH%291,8Ib_(q--,:R^"%+^/2j(Ss";Q(qN`Wm`[\Y!3r5Tl$!iUfe;*RH'*,&gu. 95.357 + (<XFio\N*ZA-?<Tr6Wb*7R=Cmhc^:S^Dh8.X"<hEhnj,=uL&.!kqT#SeSZSWAXl:ZT(QjbF 95.358 + JWH8'Z.g?<n^f\Q4_2,iAGEL7j3skL#HZPK9H)BBiZF3QaaobWTE9\AA0E@q'<\'2PPH/e6 95.359 + JJpBSZisIY]W=$D\GgV(+8tuZ5\;'&Mosa6(LMiQP-Kg>Ap)N0IT!n;mrbTe6-!rmpNY)-7 95.360 + 5Fk>/b0t6<hT%'`&(XBXf8]j-\gH]KnEfRCbi>V4j9-\Q`j;5u)k2)nMaL0fuXURs6=8ICM 95.361 + B9^X3"jBeQuj$(["bP+$q,4:aD3^LN\LA)%%#*$Z60!kGR%OHZH$g:rt7g;*SDq;UeV:hc3 95.362 + M-,c<H'6J`0QIfZt&S4'aZ37):(48FD[f62566^hnddN+I=g=Je`8#j`&Hfft-,=\.\FSXa 95.363 + dMPqNZX4@^[l<uJY?At91Wc'NaOC%.q3f9L.=rHi3?3[q*5`7KL6:8K+C#8Z)d7`9jS@T][ 95.364 + 921PQlXA;S]fOYbZsV_&A+u"JX3gLX4o>5j&K9[Jl5Zpjh1hA`jsI/Xhg@%7m-Ck*?tj&pV 95.365 + f6JX1U78$X6#i#+u;LIs5#urAW+bi3V6*[+scZ\gtVq-.SPj"T6?']Za=PO'*K./0%!]*:$ 95.366 + [SD:b>*"$L%hI/VM6>M%Q%W`D3]SVu0,QK>bVX*7,Aie,JrRC9m3a.%Frh5T.7[c'=t1]8o 95.367 + EGd5nl\Y;D8gACX!4iuMcf%L"POSrbEIG(hFcbs+3JmIKq*V.VVglU@Nesp%'=]`mo>Me#+ 95.368 + i'%\1%):\UV;L&b,%*k!*[BZN-fU^Jinc?K*])h_2rgJkj5*#]*^f!p8*$77jPE\o*`M0,= 95.369 + 66#Xin\Q/h:(=HBBGd#F6oA7SL]=/\_:8K)ub?N*eWZ_LZSXg^Rf6**g4-!(5b9pkanF3*i 95.370 + &!tMr("GeUEeL*jWU'R"X:+0d)>>*lI>Na6]D@m,$(U*n0L_fBo0amG?ag*olZpkO+r-mb[ 95.371 + F$*mOj/p&TX>mlpd@*s;"=fFgCVdFlS+?PDs'"m^t)ek:$$+!^.2l10cs*a^N#?SWfkS+DS 95.372 + 7kl2Ik+%#EMbfujN\Q&rtIWpmT-l/FZAUPE3!AX:ICZ'"@oD_8R+*+?q)M7u1[i\chT3b>F 95.373 + /-Fde,QJ5J"D#FMDtdV.q9!:CLaVr?DtkE-_P+gC"%WD97M^Kcq0loNs24bA7UM2Lh>Akt> 95.374 + VYoD>qs*K^u5V!!a'akXo&)*Q2eo)+7c<M.G=P^g*-OsJO&.T=>V'2$&(_)OP"Y=+VBPtQB 95.375 + =uH?83:A7cJF?oR9(LO\"D>Bf'F!(^*Ieo%>;&@540Di6<^XVD+=,9dc.Xo_sD-Thss;=u@ 95.376 + @`8Yo>LPhL7DTi%dglBPP\?EmY8<pPj6omQ^GHs#7V>;_E0qmBO5[G#"Pi@-?`mFPN`<G=F 95.377 + N`nhMIo`^D-]jSV^S2L<Y5asU7F/65l+d'lWnsNak?SRtnB(MGGp4#B%d7<NklXcg7p!m4t 95.378 + :V15!6#[(aY+#k8is0tdAkcLb-0TQhh<+6Pg#!=&alRR=SDJHSU!`+HqOLs"%nih+=`mMGA 95.379 + Zir&JaBh!Y8/L*HJNl3c_#/LiP1l_IZ;[_ZEqN`A%s,CoD\eU0GF`n5d3'U">[.&`3HqWl0 95.380 + em8XaA@a,n$3e"KHB4E:q*u.9d?I:QYSh6cr'oS3N,m<u+60FC,kS0pH;h7];7]I]X0&<jB 95.381 + M;$n/X&c)b`T_eDe++s_bfQOu18*1kU#.>1N^`DVr(/5%bJ[k:=ZoY3"K%7@ZI/M@1[+?"6 95.382 + S0eapE1/T;kW);/-!7S<E&K$_]jG6Eb7'/XL1_g6^:p`(j6r>BA`9j/Alb:t@mh@71_Xp_N 95.383 + 2kr0g%S>-U`:,Q^1qEuX,;]Qo<)keU=&r>/F^E>5%rq0H/Fi)Pp/6^c/Qa.&au#,ViN7l2a 95.384 + e4?K#TiXZ8t<Eam@S&q2O11T>.18<pK"=H+UQS;%4`UU(&IZ4d,qa^@bi.-;g);X]D#rAf9 95.385 + PNF?FR?2HpDd^nC5[eo[.SO<s72r,0s946Ou.VeRFB&FkjuC%"7`)@^rj"N+4iqZ[L`6ol! 95.386 + CZ%_ZtBf9A:dPUsme`W/qN1!Q()\Wj8*"1b`B!bXDN+I%F;n/%a1)9L@%;)Vl:;r`1)Q_nK 95.387 + .G+YVgES`o9A2VWH?/.7foO7r,nOp).>7qC2;eL:!6u='\f9\s<k2)%T6Y>MjQ\VI+4DuZ> 95.388 + H+l/5<rPC(3NtQ'&c=PHGJuM$TuM)bG9=nH1ZkMSff/o6JSR4k$I[&T)DDSA,B$%OoVCA>_ 95.389 + 3j%[:/-XpG'jFf!k2eo%/mF?ghu;L'>0AFhY;brSe49J#lZapM"+T>-0BKeGG")F0,?W)C7 95.390 + Mrbo$h1T[t\0WT>)sQLKYeVpYk*RZ^o?X%ASFl:Smi85F:R0I]CGf7pjfeYr1$VOPN*N"n& 95.391 + !*/HK3^LjZ"l^-6\8qd4^DJe1BX5r^:s87VElm"'&[2R(;,dY\:6L&me5i<`L(#pV,UBu&m 95.392 + J"eg#kL(M?B2"e)T(=Lu9:iX^qk;K&fe3AUu&X3^f:>VXB^k&X7.`0hN'4Q&ZM@i9W6&5*_ 95.393 + TAp#R7IZRmLk8(sA7&>5TSu49P4E'dbDK/o2+G+/)c<D1HI(u/]p2\8,IC`#i[R)\(l\l36 95.394 + ICLLU,PV'#pEh9LH6$a*&8b?aT)Di<C5D26kBSL7kC!fNqt!9aT3$<r(N4cL/CQ'8L[;RPX 95.395 + 3Su3CBb/Wm,=Q!tTP7"EdocLqI8^Z'nJ0.8;I,oY6b,"J//_2%F/5*Kfi><<kOOpI-(JQEg 95.396 + -<a7Z,KAe`jd'4u)UZ`mOC@f1PX/^-i;=u7T^klJ,eh+\bE+/IuJPKK=j:!)W_B=.DfEtPF 95.397 + g\W76_9KcCK^4@Y^^HkkQ[K$s"GY>$t0.4^LU(g(R4SW["LU?&umV->?auGsrocKju8mBP/ 95.398 + T/ER<-`%NSPqeWpXf'so3jLe;.e1hZA>fSa?uhf6`E,AS<@+4e2MY2AM,A"F7o^5elc1s\[ 95.399 + "5&L0QSp.XU9JJ(%!?I'kXRJ]"",>ni9ROAs^T]@koL%]apC(_2QOi<@JXhWli2[<SH\CCU 95.400 + J@Ont?;^)-9%8,0qgU3l)DYDdc\;<LrdaL/]Ym@r-:KZ4\LfUSN*'.V)XbTp!Y4KfULG4`@ 95.401 + 7k?D+Z^k@AEeVmR;9`)Nc6=_ID?=p"u^-X[AXXShISFsbU=]1Gid<PQ$[#2p9.=V\$O)C?) 95.402 + %Ejb5$F)H-H\edj#>s#$.DRJ*.(M<&?1M(atp#!CuL@JS3a`lFk.>rD9oj58`HZ$oQ^')Hd 95.403 + gcObKDmf<coMupT>0(h8Pfb6RLB0o($%[%R#Jh6)"^nt\K5buE_AGcFL7B]?XW-]8\)Rp+] 95.404 + K(_Md^?C/ZDNf_"?:@d-cHq#'k4gYMfEnn`XAgS#+R8`0ZCcD\E=lB]1m9Zjo2@6!0?,<j: 95.405 + O.*8')Vr-"OZVPB(hBar*\uANZrWEjf&m).tO4]XaALp0Z#]LG<C'QsfHU2)s7K*bN(<Rqb 95.406 + ,NVATHej<?aL$da[T)7_D4Cat\=]FW=l#=3#`l!C*e5<=#fJ7'?%Sb(-[9,[=>BC'K.1kq@ 95.407 + G)J2?M@I#DG2BoIEP=Capn0.GP7+,53M/%HAX*&M]c564Cj;f%uobf4.]"JtrSLL"Mf"]iV 95.408 + "o<!Pa,%haG1;sCktYZ\7g*7Q$+i]?$SA=3:"b.DgL05^URA:lIIl)qLN.2iSZsTe4=3-7> 95.409 + \p1+>!q@:h8_Tp&M<-dGH&^=`05.X:&2PJo(Bom\u"["Of5NCNmu*.G@4.D/;X#DhBkmBOT 95.410 + $SI\?=F:=eB$c^&Q,tpE*Q8RcEgf@Ch:b\N*"NPo)\a03$dS0I%Z`1dTPX[YRX(-;TP]c?= 95.411 + 1&l(d,]O+$R/M:$W)J`L&LP&On9apq2T,ojjtF7Qll#Y.qZ"m^GRSGTeerYaquLTu"ZB@:S 95.412 + h`[#r!N:c.med7CT.ilEWG9]?.%,X>r>n=5b^A6Y_7\%r]+R*RAe#iF0m-!2<UN^1Hj#gb? 95.413 + n`F>o&g$`']XO7!#@"N<lMa>d;&J\U$oE8c;i+*>#9mA-+,R.<8pqOiomKAkq!SnibNB?"" 95.414 + QO-A05O+s5JQmj]@$NG:1$,?Qh"[>b5%Zto6t\fo6JO)OrlkVr<^+2KVsWicVQt%B<?i7hj 95.415 + SO\CV;q]+Q9R1S*\!Tb?jYq-QR#nEN[!OHO%ms+6WS?5GP=ORp*/!_`M)@%GTnNe+KUp\$. 95.416 + Q@2KJu2]CJ1EftTM'^<6Yo@#%"J"i$.`^S?3<q_^Un&A]%mR,Y<7RYrm.ZaC0N^_>'[+QPF 95.417 + gq)s(j^f1Sr'GuY<S%4AMMrU,<J;cdeKtX9$#a=uje)ES/JrA[X[YW_+5_=a7.#]+s^po$* 95.418 + A)P.l[^tKj^T1^-,VR%<0T)<bQJ2<r//>cj(;@-lN`-S-^qr+E+GfpTLbmSkH?4p1m>+FZ\ 95.419 + ]BTB0T<QSdg5;!Lr4t'9HT)&i\o"3]M&(3ljl=f&47.'`2$"^MuL@.>!+<f[S):6X=Lt,ho 95.420 + !fs_k<F.r&tEPM*FOq6]d?qLhsfR["pOY#g:hV$rW%ZjG<]p`3`jioO!E%9Fcut3@m#f"7( 95.421 + u[:]iu!`>F?K^kB[Ri]YD*\`?4LFDD.U#/s-#2nWu5bUUP9+ulq][8H$T"EVUOFGNl2/)sF 95.422 + A;hDhr:,cER&.Bci`,J$WC^BB/`$.<5XDnMu\M7cM6pL_Y,\OWOE]Diq7oY5aFC6rd'YNJ5 95.423 + 4S3,Q5laEZN&Gb`6gPc0`!o5\J4Sa<a9r^$Y_'j4KFEfF#kVFoI$_s-kJe(s7O+ci5m,%"N 95.424 + 'MWC5!/%["?<qk5mUFga4-g*."b)jObh56auIbi@#i?NR*(Ym]B#B?I%&*6VScgC3lC!k=H 95.425 + pn^#tYhq8n`jhP\Grd,`3:faqSg9kiKs3M9:dW9;K/0"+\9=Z,8\K6VMbf4F.PYSB3%+bC$ 95.426 + Qg.#H(lZ,XGq#YYY_`'k"QYDGZg6_(HoXG'",N_?b(bi>Hk_Mc;fF/Sq1b1+3<'ZgX)4%\A 95.427 + D7=;R<*5bKuZV=sY^G)0PBSSU@_8j?_7A,mignb:p%>dI_\eG\!m,QAYJ',"Y9#SHg.-Ea? 95.428 + L<FB]6B#hG.ffp'Zq:..c+&?`A6+L#m5K.OLa/?HAEsn^-\s&83P=d9AG/dZg'De#^!_p:E 95.429 + .fqrgdR<[8*GoG,l>mXF&,3#\$X@IKJ-(p"OL(Sc<05SCl6F.!R3=Q8BO%gTSLeV@`o%/7= 95.430 + ,;9!.n%G_?a]a]#<ti,h30"gou1b#gD9ibi;N*(t"O@aGeKV*7;bX#f1WiNJ/#_AIjT]`tE 95.431 + 3PLc^uu$e<S!_h^/n9ONJ#AL.Uf,ej_#c2@Jn'S;Of/-rp)#fRTBV&3(#0[g[na'a8(*-\u 95.432 + !XNA!7]i#rum#<FRL:4HNL4o='CMC5ML+t7/7>O,k,k<s32pfE_4^7\E9gU$%6O<#4[\Y&G 95.433 + "*ZpT.YsR[e9*kWPeg0@DU:6"`/QM$ohVgZ#**7"^8-ZZh,$/':!nAaeO<NhEo5CYjjbSF; 95.434 + :IJNj]@<J\;6B[e\tkFns.a]j].dS<NK]\4^X&B>mQEr<^gWOEdGt-M*@/]<@q\$]k<1eAJ 95.435 + =Gb<lJt-np=CCjOP:Nf!T#=r*.]O0@aWTf4B-&"`TJjEJWtR<kW]NX@GV="3f;B=64n,/U. 95.436 + aGGmKse=#GJ&!/o:sj]:Jq=Cm5]FY_E.M8Maf$lPV*9oIZCN7c[?f]A.GooIc0OP(A2fd2g 95.437 + 723Z]^PhB'%fk$K&FdLd8R+[amf^3M]I:cT(SCu<S=9.10&;a!M(to^ug*NKI25AkoUlUdo 95.438 + `SH7$h5AtXq,uq9=nmg,%Ad7IXP24,g?#KkmA<HlVco(bgEF[BR+PT@Lg%Kq>@k7tFgp+Z\ 95.439 + <\_N8qjNS/\BcRVUg_G3`R.+Gh/Mc^t][@ga0hm28e3<`8"A3gh"L\FiW9kaP<'&gni0K[E 95.440 + I@EbhUanguZh`["Y8<]\O=MRYo4OCOn'SC"T!)%/$,rA_5ah<nfU]gJ-=ZNRqIDgtgB'>r$ 95.441 + @@auIFaM+csdN4n"Q-0*iJ/_Gd,^[p^H:#"F1kMDKghGrF$SS;DIC0mRJhDO]Wp$\s+hO+! 95.442 + &7*GVf!6AL6oA<R@O$20U(#%PQW8C>Ehkg10A\H::d4L(L$FT]ejo=6=cel]th,WFl#cZ_T 95.443 + "5m2`N0X,H%JX==U0p_%i2-j=ecuWg#[jm/i1:D9p(*$t)W/dYhqenO/e6hu']Dl]?<uLI/ 95.444 + MuEm'Ae`diMINN4q%l!%:QYe:duJap)f/%*";N]@Ka5MSg*/`,`(k3%.5<K:krIK-fUF2?l 95.445 + eB:/a$T7*`q2LioVkL/g_"d7gQmlj!HPA2DaA_1uhUoj(:40FuSH939-;bj/+lt[QENh4QG 95.446 + !Uj5rPcp-7UB5i`\Hj8^K:2BLlO7,m>_%,N^CQ:L"j8E?(.jJAY/[RF`H+66hSA9LT+p.sc 95.447 + S:urHij@2i)2BZFD_+#>RAL:I>G$!d[=P>Z+jZZl,8K8L;h&XmRQ'pS9i6p`l@-/55jsFR" 95.448 + 2Ikl=AEHp(T1F.fG%]rlB]bUpk,)nU[VP$FD!';ck2pRDp2B*uE9A!Vk9b642KS%NFQZ\Ik 95.449 + @So#G&EU@A`oA)kGERg[X72WI-9(/kN76Vp4)91JERc"kU(oF2M:3_K]lHjk[oS5G),:9M! 95.450 + 1.]kba7$[Ys@hN9JiPkiRogkdG'mA;?b=LR++(&[;Sl?YNBr$YG]_%[H:5Q"bE-l&M4op6k 95.451 + 0RRq\IUC!N,\fRE)QR-DV`l!C"I#,2@bUM<8jBr7`kAtS?pV.t1Ll#s&kVOd"4W+qotl?9. 95.452 + A-Eh10VX!TOCAtMS%\@GWXD15/CL4%+hQpqa[VIM#CHf4CSuuk3U[([fCQ>o?^6e/7[;5cQ 95.453 + CMq"**jfYl\SP$QCX0k6m_N\aX)(h*m%0a5k/6Nib\PeNljh5'f"Z$-_efn0Co5QqI`H9U` 95.454 + pD!rCYm'J51aTla_`r0D4])@(>%rfg2)M\m7,LjL>-PlbAI76D=5j>hUq2_iU,4SmKV5/k2 95.455 + g<3b3j/lmXEsZNnWnZipITBm[if`T%S#Dm-]VuDPkqOY4$9Un8;j4m`+AVG4TX,ennIYl%% 95.456 + ?@#Q~>Q 95.457 +Q 95.458 +showpage 95.459 +%%Trailer 95.460 +count op_count sub {pop} repeat 95.461 +countdictstack dict_count sub {end} repeat 95.462 +cairo_eps_state restore 95.463 +%%EOF
96.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 96.2 +++ b/0__Papers/VMS/VMS__Foundation_Paper/VMS__Full_conference_version/figures/Scheduling_states_2.svg Sat Aug 03 19:24:22 2013 -0700 96.3 @@ -0,0 +1,210 @@ 96.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 96.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 96.6 + 96.7 +<svg 96.8 + xmlns:dc="http://purl.org/dc/elements/1.1/" 96.9 + xmlns:cc="http://creativecommons.org/ns#" 96.10 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 96.11 + xmlns:svg="http://www.w3.org/2000/svg" 96.12 + xmlns="http://www.w3.org/2000/svg" 96.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 96.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 96.15 + width="744.09448819" 96.16 + height="1052.3622047" 96.17 + id="svg2" 96.18 + sodipodi:version="0.32" 96.19 + inkscape:version="0.47 r22583" 96.20 + sodipodi:docname="Scheduling_states.svg" 96.21 + inkscape:output_extension="org.inkscape.output.svg.inkscape" 96.22 + version="1.1"> 96.23 + <defs 96.24 + id="defs4"> 96.25 + <marker 96.26 + inkscape:stockid="Arrow2Mend" 96.27 + orient="auto" 96.28 + refY="0.0" 96.29 + refX="0.0" 96.30 + id="Arrow2Mend" 96.31 + style="overflow:visible;"> 96.32 + <path 96.33 + id="path4008" 96.34 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 96.35 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 96.36 + transform="scale(0.6) rotate(180) translate(0,0)" /> 96.37 + </marker> 96.38 + <inkscape:perspective 96.39 + sodipodi:type="inkscape:persp3d" 96.40 + inkscape:vp_x="0 : 526.18109 : 1" 96.41 + inkscape:vp_y="0 : 1000 : 0" 96.42 + inkscape:vp_z="744.09448 : 526.18109 : 1" 96.43 + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" 96.44 + id="perspective10" /> 96.45 + </defs> 96.46 + <sodipodi:namedview 96.47 + id="base" 96.48 + pagecolor="#ffffff" 96.49 + bordercolor="#666666" 96.50 + borderopacity="1.0" 96.51 + gridtolerance="10000" 96.52 + guidetolerance="10" 96.53 + objecttolerance="10" 96.54 + inkscape:pageopacity="0.0" 96.55 + inkscape:pageshadow="2" 96.56 + inkscape:zoom="1.7990428" 96.57 + inkscape:cx="380.09076" 96.58 + inkscape:cy="756.04202" 96.59 + inkscape:document-units="px" 96.60 + inkscape:current-layer="g3898" 96.61 + showgrid="false" 96.62 + inkscape:window-width="760" 96.63 + inkscape:window-height="1141" 96.64 + inkscape:window-x="889" 96.65 + inkscape:window-y="6" 96.66 + inkscape:window-maximized="0" /> 96.67 + <metadata 96.68 + id="metadata7"> 96.69 + <rdf:RDF> 96.70 + <cc:Work 96.71 + rdf:about=""> 96.72 + <dc:format>image/svg+xml</dc:format> 96.73 + <dc:type 96.74 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 96.75 + <dc:title></dc:title> 96.76 + </cc:Work> 96.77 + </rdf:RDF> 96.78 + </metadata> 96.79 + <g 96.80 + inkscape:label="Layer 1" 96.81 + inkscape:groupmode="layer" 96.82 + id="layer1"> 96.83 + <rect 96.84 + style="opacity:0.44897958;fill:none;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.39999999, 0.10000001;stroke-dashoffset:0" 96.85 + id="rect4618" 96.86 + width="245.17555" 96.87 + height="96.120583" 96.88 + x="248.82765" 96.89 + y="196.71402" /> 96.90 + <g 96.91 + id="g6133"> 96.92 + <rect 96.93 + y="223.7659" 96.94 + x="346.78796" 96.95 + height="19.030159" 96.96 + width="51.619602" 96.97 + id="rect6089" 96.98 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0.60163802" /> 96.99 + <text 96.100 + sodipodi:linespacing="100%" 96.101 + id="text6091" 96.102 + y="236.91867" 96.103 + x="355.0636" 96.104 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 96.105 + xml:space="preserve"><tspan 96.106 + y="236.91867" 96.107 + x="355.0636" 96.108 + id="tspan6093" 96.109 + sodipodi:role="line">Blocked</tspan></text> 96.110 + </g> 96.111 + <g 96.112 + id="g6138"> 96.113 + <rect 96.114 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0.60163802" 96.115 + id="rect6095" 96.116 + width="51.619602" 96.117 + height="19.030159" 96.118 + x="426.78796" 96.119 + y="223.7659" /> 96.120 + <text 96.121 + xml:space="preserve" 96.122 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 96.123 + x="438.72571" 96.124 + y="235.94211" 96.125 + id="text6097" 96.126 + sodipodi:linespacing="100%"><tspan 96.127 + sodipodi:role="line" 96.128 + id="tspan6099" 96.129 + x="438.72571" 96.130 + y="235.94211">Ready</tspan></text> 96.131 + </g> 96.132 + <path 96.133 + id="path6155" 96.134 + d="m 322.39366,234.14931 c 15.56383,0 24.45745,0 24.45745,0" 96.135 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" 96.136 + sodipodi:nodetypes="cc" /> 96.137 + <path 96.138 + sodipodi:nodetypes="cssc" 96.139 + id="path6157" 96.140 + d="m 479.14368,233.03761 c 10.00531,0 15.54343,-13.29992 3.3351,-21.12234 -25.62918,-16.42178 -194.34421,-13.27617 -221.31651,0.3335 -14.692,7.41328 -15.07228,19.58187 -2.13564,20.78884" 96.141 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" /> 96.142 + <path 96.143 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" 96.144 + d="m 399.05855,234.14931 c 27.79256,0 27.79256,0 27.79256,0" 96.145 + id="path6527" /> 96.146 + <g 96.147 + id="g3898" 96.148 + transform="translate(0,0.4467926)"> 96.149 + <text 96.150 + xml:space="preserve" 96.151 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 96.152 + x="267.54309" 96.153 + y="254.91867" 96.154 + id="text6077" 96.155 + sodipodi:linespacing="100%"><tspan 96.156 + sodipodi:role="line" 96.157 + id="tspan6079" 96.158 + x="267.54309" 96.159 + y="254.91867">Progressing</tspan></text> 96.160 + <rect 96.161 + y="271.7659" 96.162 + x="267.2655" 96.163 + height="11.804094" 96.164 + width="51.619602" 96.165 + id="rect6145" 96.166 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0.60163802" /> 96.167 + <text 96.168 + sodipodi:linespacing="100%" 96.169 + id="text6147" 96.170 + y="280.90646" 96.171 + x="277.74329" 96.172 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 96.173 + xml:space="preserve"><tspan 96.174 + y="280.90646" 96.175 + x="277.74329" 96.176 + id="tspan6149" 96.177 + sodipodi:role="line">Stalled</tspan></text> 96.178 + <path 96.179 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" 96.180 + d="m 283.06571,260.15959 c 0,10.07749 0,10.07749 0,10.07749" 96.181 + id="path6153" /> 96.182 + <path 96.183 + id="path6713" 96.184 + d="m 303.08493,271.76394 c 0,-11.10513 0,-11.10513 0,-11.10513" 96.185 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" /> 96.186 + <rect 96.187 + y="223.31911" 96.188 + x="262.8187" 96.189 + height="66.833359" 96.190 + width="60.513218" 96.191 + id="rect3890" 96.192 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0.60163802" /> 96.193 + <text 96.194 + sodipodi:linespacing="100%" 96.195 + id="text3892" 96.196 + y="236.91867" 96.197 + x="272.02063" 96.198 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 96.199 + xml:space="preserve"><tspan 96.200 + y="236.91867" 96.201 + x="272.02063" 96.202 + id="tspan3894" 96.203 + sodipodi:role="line">Animated</tspan></text> 96.204 + <rect 96.205 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0.60163802" 96.206 + id="rect3896" 96.207 + width="51.619602" 96.208 + height="12.915796" 96.209 + x="267.2655" 96.210 + y="246.54515" /> 96.211 + </g> 96.212 + </g> 96.213 +</svg>
97.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 97.2 +++ b/0__Papers/VMS/VMS__Foundation_Paper/VMS__Full_conference_version/figures/Time_in_VMS_1.eps Sat Aug 03 19:24:22 2013 -0700 97.3 @@ -0,0 +1,943 @@ 97.4 +%!PS-Adobe-3.0 EPSF-3.0 97.5 +%%Creator: cairo 1.8.6 (http://cairographics.org) 97.6 +%%CreationDate: Sun Nov 21 13:32:58 2010 97.7 +%%Pages: 1 97.8 +%%BoundingBox: 0 0 330 127 97.9 +%%DocumentData: Clean7Bit 97.10 +%%LanguageLevel: 2 97.11 +%%EndComments 97.12 +%%BeginProlog 97.13 +/cairo_eps_state save def 97.14 +/dict_count countdictstack def 97.15 +/op_count count 1 sub def 97.16 +userdict begin 97.17 +/q { gsave } bind def 97.18 +/Q { grestore } bind def 97.19 +/cm { 6 array astore concat } bind def 97.20 +/w { setlinewidth } bind def 97.21 +/J { setlinecap } bind def 97.22 +/j { setlinejoin } bind def 97.23 +/M { setmiterlimit } bind def 97.24 +/d { setdash } bind def 97.25 +/m { moveto } bind def 97.26 +/l { lineto } bind def 97.27 +/c { curveto } bind def 97.28 +/h { closepath } bind def 97.29 +/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto 97.30 + 0 exch rlineto 0 rlineto closepath } bind def 97.31 +/S { stroke } bind def 97.32 +/f { fill } bind def 97.33 +/f* { eofill } bind def 97.34 +/B { fill stroke } bind def 97.35 +/B* { eofill stroke } bind def 97.36 +/n { newpath } bind def 97.37 +/W { clip } bind def 97.38 +/W* { eoclip } bind def 97.39 +/BT { } bind def 97.40 +/ET { } bind def 97.41 +/pdfmark where { pop globaldict /?pdfmark /exec load put } 97.42 + { globaldict begin /?pdfmark /pop load def /pdfmark 97.43 + /cleartomark load def end } ifelse 97.44 +/BDC { mark 3 1 roll /BDC pdfmark } bind def 97.45 +/EMC { mark /EMC pdfmark } bind def 97.46 +/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def 97.47 +/Tj { show currentpoint cairo_store_point } bind def 97.48 +/TJ { 97.49 + { 97.50 + dup 97.51 + type /stringtype eq 97.52 + { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse 97.53 + } forall 97.54 + currentpoint cairo_store_point 97.55 +} bind def 97.56 +/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore 97.57 + cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def 97.58 +/Tf { pop /cairo_font exch def /cairo_font_matrix where 97.59 + { pop cairo_selectfont } if } bind def 97.60 +/Td { matrix translate cairo_font_matrix matrix concatmatrix dup 97.61 + /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point 97.62 + /cairo_font where { pop cairo_selectfont } if } bind def 97.63 +/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def 97.64 + cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def 97.65 +/g { setgray } bind def 97.66 +/rg { setrgbcolor } bind def 97.67 +/d1 { setcachedevice } bind def 97.68 +%%EndProlog 97.69 +%%Page: 1 1 97.70 +%%BeginPageSetup 97.71 +%%PageBoundingBox: 0 0 330 127 97.72 +%%EndPageSetup 97.73 +q 97.74 +Q q 97.75 +q 0 0 331 127 rectclip 97.76 +% Fallback Image: x=0, y=0, w=329, h=125 res=300dpi size=2165625 97.77 +[ 0.24 0 0 0.24 0 0.991089 ] concat 97.78 +/DeviceRGB setcolorspace 97.79 +8 dict dup begin 97.80 + /ImageType 1 def 97.81 + /Width 1375 def 97.82 + /Height 525 def 97.83 + /BitsPerComponent 8 def 97.84 + /Decode [ 0 1 0 1 0 1 ] def 97.85 + /DataSource currentfile /ASCII85Decode filter /LZWDecode filter def 97.86 + /ImageMatrix [ 1 0 0 -1 0 525 ] def 97.87 +end 97.88 +image 97.89 +J3I@:BHu(:pOk^R:T.dk*=mro@So+\<\5,H7Uo<*jE<[.O@Wn[3@'nb-^757;Rp>H>q_R=Al 97.90 + C^cenm@9:1mM9jS"!dTMT<$3[GQ$8#0$s<4ZX!SPQ1`C/m<k<ioH)<bk^Hj`\=EYZP^B4!g 97.91 + 3;'o"oFO(X`dh"8*[iD5A+f'R[o?>ioWjnAY&^gM+`4=1jRLW!YA=M/6)*KS9PE`kN%="Tc 97.92 + _Aoh+fk'&t\ctIN)4XQLiVpoI(>.nOW?*DmsG$@,,f58"PDKf<uk4a;=i,EpG4sq/+a5h8d 97.93 + >eAJlo*B]ZT!'31_l[h@F?.u;GBO/Fms$q.0(\8JhnaScr]a26g[)`OH[c!ea5-IbHN.>J^ 97.94 + &uma4O=2qs$*R]rqo%N,N/ekE&6SU_%/pY#XOP%r<0s`>VcdTn?Vp$6h#Hs$,(:o3t4UJ1d 97.95 + _,U&KE;87<)6$&4UXR>8tG!P4okbE:do]7$5Dp*BCCsHPf9CjGP9SnfmZ1_N<P!(W<VLV's 97.96 + ;<['M)NEcU[r8b'0?1!"Cb@l$\47%5DoZW,[19_.8^3D8sSk:fZ;U@13?EtkSs9(MWO4YG4 97.97 + F$U78RFTXQtoORPZ;"=bh1/W+Gdn<DW`8=*<Zo'p,;=t(t:+\<q912Ep<4>aKPr2cC;DiIe 97.98 + =]UeUj&Ji3AS5+DoHeiff@<$:=41&B!EIOt*KsUYFo?So=&oL$B%e#sM.tF<D6m'kFksZG= 97.99 + uLf4CKoB/ED,(FrP`g5G;KJD?.$pUG2AN9::[qD>26Ti%akKdi"uq-J`)nJ%>3UV:)/KAQu 97.100 + 3q"iY[\%M;jo*/W8X+c8CUAR-m+uj;AFrOfAd`n:WD!U$%]D85^LXAf6I&RHBp?D4'K(L2E 97.101 + LD\^#SOB:9<[SS1%?LS/=k^5o"&3Mqk7kIM_.VeLHHVl/fmm]ihX]$@^_CHC=GWp8=[_6.G 97.102 + Ip;s^Yq_lp-laqo/ZtJ-*Qb..IQLh\)\o,L%Dn8]q]k9FI$c6e.G5&spqr\X.EVpUTU@<PR 97.103 + A]/We[i<>"*&ft'F*r`Zd<%L:n'Gma-U5juI-3<;Bq:#`eTLhgA(u0T2b2\G]Va`?F5=$Fa 97.104 + S4O<Kus,g5Cq=/4n"TjpqDNUjCat^LZ*PCVN'tW?8nqBp0MZ9lhTE;^$Yasn#bsN5A.7crA 97.105 + p#"Wd]5c/+EA*8)Noa?g#T.+'\5aDup!QVmuYsli_a@$3J#!)Z:dP#(E\'$,@AU"^jG(Ja_ 97.106 + :]4,:cLTH"St0KKBRGU!M<*#aL7.MK[t;[4G_b'spRejB-\$Xn]JL@Adp_74[ri=nJ-d';? 97.107 + >8:_*l/+/6J1*a["QO0C67#A/A.DtpsrS[;CL9X2j^,VAoU1@>\O]jA*LoV*Hll_7l3\Wu. 97.108 + gD$Cs0o&V8,=2&86dB[m3_Z@5(7&DoU]c71;@Z#a=UcP87#@%(/k/Cb*@'WuOciU;8kE/;- 97.109 + 03"4P>Z9n8_H6SjTM9A;N=XI=\U@,7&cGLY#\0J>q>#iZ'J;5>"`"8/`jp]QW!6X9A+_Hjo 97.110 + iMf;\!81=cG/u7*1iq/nRf1SMTD]d@+!/C/%j52<Mi1Ar?r&ZI///fqAA8;iYln=j8ti7-U 97.111 + 7@Y'*Rnh)jeQnX`\)H;@]24m0cZT2V*W:YG\2VqhBH<"=LV=q*d]71#Ye/r!3V*CK%E&Y`6 97.112 + "MGF!I7HgikUJu,k;;+0'kli6+<0!,>>"qTQ74G'4Y*Mu>>ta@_(SC?:RT!C,:$KVWVc<)U 97.113 + ;qcXq.?sn2oa[]q>)b^V#nJY"XQ^N]^s)#qefFn8WWn?_:hT!NX&Vu!<@X&2lNHIQ!!9CU> 97.114 + 0U497.@3VEiTD%a&[k)>cZDP\l7n7?#.E)Y>t#)=5*U[lihs1<N`@PHEg^*Ok-a;/s"V2). 97.115 + W#eOg8"_H<<IE>AJXkWg1lP=kXU#XS&9o<J%$.lBX_,2,5=DL5HEJ>SCt.A%#>0[b<f[6#? 97.116 + e7[oVq1>2c/k!c>9P<n?,4>%:Sc29EC10'6EnSTF&'^:4sdZ.r!GF03^=]2rn<?$iDaDP]Y 97.117 + 1f661[S&osE7.@RYmaI53R`hg=:nf23qHb,>.IY7?\Q>6u?ebNCn"ApZf*_E_HiJ";jp/_) 97.118 + 0*Yh>*J<RY!Pim)!oXM7JoJ.9_cUg_hcqO2n?*b9G[h=p>:"UUdF'/u,,^LU,UTdM1:S+rF 97.119 + &a`=N!.M\a&neM@SD'.mTqlm<l5hN>]"8]`]>&!!l3j_R?R2r;9E$:ULYi-N9tdG3nW=,A? 97.120 + ;b9Ectg6=cW_tC&aJ'L0>W9Eua5Qa]Yq[DpD>F'G.:4C2\Y"[?O"_NZA"fm$;Y<)@j+:h#F 97.121 + '&mE!Zn01KX2*MW0[iR.>i6"rJ6V<c]pdhUn8l+K5J1T:)oj4;anX6#s1<M.etb7%B%$YCg 97.122 + #E#AGsMcGaBIPlfYXgf03Bdr_E/tEdhRh&h=H.u$#m,Q?VA4C*4o5C[a6OC9_?Kp91[HTU# 97.123 + \Fg)Ddj`bJ`BLi)g<3YplGpCn'st!q(LM"VOc21,s4CcOG&(7\Z=arrYk;dE:Q;&K[[,Fhg 97.124 + M:VE?4FaG7=!gT_hI1=d:&sPj;@dJR;i#Y7J5L3h]'(=@u]M5\"<9Je6e4(We4P8m.B2p1P 97.125 + "KpX/bqj1$2HeL%.bi4ZIH4ebhdSeZEK&q&Mc\eB<f.IQ,$NGad[apQ4pINB9$f`oPXmP\$ 97.126 + 9Ob5#_>jnj+ep"BqTFWRC*F?akt$TUM_D_N:.#Gp6La#Y^mD8+P@HL2\:7IeDpUA,N+pNcX 97.127 + lB:e_`f#t7A>!L\e4h0lag6p5mfm#1mDk-dHaC5)44Zg-*!$13Edk:HF4<K*F?45##cOK.; 97.128 + 8#c/\Mo8`$($W,=Mk"*;i8HmH5:X]o]KTYIq4@oT-Wco2reC?s+%b^B^T70;/r'5MiS$G\a 97.129 + 8/!K&,UXqjZTekpQNeXGOL)b]ALNphMQN)J!!RABBbsGXQN=+$.uXK&+@+<@F1UplmEQ\TA 97.130 + P`[h=-m5O)Va(XQ;(c^4CV2mb7a#HCaMb\.BAE+o]SZbc<5#r!R&U$j)sEIa_*8fP[Xg9Y? 97.131 + msPkRekrD61\Ds#nPlCeaVgW@V<:B($faT'TeqWb;eYR&#u'`g!!!K]F9YT3`5+TbJhi\2k 97.132 + M$YKPLklXXm",Yb6?i[>@6Ca-,nun5[n?E?T[0mODj:G@bOBW(]?H+Y8^rab(OC\L=M#_Fp 97.133 + S<.jo&?GjC'aMPLT?r0+Y_L1pTWSjUWt:L90UN^HS=MA.":X)nN-,8b[h3TsSM7Y>OM7B,_ 97.134 + XXVO"onZ'OO4K_K*LhtbqC(;d,=dMr=3d.%^:Jl&0CMl&0!>2&Wljf0`M\=#+Z?1$>INfYs 97.135 + f'u)YHk@[1,[Q0#jU-V!YDT&l57j:[fImSA6jr#n`>kN$R!%<1M8i\.CFjd#+IB#cqtNSM1 97.136 + cQ;)Js35n'aM)DRj#ER:5<LCQ%rTM['7$-*p!ko$ZP)!TEfc79fIb8REi)X62f&[n_P\t'G 97.137 + J*/W8ZnLk>#f,kTI*ASWYnfZ4tf,#P1*NAWNl2)4ci?%OP&Fq\'.H;S.rrNMI++Th&d-.?) 97.138 + !iRjYSFR#Zn7j'9&LJsO,Z6QF12un!-JD<g,4Y%6ER,M#Ii4D4):2W[&o=2G8=WRP,nWcr: 97.139 + tm$H"Y(tQ-1CRO8]`<"YamP5"L<(6d<`LMn=/b'`QBV*O)hZ;$Rp"j-o$i4ntbJHoUa>E+V 97.140 + K*kDRUQ_W1FE_"7]Y$dbQ.,"QKik.uZUB;[V\#Ik1#p/II*>'%\aS)(+r&,RMQIo-H+i!hE 97.141 + 6V#H>m".JkEjfe9I;#kK](EBc-u&.K9^2+d`Bdb?Af))cPM2QRoRc)!0KSt7\l/'nA?1Nt4 97.142 + q2]P+YVGciP;a:<r7%JBj#h&`0o7o1Wf/8bg0U&H,DJM/Z[*Wl5b4=&s'%nN$I5d4^1D>A4 97.143 + ''gNOs#B!;3AZtl;jumUT.Vp1S[(ZS;suFsYr*3'dF,nFo#T>/bbL=4XE3&Hnf$^JlOqJ)T 97.144 + 5GH*0_h0D&OF^m2lY6+P+`Q<pGt,,rDX-)'Fs`@q)@hd6'3@_oH)q390R(/6>?))e1@.)0V 97.145 + \0r4B+C3oPmAORmZIn6o"!pPXuLEbs]AC6Bm$WoMmonbsg*85."dhP\-Q[CFI[G7oZS;P^, 97.146 + 7;4Z5-t5no"]@5Oi\)b'Bh8HH^^e<`<s.5Oqo9XCEV[%f9R2"ibe9'jXK/6'Ssm_u1t#B8] 97.147 + Qn\[aolTUGR40g@O'Xpi$lVUMS$)u/8YKjRuK2$Hu9BjP*'>mXH(J`>b:XU[g'.Z1_)!t<4 97.148 + ,1RQ/eP<Uh*p8e4\5an3ePB).0f([;;O'7Col4%_nPdXt.rt_iF_b"k;](c3!Hd!fZkZHG< 97.149 + oWdU\s6W%<C35+B0>e-:j$nam!i)oYpP=H8b-W1Q&#aRI7r+-=Z$^eaidQsRi+)rS5lH@[? 97.150 + 4Z%`D73=rY,R4nuYBEpK@1J<=`]UQ.9.4a&hro>a:!k<S"Ts-!dn8@'qk#e`?O+o1E$W@$U 97.151 + [m25+C9dpP%-@J2?X2D&>nVdG^M@e6p7'nKgP<Fp>UVR@jI<,H0Rb5et0<K,7+[QuO1.qD; 97.152 + .5?/#"p,sbr:Ls0'BWN"]o0Zuq;.:;3SP0,qQ>p0\B407YB9mm*p4$h!WD_<&:"G9@PQ*1U 97.153 + pna'27<YY;[^7.L[&>h%-l,`r<Y&l/X)7Rd9")?8f"U9Ib=P`e@.nW3QIef0:Ik-CD"^57c 97.154 + rk/7]0*P;@CC`*2^*3#,bc(K5#u/\G7'kL!reFBDmhH$FkLcCd;]pVBt$TRpEt)7)fi/37@ 97.155 + ,$32b]do2[*8EDRU^,f3`W\Tl1WRFB98s(KA4O_\_qI(b/S.eejtOOUbA)E;*47ePr'AgJ] 97.156 + R(GrL4o2f3^SK'#"SENU+'FFA&rm'[5FH?Ep=f6MA&JU7$XH[":opYg/e@rrNl)pf*\f:-t 97.157 + CT2N.mS<qK(M@X-^`I55UJ?,-V(Ta2E_1+ALG?:JcQ_b0NWCYY,H.V4[3$!On)#]$jrRL83 97.158 + (V>)SefXWg!#&c!F5qDMLCBIt:3RA)<Ijt>!?RR,K20+53%KJMnV"DJEO\pS1JF<Y/P:,SJ 97.159 + =%9spgo2GiI?)hM7B*p3"^MhI%6RLB@nc,R"%FOabY,*I2I$]nYk@Q08Wb'M>5<*pnNQ\N1 97.160 + CfdCDa4GGdE2Zo7`K<Tlq<115gUKf8T%!K7WUl_<lmKaU,;e>m]&2pb@VmQ[VNd+V&skbC* 97.161 + )%m>=eo:,$0S3;%IipsJk0J#UnZ(?^a'07B6FSG=/[Y\(;r,h6#I@ehT!3AH9!2jS`':>%^ 97.162 + \$."hR1OE6IE1$BamX^WHTp9Q`P*Fn)Ohl/8CRJs*QMCu;\0ZOr\!NG$P\Jm>)'P8Gc'!?V 97.163 + -M_"QQa;<)R(HFTO@gXq:$1X,Nj*#qH$R4=fcH^3/LKuE=P*A8)6BAh,ESnX$5pZC)3%7gV 97.164 + &Pf6RX)lBCc.amLRh24SUoajeU<@#kb#EFS[mokq<IL<4cS^`T6>.@nS&q&0:9;^FIEFaG[ 97.165 + 6ZI&Z'eV-UY#,/SCV_ri0-FQ8n&$.PINqfqS4*UGs?k(j)?14a_R,>$=@\)G,k_8LF:0-(5 97.166 + 4.fh80QUnsLo&"4?kWQ1m&mot)_Sf(D'H7*1uI@g:nWHo)B9r4JnO.Z&ATJ\=#Znmh*VS)` 97.167 + J(_>W"fj=/h@%>kubo6Bg>*#'0ANijIg_l<KcSicUSS"+3N/>SOd%udYnB]C0D7LONGVaV[ 97.168 + \Zp+1'\GpYCWWb4rNC0.a%`B1RlaWlb=X8CYc`+C>">h0@l6=eZ;lYi4!Md\d+>l[E-_%rf 97.169 + )_peK<oN`['<c<3mY/PQ+:_mZqg(sO<_-c$agoSZck/3MRBk.i@A)KBkdUUE880sCU[?8>T 97.170 + 7YogW5o>Gh.3nYo/fLRtRYCM%CVc$5ohRS+*1WSGKasSGN*'P4u@A,t;%"Fh>&nPJt0R+1t 97.171 + fcTDKX=:><6,e%K1N]t0oOqn5ms1od$*]!g_8.iDZP<Lh@VB$<HqGUGg_)SXp\(KLUI>V0+ 97.172 + I#Hu80WjQ%-qDjd#9>>C<`!eH@lbg[ZV3Kb9]KBCrgjlh<@sQjB^`$+AS8D.dEMtfN@N9Xa 97.173 + >^adX[*"o&`XR^B11eP-WQ=`]bGqhhGP0(NRu!N>V>HABr25JhAV3+Jn9h^jmgm@\-cfBj3 97.174 + 0+<gQV#EPfsfb(n(_TY>i!!;9?oTCO^'QbS-rk4n@:YL4"OMcW[d2si9dPu`uNa&DQu7OFj 97.175 + <S)doaQLmX;/14P-`[=cg9,M\FF><9Z)-hJ2!M>8PeXjISM:^E#;iC[ipg-GeM3&Y4@[*Bg 97.176 + Cu3jmUNkc6\\*K&O=Fk(=,e[G_5$TH.TQK,++:[oP<SSnN,F4%VVSfN+krJn\,L"Lh,h5h^ 97.177 + N]oUi/T;Z%`eFR&"!DhD>J(cLJ&Y5hi+9C9cb2.PUT5B/6^]E$/[FZ@UdJY)pl,h`Ze(?Ge 97.178 + WEn?>pib5:2\%u3`Z775rBiGj8)/sQhjmX%h,WAS"_QTtgHB)=ILfBU^YBuZgjCog4E@!!- 97.179 + 0(Qdh0q&b>3gFEm`GAkkPgFCSr;h3Q0EabV`p=/^7gsDTB\:RkVgH'?Dm([[&3i/l[HP5rk 97.180 + Y(q/aP[CM8$UgZaVJ7^$=sZm/GE"lPk_1iU20Zm_/_ihXQQ]h=!*BO4aQPN1o]hq=&W9m!f 97.181 + ?2rt4N\"n=ep/,pFUYd<WN0ZnkenfKHi*ZstQ2=l4)o"R3Vn(%$e5kR>f5YS0L?Us_f;>!. 97.182 + VosVX.IpMb#&b[;Wi?(^;heVsNFn^B2pV2.Ns+0quQ.!&4m@T+-s,m+AQ2,otq7iKrrd^(; 97.183 + Pg7[)n/nA#s0;Gc[JPHaqnKiAl0J'BL8A,AbjC/E>es4JKj\\U*8eQ?hojAp_:9]ir@1;`s 97.184 + 4FUg(&gC#X1bk_&,6hK#mGrIi=MAU/f>+R6fJ[pPYNYBMacY<R+-"6*KN_O&fDCD8L9QljV 97.185 + !t\Y$!?C9BHe<jNIW^Rn`&Z1ZC07a.GIB',]0kM)M(]BN1BeVO9?=;sG)9Ptn;YX&\I#Ra` 97.186 + *q33Q'>;oE5BO$IqjiDb+\'%'aTf5':Nd`Ufd[b^BgS(6rrrkCYd%u_1V#kc)CT,7gfpDJ= 97.187 + fj73jp5#32=XOA1K7?O?*BZq-3'^OnB8YsmMoajfWY.p0!j_O[<AnsA>QtQ%Pb_&9.WS_Xh 97.188 + *$,n,M8eLpq&GqXl^.\(Cb+6kc-pI"VJ$:I/luu%h=#Rc*%l-pT6eQM[[Gftj0RdLD]0Z=Q 97.189 + d=on^H\u!T@O\Np;A[Z@J]1Nb_gMT/P2t&XM!i9i9WKXX<S$<E2!dC2c)9u"99!2Ym)MtJo 97.190 + 90ma=4G/60Z5''gf09>8K`uKOYlhEMB9;[?/Pc%E#3Y5-$uob&83>E[6Pf8Ef\`e]01.G.' 97.191 + c^Z<n0K9UnY*7)mGIS&Il+OY9ArS*n6M&*"(E^[)(*!Q[eubkN__I!ICgna`L#205;Z4\oa 97.192 + =l@MaTjP[Pn;rRa@-)B'(p`]4F]gS&`/L*hbFJUK\;XQs`JPZQ)"L$19jYWf/m#<_u<:r[X 97.193 + PLNRn4Kh]th*dN*oNE8)V\FPZ>ut_c`5&Tn.h9B\$u=*9U().V-;_+5=Y;V8AU.unD@N%ef 97.194 + dY'V8m9SIO(qnn"iG=bG9a_;+L]/'D,PR=;.m5$NQZTRGGJMfTQa"FA^iX2N7d!s"aOGsF! 97.195 + ZGpfQ0cE]\`;7JVG941L4ZA%BEbe,$0`f'ZF`!iCC0='l&KF8]"HIe<g.:Q"=YF*j]G#"sn 97.196 + M'N92^P+rJH8Y@@:mH&o*g$[RNfP@T#hjdJZ&V.k6e`L%\bIUk8cfW-BkB+<9,S`]_?'9FT 97.197 + 0(3Q>u\ME3065jaj[;BYRT;]&?RW#3jqRl^,k]kmpSsgPn^S&;&`lDuY4(ep>?u/6U1EQI* 97.198 + M#gu<7PU[308>;-DTue4&N.e&DXsK**lsSCc*"7*nD-ONe"Bc\/!=r:G&i6dguga,oC04UX 97.199 + %SnVe^X?m#D:u[DI4dDprG[*-$C.In'EF&WDChqSY(&PVS+U#ebGa!]9[elCO+)USAas5b+ 97.200 + .XlfD<,mX57HJ\%VT!Hp\(V=A2I'a5MJ6':4o8YX9/92`hJ%JL,uHJl6qtE.eqUW:M]/M]n 97.201 + .!YFUi@olBpLMt;RYS[Uid5ld$%?@]-a/#$\iLEKg_K'thC5m!GWM=_KomV32seacF?`#XV 97.202 + pp)cZsGmE7Q+X(e5RmL0W$-(1<<Y/E._d_X7#>?linBnp9k\a':b8Pr:!\["8FV(906m5DE 97.203 + R`'de!XYP[M6UM*`<*dgU81h*:\:_UPFV:j"FDeurEkV=b5NB$CHFpI^6<6=6;l2hJg<BGP 97.204 + >nY)@d*tLn//Ns=.p\2PZ]K>DE^Y`kelIA23B..7t:ma6Y/BBM:*.K'8\8,:tt2tEP/E>Bh 97.205 + nnD"M:"`p0T6t7+[^@M'8%R<6S<n9r2B<M=S<Kb7YC<iRF<ad^c,E3I`r!dO^b0Bh(i`(GV 97.206 + VBNgVXfTY,QSC5\%t+S/2f^:BXhMTiT#TE8Cn\aW3uXFO^#TZ+.0n>cltD^U]K'1Y&=4:$? 97.207 + &/<I/LcDf5Y9Z+Pm0/eW]B^IusdDhhH_L`'9%2*>AS"W52L(ihm4J6g7+Oj-\93NB;A&6]j 97.208 + FOlp[H>mgOm2r,L-4/%^,tZ*>.<JM.U6,4Vgn"(VV+"9X;jsCZAF%<:Zkdf2EXP\-,sd^th 97.209 + M0=43CGA,&h13%<n)0!9^5n]Xb9i.T:th*9I0U3:-m6j@`1VKEAa?K/bbHTo2m<H@^'td!* 97.210 + E^X;sS:Y.J;K"=:u?TkHm)iec*2pb7RnD3>>ZJ.$[qIo4'?eUU6>ON*,(ZA-bnmYG<Yp!"2 97.211 + e=WJ+'TFeUKh3\a(j27p>V[a\H").'>K>I&o?f@q4'B'r5*Za?s7g@B)rD=++#kO,l^8cW/ 97.212 + ar1tQ7T$uKV%.YJDi3Ua9h-E+hfkbfdO]0j"hKN*lD]QF%UnUfEbL:oYebb]bDK&4KgdTh3 97.213 + c+XtM_U?((gM[8n_3d.\.1+(BBo*G;GKU0JMfEu\8OC/crs%:Mr4s-Kp.X(HrQl2;.II5*R 97.214 + .^mo^s"S\0,>A.R(_;6Z=A<%r]@*ASpKD%l&05`0t(2qg0Yh>N3B*8;%j9[K\;]Q16tk]NM 97.215 + snWU2!f8AE1ZH+"lSi0pf1H7)7K.%;&9KP&d^@W]=E.jcXnTigpk+R>3S14N3I>7WulKT0/ 97.216 + @;7K<q<;9b?VIE306rb)3X]33X?fW6SaDk:L[7%6g4>TKT0Q>4FMpH3&)-_L%A*fSWqP\H+ 97.217 + SWc_4he8n[FBtYsL[,qM;Giqe9]l>GXDIq;M(Er&q*N_-n0[uoPYNq_gLg3UI`6o<#OpesR 97.218 + T`@fn3qI"Mr9p5c*KAYI,5uA`%CA[5,`J&?j^[,mSMFNA,k@LSmHrlFGEOi=";c&_c)7sn7 97.219 + ekece<k/[kJ1;7!$HXFc>T54[IjI3g=rN[Q#5<fp_;JTDqoZK_=&N4[b2l`ZJpthO(L@I%c 97.220 + Mdc?Z'Wm[s4IUi.MK!7<0KkD@[uR*$9XsZ<*]0AmFGFpRcNuO3:&n0-XZEI;81AbrIg]h44 97.221 + YG2P,WM#`hI>="g%OSqKMBd5B!N4tpYqqSG'qcKQU'XV5?76fZ2,k.EpZo8^+G]8p9br<or 97.222 + q?ID3Q?DlNqpJC,b<(D*bG^Q(2_g$YBi:laUmbe2[OP]_.qQB__rWB$\^?=L'd['=Jba`qK 97.223 + )<?*.DUJ=(`KDkZj1I%7MuA8@814)`#uXrW,W_a@4fQ#n%tEQ"V(?koEU,/_F7u)fL&67Gm 97.224 + W/>VfJI6u,%?`bl)2DpT3(=k+,H#,W=AYA$fcHf9qSrX2o@jBD#=gap&@q&q`%79OO(Q9r1 97.225 + ?O;T9_?uIt*5$YLEGho@FN5B"6TM#he;Ud$_YiJeA.l$*n_:UXD#PS0r9H,tT^P!1#ajrh/ 97.226 + ;^^aPY.e-$$s"V5p\56J4%//#NtG,jm2"69e$<!rulXagNb^s!]_X;\n-nJ9206(!/<$<TS 97.227 + 5[_Qtj1GfCES/-kg(U$cd_6bO&e/S[DAO&?@#V7&EHlt^BnidFF57AaP@kL$IeVO\O_;lr7 97.228 + ''cNTlame@TB"+NX2^3B#/\8p5>+bd#_O9ka1$F(]F6Qjg^FGc2ieq<]!Odj)rA??-+K%t5 97.229 + iU\;4?g]282?Do`!GMD*$IPAb/?8'%V.^b`'-SJ:_@M8]^[:9ZqNk<h)WD9$]Ii:`'u?V:m 97.230 + _@:0e>17aL9"]JXD;()4IB(5nU"VENu!9ZuF8LLd!K1:IAr#U%DS,BQtGYMFI<H[Zd2uU_= 97.231 + #u@]-/q7R2nf_T,,NE(:9-`bC5HN*Vm?pdUG@]#3[8`,*4o%Z-]n0/Ouq'RL@\E^e>RRu,Q 97.232 + 2W@GmiqR-N8a)JUZ1jOnaD_&JIQQ0/AK<`L&Le*J]8=YQ.XG]W^N(D0P+.S(m98uKtO@]kC 97.233 + 8K<mb/<`XfPY"Q6$&a\5]8T;YQ-"uQ8Xu5@XIDeoS4Uqq1b=[&%%YN<TLoWd8fXQt/>Gg"U 97.234 + _Ko%`N)I#9W(L1W(N#J8t;nRXK+t'LWWgi6X6]bm&s%ZYY,D09,t61/$D<$\I\>09/O(MCq 97.235 + !&b\4_dk9:WR7%'<*S]$&=29AI6Sm(Z3k^e>$kbIcEN'Z3U,`(WkD9O,S2Cq`RgLWjk^9Us 97.236 + 7!XNO;MbY66-a_A^cI)=+WcqOqr9cVSU/CR<Sh9=q`9&*WF7+Y.\fM.=X9q9p3WG5+[Y"c: 97.237 + Z:#+T"m,(P8i(aR*c,A2Y']VqNjA&D1:0cpV"LLNiek0c@cCF/pXQrWolqYd2:3cc[o^,EO 97.238 + n4sJ_:E8q$/;h^ukta//:L*ThD"g_QpbQIQ:Q5-GXSYf+r(kQ8+p?FeFPP3u!)O+*:`TU6/ 97.239 + HZ[Arj]MYbl%XjD$Nmc#Z-Ke:meoASI/3,$rG1X:u)UXk_)d?%oEcJ;&p9H/JCmss/VZtd6 97.240 + /7BD&6&t(f?76cK"t&>o?MQ*)Xs$;;E9cI1RRd/cr-u;B6p9>pE54#))q$!M(Q8BI2)T,Z9 97.241 + T#K\\+U,p<CS/5h`""J%/CD'jkJ0N-9"dJ=mgPqsY]0eZ6P"?<Rbof#fD3(bSUe!R=:GU:g 97.242 + tl@[&=$Leh[m5t``1*Gs?#*h#DqU8AK2Ud&:`E9=(_^u7l1/p+He!Mu@XXI/5jjVR=;rp4q 97.243 + /OhZA-Id9C</cf59[?Ci*n22seABU45b(bl%nSP6NNH)YAI_\992iN.:.7lVi"iFP=cDHGa 97.244 + H]#`j])\GkuHH,eSq#.Kipf[.k)3E:u,@_`B.+jj&P<5;sdqo/SJ1DN7KHRei9ka9l)6.Ad 97.245 + PkX8L\Efi]IS>6<?;Teu5(h]m3?ND$dmn<W\63ESCnUGfR43+-gjbgR)'UA^\OceW"`,T_9 97.246 + D#C03oMe"phZ]noJ>I#57Zf(Fe.\pC(*Ls`%6:5U/r.aZh]K[XL6e5VSPgdXNiPYc4C$+5+ 97.247 + _N7uq*Rb6?B=`bY&m#+s`mo_F*=?W-#h/nLUFkLPJ`usIPe5KO%PZaBBfr_2INLTtPSLkdO 97.248 + 7/7YQF=We[TH<Ko/rPeEWa=C=!*W'Yg=l[mn>"%`;D@Tq$R3\F!]Gk:In/:#4i+nOA&m>CU 97.249 + 0E-J83@G$nO1*Qc4kW64K5BEiCCmC2Q>_NP^RUW0rEZd!*Z5B9gu,:b0aF'=JG2lgYKBDJ; 97.250 + @F(iN.9q>I]Ppc,!A!YRcGZ]0n?igP9&SF:#Xt)r8QLh8GOP`NoH^O]C8YJ@PuWaHR.`^.l 97.251 + aS."g7\mTUUD??OMfjg85kOWN3UZ?p?9qn`N#p^1TK%UeX((kk84)kP<K&H2&\<U^8^.Zq7 97.252 + -3pJ(#&pI\*ck>I6PDU+3WO6!Mc!U+k>jY;>gIGT)gg9>8)`??*36Y_Hh-V]^Ln4/L^%FX5 97.253 + p;)1POM1J#jnde<'b;/J?e,C@D:Ssj;c$b!;_9fV7I"7n04)>X>?aTFEo]/J\r2RE7jrUQ8 97.254 + IO=PJR@(<[l,4`rZ0uMq*+[s<r&J!"rJ/B!*HZWboQpemK5<.)`\TF@R-Glg3R'`-K03$@M 97.255 + &Ym2D,<M,MlS.^QR[;@?N3Z"O?]V<$iDb-7P\g)-CIH0u\p)`Se3nIY1$0A,(YWOR*<8AWM 97.256 + P]=bIKCkf8[(+Ul>6TMVFF7R6#R^)Wu@NkhqI=L/>q;rKhP+%AYXjrYaC?BV`mi=4UIQ91L 97.257 + 8.+QmMbml5Tjuuo?j('BhjLtqV*aK$m6Oa5f8--Eb>.*F/7uX$1MIoHA7O=YF@:eYRAbj$Q 97.258 + `_PYC*b>D!iAfB.<%;H82i57W`h%#.@ROdHJ_kt;?BWFj[TT<t4P"b\f8MBeP;b['__`EN3 97.259 + JeIZIN>V/j!SESAJ2)`-:#%0I:j[]?.n;pS9T\G_chBM$*C,'FuEuYH=`+q9a4eRk'?.BJS 97.260 + 2-4`&$K,$GU6A*FSI=BFV0/*WCk1`oLY]Z@7uCL5#sj7R_,R^h'^*2MlqgMWJH.L_b+S*d2 97.261 + "9NLh29fPW$C2OWgkBaC.i=TX<=A7SsJ0.H2Ah$_],'J4&k?0KkD9YQPH]l31YgKJiTlCEa 97.262 + rY"'fZdqX7l6^0Xs#+gZu@7I\rl^9u)ETC7:[94[ql96q<*i2t=Q/gF6/9VE>b&_5mMBP`j 97.263 + #V5?-QG(4Y+PjJpLqtVOFu!gpYK";sCrX@-k-8bSam1O\/Oman/s#@LM<pPFLdoPL51)h.C 97.264 + 8P$n#j0EkT$PInY/b:]lioIL()GLSg$M)Tl<ZWPUcc\[7;KNslfQFY_Q^,-Jd<VS`4k(?2@ 97.265 + 'podI.J=mSRq?54VBZeQhmZmegqiNi:#/]g-s[DS@uGaFWd9\npNt>p8p\7d9:eq$8=ASef 97.266 + 1UG4V:8k%n:KLs#S`C#h^/Bn\`^LJ@[,VX?lrLI?%M5pl@l*s7bAo5OWGDbA#>-O3+>nLAG 97.267 + _-[uHlY%M[oMK)mTEJFL4hZ9;Z!q?ljn4i9'k1=QYgW*M_k%Pe!f+dYMPD9WpMEQ#;No7u# 97.268 + +E>dhnII'B%h_&J+)*)&DQaPb%jDS",B='Jl2F&--RQMbd-SM"].Q(j[8cQWK6"-4fi;YCT 97.269 + -!Mm22Ks#kPlgENef,BEt9<2`BK!]Eo;#anaPEgF-0DlVaa>J/$!S%6g$Vs<do'g*G]YhF< 97.270 + ;EWUHnJ77I.-FEVhCt98q503RqJ,S2VK<\MFep8b#,0Dm=CcqH>GL'jkY@'rL52QS%a*;"a 97.271 + Q[o%-m,f11!8]_%&uMt$]WO'(t/J+]D"]2r3UO%]/mcunLFoM3g)'?bEGE-3[B0c\`e`oCR 97.272 + +jD[%g)IHOEYq?'tGRG('pR(GnIl)sC;Wp`K.k%UY2OqXGD![c(4-cYG-K00^VKZ/1p-47( 97.273 + QXpdH13eU2GaMn6W;Do?/B(BZUIl-,T$<')mYSE&E6Jh)2h?'PNH"Ulp(qWBD<LX3IQ`(>F 97.274 + [pNG=,*/VG,`8Dq:M/:+.iU1TEQ^:G&!%^cMr^k'VdpH$RB3fH\3pE'Hp#</SN@5QIkg@@! 97.275 + !ccPc'7^gp_NR)M]]F!)Km,YS$al5PmuhHX!0>2jA0>')GFWqIFG2;K/iGPV95>$(n4)B<, 97.276 + *gh7_tsFVPG_KXC/!@rm?fqY-Lr7lp!7W/#lE!+3kWGR+/V0RV3(L(B3%:O@?Cg1A.5i9ND 97.277 + >+fgMYe0tM@B&l-=9&KS[.!S7kHsm<Wn(LDfYS&'5IFuSj&)REVhuqBbGl1eET7Mg\53#bl 97.278 + F6:(431t[q5AnX?rGpC4Do$Sr_KgD($j*qd5<!^[3rQg:I!'RQZF5260b846s&_JbBPi6Dd 97.279 + X;([GM%$!5(!9:K6$c67-dLaT]QL]C':ho!$KX548os&L-hRFphWDG$\uSCEHl"p',Za"A' 97.280 + t)TL.*>M8S$7p7&Es7Q:kf;q1Qb!1R_$Mds8lZdlWGMkL5k'#),F=;/"I*74+9mVGh3YqLq 97.281 + D8,<St8U>!R][2`].@o`:`-H&oi/SrbV7;ahfUY@+JRt3KZ@(JY,7,*?k7]3t+Dq@A=#!6^ 97.282 + gf3%eEX9g`e=^`L6knZTQP(gZVcb.0U2"o3XF4mJ2@J9ZJ>.!".]1Z.3E9hWbrJ&@(ZeB8> 97.283 + gO7!t&%d^S\(dJZ"]<1U?cP9Na!KK`e7C$Jl%U&ne$*rAQt^.%:2'&]mes$/L*LuZT-C>n7 97.284 + R"RBf!o^#%kh_Q&bI`'L5=Zhf-TWgs)&5G!5MDN#m.oh3W>S/.I)Bc6-t!&#f9E..13r=&u 97.285 + n&DlHClK1l(9>&@eb@/J='u3M@.tYPO(SV9Y:'YI`#r<p`*=o&T:&88H;^]^JH?(F8HbhQO 97.286 + XDj5u*1Z+:@%aAR+^aN>o@/:TKN"#tW`a/_JQ6h'HXKf)>`=P$5&4OH"1;d@tR2e5!rhp&K 97.287 + r6?5iK*:O'V9-C6::WLud3`&BSiBj9B]a$sQ<*^A2dF:i)"poC".8&%<]eN408Sg0lKs]P\ 97.288 + ,h,c27]ZchD,>9'<<VJOSeO8s<[dO?Y0F;Sq_^#`W0r6C*.pM^qcG`[Kjr]#4bmS#el@iDg 97.289 + "(#6Am/5`VeFeM]rc,)[b\3+=G!c?:+QJ)T'b:a4hGgj=&mXjh:HN&G$\6ukBPjM^$U4(\) 97.290 + $S'?WZXrJ)FE%$%UsD*Y!e](g[`-iE16p)hm;r.L#o=[NCIeR+<F@j-]f_!<>A28Woa^8.Z 97.291 + %9\QP>del,87Qf_GBBpu.n;'J.>6\(r&kIK`'T]d:8J"l.12Mn3n>#(K]C"cmcVWo(kV5if 97.292 + A^7Zg,_$VY2KHS:6XD6K"ag(3e(=BGT4$M3'm@/RV\F&%:iOSC2Y49)A>JBjEn!j=T_!eoX 97.293 + !Q&e\0+l+l>W3P=n[r3LaRU=BXt0dN1+EieJ9N<[oA&d/-O&HE9p1$7&-=#1@DPUfb;lpYR 97.294 + .^hlB[!e\gpVS(<RLZ$Q6f,6+U-t?L#R?+09P;j?8n;5q7^4,kkZ?mTBc8Z\#J]j?I-1KHf 97.295 + !YpiJ,0/*3]Z68MT^_?LQM8rSMPPp3p@ukP5%K^[:su^YeS\Io#b<5PPB]THjPgYRUb#Qk9 97.296 + DX4:Qj<3X.kE,lb[t)%0tS"9;gY"CU:%K@!@(_:V$VJ1q*-%[Ie?n5ft86nKI!^"JYQ[#GA 97.297 + 8L*EJN(rM_`%cQA((STJ4MNF23U(g"OE>BffGa/l8A4_W_/gj()TbQL6<JjXW.ReTi(1Q?, 97.298 + MpYcS!VfDW_2oE5EGdGKf[1Vt<,IUL^,AIeh&Kq#F,nYj4@`NF*TPXtO-0E)a;FjuU]c=3d 97.299 + M>5A8JNE0>`"T+5"A0^)^OKtP`epF9M'Le(P7/_!_2edJ9`psV'Mgt@8IU<3)_<B!"Y@2MH 97.300 + C;OAIhC41Fo8i)\Dda/I@';+),.fV8[Ie')<2bmfj?IQq%FZABK>(NUiA/cMD-peX:J^B$G 97.301 + V/2J2%&S'u7nc.Tomk7m$J1S/V^M9P^eX;<&LAe!%bjZ7%Ml^lER!e<NT.iC#ZT>B*/-96< 97.302 + K%r/<X#c),`iZ`_Ed9o%8%Z!t#,s^Ge6'H>XMp[qc,%D$k+VC"rdAeojkp7RMe;BJg>#S#W 97.303 + <@t&3^6R.c>th5O1T&[QS5W%&:$LGHPHoRkJa#NsC#qdD+\#7'`_$8H?r*c=[\t)O-;Z*>% 97.304 + mKV0Kb2rT?V:8-Waqu69E_`*%1L0VA4UHp&_\RbJCCWc]!g2dj]lStE3@a:]@U6V?L--iY; 97.305 + Q<n=:5"7CaF_<edB>t>8(4.pidIlJ4'Y4F^hGKLU+?@bZT9MAZY!]ZaObt=rTb@m/<cf<gq 97.306 + H?HW=ftAZ3#fY1MC^@;P=r[C/!Mg09JPDJeL7$:-@*&Ps_U5g?pNf';=#gQQXF<O3>_4D96 97.307 + V!W]5t@&\Yr*.qXd/hZ*r+-h5KSm/6JMj<55f:MU`@CRnC0[UR90)&]\hgB@=o=ii!r*N\" 97.308 + IIG_b^R+rui#DWFYQb3FfG=Zu9GN)pYX/R?<$$Y\;h=FE$,W':$XoPUL@E2&_cV*o@JiQLY 97.309 + pLX4\;q;4S5G164tX`U],"lRAW1W+0ZMbk)rk1CNq([`a#O)?A.3mJE[F/pfI/HWY_#;0-l 97.310 + `=L(Em?0To6dL56gk@\cTZ8#=M+4%qDq"?BU"eZGC^s\VQF"'l@(8'kK4ET/74'`gK=,ER* 97.311 + 7p4>UO)S3Zdn2BuEkAVNSQJd-oBqApH64T&%+ERq*Z>--r$-)C11Pr?cQLQggIV6oBUe(T6 97.312 + &.FK9:RA`9ufjN\<j>&UcAtUJS2&OK\+JEpt$CAZn>U>W?QYSCjetecqQ1U9Dp*Rc2`CE)@ 97.313 + ']lUB318IJX;#L`$+0CIbU1KB`b=Fl?r)qtg=q*rDB1m;#Y(9<>G$"TS^^O0&I?mF][-Y<j 97.314 + QSpAoaDep?142>]#e"*+Id&(,]QVfFtRMO$"Y^SbhoV5i="9`CP$N^-,fNVaWVS#MA%\)`m 97.315 + ,tFj2&'`6V]GYq'RKLg/E#'IEfn0B.`6!K6E?)hQ2q1YW03&,'/l<cLamckJX-JE/Ma*36r 97.316 + *Z]LSUdSs9eqYm9;0/<C=TV4bo0H3!Ut-hCV_5'huileR&p-D"+$\R/e3h4M&&c=0)MR]He 97.317 + N]Wa`,<sqD_WZ8^M]PD"0mC59piEPc-FCH??43rWMaA\stDP,m>hi/cA*#sf",]^q?#L'OD 97.318 + MpR(D?0Fd)0/E"6qB&,Lq\T>"^5pciT2]V'=9.`gA79g(U]=7?((K-VQAj-AjlKVco3Q5[q 97.319 + ;$pj#SD98jiGDg,R_GZ_4Gj<hkG*d"@>3uX8:^Yds-rTiql:!qo>%(%<O,h4m<XTf8q?LT0 97.320 + ?N.DqP$G^TeHs14t(3p&<k):).V8LD7U*&24#;K`E2_,lEHr,HoB9%m\VIMM20#0-gVpO., 97.321 + P(i8Ll:+Rc?1&2ODTAG]05"(Qr`W)+]-&4[8ZiNLf=U+6?8<s=4ioWM$oY[[l5Y4\u)mgqg 97.322 + -YR^Vn'$T`*0oW@<6ZVBCr0V@;kbD229t^aMQO/6s"0ImrUaC7O7ec@0q+]3u+gV<'+UTp8 97.323 + $c7Gun*(5L`sdu8#-[h+E2FnbWq1mCe*[2YitVqG,#uPH$X`rhK7O;Ef`H%.n1]s`&=![/# 97.324 + 6,7+c`mcM@PmasIPDEH&^_XF&Aln9+VKnef^R0bn66>sHok0-,O'4l"VD#8p)e1\f0_P/Y` 97.325 + ;D=P0U<a(!f;[d9d"ZVX5V^8VBSL;0*;2,o9F*(X27[&7ZAl<u>DBf'RMmnP]3\!9iqV(\+ 97.326 + *[nREI>AJhRt4p(j>0rl44[e*FB)j.lT%7:(hh$jo[)c&sDiggTt'*tcB!jS-^ELe((k1t$ 97.327 + R*eLd?+t4,"V#$(`pjk:4j2sQh1.<nTbeTZ%:bX/sr"_uI,=H.0igBqP6m9rl*qCrQn\$.[ 97.328 + 2^="](bmll_G3(b5oHq2+7]@R,6K&t-D;%\!!;U41#sVn)'QjI+p!]^j]j")b7@H@XARWpd 97.329 + G3W@/0N@U,I3?YZ0`tAQQIt40B,JK_koVq8hT/Y-D^/X@S[Sl;%94l.,u#i,LmB(QRn05,> 97.330 + u]:'%0&956[4=,;Jm:d\7>:VI\,T26sAQEj?t=[jm!k'>mNY!Y5er7S:u$q5i<H/gi&t!@Z 97.331 + CH1!@rn;][>bh'@"9#7:2\U)K`/0/)=S/^l"&%:(OV6St!!.rs;P1.!88.kWV1WDbPqP;^X 97.332 + k3\"!E+S*B-cm!ZET.r&"'la=$d31BarA;T@1,Fe7P<L.p2D;tU2Z`pcUAR3W,7^Kq/-?S3 97.333 + ''LQ-[/o8*<R[Zmo:@C0PrTN#cI59G_ehABlTHn&2%e(j6<88.RP0ks49Fb.D.k(kWY`"E+ 97.334 + B,U-b.96i\fm9O7540goCOL^&0e-e3&0"JD0m!kkn;Ir/sG"4'9>K^><J&@/7U"Wo4T=?WZ 97.335 + tJ25*Q-SOA$l3FSuk\+u=$Xdfq8N4%"+)U(bpD_d>a[Bh'd'4n(C#PW]1:4tICAX$^)^YhU 97.336 + JP[033c7?g_>_AbrUn0!=\8oqs1147>eJN'jk2tBU.[!+n0H;kS99TrOA1.=nm`COH0'6Kj 97.337 + @U+\0O%51%@$SllZ6D$e*cVKTmr_:QE<;J1G`CtCWlnj1o<;%F*k=oK>;7$[,eC.0#!D]@\ 97.338 + :?!?CJtGq`.jqY1QgE;TESCPXLE7')3&0Sn<=DWebuI`";=^D\nsrN3/IRg!9eos"ohn#>@ 97.339 + o]p_G'%_*_f&UVK&h%d"#UfjPm]tpPpDW4eg'`3Q%gOu80IR\q/Jt?d?@O+rCbWh,5%d7KY 97.340 + ^ZR_BMs)3L+k\<GPVMR5oBqrNp3C(!0cN0j#1Q2AO&7c-oe@nQ?SK)R]T>2;MQtPn*El5a3 97.341 + EH'I=W=^E,7.*&GYk7$]p/+$0NN0[fG5j/au"Yu8KV0iY%n7"?QJ&2@'\%un20d@XZdo20Y 97.342 + j27;($<a\/CA0Zb]:m"1Q(27?GG#HlVB7dTJKVr9HnR@^].tYBC!Y&X+$"JQW$T:4Y@M*,o 97.343 + H6h'4ponsGXggq8AS:":?Z5C?[WPk"/Q[,7;:]l%j^KYm)),$i6.QVc;\`9905H]Z@KZXE+ 97.344 + qXQKmSo@\,\:8",5lGs5:+9?@^2V<Fn8kgH!hE4>da`GeV/$%]5iSPB@eU_(5#!K![,qkDh 97.345 + RY"AI),A3%gOa,52F?(CtQgAS^c%Cc,j;2doju*DMgLD"hI*'e^7Ze3Xr0>BD5-OtgkF*]e 97.346 + L=+]9^1n/+45k<$Wj8WjTuZh@5"mP.`N+\E=^pJ`>W*%pjR*WdPo1@R?U<&]f%&GK7GGA1) 97.347 + ZD-;(&AbXt'Eq+Io&RQ>UI`$)Ep[9Pt-S>(K&XSFupQ-PBPWF#V;?>a%nm3qMU*&K&H@c<L 97.348 + GHkmAZltdG/m#`6"2fLRVgh$=Fg(+RpXi(SeUP'eB!g$96Jt+jmn+gE2b.n4Fqnmq)-#4AJ 97.349 + !Xmp=6E/o$V"(r5GB6T\$efD++Q[<Jq>3)!q1n23A2)+&_@\&f@,E)+,#s#=qtafJh]/M%m 97.350 + e,UI^hIu"&XP-_C4"m//XZtdMO6S'8RhY0,TQk(lfbAOtKk`,5@X!=NDbT55lBdM`,4*GXm 97.351 + iSDhM%GX+CqAUN:::@r9.3GLD+CD:^Le>8C:p,.Q>S&[PCMnfh.X@lQFp25tZ,ng%@$Bj!_ 97.352 + <32'Z'V3&/rQ+6p\pePO*2+4uG5e+Ri=`Pu/a-T,FN7`]DU5>2%Z4DO?Pe[<I@U53`!K#Kg 97.353 + 4>Q#bU8],MAK8(.LA>DBG$Bj5f8o^3MW,qL@NV#4[m?)%6b+:3[7Q+=l")TaP/8<$_JVCP( 97.354 + R^\-4#mh@o[0.I]9QCXQ'o74q.#]D!Hrap;L(G<Qjb2!g+eko.X?$&3[-!JH(mWBQf8UK,' 97.355 + 0>b"<tCr,WN8@@Srj7I?0HHO4j,dRL*!Ip3'UMPkl"_@POR.$),4eJ_%%Jg(ZlAd=tSJ>LD 97.356 + o1qG\a2)0HR`,':"S6=3?(6Pm<1>abVg)@*9&@AmA/Wd'1ZcS(;[pRca^X4YBemT!(E^G:) 97.357 + <Rp!(9pit]hSkfD@W>E8pg6VfNa<R-GrRt&C3i0#@$_UW+YG)tXLJ+[WAZ2Vn2XueL0hre@ 97.358 + j/:L]>PcU%g@cf'>m+>0Wo@#Feo;I/SQn4LZ<Hl#)>1*HgRigADmK>5dNu1;l*Z,.U75=4g 97.359 + +Tbk8$p91YM-%Q;qJ?[?m0j_q\o"33`i\59<\,i\7-8_Udoq:AM?1.9/Sj[oHOXm(T6ffW& 97.360 + nXKR"n*T%:b$a\.b"2Q&2j%K71@iLE!M.gWUj^BtI@7AE*E[e&SkCH+nl_[JT584(YbX7kX 97.361 + r4]:+qjQef<$n0]0&qYS%;>Lg6QEO5dG]pc7b2RF1qi[*(co(rqj:AYQgJ%D*iW#On<\.ba 97.362 + N"/o&a-EuriP*`gD$,rE=(VB.Te^q>./\baZ`*#+(S4fb!a<ga]^`6f0Hk".,8#MiSL3ot$ 97.363 + *'n/cVhLn>-/*Ge\`pto2oU0"b1s0.ggSADZ,'X_]c,^A3SDDT>KQ_N-(Lg>4LQM?L!<?DL 97.364 + $tRe4H6VPJVMmj`gh=DghXa7/1];/'1-9#U(NeL6d!'rd+o32]X?-,(X)`e_4%LP>eRK@RK 97.365 + +93%:iD+*>b/42#hPOdnWW^p(P_O]>NC*a]\A?i^)"^0+RoW,SKX01=OU`5LuB?m6)35qt8 97.366 + 8:8_#O[caIuH][A(]?n\'fY.:FsRB+ubq8fjqP#g`o[d+iYYL4UB`o-ZA@e61C.q>!6Mj+I 97.367 + #=.10;&3RJM"VTq>!Z!r-0?4ZSepWnA*TH2:ERS38,sAHd,2q9c+5=/b5XA1pF:9'.bM49Z 97.368 + gu9E$I*G4@_qg`=b1t\,9l&Fm,2HBLg/4QtSTZ9*$8E_/+JKrVSeo8^8'k]uE#[Mb4Y7;;h 97.369 + r6h(jj!VXSJU/"=6"nr0i^/C=r'!07QA+Tgfjh7*`]V>+m&)QYo=F_SOq+r+3rWidJ\G0o' 97.370 + ej6@q!rDdC96.\r&-#X?O3N+uZPG*-[dA\31nH&cPqs^=2IDNTNA9k$nd5*`)hXVBAVYlJ8 97.371 + H`KO>CD_<Z-<m(Ni$`)C3\`#ut@m"'NMg<&QMf$]#.>?N+RRFTD$)4*P7nt.T,%2\EH1\6E 97.372 + FnUEUF4t#naT:LD*S\II3+"d.-=7qDao7(!<"Z>oO@]TMtGTN4FQRh`9F8);Q;ZC+uhh"[3 97.373 + BD>&4e39)e>tat#kP'Imq;7c;5CrYQVF&%SqM/M/1O5n4PtW:'=J))[ho#@ZKDJrqr58^6h 97.374 + p,5oD8X,.rD`Uj+5d')kEgM3m$buoTCP;*e,MierIP%LJO&.T=>V'2$&(_)OP"Y=+VBQ!i@ 97.375 + QI^!\kRO\7:XloR9(LO\"Pr=Yu^I.@!NeP1ark@540Dk)sgKhDH,\:?Jn9o_sD-Thss;=u@ 97.376 + @`8Yo>LPhL7DTi%dglBDrV??-#lf'9ZsomX_cYup@Y>;`#".Qgo#,277;iGlD5m[%$[qXFB 97.377 + q4tht4p&=a]]ft>`>IGS;(26fZESO#J+d'lWnsNW;h%*YZLU,Ugp4#B%d:i0@>rJ<PEN>OD 97.378 + 26pPd@BnL%p7#?q`n#CCg\1O#pA\uSIph.r>Q+^"K>PBJ(/.aa0cY0(HC\BO?a1ZrAuD2kp 97.379 + OC$<nTau'?T(8QXfcsJT&4b,iUGXj`P3M(hsh-6@.6,LX8]oF9Jc74\aG*H!\@u;(0Nqu6l 97.380 + tOl"CrkaQ;C`C"N)qAWpQ]8gc#d40bd+j7'SRDKY8hX>nf`+N%YOSj$Y*uOcZXt(Ip4/Y5+ 97.381 + tGF6ajf1(t`-YA<G$s.6G%o]=/./.BNa&orY=8tp.*#g4X7ALY!A9YVF\o'2nYUJUm/1efc 97.382 + *f/?@0EX<I*;.SPr8u@9E-Hf<2\N2LOq9q$W'C6#HUJ^sp6r>CdMLE7F6ic;iO<#$g8d`e= 97.383 + 8gLb@ohH_84[2WCd#CAa9W61];H5SS=&r>/Ego%`1S%kC;fqC!:R(OHdo"_8"U^48p%=):d 97.384 + >SKt,bF^/"Qi^kZ?&]ALg`/U.l5-1K0o1;W(e3hoq\hD[f\7Q6dG)>FBph*f60\bMD88iXo 97.385 + 5eG9(p+0D+_7u]PQFsV8[pB[K80l?oTu?@n>diP9mGtSQBI!<fR%`ib\hu>gXAm%YrQUe^' 97.386 + 7d3>P,JA?<2qXZ^qc;i7j)2DJ$)GhuKK?sj0HRV+9c&pupnK*=hL[:UW&\p-DNQs4a0n>q\ 97.387 + >F`WHak!#]@%uSSB>gN8H1CBh5ap_VC0p\<,CT'_>?L)=NX*^W<;)P4fH@8#VTle"S\&ON$ 97.388 + g4\&KekM2*'h3>_E4e+?`$Q?jj2A:86=74i.+YGtA]XSBA*lh<Yts[hG.@hGWQr>b65u$^Z 97.389 + QT-81lUgbW_(:T*Bu'L+hPL)]Xe]Xq7CRncPjCWfuJ['2nA(!,uQ^GKnprB5:qA$C!:O_`k 97.390 + Cs]DB\skY)HQ_IsR)@^>1g<:ApLWN1rMF\;bh`EjK$&5@=NaT`:UuP41RUMuJ4@oD`?=/X8 97.391 + R'*qY9;e0WGCqnD&4ptiXEFAISp^uVlu>`uRFUe1eT3#MiibOJO"c4#eimc`RPAU$]8'>h( 97.392 + DUCJ^J39BsjUt)",P)I[n:W_(Kf/0'<6jOoNnaWAP'):E&s+a&u5EPO0g'BJ3K&l#U3J%[1 97.393 + U5/enKH;22G^b8(HJXHk9s5k>\Iut6Qt<GO%mjnArg<m?NY08k7l8`rNI5h#;'jf#k]l:Il 97.394 + s+?]!.dNdr'mD($]*$FJk)PV)2M6dCb^<R`H!aKg72/8c^]s5R#<+roRVq=(.'lfF!9GJA6 97.395 + P-UJ]<J;)P7-,Ns2*hU^:N_9;BO)mj4Vh[9V)hN&Y+A?7X.fH:]5WGa1ZWn[?s6<b3ulK4J 97.396 + F@54bHq#V"1g/+A9caUK)C7)qpk,_jOP^F@B;eoa]@pdh@77\0a#1QpI;:H@Z&:F(+T`KFY 97.397 + $W;[H>E?gtS2K9;Ma>>0Xd$`@-KhW*Z1us&7S>7KJ*=9)>k2@2Go6gqe=i-NHPm&;O7W^[W 97.398 + HTK^,e1m0JYY.#W91nid@;PmS9A"(Jfc#@'PP&2%+r*MeeKZ5Qnq;h9#=Bo=$E-jgKgn+$6 97.399 + sP!B6L<!i8\-*6C/!H^OHAZ<-#D_m'X*LV,'[#Na]WC:B/2:&Zk_;757#\^VfIHFeM8jU.R 97.400 + N!jA/_3pqL`*(<EZ$g1l,-(Z@_@iFGgl5LfJaU;TKT++Vf*XVoNXTlWI#[Q<qfM8moOX<&A 97.401 + 91eS%V\73`GhrukF1OtJ7.3MhF'[Ig3GfinSEm85+-p9o.,RpfE(4_(gB#2rfKLeoU%`@=o 97.402 + V#hjkDD93GI[mV"_h%C$:#TZ^O`.mJY@OH:N[E'[1B(0+^<6l=Gs&h_GRDVr>.pPGTV_?JA 97.403 + &6KAJ>P6U[OYZjc$/JO`h6aV7f)$oNG")c1e%b;di*K(pK5buE+BKWj'^O^^T`+I)QjWr(q 97.404 + k\m_jh/M+)ZO#GAT+frVSdWl%cU+dLTP_H_IU[V@iT/LY;PKtCctckhuMS<1MERb.ho%2.< 97.405 + ii2hSn+]!"g`jOOMaEUcBe6jLhBPf.(Blpt%*/]X]#dQ<bqb!f0Zh=-Jj(?b3d@(Z3sLD!g 97.406 + Y,^K@f>Ao,bcZS!rM\\foZ!aUcVk$>=#ae7*UgC<7c`1l=%N9#B:0rWbcW8o;FBWE/CF2jN 97.407 + l=9B4ICKI9GeoK(4B*Djh:R6)$Vpu]_!0r4=!;02Zd3qX[l,#_mfBmu*2<R-^h*Inm#&DiO 97.408 + _cg`uH^&\+Y9V`tA75oL0!AQSd'VL.1H;R6#s?J9lV2,XRdHX:G.Z$XcYD&`Kr;?`,1kSDZ 97.409 + "c`m4Eb'"hAaF8Ac:[d[\[lq`2@EONO1$ic$%1`#8_870MD*\8D*ghL?u&XEZoGBL,e;WA% 97.410 + P.IXWtbrCX[0'U/`CO3<[Q$:-N,M^UeH_]XE3&TCKd$_=L^F?oTfoo0-m5=*CZ?>.^7;:,B 97.411 + ?S?=YBFHBL0Oq7(O\9$*I4PuUS096k^fgYEsBOFA(sm(X'c*(J97V,NF0o8(sHie-R"K->7 97.412 + Z&"n9%4R=-@\qh.!Z*jaToaO.-HB+_=SBIsW^A6Y^DY3D9Vm*"Ha0nR@'[FCiF7Od>hDm:s 97.413 + mM]$7Eo#!F]=+F#ScjZ<?StK"D\CEZV2c^BWob/((Z[EA:<Gm\&]n(YC?RkD&P`Mc1JYXI> 97.414 + T:i]NnkJ_0c8>%kB8g::$6saa8#q;^jMbFe%IRtob4:fHK#+r8WU)'.*L<7Nhtb3:C6m9X/ 97.415 + Gc6#l+B0Sb&I#H27HK`;8p;BWQ1\igc]Q;Z'Tc^RTkG-SX(a,N""RI#0B-^E^oY]!dgF^VA 97.416 + -H5N/V&)biG92n[>-SN97NOjocY]g#I*^uQ!+9:Q`\SNg'KYhT#149R,R"c*![SBM5Qqpl% 97.417 + s!A;jW[Nkpfj2O<fFMGWu_,M17o<gdC#`("\Lr$+,Y`:udR_MN,,GQ3D6dRJrd24qS*kA;e 97.418 + OaI^E`#cK"Lar1b\SaJ+)nu4h4hL8KC`"<H/jAm\2`**0fo\PL-:="X_k=4t>NA,Eha4Yi# 97.419 + [B0j9Jm)40,3b,34lf<S01(\hM=ii0\eoEHl>C073k8$&<%^Aga0k<'uFs$Q<QYlMY@u#bR 97.420 + pj*OcaN>k_C1;"H6chOf>]M;Gj\m'h"!#5_MM;G_j=48t'j&Rg[2(RfgL#$DP)2`,U&iN(h 97.421 + 5ZAB%H?6bE"[&IHE"#K8Kb#b5.[KN8YS="*ZF6ZKk,<!#8M"%!QQ7^Q17ghasrD8TQF`.3D 97.422 + .'":=RC-&^q7To`*@U6):k-g/pZocMD]$j'SHAb1$a:s6I1kUW1B#m6Y8,<e7I"d`RH:WV) 97.423 + 8%WESe1!ZSQq3U>80j29oT.'uKh29_8CWc_N/:+\P,Wum8&MJE,HjKc=-9R7La'qgm$*C+B 97.424 + ?ALoalK%I/>(&&TZRs0aV:G+>a`LfKh8KK3u"G%-tLJRT#p1rb+tpT/$'nMHU<?u8Af[<,c 97.425 + 2ge?E)p7.s(+#['RqD[*):$at0rWr3)tCZ)#TD#gBVJFM#`3K#k#h9&rf-N$9@V,g4EJbTt 97.426 + 'HgpYE\QcoL+bS8">FL00E?57-jbb,it[*-\'F3N+&7X.Bl)7bG`?VGjpbp:`Md*,2%b6*. 97.427 + BbqPj8m*C=CXN+;kc(pTJN-pn(FU'mQ#M=GhFP;Q?^PCn/c33.P1uk)cGR!qZLVS->AE6L= 97.428 + kg#9G7,%9$m)]ue+b>/EJe/`PAF>.Z8-C>RcBs=gK_(#@#>\/E:Ls%BFSF+42i#1nLM0]iO 97.429 + ;<O@-35t$JM:jC85%9bci`qAJ;jVda<"/H!74Wgc+KAX<:E_;mfZ0G#%[so+>;*WXF`kMd' 97.430 + XA1oad-TIZ)_T;'c)EJ56;B&.F\j!L4GJ<>WDP]TP"@V9H',FU6:jmf\_>3c,%PI34?f/CG 97.431 + 7M;C*O80^DRerQii&"J@s,3T,g(+!FW3d\6\;Cu<TemnpkfKA^=fph%tXWWcL!di_rF2(I' 97.432 + D1t,:D#N0ra[3X)VBS?FTdo`tLJ7Ou(<E%7Le)`X>oW-B$IA)%idBQ`(+;iDc/Pbdr"#s^f 97.433 + rC>@k8CW`tLJV^i>rYX,E!>H,e=B@ao0:[6?%P<\"a(de&1Ie5:XrHFeR_d;QtuqN:Xm/n# 97.434 + CpateQ5bi>cnN4Q(TW/0Nul>,Cudp#LIkH`EcM5ACaa)L$1RL]d/;6-im.oMoB8Y[;2Uu?5 97.435 + 7]E!t\j;`:*sj@0\r3=!_n=1ujA<HAA&)JRp*\^bu7*F4Z\&Scn>6Wq=B;<eOH[<rDCgGVF 97.436 + jUH<:o5fHd@!Lei\(=b`kRKXHEaFbc=nHW2Fp"ZT9^`I?4U<X*MRLK0.4ooIc/%L94\LHT= 97.437 + %>pP,#-@n.&LJW$E%@>b!<S#Q!"s@9./W<I*2$2E;$n-U.NM"o.TX?bl#O#RupbGj?AqI^i 97.438 + >%ORp<LK+cF,)/ifu6A`?rI3lCg(t`g?#K=\7u1$8_'@1#7+^kSZc6d[#l'(3n0JH3E:[(+ 97.439 + bcbmKjZ,+TN;?eD)a,T>NNTRn_aX+AHhj/!cSk(Qs'S'+]/f!>Q)RsE:R4@j4Kc$"9:H:4` 97.440 + >n*N6_Z+L!Y,NS]4o_d+oGaQ6:7'E+.(s(L%mX#7+]@Q-rrlfT!SC'mNmcBQ$b`,QYDVfYB 97.441 + M"-t(<e\)!>.hBh0D4k!\%.:#pO<L@'ELagoOT3aD>hOr$ITiVIiF5!Ik:B33QaBhua6A*? 97.442 + j<il%U&E-rto\WOF?"dAH:"=ePe;&j"#2St0[JPlAM*G]oK.nf_"fhcN63_*XJtQE%^dNh= 97.443 + A_HG1#;-46/dHqK#h.^:ho6#][>9V%IKk$l"?lNX88SNd:uJQ8i?]RtGY6p[DIHQRiF&Na[ 97.444 + <tX+@Tpa/g9<"-#[)pBEX/NnebtF/n2Q.[i6<t7!:D%ga=H7>(?/@@Q#M&)=E=Z@4Tb$^?= 97.445 + a!=0LQ"kkhio/!<+Um/gb'.Ol!WP#=*>8W$0YZ*!Q+BLDY&e&:+E),_`Xb"0G%JW-V_PdM] 97.446 + 9JLNYlA%R9"T2$WPU"^"h-YSgoH,lo]+".1QniL\u3?t>B*Kr.K'%SMY=0pV5fK,A"D^bu8 97.447 + X?O.Kk#=*V<!%8#qN+FtRLBqf'PgP6:=F^laJehOE2I#7^>ij?GLR<,f!+:HS1#u%SKs3@b 97.448 + 4Q_E:(5HL5KSF*_\-hAKI:edNk+Ip[=rC]#FQ6JCfYD0T@!.8BGDC-b"'@/Zoo&r[*<hFkf 97.449 + lY8hSp0>"Git1`LX:>PLhHqT6s2BMg`R;2Qs9_q-&9!SB*MW'>j(:AKS]TJa^ojcPi7De/- 97.450 + 8!qg9s`\#_NB'HjARuKD9%\`9d_98d%t($fHJI<g2c:l<IG.Kr@n'J1Uf8p]XZ3<L@%oGUU 97.451 + n*GA0gCl/72)d:*8m;?ks9#&%NP8;)\Q</0T]!M*-FjR30V.#$#a#-OM2m]5WlVVG9k"fP? 97.452 + 'QnX*qp]XbJJRu\!<EY%n5m'PtLRtU5G*H_:@Hf0iJgIt]YVC`s?"ebAL8\d@?n?n!MHn[" 97.453 + C1(*Gpe$:DP3[S9lt(2Bk)>&I=bR\q!rsEWO=#ND=b?\qgDuO`OAQ./U24_pk,u4[OBD``D 97.454 + V2t%hl)7an9kF.0&*$NJll7/%<:b^h!NWV#Inu5?%ms)=G#`WA4TpW5U6MH/*'/LjA8nZ\/ 97.455 + GSh@Kjd-m\X7JI-]%nFkQ0]hu/Lc=<*$L*/C2BL(IYr+=Mg9=kfeqL,J=QY3PJ1ps42/#2! 97.456 + Yp84NcjZ.EmUBD=B:G(9X*p]^.KK$\h!:3Q)m"QEb:(DpijBQ`PC*!;ii"r6]bE-DOpHis. 97.457 + (>e[,ga<Z>@=+od/L7igIQ9=Y<'_,/0#M=BYW,ICJ<n^S_cdkPeW+#l`2J:nG:Xs-0<<!*2 97.458 + IpgS;ng4``@<@0A6&'N@"[Gkk\;BUeg',1$Da7HZAt`ZM,4a>;``RBg\7Z"O-A?+_JW<.O8 97.459 + /)7F6%_F7KWm`+I[KZf70V$t!fm*]V_3&0qf4]=A%6r=cm<_'X)'1uL44d]Ss"d%9*VM,C3 97.460 + IGGcTd,n?%nqji*<Z5I67&H9]*km#:OAA?ql?`j7/cUDK$KuGYNiFD$?"t"fO2./bij1)0J 97.461 + bPneRF2f3@+'L1\E6)),e0J9G`\*+@c/jWJmV#]^.]H%ZGa#"Jsgo^DqG-AB6?Kog7hgnOs 97.462 + !Cl$.qG3%WT[p4+\^5&q9#=]7.#[RV0BA$?`o9^q\i*$:4D?[OKKr?eMIlPh%Pm03:"-@j7 97.463 + DPQq:JDMqBQY9?P!,U<-!X7H4M'-R<OETiq\k`Q%"gD&4s")7\9R+qjK=?m9(Q[8LIg8`O" 97.464 + Ya;9a=_Nu;2'6GJZ*16^d3#1BD7KdKqL/P(.@sP/p"J%LGtf`&!1FrJer!5h[j@)mGI]SP& 97.465 + 7sfGa.Z1OBVlb:kmO_nO.t^VlP]r$$t3pLGtlPom-jnE/)se"kYg:TN(YmHuk*D!dGE6#X8 97.466 + D+ZA"Zm#>fIGQr4'C=9@+pA5.9"?ugug@d;%n!T1bF8&L''`;9I=H4bF/%Gt^j%g4";##@j 97.467 + J/Sa`&EW\!Gmd7Su86CPL7>?gXmsK`9^Vf7(</",erFK6h=EK:RA7r\GF_DtA*<("DSGAbH 97.468 + LNm]kY[mrf4R^ihL!Va[J8p;l>jW<GKX^*$a8pa?<rSH:j8SAJ<Z%>RfD9+j"COKLDp)b#T 97.469 + *?]NLG1Q:csHQ^<`D%Zp/kj@mmBQ?TDkbae:;iM3,o/\>6Q]i";itLBRgg%$Beec#mQ!tiD 97.470 + >mkW1#,@SP'EgP(i>kF["[N<q>KU]/^TLE/>j"G]P@F=Y&,$q>C8[9P.3`Ut0BAS5*]q\`E 97.471 + I45G1hd<&u<@NCTdBBiMZT2P!X2O=EL&V,TrdHIcgG]&e+K?a*XK<]_Unc"FCeD-"8[[bYl 97.472 + 3>\fMcoBtu?]N/rH>JoIeqgRI@=?IoG@-VhsMWA?J#[XUQA239mX!.35Ib37(2`]7/_T:q\ 97.473 + qCIf6bZ8%$Ptfl:eb=gNCj'#GVUo[oghq=?^#o';^Yj'U>WsMONQ:*Y?VaamQ'B!pV@ZC!. 97.474 + 2GG*L.PdQ_N;0[JMXc:$CAB<f.hJ-g5NtTrENDAp,bTP;)hIm6Q7%_<bEfXs1f0S"K!f)6j 97.475 + s/`"l'gn_2rIR#Jq%2,mhGMWl2J%lfmdGY=n0[^p>`%7&HJ$n`23Vlt]*+Q%QTp@@lYg?Ef 97.476 + o2_;7QjL00BQ(!S"Oa,,Ap?q:j+EO]hV&KI&^ac^J2-d!'\V('QMXK="r&u#)J*lg:2@@AJ 97.477 + C(mBiR:nAB8;bODu$Xpl77h3QWMHloHZ=8/$Vb+$kP=<:<--]5R=t57REAU!'LH3=)d?JJf 97.478 + j;^"9+%anFXY!2p'[-Lb0'gG6euLLqm1<2oC!^oBUA1<ba5p^]/ska`i-_W(@FfdhKUJbe# 97.479 + K;s4<n6=-Al]kkU#pc&[S.T@=biQ=AQfk/V.nYLXfZBn'Vt#9RO1=t;A(;>ln"E2J6,"_1G 97.480 + D^_MWUm58tDj,UmFIsqj)Mt"n>u.%tap''O;3jFuY@T&Q4T0[a#VAiL"L'LZ0/2-&J_1iV% 97.481 + ZZ'`C6n0FS^FruL9:n2#t+j]X?q-.0eQSng[^IMX;m_,luRr)h$s+gG??O![_mA0!&fqNp7 97.482 + =.^iu($E,&CN>cN]Vs)ipV5`aKY-"bj$PG(7*(Cf`B9QjY"t<h[$g*S;@gITrP!e$c>TZJ0 97.483 + jI0s6Q1A%EA/NZnMBQTUK>$63Qq@n0EO]b!4AQ^2nXOM<a7:-,/W:c2e2NCeS;V?4Sqk\P0 97.484 + pjh7K=i"u.bu#6jEV#D$":qaRl%4&YToIPq'p-LLDF+=C?"u8WiD_9KR.m6kDeNt*`&'_q2 97.485 + 4G7INO>j\n`7=\P?ZIUT%o^#^cHSq%b1DG%6Y%Q4/&/`r^.+Sk"(??5:Ht"hjB=oB?&g6hn 97.486 + `A(ZgeS5"E60J5?^W5ZeHri'[cYaCu,6'(C\/oEd,0jEqKVE&,sW6O!Ur9ShZ'oGSlhF+`[ 97.487 + YMNPIg!m&&u$FDYoZ$\&*+PRohWW9j]T_&KI3JUB1WWni=%AEtkLf"X+6rX.L7p+mn@h;lS 97.488 + !BMDnn957,Zml.Om%@9b3'RGND2V7`4@]t;-V>Y(%?Y$G`V=]dLXe4EptU89aDD7$A64WKn 97.489 + 2b#8H&khj5"F9(+3gkp;p[A85kRVMA-$0t6ZaQ*<-lg5H_2-/c5N#m]JbOqQ4[Up.YL*%$I 97.490 + N6L"sUE7L/EOSKlGoj6cE5"Pc?McJ7b*75$CSCD(Xkf\X-&\4-!a60?15q'#P8I#,,QDJ`K 97.491 + mljG[:IE/ZQ*Lj:5>Y^$^E]M=7HQQ8FeA;qa!,?+/`R<+=M$]s!S7]<6uZW:kb\_T@1K^kX 97.492 + 4c,[mKn6Y$mIZWmHH5+c22$\3/(<X!3"2SFu`IQi("pBDaK/au@TZE8$4kRjY916\MDGG#j 97.493 + <Qa"l8*L1#Uf<A;35t,>7f-I,ab3+l&H3NcLg:6a.C5S/\-lAK:([SiA.-6C49oR`*^bm(O 97.494 + [2;fKEu1IKFW#N&TShBI-I2C>*@E>X]=Z*=fY%*HV]4X4mN4^T9X5c%ftNN"0cGUDSS>gTn 97.495 + YTu3sdf;aF&nC=uV(qA/HI";9Au5&V6=PXWn9`NTNPk.j@n*egqnFd1'UIT[0l$:<H^D/Cm 97.496 + >TqB%6+Bs;$7-%l?dWH?O0"OKq#68R7(UMO*@7H-/$atkDTi-::@`%ZnHcjq>A0E^W36W5t 97.497 + [%q0p^%oLd>XM)`d="`W?gFYRQqAk[AG-Ti^C=%b*V%[?E*RR5Fkf&pi)l1!ua[&rU`mAE- 97.498 + :o]F8#t-:ZaMAVnTPb75cCM,D!t#k4*WQ1YJ+(Y`^fV*K+9pgf7nD&G0pkcGOWGP'Le_3JW 97.499 + o)9'81]Af4ZhVnG6pR\1BnEd*b3-]9p,(W#"7;[Xc7hh;.(/j\Af+(^i55EB8Ef>"ij+R"U 97.500 + hU.O7D'maB8sHP2nDAeHCSu=&U:V3A*E;7I6bGQ'r.ZUJO\>.ir/Y9au'c("kJ3bXRk\$c, 97.501 + (S`i.Q/UUp#,dqE)RAoYS[$T_ndm@EjgGp^kAGE/Aq1</Oe'b,[[YJA&1!U^\.-eMXXOHTD 97.502 + AOOk5!Cig*UM,3]Y5p'Ui7&BRj,XqKS$dhj&<8#@'6!S+3K32+[M`AC+f!.,bQWaAPC_Ls. 97.503 + T@R37?>IuuF<%WSOW!!e$=PtR!^f#$0Pj&\JWj=hOhHT=cr:>AZ[.>l)Tm3t`J[es1PS`E* 97.504 + =u%rCZ<QEKV%E7>HA!Gd?hK>2Y#X.c<H?LgcF$Ea,?[VAdM<6WhRdreA.NB[P='n_rgh:K4 97.505 + &>g]C8ZB]3Q343)#,_F;r)UCu@RJ7YI$8+U9^E(^qX8E`1[D\OHHHTb!G*://q-L:hPCB40 97.506 + OS1TsY(nn*ouS;QhtY)R;(2u>oY%C"\+7Kr7a`f\i1!;[YS0Wu2NESS1?@T4iXpZCR"CA#t 97.507 + Cf>fOQlMZdLG#Y8#7o8;?_[\^6k1Ca,@'9q<duCeE?5>i/_@-##]8m!.2P,BZ.)`\N%D;fm 97.508 + /Q:DN]FD29S7ETdR._P1T<if@bW3>O,kFH(!;YKc.(m$_oN*\RA=\EsH':T2!i0];&:Q1dJ 97.509 + 5lkacrsLl0Bs#9miB=)R#V1G*/6[Pl#^#ZKX#I)`ZVu8Wu5Go1>X)OL&D6`:Zm.5XnBkHpM 97.510 + e#JPtVcCK7gc<$>KtdpKe*("jh2q046hU_(e^hk@hC0.i``I]\Z"GG6YgL'2oHa(nhEKX;F 97.511 + )DW7DKa!91R0E"iFO(_Y19!>$CU.HL-%UrdM_jIt]W61bfK)B(-;Fo\fS!GmF_](Y0Ggl9/ 97.512 + k%DLT#L<<n]#!lE&!5o]T6k^`FTBt3DE$QnDV?]cj$BTfDE.nR9Ye]Qa`h@(G:V^7hfEX)) 97.513 + CrZTNMf]m=>SE&[(d[@++ikt.67F5K`<!1XTf2H0'a`k,j/J[^8)>!$d!\`I%H=rP:uMn'k 97.514 + _O1+T.7eMY,W#JiY]qM0oi%KNQB27rlmaabCQi$6%K3u>6Ucm=+Oln5jT?q&0'X@iUH+["@ 97.515 + */'3:idE.^0m*d5)JV8AHV*Vua1B+i5&sAAbV',iGcCi,9%J/0o-$#0<MH7g9L@-koB*(np 97.516 + ::J^>p#l9A^E_1@[[JEE8mNlA1=i+s_VJER@*F<%!9(TfD+Z*bNj\JqLDX/YUS0_5%UTG_1 97.517 + fgC!kBTkNYmJjHT-(kI,UXhG0nQko33U;4bUJTd5CU)@Bu*<ojiJ^Y`M<?SL[*+HGE+j(@Z 97.518 + (`2``%T0n`1*gU'knkSj*FZ#eVth($:(i[q%UcCSnRuaXrYAn[#R0u3%O_ls\/)nS_',!], 97.519 + .qfuN4"4-_8,Q1/i=O:C/&*E#9ea3!6UZP/=U(2J*AI-Eg8(oR45$k%d]H#E"4[4cKB#`1* 97.520 + E"j@:Bkc(`G!'6>ig;@CYR\N;-;Rb\Od!^qLWHEmO:U*O;1`JPRn6qEY)i*`DM\1A*;2Rj, 97.521 + $`(rc%]"l'`nh^'MG#d$rLD?c)OBFJ:%d)4KHmb8YrHAhm7ZRS'iB;%*'<#S%j&]`rA!GDm 97.522 + ,K/#VbmQbI4bZ%>'Ek'HY09]g&1M&IV)(H.m#a,$*!8It`J?R,j'sbnnkjUpBDAj[c*FUo? 97.523 + 6)G)>;`F771pIl,@(7#o3Z:;E(dZICP@u9Cf/p&0"V\^6F2^7O?t_k$r^jO9;Ze^hFOVGGn 97.524 + P^)KO_A#fW!Is+&&?+$Te6m-(mi3NR`nGVUWOTo.N"8G'<f42i1b.ErB=,('u6mT6$s1C\; 97.525 + A$7[c)!2ZcPRV3CC/9;3PhYc%cbeSf'iD%Nr]31<q_L`X6-rp7]/P"@VuMn/$Xl*'k2JTp? 97.526 + %HB0#!C^$NoaOl.4Qi`:)g%J5_`1mBJ_a%<X&8bAZ'Vu@bLgF0nP(SP.RJP6\sE7?#B4oh7 97.527 + mPT;-Ya?EPd%(#=c'D4S@?ka:PV$g`a%5o8c?5p_('o'L8cLhLM9H`:r$=I0a+L'ngm\jp@ 97.528 + BN1a(2&/u2(dY<:Eis0Ze410,%"dakYKiRKJH?^jX<!K#-/lQWJ`?lq,T.,'POqn!'7V)IF 97.529 + qS3p)<$0Y9+Mtp5T4c])`;RbKKq$F7b7X0+b9n<eV-l.Lt?Mb:r1Ks!KB_1?E-pJ_ePbLmK 97.530 + 6.(9Yt]_4jn=C5pog!df*#D/TNEZmImmF!@9<0:SJK/e*7d$$4Ui9M.(?`Ttp`ZM`Y@,?M3 97.531 + Vk2=s.56W-^")aW7"Jaa@>0H/Gd<=QC2^q^9XEYRIp)[Rob@DnF'll3bL%mcHaPuC+`:_uj 97.532 + ?(L^ts/uqi8WFW/2.Y34`2>:ZsYtf3Em<%\0N&onTpo+8;S1jP@'ZuF&;-N?T[o3Mc27i02 97.533 + bUq"J1;V$K_0#Xoh@@lN63(S064Ypf-4>I#&4R)e@@lPG=[U'u$Wb'o^]kR_a_S?0Cu]SDZ 97.534 + DB"RDARk=*&5iN@9C5$ndT#`(]e^uE<]%/c5_E!(BItb'QP(!ZjBUsDF\(A5_'VXp^Q2>'T 97.535 + 9F?U"".DKeJ!;EpNQ%QSfs&d;u6!?A>m/_7CPkr#;>M'g\c4Td7*GmL2f.$!*a7<N%%B;)% 97.536 + Q=mIl-=;2k'3cX)4_Vr__5_45r4>"g(U?%CM6$n$3`9Yt4W%=jf_i>)o6p(L1f(^Q3Cf0*5 97.537 + fkQ\N/^S[:tiO+&W[sY[//U#X9F2\^,,S8q+$0?L;Vab<MPSh5e*6U3HjIm4[5TDX<)5U;4 97.538 + QOqAVh@-'W(N$n\[O*%hgDe[Z)IW`"/_14nM1VJ:+i/UEGVn#Rc\&$``7M:8JZ]m:i88B9% 97.539 + 4jG(8&>LOG@u/*s-+BUTS41@U^gh+'>YB]ergh8gD).*GJ`>cdOcla3YcC4!!(^h5hl\_@s 97.540 + 3*'4"nZkDqOs,hXIlSK@\B`34-Gn08lNbMtjQ935d99^b9]HI8i:X2Xh]0l55PHDFt6O2[9 97.541 + L47T%-@*oVPa!QIZ]SOK5pNV4$I-!Pg!A.LrX(mYIQ-@n6Yo`q4lF$L$-!;DFt-oS4K?;18 97.542 + 7C/c-<@MCb\Bq^+hTZ!?TAU0:oVVu7u^l)s.<2Gap168m#_p4>eqB(:P*<F1skGf6g/=:t; 97.543 + S18HA_m5ZfGs0^"(U8I:3@gM,A.2V2#+;/-q3d[sW$f*u!k-]X.4K9<Xp^ni(DEDR!?4sXW 97.544 + Gc>iEg)1h)%7@E+\0[,<HMMriG97f^)R0b*\4K_@fG2V'Yg=dTD>O\,)8d7ZF0<&GaGI,3, 97.545 + :ig[MH[*#n'7[fn:W8rWW-<#nHV*!N$Q>+XNgU3Pg(`iOg)pBH>!8`s8CYcf((=6K@cV)3a 97.546 + *;qIDc`-FFYOV3';aTqZG9"fJ)2;spuig4cH6d`IeW)[t:2#X&;?#Cp5b#s`GF&GR*qjr<u 97.547 + *;^'.#!Ts-M+qUH?JAHFARG>qt7ZpS-)BjGsqQ_/e)_$!N)aG@F/,C,El)8egc]]qD/gMBE 97.548 + Ae])Ghk:"9eHE8jaeE_K4lC$soA';%FH"%#'k(Z%eI>8`IVu_b)Z!O!Y!*\R"q<+-E'"Ii1 97.549 + `58VnBd>7*9!>'B@%VU^TQ<s[JOC@,%IRU05ShQb/)gSQ8Ob,hNVF%$c.;E_6HrjE`AiD+* 97.550 + StETf<u-)Ao-C#VTVca'l'I5q@M]7`!&pH1M`+EIm(-]B:RmJPEdbD7lOp]_f\_gLTBH9d8 97.551 + 1XFFfer246_pF_RcE%$dTTQ^=FNq5.f=[)$2ZJ97<sRj]E&-PJTSnU!-V0H%E=*-A&;].Kh 97.552 + *1));HGo2bQ'2c+]kG#Tp560=S+[-K6%p:'82;!JnHr\.5=g$9rEl%-$pr'cFVA[5%IA*6$ 97.553 + "BDq!!r/I-XPp)r!SP(rT\=Ve<Pb9L.fd39UnZSd76@Vg`?I_*M*ob'%;YeDI'pqo0>4WDZ 97.554 + ]k?"15Oq@#^h0_ToM4PHi(^47QZ-*D'4@&O7=$/[.*'S(TUmegKHTg9jUTHUY'Gr=HNJ(UW 97.555 + m$Ad-.].]a,Ik&.S4n&_:HU..>?M.FPm]`LL:53O>-3a;[FH*T9<tiN10R[5mpjg[fKHV5R 97.556 + taU`#lW'k'KL5ml;t"$,/+O<fDn&JZCXUusk@/iUEIX8>J]a3s2P--!Ej2m3[$p(K"aL94H 97.557 + uq+Jt\WR1bSM`5!XY9,'3#4V*?,6=>E[^\XU0n_i`,BMKM!:nZFi>LIRh=d]R+DoJ][\m=( 97.558 + 'RE"c!Q#dDle(%lhu3Yq]4k/hm,%j1]HOis(@9]t?TJ"T(4+9h-67,jNRd@BI[1`c4`/6$> 97.559 + 3W2M(]c)u6(nq)4<=7B'WVu_^r,8]Zitfj'4SJ,!C>jVXlccli&cnSlT(eMA/&9:&QidQ5d 97.560 + Q2KA'LC36&Tsmh$LmC_9agh0KW)JBA=F1\'JTT-.&q;OKUqCBbrNng8le?rTFg.g)8j/&F, 97.561 + 8#iSY[6Za-0BmG`jQSmE.\l0]V[M]N+Q>M$CDL30@H$/g,2g728(!#u\`@Q,adU"8G9/f@t 97.562 + Oj*J^%OVqZ&"qKUU\5K<aeJ&oD3ID$sl_1BIj<i=d[ka+_V2s:G1[@>uNM]l0L.0e%JC?84 97.563 + ;A)^uLN/9DRWq`V"#@mR.$9Z&I0e>m37O:d$(FP'511a+fBo\#oO"7?iNN)cHhsJ:!l(r[T 97.564 + =+M[\Rh24%iE^^"\1OH^E$-TNZg:n+f69VDJIILnNg?5+V##kQ".?*ngZ5QM+SUK65gcB+: 97.565 + XX;\aoNE5N*0@<%]$tLI:&5(mIcE'oPN@&X_'c3?=/Nj%7?(!_F[>8`%m`"KklZQV6HS)3i 97.566 + E\24I>'&LZo/o($f[SBSt\D.o_Y-W(:?.BRW--S%fa'hL)R;l\@teXFHpY?e83X-NPsEEH* 97.567 + SXNVpniQSC@6(/[*1ZM2#O_q2LDDj!+f%"A.S+!hueoQP_8$Gcj>?RKN>,cBe`S&2+AJWqb 97.568 + )4\]aW2_3P<e_e*r:F9+,Yp"'8m0$I=h>U]pVXi#LYH\?)kGRKH+i*Rp`(=k%uJ8n/3+>L< 97.569 + 04r@j)b&;*g][%ea%AT*M1l$\_Z^rhqf1,NUc+Vq>ChR=,lqPpNQTY+.(8hrdMVN/B:p.o# 97.570 + `54`H[%PQ&l[d!PkofNZ+2$=TE%R7eu-A6>1r:HCnf;S9:*n+gscLL02GF(Lf(1=$[B[;Zf 97.571 + I.6s16iU*sPQMunQN5n:n#9MV&]3J;IE7lfrD89,r\502Y%P*1Q?A;_g,nq<a,T'(+E`L4a 97.572 + IIT[Sc3@\R%j2$+*$Y>F8*u.+U:sLji%,3[7lM4g>#3EqY-CA<Lc=R^,qc$4Xjlp)nRO1>] 97.573 + ELWlRkm9sWgLbW"#'l#?Q%[hN71MbrdNl089\3'7b5#?p#)2:+/"'q0p1tJ^l-<lX8"%S?+ 97.574 + 0Q\&>?:F9F'Vjija,pD2?HJ^=CnUm?Wd"jP@[m?AXd=8p4IVZT?h#iHmLJQcYG\)EVjG(pB 97.575 + >kh*bWl.<1AM*Z<kMZA-O33-#!?>R.,eGE4UhXoR<9A\_^SW7fb53RNnKL@1#=%B6M8HAf$ 97.576 + /XiULG<N+NAE7%+:a>]6)9U"k!da5-3H46N2-?tABE;O`Kq@"jpX3J!TdA9k%ehk*E<k'!4 97.577 + `Ohb<>-BU\dR%u^q>Rc9n==Jsrr8CIdo6FXnL:T@3@1XY<Qq@n/WDH46"aSI.(s2<\INKrO 97.578 + CuK3n\^Y@3F]g]#%:tX8*pL;Th7AB=!;J5c`5r4$(<&#VBc/;/hKA3jB,em2r.cK`S=H8Bb 97.579 + 9!1o--^LYk<%"2r<GZSg30O?CcrQga):NTB3L[q7r\_pR3Es9LHoj9>"9,nC"RRq4`c'qpZ 97.580 + >V;F;4rSZ9o-l:rk-)OZ.35`VuZ6+bg/.Zm:sTd+De@,]TVb(+0;GG93ZZ6f@o[l1=WM++o 97.581 + jZ&tc)TqcN:nk]E>M3LjN;Tk#QMfRG`/H+g\QSH;L#XpX+6>mBem0gm^4)?P.P3&+,,7MtY 97.582 + 86Z@K+GOB>RW9G;!Zrsm>"tmfT<#&h,'gRMBdXc[Z$E[u+%Dcp2c%+/</(tQPpjiuc'LR\= 97.583 + (*c4lOV2,&9/j#8niC?d8mP$U4n19X3Pip!a.SS,j#eT>F9;,3.K:.BE(LKtd/'KI3+!p&D 97.584 + @M`d/qo\O'+]aWL2hk\_@m98;>'1opTF3rfQ[jDIIN/'?H1XaBoR*QR1.-s8S!4.P(jg'&& 97.585 + J&H#2%oP6I`RQ&W@o$J@Q-*4L0S&@+6*.WX7g<1'BN3(^=*,B0M4qjA`NqWEAFt+<;J. 97.586 + ;riJSSU`OUm<\dkQ1$#2`V=H*nV,,$h5)i*'ubR(O4B%5S)PBLk=q8#%'';C?$mIq-YUD/b 97.587 + =gkrFuG:UMf43,.-&n=`aK99R6K!7ZZUBk098`!0sE9nYK0Op-*;CESbbRC[<&u'XKoVdp& 97.588 + HU?@HL7sAC7[/]Jj'6;Yfbm%X)jD=o16VlF:^O+#k9bh-QOV)G8=\sE*GRiK2\D2tK<Vor_ 97.589 + *Soh\X,)1BIXe6S0JG."r]seTFk[U>RHe80o)Fc*-2IT&dbZn#/I>S@g##N0j5:mKgAG[0H 97.590 + &F!`\doRP8p>??B7t53GQ6KY*ISM=*jCCCXmd8Nj`u1B25n5>H47%p;7o;Hp,E(Kc0MGkm* 97.591 + m80h44b0U<]E\tQbpa,%MI6]=ft@B(G;TZBTSk/U=<;'42!=:"P&N%cEM7g?3GU]\tl=_Bo 97.592 + :mEm3^(A'T@qf&;LA@rkukZ/,^2BbNiHOJiK/VAr&!fH!3#(l>*"`mE[A[%UCK,e1*<G<AS 97.593 + #o5WJ]oA#F@OOlgBRt]^k`o]*$3e4\$$U"@MTMfA<qYLfQhLGIRTqe4AcKQ5(B\&m&4LC4: 97.594 + g50q.D!/*KMBPK*(.siN/7VQ_GE3-#]OXP*$e/4:u<4XDU++?05,2>@L>Hee(Uj$7)`P6#_ 97.595 + LD`L/EOI`$!>?@Z5.4Tnk`RaRhX5q[fg4A!12\A'(,YkX3l)1+LqG(r@CSe521'07-MoK%) 97.596 + Q/<j!<t3/FQNUid,$PbYO('W-M-?&Hk+)j?@Bb@$]="^knF'&]!S_[7II]`FdJ'$3b`X?#K 97.597 + `%AH8IMpQc/7qhiE#]Nu!,qbq.`Cos$FO;*I""\Ru=/6jh5f9ifClg]O^c-6eitOgfCK_mC 97.598 + (rDjs#*_IlCOBZEKm'a<9?:V_@A^f["g]5EaEWc:9QX&q"kesX:Mfum9M?#k0;C4;MZH!s" 97.599 + CQ;o!i./pI-P;rE&bC:IcLcMmk5Vld33_uSW+ek.7B;^$?sMRedu1l0&H&cgTuBJrW$oRcN 97.600 + AV]B7i3ql+hOF$fRU4ltJ9&H;@h"dl]^G7bq6*UE^-R+T,B$6%*"J[\l9`KPqAEJhDg+)8c 97.601 + 7>,AUOqb\]mK#U7JP"sJLA":38G,@k9m#dQDpS=%CQN0fS8O=e%?Hg-04V\;Nl4NCN%^l=k 97.602 + 36aDLs')6\f!N7=+WE%SEaK#XjZCV4,EZLX/2Q!#^J&B[R0a5U%(*R^0FsA\PN?DM"JlZ>e 97.603 + *o5b%(P<q6a2:+c:&tNrMt!;sa*@V,6St?b_:i6%Go`Z6#FcAD01\S=0q<N$^R-8%'9`qUr 97.604 + &Fp/S/VMT5)c_u(Idgh#GTD0CPu+Y_Y?nC+nR^P@59(kgDWF(Y'?"g88a+db5aa`(]=4A*9 97.605 + >/8Ug$Z:_IuauK7HgtH\AP73m]^;#`Y%"ekK._)JmH)3#(r'<[lnp=EaTQ$6r5AM%$00^/+ 97.606 + Y+S[]`Upa<i_C;:ef^aoRQ4$Yot8urSO-Y&%L6Um-@Ii^jk\U.NmBJY7U?3a#BXK2[6J9Qc 97.607 + fHp/r^KkPBH!,2Pn2hi_6!cVC!HeZAn'c;I(4c!Hu:d5.m*<s;fL$3Qb89gnG%uA"R_C>9] 97.608 + Ca:@uCBo*&#.V:!)+t'nZiU?u$L7>X.]%f&\:qct-j0Gg89LTB!kSNu$L4jHJdDNmDM?/34 97.609 + )?(XHoNs=oL"Qu6``@!]EL!)#HTI<ZiFqIY]mJUlBjh>L4Ek@<'H/LeH[%e"s@9.-r_TnSH 97.610 + `ad!ru^s,T/b^5FokJJm_gcb!N4\=bU7%2!B'1)rs87%E2KG5)LkL8Os%94ba5+K+OsgPPC 97.611 + eE1QrA%L3QGr3,jTP=U1H=L\hWJ17AVj;S1^>+@;fS1NTRQ=tRBT`iNrF]PL']D+<1QV^cb 97.612 + c8:*_Z#KGd,&?pS8pc/O=Kq6:dKfEs?+P\k/I"nS5LM?:6"(4VaA$KEI2:P=?q#Q(\*JK;+ 97.613 + K$[hW3'E!m;?YWf\O^a-!S'8PP!2uE!o/\<'T=4K%u7B1L1k#4bBcC"E45R9Jl5a(k\l15= 97.614 + $JZn^8)#C8Y60EpC-m82Yu_@\86kD:DJ\)7tdL+r1HXjTh6<!#b4#aZj+%9U9HEb"W0r<\T 97.615 + `aAKrp#<b#mH)-ut(SH3QoKLH&:f&8aQ)B*45N"pc]1(g9H59bD,qa5^8*#YToXc9u/B8;o 97.616 + X7#Y@\3OqkQ:-6k[;&2#F/3i+fC"1Tp4=@NNLAHhp;6qHgR3+Y/+1WcR/Pq8F/J5?YNF%Wg 97.617 + b9^0VZQurMld6(N79_?e.4Ob-gUVLCF9hPGJk];>`*<h:Ra?X<0[+>cooEWe8"lNR>#YtSr 97.618 + C,LTtL"hTlN8u5][]sYXbDa!QJG-]LP6>9VJ/%<6p`>4?m14g>_JG`qo.\CY>dk@/S!d90k 97.619 + psCLCb($V]B_*O+p9QU;M)dX"UjWjbkt8YAV<2F2IHTL=XMJF!Djd<%c#UIXJE5B!j07TL; 97.620 + 8"bUpLtB63\ToY8%5$/.!kpHCcO,"`RBEil-XtJqageJiHrW;qoT">r@;5#.S,rpi?["E]? 97.621 + ^I!W<rZO<Drlm$)UZV$K%>)`ji]*<nJlK:;[r"J7"P]`l=J'1rBGX)!C`HO!r#:q\AW\L3' 97.622 + \/L6.8"iW,m`@t4"0aXV23/DmA:j^H(0rrbH`9:GC>FU?IHj@<N;cr=[8b4@k'I^J"W3$b/ 97.623 + 9S!A'2hMBD;$^<Y=Dl0PG/lC)QL,Ulq':J-P(]Au%P[C-E,GlT^5H)D2mi+4iqA*L63C*c" 97.624 + VOO%,+:UY"3&FG!Qi+[+En%BC/_ND<N,8M^^=)bk(!^a<Tn*rrEE;3@9+C(\;YE.)S8F+%# 97.625 + *Yob913ASN>=emF/n3e'[[6jZcL69Zi/D!ao6?oXG+4*eu;JLSUrS.!4'39@m9ef4a"GfR! 97.626 + k"-&jlI;A/2i3`r5_9S[:tL5UN'=gnT<9*:+?]+Ug;5W"6=A-M&e<gAGBGi0&s=9b%J=G;Z 97.627 + 8]`M"nA(\Y\(DqQ:8TgW)4,+Er=Q(H)TQaG@BiF%19208+GZIP(5u\t!"Aibi'$Q,h,.M$( 97.628 + =m1%^r:W%Y:`q=*<;<VRBI?"U7_d#rbk,VP-rnthB.>b,^K$J$]rYD^X]jP==OYG\jfTs&G 97.629 + lo`Nem[j[:h&,6Y`b)mLOac,BOh?=<Y4U;#%_@t5laj[5GIpS_6?I`0P@?G#)@T]1]Vh,3, 97.630 + o(_1P2huJ`mVu7AC3s1Y=s1Kt()X][p58H;?\(TLhm3>`OOY@lc3Lh(<'53GI;,eQlGY7e- 97.631 + 4C"c_>IDVJiPc7+I#J3o!5fbNi%3B1B"^i>%[8;<Q#L*[J[4d\+K"bTBh9,(6Xn8&@N_Q2? 97.632 + W<(X8T3p<m=,1UuK5LfVG;u6]Ll5FGXbX=)>h=OVZ!/%uY/a*THmJ($_q-T[<NtCj$qK1PQ 97.633 + qBj,lLW)1h>TM_TB#g-70_#[9$X'%%WEr1]2:L33nV[U)hZjF-#7,UQ#^?RSD'\uRJm+h28 97.634 + cmG#,Z%_uL1j55$5jatm/i-:"b</P7KHqVr>+T,iMlVg!%?fl*F[_6g@YT]^)eP8bs]A_,R 97.635 + @_1Y]4+YDq9V2(GK_0=?hOJ1BOde6&#R\?mlkO$*ca1L.&2Y3[0?`G)&d?g6JEtGY\Cn++k 97.636 + CPJUi"pXXj^eG)&n+KYTlW.Km43=Q3@F:X%2gj2;6`ETA0)j=WeZ[NAFK6_^nr>N$@Pi]!_ 97.637 + 57@=^Y#OU`1F[LoMZ!LgEa7_$N?#GA+63G#6gR)id-0^qAQkIbRKCCTbD1ao"ouTa+#KV1G 97.638 + NA1b'GG]mZ,rmidM4t)e?=]X:9_5.dp]KYL.HX`=Ao6&[/nejT5uoP4A6*Cg7<,QR'a!#6K 97.639 + t)D4G&*UVeJI.fKof:=mCL@!W8#]$Yh3&?id(g)Xp7+N9iRFtLh$X%3mSKqTp.CR#[&%b$] 97.640 + XXgkUC=54j>KR8[GoE'3haC@8m?a@S-!,kcCL>7S.:%NG.&Jk+M=p7Vc\s+jL@.(g&kP87B 97.641 + <"OW968L3R87;q6W<5(eAq=`/C!EHjA&g]h_'KqNCj)(A?mn:crW!Ta$>8m(2J`/Z<gJA.o 97.642 + ]QDan7W<Vdj4E=k";`Wt9<fE"2BjRu(2M:;oZ"k:WA5&h8+s4*B5%"C3lTrl&:ilrKe@l3& 97.643 + 4Q:^cc;0R#I>+_("_^egfP^u@GZQlo8SE.!:gXmO1Za2kR]/l3hD#7+lNLV;;W%OeBO3e=_ 97.644 + Zijl'70H%+?AYW[r!'Y=%IFdIaeD4eH,BpD'mkOHNWRk"`8ha8!\#r]XB]#9C8G#3[*-Pn8 97.645 + 8@?3eg,;l*sbRkZP=cG)#.pllFL`f#X<D9#@#"C*4Qdn3b'#CQA0GDX$rt0(<J"L<j<8"(= 97.646 + t`qXoVoDhcQoDehUk`qUX@?*Fh5Dm&sfS33+VrGT6n[NXFgC_h`D$LcsHZ4M?Hk]"oUk69^ 97.647 + bld"P#p>nec&dOH6$#E`4/V9WfTu0UOfD,aX2\6I40N=]:\7;QITL`YaW)V^-#(H\oHN^], 97.648 + ru[=fnZNdL^DnMqf-a#bgAGs\aj%n/CYc\ZncBoco,n9':P>Z]duD!b%(4"kKS0=d"uodP2 97.649 + %9hmBq#0%!dXtQQn\XBeHE<@6q+0#KP-KTlQJ.5ni&K\kU,n\7tf2LBZE('^H<UHfjY1KS9 97.650 + lI/M&)lpiq)FXLa[^@2D.pg:ND;H!pCtb`P7Xr7u)V:$s6L4`p4pQc\<9&"%:*3qYaU7*hf 97.651 + oY2ZYi`3M;%SV=Z-9/*-(eVcNJO=WH<^gBUlLXVhA@]9-jVoJ^!K)prA=F`^9HFB]UaL`(l 97.652 + e56:g<"Xk[s"0laMG_D@++rFU/^D_b7T8.0D0'HU5af&2N2-`<jp&B(RCI5C19nLu?F6@W= 97.653 + Is<'M>4MW;QOZq2??l4E,Wu]O#"WlN+>nc/?XQ\ZJY5Vg0HgLj<.\IU+@o0-80A%k15'%?" 97.654 + b:IIl6HDfN<q!;puk-@qJU$_cuW'r=B<Z?f9@8:B),cVE<'Ko:RHEac"Qc+\=VCLO`.NYJ; 97.655 + *M/[FV!r_BWtqCk`KeK4q7ZBZs_3'80I3!ba3;YXB=5W;5(C"NY@k-OQCNPD0:b"F%$rg0t 97.656 + Ks+H5&nL1!W+q`jo^[2C&fJ;:TUO?%ZK[JQT-9i_&qg;#sZ"DJCXQ<8%"LB!B:RJD?HSdP& 97.657 + n`&-!62nL1JKjZlmE2A8"5g*/n`1:nt@Es.#AqE7m#q]D4UT!_29I0VW$F;9c&&S9:E-G\A 97.658 + <S/5gG``-leU=(D&q>3*WFfOpL!]#<*.gm(T2LkX1X&:g#[=#-TP+R<:+*0L>;o"_0.2D)2 97.659 + [1[7Kn+*tU!4j-<rUfF.[Y5*kHY+M1#DZ]s!_:Zch%GQom\poIq\7u^\8K$H&%K0@NcJok* 97.660 + :FQBCda3aUtHW!jns^Bdf+iQ]o,_$\h#Wd.h+Md.UWn>K>3>(mI!^&;BDjoR]:NP"=Wo6&N 97.661 + &3ARMRgmDtLF+Z#Q]B%)%Dk&ibW:M8/Q"U9ZJSN0g\eT"]%W?qqNPj3#)]KC9lfX+8iB!kj 97.662 + G=)6@`"bt!+Z<;"pHUXg^CURGaf)(-Vl#Tm29UB_sjkY9nhf%-E"pY<a_I7E9Hq#IuMoK7H 97.663 + f_gIo-'OlaZHp2$k;;nXB3uPS_sR>rb%YtOI7C,7=]qdEdTI3fGd_U,p=k#8kB2f5^##kK) 97.664 + F7P+(fU4Zg3k5X^dpd5(0A]<prd/.&kI1kCmMQ_G@]G@(r9<i/h`IRk/3J&o\KCmds(EVq# 97.665 + s9g8YUYs5YT*_)P77kh"ST\*!l\^co_mC_+P*L#(R84+UAfZS/2OLd(D(A_bf,K%`?Zk5nK 97.666 + opZ2DtTkJK?,`DJ]`d@[ZX@2R!\dmefq,)LEo$\Df)bXM&lJKW$.\bpmuL=p<>Q6PO7r4aj 97.667 + $?tkjYM=Pq`/.o[8Sg>72CQ/D;HLEaJ&jeG`Aareu)bH!CTq&H7aZ.3e6/H"1_\AW<Q"#8E 97.668 + D3fl$gHa+b*=5'Zd-+=p_D$5P7aUdU+\:$\SLI1Ze@dQ.7$08i'ZFnlI*tqN*D'/$jr&Jcb 97.669 + Y;fb;cV@qL34Dh=`?8*PKWSu$/nIE9+V?Ei-$k'3QcZ5Kd!l`N$\U&<m6U#66W0MJAbh2,t 97.670 + Y[lS]A]!0AF9:^cC1??-*Kqk4u5b$t9rj=UX3QenZ/RL$<p?f=g\TNVD'sIZ9]iIt6E9*XR 97.671 + GVfKKn#iDLmQbXD*nlP<GSrYLIObsO%3N?Zlhn%2$$N.5=4*_<fn#AK>kNpj=DjCQZbLdI) 97.672 + 6OiVIM7sWg9<J/*<@L0fD?"_Appkfq(UU\`\Q\DEUHQK*@"Dd9f*iVSY"%KO&SE=gGJHe!J 97.673 + HoqdL\_M>g]0=WLm8,g`[Zk!@h71C]'/Y+(HbT$_mp"ZE^;/7T*7)T/)<uS<d;;=eEEl\'l 97.674 + 5^NRQ>lAaT'jcDVVuDkQ/]Sn>UedmjssasS/-Ak#K^d`)rmU8@9L/T?mURSJJ(/7Ar2mtj" 97.675 + ZB:hLJo0+9VC/#DiSQ`R.gOKiPsX9Ft)Nq9""iT;h+M(^Y\m63ap0l[.Lg_=7A0+0!$tEBa 97.676 + b*T,^<LnpT9<2ib<k(oCS_It-u\*X;_Q?&h3JcP4c9(P15t(]qd.^N;S"7p,L#_O,3Fi4^k 97.677 + j$U]NekoL0T1,XhXk8pRTBgNB%#fCI)5iu2u#o.D/JnQPO,/@#>Qt6]bU6mQCciV+NX<jS$ 97.678 + 22BQX+@I'#&C&D\@HMRGYp2Zr@O+ZJlCh30!^>Y=FB(Z25\g_#0Ijqq/;7j*B*k7;5)5g%: 97.679 + ns\)%oH.O#0:9]K'h22oqX*D@)<`>jDgsU4H#:EQ5P9N5:_:e'S15`(o$.C8=:2:c-SJ5^] 97.680 + m=2fd%skUl:Jb?;*qY2%S\%SV[lVp.;e_OO&eB7g?an#8)qDj^F5l,D^3J!36)c0Y@mH>^) 97.681 + 1TXJlEFeK)M#6k&R\&4N+/2Bbm?Ma9<J`hLD(mtCIs_3-$qZFCYNC`Er$YVYBWh4)eoF\WN 97.682 + M38l9&%'uJ0NEOcA)`6HCe%U'&)<@V91NbLNGu-o<gH=ZY"r:[LDOUif.n<_+-<'Vk()JMZ 97.683 + `F,0s@'s5Hi3!L.kdV?[=aQq&LbHdt(`:(+)716W"f%H1B;6;O%V0>7#O.Tm_B:e?d\]-^( 97.684 + u:lBhOHO`*DY=m#cGquSCAI2;!K>qMX30JcY;f1U/ZN=eNCr1iV!ocd2b=.KM0M"TiT6]A0 97.685 + #.W4U((`0LPVF*lG4(1,a)8'1ggbiB1Ah@RA,SC<.HkdASHZiEj]4d:OQ(>RN7(&-nlk2RR 97.686 + SD=HuQ9/7[C"iu6!@X!M<CV3S@*%SiaT5/_*Y:9sS@[tsP[1Q?od#iaBrg'SJD`YbrgM)CW 97.687 + iP*GLU>R=q9<KR^[PWFI/FVtmFO[4''<<\2F&YhfP9_;jXDI=Hp_2d_S_T$/A5`H82i*(kC 97.688 + MEOI+jgA0=n0/R*56,if?_EO""nAL:mg\Ztf=q#P4#4`(CeVQ%gnG7oZ9/d3`>@R'r(4GnP 97.689 + _=]@"Ua0q#Je0"0([R5_m"Lq;)gH8cq,#%)M*\UkV=IL!CQt+&2diCLrT-7/+5;\?%C'08% 97.690 + @q,=9f[Q'$E7):nPbE[i?/]pP6#>4ic4T+?/UAqJ>3X@X/2('2[<t7JX0#K+fNK9NjK2n95 97.691 + 7;Hk_Q[<[OrTmZb3UEsE8r0Pcdm%cO?pN?OcQ:pB?3^dC(=@#:Drr$bpFJ0,:fcoCTVIF#h 97.692 + o3bT=Y!0D^id+SFeBUom4gI=PY/f8rX*>sqBaKcd"$)9)K\YS*omMfY4=_EWo(]jK=)0%KM 97.693 + NH*eu_q<+EpB@5q&B$7l:rTOb/9'p:Vlnkf#9+TZXptJ]/>ff,*Wq(4C!Dp%7,H1'g'i)j* 97.694 + LF/,VUaDB[e\UglTY$UmPEnm-Nh1oC_^R<Easo6Md]^%_0WU.62WJc8M3(0;"pAf:a^nCAM 97.695 + LJm^)=g9(SJ%@^rkU$)P]#MK!Y'[_0G>d,=cfp)a9b3/<Jl,";pZkTuQko*TPq)O>2WT&__ 97.696 + ?"aS^e^lG8^$,HiM4-<P!i;'a="^sEah,TmQSrVfU-^qOdc@9)9*6?Qc]SZNa]g__85p 97.697 + ^5r]RC@=-2/V,3[kXE/NUX4I.1?0fJ!CsRO=fBfYJdfQn$%fJ?>(X18E69mZ6Lq!fspq.?K 97.698 + ,^^,Bq#eXp<sZ[nTg;NU*6'u!*(.sfO2I\EK5aXg"(5/d^=hT)-9Ldi?d*ef2:sBI9'fT%q 97.699 + g#c-5)75X\;%e&O`*XeHr0STJdaL&:ia3<D+5UWk^JF5<&[.B6l(ai=575Y4NEQ[6dblugC 97.700 + fr1`0brFIm(E)0;KpYTJHAl8/D.7[J'U_cg3A6cu%+@6:<5Ij_&s&#(_R)e;3rBUWd)#OLV 97.701 + FsTOJ0Ob]8^O-b&,<fa7_,hen#ji1^J8B([=[Pb]dZc%u0\9G]tP$7O%hn(@bs$l!Y5Z+p> 97.702 + VYVuWf3s3hnfl+Ucan5cCqA=d2MBcT?#>B$^8k*aS*bfEtj_u"9ed5dO*MLoo%u;;n4;*4D 97.703 + G"SjG6!+RA^ssVC5cbe_6h6s:BH;Z@)iq350W%8->meP#1S?$%7][$F]*e&B$kU:g&4FUA, 97.704 + n*AVmihH3i+ggE4r;%QYjfq*623kWWljfM#"+or.LI65#S-s!Ju$>X@58G2V%"Ym1<RD694 97.705 + C*Da;Da8?XV`*^g.S+iZ+'A'*O!,!8n(/3YRW>L@I&6;+D=WjO)!RdLaY;WAN1"a?/>t&2. 97.706 + f6A.K0$m&U2u<tJma@I-.9Jf:>W*Nf0O5dUh`DAiPAi$28A6"CZuE;>%ZlQOIQEMdKdCDt% 97.707 + ^)\H^%6o$SR[i<`0*!iSRNlN+g()2<X)WP5BTktdDf,G6Z/;^)<@0R/EE#2pA$>@M>bl2)q 97.708 + C_bpC$1Ipg8EUP8V"B_d0riM>"J@t*e-Joq(SUi[iNNN,.KP\b)fd_TZ8X"k4!W0;^bNk,1 97.709 + -g<s`bo6+(ZF"?6e*A*.Pehc-5&irTn=\C'.2.&/"rOJ@163J(^^DH!c=1(E;US#KFEC2(L 97.710 + arqEe5J)\gU5&)IZ>i6>dYrWiop(-H]X(`10$MdMbE7-B[.&;TC+^at/,$/IZ>Edap(6g3V 97.711 + 18aO!L1a1T&mYqEk^0*2t[TUH+&`]NGaVS[?jo*,I6$4ep'/n,SPXa17O)B%!F.j;D<ThHo 97.712 + o8-qOR&tjs^6"\W$:?/%4(kL&@cN'bKO9WO.+3&+?_#lQG4#P2D-VMJf5U6]cCEdXEDBRa3 97.713 + !cBK]MXEb'%,lCi;\M-B\q]/S3<19a5f#IEM`K7Y3X-.eUGf)kaZ:du21Yfq#oj1'W"T0Z$ 97.714 + c,LB+C5dl6FWYM+m,R=kB[b>\8'I^(/p(qPNG1@"ppL]'_Cn+P*dT4dMcPY&E&!?+Jo:C7K 97.715 + FV;'4@74U#6mKZK8p`*[1,'L4g.HrY^?_+-&5t"<[fr3Y/S^0O^!i!cA>Z8jX"=ct"7/oN! 97.716 + ;o//KG_$,JS,^d\c`@KQUH"+VQqe94-a<BBc$-V;Hq`i&lM\>rS[8JI@[70tRY<Cpfpid_> 97.717 + -:bi$$#$_-:!oP7'^dnU8\u3=U"!eulFN6H#q+T;T61-9,eCFp?g'Y4D$8g`HDDD6c%KM6b 97.718 + #iJ#N+jq8PNpVI2*)M5\5g0SoGU>!N#5"le5XSD0YQ^:5c2]"^#IFRJ.L4KVc<uG4^fgn,* 97.719 + WY+'"#F[!e=T]l*dE7Of;>V\[9$>8>?03[W8pQi.l?=kb2i5'D\V1<2()Iid7%I33oP3`<I 97.720 + 7i'ZiGUZ!$Qq-JK",G_Ag>P$ils'.RrmCC(T>4&s\AZ<OZ(o*d!Ze</Ja&FiPh[K3T/;>nt 97.721 + dF<1?q]e7>7m?5:"T9,JP1Y&J&p!4CoiJ><D\Z@Pe,W^-Cj!K9];Op9lE!MC>3p%;aYZj8Q 97.722 + 20N:PJcm]=1-XtX[@fm5Uk6D_ZgLDQE7DM?&<Z6<a`WUCM4k</$FK,=,]Gj/@qkRs>_%mq7 97.723 + _unpM$$K<]:buDYE%g/bBE2CQ<DR,uMeL\&BbEL;E(;f%P$mmC&GC<:<*;dXnS6XN6/]Nci 97.724 + 26^Xl5O^E,N*GBi?)hNV,?/R-N`'=QIeZ\+9L-N(ma2rf&pq:lYb'"?'=;ejouhAqaY$'B4 97.725 + 7-G<0e<o$YNiT8kj>H:omZQjs2&l!FSiB[R_)k.PLGJ#mRMMiIu?=pN+qNF;I:)2Y1Xl6sc 97.726 + -IA<du72+m^2j[rM@@A(aOJB&-d.N?GY"[G3`=!q41S-+Y!0>pTnf7lU$RdsNR^+u>gpQdV 97.727 + EOa5QNH3+sF@IgC4R3[!N<T/:O<_*_0]2eA^#1`@$+:2_D1).Pc)ZYBl_,#%N)dcSp!u=E> 97.728 + GNLUr[-Dk>ZjXkbGP?%:+:_KQIi&9<<p+dQX#el;;ZoZd?qk!0"P!*MH_B\3:q@(_[6gRS" 97.729 + 2HAm[Ik.iohmQKJIa0AG#CX`M(5gIKK)na<H3,A6\T(u&\)=TG?%l`eeXO[E<$;8Z*a5`q? 97.730 + nF3'K"9C@AAX>Z!2&H%[^Sno@."Z%n]m(%i-IJ=Jq%?TnTcaMPUZNPeU=f,?tkbD7+\[i6* 97.731 + +GPTCqo!PhoAQkgj4O][qKig@%BE%ViF`Yhn?Nu7I?esBFgooDN_$[DhVR-e07.L(#C8jEW 97.732 + :E]+A7a:Yh:6f@eaJUN]HM0NFAO81Sq=Z;P$h2dj`O4cQj+bu;I-3P2^D)H<_i8mjE`_k/H 97.733 + 77$>B!"K&f-]!d*+_4@mi#)VL/=f)-PZ`X+=biB#Bo;_D:d@,FTM#A5`"$r;()`l>L8`%e> 97.734 + 9n`p$,Fpj1qEh,BF/(,#d?&i@!i2i2gMrrSJfnI=k5=<O.Cr9%KP2oE&+^5rE[7pc,h)T5c 97.735 + P+*JLt<+)Bl<b+9A-H((<IB%K^;T_!cJ[Zkn:8OT[<ei*i@1rM&!&UDbq`=uIp,_OhJ$FLj 97.736 + G!EmPib'r8bkPi+im2:ZA*?:#?^)aUD@Entd@X;UkP-C%>@^g[K*>XJd7#9&2/d5RnJ7B"q 97.737 + $W>[^GZ`AEKP!c&a$m[!aer)I4+:MGW3.YA96m53r8gd%?"U#q_3lXN$6Q0>JC>+7E(o=4N 97.738 + 0o!M%Xr?&t>3>4?h6)Db)&i'4)Y6*-5H@(UFlBs:;i!7Q2mC*lYl]%]G!lI2S3o;-(gnGk= 97.739 + ssRl6*B<!'0A!@Q19=X0=0CsgtM/&"=a_i9;o8RSXQ\i;m2q2rMJhh-R!Q>;qOK"?S,JO;A 97.740 + ,Zl,o-QOHHj:\[i9t09`)2$L-WT.\JF>ue"aD3HI<Bm\B9I:S#<+FW"OH\\i[71;F9GW"OZ 97.741 + BCA)"FKi01gC)6oKX&QUUFS'AX6*D%&O]pm90JUP1'\.AK)(-D-%]D''u6+FQ'10BK4GbJU 97.742 + `'a$N@8J83/3,QGN)o:;O\9n7m!u\mB,J]Tu^rmb7'S4(n*Pn6n`"'OU_"_ZhUBa-!`5\pt 97.743 + @VJ269?"]96V#r74@<,]-,tQJ_PA?lp+=00[DR*9_l'o[r,9Z:6UW9&(0m"Qr/qgbX[F@I` 97.744 + Q#%!ggm\FMb/5\oD1b,goN2WE^BVI@XNK:gj_B_Jnj(rbFI#?4JfEZ^WIi<-N)^e4Jjfs28 97.745 + s,O`dH<,r,'bHrQDtWbSAsX72O13UWg[nbm!^/r;4lq8Zi(NC><8K'JsR\*[^eh`Va-(K*0 97.746 + Ce+AuJ9dBfCiSO+p`s3NXRct"BJZ_>b,,LIh&(>WF%4_EVhPLQ.@;B`Bu>q<'%Z-h^9f2N_ 97.747 + I4[;mCM:WBpe:!?/4\]\H$J.BNPaiAiHl$X2ms*Gj64;,JrKZ,k"4O%fZGM%?]]_5$N)8?T 97.748 + gTjD7qn\L[dOeal%iq/[4eVb$3SJjDg84.O)76Zb+lD,2-jY&1bFf8j*T.$@abHq(U47XIO 97.749 + i]t-h$",E4qAl_q1/Gm/H+Pa?0U'/iS&ir?L,T;IRcquXqH1;-_'ZB35PY:7L=F8jTAH#,o 97.750 + >HJJ_tiIg-TFSJpZ;)mH3LHd_[#@U2T%#Fm,Q46X:egk,rJ?+3EMrkl,'2I?Wq_\`6pLg&* 97.751 + _]4mh:cn`0lF.fL7LU25SXh?(^!FoKAH@o($TX`6[MeNE7H^31lp61)&,aatVu@VtBoM9;Q 97.752 + 0dhk#P]NrJ4H11aa*58EB!f?4?H0[S@l[49?r.X#m(2Xq=F\XJ%T/Z>Y;on&:59WcL?UMra 97.753 + #Og2gnAhrJ@2W1>$g:Wro]E5'I\ZRZbM8\KnGbT8D`^"MZUs%r.pj7>59J+!,L!nMbl93g# 97.754 + "lmd4o+!%gnbh\ibdphJa^?\9Ki.&+s6(/EVf^KpEG+P4X`Vo>spim+eHSu?C1%cq><IN'R 97.755 + [0\s*t"LL%npWpmh`dh$s0#&c"`ns+*GnOB==\&IF.XiK2]64s:Mp7,j>2ZsGI)NCMrjf^s 97.756 + VY+d#=VP$'W5;(7c&jc\;=^0raa9]hIJeD('bSMV^URH$VV3h*"@Zl1bnNBno>hA"Vu-?W+ 97.757 + _!$`4>UcO8GT@-N#fR6q=@Bir$Q<Q5<d:p!lm?ZLK[Jb)ngtroL[GC.o]"Te8\*a1PJ\ba` 97.758 + Qs;Nj4tX`O:DhkV59Z028K9`oZO\dSc"?R7H>CC![*`N.RU%hD;5r)\opX][^L=C+2KkA.o 97.759 + HLkoV!T*X>+Hk85EAnk>Y)=B:WS7\[Tq[55G?KhFS_(lMu*<t]=kC$>M]#PrTa1USmO=l'J 97.760 + 7=7]`-f39.JoDk'd8:[*(\-dJa*;ht-jJ5VNlW!^N^\Q6rR^q?HkrcpFbiU+3McNk(/?Ta4 97.761 + !kUNf_TXidaW-S#$="%9CN:D?5P;@;a%/$$8L]Bbs('umMcDO.sh=RdA$Z+K#kQuVbQpHbg 97.762 + 36s<-E<0nq'Z?2]e8h2&r.Od-HA:_no[&FJ5/d+"l_T8OkLeNU\GVi,L%+d0VP;K*q:,A-t 97.763 + -H3$]?Pji^]_:hK';YXn51.f;`lF;Q%bO;ZRkZ'`'QXX,.5F=68lE%(02,;$dT1J=W_=Ib5 97.764 + mg=IFN^[H,n`1[8hW,s[;*0/<]+%q<mu3!Dd6?mK^=-!9>^>4c`\(+@T]Zg#,'>O23tRG8q 97.765 + e-p=t(11UJc9#YA@E$e[KEO0`$b=PjP^MWD0=6CGFCZ]Y.?O8/7[kWFbJZps%E2%s2$beb= 97.766 + MaQ0!D]=:=2&5@:oY%Y@gieWkerW3tQY=r;DpC+)!JQ?csb2E"e"\=PpHA2tBlA)t%`8n6Y 97.767 + cABT>LapqEM\G*RhUlh(Qf9kFH2Fj?O\as6ZY0Pbi))'VpJ#$"&;KIS,3?B<9i`^K$MPjRi 97.768 + FC/f,#.C')Rdo4<,6uN7WG6c<ca7O@/S.ppH.H'*mMBW3$6gCi7"enq:%Q&8>PA*4,^&7hI 97.769 + ->l&K7[3Q%i6PV?j<+??Wr&(ZLTilmJq"paZ7Wrf\"E*]&O;j7s)DQ:5msTVcVAjY)2u,&c 97.770 + Iiig-#2*VQ@YFDY)]H8qVAI9d;ugH'bIp^UG=imIB&+C:AcGH9R[lTUu_LA&N'9=/YIO*-W 97.771 + Rof\Dp:b5=&n1!Nc0\<HV665SKsr[<p%qK-3SFA%*J2th-=TM,:bn,u'C1A_".0q&eQ,b5# 97.772 + s(aNL0UcKjmkF4s#c<!*P,**k;+GZUU$2_[b.tjri!YA/a&o/XEBUkQWl9Z4/5A%be$'aEc 97.773 + $@i7!Jrh#o6ae!-?Fp8@;">bM8%s<o)Ol+^!V40NR/.?Ib8cX5r/"pd7#(&0#Vfkc`Aj7G: 97.774 + :NNI"XF+<0p<Jalt7mt>ST`6Oo]'3:Q>LV3>]#2W/8Zi9JBk+4L-$0'p1e:,UH>YoKsXj8H 97.775 + 49>&k*J484&muClK&s8L\>#YKlam7ZpM@)H_ljUtUW]0eQ7r\=A^b!:#gMr`)2P&ljVWYEW 97.776 + mom=r_s(r-_E%J&X`bHbM$-1\>C;Zno#0o[n^>$<:&>`cV.pdAO)KQom?5=h_l2H=N@O_#B 97.777 + 'b_ZfqVKsAOPD4'%GH.65dX6$jNcc-54$(iLTg"[N'1u8H1+0<<T+[f>&7`:/kO>%8!FgT[ 97.778 + M?p;;/I.kA,\>?,R6sK@&"tgJNXg@a2G+6$UB1d^6IRe7aik;A'/D]_Jq"5k6nt)t3;BWn: 97.779 + /R"o-m6^opq(R>DH@8e+E&$]Q#\!CarH/1<<f-<8LhMd]*!C[%](5!(82p091RII7b%V>4V 97.780 + c)2"a+@Ob/u88W&UWRQ%lP'$8;d$ksbY1U`WXB5?h?oA$-Qd\Kb:8p*rIuY&#tsMs080C\< 97.781 + 1]('_TW3sf>322AFOp^^K4Oq]HiM6[mda]U\SASec@ZPI/t=h?\,D"XF-(%s)AC,@'8%B$T 97.782 + LVU\k^=_hksYHu)tfbJ'+Cb<'([h\g4>Heo^CH?8A[g(XC4,Irp2936D-KSLER<*7gcajo^ 97.783 + l!6BM?pVc`\*9sr?*J["CAY4WQ0.UC432]JX?`=8Q%"A/flh:Vn%KUXq-Q5JI;cOf^DH&2? 97.784 + b?,`DtX.G(^C(L4:-RX2@%&8-O!nj)1umO&&K/R$"5qFKlFI:_\d"q@D"Q(Yk>gBUIu2*X@ 97.785 + \7g0r8i+NPc9=MdA,!g:`%.%V%V8NH)Bc`u*t[A%[)JEV;W<)$_<q4Gf2@2Fkk,-RE<9R=5 97.786 + ,W:C.n,BB;6_Q#a<7/U*e]`#Q"hnW$>f)2BqY4NX"42J:8PV_r)!fpd&+DpB6@3G1GCf"h? 97.787 + EcNBLsA_d*RF7D$/=LFpeqo:d?+mu@6*7iYOZJdFG35+m@7;4n5J:]\G^7\\)#9>gh`dX3& 97.788 + )M_0%4Td#f*i#_R)cRgu'<9:=N*Be]=Z,+tDtK?uf,E`#Se*!ID>^IBqZL*h42J).2TO6eP 97.789 + rttLn!>q$'%L2Kf';(e@C:^C)-^VTD7V9;[]\NC"r_gsM%s2Z%;Q3f%_(jHft2/<b!m9UmI 97.790 + '4_[!/47g7-m*m</+O2t[s)6VDiH4pXga0*b3ZO+gb>XuCSY&)n<3;V-=m`+&0.il3'fnWL 97.791 + f)([`E.>R-91GcSpF4VSn0oECGO,Kj?i`>IBsPB/p%,e0Gkk-4H9F->:tq;EpcbOY-*Y)'0 97.792 + 7#=mt?4RIb"R@XO`oBI>Bl%T\H'=tT"NeW`%PN$h=&4YOA?&,[%N)JV>2Y-3Qn"'08aj7S- 97.793 + ,j6crc[npURd%k22)N[N!C$;V7fR^Of7K)&cF-%b1`Ilm"3#Mj_qB$:B^q+l[J:GDgUs4!m 97.794 + OTJtH+eM+b-9mt*aHu[W7Xsu2lH:OYJQBN%itRDWV.CONq7VHm$n$=p;ETHH]f];=E>Juq) 97.795 + e\NW+k]/1"R/T-LQN7F=;T^`nf*#L6MVL;Yp^Gq]B@"qb!(GR\.+e`-^>>&ej`$s%`?A_t" 97.796 + Z7RJU5:le2;2pjYNl6+;Pkk9&69ILl'>IiJC%0p%"R!K#3_LQaoTg]XU/rkMpe5ElAfKBth 97.797 + 4]XD>J^km\.j9qq`b7n-)^sISH$'5YL)o3ac'Ou1b6kl:269Dgj_/Q\FHl'V_`P1@K6()UU 97.798 + bSu?os1d%pR1OAT"%fG)-6j-XJcm=!BMZ3iH,7uWM+ebXEEJD!SLEKcM7_>h!8OA`K->f8( 97.799 + PjDq*#=@/c]YjY$.9[+>UMm:*fH.BT!D!OKJf(6*5c#&5HGqoOQqup=X@H-_sgo!"(K0l6& 97.800 + ;$Z*`OR'69lEo8#FB2%u`:ZN%KjCDCDipM<mPs_.]hsmDFlVQ7P'a<'*=?4@J]%2</$jb7= 97.801 + U%&31G&`Gg=F1g!.3Q8#*h#XWI5PO$28?'M,)4$-A"S6coZ:dT8$5FbV@&D0#d,qk>t7WHk 97.802 + 0F2>ji)+BFMW>n9f!H>MMJ%hSPP?Hn7W6`CiW#a#N(RV6>$u#tYcc52PMO\P'S9U3M)Ruko 97.803 + 'RX@VCh#\_*sKG^LB(J2?uJR=JOg3#a>ALi7"Rs/K?.;NaCL(IFGS"SM9(@-8<f"Q`/D^dM 97.804 + b)ofaR"o-oT7/tOi[H`aV9q1,a6>LPf[I#8T^6>I$Vm-RE:\M!iROM;Z%aV!J-m]!WYdpJ5 97.805 + ;3\HU$k3LanMoKO"j],g&r:`uDquC\!@!0?(/MWS!aj9VP/,Im[pVRM)A`m&cLoHpQ815?o 97.806 + 93BH;e_+TZgg94YM)Cq%TP\BC\X9=27Q]Xl;)^!"p>bKR`EjM4F\^s"(?bV[.07)I/A_ou* 97.807 + "b[ec<>fb-2a\7B0bd>O:`6(d'bKSbcbiI*ooY1DT%0H\4]]mas%+MhPYs$=+,M[(RP&?:b 97.808 + fGq\[`1WX=OGTc(TT.1H:%9:FUgVIC3_L_;b;8]^7(#_lcH]t^c?.FYD!4WAkg$!gcEuh2` 97.809 + 9PXlld"#JcK+H>gq&%r%KeKg2_Z7J5[@/biOuVM6B'S=AG@,!fM?e'#U1,3Z'PfVp.sW\^m 97.810 + ]>QCYI,!3R0/nc9(O3n19/V>69$jKp;khI0WT&$.+qEd#AF[V$p2.%++)Fd.IiF"V/oh&() 97.811 + +)d3TIR*>HmY'i@C7d<-5PKbdON(X\cjdA7f0[2dSr*RVhI;:Q`9"Wu+d'`e:f0CT@"YRZ< 97.812 + Q-(jC=$(:qB)e2ZcCer:.c]R'^]_KpVfWYf5dd[?5%53p1!l:-(^@Yr7&B#lf2D;,VK-`J$ 97.813 + 879\ER]GXDe$V2lCHVnNM$JGmdn5GESLu%i=&5YB<#H:D3rl.;5La*8;[l3ZI54*:1Hs>G< 97.814 + .Me-?l?*DiC6pJ<:llB@!5N`i;ocQKmcn9Y_!88#$#/e!?,3qHd.;nn3-gmeZ`o@`Cm+/5f 97.815 + uMIRsdYs]gU@%>ui*Ke9teh,tUCF8j:Km<^="s?"gqb71W(*23;kfK6.Gk%+aN!K-V_,@bC 97.816 + nbWrei4f&-sndPq;VB;ZJN9nV\3JU=)tF]W.#O;qUG*3e&"("Q=pemn&IFa]/]oFV?;=>N\ 97.817 + SN)ko(r%HPb"iZ$=*HtE*qUPg:=Ic.Q]NbcbE7fl)O7d#8nJ#'k%9NGj=:L@KE4pf3Q&3pi 97.818 + -kIpf(g=iheCD?OYJN/J<BODN,M88g;T57CV.#Q3O%N)=g"iE`V3"kH!a-KNfdl)c4f+!#5 97.819 + h_uT5Y+ViJCjlsXfngHg6*dcm>B5\Mp6[U=J;(;>hd1n7NgoJO,PiR]s$1P_:ho"O7fBcNM 97.820 + jJOW8"P=,)C7M3C9p2#[AW$gZfs:%CAR#TN`GV=oGT2/4_D<Y?X65M]Dc4XT;\35q6SZWdI 97.821 + n&e(i^>c&ru]08MYp7FE@@`6[8YgkDEU2+(VFLYGd#^9s_A<SWFYs4>fW%kYFZL![N@dG== 97.822 + 2NsH-M78:(8Wno2Uh-ms%FkO]-a&:I>b)gjPJDCR$Rh4q`hJM_<4hBMNl.uOIh@nRK-1R*l 97.823 + D_:p1?WHjXKn3SGpl94^^h*,NNV),%!o9kC"o\JYh>lIK1tTZ@7KrmRIJZ7rr&oc4?pOaPg 97.824 + Qa$_V?),Ni3j$<AceJaMG=oq%8I'kecn94#@R'#/9!!_<Q\`&(#`[hhjtUBmLVUc&NpmB@= 97.825 + \'g8Qc%j*Rt?5iV"A0Fr0-<aPi?Z@AD$)[NU[1;HB1sK?bk(<[cskqVC99ig@u"/,A0db$n 97.826 + *rNfu,RQi^b4k$n$>j"qZHke3lObeEL$N(,A5L+U&u0&pp(=<OOD[QL/fle0iMj7Y^@2DiS 97.827 + Rr*7f<-Y:Sj?-gK53BUn7A2)Ro#cgm]"'4nUA@3cFISAhLf]!Z@M_6tR?:I%`7qD,=_+57H 97.828 + cktkB*N/CBit)8N2-U+69]`+PjXsd!^pc_g%D]DWM^D7b-;cm+;J#@CK=5:(CZhE'.V<(h+ 97.829 + :&($Y%ZLFq?PS\k-f&^SddDd.qZT%job,8'>S3,DN'B\B.s\U6hd;fHj/4m1scV45\B2FEb 97.830 + D7qM"XU,Ya&htmq3$@B-)GZ..F@k8L!B4[b(a8q"05?L""V'BQf0G[R!9.Y\*$R&^Ec_Ajo 97.831 + -@I_1&Ykchm5l5g!JOfsu-!^;gWn5<]_O6L7\kJigE#(=5:N]Ubn#"V7:\75Y,2egj7C#5H 97.832 + H#+t/rT5#^Gl7Sdq2PfV-V<U7Al;jftAuFp[W9U7YC::,,^8gJ<Xm4K?lHZTuk-/UoYj3X@ 97.833 + lSc"`7^D>TZg1Z#lXmWl?F]<E\SHr1laFCj`k#s:]Be=dlfPtJp7[(O)M))jJ62pS0J!9U- 97.834 + <#n'l%[7<S]iHN2XGsXBp7oJUU7l,<s#lLKh*Nk2UCb#ctsQHm3^<L*n9R8eSRe+m<7(JL= 97.835 + U4-fBo0^mAAY*[bU8Qh<i5=D:[S3#2ehaheje!mOmJd2WX9qjmG=pmT/LgB'8TJkjG>3DRS 97.836 + ft^?Y.+mI&Qnm`t:hk4!9^nF%^om6E(N+:0_G`IRV-KC)fXY5$uTQg^#pm(;V#bH^EjcL3C 97.837 + UDta2"#4ld5!H8PMn2CF<7fmX2"7TY#n7N!qG6m\V$1N]WE0gq$`s_<[-uV`[!RD:0Y7QJ- 97.838 + &aun9iElA#0T,>2k\nYLBssOJ#/9Vo)"FK=nXgb?Y8d#`*:`23EVCLDruU_9+n?Enndcu9- 97.839 + R<^k,k>RolW1jg.fB@W#QSO!"%Y1OD\Vcn'(JIDLlW:b2\s"8O)jh\,6/ghPKof.39^r/o6 97.840 + (/se_]nI'kkG(kgWCL'<-%#3O6K<-m/X@[8&b0Pj)O=F>aYMmmDn$0KnS]\kbK];\R(&6<: 97.841 + )6k\j#a`YS2B9Sac[4jQVYs%%7ko#=e4=$;3@O&Yco<T1\eocHsm[no*J;0??X[`E#+Z;q% 97.842 + Y?.k4*orh`]B$!jZb'!c<on1q?PFV<D@]E8oK84*<!)DXbAp1$ZiiWc7Y@DXQn75c6(46WX 97.843 + f4F[%EVCi$QJYbck@;2dA@\m`G;ja?LNo'@FEGiO4bn2@Vg!?OIJ;oRPF"8mYB+ooeG$kKp 97.844 + Xan>7tgY8E_>T54F_nU07geQK"3gmpg8sSa,H)ZH?@2a4MQb6+,bBqOngAfNh;>RO,lE$O> 97.845 + uEcGrM)cLR=&kCZY#)q,>B1@uU5-R<dteq=)8p(Rk'DS%NC(\@8%)s.oKmV;/eA+o<kP062 97.846 + @``VMBHqF@E/a/o-fnG75dG_`8Ah`Jd&WjmhbqVSXV8$n)\?0:$\GE8`9=0af8Z[5cbqmX2 97.847 + "B83Zj?i,%lH\9+\PCi\0]R2*DqU^sR;>(&^&U\62kZC8C9g*lBao#V%L0PT]2p-N:^&0h7 97.848 + r:eO-(Tuu"^AS;brAW4(8(<h``-k_<rHHllLY109M.9l6m!%-2a5$XFh>QN#r>%_C-f4h=i 97.849 + Vk4ar\pKuqXf4Ij8N]RrcdQ)J<G=nkl.LFrjV4lhgg,&ljIr$^lRr5kOAKfnZ!ttqM41]'J 97.850 + ^;sX,8Zs&uTHqD./Hco`^]U>?NKVKjF_@>;/$k7i6b0?r-PC((CM%6=E^#A2YG=LdY]L32B 97.851 + S,(Q:gn;7P\14WfbVA5YE5Q;&`k8nCo2A@>bsQqV*j3Mb5C2k3WU;n:u_I6XB$BN.#=(6(h 97.852 + [;J>OaA+#l^W'..V>,=OT:49lm<3#&']jJ!0=r&l1PQ>F(>&@<H7CL*P\4UU]Mi=s]d'AjQ 97.853 + GIqFtl[Q]?n!G(?G56p3@W6;A?5FWCaCK<o4Jl13Qcs&_=hNm@4eL)7FBUgSQVAg(5H>N6P 97.854 + M2u.X&^`Hh*0G-T60L@>I?ZhDnhUuGPd_%mhNN7n2XCl(G<>>k]C^(fFmo*e`V+&?,#KG^# 97.855 + /=(HsT#bQd+^cH@9,0Ni,rTfB_;n4dBs=p\[ID?b9V+mXuVm$L[kV7a);=]P_M%!^E_9re& 97.856 + !6KEhCj`lo"b_,._$%)Yp.4V,IC$q1cHOXs3?`=YdD'uc!`go%jsMdWJIXe]/?\*N"j*QJ[ 97.857 + )37CApjEh$5EZ/^8aO3bI--;<dSL;PmN27uGP,taB7H`E-WN*4tSCu'V$H",6P9Ll#67tUY 97.858 + 1bE6KggeV8MYT*<ZWd2^3>'r]Nl#>To!OOC%.bVclWj(e/9#(m2\D-t0Y>_oBU]'!;_pj89 97.859 + X6-"+3oR&m'T]SJWDfEFR;9!c#as!N_d"XeNf1\<CjLDkTp#=;3Z)Y857U!.36kN&h@@`c8 97.860 + %%RXOV_%hU]+MSS-XlNMU@CQE@9)gD7qtVT&kY>1^2<qsA6*M02S#67Eq2K?*C+>j+n*.ee 97.861 + .u7@!4tdOp^5!a\MmOQ9bA4-5>#(^gi8h!7,OP20e.'mEe>K)IL^G`D$9U=[[!!+1[oeUP' 97.862 + <2?o(I\D$+dU3LDh@j60K%?BNfNb+X@RBCCrk8DQfSZ@pqo:NFmD8NC0H01'@i"f/bF]2<^ 97.863 + RY4O>o6c1nlcr"X/ot<?JiJdmkd.l,L.VG!0!5tB6G"/`7V-C(#i[!B'SBDZRo7R%6E!:&Y 97.864 + H9E`P-idH2H58o>)L_.d0mh7`$%e9['?;Cl34n<."94BTNaGb[*UUFh6sQbHZQ^B)k&"`!# 97.865 + ridKC=&jeYDW&HNi)?]^!he(VJ0&c4?H8);'0T%u'!;ShH)`q&W2"T4f,Lm@h`F<f[OTS\k 97.866 + oj<bl&.m3/VZo8dGGRu'/@-seaCmKfF^Xe4qBfS-o;?PnE6r'%!5r-lOZl?1i*b2lsAiG$X 97.867 + EJu31nlIs/2,#@:1]:o`0b:Dg$:T_\j_Y3lJ;t4AdgkELD"U?+5\pmE4_5LI*6"#4;Jkhlk 97.868 + (76fJTnG.T:sKtH=D\N+_luc_CtBu]Y.0V$3G,?X]eN?PEZfE$JOE?W^-U]X@Ta@s^]FKI7 97.869 + 4MK7Gn*0Dpk1?R(g7`4#E.]80YfZBE$?HQC<#rmOU+R2U3'4SjB="O;?%BiF;6")D,<7f/H 97.870 + H-1@fR++aMK6"`8Y;TB$chi7kt`!$Ue,@Z1,-/aFtr$`0lfeDGEdV4X\L]4";\!)8l0)&7k 97.871 + q)MIl??4h2RWA,umR`LXfDR:8QpK6NC&d?)NA1E7Z>$(&R.HOD%L,c26'47]Jdb1FHIhTWm 97.872 + '?ijMo\4\G[9Y2FP:,u"F*AD&HhB<OJA&kQW1`=MrRI^o*bLsifk6.cU;pK\b=m\B8`;-!F 97.873 + LjUEr8r[K3jD3*7q])$U433TP2_S22O>SsZAk@7k$mh)V\@Y-W]WlSk[M);T^Hgd-F+/1`l 97.874 + ,IFm)G=#[U%EYadZVdAbA@tT<+^5Lg1s18/M!^"hK;M\92$"11--*RU/Y<U;<gSAWDtMu:W 97.875 + `N^a1VJPMcpQ+3+!We$,iQlU6SYkfZIKr6=N6TRT93t67M:b2t^3lN<pOj-B2t[L?>VMH5\ 97.876 + GPNBa=>%^@!f#jc8:Dm*)g^rGXnat$DMKQZqCfD;CTm"LS-<_ge?>:a&minoOA9$=<ujW@e 97.877 + ,MQjJ_Z]RjF?RDm#['RVOfU?#Xm8*ea[E@+MZcd"BXP1$^g<s1L+_f-UWOI#=]\9t(D[?SL 97.878 + V3RpqY$51Jll62>[W^qA>HN&9`S%k)D"b!L[4(##s+hJ2.n&-i?nOap+B#M#&=]%jBTWO<P 97.879 + ]GjAGM?5<[F2Jh@URuldR%_XC73]1rQuNjI%TfuG'Fed>\k?tLrI\D3(i5^CZeH2-5j^'D[ 97.880 + p424br"0R<d+EU>c<>H*Ch/^Z7H27L9ZaXsB2rd;X`_3KZ7<NJ<`M\?imF9l1D5B#!!:LZ6 97.881 + t.Mt!l7`^=AW9-a6J-Sl1FaT!:]%"1/,,;d9(lC-aLUPZ;]@E_l811je8M]Q:%H-\W,8pnp 97.882 + Anh^7OUb<+oqSA&)4upEGXFnJL6p_9q9lO60g.k0t6*^E84P@aLONd$V10(``d$HsE(8t@- 97.883 + (/iHrEjKFkV4of$MNN,FKBK?=BJY+:eQT.WC>E0rbdJ_.30I6V"1X"aJtcDD'aW_<5!nD'I 97.884 + j,P%4ZP"^NiM4H^"52Ah[Pf:h*iR)H1N<61a;h&rIVl*hcqQMFJ1SO!S>g8LMRt^6hVk]+8 97.885 + ZtdkhI4J2K$X^A2e2=!^i(:VUpFsB2\/pFdDJc7,GM->B!mX_>$M,iERpjlQsB:?B5LS)L@ 97.886 + :nk4O\tE(tb@nALF%4JN[,SUOet:)90a3b0Z'R@.4]&@t_V6tTLCl02&M/XN@0%CFo%SmoR 97.887 + GG(H2RU,76pPAt%H,r_/0kRb-*EV/).:^g:V=m^X0^4!T;cR\-G-^V9Kh:BY#1eo%FGLsMQ 97.888 + cG0ZJFDeF]]A6#c\-H!]4a(+P*a?k9h_e4m9>5W,rSRMXJY,%cc/(YfBks]p<Z!;m$?clkC 97.889 + H%))4d-^],Q5@_B&2k(ad@6W'>K>f7'E[9R'LWHL'Whj0g7pWGp<p_2QJ1qosfkSWl=.KY< 97.890 + oZC8't?bJ_X9:[]!Nm_u*l$nbu&#q+Fnh,:]C"5$=IV8hn%,ZjD`5C:k.8hBZN_c1KQOMbX 97.891 + )@D#a_2R_:5%:brp-&J^F!<!%VJLKCPI?Zg>[O'tOk,O1TDOH<9+1iL/AO89:rY4E+\/8V= 97.892 + d.+nF<7f[+>r+/@N!n@//lMVpR<Y*jU!]'`?;#Wl<rf5RlmAU$15Tu4?'^uJ0km[cl[.k$r 97.893 + "3Z<"!>u#8;#2kc#;C9*E-V\`o'hRUc-Ui`%c[h(>mRZo#r%VNE1%$:SI+DM#RtJT#@RoMW 97.894 + $G3A$LkG2E4H@\]aO>F1bb`b$qh!Z&FJu2Bo[0B0\Ho>h$rl4%PZriXO>@4V[d:A$S_(ZYk 97.895 + J[4r=AE!&2==t0ZK@&,7nD)%oEoN;%XDF*>.fb&htZ;OUCps-;"jf&5b4rnMq8f4VR?O'IS 97.896 + MGY721C9bd+p'er]'EEO$];#-mGq=.)md:jB$D&2Y](GU%KDAa3"*tZfB(QjCgEJYO;N>V2 97.897 + J)(@9SOG+Q?1kC7D)@]S*Y(Dt#em?\V0Ti0'&ZRHp?rSE1)^9a2X9TWjboH9$*ANTmOUiI" 97.898 + cK4&H*Xp'VL%P6Dh]>AYZ%)i>@Y5>'/i\]FkgA3/EX<ko%.B;C`,NfKZ48snWdgb"+n+@ml 97.899 + oO'<*-JP6r6<#1ng+I\Kca,Hmp_7rMqTQ+r?8ID,r/IHC5X5^K+@HS3H'5e,&&BBo#$P!p4 97.900 + =@M!m^Rm_^<_3P@Z^=:_`gOk8^83,k>FoEg\A^S;'no(c%[=V"F?.DC)Th!s9,(&sOY^ZD\ 97.901 + u^T10`VDdY[?]..jK/Mbj.A]ZDW)(gIp09U-!Eo^QTcFWT7^7sdCC%>]7oZm\8.nKsF`L.r 97.902 + eo"VCY:k`fb72l7;Ea[>S1,C43F!tWtI.4D118?><^sH5io!Cg:1XOLmBsAdIO#)tg%;9e> 97.903 + &-DNZ/f%*;Zu/??k!\9o*agc]2`#S8F*L:*/fq9/1Ga>3dX=%?+=@h[mS\YeNhnYNOZ>3]K 97.904 + Su<QmGs1#0\O`.bO.@*;G.(N+u(]FFFfHoc20KlLHP1U4YtSU;VaKVj"t7u4q']+OttX!#s 97.905 + 'P\\Z)Je+pr7Ll6/kD43iN6&p,;AI34Z44k(34F;[B>]fi_B1,JFFniY-PV_l9j6=t!]A0i 97.906 + Y-[bl06+RJ,S$imtMeC[\14O?YHJdd`?0f`,\68W7CFD44>$J%\#+`qQboAh3>1oY2n/JIJ 97.907 + *e:)"M5jk?db-ZmHafprX;Z*7AaAdLVFK%m>X\.SM-.HuQ'&Q=`\Oa*!i<K*BP^,,WE?A0$ 97.908 + +NF1$7>"3/f1jaF9@W&uFQlQ$\hupfZVZ8p[-]^BVCkjI]4n,q0uP\$^h,"ETT8=):i=]ZY 97.909 + 4m#A7PnOB;e&E6qbm)A;`-BT'HpCaM,<fdee33Z1f,sX5e5DI7<K[O&-GZA=S(&d;q5G[F_ 97.910 + O=14'&X]<@nGLbVjC&atcsl>`faqCKW^+,>sSD;H740F`CQlSQYP72tMYtQ(TJSK2n2$bRM 97.911 + u#'E0bPY$3Uq8Q-'iKn.\gO&F:g=V#"J<NBE5h-KR\<qYAtFh^rcbuA0!R%llPYk(pq7!,0 97.912 + R?V$u`_U2>j6X]T9>nuO2Fr=_nf"9"K(\'(ce)OMb&hbW["Di'^/3O!-;^,6u;5/&;No=?^ 97.913 + &man[KHlB7/ONE7=].adlkV$^G%kQn5@.B,,n!stb`PVc9X49"Akh\HFC$9e86W8Von?f>E 97.914 + ]V>W6VK3/m*::9`F+9cojCgACGrS9E8=/RV'Ztfdo>=Xnr7I.m)7@XZ%=CHZ^)n<N`qU1c6 97.915 + K/,f$A6Ac>67Cp$tOf2Yh:"r<[XeDtZ+qJh3q1;OZ0cWCH\*68*<&SgO0f>&s'c1;Pc-]$A 97.916 + ME0biKTWJais"&1]XF>lX1DAR7N8KXlpi/p4YQVVb5?$5mL]2q^M,&WGUQP+LZ>^'n+GBnD 97.917 + AI%F?65*9K%iadk2YnP`J@i'uIGF<`cS;%],C_r^RilH+\SJ!\(7$jfuGI`(0]NUY7Hf@.J 97.918 + ((CrOaS_CDI5f])GM+q++M8I9G^%nkGNjRcm=+g!+]c8#Pdu9&rI=SCJ2d^UQhPf.#CuR]J 97.919 + N+BqF`Ddg)1hQ+JiG'.F,,>!.>%=LK/b`@ERf@lF`oM??Ijuh\3^s57`<qPK]=G62LC(D?% 97.920 + r&^<gSE<2s#/U,>].,]6J7,<tg<JI>@TK170Y3pi[qXMN\m<CfOhu315W5SMupkDqL3uR&; 97.921 + fdHV`:8M>4K:Ge#+WEGP>6<u39/f?1qpAg2-bo4NIRG;3!i%Q^U=>BnGc(rip"b?G/B+un$ 97.922 + Q+W69*>=DZQ0LfIEfXm6U%?U,kJ@NKt;<T_i"d"<RBr1IqGhaD2\rnX!W(HH?UCfrj+OCq* 97.923 + ,9r22QLC!fnuBe(PPGfUH!-E;LPdqNRV1f12m6@C#i,o\RkF%o`$!i79fik'O-rN]f^D^QQ 97.924 + ^1A5QBtT[67-Fp<L8:Gf=?@e=bAGsL*4$b"PI^Yft!T_]bS(d:.PdP2MH%c,XOGM\+uoaQ^ 97.925 + "p&d9F/KW7f023QmHb0:a!8SO9Me3V-6;f:EjQS,*;]H3k;=_b8)1g3Ao/.0WfG-_3..WEK 97.926 + sKGd8N^)fKM%U(jA[q?s(04eqM1L3=qC8Z/97r^cc@TCt-W<]H\>9;<C?<I-(&K))&S*GrA 97.927 + RV`JsuE1`fqYo\e7UO"C4RICtmfV6q/BA/)r>(EdM"s^^;W:Ij*.;`nTH)g_GX"TC/eE!Z/ 97.928 + "Q!%=TA!HlZ@OqQWH1+dP8_,TXu!.:Qm0,bO#kUd>-4i/mB6<Ti4?HpX+;5D@;6u?FTV,58 97.929 + i]o*AZb8?YHQr"F=Enm$a;t@Y`LkNH/l&s*NqOZZTC"o3>I%P)XSH[KXRk`q^[udT";O"41 97.930 + bJ:4%HQEDe7FrMRtgUHYKpi6[e(/PaDngCu^`&m%Thb[<_/>].U'EH\K&MRplo<(Nm5lP:p 97.931 + ,*[bIXiH`3p4pK&:CV\Bf@R;Z_a30X!g\[GkW]48JMX1\>W]dRs5oVgT0]l;sCAhNKpl7!] 97.932 + RjgH#4^0.,-]A0Lbi#u=s,!5+r@MccUaf0Xi]j);gHl/M;7>A3*l+n5%!T?&LQ]:glRY:iY 97.933 + `-7pp>3b.)N^ac!S$jPh56Q/5T;auj>UdPE=i3.u`>gsb>Yem&jrHQP!#l;<Htr[I_kUHUa 97.934 + ?50tB9Ru&4]ZU*"8c>WR+6+[Q6?%#49P<L9ErA%/nmoAaY7ALkU2VmPT_$@D;;$Ae%"'-Sg 97.935 + 7RDrEQnSSCu0"gh0jE9$e_9RBe"Q3e*u79fVhu:TQd&LQF:-YlZr2nh\T:p7D3E/oe]/@Q2 97.936 + Z'(HFVOORN_*dgaY4oa9LpBidUFrAi??4B``be,;_bI7_qu0seG]eD4-TI9G+1(PZAkefjk 97.937 + ?I9kF;D:\Z*IA:C)$D8H2Hld]e94VcqI>QUiNS+2lffbVRI@8d%S_<t8g-):dIAtr6XkN`Y 97.938 + gHDt!IC\+G^"`M%gc`X3IEC9Xc.r9Fh*'<EIG*Gih;/%ghEBuWIHfV%mG@g3h`^YiIJMd6r 97.939 + SRSTi'%>&IL4rH%H.3tiBA"8IMq+Y*T?u@i]\[JIOX9j/`Qaaj$#?Q_Q[\3nfT%~>Q 97.940 +Q 97.941 +showpage 97.942 +%%Trailer 97.943 +count op_count sub {pop} repeat 97.944 +countdictstack dict_count sub {end} repeat 97.945 +cairo_eps_state restore 97.946 +%%EOF
98.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 98.2 +++ b/0__Papers/VMS/VMS__Foundation_Paper/VMS__Full_conference_version/figures/Time_in_VMS_1.svg Sat Aug 03 19:24:22 2013 -0700 98.3 @@ -0,0 +1,407 @@ 98.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 98.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 98.6 + 98.7 +<svg 98.8 + xmlns:dc="http://purl.org/dc/elements/1.1/" 98.9 + xmlns:cc="http://creativecommons.org/ns#" 98.10 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 98.11 + xmlns:svg="http://www.w3.org/2000/svg" 98.12 + xmlns="http://www.w3.org/2000/svg" 98.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 98.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 98.15 + width="744.09448819" 98.16 + height="1052.3622047" 98.17 + id="svg2" 98.18 + sodipodi:version="0.32" 98.19 + inkscape:version="0.47 r22583" 98.20 + sodipodi:docname="Time_in_VMS_1.svg" 98.21 + inkscape:output_extension="org.inkscape.output.svg.inkscape" 98.22 + version="1.1"> 98.23 + <defs 98.24 + id="defs4"> 98.25 + <marker 98.26 + inkscape:stockid="Arrow2Mend" 98.27 + orient="auto" 98.28 + refY="0.0" 98.29 + refX="0.0" 98.30 + id="Arrow2Mend" 98.31 + style="overflow:visible;"> 98.32 + <path 98.33 + id="path4008" 98.34 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 98.35 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 98.36 + transform="scale(0.6) rotate(180) translate(0,0)" /> 98.37 + </marker> 98.38 + <inkscape:perspective 98.39 + sodipodi:type="inkscape:persp3d" 98.40 + inkscape:vp_x="0 : 526.18109 : 1" 98.41 + inkscape:vp_y="0 : 1000 : 0" 98.42 + inkscape:vp_z="744.09448 : 526.18109 : 1" 98.43 + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" 98.44 + id="perspective10" /> 98.45 + <inkscape:perspective 98.46 + id="perspective11923" 98.47 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 98.48 + inkscape:vp_z="1 : 0.5 : 1" 98.49 + inkscape:vp_y="0 : 1000 : 0" 98.50 + inkscape:vp_x="0 : 0.5 : 1" 98.51 + sodipodi:type="inkscape:persp3d" /> 98.52 + </defs> 98.53 + <sodipodi:namedview 98.54 + id="base" 98.55 + pagecolor="#ffffff" 98.56 + bordercolor="#666666" 98.57 + borderopacity="1.0" 98.58 + gridtolerance="10000" 98.59 + guidetolerance="10" 98.60 + objecttolerance="10" 98.61 + inkscape:pageopacity="0.0" 98.62 + inkscape:pageshadow="2" 98.63 + inkscape:zoom="1.3364318" 98.64 + inkscape:cx="448.37508" 98.65 + inkscape:cy="648.10677" 98.66 + inkscape:document-units="px" 98.67 + inkscape:current-layer="layer1" 98.68 + showgrid="false" 98.69 + inkscape:window-width="880" 98.70 + inkscape:window-height="1141" 98.71 + inkscape:window-x="889" 98.72 + inkscape:window-y="6" 98.73 + inkscape:window-maximized="0" /> 98.74 + <metadata 98.75 + id="metadata7"> 98.76 + <rdf:RDF> 98.77 + <cc:Work 98.78 + rdf:about=""> 98.79 + <dc:format>image/svg+xml</dc:format> 98.80 + <dc:type 98.81 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 98.82 + <dc:title /> 98.83 + </cc:Work> 98.84 + </rdf:RDF> 98.85 + </metadata> 98.86 + <g 98.87 + inkscape:label="Layer 1" 98.88 + inkscape:groupmode="layer" 98.89 + id="layer1"> 98.90 + <rect 98.91 + style="opacity:0.44897958;fill:none;stroke:#000000;stroke-width:0.10000001;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.39999998, 0.1;stroke-dashoffset:0" 98.92 + id="rect4618" 98.93 + width="413.02609" 98.94 + height="158.61386" 98.95 + x="216.25447" 98.96 + y="368.18201" /> 98.97 + <path 98.98 + style="fill:none;stroke:#422fac;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" 98.99 + d="m 219.06883,401.37498 c 128.4693,0 128.4693,0 128.4693,0" 98.100 + id="path11721" /> 98.101 + <g 98.102 + id="g11990" 98.103 + transform="translate(-60,0)"> 98.104 + <path 98.105 + id="path11907" 98.106 + d="m 298.82881,392.82004 c 0,30.42814 0,30.42814 0,30.42814" 98.107 + style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 98.108 + <text 98.109 + xml:space="preserve" 98.110 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 98.111 + x="298.7023" 98.112 + y="376.52615" 98.113 + id="text11715-4" 98.114 + sodipodi:linespacing="100%"><tspan 98.115 + style="font-size:9px;text-align:center;text-anchor:middle" 98.116 + sodipodi:role="line" 98.117 + id="tspan11717-9" 98.118 + x="300.05582" 98.119 + y="376.52615">Suspend </tspan><tspan 98.120 + style="font-size:9px;text-align:center;text-anchor:middle" 98.121 + id="tspan11940" 98.122 + sodipodi:role="line" 98.123 + x="300.05582" 98.124 + y="385.52615">Point 1</tspan></text> 98.125 + </g> 98.126 + <g 98.127 + id="g11984" 98.128 + transform="translate(-60,0)"> 98.129 + <path 98.130 + id="path11911" 98.131 + d="m 378.82881,392.77746 c 0,29.45519 0,29.45519 0,29.45519" 98.132 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 98.133 + <text 98.134 + xml:space="preserve" 98.135 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 98.136 + x="378.7023" 98.137 + y="376.52615" 98.138 + id="text11948" 98.139 + sodipodi:linespacing="100%"><tspan 98.140 + style="font-size:9px;text-align:center;text-anchor:middle" 98.141 + sodipodi:role="line" 98.142 + id="tspan11950" 98.143 + x="380.05582" 98.144 + y="376.52615">Suspend </tspan><tspan 98.145 + style="font-size:9px;text-align:center;text-anchor:middle" 98.146 + id="tspan11952" 98.147 + sodipodi:role="line" 98.148 + x="380.05582" 98.149 + y="385.52615">Point 2</tspan></text> 98.150 + </g> 98.151 + <text 98.152 + xml:space="preserve" 98.153 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 98.154 + x="352.7023" 98.155 + y="400.52615" 98.156 + id="text11954" 98.157 + sodipodi:linespacing="100%"><tspan 98.158 + sodipodi:role="line" 98.159 + id="tspan11956" 98.160 + x="352.7023" 98.161 + y="400.52615">Program </tspan><tspan 98.162 + id="tspan11958" 98.163 + sodipodi:role="line" 98.164 + x="352.7023" 98.165 + y="410.52615">Time 1</tspan></text> 98.166 + <text 98.167 + sodipodi:linespacing="100%" 98.168 + id="text11960" 98.169 + y="412.52615" 98.170 + x="278.7023" 98.171 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 98.172 + xml:space="preserve"><tspan 98.173 + y="412.52615" 98.174 + x="278.7023" 98.175 + id="tspan11962" 98.176 + sodipodi:role="line" 98.177 + style="font-size:9px;text-align:center;text-anchor:middle">Trace</tspan><tspan 98.178 + y="421.52615" 98.179 + x="278.7023" 98.180 + sodipodi:role="line" 98.181 + id="tspan11964" 98.182 + style="font-size:9px;text-align:center;text-anchor:middle">Segment</tspan></text> 98.183 + <path 98.184 + id="path11996" 98.185 + d="m 446.59318,401.37498 c 138.89067,0 138.89067,0 138.89067,0" 98.186 + style="fill:none;stroke:#a94c26;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" /> 98.187 + <g 98.188 + id="g11998" 98.189 + transform="translate(166,0)"> 98.190 + <path 98.191 + style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 98.192 + d="m 298.82881,392.82004 c 0,30.42814 0,30.42814 0,30.42814" 98.193 + id="path12000" /> 98.194 + <text 98.195 + sodipodi:linespacing="100%" 98.196 + id="text12002" 98.197 + y="376.52615" 98.198 + x="298.7023" 98.199 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 98.200 + xml:space="preserve"><tspan 98.201 + y="376.52615" 98.202 + x="300.05582" 98.203 + id="tspan12004" 98.204 + sodipodi:role="line" 98.205 + style="font-size:9px;text-align:center;text-anchor:middle">Suspend </tspan><tspan 98.206 + y="385.52615" 98.207 + x="300.05582" 98.208 + sodipodi:role="line" 98.209 + id="tspan12006" 98.210 + style="font-size:9px;text-align:center;text-anchor:middle">Point 1</tspan></text> 98.211 + </g> 98.212 + <g 98.213 + id="g12008" 98.214 + transform="translate(188,0)"> 98.215 + <path 98.216 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 98.217 + d="m 378.82881,392.77746 c 0,29.45519 0,29.45519 0,29.45519" 98.218 + id="path12010" /> 98.219 + <text 98.220 + sodipodi:linespacing="100%" 98.221 + id="text12012" 98.222 + y="376.52615" 98.223 + x="378.7023" 98.224 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 98.225 + xml:space="preserve"><tspan 98.226 + y="376.52615" 98.227 + x="380.05582" 98.228 + id="tspan12014" 98.229 + sodipodi:role="line" 98.230 + style="font-size:9px;text-align:center;text-anchor:middle">Suspend </tspan><tspan 98.231 + y="385.52615" 98.232 + x="380.05582" 98.233 + sodipodi:role="line" 98.234 + id="tspan12016" 98.235 + style="font-size:9px;text-align:center;text-anchor:middle">Point 2</tspan></text> 98.236 + </g> 98.237 + <text 98.238 + sodipodi:linespacing="100%" 98.239 + id="text12018" 98.240 + y="400.52615" 98.241 + x="590.70227" 98.242 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 98.243 + xml:space="preserve"><tspan 98.244 + y="400.52615" 98.245 + x="590.70227" 98.246 + id="tspan12020" 98.247 + sodipodi:role="line">Program </tspan><tspan 98.248 + y="410.52615" 98.249 + x="590.70227" 98.250 + sodipodi:role="line" 98.251 + id="tspan12022">Time 2</tspan></text> 98.252 + <text 98.253 + xml:space="preserve" 98.254 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 98.255 + x="516.70227" 98.256 + y="412.52615" 98.257 + id="text12024" 98.258 + sodipodi:linespacing="100%"><tspan 98.259 + style="font-size:9px;text-align:center;text-anchor:middle" 98.260 + sodipodi:role="line" 98.261 + id="tspan12026" 98.262 + x="516.70227" 98.263 + y="412.52615">Trace</tspan><tspan 98.264 + style="font-size:9px;text-align:center;text-anchor:middle" 98.265 + id="tspan12028" 98.266 + sodipodi:role="line" 98.267 + x="516.70227" 98.268 + y="421.52615">Segment</tspan></text> 98.269 + <path 98.270 + id="path12042" 98.271 + d="m 267.24968,477.37498 c 232.74658,0 232.74658,0 232.74658,0" 98.272 + style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" /> 98.273 + <g 98.274 + id="g4352"> 98.275 + <path 98.276 + style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 98.277 + d="m 364.82881,468.62956 c 0,29.31256 0,29.31256 0,29.31256" 98.278 + id="path12046" /> 98.279 + <text 98.280 + sodipodi:linespacing="100%" 98.281 + id="text12048" 98.282 + y="506.52615" 98.283 + x="364.7023" 98.284 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 98.285 + xml:space="preserve"><tspan 98.286 + y="506.52615" 98.287 + x="366.05582" 98.288 + id="tspan12050" 98.289 + sodipodi:role="line" 98.290 + style="font-size:9px;text-align:center;text-anchor:middle">Tie </tspan><tspan 98.291 + y="515.52612" 98.292 + x="364.7023" 98.293 + sodipodi:role="line" 98.294 + id="tspan12052" 98.295 + style="font-size:9px;text-align:center;text-anchor:middle">Point</tspan></text> 98.296 + </g> 98.297 + <text 98.298 + sodipodi:linespacing="100%" 98.299 + id="text12064" 98.300 + y="476.52612" 98.301 + x="504.7023" 98.302 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 98.303 + xml:space="preserve"><tspan 98.304 + y="476.52612" 98.305 + x="504.7023" 98.306 + id="tspan12066" 98.307 + sodipodi:role="line">Virtual</tspan><tspan 98.308 + y="486.52612" 98.309 + x="504.7023" 98.310 + sodipodi:role="line" 98.311 + id="tspan12068">Time</tspan></text> 98.312 + <path 98.313 + sodipodi:nodetypes="csc" 98.314 + id="path12088" 98.315 + d="m 238.93024,423.61086 c -1.25694,9.23477 24.14401,17.15062 68.20717,23.60165 56.44943,8.26442 56.82059,19.8861 56.82059,19.8861" 98.316 + style="fill:none;stroke:#422fac;stroke-width:0.99999994000000003px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" /> 98.317 + <path 98.318 + style="fill:none;stroke:#a94c26;stroke-width:0.99999994000000003px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" 98.319 + d="m 464.69712,423.61086 c 0.98989,9.23477 -17.61775,14.97151 -52.53717,19.11208 -44.45606,5.27138 -45.92693,24.37567 -45.92693,24.37567" 98.320 + id="path12090" 98.321 + sodipodi:nodetypes="csc" /> 98.322 + <path 98.323 + style="fill:none;stroke:#000000;stroke-width:0.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.99999998, 3.99999994;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 98.324 + d="m 281.91415,423.61086 c -1.11723,12.05605 9.34615,12.84312 48.3972,21.29812 48.67875,10.5395 57.28475,35.47541 57.28475,35.47541" 98.325 + id="path12092" 98.326 + sodipodi:nodetypes="csc" /> 98.327 + <path 98.328 + sodipodi:nodetypes="csc" 98.329 + id="path12094" 98.330 + d="m 517.32918,423.61085 c 0.89929,13.92511 -19.38736,26.89157 -51.01833,33.88658 -32.71104,7.23385 -34.04727,31.68861 -34.04727,31.68861" 98.331 + style="fill:none;stroke:#000000;stroke-width:0.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1.00000001, 4.00000004;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 98.332 + <g 98.333 + id="g4338" 98.334 + transform="translate(8,0)"> 98.335 + <path 98.336 + style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 98.337 + d="m 270.82881,468.62956 c 0,29.31256 0,29.31256 0,29.31256" 98.338 + id="path3246" /> 98.339 + <text 98.340 + sodipodi:linespacing="100%" 98.341 + id="text3248" 98.342 + y="506.52615" 98.343 + x="270.7023" 98.344 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 98.345 + xml:space="preserve"><tspan 98.346 + y="506.52615" 98.347 + x="270.7023" 98.348 + sodipodi:role="line" 98.349 + id="tspan3252" 98.350 + style="font-size:9px;text-align:center;text-anchor:middle">Suspend</tspan><tspan 98.351 + y="515.52612" 98.352 + x="270.7023" 98.353 + sodipodi:role="line" 98.354 + style="font-size:9px;text-align:center;text-anchor:middle" 98.355 + id="tspan4072"> 1,1</tspan><tspan 98.356 + y="524.52618" 98.357 + x="270.7023" 98.358 + sodipodi:role="line" 98.359 + style="font-size:9px;text-align:center;text-anchor:middle" 98.360 + id="tspan4068">start</tspan></text> 98.361 + </g> 98.362 + <g 98.363 + id="g4345"> 98.364 + <path 98.365 + id="path3276" 98.366 + d="m 322.82881,468.62956 c 0,29.31256 0,29.31256 0,29.31256" 98.367 + style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 98.368 + <text 98.369 + xml:space="preserve" 98.370 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 98.371 + x="322.7023" 98.372 + y="506.52615" 98.373 + id="text3278" 98.374 + sodipodi:linespacing="100%"><tspan 98.375 + style="font-size:9px;text-align:center;text-anchor:middle" 98.376 + sodipodi:role="line" 98.377 + id="tspan3280" 98.378 + x="322.7023" 98.379 + y="506.52615">Suspend</tspan><tspan 98.380 + style="font-size:9px;text-align:center;text-anchor:middle" 98.381 + sodipodi:role="line" 98.382 + x="324.05582" 98.383 + y="515.52612" 98.384 + id="tspan4070">2, 1 </tspan><tspan 98.385 + style="font-size:9px;text-align:center;text-anchor:middle" 98.386 + id="tspan3282" 98.387 + sodipodi:role="line" 98.388 + x="322.7023" 98.389 + y="524.52618">start</tspan></text> 98.390 + </g> 98.391 + <path 98.392 + style="fill:none;stroke:#422fac;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" 98.393 + d="m 238.89805,423.61086 c -0.4091,9.23477 7.28119,14.97151 21.71296,19.11208 18.37311,5.27138 18.98102,24.37567 18.98102,24.37567" 98.394 + id="path3284" 98.395 + sodipodi:nodetypes="csc" /> 98.396 + <path 98.397 + sodipodi:nodetypes="csc" 98.398 + id="path3286" 98.399 + d="m 464.68079,423.61086 c 1.41991,9.23477 -25.27107,14.97151 -75.35984,19.11208 -63.76822,5.27138 -65.87805,24.37567 -65.87805,24.37567" 98.400 + style="fill:none;stroke:#a94c26;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" /> 98.401 + <path 98.402 + id="path4334" 98.403 + d="m 367.06883,483.37498 c 57.09423,0 57.09423,0 57.09423,0" 98.404 + style="fill:none;stroke:#422fac;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" /> 98.405 + <path 98.406 + style="fill:none;stroke:#a94c26;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" 98.407 + d="m 367.06882,491.37498 c 95.45,0 95.45,0 95.45,0" 98.408 + id="path4336" /> 98.409 + </g> 98.410 +</svg>
99.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 99.2 +++ b/0__Papers/VMS/VMS__Foundation_Paper/VMS__Full_conference_version/figures/Time_layers.eps Sat Aug 03 19:24:22 2013 -0700 99.3 @@ -0,0 +1,869 @@ 99.4 +%!PS-Adobe-3.0 EPSF-3.0 99.5 +%%Creator: cairo 1.8.6 (http://cairographics.org) 99.6 +%%CreationDate: Sat Nov 20 00:16:39 2010 99.7 +%%Pages: 1 99.8 +%%BoundingBox: 0 0 206 75 99.9 +%%DocumentData: Clean7Bit 99.10 +%%LanguageLevel: 2 99.11 +%%EndComments 99.12 +%%BeginProlog 99.13 +/cairo_eps_state save def 99.14 +/dict_count countdictstack def 99.15 +/op_count count 1 sub def 99.16 +userdict begin 99.17 +/q { gsave } bind def 99.18 +/Q { grestore } bind def 99.19 +/cm { 6 array astore concat } bind def 99.20 +/w { setlinewidth } bind def 99.21 +/J { setlinecap } bind def 99.22 +/j { setlinejoin } bind def 99.23 +/M { setmiterlimit } bind def 99.24 +/d { setdash } bind def 99.25 +/m { moveto } bind def 99.26 +/l { lineto } bind def 99.27 +/c { curveto } bind def 99.28 +/h { closepath } bind def 99.29 +/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto 99.30 + 0 exch rlineto 0 rlineto closepath } bind def 99.31 +/S { stroke } bind def 99.32 +/f { fill } bind def 99.33 +/f* { eofill } bind def 99.34 +/B { fill stroke } bind def 99.35 +/B* { eofill stroke } bind def 99.36 +/n { newpath } bind def 99.37 +/W { clip } bind def 99.38 +/W* { eoclip } bind def 99.39 +/BT { } bind def 99.40 +/ET { } bind def 99.41 +/pdfmark where { pop globaldict /?pdfmark /exec load put } 99.42 + { globaldict begin /?pdfmark /pop load def /pdfmark 99.43 + /cleartomark load def end } ifelse 99.44 +/BDC { mark 3 1 roll /BDC pdfmark } bind def 99.45 +/EMC { mark /EMC pdfmark } bind def 99.46 +/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def 99.47 +/Tj { show currentpoint cairo_store_point } bind def 99.48 +/TJ { 99.49 + { 99.50 + dup 99.51 + type /stringtype eq 99.52 + { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse 99.53 + } forall 99.54 + currentpoint cairo_store_point 99.55 +} bind def 99.56 +/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore 99.57 + cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def 99.58 +/Tf { pop /cairo_font exch def /cairo_font_matrix where 99.59 + { pop cairo_selectfont } if } bind def 99.60 +/Td { matrix translate cairo_font_matrix matrix concatmatrix dup 99.61 + /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point 99.62 + /cairo_font where { pop cairo_selectfont } if } bind def 99.63 +/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def 99.64 + cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def 99.65 +/g { setgray } bind def 99.66 +/rg { setrgbcolor } bind def 99.67 +/d1 { setcachedevice } bind def 99.68 +%%EndProlog 99.69 +11 dict begin 99.70 +/FontType 42 def 99.71 +/FontName /f-0-0 def 99.72 +/PaintType 0 def 99.73 +/FontMatrix [ 1 0 0 1 0 0 ] def 99.74 +/FontBBox [ 0 0 0 0 ] def 99.75 +/Encoding 256 array def 99.76 +0 1 255 { Encoding exch /.notdef put } for 99.77 +Encoding 1 /uni0050 put 99.78 +Encoding 2 /uni0072 put 99.79 +Encoding 3 /uni006F put 99.80 +Encoding 4 /uni0067 put 99.81 +Encoding 5 /uni0061 put 99.82 +Encoding 6 /uni006D put 99.83 +Encoding 7 /uni0020 put 99.84 +Encoding 8 /uni0054 put 99.85 +Encoding 9 /uni0069 put 99.86 +Encoding 10 /uni0065 put 99.87 +Encoding 11 /uni0068 put 99.88 +Encoding 12 /uni0079 put 99.89 +Encoding 13 /uni0073 put 99.90 +Encoding 14 /uni0063 put 99.91 +Encoding 15 /uni006C put 99.92 +Encoding 16 /uni0053 put 99.93 +Encoding 17 /uni0064 put 99.94 +Encoding 18 /uni0075 put 99.95 +/CharStrings 19 dict dup begin 99.96 +/.notdef 0 def 99.97 +/uni0050 1 def 99.98 +/uni0072 2 def 99.99 +/uni006F 3 def 99.100 +/uni0067 4 def 99.101 +/uni0061 5 def 99.102 +/uni006D 6 def 99.103 +/uni0020 7 def 99.104 +/uni0054 8 def 99.105 +/uni0069 9 def 99.106 +/uni0065 10 def 99.107 +/uni0068 11 def 99.108 +/uni0079 12 def 99.109 +/uni0073 13 def 99.110 +/uni0063 14 def 99.111 +/uni006C 15 def 99.112 +/uni0053 16 def 99.113 +/uni0064 17 def 99.114 +/uni0075 18 def 99.115 +end readonly def 99.116 +/sfnts [ 99.117 +<00010000000a008000030020636d61700076f10b00001a9000000064637674207d0742a80000 99.118 +1af4000002706670676d49d7df9200001d640000060a676c7966e942e463000000ac000019e4 99.119 +68656164d5ceeae00000237000000036686865610f7e06ae000023a800000024686d74784af9 99.120 +067a000023cc0000004c6c6f63613a8c41da00002418000000286d617870037802c900002440 99.121 +0000002070726570292ded1600002460000004ad00020080015e0380045e0003000700264016 99.122 +059c039d049c070017003700030000079c019d049c00002ffdfded012f5f5dfdfded31301311 99.123 +211125211121800300fd800200fe00015e0300fd00800200000200960000042605c3000a0013 99.124 +0108b9000cffea40170c0c024b0b180c0c024b670701021045070b4401440207b8ffd8b41010 99.125 +024b07b8ffdab40b0b024b07b8ffdab40d0d024b07b8fff0b40d0d064b07b8fff4400e0e0e06 99.126 +4b07471507022702020002b8ffeab41313024b02b8fff4b41010024b02b8fffa400b0f0f024b 99.127 +02040b0b024b02b8fffeb40d0d024b02b8fff0b40e0e064b02b8fffeb40c0c064b02b8ffe840 99.128 +2d1010064b0247143a124a125a1203350e450e550e0303050b120c000e180c0c024b0e160d0d 99.129 +024b0e4909090212b8ffe8400b0c0c024b12490502080502003f3f10ed2b11392fed2b2b3332 99.130 +113311335d5d0110e62b2b2b2b2b2b2b2b5f5d10e62b2b2b2b2b10eded10ed5f5d3130002b2b 99.131 +0111231136332011102122031116332011102122015ec8e32f027efdcc22727f070174fe7328 99.132 +0234fdcc05b90afe55fe1202dbfde30a0125010c0000000100960000031c0443000e00af401e 99.133 +0a400b0d024b081018102810c81004c70ed70e020e06094d064d68070107b8ffecb41313024b 99.134 +07b8ffeeb41010024b07b8fff240110f0f024b07040b0b024b07040c0c024b07b8ffeeb40f0f 99.135 +064b07b8fffcb40c0c064b07b8fff2b41010064b07b8fffc40250e0e064b070f170a270a370a 99.136 +470a570a670a0600050a400e0e064b0a02520c0806070a0c07003f3f3f10edcd2b325f5d0110 99.137 +d62b2b2b2b2b2b2b2b2b5deded10c65d5d3130002b01262322061511231133153633321702cd 99.138 +3e3f6597bebe68cd336003782bba83fd9a042fabbf1200020041ffec040a0443000b0015013c 99.139 +402517401010024b17400b0c024bb7050101381701114e17063706470667060406041010024b 99.140 +06b8ffdeb40f0f024b06b8fffcb40b0b024b06b8ffe4b40c0c024b06b8ffd4b40d0d024b06b8 99.141 +ffeab40e0e064b06b8ffe0b40c0c064b06b8ffe440760d0d064b060c4e87009700a700b700c7 99.142 +00e700063800480058006800040000101010024b000e0f0f024b00200b0b024b00200c0c024b 99.143 +00160d0d024b000c0e0e064b00100c0c064b000c0d0d064b00166a030165090103670e016813 99.144 +0102450e550e650e034a135a136a13030e100f0f024b0e520913b8fff040160f0f024b135203 99.145 +09180f0f024b09180f0f064b090b03b8ffe8b40f0f024b03b8ffe8b50f0f064b0307003f2b2b 99.146 +3f2b2b10ed2b10ed2b5d5d5f5d5d5f5d5d0110d62b2b2b2b2b2b2b2b5f5d5dfdd42b2b2b2b2b 99.147 +2b2b2b5ded5d5f5d31302b2b1334003332121110002322001310213236351021220641010bda 99.148 +e6fefefce0e5ff00c8011d8597fee4829b021af80131fedbfefcfefdfed5012e0100fe6dd8bb 99.149 +018ed40000020050fe5c03c804740030003c0160402c48195819681978190400272b372b0202 99.150 +65017501020320101c12064e282b382b482b582b682b782b882b072bb8ffeab40e0e064b2bb8 99.151 +fff0400f0d0d064b2b193a4e1c0e1010024b1cb8fff440860c0c024b1c120d0d024b1c3e0023 99.152 +4e0d344e12060e0e064b120c0f0f024b12120b0c024b12120d0d024b123d17010188199819a8 99.153 +19b8190488189818a818b81804280c380c02006701770102026a317a31026537753702031020 99.154 +37281a171f181537180f0f024b37521f40090a064b1f9708a708b70803970ba70bb70b030028 99.155 +530825530b01b8ffc0b41114024b01b8ffc0b40b0c024b01b8ffc0b41114064b01b8ffc04009 99.156 +0c0c064b0103522e31b8ffe8400d0f0f024b3152152e0e0b061507003f3f3f10ed2b10fdc62b 99.157 +2b2b2b10edd4fd5f5d5dd42bed2b10c6123939111239395f5d5d5f5d5f5d5d5d5d0110d62b2b 99.158 +2b2bedd4edc610d62b2b2bedc6d42b2b5ded111239395f5d5f5d5f5d31301337163332363534 99.159 +2322062322353436372611343633321737170716151406070706061514333236333216151404 99.160 +2322260122061514163332363534266067a68c8195bc20a82fe46b4fe2eaac9e595f7c7249ca 99.161 +a49d1c5e622bb62c9eb1fef7cb68e6014d637d796765727bfedb986f59428220ac3556136a01 99.162 +06a8e0417275565f99a2dc101003251e291f978694b64a05048c6470938f74648c0000020050 99.163 +ffec03e40443001b002501d3b627401010024b25b8ffecb40b0c024b25b8ffee40490d0d064b 99.164 +071317130201672077200202280f480f0200b70fc70fd70fe70f04010025150f053718471857 99.165 +1867187718871897180718254d0a4d881501150c1313024b150c1010024b15b8fff8b40f0f02 99.166 +4b15b8fff040110c0c024b151e0d0d024b150c0e0e064b15b8fff040440f0f064b150c0d0d06 99.167 +4b1527214e38050100050c0f0f024b05160b0b024b05100c0c024b05120d0d024b050c0e0e06 99.168 +4b050c0c0c064b050c0d0d064b05263a0301032500b8ffc0b40d10024b00b8ffc040320d0f06 99.169 +4b480058006800780004000218191c520a080e52080f180f280f380f480f580f980fa80fb80f 99.170 +c80fd80fe80f0c000fb8ffc0b41317024b0fb8ffc040240d0d024b0f124a1e5a1e02031e52a8 99.171 +08b80802580801006a087a08020347085708020008b8ffc0b41414024b08b8ffc0b41313024b 99.172 +08b8ffe8b41010024b08b8ffe8b40f0f024b08b8ffc040131313064b08080c2352020c521219 99.173 +0b020b1207003f3f3f10ed10ed11392f2b2b2b2b2b5f5d5f5d5f5d5ded5f5d10dd2b2b5f5ded 99.174 +10d5ed10cd10dd5d2b2bcd5f5d0110d62b2b2b2b2b2b2b5f5ded10d62b2b2b2b2b2b2b2b71ed 99.175 +edc65d10c41112395f5d5f5d5f5d3130005f5d2b2b012b250623222635342433321710232207 99.176 +273636333216151114171522260326232206151433323702e472eb7eb9011ddd3c4ce8b26050 99.177 +36bf57e9d35474732b5a2490b6c5906f7b8fb788a3e11a0104609f2c3fd4e7fe808d2f5f4201 99.178 +df149465a789000100870000061d0443001f01b8403821400f10024b21400c0c024b071c0101 99.179 +08216821022721372157219721c72105004d371f011f101313024b1f081010024b1f1c0f0f02 99.180 +4b1fb8ffec40170b0b024b1f180c0c024b1f040d0d024b1f0e0f0f064b1fb8ffed400b0c0c06 99.181 +4b1f101010064b1fb8fffe401d0e0e064b1f084d37070107101313024b07021010024b071a0f 99.182 +0f024b07b8ffec40170b0b024b07180c0c024b07040d0d024b07080f0f064b07b8ffedb40c0c 99.183 +064b07b8fffe40180d0d064b07061010064b07104d071117112711e711040011b8fff8b41010 99.184 +064b11b8fffa400b0e0e064b11100909024b11b8fff4400b1313024b11040d0d024b11b8fff4 99.185 +b41010024b11b8fff440110f0f024b110a0b0b024b11080c0c024b11b8fff440530f0f064b11 99.186 +100c0c064b1120171c271c371c030118400d0d024b18401010064b182c0d0d064b4718571867 99.187 +187718040018400e0e064b18400e10024b18160f141603521b0c52161f0a080a110a1b071607 99.188 +1206003f3f3f3f3f3f10ed10ed10ddcd10cd2b2b5f5d2b2b2b5f5d0110d62b2b2b2b2b2b2b2b 99.189 +2b2b2b5f5dfdd42b2b2b2b2b2b2b2b2b2b5dedd42b2b2b2b2b2b2b2b2b2b5ded5d5d3130005f 99.190 +5d012b2b2111342322060711231134262322060711231133173633321736363332161511055f 99.191 +db457816be776239811bbe7c3f6ea5e65c20ae5ca6b602a6fd5536fce802f94f5b5835fcea04 99.192 +2f7c908f3d52c5b2fd34000100120000049305b900070080401e270701280401079301042c13 99.193 +13024b049301442702010002081010064b02b8ffe440111313024b02180f0f024b02100b0b02 99.194 +4b02b8fff6b40d0d024b02b8ffe640200e0e064b02120f0f064b02010c0c064b02220d0d064b 99.195 +02074804480502080502003f3f10eded012f2b2b2b2b2b2b2b2b2b5f5dede62b10e65d5d3130 99.196 +011123112135211502acc8fe2e04810505fafb0505b4b400000000020050000001c105c4000b 99.197 +001100d9b613400f0f024b13b8ffc0b60d0d024b097b03b8fff4b40e0e064b03b8fff8b40f0f 99.198 +024b03b8fffab40c0c024b03b8fff940200c0c064b03110e0c4d7711010011041313024b1102 99.199 +1010024b110e0f0f024b11b8ffeeb40b0b024b11b8ffecb40c0c024b11b8ffe6400b0d0d024b 99.200 +110e0f0f064b11b8fff8400b0c0c064b11120d0d064b11b8ffd640100e0e064b11081111064b 99.201 +11130d511000b8ffc040120f0f024b007c06400f0f024b06100c0a1006003f3f10d62bed2b10 99.202 +ed0110d62b2b2b2b2b2b2b2b2b2b2b5f5dfdc610d42b2b2b2bed3130012b2b01321615140623 99.203 +2226353436031123352111014b314545313045443793015105c44530314545313144fa3c038f 99.204 +a0fbd100000000020041ffec041c04430019002201ff408724400b0b024b58170103b807018a 99.205 +079a07aa07ba07ca07da0706025705016808780888089808a808052808380848085808680878 99.206 +0888089808a808b808c808d8080c00571877180208221010024b08180f0f024b08180c0c024b 99.207 +082c0d0d024b08100c0c064b08100d0d064b081f4e471e0102171837184718671887189718a7 99.208 +18b718c7180918b8ffe0b40e0e064b18b8ffdeb41010024b18b8ffdcb40f0f024b18b8ffe2b4 99.209 +0c0c024b18b8ffd4b40d0d024b18b8ffe4b40c0c064b18b8ffe4406b0d0d064b18011e4e014e 99.210 +87100138104810581068100410100e0e064b10101010024b10100f0f024b101c0b0c024b1016 99.211 +0d0d024b100c0c0c064b100c0d0d064b102387079707a7070300270537054705570504020752 99.212 +2a083a084a08030357086708770803070817080208b8ffc0b40b0c024b08b8ffd4b40d0d064b 99.213 +08b8ffc040350d0d024b080c1e50470157016701a701b701050001400f0f024b01400d0d024b 99.214 +01400f0f064b010105581a011a5214100f0f024b14b8ffe8b40d0d024b14b8ffe840200e0e06 99.215 +4b140c0f0f064b14671401024a145a140205100c0c024b05520c0b1407003f3fed2b5d5f5d10 99.216 +2b2b2b2bed5d11392f2b2b2b5f5ded10d52b2b2b5d715f5ded5f5d5f710110d62b2b2b2b2b2b 99.217 +2b5d5deded10dd2b2b2b2b2b2b2b5d5f5dedc42b2b2b2b2b2b5d5f5d715d5f5d5d5f5d313001 99.218 +2b0121141716333237170607062322272635103736333217161514012207060721342726040d 99.219 +fcfc675b8fa36d502c5b728cca8d9da190c5e5827efe247f56520b0251484f0205bc65585f89 99.220 +2c202a8997ff0109a08f817ccd3f0169524e74734d5400010087000003d905e60013010d400d 99.221 +15400b0b024b07101710020100b8fff8b60c0c064b004d13b8ffecb41010064b13b8fff8b413 99.222 +13024b13b8fff640171010024b130a0f0f024b131a0b0b024b13080c0c024b13b8ffd6b40e0e 99.223 +064b13b8fff6400b0d0d024b130e0f0f064b13b8fff840130d0d064b13080b4d084d07091709 99.224 +2709030009b8fff2b41010064b09b8fff4b41313024b09b8fff4400b1010024b09040d0d024b 99.225 +09b8fff440110f0f024b090a0b0b024b09080c0c024b09b8fff4b40e0e064b09b8fffa400c0f 99.226 +0f064b09146a047a040204b8ffe8400f0f0f024b04520f130a090a0f070a00003f3f3f3f10ed 99.227 +2b5d0110d62b2b2b2b2b2b2b2b2b5f5deded10d42b2b2b2b2b2b2b2b2b2bed2b3130005f5d01 99.228 +2b2111342623220607112311331136363332161511031b766b458b25bebe26a95aaac102a178 99.229 +8a5136fce405e6fdd33b4fe0c2fd5f000001000cfe5c03e6042f000f0105b9000dffe0b31010 99.230 +024bb1020243545840120d0b0452030e0e060b06030d0f0e0d0b0c0db8fff4b70b0b024b0d0d 99.231 +11101112392f2bddcd10ddcd10c4003f3f3fed123931301bb1060243545840150d0b0452030e 99.232 +0e060b06030d0f0e0d0b0c0d0d11101112392fddcd10ddcd10c4003f3f3fed123931301b4058 99.233 +4c0801380f0127000103270401004701010237010103081128110200380d480d02020d0d0c45 99.234 +07010707040e4f0f110c4f450b0103040b10980da80d020167060102270d470d570d670d770d 99.235 +05000d0f0452030e0f060b06003f3f3fed11395f5d5f5d5f5d0110d6c65f5ded10d6ed11392f 99.236 +5d11393d2f5f5d5f5d5f5d5f5d5f5d5f5d5d5d31305959002b05060623353236353426270133 99.237 +010133022025ed9277aa3e31fedec2013b011bc2b66688aa6f5058ab7e02e9fcc4033c000001 99.238 +0041ffec02fc0443002100e7402b23400b0b024b081f181f02070e170e022823482388230300 99.239 +3a0c01351d0103c8110111054e671d771d021db8ffeeb40e0e064b1db8ffe0405a0d0d024b1d 99.240 +1700174e480c01970ca70cb70ce70c04000c040e0e064b0c22e81901271b0101280701270f01 99.241 +28200102651a751a020307191a0314034812581268127812c81205120f370147015701670177 99.242 +01b701c70107000103b8ffe040141113064b03522014181113064b14520f200b0f07003f3f10 99.243 +ed2b10ed2bc55f5d10c55d111217395f5d5f5d5d5d5f5d5d0110d62b5f5d5dedc610d42b2b5d 99.244 +edc45d5f5d5d5f5d3130005d5d012b37371633323534272e0335343633321707262322061514 99.245 +17171616151406232241439f61b0aa835b4321c09b75b2367172445d75887d72cab3a940b468 99.246 +946a4c3c3e4f593384944ab05a403167353e39926e90a300000000010041ffec03b504430017 99.247 +0119401e450501a1010103281938190200870d970da70d030200070d870d970d030db8fff4b4 99.248 +1010024b0db8ffeab40f0f024b0db8ffeab40b0c024b0db8ffe840610d0d024b0d074e381248 99.249 +12028712a712b712c712e712050012101010024b12180f0f024b12200b0c024b12180d0d024b 99.250 +12060e0e064b120c0e0e064b12120c0c064b12100d0d064b1218250a350a450a032a043a044a 99.251 +0403030c52070d170d020db8ffc040160b0b024b0d0f015208001800020000400b0b024b0004 99.252 +b8ffe8b40c0c024b04b8ffe840190d0d024b0452150a180c0c024b0a180d0d024b0a520f0b15 99.253 +07003f3fed2b2b10ed2b2bdd2b5f5ded10dd2b5ded5f5d5d0110d62b2b2b2b2b2b2b2b5f5d5d 99.254 +fdd42b2b2b2b5d3c5f5d5f5d5f5d5d3130010726262322061514163332371706232200351000 99.255 +21321603af5e1d93479bb6baa580824b99e2dbfee20129010253c203d8861d34d9bdbcc563a0 99.256 +630126fb01000136460000010096ffec020705e6000800c7b9000affc0b41313024b0ab8ffc0 99.257 +b41010024b0ab8ffc0402a0c0c024b070a170a270a370a470a570a670a770a08070617062706 99.258 +0306024d070117012701d701040001b8ffecb41313024b01b8ffeeb41010024b01b8fff24011 99.259 +0f0f024b01040b0b024b01040c0c024b01b8ffcc40170e0e064b01180f0f064b01130c0c064b 99.260 +01160d0d064b01b8ffec401b0b0b064b0109b705c70502010a081a082a083a08040652070b01 99.261 +00003f3fed5d5f5d0110d62b2b2b2b2b2b2b2b2b2b5f5dfdc65d5d3130012b2b2b1311331114 99.262 +1633152096be6350fe8f012f04b7fb695663aa00000000010050ffe7038805d2002601ccb102 99.263 +02435458401907221a0e180b0b024b0e120c0c024b0e22070e1a0425131714b8ffc040120c0c 99.264 +024b1411000401251749110304492509003fed3fed10cd123910cd2b1239121739012f2b2bcd 99.265 +2fcd31301bb106024354584086082401071001002520452065207520042a0b01034828a82802 99.266 +68130113074507223722672203221a001a45380e01870e01000e2777040102351e651e751e03 99.267 +351f451f651f751f040a0c3a0c4a0c6a0c7a0c0533220103380e010a0b1f1e04254814581468 99.268 +14781404141137014701570167017701a701b70107000125174911044925091103003f3fed10 99.269 +ed10cd5f5d10cd5d1217395d5f5d5d5d5d5f5d0110d65f5d5dedc410d45dedc45d5d3130005f 99.270 +5d5d5f5d5d1b4086082401071001002520452065207520042a0b01034828a828026813011307 99.271 +4507223722672203221a001a45380e01870e01000e2777040102351e651e751e03351f451f65 99.272 +1f751f040a0c3a0c4a0c6a0c7a0c0533220103380e010a0b1f1e042548145814681478140414 99.273 +1137014701570167017701a701b70107000125174911044925091103003f3fed10ed10cd5f5d 99.274 +10cd5d1217395d5f5d5d5d5d5f5d0110d65f5d5dedc410d45dedc45d5d3130005f5d5d5f5d5d 99.275 +5959373716163332363534262727262635343633321707262623220615141616171716161514 99.276 +042322544938a742758e4f9f769677e8b6f35f3b28a44666752a4b74789679fef7dec343b829 99.277 +3780634a7f4b3746c087a4d84fae1d36745b385c3e383947c598a5e60002004bffed03ec05e6 99.278 +000e0019011e40161b400b0b024b004d0d190c4d470d010d201313024b0db8ffeab41010024b 99.279 +0db8fff6400b0f0f024b0d080b0b024b0db8fff6b40c0c024b0db8ffe4400b0d0d024b0d0c0f 99.280 +0f064b0db8ffe2b40c0c064b0db8fff240660d0d064b0d140c0c0c064b144e87060138064806 99.281 +020006080f0f024b061a0b0b024b061a0c0c024b06120d0d024b060c0e0e064b06100c0c064b 99.282 +060c0d0d064b061a251635164516032a113a114a110303580368030216180b0c024b16100f0f 99.283 +024b16520311b8ffe8400e0b0c024b115209480901020e0a03b8fff0b60f0f024b030b09b8ff 99.284 +eeb70d0d024b09070d00003f3f2b3f2b3f5f5d10ed2b10ed2b2b5d5f5d5d0110d62b2b2b2b2b 99.285 +2b2b5f5d5dfd2bd42b2b2b2b2b2b2b2b2b5dfd3c10ed3130012b253506232202353400333217 99.286 +1133110326232206151021323637032e63bdc9fa0120c7a656bebe487d99bd01602d7e10014f 99.287 +630120f0f101554e01f1fa1b03366ce4b0fe7d39200000000001007dffec03e3042f001200fb 99.288 +402714400b0b024b7714010a4d074d070801170847087708a708048708b708e70803080c1010 99.289 +064b08b8fffab40e0e064b08b8ffecb41313024b08b8ffec400b1010024b08160b0b024b08b8 99.290 +ffeeb40d0d024b08b8ffccb40e0e064b08b8fff0b40c0c064b08b8fff440150d0d064b08004d 99.291 +e812f81202071217122712030012b8fff8b41313024b12b8fffab41010024b12b8fff640230f 99.292 +0f024b120c0b0b024b120c0c0c024b12080d0d024b12040c0c064b12040d0d064b12b8fffa40 99.293 +110e0e064b121303520e090a0e0b08061206003f3f3f3f10ed0110d62b2b2b2b2b2b2b2b2b5f 99.294 +5d5dfdd42b2b2b2b2b2b2b2b2b5d7172eded5d3130012b011114333236371133112335060623 99.295 +22263511013bd75e9c19bebe20c15cb0bb042ffd55f86c4702f0fbd1943f69caba02bf000000 99.296 +0002000300000000001400010000000000340004002000000004000400010000f012ffff0000 99.297 +f000ffff10000001000000000006003000000000001300000001000200030004000500060007 99.298 +00080009000a000b000c000d000e000f00100011001205e6000005b9001905b90014042f0014 99.299 +0000ffe70000ffec0000ffecfe5c000005c30000fe5400000338000005d300000253000005c8 99.300 +000a000000000000000000000000000000000000000000000000000000000000000000000000 99.301 +0000000000000000000000000000000000000000000000000000000000000000000000000000 99.302 +00000000000000c800cd00cd009600b400b400000000000000be00c800c8008c00a0009b0096 99.303 +0000000000be00c800c8000000aa00aa000000000064007d0082008c009600a00064007d0082 99.304 +008c009b00d20064007d0082008c009600a002300136011801a401d600460218012c01c20000 99.305 +01d600eb00eb01d1017f0154011301450168012c008d02350159033f0505012c00b4006e0136 99.306 +015e01cc01cc04d8006e006e01d600d2005f01f4012c007802d00190037f00800280006e00b4 99.307 +000000a5fea2003200b9008c0000000000000000000000000000000000000000000000000000 99.308 +0000000000000000000000000000000000000000000000000000000000000000000000000000 99.309 +0000080005e6000005b9001905b90014042f00140000ffe70000ffec0000ffecfe5c00000000 99.310 +0000000000000338000000000000025300000000000000000000000000000000000000000000 99.311 +0000000000000000000000000000000000000000000000000000000000000000000000000000 99.312 +000000000000000000000000000000000000000000000000000000c800cd00cd009600b400b4 99.313 +00000000000000be00c800c8008c00a0009b00960000000000be00c800c8000000aa00aa0000 99.314 +00000064007d0082008c009600a00064007d0082008c009b00d20064007d0082008c009600a0 99.315 +4036544b214a494847464544434241403f3e3d3c3b3a39383736352f2e2d2c2826252423221f 99.316 +181411100f0d0b0a090807060504030201002c4523466020b02660b004262348482d2c452346 99.317 +236120b02661b004262348482d2c45234660b0206120b04660b004262348482d2c4523462361 99.318 +b0206020b02661b02061b004262348482d2c45234660b0406120b06660b004262348482d2c45 99.319 +23462361b0406020b02661b04061b004262348482d2c0110203c003c2d2c20452320b0cd4423 99.320 +20b8015a51582320b08d44235920b0ed51582320b04d44235920b0042651582320b00d442359 99.321 +21212d2c20204518684420b001602045b04676688a4560442d2c01b10b0a432343650a2d2c00 99.322 +b10a0b4323430b2d2c00b0282370b101283e01b0282370b10228453ab10200080d2d2c2045b0 99.323 +0325456164b050515845441b2121592d2c2045b0004360442d2c01b00643b00743650a2d2c20 99.324 +69b04061b0008b20b12cc08a8cb8100062602b0c642364615c58b00361592d2c8a03458a8a87 99.325 +b0112bb0292344b0297ae4182d2c4565b02c234445b02b23442d2c4b525845441b2121592d2c 99.326 +01b005251023208af500b0016023edec2d2c01b005251023208af500b0016123edec2d2c01b0 99.327 +062510f500edec2d2c20b001600110203c003c2d2c20b001610110203c003c2d2c00b00743b0 99.328 +06430b2d2c21210c6423648bb84000622d2c21b08051580c6423648bb82000621bb200402f2b 99.329 +59b002602d2c21b0c051580c6423648bb81555621bb200802f2b59b002602d2c0c6423648bb8 99.330 +4000626023212d2c4523456023456023456023766818b08062202d2cb00426b00426b00425b0 99.331 +042545234520b003266062636820b0032661658a2344442d2c2045b0005458b040442045b040 99.332 +61441b2121592d2c45b1302f4523456160b0016069442d2c4b5158b02f2370b01423421b2121 99.333 +592d2c4b515820b0032545695358441b2121591b2121592d2c45b01443b0006063b001606944 99.334 +2d2cb02f45442d2c452320458a60442d2c45234560442d2c4b235158b90033ffe0b134201bb3 99.335 +330034005944442d2cb0164358b00326458a586466b01f601b64b020606620581b21b04059b0 99.336 +01615923586559b02923442310b029e01b2121212121592d2cb0164358b004254564b0206066 99.337 +20581b21b04059b0016123586559b0292344b00425b00725082058021b0359b0052510b00425 99.338 +2046b0042523423cb0072510b006252046b00425b0016023423c2058011b0059b0052510b004 99.339 +25b029e0b0072510b00625b029e0b00425b00725082058021b0359b00425b003254348b00625 99.340 +b00325b0016043481b2159212121212121212d2cb0164358b004254564b020606620581b21b0 99.341 +4059b0016123581b6559b0292344b00525b00825082058021b0359b0042510b005252046b004 99.342 +2523423cb00425b0072508b0072510b006252046b00425b0016023423c2058011b0059b00425 99.343 +10b00525b029e0b02920456544b0072510b00625b029e0b00525b00825082058021b0359b005 99.344 +25b003254348b00425b0072508b00625b00325b0016043481b2159212121212121212d2c02b0 99.345 +0425202046b004252342b0052508b003254548212121212d2c02b0032520b0042508b0022543 99.346 +482121212d2c452320451820b00050205823652359236820b040505821b04059235865598a60 99.347 +442d2c4b53234b515a5820458a60441b2121592d2c208a08234b538a4b515a5823381b212159 99.348 +2d2c00208a49b0005158b04023208a3812341b2121592d2c462346608a8a462320468a608a61 99.349 +b8ff8062232010238ab14b4b8a70456020b0005058b00161b8ffba8b1bb0468c59b010606801 99.350 +3a2d2c208a2349648a2353583c1b21592d2c4b505845441b2121592d2cb0024354584b53234b 99.351 +515a58381b2121591b21212121592d2cb1020042b123018851b1400188535a58b91000002088 99.352 +5458b202010243604259b12401885158b920000040885458b2020202436042b12401885458b2 99.353 +022002436042004b014b5258b2020802436042591bb940000080885458b202040243604259b9 99.354 +4000008063b80100885458b202080243604259b94000010063b80200885458b2021002436042 99.355 +59b94000020063b80400885458b202400243604259595959592d00000001000000050000093f 99.356 +e5da5f0f3cf5001b080000000000ad61b71900000000c142e956ff50fde708a8078b0000000a 99.357 +0001000000000000000100000783fe39000008e9ff50ff7808a8000100000000000000000000 99.358 +0000000000130400008004760096031c0096044b0041040400500434005006a4008702690000 99.359 +04a5001202480050045d0041045f008703f2000c033d004103f60041025c009603d900500475 99.360 +004b045f007d0000002800d20144020c031204340540054005940622075a080208a4094a0a00 99.361 +0a780b980c540cf2000100000013004d0007004b000500020010002f0055000002f001ff0003 99.362 +0001400a54bfa50140a5111546a4b8010cb2321fa1b8011540b21f1f6fc731216ec731216dc7 99.363 +31216cc731216bc731216ac7312169c7312168c7312167c7312166c7312165c7312164c73121 99.364 +63c7312162c7312161c7312160c731215fc731215ec731215dc731215cc731215bc731215ac7 99.365 +312159c7312158c7312157c7312156c7312155c7312154c7312153c7312152c7312151c73121 99.366 +50c731214fc731214ec731214dc731214cc731214bc731214ac7312149c7312148c7312147c7 99.367 +312146c7312145c7312144c73121b80137b26f0821b80136b26e0821b80135b26d0821b80134 99.368 +b26c0821b80133b26b0821b80132b26a0821b80131b2690821b80130b2680821b8012fb26708 99.369 +21b8012eb2660821b8012db2650821b8012cb2640821b8012bb2630821b8012ab2620821b801 99.370 +29b2610821b80128b2600821b80127b25f0821b80126b25e0821b80125b25d0821b80124b25c 99.371 +0821b80123b25b0821b80122b25a0821b80121b2590821b80120b2580821b8011fb2570821b8 99.372 +011eb2560821b8011db2550821b8011cb2540821b8011bb2530821b8011ab2520821b80119b2 99.373 +510821b80118b2500821b80117b24f0821b80116b24e0821b80115b24d0821b80114b24c0821 99.374 +b80113b24b0821b80112b24a0821b80111b2490821b80110b2480821b8010fb2470821b8010e 99.375 +b2460821b8010db2450821b8010c40ff4408216957311f5857311f5657311f5152311f464431 99.376 +1f4544311f4f4e311f4d4e311f2097309740975097043088010f8c018f849f84af84bf84cf84 99.377 +058f689f68af680360697069028f5b018f5a017057018f509f50af50bf50cf50058f519f51af 99.378 +51038f529f52af52033f7c4f7c02507b607b707b03704e01708f01308f608f708f03008e0100 99.379 +8e01408e708e02008e308e408e508e608e708e06107040700260740160730170440100282800 99.380 +000012110840370f3fce16010fa21fa20218c7312114c731210ec731210dc731210cc731210b 99.381 +c731210ac7312109c7312108c7312107c7312106c7312105c7312104c7312103c7312102c731 99.382 +2101c73121407c00c73121e0180821dc140821d60e0821d50d0821d40c0821d30b0821d20a08 99.383 +21d1090821d0080821cf070821ce060821cd050821cc040821cb030821ca020821c9010821c8 99.384 +000821230e45220c45210a452008451f06451e04451d02451c00451a08180816081408120810 99.385 +080e080c080a08080806080408020800084bb807ff524bb008505b58b101018e59b0124b004b 99.386 +5442b9000101ff858d2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b 99.387 +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b7342011d4bb01b5358b096 99.388 +1d594bb0325358b0001db1160042594b20b0325323b096515a58b0301d592b0145695342014b 99.389 +5058b108004259435c58b1080042591610703eb13737456920b0005458b040605944b1300070 99.390 +b33200300019701870737373737373747473737373737373737373737373737373732b2b2b2b 99.391 +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b 99.392 +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b 99.393 +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b742b00000000> 99.394 +] def 99.395 +FontName currentdict end definefont pop 99.396 +%%Page: 1 1 99.397 +%%BeginPageSetup 99.398 +%%PageBoundingBox: 0 0 206 75 99.399 +%%EndPageSetup 99.400 +q 99.401 +0 g 99.402 +0.864145 w 99.403 +0 J 99.404 +0 j 99.405 +[] 0.0 d 99.406 +4 M q 1 0 0 -1 0 74.329308 cm 99.407 +67.75 3.387 m 124.164 3.387 l 124.164 18.609 l 67.75 18.609 l 67.75 99.408 +3.387 l h 99.409 +67.75 3.387 m S Q 99.410 +BT 99.411 +8 0 0 8 70.70321 60.248497 Tm 99.412 +/f-0-0 1 Tf 99.413 +[<01>-1<0203040205060708>1<09060a>]TJ 99.414 +ET 99.415 +q 1 0 0 -1 0 74.329308 cm 99.416 +147.75 3.387 m 204.164 3.387 l 204.164 18.609 l 147.75 18.609 l 147.75 99.417 +3.387 l h 99.418 +147.75 3.387 m S Q 99.419 +BT 99.420 +8 0 0 8 150.70321 60.248497 Tm 99.421 +/f-0-0 1 Tf 99.422 +[<01>-1<0203040205060708>1<09060a>]TJ 99.423 +ET 99.424 +q 1 0 0 -1 0 74.329308 cm 99.425 +106.148 56.188 m 162.566 56.188 l 162.566 71.41 l 106.148 71.41 l 99.426 +106.148 56.188 l h 99.427 +106.148 56.188 m S Q 99.428 +BT 99.429 +8 0 0 8 109.10321 7.448497 Tm 99.430 +/f-0-0 1 Tf 99.431 +[<01>-1<0b0c>-1<0d090e>-1<050f07>1<0809060a>]TJ 99.432 +ET 99.433 +q 1 0 0 -1 0 74.329308 cm 99.434 +3.75 30.586 m 60.164 30.586 l 60.164 45.809 l 3.75 45.809 l 3.75 30.586 99.435 +l h 99.436 +3.75 30.586 m S Q 99.437 +BT 99.438 +8 0 0 8 3.603992 33.048497 Tm 99.439 +/f-0-0 1 Tf 99.440 +<100e0b0a11120f0a02070809060a>Tj 99.441 +ET 99.442 +0.8 w 99.443 +q 1 0 0 -1 0 74.329308 cm 99.444 +95.039 19.262 m 94.672 27 101.449 32.363 114.461 35.277 c 133.074 99.445 +39.445 131.441 55.703 131.441 55.703 c S Q 99.446 +133.785 22.595 m 131.344 17.571 l 129.949 22.982 l 130.996 22.032 99.447 +132.547 21.884 133.785 22.595 c h 99.448 +133.785 22.595 m f* 99.449 +q 1 0 0 -1 0 74.329308 cm 99.450 +173.063 19.262 m 173.43 27 166.652 32.363 153.641 35.277 c 135.027 99.451 +39.445 136.66 55.703 136.66 55.703 c S Q 99.452 +138.168 22.982 m 136.773 17.571 l 134.332 22.599 l 135.547 21.876 99.453 +137.098 22.036 138.168 22.982 c h 99.454 +138.168 22.982 m f* 99.455 +1.12 w 99.456 +[ 3.36 1.12] 0.224 d 99.457 +q 1 0 0 -1 0 74.329308 cm 99.458 +111.125 32.664 m 111.125 34.766 109.418 36.473 107.313 36.473 c 105.211 99.459 +36.473 103.504 34.766 103.504 32.664 c 103.504 30.559 105.211 28.852 99.460 +107.313 28.852 c 109.418 28.852 111.125 30.559 111.125 32.664 c h 99.461 +111.125 32.664 m S Q 99.462 +[ 3.36 1.12] 0.224 d 99.463 +q 1 0 0 -1 0 74.329308 cm 99.464 +163.922 32.664 m 163.922 34.766 162.219 36.473 160.113 36.473 c 158.012 99.465 +36.473 156.305 34.766 156.305 32.664 c 156.305 30.559 158.012 28.852 99.466 +160.113 28.852 c 162.219 28.852 163.922 30.559 163.922 32.664 c h 99.467 +163.922 32.664 m S Q 99.468 +0.8 w 99.469 +[ 3.2 0.8] 0 d 99.470 +q 1 0 0 -1 0 74.329308 cm 99.471 +104.352 35.625 m 60.328 37.32 l S Q 99.472 +[ 3.2 0.8] 0 d 99.473 +q 1 0 0 -1 0 74.329308 cm 99.474 +157.684 36.473 m 145.832 47.477 60.328 40.703 60.328 40.703 c S Q 99.475 +Q q 99.476 +q 0 0 207 75 rectclip 99.477 +% Fallback Image: x=0, y=0, w=206, h=74 res=300dpi size=796293 99.478 +[ 0.24 0 0 0.24 0 0.169308 ] concat 99.479 +/DeviceRGB setcolorspace 99.480 +8 dict dup begin 99.481 + /ImageType 1 def 99.482 + /Width 859 def 99.483 + /Height 309 def 99.484 + /BitsPerComponent 8 def 99.485 + /Decode [ 0 1 0 1 0 1 ] def 99.486 + /DataSource currentfile /ASCII85Decode filter /LZWDecode filter def 99.487 + /ImageMatrix [ 1 0 0 -1 0 309 ] def 99.488 +end 99.489 +image 99.490 +J3KW%GU+$o#COBr:T)u+*=mro@So+\<\5,H7Uo<*jE<[.O@Wn[3@'nb-^757;Rp>H>q_R=Al 99.491 + C^cenm@9:1mM9jS"!dTMT<$3[GQ$8#0$s<4ZX!SPQ1`B[F7^jpq0?^FN,^V01s.HIuWPG[6 99.492 + W[B=(iZ<kDqOh/Bf.DHAorf'R[o?>ioWjnAY&^gM+`4=1jRLW!YA=M/6)*KS9PE`kN%="Tc 99.493 + _Aoh+fk'&t\ctIN)4XQLiVp8<#YAIm[Y7B-r[TbficW^RQh!2M]<QfX_h/>87rW`7R`ng.Y 99.494 + r2oA,QcS@]\G\$U6`4nep,_pH-TAH`l>Cq)%f_I)hX5T5S6nLebM0LLI6LH!bN&*#rP(P"+ 99.495 + 0X8e4n!IWoKM[fr;O?J":"rmYZ)P=/W\C+#VBr\)#_11HnPfAcpQOe^lZJT&O\>6,mqMI<) 99.496 + 45nOSh6A`,RV,'LOT#CDfKZUgkE6.nj"d8#o$0"3&T&G8<[<jDuS:ne?\^ag-S(!6C:UB-p 99.497 + 7A"HtB0En$.'9/:TN,0H!@_^S6b'YcLslSP@q9rfh#(Vt(oQS:oZX&O[%1[41VTk`T"YUi< 99.498 + hWi8i09bg+EP\hF2dM.Ze8^`j*/PFP,br&5EPjLV0e.iE];:1TU%b7tHH5`j1e1'iRTrQXR 99.499 + INPu"D-PU,STS1=Q+_<Ies5WL?n57mLLOB9jb[-n29h7qf%+-#B\@P\VLI6"]sDG,[^EYYg 99.500 + \(fSCg4@h[qK%?D7a322>td=>o,*#G[4CIPBG^U($C!N\$_3;hY6\sHs_)@$XM]bjl;&$\7 99.501 + PhXh`*LjAmmZb(Q2_3`ZK_<p_AjFA%77DDdrK2-]MXs7L+uW=-cXF@lZG?OC`^75F#jVAY# 99.502 + <%\`S*rB">p.TkF2OIA9u6p5b>IpL\&@@QHqnTP$6]S#BkDG%7Req3JLkBtB=iV!+7RbHbk 99.503 + a-HE+Q3$uPElru[,[I%1alaH7$VVSE@=Pga+Dd1NS^$GKL!O-L47coJ*a2J%0EJR=cHRe=' 99.504 + ["!-:cS`u=SF8VeoGnH2dI`t_:"/bU:K>s<SSqfcp)T3*g%Lu?D;4e*cZS(<SaV!ap`9s"i 99.505 + V8utNT9gU:R1&;So:1_qAt]ol2%!TXm>j*caE0;SonVc[qKnq5bPJ>&r1NUs4-f@T5WQ[rZ 99.506 + @3_q>R"imJHo*ch78:TC;^Xhuj(2:_!Ol=:G;h6j\E@/d=Sn*<Y5Q&V<hS$:.cG"lR<:K2? 99.507 + Fq6.e=*i<1<W:lZ/T=A9+\6n*gdXqj@V>mM??%O#@C><YR"X9[MEL%+LO6eHetiWMQ';%=d 99.508 + <=H*pP6qN54/ga!=SJ1"9;2S4G.RdIA&#"ghL1E1\O>k=_h`2.$;-l"I=Nq`D6tqWXXu8c% 99.509 + h&GC-EK3oA3_*<>*TP(RM^.XAO1;bbUASC@0;6T[R11>#7#@%(/k/Cb*@'WuOciU;8kE/;- 99.510 + /dj2O0S[L_hc>[,m9p+;N=XI=\U@,7&cGLY#\0J>q=fKRW9![>/Oii(h(XBQ4iUl9A+_Hjo 99.511 + iMf;\!81=cG/u6n+Ei10P4AD#'kH@[C"?C/%j5*_"<+$F=Vf:"d3=k60b6;iYln=j8ti7-U 99.512 + 7@Y'*Rnh)jeQnX`\)H;@]24m0cZT2Y0,:YG\,#&OC0nY1N[=q*d]71#Ye/r!3V*CK%E&Y`5 99.513 + =51*N"%4/)^L@X>"coO<[klb'#e;OB*>"qTQ74G'4Y*Mu>>taF90r@pqRT!C,:$KVWVc<)U 99.514 + ;qcXql30JP<=Ya&>)cDE74o@@/s+%uP>gb#;6!VkW`<6)<U.P+X&X&?<:G07ke,0.nd7\ol 99.515 + C1rB7;7SMN([1)h-93!ENW<e\lW)&?0fH_WFF;`74Rn9lihsE<XuuK>7G$*[9j0(L-JP'!> 99.516 + jhhe$$2Tb#qh>>:Fe/ZW:th=kc)Pm002j<fYU3>>8i!7B*[qY1?e2?#/h]Z*m]Yg07cuD=, 99.517 + <Q[oVqR>71%%/@8*W2YQ-8>E*Xj7EN)A0'6EnSTF4QdC0gq`E:5BA16Q&\2S<n?.^<4.9P$ 99.518 + 2=*jFD=JoKiAUD);(7#/oh0SODnVKN>qGNf_io8IoZ*QKN96m9bCGk[u=:YGh$<;>*Q3>$+ 99.519 + /eq]M=*h)]0>4j0#iT#?#VVi&^=@i58'CRJkhZ96\6fkX=cn97:'eejY80CI*D3Pj/VKKb1 99.520 + ug-(NSkiq_fd[Cah&Q@DU&:')%Ro`4Ae^*<^k,5/b\3#;iGa-)9/(7.V-bG8h[ekL0/pIh2 99.521 + FdGZE@W[;9L34I$9rh7O6+*UF9`A+dDSAEPgC8PNA.GIV*0gXEI)WB.X"RieD$?fq1NC>KN 99.522 + >u5&JZn+#mrI*HuS$-I0SG/a&WiJ#b2_dopW0kUK6!2!1L-)BtAYX[N2rDPu#aHUuRj-9j> 99.523 + h(r)A$&F#`eXnBUKe%c&^CRol-2'jQugAUm5SVaW5p8n<5^KB&;q_U1=aP'ims(f;p[5Pt" 99.524 + fH:9)m?cM2[eA[EHRi]@NFe^P%cZ;KYA7H-f=U+HgY9>uE,Q3Q,PNN)b?LHKCJ?N?ZgRSG> 99.525 + 2seaSd3*m:@bn7$[V<&*?DW74PtC194cpp^c6f]dsMskES0BiX60TD]R,f2Sg/Bf[f=,_Q^ 99.526 + 27O3Ql]$A`OgQOn0W2'KJ??bF6a"Ac;eVq?Ak>r<K&bc=b4t?1,_G(T'UGF2[VC4NlJLVY+ 99.527 + 1Ed/(4SL]&<LFIXf2]*(@_q;7'II@jY%a'n@:_lS$qh$Nr?pZB0(\m^N_Q8dE+l8tc5G@(5 99.528 + ZHZ+E':i!T0DWfsU6kep5;grA^c_!<qOe^b<aa$u-iHL'4o%n6dGeIPGFM?,h5',.G+"?H& 99.529 + 6icft^Wh(s>lK-Ec10Qcd;m!/mH%uYJ:[=K;]qRu`+Qn%?OUcK?ZDhkKCKj%0Al]SS+=RQ+ 99.530 + 8'uaf"^Zu+$KA6pg4]pI!?$(?`29HhZ)e:s't7Q:US,jHhL$lFTC\4B`;?QD#W&`p`G:9V* 99.531 + ?p'<4gT;DWL-/Q@VikrboCIa7TB:jSqhKs,C.Km-=$m)!nC$kH:cb&298ChLJ4Yr3.s/YEJ 99.532 + o=IfF>8s.O-+mR$6><9Zpk"0\$nn3F,=klHZ;!QkWEn0n!L/G*mi#H8LABEG#ckSu:4'_%' 99.533 + XiSb(sI/++KJM4t>E'0e3VVP%Jrp!PjE/P"e>mV\5$"sbR8/DU$SI-gL#7gItmF)Hie;l;6 99.534 + J.TMG!RhN4BVa"6'_']Q&?a%bVV[C<"gIS.&EO%0;%Bi!"-EN'E6RK_q#^'o&ZFFnVuI4ho 99.535 + _Jnmr]njCd3B4hAIiXq$E*\48+R@N;%h81eIaXXnIjiaUuLi['X:o&&Kqk8RhIMgP&H'j:r 99.536 + pb@5fKufgX/-5EH_F<:6G'b(G(mi/7fPKbk@(E'sV*`l9qG+_VNQF(h`FX%DNV9HQ-rUV'. 99.537 + ]8kO]V]`:tJmV3/k=@=!INL`A,7)mC7X5oBG17&9?jIPH$e&_s2P^(X$)q@WH3C.f2epDcJ 99.538 + [$Hc-bB@e/Drt%dtqXMr.:R<&_8-uQq+UD3i&VR"o18N>L+7^-cnc/Y&*?0#A)A4>:ngPOK 99.539 + 3e.dP(@SFHc\!?r2]&U&(\0J\&D\8Fh]D<tr_^?K#P0($:8Lh6,_uUEESDkh;&k_Zq.`hLV 99.540 + r9"SHQO_3+*%/QEY\td.fN<N*)^i#n;/;BM(:&S,]V7]&"tCd9_ktE/1=FA&O*'>m\M[#,N 99.541 + 1L*1<h)Me>0D',uWNKP$7X$?DVY`-:g!3:b(aLGo@>5MG[k+b#3_n\KY\N%J'e#ZClYCiZ0 99.542 + eQVN72FL\i04$4RVKIBtL!Wa.D.h$co!q6N"4C/HCQHD_:C*HNj1Z6([hFXHBX2j7f2O+0( 99.543 + ::o;]^IrTBaYK6t3.41%Z-IK"UBBM$j;)T#%2X4@$8)Z7F3i6s_!9`f-8q@W(9,f[f3,2SX 99.544 + #MCtlFZ%P+2p[*s'7^CqK_l*p336aR&V2Q)m%lLeVXnR/PH:X&m!k4[4`ce_-n-k^FYQaa0 99.545 + shpWdiU1sC4B1@2D9\<ZO$=UAMrZ0$^*iSF2iYc!iOMH5En"%1cTpSp8=!h6ON?O-p]Hjn> 99.546 + 9-/Y*<=BnEQs7N5a-@_=.Hod/&<8A:??bV")PpZn39);*D9J#rFiD<,R,+7]3VU8CUD3'N0 99.547 + A/=#g8M7]PWD-oFP:T-I;.Y;F'c&@AB8G(F`LoJ)g5F<=7-f,@<n)Mf(f\=6SQRAV=?, 99.548 + o#MW%0j$dmU*>#b=DjNP*8:GZ<V(h4.-e1"pEi!j_-Ycp_o=TKO"YC@X09:T*Pn&5H\K);M 99.549 + ;Q&<HnEX%0deT%CV3MJr8(CRY[\].gK[fNb^]@LJkm5g=I<3o7[9j<L@gP"2V%m`o<JmUF+ 99.550 + %_7@$^H1;20sgpR+dap7W\'IeFchA92fs0;Xb+o[0%r"k>74h=>^X.'bpXHM,n@m=^fc`&E 99.551 + ?Z'<E.FA>JSW_#ME=HcRj9(**&^TojelH9.8.rV3Ot['il4eStu&(=CL/k192f/799%,1,R 99.552 + .M[LZJ@'4GWM@C?2=Q.Vp5Ndd9:Up]!+eX]^'[&%pEJMc*Z1u?Fjj^r1_68S2/<a'oKf0H? 99.553 + 97Ao:EO.0c0lQ'_C;?uM51tEc?[pFjO+Hj2Hp3ri]K4,#dA8st8Z5WJ%>bs?AIFa4NG.N+0 99.554 + P@rGo>4sHo'ZY!QQ"Y,mV3\uHQH'-8RN<(h9]tFtF3oIqVV60n8ubU!<d+7]JSnJiB<Qeu: 99.555 + p:otMcki(Bbo9JG*cTlmqL0>>um_>^mf<Ko4l>9*bnCFpAC_ph^hhDC_n0jQ:##D\qG5UB( 99.556 + dfaW_mk]F`"T^5mQ^n2cbB+V$=8Y0B`"H%u,Z/?PRHY:)7Pgk^@'nFJlP:CNj91kP&:_G7M 99.557 + [h=Z8<gG?\&<nSQmNK61[O-e3@KGBNNG6>sVTe&d!'dqo?[I!=4kep1c7,_(m>/@Mp:f(Rf 99.558 + uqdSiIH+3TppM>>gV.@r3J%)Oh=0[/cm<a%lKJ`4H!WRODPCa&^JsZJ4pHr"?c[uJoIFpN. 99.559 + =5p$aR""epV&)CJf7srZ(O6j"LUWOsC3_pCI=h1mC5;UM2XNR[j(\9)I+MYPntTc`Ck2!=% 99.560 + ^`--Q+Mh(1GTeuCq,`AfUn!ZeSr$rM.bd9E5-ros*lV_Is5=U0BIsH/S>oTIop]FE<%"=H! 99.561 + \"UMV+`$(GpY%M[7sqV>/kJ(n$$O*K+$LO&mul\7h\Jnta=jM\j^!W!e;5d-nJKOgn[lN)N 99.562 + Km&>bT"F74ArG@cd/r>&N:O1>RSoWN^Ac@6RmK_[Khpk\^U.]6@=PBcPN),Ydl4"L,>LcH' 99.563 + 3q#uCr@uZAGJbZb-pq;rm9pK`fP4?;N3JEeRK9)CHMKDpQBAo)an!=kKPp*K$MK+pVWJS0m 99.564 + K@hc6q0/9q#FS]aO6W]h:a"1_,kLMH:!XuFg#.S:?^l=GJ_@eh3H(CbeT9+C#hFtkG"M`PT 99.565 + n5:lIX1^e=d,;bbELW$Fd`].)B5Ch'p]a_T3;N#FVaQ?HH$YJo/)(<\ar?q++%0YU/gqn\c 99.566 + $N5,7Za:TR#sR\dkZ"/YP2FU1ccfq8JFVD5MU'T"!.J3\l8S'cEFsSiVga3Tm</6'f(GS2t 99.567 + D6Qj0IV9r=)7G*ap('[M.&++bDN&)'[MHBjo/\YiWMVoW)/m>72kH`>(2V]+A=>,%p@Vlb7 99.568 + pJ!RjLn[GPXdAr_FUj;@2g.eZ:Ffr=YV_5rZ/R=ocAY%2sW;@R?q&mcs,mg$.:AY&a;p;&G 99.569 + N.1WlP/-jAq?!NnO.r(dJ!7]@_&96Kl*S&1X;W+[qan3LS$8?[IImWJBN_GHJ#uo`K">s1q 99.570 + G_q`3i'@LIJZ@.4%H`+=FXOMUt_*A>0F%;>IHV#ZE\,Tg+U&V8\8,NXCp4r(#F_WLBho?Z2 99.571 + ;atg68a3-`7lXTP*;b0aN6Wk,%YF'3UI0]$7gS3P3u7]:+5a4+"QNq7?J/N-kN<]F2;4$,. 99.572 + 5`LV%Z[gNgV>Q`p9oITtQUBCWg)W.%t5V;(=Mqu=63TtafI`-\DZq_,@'_j9'gHo(<18:A- 99.573 + m)0jo^`i(K&4AURA;BP[,GF(+E\93d'=+A9JT^T&_R)R#!Q+^EK[9=HbBK<-*n\e[8_*"d6 99.574 + *1P#.\UZb_UMQQtY?@Xt/],$(b_P/t[oJG9f/%/EaH_0h)a2:[d175A^tc'-4RpC<mE5bgb 99.575 + $=\`S3s`T<NpkEc'TE'r+-V5Bu\sGJin%k]%b8P0g;+UBefuJ)5d[][E9K4`Ofun3Jn?3D_ 99.576 + lF_PW7XC)mdie\(+`]cs3?o?!GdKA'*Ml+8A42*8GtO!Z#!uQe]6uSA=uk`KGXXalj1!0:U 99.577 + D;`R>biIW@c,>CY-5YLIOOe?kL"Q8QiKNR4))eXa1i4IO-CkLTO#pcWYGSTi\q;6^RsYtrb 99.578 + lO4@iJ)r>AFZ7O8+I663=l-m]5>;fPOO+4VYrhQh]$^-4nh*\m2?-]A(bmKGEReb7ArQK]c 99.579 + d!M&/S]#tZlDI^e>$ZU)4bF*4LU*KDOT$_XrVWSBft9>Ei38F'rNEQa("GGAI_Hf#\m;MR- 99.580 + .op&k.WRr4i?:BoAaS,j/<^?2iHNul02jtdJb`O*dOSjdpnn2i&cRk'[ipCe^-HiIhsQtZ+ 99.581 + o(`$0"*2idH[BStG4/p!nM=I9sjhh333"4TtD*"Y^#^DSP2&8q<MW+9#2'hQ>n2YS?AZl[0 99.582 + <3VsE[6E?BYedN4+sq"O.r_;KdSm@=:48+l97C[O<pJ\I9'/q<,X7"IOmkQi-rVqpJJ?kJ[ 99.583 + rJ!,s((KCsXM)05UiZ=j>d`3<l=ShOQ4E9m?>?U<ap[oS%mscAQrmgfllS(JIe/LO\]Kh#& 99.584 + *nNM!b5X,j?R9`4a5J&^op*IFhd?(2NV7>Op:N-Ls/pilmItOEpUJWFs'aI8L%-84e]9K?S 99.585 + n\-fkP[UsrmRSa%gR^/#^h7)+V:#7)#1"a1a3J*PYNYBMacY<R$b<B$A8p8&(qWe8GeT7V% 99.586 + RFrM>J]L4m!Cobg'2eRms:hRFLYM4eGO6'H.\rM++1:knKRd/t#G3;sG)9Ptn;YX$r3%R.M 99.587 + i(?)uTD()itTiEJ-AlrKTUY1[[$>OE0DV9ZOV\ZIJCS(6ruFbCZP(X*X)SRf'10USA20,]b 99.588 + i:1Jn0gjjZ$P!:6jku=ro0pt`]dqAA=8YsmMobsB%Y?@ud<`7Q-"a-ZEgK\o+IFdk4]s->d 99.589 + =+0fRM*K[$%6Rrs6Z^H6F8?mCN_VqdP0)f@Cuh?S0U]XeZ[RsralW,>r>qCc_e$4JD;iW\5 99.590 + L+uSA(Jc:T7?>*rMhgbo7[-/Ca4tU^l:_@q`_3QnGPWaKHgdN:7=;f1=!H(br\K13psWK$V 99.591 + (NAE?n0j7.;/J^HKt3"E;?H37*I"$R./=S1fe2pr0N!HKRO$X9B\:C.&KkaGY^i(rgQq.iZ 99.592 + MZoQMQQEhc\CThrA&bW?'Y2\*H]q`oS:;QS%t9_1[#Sjc;R=Z%_n@q@YqBM7nCc1AmE[7CY 99.593 + [Kfr-c2#aN#1SkGicI<RB74L(('.fcW]/&`LEr',s]F>7f7FQA?4&7^i@^e9pl:T,e<:i$U 99.594 + ;j!5[8QSpUV"g!HeV$dbeuCT%<)k`F='!og"[,>Mm]@W@_fVVW0Jh)[1D*_IKqi?cB[oG1< 99.595 + -G!fZ64jd<nSXWN,NOfF3S6L<gP'0>MUb,[Xq`,otZ>f=(U\RfO+k)8B[1hPtP8D'Zk]0GU 99.596 + <eAg</EgK40"9EH<bUSf77WGa9k<;0U"PA(#8Nrm0%,*Arc9GpZ/<@0fT4P@]#M:PYV[7U" 99.597 + [.R?hWX65[t*ID]1K.dio%DF8(!qBh,q.To(MQ"^#+Rbq]7#%OPg)5a=4C@,nZb0*bK]+/3 99.598 + $re#c;)^`b-kq/JAZYb&!#H2BACD3`94/V;NCJ_sYSnlnN4b.&^*ppd_GHT>in=2u]U[@i; 99.599 + 'Z"[7G9b3WgW$dQC]!fi&Ft534$di?=$=rQHt)WnXh9EbeT'BHNP/I3m_aS9?!hC%6@ArOg 99.600 + \6(39AV3?:Oh>=*H$)RB@O[TiV@q4U"oIXL7R4J/n4b>HCi-;io>CKA)u>"cbo90hLET;A: 99.601 + C/rU\I&TgO"9qIXA;GqA7ubId:%]7t5+-qu8nU!<?LA"+ZIK"$h)C!ant8JWMbp5klK*@$D 99.602 + =VOB)`TGVKD1e/O%%Fq6n6-6+0@_/Z[:TUR&s$=O&fKoi_Z6MOst@?`R&OOb@<G]<rtP8\m 99.603 + 'FlYLUPmO0!6RhDr?:9%#&n4g5M30\D7/3Gi@['fKO]Eu$Gd/#ne6@inFtY@*9+_Kk?]:,5 99.604 + 1IcW:)Il`^NKLY.7ekp\iT"3NY%6u_2MW-Ee9`Su)E>e5!?bneK92636V)J7)4Q;,,-iOc8 99.605 + GODSA<`:@P#b4C[WM6gWloHZJjr?-5Y`QrQ^!Z!;bD=4.V2S>O`H1Vb5#HsAX'NeP1;oi2_ 99.606 + NuujEGPQdSS-_68p5&WgJtc@n_0111jM/R?KOA9_kA=AsCc5P?)HnH*K8>eD$IVG&L+N_)Q 99.607 + 'Aj.)=!F&%"L3N#il,86eq:ANj2B9`"ZPLb(VH1=(2eGGfRqL:GkkiO2G5`ZSaK2?k*?GsM 99.608 + b#a@6&66P5RBU'6"U@sLAl7kY>U&CVsjmPSD4\"ZN,G^#-j;gL28SM0T4JJ:2*84M?.-l5D 99.609 + CjKDU)IlNVeK^mNGTbK3G>N#dXD/4LTpsbJn_]l[I^L5p<;?,^85MaTPsVNOEqHgMOl*2Dl 99.610 + D20Cm6N&bH)n?=ZTKr!>%pE<Xd-8lMH\q=^_Lpm`jW(glB`l5D0<%IouMoH!*7='I^#+PSd 99.611 + E"?<ks-AYf<-DdoU*_ltqrlNEep*Ejc6ieWmJ,)?#BN[KeB!SM?EoJQ$=&:+[cm[>\3b>4T 99.612 + *&m?Of^Q'=:5EjcFZe[7)3RU'*O`@n@T_mkUm?<hP^4"aOP\Wk#`h"%lfDO&I!(Aa*DWf;- 99.613 + Re_<qGG4-@nR<WW2j.RUXo+eLiH>asA]$UHC>V"ERDj!70J1CF2]3ZnhSbnIk/-hHF21TW( 99.614 + =1u$(S'i8]JoFU""unHAfDtGnn<;lPQrM`I9JM4CNWlLC#-q[=6&89TA]0:?WWZQqMI$ju` 99.615 + J&+0@e&cCED]BHPRe:74E6BUYb/siC^+D@093=OP7G,;Xb0l@ONL$M\.f`*AGi*/#2W9:6U 99.616 + *)4*3e6P0KHf_X"9JTR:L/8?d+q&YC\m`<l@1;bh9D!NniOmo9!5n3S-2'bej<2c?IU&oV0 99.617 + ouhH%J4K?r6dP);sGO0SKTd@(o2kF.g1oQHGHKN<R1ijJi/d,*6?=&1JGRA`a1;Uh._MeNR 99.618 + VL\3R+c\>[4lLMA+FdB,[MVrSlHsQg\fVmDje:6bB%pnr&_p,Zd30g^2Z:S*8fnq%@m..Re 99.619 + [ZL4:RepJrS.W)Nek\bIaAhR*\%#?khZGs)Xl;UhZSoNVgfq62kV.!oD;O^;M"FO4F(@)9f 99.620 + '7;*daR>1Zb:T!'AMND&isn8_GD+"KclV^KFT06pKgVR>ZUrhTL$Rih@0ZM98df]S0p</Z5 99.621 + ,QhM/V+5LNo^>jd3&EEq<jkH#GJuUX,D1^2R,hQTO6]Z\d?fC!^ak.Kph,XauLo4F1'ql%Z 99.622 + YkLJq_8qNgO3q2_EGHWc71J[,a@GH>rY*&Teh"mgqZ,BeM$eT_U4m?U]tpA3lU`Xd.X^!sP 99.623 + )i+_%?fEUes?b^cU;-5Q^/+270_IYI1!dn"9ZU;pVG]+^+_uGoY60l^5T%1'XO.38g8'`,) 99.624 + Sec_:UFDrGdqbEU7l4WKo,\+KEisuX4dB;05muEd+Xui-T=ZK2TAON_1Z&#k<Z1g>bk'_;n 99.625 + nHAa*.V8VHlriLr`@PmB7(eLF(?Npf.?^k_s2[H=%.i2EWBZe$N>MepcXb6$\,P:"^g6554 99.626 + 5HL?e1AGYOH@Z-i4okp\R(*#Rum:\kmXdPLh@<4[/K;^flUFOKF(e#Sm7A3YKVh=P58;%L3 99.627 + s_3b/!$S.@%cbCXgJ%?MOF/-8*6Q9E;]1sc6(;T4BL(coSF_*f1iRi$p\T7R@%/^PFmJ9Jc 99.628 + 0HG7`r_-jCKYQ[0D@68!;_?;264.?JE/\hpX4n*NQF92\h/3R5bR4H;_PUm&YR#aU;":3[4 99.629 + O9:3d1cr&j_V@$qr%>L0+:XMk!?8cX\Dk9U&dm7s6ei<*\2H_Op]@L2#IHCU+NcU#BfjBS$ 99.630 + TKt/&19ehgC1_a%?hla@K/HC28h%?,\03QGU8?2#fR/2L#BrSXA_K>#me0L!J2RMn2A73FU 99.631 + '`tP>GW*X4m[eDoKefJim?`6qW(W?l,Ka6Kf]7/5SbCkranu`LLNb&=5id1(BGQ!%Z@uMrY 99.632 + 6?AB)hQ$J8%lka]RP-H)iI7iY&hBbUcAF@IZ(MVDcs(n?2JGTq4J!(].@W-?:l`5AMga4T& 99.633 + Fr-pd>C-@ema#&Al,Q%[D+q*lg86gLsGd*/=5Y-dCJ.UBh5T5L':ElGD8D1o%./egPO?GkD 99.634 + 8+7&!n1VmE.QP9RL.%=8cqm;]9#96;6DNC.*03\%r"e2sak59+a:Lg3W56,3U-NQf.#c109 99.635 + ZL+$79V',X+JI/oFCXNb*jR[/?9'!\-4ChJi&Ade?:'8"A9"qb8@VlUpC.+ZkK7B!sCp(S= 99.636 + <-(\0#E([tJHW+]XA,V8O9"-"r8JpfC,`'2/gkU-l%UM!#2X-TM`5$4rI1\/3A:OVQoCK^c 99.637 + %YJ7uMB'L\]<KcJB&[("79clX*i"2*&Q8@l_*b6fcn5B8!%/D!O.VS4=(JQY$$lk@VLi^<K 99.638 + !,!\<9ln40;3ki*G';V6X\9&(:6*Q#VNK=rOCc]@Bc\]HC-fjPfXQrWolqYdl:>G84m-c9? 99.639 + B$Un@#f+'e3!tY/>e5;%M>0KbBiN<pU5%%!Q!<eb82X2T+O:n^8jQFu,h._S!//h8!&0)/O 99.640 + =7umW&(AWaOh(<TJKDl0Ym>ELsXj%[0ogE$rG1X:tddu]_r,Rk!n#aXO%N4[1`kg)9dpu77 99.641 + aYdbH?J?%uql0#5!2+89E7h[`'q([3-n*N8jui+;:PIJ;gDCAI41;$IIl\;I(VID'r5(%oJ 99.642 + .A%2>U*fE`.`.oOSrLA6Z-r@\h[4>'HR;NXD"I5;P4$p`0ZN[U4sXZ',q3WcuT7>s.Q3/ga 99.643 + 0-e$=';r'W9l:4a31'tnZ4UF/G**7c.XVFNiN(_^D7!Jd(5`A[c9eb6)"\T:YbGfGZ;<5@q 99.644 + OHpE94AI,[dF;dWY`$uJ;7.SfeQl3UD-'_c=B1>`<Lm;nW)cp/p/Hj+\r^.C@6.7^^GGr2b 99.645 + :n6/'U9$[$jJ"`$fc>-NB%Dln'%8UMVSpL[9biS?a4sUeg,jt0T/prNt$eSRBXRMYliSpT# 99.646 + ;Vs"2(jg67'Z#`k\QQf0I""XYU$,?iU1Lf@\-e(f$g#/WlR5f'nRK!/4JhH5U:7Mlf6H8=p 99.647 + L(0j'E__/KXpXP8\5-^1?h=E(uO\9*ChO@O!5%f.OR<Kg*-n^ntA=>5E\7?/63Ko4]@fm'. 99.648 + oXd`-E8dk6)!-EO>TQ+-0`50PV#6gi)Tdg@jc35-d'h`(foTt78:=/s)#b@7e7@.14MV3fH 99.649 + =e2W*?t7n&6UmFq>8uQ0e#/D+;Hi;u_X&FLC*WlR\16TOg6d_#VuU#7[2<2O#Z\$3aJ'dIL 99.650 + E]'?9DDQpE4$=03<[=?>O_tdX/FCO-VnDDfM/p^rOZ:Q`Y]`0LeYV=aG\;^6A.eT-s0-Gb= 99.651 + dY\i`d6P:0BqJE!oh8kDHKT?(!`0=@:m5W!$tn"?#%-!(\Y+:!c_F_L!=,r,<D3^k"4$"3o 99.652 + t5U]\+("M^V"gpjHA_1LIp^XkX7#gAiiR+Y&-N7muG=m_cS5TS`Fin&^WL)otnX#=;:V?&j 99.653 + U6RpcI"I96\#D4o)U-'EL`W&I03\Z9N*HH\4qg^fUT&-,5?\*Q1^]7X-#"e=;:`,ch,RVGX 99.654 + ,[&t$`Md.iaJ"<:&/1^.i>r11=;g'X3XUl:?-l'-_)b)WeLq2?#dm;0!BOKj!M2*`12GO!r 99.655 + WQ^ZG$oJ!?\S*&ffDU4M[^F?^M#4HW[#)?$r=Aj@-.t+a?a:G3X&hA@K<43#UU4\hhi`M/G 99.656 + h$Pa[4rG);uE(aCq*s!(dj"al1B:?@tea:n1tn/f,QP?Ih5or+Hb>J-nQI@obE1?799K.L@ 99.657 + 5U!tId6UiZg45)M5(PFNm)jY]@?1:5IT;RG7gOJ,Ns3_HVcj,tJ!7QTCl4,W7T>fK=##!J, 99.658 + 5<mV.63d@UL#\M?2o40YQ%RI$#hC@W#TNiX$8N8BSpo_\#Y6!31';P+HF$p0WfEsNJM"M&* 99.659 + 7EXZ1?l"Juk0!,sku>)nWJnCf?cWRe.P58RU;H_*b?PH">Ok4rdTH":@/sB\SW7<r<=AM$B 99.660 + 0fU2hL9'.3a>KT$W_6hmW)qq-J`c53n<n9i1/(*.VF+_B8ml<R*e:h3&uDRkJ1eC?0^Wn>\ 99.661 + EbPApIA$0XtdE?,U<NU29qj/`m/[?=OH3M.#%I<@ia1-qa]Ib2/!\8@9-T3G0`IBPqTlIKN 99.662 + o4Tk;<+'n29WaHfME(R(XjAb``CPl[W.>fa5*K9MIPN#u#TbD'?./H'qPl7+t%Y0U4Z_lg& 99.663 + (S_mVjNbJ+il<.5(DLPs^>STr7MhK8Z@6$]p/HoBK@$2p/R)mP&>D6X:LKmQ1<VtS`6q:&X 99.664 + m$]?SBiMq1W/FZM#6ZgrV$:.hRVRq3B`>SUk^caZ"q;8"`-.<O\@0+[3_#]5Lr;?j<B1,mi 99.665 + $+*q%#l(Y,r%TNbMAOs82qo50$/WY.)Ra]:$=aX5[=\UAs>1C$Z1r:@l[QN]^69AkMFXO?F 99.666 + rF$L;2qpB'b%VQ4@eQ@ci'665IXVI4^8Z]>mg)@n*CnA)L6*M3KpOMiQa*PrAiEU<ee;>C\ 99.667 + @u+t1O%N^jpNA[AgD(#mRtrM"Za!Zqb:*ZF0sN/mksZ_KSic+@9>6X7q($Jh$\R<TE*r0:E 99.668 + &;..*eJL#5S`USL7U]?@9R6)(iJJ@88ZHS'i?>eH#C>k7aEYsc#mGD`4b6-4khp,\!%cW(< 99.669 + LI>2>aOl4Q[dbR0)N)>4,5pF+c!GE-@gXb7nHUV%`D$V2=+If\Cteg,Ki"LsP#6R!k6#p+h 99.670 + ;:SQqP%lfnpT8('uLABnSjF1$-XYk<[7sh6,9Y9$-K@UpI"3u!\!X62@i=?2NI/A954MSnu 99.671 + imgnLF'k\TI@,,P[4]Ym1rW*Gmr\AV-h:B-5g8o0oYY-7l7@7jHh+,_NR3?c[#*k_g5;M`B 99.672 + f&8Q?r"BjNI^N69j+=GS[;[Ke"MF>(q@0n#/j^sN-hC^Sr;p!>cRc-gS6@ni>ml@>H0T6"b 99.673 + ?YgZMJp17STD=6<-0K!F&/H'BT$QjsjHu+N6o:W*aY$).gS<0t:G3+2_Kun@2E<u%DpfqU^ 99.674 + f$JCPUFs;RA$lYVaL]Di.$if2FTEQYi5,3_(\Jo0FYJjj7oYC"<Le$6EUrR@k\FUm)P?_L# 99.675 + gU6YcX"nF[DWJL.!K('Ddg2q+iJ#+F]'fX7Znt>1Nb,DU=C@fd#=]A!R_qr:h,MS(lMa/@H 99.676 + :fMhp$<3B#mHCUf>p\TCs2^Q^8)A\g$3.NH#oo/P#NM"eo;u!Br#e'O`c<QTEZDlgc;]fGR 99.677 + 595][0Z$[Bkb@"6$[/qn5_CSqc/1\!n*)iq4XB9uAOY>=g&`q]X2r6V/-[i9p;*0f>$P>5k 99.678 + KR*f?+\V:FjC^BgY6u)(Ck'#kaqU@e"@#EO;#'a5[dN6].Ch\^MHhq:rH?q2A.#K?$/r7\m 99.679 + 8Q>s`>`1"P:IGW!hp61dp!IO<N:(j!@@&*KmdXdph*QuO;Xbcg.%$=]WIl6sU-+:2Eanc1# 99.680 + mSHG<'U&@j'9FEC@'Tm88MT65%KHOjok^95tLKa"==ikL-oCrpe]*Yrea!Nd<NTA2&hQGA' 99.681 + t)TL.*>M8S$7p7&Es7Q:kf;q1Qb!(k0_:PBYgDofJ\Xk-*Iml0h!65bBjbU\[a6VF2T/HA' 99.682 + S?.>UsgeTk.qYqW:\ldbk)G/7[o=_*R$6pT4:ZUp`HpLV=UF)0T7QZ`i"GC*@t<;6%1"u`6 99.683 + n)=YWs6!"ap`XsrCI"9Ng,0C.2_&U682$tpJ@s%)BL)R#=7MT*T(8jMkN+YdeXb8JI9oX_t 99.684 + g7U(]0G+b4Ee5Hi"DPco&Jr*)`A+02jrV(SNe0KlJP<%hg3$<Z[(l$7fo8c2c+<32CG!8M7 99.685 + "M]1blTdepfOHTmeV6Gds'g[oPFL0^X%7U8O,e1#l?m64:q_48Sds,$.*o##dmKb"QGXW]& 99.686 + Im!BaL7=K^egV`!f0cbn>Si45gm_k9O1>`R0'A(rfFCBW\3$_KqlQWVV4@.&[c?MPSNr<>q 99.687 + ^7'TEr$&Y,15aiQ*'-d#(sd!.-8@P5?\C["s9PjY=M8NHu>q(e!%3t*p`9MhbB\?aO:=jBa 99.688 + rC]hX.&q8E<Zb'0_ccFkq4uFW$#`KO`4TsD0W5.pm\06KZ)E=Hk.5hS+\BR^XK;eB:b\iOa 99.689 + l8[nj2J:Oc!N>NNLK!D\8p,PiPKK]WBS?L&]^?M96!\_>=3ia5R%G-5Yt><f*K\fPi.TB;S 99.690 + @3iuB\HLU;P)(]Mr#'#6l!4NgXV117pJ:gaG;eJ=pfQ2:q8iF!dB%['4+@oAl.@5c)H*J=5 99.691 + E\$WtDp^SL99<Gb)mt)N>l=;Au"RhoO$:LT:-.?]&;j@NUNg8JJ3UN@;RUOO5WhfgAUS)b! 99.692 + 2ij!Ion.Dd]FNIgno+9H0"fJB&,iI6&C\=u`L2A\Cm0_%h\&KL'iKc@:jQR2?umi$MA`,t: 99.693 + pDE"Z_:U6.&CX1mf=):XJDmI"%+m#i+G'V7chE`qs")^Iql*bG5^@7PgpT[$rn'+ZD^l06O 99.694 + nmL)bM3l/94Bk,pn]+uZOrSkA$<QfD`I(l->i&JnoA'@3d&`T8q&J=,nnT<)pe#VFUiI\YD 99.695 + ]CDmW`aM`B5iZN"Ce$6Ul+VVgJ"C%)nHJ!Z"05H-'sDCG9-.:ZqK77Mn2R6mP9l5aT&a:XQ 99.696 + rB=k+Vb2TT_ri+/jo-?X+E9HWY;XLA".kAbD6]RN(58B\B*YpLH,6^Lu\%*a@VIc]G)gB<X 99.697 + a]>9>'UbQkH5+=3\S(iZ]ML+IiZDV%/j&Fb),KSW$c!q[d;+db:,Po:\W(la6o.)I!UOUT= 99.698 + cZ5jM4<k@H_%cQJ3LW%-'M\q*XiZY=4+=0aUR"#b&a[o-_kS5#//JQ,3<H82DI'mD2)PZ7M 99.699 + !/*WF..W!(,:$iZd@?Oa7nc+/gSnT+XWT[SKLoI#U3L77j=$4(s$hP\+qaAC)\Zj"M*-&[; 99.700 + =4@GF[hq_#nA46\;i`(Z:a15I$#$6pW2>#!JlBLIBlPJ^B-ej?/1?,-I(48_d`Ve1mO2X1- 99.701 + Q<f(.2JD(^&4AKgDJW"sr6C"k*?q"?D/AJjO8]ZQ9dg!\cXsA2%_PS6Sc'7X'kiieHKe<j. 99.702 + >,2Wj)VS&iD6"c:27N=6AUU'5ZM3PRW&ES;4%@+<.!BI:kGq,O-:Hm3MHBL*pB(j#\":`9L 99.703 + &h#(np;6b^Bie8?Z4E=kMd>"+s/leON(]Y'65>bp$@gO>cUI6G2OpX?BaAe4b&"8]e$<'Gf 99.704 + r?S0o7Ie!R;]u]OOJ=.ZhpP+]!6G*`UK"mcb;'qe8@hfj<"c!+R[$e']<[+]OO+kQ3gV=-< 99.705 + @,r3.+OM\cN/C6LJ(2'!8>A)>EB&]!RQ/DR]TcZASjlc(k&0Z&l9g!5';MGYEB1V6V_TH1b 99.706 + TbJ8OmUgKOO0c,[i1&3?(a&q4MqT(lUn`.RW)B*0eB%02k1gQ"0oS+qA^R=CNECWW<osO/> 99.707 + W7b#\FW=VdmQ?H\Gb1=`HlBX=Bjc^'J-;k>k.,5,&5g60!^D:oJHp?L*kfc!6n)kF5]*/Hg 99.708 + g4`!Z#ZQ1sRG[#N84=UYO+nZJW?5pk.mihuUGFU8APUL3W-0H4kQF@P?'7AujTl&qR<)e"8 99.709 + 4\3/)(1]^O!#4+5YD*4rfGp1.$KUJ&V$jHR`k4es8RBJK'GA^6e.Ddq?tGV[+kUaq4M"3RV 99.710 + "#\8A1ifQWe:?u6Jj'@A;&r?1NLQ/?6o).f@$^Q7^:5h`NIN'[mD$mLrL>fQ@U=AS45k[aU 99.711 + Y\RES3kX&kFXP/>JT5%hPgk8b%<2aH[Pme24F^1F?\Wfpn%]*7^#SF@Ql[]VB(q\q=ICTpF 99.712 + V_H'?dSL.%ne"hFOkBG*!sF8.=19Y_k-%-=5UAamN2SV#e\Im\17&&NEVL>cSrC%;k/NoYd 99.713 + n&=cX#DBU$Y9Lhp0$p[C$&Id.L>!>)Gd3s"j0\3cn-5#$SWc_GieYFj"jAI(`dWS6H3p'<) 99.714 + ?#?l$l;k=(nDk4QIR:IQ@+im_1$IH$[eAfT<+)J?)AO<n2X@#<A)U/=Z6#Q(p?`pU]ia^ml 99.715 + ujl";'H!=Hu<sY0K8$K)1.^#E#P":kXGu'=?fDZP!=X+?CE+ME&8.9W^^@k%(FrS>M@@X5P 99.716 + V2c\9cbeOKFAZ[V!,(<8Wl!Y#7d##moYiXFa`cA$N.;)n;\")tJB%CO'Rnjo"-iD0]j(GS` 99.717 + g4h&XfU@1CZ?#RVa\Zq,<\("*hT;]9]S(E+;*2S.mHSKbPI-Ha7/:O1M*]i2:]RCU-YD@L" 99.718 + 6hRiG942V>*%O>1YO_$^VcjLpP+KS&'8g4Y4&jJE!rVMuKXE3<6a#iG:-c9_[q3(ZJ,kAPp 99.719 + NVLCYGBt$6J_dBRH65PV>4CH9iB+.t#4:X%WC_f\2*d8m2seLZ[7S8og^/IPciR"J4ok'02 99.720 + pLIM4t"<b?*_$1I3ugg?C8U6<0Lm!8$KXO;XkeLf(l$]n\1nT8fer;aY0^hIaJN"SicCW?R 99.721 + +[Bp["]_U[e>E0AldY%/f1!'p,K4n\=8cs23+rO91"8+C3nPF"dMXj>%k9N\hlb!Q!Xp"CA 99.722 + i/rn^'V6f:_ai;hm,&He+U>QS_L.cSk`'^b>J_FIr.c5QN\9#o/Ymr-qKYL`sHhZdt'/<?t 99.723 + 5O5g$JFQW($#I%n4OF7?&A7Dd!f^It`d!-c&B^cRl--u-*0D>RqV[ANc,_on9&@.5t+qUui 99.724 + mSKu2B_XOG+B`,I%)`]LV_Sd%ecrA4#8#`:@!N5Rpn+S344(eS&Fr:dOPn:Hq.^oFTqm9Z< 99.725 + p)(nPs>>SK!>/'>7g*W.r<lN0>@`h(Ab+R&Z]UOE0NpjSE1<Dfl9.gY_;TY]b9Y6/<HM)&> 99.726 + ]n7<u$fX-fi:I!ZVPeAt:Y[,qJHcEH36'I2@r`*(%Fi+gDkRpks[PlOD>e`$cY2Q6QD:)9= 99.727 + Z0!-V%EXW!==)UY]Od.l$C9#;.R,Au]g0'mrR3tt!gVns.f_S6_E]c?BR0B0dcn^/B:W;H] 99.728 + <aT=[A&OQg27&?rb*cPU&:l?GMNuYBerA"fr&eQ7[ruIa5*?rN=&QKb_-R+T!C&r\`Z8*U- 99.729 + GQhTr,,-hA-(;Un+?tD/N+-=7%_rgU3Y*Hn!+o%h!\dVf4!X<3-Glr*:e7:@Qsl*[+n<Lha 99.730 + 4;E7Ua&R-fP^>XJPQP+pC^97eFJW`!j:*0Tb+L>,0[XMU,rqWR/DOP")U_HbbZd5[g*$H/? 99.731 + imPceSfRRisLN+`a0rdZ>sl,3Y2.0%018Db;3=A0M>)!sM@9nieJ>>j:9*'Cu\ZkcRlq_K* 99.732 + J!,7dD@_g2DQfFkM?olBRY'/G@T5]j"9mB;a_&\A2*72u:-#I@0N&L&?u%-O?"2*rrRU(Vq 99.733 + '^=EPc[15[6d5^YLWmr:-Z/aC[a(0QCas8OM*^NR[JdRR&@kB0W+07Z[+u8-g2_.;=J--ZL 99.734 + +uM<]7!B<M,1D3i;i)W[\4TZF/$m>Le'T78f()]S+LAMNo=Hs`4$3b94AkUl+r3*[$3Tns0 99.735 + 49c)$,d2`M@['$<!<OA9unO<Ifa[K6.?rsc/gX2*eFjr(_Nj?1]Rfu+D2fP))ON%$.D9#Oq 99.736 + X'P%Q$p?TJ&`#+S=YO2e,0@LnKF`q'4B47au<%P&fs<G7YC5r3@@h1:C"S-Tq"QrXu:T["M 99.737 + t1La/)@nUa,"aUYZ%Pj]+l8OX:aOFKg??Tc]%##L]oaWX:<"\UJ"nVu65_D)lnYZA_\><kY 99.738 + U/J&9=k(Mib9Ok"_"LL87j$sg\:W(U0/HQD\$3:@L(!uM=,9R3M+Dp(!;8C(I&U4Q,AclXM 99.739 + 2rZ`OJ:BeV58IY(^0q[!inb_5s&>7U,kQ49%cK6=/Hlc7Vc'fG;j]F7-QuF=4ES"Ve)3C^B 99.740 + Hu\Nc';p6EA]4Ui&5GM/[<P\m<5^G;-0!i3Nd!R;q"e_CKbUk8IsoGe$W=j7p34Cn1LFJ!\ 99.741 + bJA`r)O@>f&1!JHRpnkQk2B$C0HVFlQ:icWh+n'D2d&@d\8Fa&LUd7c_T8BJN^'@e=,])tj 99.742 + b@BC$*$(FA&\?AYgYC.R]!F^g!m,7F<Seh^f&92uQ%1bKFu@RDuPqL6nQ4+S5o&agr8l@!K 99.743 + [2J<YGda_LmO'(h&3+n$jkCuXYE$U--8Omu91\4YkTNfI6e#e-oXVD(`Y;W)II`WL/8&7;G 99.744 + E$<eS0D9Zq(5>;c]/MH%9G.SEG&%$mV*<J/IjE3MEofLta<=P=l!Y"%j?s=Jk;;+CMA#igZ 99.745 + k+GsFFsj`,5+]^;5,:H,)QU@#:YH9pCg;tc@b'c_U&>uMu>u[]i8#kEm=_"f.qtF)Q^$S]W 99.746 + C`Lif+>>$4V2Oo]7;b[K8W"\8;9S3sO\^:9ZV-)Sai5)tCU^pN(OF2.Na7A+Fl='jT3B$$U 99.747 + TO-IV,Li_G7s8fZ%D_Uh8Yp#6BfV0[n:#ULQkFrDO.-ZL93nV$fH@Q(s(!hNjU,3*ib^d?D 99.748 + W%7<P:H<(djkD)gm!pn!](,nK&b0h?)l$o%ZJ&X*6f/=e0b%\r<guMQWM"k]9+^>2>E+$LL 99.749 + ;E07E\gE#E5AqAN=>D*%X+Qb?AUqmBUTd`2:Oi.4KYg0%Z+4B[=Yu4<m^J%+pgXgNO@Gsn6 99.750 + Qs-u!]Ch(GAZG"%(La\N=Z<HLB@&ELuKPj+LWKrHUmW*+LMXU[P/i'NXMQq^a"")R'PKI:g 99.751 + TKipOq0e=%Wp5Rn*T6I`/U;ZN-H8De3$^NP[>i+['s7'^<$F(rVs"l*!fpAf2!T5mEF)Dh] 99.752 + J,=97(^UmC9jD!n%J.!KR2NVOZZ!`aq2Gg`i!&7I/R3AU[QBT0fe<GUD',)l3ed=)oRhR2& 99.753 + C;YE'0quTt'+iOp,JhV,()*_Rg$5maOQmleq@d1F*2tAq7NE/E?RLRr.:fcFHDfcWPW4rP* 99.754 + BOnJk@?`jt$'S1G18-4Y@M9t//"2&RhGKRZUVuHNU7K3+3gf[e$f(KC$pHpT6b&.Q<,*Vu< 99.755 + q2G-,?6f85^@^`:(AR89@PdB'btc"X.Ymg,Io/[(P's.K_bEuT\:IS=ZG=up`>9q>f!rdU+ 99.756 + S'lXu_6UG^&+m7+jq.-jNHSI3WonfiTJ5KEuK6;?4U&-.Mjnr$*"#nV$0PGJR"H+ajRm2tH 99.757 + [0.>0[g3_bu+7%lTe@OOoY0r^*_DhG8U!F_urZqF:L45-hip[f[3N)c]YKUO#.ie_-]/lcD 99.758 + p6tE]q\tBd*W&g;$&Q,&0Kq!%u+ThD:$;('sPpeS:Z9A9gYJN#hDp+Rn0_OI*MphM,Rh@]W 99.759 + /dpis_U&c=2b"u#$]Va6ZIpIr&H@p#I4+euZMQi?=sZKEoHQ`:Q3=n'\2'T9RX!I+9op/i- 99.760 + 0Ulb,:kLTeSHf,L`dpVM"--d]+<)N!\k`@5`"HD2fr"#j*irLhbt^X%:Jlh[GD7DfM-n,]# 99.761 + [[Z)md.Zq(]<1-tSiMWQn1aa1Rnb]\CP8@PA\Sf=_"8^"_9i!\KgE_7kVmN*E^%84j9EW%g 99.762 + d;[XlnFV<Pc_-*J8P18?HX"R>`u'guLc@P7h2@NCQ'*:]BRR;&%_b0)P4\\Y!mbsA,(JMAm 99.763 + YrYTr?Do0P8)Ypo_e$L*!P?TheoQtgC0?)^]d@3SE_E93B>8PHk44GgM+`KLXm?pA_9`XS& 99.764 + )7gra=36m$?CV?XO:!pdO>JdU%P[&70iULnb<j'#[grSM68b#=)&6"FU>/>`a=-SJOilU-b 99.765 + `_:C&'N3!0?`X'Q(5knTE'QY"hVV>Z'XFQ_#@:Jm4kKS0GeT!AV)p;RN\i'SK)_!(hL]%<J 99.766 + >]MZaq1*4Yj_kERRAI8u5a8_o4o.1Etk`IbRa47)pUC=DipjHb3T,r'DV4fJi`(1Dh`U*9J 99.767 + I#lD0rO,?aW_pQ?Ye_9PXRcCEG/#%u2oK=C<VCnYdW;M6neYIM@mI5KeeQKgA=X.>t'^a)< 99.768 + /O(oCWO\\=4)M,#6aE(l?bag`&gVq76SNG\0NRDc?KpG/]dDN<HkMM/\e"-@"%HXXckaLPM 99.769 + 4A--Y+tWAtW%Wc"X[,sI3nQ,46+j2CEM>CofK[-?W:tq&j5*#]"XE$d/t%::^gLft*"D"9= 99.770 + 65&_hqDiG5$R-C'VA]B15`RdGX(9g:N5/Vj;>YHQc^N>jVYVp=gc_k]%u@31217&^W<UU+m 99.771 + (mWA6$5k,l0I:+qut[Cr!Za$\BNJScS1Z/`*m:d_[$=50*%^^#/h@mFeP;_B2WVn?%uB+rU 99.772 + !RIc'TnD="qdZ_#S%IeW>&H0r?OnCUNli6!5[7]hsMHU8A&!%EI@&+YnRn%'66]P6rO2KSm 99.773 + +o:J6W=7rg@=<XL+e7o7<4*Vp-",C<#oH.EaIkSfF(\;!Bp;S3Ghf&6gEC>(W+]sI'hX[=# 99.774 + NZo:9pOA575@q0KB@?gBq8K-'5G.dMn&YRr+orqc$3F4=Q6EcD".lXkJ&:h"Q$39c1qqH:? 99.775 + d_;kU]"QS'r$Q@_AHErBUbAQ+r_^(ht$/Aak^hNh]`%#90hD(=>V'2$&(_)OP"Y=+VBQ!if 99.776 + R?M?83=W7cTW`oR9(LO\"Pr=Yu^.n<Eu"P1aQH@47O;k*&rThJkQH:?Rhoo_sD-Tgm[6:^n 99.777 + IO/2C,eFP'5ETE;)j5R"0q3jDhi<pQ%)omX_cYu[L*=66"IBmj1P0=rb.f(saKmZ3jF[JbB 99.778 + 01p<09C^ht+_-lc">W*Z9M3:K&([5JGdu)7XnsNak?SRtn7OlBWV+:a7d:VE?Qgj`H<!@$l 99.779 + Rb]=*@BnL%p7#;%^<ZYbghjLsNRI-:[-=c<gi`d:alRR=SDBJe*!"'$\t*0:?a8;L34kW`< 99.780 + D\b8m6B/c?A]-<j7R`sT&4b+-+L<cXd5ONYCUc,5&V79](fu#.;2-O5d3'U"@4_@(C!10F< 99.781 + :cT0U*pl6EmgM$pu_u2\&3ZoKNmT0bd+j7'SR*$,nNTVYETbFC,kS0p2J-&5J(;*'12U@3- 99.782 + nL%">cWEYO9Q8?t!qq);*Co\Q[Oqss^#Vt5fH^f%PC/5%bJ[k:=ZoY3(R1DIkb9X?S%1efc 99.783 + *f/?@0FPf&Q1?;R_cEjnH4ARERlTPCAnu*[-/u_i;3[G4G4]+%9(Igja96U06dW=q,3(M_Z 99.784 + s1$OC2bm;Yofl8P2&/VZ<4+SZ<(o*E)cftHF^H>Tool+X<j#@p(0;uY:L5t;Kn!K42A6<ca 99.785 + `;.T8iRHALArI;oq!@22O11T>.1iBCg/gJ[r,EYotPHN2\jAR>dlT:FBph*f61H/Fl.FM2j 99.786 + NQP>==J>@Ga#opO4lq[JgWn0*B/RQP_NQ;rK\'(PZA.E]7I"D<("TY#MItAkI;s2i_CXp-4 99.787 + XL3>7g-Ot*2d!1LGsC*R;iTN.@2q&X1;B!O$6M:,Eo/S.i0`bhA^3YmLFBY$)b4s$AoQDtA 99.788 + )F(EZ9cA=EYB_o0@X>9Uj,5^P`%P^W0]$A@%CqDUOZu%?:q6hc':>U24/UE^<.[jHgJ"GCq 99.789 + pV(RF5.;kJRG7:Zfm=2d^MuA;(WLI-G)gWa+?(XI&q%#BH1N.k2QB6ZIm;;"]EO?DkIUqJd 99.790 + .KP'=4VN-F5"p>JU_:V'7I0b!r"'4GLuT&p1r(F>qWl@GQ'O^jEWpjQC\oLF/!8m/@]]b.Y 99.791 + ="jk'K;B@Gp<T)tfh>?JifoI(qVdd'UV2euB3eF!tr*/r=B?I35re(ONa^$,^m-_uG5u"p$ 99.792 + tI(*R'?<!1JnrtnTD"%o4+Jdfd'5r^9/?dfa>O+kM<=?-UooH/_k<VVR&U+p(2M?ZnQWWtL 99.793 + d#[qg./9"n2Z$2*7+ga1`&EXuIctO"_TQ#\k*,S)"U,$174,FOpRmSR;iF(/-M@i<,76%53 99.794 + TP0*1O/rq\E>o]dTH/t&/h4k#a?q.\a`rbV1<-iW)e3sC)0*UY_D;H1A$JuA1$1F8\CVVPo 99.795 + AF`ZMEXQk#pEh8@kHo?$'de2,>/mKOp?63$>Cq4jKpt/ct5PZ\M#=@oUh?UoIJ'>W"e>J@s 99.796 + PrePE^(9.qK-mK!Ju,7]BfJA[Jq5#gK@UU8S3ko"HX5k$\umGRPnBa*uIYdmI9#1M1aTRKe 99.797 + jlbrCUnb4mi`"].8)\YD)i7*:KA*cFe6aZ3ug=TjqaW^'u"=%@)q1^-]\cT0<7>m0)I'/Fo 99.798 + 1\bSI&nJDXU"KDUi#ZkZ+\N1tLKhqO^g1S?!PB8^>;*$-hKO#BDJ:<Imd1]#InirkUKr`Sp 99.799 + q]MjQ-`%NS6]8NXFD#jc.m[X4'gSNgBiR*(P`dECMKr!3oMHWO"R(ctLfT'q7k0)pV,R5X_ 99.800 + l;/uWO53p<B&4Q7=A5\/-HEI8@g$<E:g43%^?a9at-(;m&^tD7+Fo^U?[.&XgQ0Z=#W<K%e 99.801 + +,7%Rb@@](f8,om\1i]Q)RZ$uTkuj!+XI`>oQ,@ou:"JKT98#TDr=;C-7IQ<MO9]/\H[*M4 99.802 + X\C^'t\86$_(3$MBC9%pLJCIX#]+Z.7k#!6Kq7MNW]U5IbgLN;atGuR99%aNich.A#L`46[ 99.803 + 2jY>H@Q@M-EBu-#nh)Kp)!eo50G@[]VbIBnXM^TmW.aNc0U)i\VC:sVUod-7IHV`J@^'@Qr 99.804 + 7P!MIDmf=8!uh+c.#]oPI=)?8]^UT$nUXE2o;("X"^nt[Gfsb0_?mK5KOQ6:L,s7T=>p[,C 99.805 + _8$KhB0ZQK\52cfklPFdS5?E'k/^rYmW;X@SLkO9082mEOIgH"q3t2[*fJinJG<%!Ao?9M/ 99.806 + G&n7k(rl,\4QUP=auaapFr2$aMZ$19tMbJNG5jZ@.nAk$Q=MKnpLI'U\8J*alkD1GW4SRn8 99.807 + oPc.U,tB/0iDJsp0bRH0ISJ81Iu#'A2pG;s7V$))@[PgKehdK:HP7VaJ]!np.6k\V_7ZlYL 99.808 + ])J9-]D)dmdAtL?'RboFE7MYRHVi99A-"@_mpS1.PZT=jaCHIU^Fg>1P+L2:d<<t(;m#;Ys 99.809 + dopI6Ks>eYCnMqg/IGdN9ZqiS"USoeNNJ8@p*S>E)eP?Ac+'%T0&OagaAM@^YH<?#g='85F 99.810 + DeeF5Gjh*9&b2C'9_*\:5DX%)n/FWXnBGQo]*L?*3'#<#[BsZMW"e.4n-/bTQfQ.iYou=L2 99.811 + JHZGdeLL*+t7N^,a5YpE/H9LQQU@8]c6:-fl>GQ#[F1b=\QZ#$e@""tjQj3O)O>]ZZje^3S 99.812 + %MpHRj^#GH/gqnu1#&*Vgs8o2=9Wd8kbl5`BoFZueTHFHuA*AaN/SrqV#p2fJhA$L2@ak;# 99.813 + "BC-_;[3b7Kf?>mRmG5f:Fro8kHae4f*Tt+[^A(>_DfURnWCUdUpPh#%JFOL=\ej[b1^=PP 99.814 + /%'nR;YeLT:60np-%EFMT/hnD?,/roFnBrh*TfKsAFN50iG/34>Wk<To@ku=qB',?r?6X^h 99.815 + UJ7p^NK!`\">*52r?cjDH/jG_oocl<]X#Z8T=FFqB#[i)"31N?:Vs`59K2)T6^/0olKm2]B 99.816 + ]@hHhIbigAHWQmf&j3;h#**r-u-)raK+.5ER;kJ)C3&TAE4*MuB1CqE+:\^]S45;4P9KA[R 99.817 + Hu^g`nMkQ!jF#+Sp!!!E*`P<hGq)'PLR0rtbunrpk:#f-8M5bncR)Sj/3_D.Pj4?O:nEc]& 99.818 + )g-L*!&];f-,T4D5IZ;Oe^1'=?C^%Yn+K$b-XqW#u<"d$[,=+^<0n]Zq>&_;o,smc!66n"L 99.819 + 4<t(].gWcb_UL36,V$\$XMVn0Ln$(b,Vu2H0LJ.$6Q@t>F>H:+320A06]n%ZCc[AG3((VIT 99.820 + nGHoiL.Tr5DT/"6kht\X?T*-O2MGk`$@ahEWAKq8!r(#_rO;*PY7W*8;RAU"5tgj^a?>=7K 99.821 + o#RL<NPOf]\Plf7nrS`;EUGHrLEiW!Hp67:U^6EO/'/4iF^$7H*W%d#XA]1e&0WL<,7kJNU 99.822 + mGW^QbdN,Y<+OG1\FUrHYE6*&GN9L_<A*i.9:7I4ob*++Nl2oW:_7QES#LmLSup;\SM`d!2 99.823 + -30qTVZ:2u"7GMfOZ/<S%NlP7U4EthHGq4h]LWA(/`M?\X)"pK;Y"2*D81[e43O-Vp3le=K 99.824 + aJ%2*aGrenL*^MTa*<n$I"=b%-qMF\aVj53N&aG!MTJ`BaLkHn#`D,JW^[OV8H?LLN09'?S 99.825 + /tXn_i0i%>b@O&QAF%]#],[H+qR@+TZTjd8`Vg%oUng-^If&rb#j>>1ma/3;2(608X*XUd" 99.826 + tBQUr_2JaOmL\i.nPD:rZF]-/=93;(W(GXMl0e%!5=MY`)"K?-)408X`r.]V3GlYY(jJbCG 99.827 + HWUje+VI`p2f9/3k)+C<$Uf?9t394=ho5`X$PXda.<Z/!*OgnqtoVojtGRnTf;`5.6(kXLb 99.828 + `LiDS!BeI@%Z%uYPMG0(ee?'(RcNm4KP4Z*)+Y8H)g_1B&Xb>B0I(ddWHqf]Zbs7jqBS9&1 99.829 + jpFdYb]tm1r-loL0$JR!:(]2*+D;+(cpL4K9dK;!,h!%3e5!+0Z.te3A9c+I`X57radB)!# 99.830 + _Y_D0ho$ac2`d!fegYRL.n!k:P<a^#d;NuK?f:03u#koK`%$5[gD-c6Tjp82%,k[oE_h#aP 99.831 + =JReDH?%:rXW2aP?fSFUs9jondf*#^iq88mR6`]rZVYLcf,tI1_9oV9\;);%uq75fQKFF3n 99.832 + lZc(G&)q[68oK2McF9AJp^bl`jr"GgTbP._`i<?b1#q%+7\dA8.Cl)C,MLJ^mJ/:?R-:mFb 99.833 + "a&5I!d%iEn[1#ubU!V;!;cP?(>^k)UeUhWB%!8\/V%X/X!/On1$$;SkXZV+;#m`+39l29a 99.834 + AO6a#-O?6dLm8e_]cr;LhbZ/!$Pc-,j\AR4^Jn0]4FGaU.#:e=Q;B.hN,:^U(lD+fUsnh)d 99.835 + qg_eI5ocnRa[eE'6P9ofW#4r(KCHi:k4k^n;#PMQO&!*M.Kc."\/i(6rX`%asBgi[;/NkBM 99.836 + 'jn:NZDgV+=YVKiCK4#fL1GBKcb$>/Kr:e]i9*%:.Kj1J+-M<paHl"_#ln;UKnHLi$Q,D#K 99.837 + 0$F&UV08(DJ_70/6V@u8/D(enTTh*+oZ.+gAV=IcEoXUnM9o[_QG!!&,3^l6lE0%XZY=Wrf 99.838 + ,Knr@b1_,I>95RVP4c@nILkoVt;cn\%7>2"a1lLqFf;0kJQ&JcMRmn]7P;SS.%0Tgf3a)EK 99.839 + fZalZ9l/Nd;:eKV]u4^)XDGRT+$Oh1g>TbK4eGnpCYF24gB`R6^m7ufK[rjtLks&O.*#;pG 99.840 + hP<X>F:W/3AjttHWHuJgW5]7<O1AE]j(HHe6,Ss0V;JV/Qj*sggPWbrEn>&PYb&Ma#sLEkc 99.841 + .iXNDfD^gL[ZqNJgtBOPI@d7/Y*Ym0-XHO,9FX>V4=V"i44#f3>*(>t*ET<Q)b^`S>=dQ4: 99.842 + mdXhR;a^066+#^o\%9iKek!)kS6fQD^MIGbBbLKum#;ui68S\a-Y.GbW-h-b`\V<uMqL"LP 99.843 + 0N31l%S_[T5oTaRV<,L@r*Qd%VDu^&97m4bHUp\\-p>-pGhG*/>(&2-Ymp=f4?lf2NrTB#K 99.844 + Qf&>"?eBkcl%KPjo0S`7?WIMu?1qQpkZ\f+i'iZ^^#[c`U;pi%asGHc'pf3&rs1L_?u?/U9 99.845 + q2R@mb[pQ?*4t$2=-,NIgSnIN'7P7<XN6C+HseR?Ig#b%KbQ(,7#n88-M(SR$C76dl`=+M, 99.846 + ihtAc#ph)[KH($#3c)J:ba?ABT+N7-2n=gf7hAQ<C<FbhU>BDD-kg)-\-NhZ\kd7I)\b3(u 99.847 + ucb102n(*>k$+CZ*POu=Lllt9cr"P@ijRp_1]0ec]UcXFfVj(U;Zn:K:)3+RhujF/?\4um& 99.848 + K3au,8im<<g=Ye`kWJ2B36Hhf-(.)S`)<<\I@+GqO*Ym[%$WT%Q#ej6#hA'Q\NFPO3cM3-* 99.849 + d4ls(45`YchG-t*hG@g-)W3dfk$=lnVI^D6@YtX\65EYaNc1&'=lFNqjShR,7NH+aMG)'k> 99.850 + ia%\efJE/N_E<M=s[0-`4IQsMW^F7%!56Ijse\MU/jgBk?(GK4rEASGh_Y$hSraS%Yk=Sbi 99.851 + SPJ(f#<UV5c^:X$tR?20H#MhJd00L1_)B$Dpe@2JthkDeT]HNujFH(oh8V3GCl$Bi^O6Yj6 99.852 + "C(smu^`"ncWSsnoXTT3WSO''D3$t3']#XlD!6%5JA(8m.pU(59sAA4o(_sHU:H>)@B_Li! 99.853 + VL9HfLW=H`phRmakA/B!(Y\R([CCofgCmjJ]E62Fm_*56l?Fu0![d1`5CSVR.[_;#-_s>mh 99.854 + MWVXgrkIeH`/>DIlqjd"1_4Cl`pAehlt4B"ri<dtXN6^0_L#BMm`TGIlKk\#gd]LPY0BO-c 99.855 + 9U6h^4+LIG,W-E`^,pBN5ioR^<#]=gkiJemEh?iZjCThhX1r=D<Bf6T&7>$i9iMbM#QE%@$ 99.856 + >Ir#&[K)m\#M(GXu_gkjI$hmcNs*p@%GSnF%._mj@Vo2Y6B,o^>iRmq2:^G5(H[q!XOEn## 99.857 + sM[eoO5r9r58mtU03L/p];l0b_ULn"^^mfW&L"RoIrn7Msj``C#2!H9CmLj&r?G73o\%.Mj 99.858 + XnDQAn1skVf-JI>aE?MK)[gqpu'_,6>nRi8Lr:0:bk32gXnY!!%:hkYR*:_W$n`Lt`pE/r2 99.859 + +S$<lng>XP2^@l`,k>"_nn0<?G:2s:..W]Rnu!u.[k%$i/FqCEo&h09^B!eaO",o'o-Z<b0 99.860 + V7d#1\4[*mADf4B/fF:`H-5_o;=Y8#<DCb4S.-co>a#cpHRTAj#,^ZF=0ECT[O9q_3rC"nI 99.861 + \D'aLCes8G&6?oVY=R[nHA69_?q2o]K!ApJ:Ge;"YW%od<Z12cKB><:s<mok.=uG?=Hm=S8 99.862 + "`oqu!d[p/OG>kQ]Sp#fZSpL!V!@.kCFp*X>C2e2POAG0)9p1J"2GA$W)B_Id&_:^-)2b#r 99.863 + >8-d1(NR)M9pM]d2E;(/gpEt"U2fn^`FSAjZpLe[DGB`e:Gk[PMpSW?3[sRkiI.u6@pZI#" 99.864 + pODrCJG9q3pa:[g2hUlqK_SW&ph,?VGDGsKM"m<npns#E[u:%%N;2"apud\4pQ,*"[_*IUp 99.865 + :.Gb#Q~>Q 99.866 +Q 99.867 +showpage 99.868 +%%Trailer 99.869 +count op_count sub {pop} repeat 99.870 +countdictstack dict_count sub {end} repeat 99.871 +cairo_eps_state restore 99.872 +%%EOF
100.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 100.2 +++ b/0__Papers/VMS/VMS__Foundation_Paper/VMS__Full_conference_version/figures/Time_layers.svg Sat Aug 03 19:24:22 2013 -0700 100.3 @@ -0,0 +1,198 @@ 100.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 100.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 100.6 + 100.7 +<svg 100.8 + xmlns:dc="http://purl.org/dc/elements/1.1/" 100.9 + xmlns:cc="http://creativecommons.org/ns#" 100.10 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 100.11 + xmlns:svg="http://www.w3.org/2000/svg" 100.12 + xmlns="http://www.w3.org/2000/svg" 100.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 100.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 100.15 + width="744.09448819" 100.16 + height="1052.3622047" 100.17 + id="svg2" 100.18 + sodipodi:version="0.32" 100.19 + inkscape:version="0.47 r22583" 100.20 + sodipodi:docname="Time_layers.svg" 100.21 + inkscape:output_extension="org.inkscape.output.svg.inkscape" 100.22 + version="1.1"> 100.23 + <defs 100.24 + id="defs4"> 100.25 + <marker 100.26 + inkscape:stockid="Arrow2Mend" 100.27 + orient="auto" 100.28 + refY="0.0" 100.29 + refX="0.0" 100.30 + id="Arrow2Mend" 100.31 + style="overflow:visible;"> 100.32 + <path 100.33 + id="path4008" 100.34 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 100.35 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 100.36 + transform="scale(0.6) rotate(180) translate(0,0)" /> 100.37 + </marker> 100.38 + <inkscape:perspective 100.39 + sodipodi:type="inkscape:persp3d" 100.40 + inkscape:vp_x="0 : 526.18109 : 1" 100.41 + inkscape:vp_y="0 : 1000 : 0" 100.42 + inkscape:vp_z="744.09448 : 526.18109 : 1" 100.43 + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" 100.44 + id="perspective10" /> 100.45 + </defs> 100.46 + <sodipodi:namedview 100.47 + id="base" 100.48 + pagecolor="#ffffff" 100.49 + bordercolor="#666666" 100.50 + borderopacity="1.0" 100.51 + gridtolerance="10000" 100.52 + guidetolerance="10" 100.53 + objecttolerance="10" 100.54 + inkscape:pageopacity="0.0" 100.55 + inkscape:pageshadow="2" 100.56 + inkscape:zoom="1.3364318" 100.57 + inkscape:cx="426.82234" 100.58 + inkscape:cy="692.65809" 100.59 + inkscape:document-units="px" 100.60 + inkscape:current-layer="layer1" 100.61 + showgrid="false" 100.62 + inkscape:window-width="730" 100.63 + inkscape:window-height="1141" 100.64 + inkscape:window-x="889" 100.65 + inkscape:window-y="6" 100.66 + inkscape:window-maximized="0" /> 100.67 + <metadata 100.68 + id="metadata7"> 100.69 + <rdf:RDF> 100.70 + <cc:Work 100.71 + rdf:about=""> 100.72 + <dc:format>image/svg+xml</dc:format> 100.73 + <dc:type 100.74 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 100.75 + <dc:title></dc:title> 100.76 + </cc:Work> 100.77 + </rdf:RDF> 100.78 + </metadata> 100.79 + <g 100.80 + inkscape:label="Layer 1" 100.81 + inkscape:groupmode="layer" 100.82 + id="layer1"> 100.83 + <rect 100.84 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0.60163802" 100.85 + id="rect2383" 100.86 + width="70.518539" 100.87 + height="19.030159" 100.88 + x="336.78796" 100.89 + y="189.7659" /> 100.90 + <text 100.91 + xml:space="preserve" 100.92 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 100.93 + x="340.47986" 100.94 + y="203.13492" 100.95 + id="text3161" 100.96 + sodipodi:linespacing="100%"><tspan 100.97 + sodipodi:role="line" 100.98 + id="tspan3163" 100.99 + x="340.47986" 100.100 + y="203.13492">Program Time</tspan></text> 100.101 + <rect 100.102 + y="189.7659" 100.103 + x="436.78796" 100.104 + height="19.030159" 100.105 + width="70.518539" 100.106 + id="rect3184" 100.107 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0.60163802" /> 100.108 + <text 100.109 + sodipodi:linespacing="100%" 100.110 + id="text3186" 100.111 + y="203.13492" 100.112 + x="440.47986" 100.113 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 100.114 + xml:space="preserve"><tspan 100.115 + y="203.13492" 100.116 + x="440.47986" 100.117 + id="tspan3188" 100.118 + sodipodi:role="line">Program Time</tspan></text> 100.119 + <rect 100.120 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0.60163802" 100.121 + id="rect3190" 100.122 + width="70.518539" 100.123 + height="19.030159" 100.124 + x="384.78796" 100.125 + y="255.7659" /> 100.126 + <text 100.127 + xml:space="preserve" 100.128 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 100.129 + x="388.47986" 100.130 + y="269.13492" 100.131 + id="text3192" 100.132 + sodipodi:linespacing="100%"><tspan 100.133 + sodipodi:role="line" 100.134 + id="tspan3194" 100.135 + x="388.47986" 100.136 + y="269.13492">Physical Time</tspan></text> 100.137 + <rect 100.138 + y="223.7659" 100.139 + x="256.78796" 100.140 + height="19.030159" 100.141 + width="70.518539" 100.142 + id="rect3196" 100.143 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0.60163802" /> 100.144 + <text 100.145 + sodipodi:linespacing="100%" 100.146 + id="text3198" 100.147 + y="237.13492" 100.148 + x="256.60583" 100.149 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 100.150 + xml:space="preserve"><tspan 100.151 + y="237.13492" 100.152 + x="256.60583" 100.153 + id="tspan3200" 100.154 + sodipodi:role="line">Scheduler Time</tspan></text> 100.155 + <path 100.156 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" 100.157 + d="m 370.89947,209.61086 c -0.45745,9.67339 8.01218,16.37862 24.2787,20.01984 23.26745,5.20837 21.22395,25.53343 21.22395,25.53343" 100.158 + id="path3202" 100.159 + sodipodi:nodetypes="csc" /> 100.160 + <path 100.161 + sodipodi:nodetypes="csc" 100.162 + id="path3204" 100.163 + d="m 468.43014,209.61086 c 0.45745,9.67339 -8.01218,16.37862 -24.2787,20.01984 -23.26745,5.20837 -21.22395,25.53343 -21.22395,25.53343" 100.164 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" /> 100.165 + <path 100.166 + sodipodi:type="arc" 100.167 + style="fill:none;stroke:#000000;stroke-width:1.39999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:4.2, 1.4;stroke-dashoffset:0.28" 100.168 + id="path4610" 100.169 + sodipodi:cx="384.12698" 100.170 + sodipodi:cy="355.53677" 100.171 + sodipodi:rx="4.7619047" 100.172 + sodipodi:ry="4.7619047" 100.173 + d="m 388.88889,355.53677 a 4.7619047,4.7619047 0 1 1 -9.52381,0 4.7619047,4.7619047 0 1 1 9.52381,0 z" 100.174 + transform="translate(2.1164021,-129.1746)" /> 100.175 + <path 100.176 + transform="translate(68.116402,-129.1746)" 100.177 + d="m 388.88889,355.53677 a 4.7619047,4.7619047 0 1 1 -9.52381,0 4.7619047,4.7619047 0 1 1 9.52381,0 z" 100.178 + sodipodi:ry="4.7619047" 100.179 + sodipodi:rx="4.7619047" 100.180 + sodipodi:cy="355.53677" 100.181 + sodipodi:cx="384.12698" 100.182 + id="path4612" 100.183 + style="fill:none;stroke:#000000;stroke-width:1.39999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:4.2, 1.4;stroke-dashoffset:0.28" 100.184 + sodipodi:type="arc" /> 100.185 + <path 100.186 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:4, 1;stroke-dashoffset:0" 100.187 + d="m 382.53968,230.06589 c -55.02645,2.1164 -55.02645,2.1164 -55.02645,2.1164" 100.188 + id="path4614" /> 100.189 + <path 100.190 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:4, 1;stroke-dashoffset:0" 100.191 + d="m 449.20635,231.12409 c -14.81482,13.75661 -121.69312,5.291 -121.69312,5.291" 100.192 + id="path4616" /> 100.193 + <rect 100.194 + style="opacity:0.44897958;fill:none;stroke:#000000;stroke-width:0.10000001;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.4, 0.1;stroke-dashoffset:0" 100.195 + id="rect4618" 100.196 + width="257.40311" 100.197 + height="92.786636" 100.198 + x="252.16335" 100.199 + y="185.59641" /> 100.200 + </g> 100.201 +</svg>
101.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 101.2 +++ b/0__Papers/VMS/VMS__Foundation_Paper/VMS__Full_conference_version/figures/VMS-core__internal_workings.eps Sat Aug 03 19:24:22 2013 -0700 101.3 @@ -0,0 +1,1926 @@ 101.4 +%!PS-Adobe-3.0 EPSF-3.0 101.5 +%%Creator: cairo 1.8.6 (http://cairographics.org) 101.6 +%%CreationDate: Sun Feb 06 23:03:28 2011 101.7 +%%Pages: 1 101.8 +%%BoundingBox: 0 0 366 156 101.9 +%%DocumentData: Clean7Bit 101.10 +%%LanguageLevel: 2 101.11 +%%EndComments 101.12 +%%BeginProlog 101.13 +/cairo_eps_state save def 101.14 +/dict_count countdictstack def 101.15 +/op_count count 1 sub def 101.16 +userdict begin 101.17 +/q { gsave } bind def 101.18 +/Q { grestore } bind def 101.19 +/cm { 6 array astore concat } bind def 101.20 +/w { setlinewidth } bind def 101.21 +/J { setlinecap } bind def 101.22 +/j { setlinejoin } bind def 101.23 +/M { setmiterlimit } bind def 101.24 +/d { setdash } bind def 101.25 +/m { moveto } bind def 101.26 +/l { lineto } bind def 101.27 +/c { curveto } bind def 101.28 +/h { closepath } bind def 101.29 +/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto 101.30 + 0 exch rlineto 0 rlineto closepath } bind def 101.31 +/S { stroke } bind def 101.32 +/f { fill } bind def 101.33 +/f* { eofill } bind def 101.34 +/B { fill stroke } bind def 101.35 +/B* { eofill stroke } bind def 101.36 +/n { newpath } bind def 101.37 +/W { clip } bind def 101.38 +/W* { eoclip } bind def 101.39 +/BT { } bind def 101.40 +/ET { } bind def 101.41 +/pdfmark where { pop globaldict /?pdfmark /exec load put } 101.42 + { globaldict begin /?pdfmark /pop load def /pdfmark 101.43 + /cleartomark load def end } ifelse 101.44 +/BDC { mark 3 1 roll /BDC pdfmark } bind def 101.45 +/EMC { mark /EMC pdfmark } bind def 101.46 +/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def 101.47 +/Tj { show currentpoint cairo_store_point } bind def 101.48 +/TJ { 101.49 + { 101.50 + dup 101.51 + type /stringtype eq 101.52 + { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse 101.53 + } forall 101.54 + currentpoint cairo_store_point 101.55 +} bind def 101.56 +/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore 101.57 + cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def 101.58 +/Tf { pop /cairo_font exch def /cairo_font_matrix where 101.59 + { pop cairo_selectfont } if } bind def 101.60 +/Td { matrix translate cairo_font_matrix matrix concatmatrix dup 101.61 + /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point 101.62 + /cairo_font where { pop cairo_selectfont } if } bind def 101.63 +/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def 101.64 + cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def 101.65 +/g { setgray } bind def 101.66 +/rg { setrgbcolor } bind def 101.67 +/d1 { setcachedevice } bind def 101.68 +%%EndProlog 101.69 +11 dict begin 101.70 +/FontType 42 def 101.71 +/FontName /f-0-0 def 101.72 +/PaintType 0 def 101.73 +/FontMatrix [ 1 0 0 1 0 0 ] def 101.74 +/FontBBox [ 0 0 0 0 ] def 101.75 +/Encoding 256 array def 101.76 +0 1 255 { Encoding exch /.notdef put } for 101.77 +Encoding 1 /uni0047 put 101.78 +Encoding 2 /uni0072 put 101.79 +Encoding 3 /uni0065 put 101.80 +Encoding 4 /uni006E put 101.81 +Encoding 5 /uni0020 put 101.82 +Encoding 6 /uni003D put 101.83 +Encoding 7 /uni0056 put 101.84 +Encoding 8 /uni004D put 101.85 +Encoding 9 /uni0053 put 101.86 +Encoding 10 /uni002D put 101.87 +Encoding 11 /uni0063 put 101.88 +Encoding 12 /uni006F put 101.89 +Encoding 13 /uni0042 put 101.90 +Encoding 14 /uni006C put 101.91 +Encoding 15 /uni0075 put 101.92 +Encoding 16 /uni0061 put 101.93 +Encoding 17 /uni0070 put 101.94 +Encoding 18 /uni0069 put 101.95 +Encoding 19 /uni0074 put 101.96 +Encoding 20 /uni0052 put 101.97 +Encoding 21 /uni0064 put 101.98 +Encoding 22 /uni0067 put 101.99 +/CharStrings 23 dict dup begin 101.100 +/.notdef 0 def 101.101 +/uni0047 1 def 101.102 +/uni0072 2 def 101.103 +/uni0065 3 def 101.104 +/uni006E 4 def 101.105 +/uni0020 5 def 101.106 +/uni003D 6 def 101.107 +/uni0056 7 def 101.108 +/uni004D 8 def 101.109 +/uni0053 9 def 101.110 +/uni002D 10 def 101.111 +/uni0063 11 def 101.112 +/uni006F 12 def 101.113 +/uni0042 13 def 101.114 +/uni006C 14 def 101.115 +/uni0075 15 def 101.116 +/uni0061 16 def 101.117 +/uni0070 17 def 101.118 +/uni0069 18 def 101.119 +/uni0074 19 def 101.120 +/uni0052 20 def 101.121 +/uni0064 21 def 101.122 +/uni0067 22 def 101.123 +end readonly def 101.124 +/sfnts [ 101.125 +<00010000000a008000030020636d617000a2f14100001fdc0000006c637674207d0742a80000 101.126 +2048000002706670676d49d7df92000022b80000060a676c7966489d9ecf000000ac00001f30 101.127 +68656164d5ceeae0000028c400000036686865610f7e06b2000028fc00000024686d74785bc6 101.128 +0894000029200000005c6c6f636153405a880000297c000000306d617870037c02c9000029ac 101.129 +0000002070726570292ded16000029cc000004ad00020080015e0380045e0003000700264016 101.130 +059c039d049c070017003700030000079c019d049c00002ffdfded012f5f5dfdfded31301311 101.131 +211125211121800300fd800200fe00015e0300fd0080020000010050ffe704d305d2001a0137 101.132 +403a1c400b0b024b55060103370e470e570e670e04006a167a16025516010506150645060303 101.133 +680078000200160c0c024b000f0e0c44170f370f020fb8fff0400b1010024b0f0c0f0f024b0f 101.134 +b8ffe8400b0c0c024b0f040d0d024b0fb8ffeab40c0c064b0fb8fffab40d0d064b0fb8ffe840 101.135 +571010064b0f0645181638160200160c1010024b16060f0f024b16200b0b024b16100c0c024b 101.136 +16120d0d024b16120c0c064b16120d0d064b160c0e0e064b161b080168017801030223100103 101.137 +2813011803380302020c510eb8ffc0401a0c0c024b0e090118000100001909100b0b024b0949 101.138 +1303491913b8fff0b70b0b024b13091903003f3f2b10ed10ed2b10cd5f5d3210d62bed5f5d5d 101.139 +5f5d5f5d0110d62b2b2b2b2b2b2b2b5f5dfdd42b2b2b2b2b2b2b5dfdcd10c62b5d5f5d5d5d5f 101.140 +5d5f5d3130012b010726232200111400333237112335211106042320001110002132048d5397 101.141 +91e6fef60105e1a063cb019350fee287fed1fea101810147e50553a570febcfef5fefeca6001 101.142 +57aafd824453019b0155015401a7000100960000031c0443000e00af401e0a400b0d024b0810 101.143 +18102810c81004c70ed70e020e06094d064d68070107b8ffecb41313024b07b8ffeeb4101002 101.144 +4b07b8fff240110f0f024b07040b0b024b07040c0c024b07b8ffeeb40f0f064b07b8fffcb40c 101.145 +0c064b07b8fff2b41010064b07b8fffc40250e0e064b070f170a270a370a470a570a670a0600 101.146 +050a400e0e064b0a02520c0806070a0c07003f3f3f10edcd2b325f5d0110d62b2b2b2b2b2b2b 101.147 +2b2b5deded10c65d5d3130002b01262322061511231133153633321702cd3e3f6597bebe68cd 101.148 +336003782bba83fd9a042fabbf1200020041ffec041c04430019002201ff408724400b0b024b 101.149 +58170103b807018a079a07aa07ba07ca07da0706025705016808780888089808a80805280838 101.150 +08480858086808780888089808a808b808c808d8080c00571877180208221010024b08180f0f 101.151 +024b08180c0c024b082c0d0d024b08100c0c064b08100d0d064b081f4e471e01021718371847 101.152 +18671887189718a718b718c7180918b8ffe0b40e0e064b18b8ffdeb41010024b18b8ffdcb40f 101.153 +0f024b18b8ffe2b40c0c024b18b8ffd4b40d0d024b18b8ffe4b40c0c064b18b8ffe4406b0d0d 101.154 +064b18011e4e014e87100138104810581068100410100e0e064b10101010024b10100f0f024b 101.155 +101c0b0c024b10160d0d024b100c0c0c064b100c0d0d064b102387079707a707030027053705 101.156 +47055705040207522a083a084a08030357086708770803070817080208b8ffc0b40b0c024b08 101.157 +b8ffd4b40d0d064b08b8ffc040350d0d024b080c1e50470157016701a701b701050001400f0f 101.158 +024b01400d0d024b01400f0f064b010105581a011a5214100f0f024b14b8ffe8b40d0d024b14 101.159 +b8ffe840200e0e064b140c0f0f064b14671401024a145a140205100c0c024b05520c0b140700 101.160 +3f3fed2b5d5f5d102b2b2b2bed5d11392f2b2b2b5f5ded10d52b2b2b5d715f5ded5f5d5f7101 101.161 +10d62b2b2b2b2b2b2b5d5deded10dd2b2b2b2b2b2b2b5d5f5dedc42b2b2b2b2b2b5d5f5d715d 101.162 +5f5d5d5f5d3130012b0121141716333237170607062322272635103736333217161514012207 101.163 +060721342726040dfcfc675b8fa36d502c5b728cca8d9da190c5e5827efe247f56520b025148 101.164 +4f0205bc65585f892c202a8997ff0109a08f817ccd3f0169524e74734d5400010087000003d8 101.165 +044300110103401813400b0b024b070f170f0201771301004d11101010064b11b8ffd4b40e0e 101.166 +064b11b8fff8b41313024b11b8fff440111010024b110a0f0f024b11080c0c024b11b8fff440 101.167 +110d0d024b111c0b0b024b110e0f0f064b11b8fff8b40c0c064b11b8fff8b40d0d064b11b8ff 101.168 +f440100b0b064b11084d070917092709030009b8fff4400b1313024b09040d0d024b09b8fff6 101.169 +b41010024b09b8fff4400b0f0f024b090a0b0b024b09b8fff8b41010064b09b8fff4400b0e0e 101.170 +064b09080c0c024b09b8fffa40110f0f064b091204520e110a090a0a060e07003f3f3f3f10ed 101.171 +0110d62b2b2b2b2b2b2b2b2b5f5dfdd42b2b2b2b2b2b2b2b2b2b2b2bed5d3130005f5d012b21 101.172 +1134262322060711231133173633201111031a6779418e26be823c5ed50160026fab894e39fc 101.173 +e4042f8a9efe54fd690000000002007a018b03c0036c00030007002d401b0105870207061706 101.174 +37065706770605060803840207840706010006002f5f5dfddeed0110d65d3cfd3c3130011521 101.175 +350115213503c0fcba0346fcba036c8d8dfeac8d8d0000000001000dffec04a605b900060133 101.176 +b10202435458b90004ffe8400d0c0c024b040402010502020201002f3f3f111239012f313000 101.177 +2b1bb10602435458403804601010064b04400c0f064b04100a0a064b47080100370401010808 101.178 +18082808580804054606034602067600027601040400754701010104b8ffc0b42227064b04b8 101.179 +ffb0b41a1d064b04b8ffc040261416064b04240b0b064b480401370401170427043704570467 101.180 +0477040600048e010906020202003f3f3fed5f5d72712b2b2b2b012f5ded39192f1810ed10ed 101.181 +10ed10ed5d5f725f5d3130002b2b2b1b40414708010037040101080818082808580804054606 101.182 +0346020676000276010404007547010101480401370401170427043704570467047704060004 101.183 +8e010906020202003f3f3fed5f5d7271012f5ded39192f1810ed10ed10ed10ed5d5f725f5d31 101.184 +30595905230133010133029465fddede0179016bd71405cdfbc90437000000010014ffec05a3 101.185 +05b9000c01f0401401400e0e064b04400e0e064b0e401010024b0002435558401d0c0e180e28 101.186 +0e380e03080e180e380e480e580ea80eb80e070606080702003f3f012f5d7110d631301b40ff 101.187 +4a030145020143087308024c0a7c0a0203280301280a0127080102970101980401870701880b 101.188 +0101180e280e380e03080e180e380e480e580ea80eb80e070000460c0546380c480c02370647 101.189 +0602022806480602270c470c020672070c720b01010a0b04040875070a75680b016707010b73 101.190 +0207730309090275c70301270377038703a703d703e703060003770901016709010809180902 101.191 +680988099809a809b809c809d809e809f80909580101580401004a0201034701014704010107 101.192 +011701020701270187019701a701b701c701d701e701f7010a07041704020704270487049704 101.193 +a704b704c704d704e704f7040a070117010217014701570167017740490187019701a701b701 101.194 +c701d701e701f7010d0704170402070417042704470457046704770487049704a704b704c704 101.195 +d704e704f7040f00097102017104710702090c0806080b020702003f3f3f3f3f10ede410ed5f 101.196 +5d715d715d715d715f5d5d5f5d5f5d5d5d715d5f5d012f5f5d71ed39192f1810ed10fd5d5ded 101.197 +10ed39192f1112392f1810ed10fd5d5d5f5d5ded10ed5f5d715f5d5d5d5d5f5d5d5d5f5d5d5d 101.198 +5d3130592b002b2b2103012301032301330101330104e5aefec032feb7aabe01125b015d0142 101.199 +5a012903adfc3f03c1fc5305b9fbd3042dfa470000010050ffe7038805d2002601ccb1020243 101.200 +5458401907221a0e180b0b024b0e120c0c024b0e22070e1a0425131714b8ffc040120c0c024b 101.201 +1411000401251749110304492509003fed3fed10cd123910cd2b1239121739012f2b2bcd2fcd 101.202 +31301bb106024354584086082401071001002520452065207520042a0b01034828a828026813 101.203 +0113074507223722672203221a001a45380e01870e01000e2777040102351e651e751e03351f 101.204 +451f651f751f040a0c3a0c4a0c6a0c7a0c0533220103380e010a0b1f1e042548145814681478 101.205 +1404141137014701570167017701a701b70107000125174911044925091103003f3fed10ed10 101.206 +cd5f5d10cd5d1217395d5f5d5d5d5d5f5d0110d65f5d5dedc410d45dedc45d5d3130005f5d5d 101.207 +5f5d5d1b4086082401071001002520452065207520042a0b01034828a8280268130113074507 101.208 +223722672203221a001a45380e01870e01000e2777040102351e651e751e03351f451f651f75 101.209 +1f040a0c3a0c4a0c6a0c7a0c0533220103380e010a0b1f1e0425481458146814781404141137 101.210 +014701570167017701a701b70107000125174911044925091103003f3fed10ed10cd5f5d10cd 101.211 +5d1217395d5f5d5d5d5d5f5d0110d65f5d5dedc410d45dedc45d5d3130005f5d5d5f5d5d5959 101.212 +3737161633323635342627272626353436333217072626232206151416161717161615140423 101.213 +22544938a742758e4f9f769677e8b6f35f3b28a44666752a4b74789679fef7dec343b8293780 101.214 +634a7f4b3746c087a4d84fae1d36745b385c3e383947c598a5e60001009f01fa024b02a90003 101.215 +00254017280368037803a803040307002700370003000004014800002fed0110d65f5dcd5d31 101.216 +30133521159f01ac01faafaf000000010041ffec03b5044300170119401e450501a101010328 101.217 +1938190200870d970da70d030200070d870d970d030db8fff4b41010024b0db8ffeab40f0f02 101.218 +4b0db8ffeab40b0c024b0db8ffe840610d0d024b0d074e38124812028712a712b712c712e712 101.219 +050012101010024b12180f0f024b12200b0c024b12180d0d024b12060e0e064b120c0e0e064b 101.220 +12120c0c064b12100d0d064b1218250a350a450a032a043a044a0403030c52070d170d020db8 101.221 +ffc040160b0b024b0d0f015208001800020000400b0b024b0004b8ffe8b40c0c024b04b8ffe8 101.222 +40190d0d024b0452150a180c0c024b0a180d0d024b0a520f0b1507003f3fed2b2b10ed2b2bdd 101.223 +2b5f5ded10dd2b5ded5f5d5d0110d62b2b2b2b2b2b2b2b5f5d5dfdd42b2b2b2b5d3c5f5d5f5d 101.224 +5f5d5d313001072626232206151416333237170623220035100021321603af5e1d93479bb6ba 101.225 +a580824b99e2dbfee20129010253c203d8861d34d9bdbcc563a0630126fb0100013646000002 101.226 +0041ffec040a0443000b0015013c402517401010024b17400b0c024bb7050101381701114e17 101.227 +063706470667060406041010024b06b8ffdeb40f0f024b06b8fffcb40b0b024b06b8ffe4b40c 101.228 +0c024b06b8ffd4b40d0d024b06b8ffeab40e0e064b06b8ffe0b40c0c064b06b8ffe440760d0d 101.229 +064b060c4e87009700a700b700c700e700063800480058006800040000101010024b000e0f0f 101.230 +024b00200b0b024b00200c0c024b00160d0d024b000c0e0e064b00100c0c064b000c0d0d064b 101.231 +00166a030165090103670e0168130102450e550e650e034a135a136a13030e100f0f024b0e52 101.232 +0913b8fff040160f0f024b13520309180f0f024b09180f0f064b090b03b8ffe8b40f0f024b03 101.233 +b8ffe8b50f0f064b0307003f2b2b3f2b2b10ed2b10ed2b5d5d5f5d5d5f5d5d0110d62b2b2b2b 101.234 +2b2b2b2b5f5d5dfdd42b2b2b2b2b2b2b2b5ded5d5f5d31302b2b133400333212111000232200 101.235 +1310213236351021220641010bdae6fefefce0e5ff00c8011d8597fee4829b021af80131fedb 101.236 +fefcfefdfed5012e0100fe6dd8bb018ed400000300960000043705c6000f0018002201ac406f 101.237 +24400b0b024b05060103580a680a02a805b805c805030178150102480a780a880a980aa80ab8 101.238 +0ac80ad80ae80af80a0a0a1545380748070207200b0b024b071e0c0c024b07160d0d024b0710 101.239 +0c0c064b07100d0d064b07220e0e064b070d10441a44011f45070d170d270d370d040db8fffa 101.240 +400b1010024b0d100b0b024b0db8fff4b40c0c024b0db8ffd8b40d0d024b0db8fff4b40e0e06 101.241 +4b0db8fff4b40c0c064b0db8fff4400f0d0d064b0d24070117012701030001b8ffecb4131302 101.242 +4b01b8fff4b41010024b01b8fffa400b0f0f024b01040b0b024b01b8fffeb40d0d024b01b8ff 101.243 +eab41010064b01b8fff0b40e0e064b01b8ffff40330c0c064b0123671c0101371c471c571c03 101.244 +020a0a111348190722014722572267227722041722372247229722c722f722060022b8ffc0b4 101.245 +0f0f024b22b8ffc0401f0f0f064b22100d0d064b22221a17021048041a1c200f0f024b1c4801 101.246 +080402003f3fed2b3210ed333211392f2b2b2b5f5d717233ed3239192f5f5d5f5d011810c62b 101.247 +2b2b2b2b2b2b2b5f5d10d62b2b2b2b2b2b2b5ded10eded10d42b2b2b2b2b2b5dedc45d5f5d5f 101.248 +5d31305d5f5d012b212111243332161514060716161514040111163320353421220311163332 101.249 +36353426230238fe5e010b76d9ee985cae9ffee5fe423f5d011cfefb644f6737bcada5c105b9 101.250 +0dbbae66a8152ac2a7c1e60519fe5b06e7cbfdb9fdd10a8d9a8f8800000000010096ffec0207 101.251 +05e6000800c7b9000affc0b41313024b0ab8ffc0b41010024b0ab8ffc0402a0c0c024b070a17 101.252 +0a270a370a470a570a670a770a080706170627060306024d070117012701d701040001b8ffec 101.253 +b41313024b01b8ffeeb41010024b01b8fff240110f0f024b01040b0b024b01040c0c024b01b8 101.254 +ffcc40170e0e064b01180f0f064b01130c0c064b01160d0d064b01b8ffec401b0b0b064b0109 101.255 +b705c70502010a081a082a083a08040652070b0100003f3fed5d5f5d0110d62b2b2b2b2b2b2b 101.256 +2b2b2b5f5dfdc65d5d3130012b2b2b13113311141633152096be6350fe8f012f04b7fb695663 101.257 +aa0000000001007dffec03e3042f001200fb402714400b0b024b7714010a4d074d0708011708 101.258 +47087708a708048708b708e70803080c1010064b08b8fffab40e0e064b08b8ffecb41313024b 101.259 +08b8ffec400b1010024b08160b0b024b08b8ffeeb40d0d024b08b8ffccb40e0e064b08b8fff0 101.260 +b40c0c064b08b8fff440150d0d064b08004de812f81202071217122712030012b8fff8b41313 101.261 +024b12b8fffab41010024b12b8fff640230f0f024b120c0b0b024b120c0c0c024b12080d0d02 101.262 +4b12040c0c064b12040d0d064b12b8fffa40110e0e064b121303520e090a0e0b08061206003f 101.263 +3f3f3f10ed0110d62b2b2b2b2b2b2b2b2b5f5d5dfdd42b2b2b2b2b2b2b2b2b5d7172eded5d31 101.264 +30012b01111433323637113311233506062322263511013bd75e9c19bebe20c15cb0bb042ffd 101.265 +55f86c4702f0fbd1943f69caba02bf0000020050ffec03e40443001b002501d3b62740101002 101.266 +4b25b8ffecb40b0c024b25b8ffee40490d0d064b071317130201672077200202280f480f0200 101.267 +b70fc70fd70fe70f04010025150f0537184718571867187718871897180718254d0a4d881501 101.268 +150c1313024b150c1010024b15b8fff8b40f0f024b15b8fff040110c0c024b151e0d0d024b15 101.269 +0c0e0e064b15b8fff040440f0f064b150c0d0d064b1527214e38050100050c0f0f024b05160b 101.270 +0b024b05100c0c024b05120d0d024b050c0e0e064b050c0c0c064b050c0d0d064b05263a0301 101.271 +032500b8ffc0b40d10024b00b8ffc040320d0f064b480058006800780004000218191c520a08 101.272 +0e52080f180f280f380f480f580f980fa80fb80fc80fd80fe80f0c000fb8ffc0b41317024b0f 101.273 +b8ffc040240d0d024b0f124a1e5a1e02031e52a808b80802580801006a087a08020347085708 101.274 +020008b8ffc0b41414024b08b8ffc0b41313024b08b8ffe8b41010024b08b8ffe8b40f0f024b 101.275 +08b8ffc040131313064b08080c2352020c5212190b020b1207003f3f3f10ed10ed11392f2b2b 101.276 +2b2b2b5f5d5f5d5f5d5ded5f5d10dd2b2b5f5ded10d5ed10cd10dd5d2b2bcd5f5d0110d62b2b 101.277 +2b2b2b2b2b5f5ded10d62b2b2b2b2b2b2b2b71ededc65d10c41112395f5d5f5d5f5d3130005f 101.278 +5d2b2b012b250623222635342433321710232207273636333216151114171522260326232206 101.279 +151433323702e472eb7eb9011ddd3c4ce8b2605036bf57e9d35474732b5a2490b6c5906f7b8f 101.280 +b788a3e11a0104609f2c3fd4e7fe808d2f5f4201df149465a78900020087fe5c042c0443000f 101.281 +001b014d40161d400b0b024be71d01164e470af70a02470a970a020ab8ffe4b40f0f024b0ab8 101.282 +ffeab40c0c024b0ab8ffd4b40d0d024b0ab8fff4b40e0e064b0ab8ffe6b40c0c064b0ab8ffea 101.283 +401e0d0d064b0a111101044d014d1702010702170227028702e702f702060002b8fff4b41313 101.284 +024b02b8fff6400b1010024b02040d0d024b02b8fffa40110f0f024b020a0b0b024b02080c0c 101.285 +024b02b8fff4b40e0e064b02b8fffe40330f0f064b02020c0c064b02020d0d064b021c580d68 101.286 +0d025707670702024514014a190114100e0e064b14100f0f024b14520d19b8fff0b40e0e064b 101.287 +19b8fff0400c0f0f024b195207010e03060db8fff0b40e0e064b0db8fff040140f0f024b0d0b 101.288 +07100e0e064b07100f0f024b0707003f2b2b3f2b2b3f3f10ed2b2b10ed2b2b5d5d5f5d5d0110 101.289 +d62b2b2b2b2b2b2b2b2b2b5f5d71eded103c10d42b2b2b2b2b2b5d71ed5d31302b2511231133 101.290 +15363332121114002322260311161633201134262322060145bebe6c99e4feff00f2449b1612 101.291 +74370162a8b928743bfe2105d3586cfee4feeef4fecb30032cfd901b310190cbbc3800000002 101.292 +0050000001c105c4000b001100d9b613400f0f024b13b8ffc0b60d0d024b097b03b8fff4b40e 101.293 +0e064b03b8fff8b40f0f024b03b8fffab40c0c024b03b8fff940200c0c064b03110e0c4d7711 101.294 +010011041313024b11021010024b110e0f0f024b11b8ffeeb40b0b024b11b8ffecb40c0c024b 101.295 +11b8ffe6400b0d0d024b110e0f0f064b11b8fff8400b0c0c064b11120d0d064b11b8ffd64010 101.296 +0e0e064b11081111064b11130d511000b8ffc040120f0f024b007c06400f0f024b06100c0a10 101.297 +06003f3f10d62bed2b10ed0110d62b2b2b2b2b2b2b2b2b2b2b5f5dfdc610d42b2b2b2bed3130 101.298 +012b2b013216151406232226353436031123352111014b314545313045443793015105c44530 101.299 +314545313144fa3c038fa0fbd10000000001004fffec02fc0558001500cab90017ffc0403f0c 101.300 +0d024b0813181302281701871001109708010809010006090309010c0c064b094d4800580068 101.301 +00f8000400000c1313024b000a1010024b00120f0f024b00b8fff2b40b0b024b00b8fff0b40c 101.302 +0c024b00b8ffe8401d0d0d024b00160e0e064b00100f0f064b00260c0c064b00280d0d064b00 101.303 +b8fffc401b0e0e064b002c133c13020f0d0205070d52120152085207120b0706003f3f10eded 101.304 +10ed10c63c10c65d012f2b2b2b2b2b2b2b2b2b2b2b5f5ded2b3c103c10cd10dd5dc65d5d3130 101.305 +005d012b13233533353711211521111416333237170623222635cb7c7cbe0126feda5b65494e 101.306 +1c768d7faf039996e049fed796fdec877225a71ebd90000200a0000004a805c8000f001a0106 101.307 +4017670e770e02010e040b00460f0f1c16060d0d064b16450bb8ffe8b40b0b024b0bb8ffea40 101.308 +120d0d024b0b471c1044044407052705020005b8ffe4b41313024b05b8fff2b40f0f064b05b8 101.309 +fff0b41010024b05b8fff4b40f0f024b05b8fffcb40c0c024b05b8fffab40d0d024b05b8fffe 101.310 +b40c0c064b05b8fff4b40d0d064b05b8ffeab41010064b05b8fff040290e0e064b051b481701 101.311 +0245150103570e01025513015a196a197a1903101906090e1103134901010519b8ffe8400d0f 101.312 +0f024b194909000805080902003f3f3f10ed2b11392fed333233113311335d5d5f5d5f5d5f5d 101.313 +0110d62b2b2b2b2b2b2b2b2b2b5f5deded10f62b2bed2b103c10ed111239395d313021012227 101.314 +112311322433201114060701011116333236353426232203c3fe794391c80b0121420210aa75 101.315 +01a9fcc04844b4a4b0be1e02750afd8105b90ffe5c8add1bfd5e0505fe240a74957b6c000002 101.316 +004bffed03ec05e6000e0019011e40161b400b0b024b004d0d190c4d470d010d201313024b0d 101.317 +b8ffeab41010024b0db8fff6400b0f0f024b0d080b0b024b0db8fff6b40c0c024b0db8ffe440 101.318 +0b0d0d024b0d0c0f0f064b0db8ffe2b40c0c064b0db8fff240660d0d064b0d140c0c0c064b14 101.319 +4e87060138064806020006080f0f024b061a0b0b024b061a0c0c024b06120d0d024b060c0e0e 101.320 +064b06100c0c064b060c0d0d064b061a251635164516032a113a114a11030358036803021618 101.321 +0b0c024b16100f0f024b16520311b8ffe8400e0b0c024b115209480901020e0a03b8fff0b60f 101.322 +0f024b030b09b8ffeeb70d0d024b09070d00003f3f2b3f2b3f5f5d10ed2b10ed2b2b5d5f5d5d 101.323 +0110d62b2b2b2b2b2b2b5f5d5dfd2bd42b2b2b2b2b2b2b2b2b5dfd3c10ed3130012b25350623 101.324 +22023534003332171133110326232206151021323637032e63bdc9fa0120c7a656bebe487d99 101.325 +bd01602d7e10014f630120f0f101554e01f1fa1b03366ce4b0fe7d392000000000020050fe5c 101.326 +03c804740030003c0160402c48195819681978190400272b372b020265017501020320101c12 101.327 +064e282b382b482b582b682b782b882b072bb8ffeab40e0e064b2bb8fff0400f0d0d064b2b19 101.328 +3a4e1c0e1010024b1cb8fff440860c0c024b1c120d0d024b1c3e00234e0d344e12060e0e064b 101.329 +120c0f0f024b12120b0c024b12120d0d024b123d17010188199819a819b8190488189818a818 101.330 +b81804280c380c02006701770102026a317a3102653775370203102037281a171f181537180f 101.331 +0f024b37521f40090a064b1f9708a708b70803970ba70bb70b030028530825530b01b8ffc0b4 101.332 +1114024b01b8ffc0b40b0c024b01b8ffc0b41114064b01b8ffc040090c0c064b0103522e31b8 101.333 +ffe8400d0f0f024b3152152e0e0b061507003f3f3f10ed2b10fdc62b2b2b2b10edd4fd5f5d5d 101.334 +d42bed2b10c6123939111239395f5d5d5f5d5f5d5d5d5d0110d62b2b2b2bedd4edc610d62b2b 101.335 +2bedc6d42b2b5ded111239395f5d5f5d5f5d3130133716333236353423220623223534363726 101.336 +1134363332173717071615140607070606151433323633321615140423222601220615141633 101.337 +32363534266067a68c8195bc20a82fe46b4fe2eaac9e595f7c7249caa49d1c5e622bb62c9eb1 101.338 +fef7cb68e6014d637d796765727bfedb986f59428220ac3556136a0106a8e0417275565f99a2 101.339 +dc101003251e291f978694b64a05048c6470938f74648c000000000200030000000000140001 101.340 +0000000000340004002000000004000400010000f016ffff0000f000ffff1000000100000000 101.341 +000600380000000000170000000100020003000400050006000700080009000a000b000c000d 101.342 +000e000f001000110012001300140015001605e6000005b9001905b90014042f00140000ffe7 101.343 +0000ffec0000ffecfe5c000005c30000fe5400000338000005d300000253000005c8000a0000 101.344 +0000000000000000000000000000000000000000000000000000000000000000000000000000 101.345 +0000000000000000000000000000000000000000000000000000000000000000000000000000 101.346 +000000c800cd00cd009600b400b400000000000000be00c800c8008c00a0009b009600000000 101.347 +00be00c800c8000000aa00aa000000000064007d0082008c009600a00064007d0082008c009b 101.348 +00d20064007d0082008c009600a002300136011801a401d600460218012c01c2000001d600eb 101.349 +00eb01d1017f0154011301450168012c008d02350159033f0505012c00b4006e0136015e01cc 101.350 +01cc04d8006e006e01d600d2005f01f4012c007802d00190037f00800280006e00b4000000a5 101.351 +fea2003200b9008c000000000000000000000000000000000000000000000000000000000000 101.352 +0000000000000000000000000000000000000000000000000000000000000000000000000800 101.353 +05e6000005b9001905b90014042f00140000ffe70000ffec0000ffecfe5c0000000000000000 101.354 +0000033800000000000002530000000000000000000000000000000000000000000000000000 101.355 +0000000000000000000000000000000000000000000000000000000000000000000000000000 101.356 +0000000000000000000000000000000000000000000000c800cd00cd009600b400b400000000 101.357 +000000be00c800c8008c00a0009b00960000000000be00c800c8000000aa00aa000000000064 101.358 +007d0082008c009600a00064007d0082008c009b00d20064007d0082008c009600a04036544b 101.359 +214a494847464544434241403f3e3d3c3b3a39383736352f2e2d2c2826252423221f18141110 101.360 +0f0d0b0a090807060504030201002c4523466020b02660b004262348482d2c452346236120b0 101.361 +2661b004262348482d2c45234660b0206120b04660b004262348482d2c4523462361b0206020 101.362 +b02661b02061b004262348482d2c45234660b0406120b06660b004262348482d2c4523462361 101.363 +b0406020b02661b04061b004262348482d2c0110203c003c2d2c20452320b0cd442320b8015a 101.364 +51582320b08d44235920b0ed51582320b04d44235920b0042651582320b00d44235921212d2c 101.365 +20204518684420b001602045b04676688a4560442d2c01b10b0a432343650a2d2c00b10a0b43 101.366 +23430b2d2c00b0282370b101283e01b0282370b10228453ab10200080d2d2c2045b003254561 101.367 +64b050515845441b2121592d2c2045b0004360442d2c01b00643b00743650a2d2c2069b04061 101.368 +b0008b20b12cc08a8cb8100062602b0c642364615c58b00361592d2c8a03458a8a87b0112bb0 101.369 +292344b0297ae4182d2c4565b02c234445b02b23442d2c4b525845441b2121592d2c01b00525 101.370 +1023208af500b0016023edec2d2c01b005251023208af500b0016123edec2d2c01b0062510f5 101.371 +00edec2d2c20b001600110203c003c2d2c20b001610110203c003c2d2c00b00743b006430b2d 101.372 +2c21210c6423648bb84000622d2c21b08051580c6423648bb82000621bb200402f2b59b00260 101.373 +2d2c21b0c051580c6423648bb81555621bb200802f2b59b002602d2c0c6423648bb840006260 101.374 +23212d2c4523456023456023456023766818b08062202d2cb00426b00426b00425b004254523 101.375 +4520b003266062636820b0032661658a2344442d2c2045b0005458b040442045b04061441b21 101.376 +21592d2c45b1302f4523456160b0016069442d2c4b5158b02f2370b01423421b2121592d2c4b 101.377 +515820b0032545695358441b2121591b2121592d2c45b01443b0006063b0016069442d2cb02f 101.378 +45442d2c452320458a60442d2c45234560442d2c4b235158b90033ffe0b134201bb333003400 101.379 +5944442d2cb0164358b00326458a586466b01f601b64b020606620581b21b04059b001615923 101.380 +586559b02923442310b029e01b2121212121592d2cb0164358b004254564b020606620581b21 101.381 +b04059b0016123586559b0292344b00425b00725082058021b0359b0052510b004252046b004 101.382 +2523423cb0072510b006252046b00425b0016023423c2058011b0059b0052510b00425b029e0 101.383 +b0072510b00625b029e0b00425b00725082058021b0359b00425b003254348b00625b00325b0 101.384 +016043481b2159212121212121212d2cb0164358b004254564b020606620581b21b04059b001 101.385 +6123581b6559b0292344b00525b00825082058021b0359b0042510b005252046b0042523423c 101.386 +b00425b0072508b0072510b006252046b00425b0016023423c2058011b0059b0042510b00525 101.387 +b029e0b02920456544b0072510b00625b029e0b00525b00825082058021b0359b00525b00325 101.388 +4348b00425b0072508b00625b00325b0016043481b2159212121212121212d2c02b004252020 101.389 +46b004252342b0052508b003254548212121212d2c02b0032520b0042508b002254348212121 101.390 +2d2c452320451820b00050205823652359236820b040505821b04059235865598a60442d2c4b 101.391 +53234b515a5820458a60441b2121592d2c208a08234b538a4b515a5823381b2121592d2c0020 101.392 +8a49b0005158b04023208a3812341b2121592d2c462346608a8a462320468a608a61b8ff8062 101.393 +232010238ab14b4b8a70456020b0005058b00161b8ffba8b1bb0468c59b0106068013a2d2c20 101.394 +8a2349648a2353583c1b21592d2c4b505845441b2121592d2cb0024354584b53234b515a5838 101.395 +1b2121591b21212121592d2cb1020042b123018851b1400188535a58b910000020885458b202 101.396 +010243604259b12401885158b920000040885458b2020202436042b12401885458b202200243 101.397 +6042004b014b5258b2020802436042591bb940000080885458b202040243604259b940000080 101.398 +63b80100885458b202080243604259b94000010063b80200885458b202100243604259b94000 101.399 +020063b80400885458b202400243604259595959592d00000001000000050000f72805665f0f 101.400 +3cf5001b080000000000ad61b71900000000c142e956ff50fde708a8078b0000000a00010000 101.401 +00000000000100000783fe39000008e9ff50ff7808a800010000000000000000000000000000 101.402 +00170400008005690050031c0096045d0041045f0087026900000432007a04b3000d05ad0014 101.403 +03d9005002f0009f03f60041044b004104870096025c0096045f007d04340050047500870248 101.404 +0050032c004f04a800a00475004b040400500000002800f40166029e03400340036c041a0532 101.405 +06520672072807f0090009780a160b380c0e0c9c0d240dd60e920f98000100000017004d0007 101.406 +004b000500020010002f0055000002f001ff00030001400a54bfa50140a5111546a4b8010cb2 101.407 +321fa1b8011540b21f1f6fc731216ec731216dc731216cc731216bc731216ac7312169c73121 101.408 +68c7312167c7312166c7312165c7312164c7312163c7312162c7312161c7312160c731215fc7 101.409 +31215ec731215dc731215cc731215bc731215ac7312159c7312158c7312157c7312156c73121 101.410 +55c7312154c7312153c7312152c7312151c7312150c731214fc731214ec731214dc731214cc7 101.411 +31214bc731214ac7312149c7312148c7312147c7312146c7312145c7312144c73121b80137b2 101.412 +6f0821b80136b26e0821b80135b26d0821b80134b26c0821b80133b26b0821b80132b26a0821 101.413 +b80131b2690821b80130b2680821b8012fb2670821b8012eb2660821b8012db2650821b8012c 101.414 +b2640821b8012bb2630821b8012ab2620821b80129b2610821b80128b2600821b80127b25f08 101.415 +21b80126b25e0821b80125b25d0821b80124b25c0821b80123b25b0821b80122b25a0821b801 101.416 +21b2590821b80120b2580821b8011fb2570821b8011eb2560821b8011db2550821b8011cb254 101.417 +0821b8011bb2530821b8011ab2520821b80119b2510821b80118b2500821b80117b24f0821b8 101.418 +0116b24e0821b80115b24d0821b80114b24c0821b80113b24b0821b80112b24a0821b80111b2 101.419 +490821b80110b2480821b8010fb2470821b8010eb2460821b8010db2450821b8010c40ff4408 101.420 +216957311f5857311f5657311f5152311f4644311f4544311f4f4e311f4d4e311f2097309740 101.421 +975097043088010f8c018f849f84af84bf84cf84058f689f68af680360697069028f5b018f5a 101.422 +017057018f509f50af50bf50cf50058f519f51af51038f529f52af52033f7c4f7c02507b607b 101.423 +707b03704e01708f01308f608f708f03008e01008e01408e708e02008e308e408e508e608e70 101.424 +8e06107040700260740160730170440100282800000012110840370f3fce16010fa21fa20218 101.425 +c7312114c731210ec731210dc731210cc731210bc731210ac7312109c7312108c7312107c731 101.426 +2106c7312105c7312104c7312103c7312102c7312101c73121407c00c73121e0180821dc1408 101.427 +21d60e0821d50d0821d40c0821d30b0821d20a0821d1090821d0080821cf070821ce060821cd 101.428 +050821cc040821cb030821ca020821c9010821c8000821230e45220c45210a452008451f0645 101.429 +1e04451d02451c00451a08180816081408120810080e080c080a08080806080408020800084b 101.430 +b807ff524bb008505b58b101018e59b0124b004b5442b9000101ff858d2b2b2b2b2b2b2b2b2b 101.431 +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b 101.432 +2b2b2b2b2b2b2b2b2b7342011d4bb01b5358b0961d594bb0325358b0001db1160042594b20b0 101.433 +325323b096515a58b0301d592b0145695342014b5058b108004259435c58b108004259161070 101.434 +3eb13737456920b0005458b040605944b1300070b33200300019701870737373737373747473 101.435 +737373737373737373737373737373732b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b 101.436 +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b 101.437 +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b 101.438 +2b742b00000000> 101.439 +] def 101.440 +FontName currentdict end definefont pop 101.441 +%%Page: 1 1 101.442 +%%BeginPageSetup 101.443 +%%PageBoundingBox: 0 0 366 156 101.444 +%%EndPageSetup 101.445 +q 101.446 +0.0823529 0.580392 0.0823529 rg 101.447 +BT 101.448 +8 0 0 8 222.394666 145.083551 Tm 101.449 +/f-0-0 1 Tf 101.450 +[<010203>1<0304>]TJ 101.451 +ET 101.452 +0 g 101.453 +BT 101.454 +8 0 0 8 244.004041 145.083551 Tm 101.455 +/f-0-0 1 Tf 101.456 +<0506050708090a0b0c0203>Tj 101.457 +ET 101.458 +0.0117647 0.0117647 0.721569 rg 101.459 +BT 101.460 +8 0 0 8 298.536267 145.005426 Tm 101.461 +/f-0-0 1 Tf 101.462 +<0d0e0f03>Tj 101.463 +ET 101.464 +0 g 101.465 +BT 101.466 +8 0 0 8 314.161267 145.005426 Tm 101.467 +/f-0-0 1 Tf 101.468 +<0506051011110e120b1013120c04>Tj 101.469 +ET 101.470 +0.588235 0.0392157 0.0392157 rg 101.471 +BT 101.472 +8 0 0 8 162.495227 145.005426 Tm 101.473 +/f-0-0 1 Tf 101.474 +<140315>Tj 101.475 +ET 101.476 +0 g 101.477 +BT 101.478 +8 0 0 8 175.963977 145.005426 Tm 101.479 +/f-0-0 1 Tf 101.480 +<050605110e0f160a1204>Tj 101.481 +ET 101.482 +0.8 w 101.483 +0 J 101.484 +0 j 101.485 +[ 0.4 0.4] 0 d 101.486 +4 M q 1 0 0 -1 0 155.935211 cm 101.487 +106.051 133.129 m 85.43 122.164 70.191 113.375 70.191 113.375 c S Q 101.488 +72.852 38.791 m 69.273 43.08 l 74.777 42.131 l 73.484 41.564 72.711 101.489 +40.213 72.852 38.791 c h 101.490 +72.852 38.791 m f* 101.491 +Q q 101.492 +q 0 0 367 156 rectclip 101.493 +% Fallback Image: x=0, y=0, w=365, h=155 res=300dpi size=2955450 101.494 +[ 0.24 0 0 0.24 0 0.895211 ] concat 101.495 +/DeviceRGB setcolorspace 101.496 +8 dict dup begin 101.497 + /ImageType 1 def 101.498 + /Width 1525 def 101.499 + /Height 646 def 101.500 + /BitsPerComponent 8 def 101.501 + /Decode [ 0 1 0 1 0 1 ] def 101.502 + /DataSource currentfile /ASCII85Decode filter /LZWDecode filter def 101.503 + /ImageMatrix [ 1 0 0 -1 0 646 ] def 101.504 +end 101.505 +image 101.506 +J3P/PW$E,P#D#)]Yda6_*=IZk@Smti:+[9:6_dMgggVWNO%&)l3,F<u-'Lr3ni8Oi=Xo4rAe 101.507 + MXrJnFtN9]iX;9Zh9:P"TG/l2;B;6]T<ce+t'$M+3>"ku50(ntAUMcm)Oo767PIW6f'4L\5 101.508 + \kA?XR`oI6ngb@$B1Xu2,k(=?iT>clVY*TH%*\_C`i]H,l'I_aEM\,-pfWJ.h;Yh9F33aZ( 101.509 + 0aK`4DVIpEFWTEaCRq?tVS%dgY=GpbJ,H]O/Zl3]AP@]X%lggJ"c<!$+dd8mf/\XH'QJ?:, 101.510 + HbLg3Kn/(Q2)]l+lRfO)EV)>+[?Ad(f6041Y3,bl8*7kdSpsb88$VLUH@&DRa+9rLG^FoND 101.511 + ^X2u4q@0,r4R%'`mh`+CX3-Y/Xua.5d1A%#rg$9-NZ;D;c(\#%]h;k6Ed`o#K06XUA708PM 101.512 + G:_:Ffu[_f+m=#JX*b1AAfWRnX)R%nq*]_D+/;'#*l]AK8dRj:r0DD<q!/7PT4,JtE[WXFh 101.513 + Z%&tXd"P3e-lbG\<=0[)<K9emh`JeIZ!o0gPR9_.hr2bc)[-TY#%SBE?*drat:bDCoB2p^\ 101.514 + n#+s4[[-p+RZg?d-;3YfA5:Fucq*iMlPhS^T'W!*CVY!QK7oM7p0hYCXV+jc^<9,W0bnVuW 101.515 + ;'\#1='3nWbstl423K1f,Ls10@9#0RG=gC$oaOu)1lX_4:f_(]?<@nYX%h,EofY]E<IM,fg 101.516 + %F`jAD5UfkAaVsrQ/n[<rLW7fTbd7Q.hRAiHnn?75\r32k?jj?WEB-I+[!jc#M*rogs_mfE 101.517 + s?Xc5;8)LI&ErrJ'7?Sb[6`R%2i`h\a?dOAraOhg&WhV?)Y,pngWC_>'<<HV8THbEl\k:2c 101.518 + M()#a&;<d>/)Cuj8$UR*aGhHQ:WH5:"[<k4sRR:84"Q_J2?[7Qun)E$3<CV!K)0ZoQXn$AW 101.519 + J8e-9C3NfWck=j1?U$@Y$#G*$IhNOmRD5QKdgRF38]B"+s\\.F#4,(H7qlMS1E11ArOmUq9 101.520 + L@aukN:"^W=oK/O>l7o(VX,8eMp?*>#:mN.qtEUlFd_W<c>Yn4=0H,Zf/(A1]qs%_DgQtSd 101.521 + rO.QKg9Z!7glQlR\+k)oNfIXcLtO.;;1iK[iMO@*Ij(9pn#6MAp?Km\^u.5-`PRA*VL)_o3 101.522 + DmSNrCnS"dFBUs0L'u*S7sa?&NlR:(;K_=8q==S#Loj[HfrQmdhD3[sZIF#JesToA!9NI]q 101.523 + `/_$9E*hFn`'mVW'A`_uo19C-Om*W8<jB*D^jb%U4rk<_,gpgJ7EGjW?Z_1pn5Tr\o\&8@h 101.524 + ([`8\_qrBIBJg%mB56BR*4akPJpd=17oO/F/I.1;i6PcKkU4a5-YiZ9]UDF?2)ZbX)4r>s* 101.525 + aU;=j`em/1[C2Ih5"I0%7EPKS.<Cl4;m_'I#l-8#1R*t66B.%?*^ut4qP'-`NK8m`"=4p5+ 101.526 + V"i/P#;H2UY.PTj><,mE\^69.6`&'H8Lf5AjeHY)^(tFX-(iOk=HO`WMP0`Pp^<CSTt/de1 101.527 + @MaZ>rV`q0sgSS;B53(.-27%ZViTk`HM??6_I!2!"#'R7S`58U4(BAq[=S;d+*6fi^&lN7= 101.528 + .L12T[pf/=sB,b/Qa782qCPG[..T/$mpapIG\,h1tD1M0_7oO0m0]Z6RB*`u)rP<W2M!M=G 101.529 + !GgP]E4"%]"BG7D(:>-.CB8jEskH]BYl5;j`XV.=KqMEWM0g)ERs.r[-Qr4hg6k4V*85mA[ 101.530 + OHKs:)e+([eIJ<Q;eJt-77jIY/uDV%SQ"g-;6!VkW`<6)<U.E1X#4dt<SG,flNL^u<K=@c> 101.531 + *Va]2/00mY-qBbh-93!E@3Wd\lW)&?0fITY>qa4=1\?;lihsE<Xu]BgBh<T7>\9M0#f"_f4 101.532 + /WNOg8"_b#[g;ASf>"NW]Zra.aJ:m002j<e,s/4&'GV7B*[qY1?e26YUC[Z*m]Yg07cuD=, 101.533 + <Q[3TeK>MFREmKLG:<gqlM4,n7I?*LjU0%SgYR<.eMdCNA?NSQ[uFmd5^\@6)<>8s,WDEZm 101.534 + i(QS&lHae9=7Hq@LT(QD_`HuIHn%KU`qHH&7I;d+#[9)5`>q>#dDJc#](_6Z)bR&jhD?don 101.535 + )ZSa-M1DgR&\T#3$"7&9KeTpG_73\YiLE&UDQY)"=%<[.4)'IhQ70](Y1qr?f+;[4&B1$_) 101.536 + Im#hNUb"Ka&qdOA))KnnchD$=Uu]e>`Fm:7S1^)0.(5bSWiW!;9E$;.V2keQ1Dptb?8a9AZ 101.537 + -o68+p64=cY=M>g8].7VU+MY;U"Jh4+"jER%_53bM^bSb'jHcWT^#BAEHXoEGULOjUS5Pi% 101.538 + A*%Z/S:01KX2*M`7]Oj[E/8nhQ_V=_cqdopZbC#(qMo`h,6`61J\><S?j=SNp>^gIA^fIF_ 101.539 + i44Y=n=R/+eX`_Xjf37';lOg9J`?!>IUS)^Ec&JlL5/#WQb]=1iMfa,U`S!=KA8PV=XEGHE 101.540 + \g'mAM1)A2pBJ_TTh$V<@>GpkY2A&>>@)2dlZKZR;Vc\TG&*XuY\o3KhL"^;K>"%e2Ko#TS 101.541 + .BH']t;(i7^:f3RriV@#J51LnD'NqJT#sjYrJWZffT2sD&tLNp!3fQ)foq;Y"c_,?.7WbIs 101.542 + LJM-+pcQ+6)&<N,p%W\2`Trj4rNpMSOTML,aSlU[]i!/re9T7nMrN0;`jJS^[Fj;<hF_;// 101.543 + E&:WM%a[=];Z#GE[MJ6-+E4bL"_?HLmt+)1)tX0`;o(aCYho,L,U[J+"Th7I<FlpH;-MgM5 101.544 + V"i#<O?/NMCY//nK(")4gpVHWC*Spr2-Ns@^`q`sLgA+IknfXRJGlKGOH[g&'IWs4cn.jkC 101.545 + s*aORHe*G&(!sX$Z0WNMb'Iu;hL*Sqo7#TIp?pm]4@d'XhA=[I%fu15B5@1l6cJta47+Yln 101.546 + bM&N"ac`4mf'-*pYLh>I@n45^+I\+s*qZj@6Q(8Vs4.eYP*G&h>@5-nbunAqL;d$eVE1#O# 101.547 + _gCI4r\Amdg6nJFmd\p@#l/O2guL$LJ@i\aQ!gE"i=KTXmqt!\\HfbF\SB/H?=b\aP.P%p& 101.548 + bsQN8b:ordHMmhl6=W<-k1!jG;c&2:YV2$NFV"07gln2CS)p@#1_n1[iD0H.K`*sYTV"cK& 101.549 + Xd!l6/aL]`2#r$,d0F%EYM$G_&\I_=6!J1d=hYtm4$a@;PnA,Me`=-_-%'[tbn'_4F$IH\F 101.550 + s/jB2%TqVkB"@=$kE,&^:3*n*G2s50fe,\'mR[m@;$h,>iNVb.:0dWJ-P5]a%VqIBYko#lr 101.551 + 7T?qg/0-R;#\"f!tt#t"tQ#$EB)lr'*=:4&i!)mbEihR"P`G:\T%9XD>OtsQP4@4i))VI&O 101.552 + @28D\R.p'X;'!;,Fe8<>7/j&ro$2/l!+R=p;)!$S]%!&YU*tV&F?Q)R6C_nZa#f[2Wn6%8b 101.553 + XA932E2,k=gC*3ma.n^/@-QldL2*\j,l;:Q^BjW8F+*jP)RnaR\UocJ!@ctbW\n+dqWhX(l 101.554 + 6+-I'Une!#tN?+/:n?JN-;B[5>,pI@Y,-idEnhD@?QQ+1D+=gG3;@=^I73lnF,cm%MOl%&I 101.555 + 9dOg_-*gf&nmNk#AL;B2,E"W.b>TYuaX30r-aJ.Jl]3>)*?GiE.'eg\nrY@VPppaA.BF%,d 101.556 + +CXgg^6g.,Vko?o!']#%NhDN)hD0-ZFqe%^)]M2)=k0do$K$EeLbgp/[F1R66+L\DU@`\[1 101.557 + [TPEo/N*oe1@]0=(O0o)UO$"Yb!(0WTaW1&iK(kg^;1+E#XXdg\&g,r0Nj1:&Pfo.`$W2)B 101.558 + ;5dSg_W1''+MV^eur1UBe4o2.A$<Aei#27$RGo3jO#s!eA.1f=K,OpNtHH2nV(2m[i/F+$# 101.559 + %`AfZ$[ZcP,lj#NAGrATh3O>8:o-,51fGT7e)1a7Ti@54dBFB>?&qDJoTIW)h\N8\"3e<\S 101.560 + JGD>aL`J;(\F\>n1Pn7;ppM>'5-p?\!MM_6H5e[8\+B//%c.e]PQ1]Q5dUS.<"RSgiAqYj6 101.561 + *0rAOhicYEA@',]egHi!FuWR2*c6o5qQ-FPQs/]Pe&[45]bsK1]eNd<C'=O6n;n=bQ10@DA 101.562 + TZo2md67XT:c\&OSh26]U%k'Nl]GDar5i`q4C@1cIEo3Yk\I6.DF4+eTGk,>'+'(;QjUNuL 101.563 + ^,WCh`U(85LeN1TJI5=S?b5P,=Wi0ut$bS@t$("9uno=[m4^J6WM:34<7@Ak2TWA'Q9)"WS 101.564 + O$]dXgM,10^8!A9o979!t2+WsN[kp`GeKHl8j[nd6&YU*^odh'?"or(O;ft0#Ps&)(5uX%( 101.565 + (1Ceq6,FTbm^DdW;rM^oMk`t(CJ<7*9f)@f<G>/B&C+5u-PGf$cG_OHZWB"/5]h9>'Lr%$A 101.566 + @V;j=gNDgoq9V'QF1k4^6P_,26P5IM-8;[=Rid^oJ'RnJQjZU>BRJ8[D]J<_+/T(__p%;!7 101.567 + =g[,6j1W9;-+BPf2&$aNq6>30_`.!S/=.f0!$o@'o6-eEo@3aYGaP5c]rQZ\:j>K2G9k30X 101.568 + KQocIH1Pu&4V\WpB/og`$56"Ete;X8%-Fum1!p9f&e2q@oT2Hr,K?WWBg1_UT5ZYq[`n@Wi 101.569 + "@oN\:!Dci3O$m$'\e]]s[3j1B<jYnn]XF9:'SeW3DU2@1B_.'o&[uK?>A>8]C2?UZ[]ML> 101.570 + YdN&h^37\21!a0def/$s'hjfu/N[e8lXhquAoXYT2?u<e&NkWS*T=N92XhPL`Y___42JoX6 101.571 + ,t`<'f_J%[o<;dQ70/k;B.UUZnqIr2Aun&Bkroh7eE.V2^_D-jZW=a\J@\Wp-Ws;>S"XJ)f 101.572 + &qp(J;3h.^TuU5aED5;u^P^JTeKgc4t[ab>]H)F;I6C';7L4TfO,Y;AC_*EH?b+pDUCQ'gM 101.573 + @+EqY2HQAKr(NEIc-H?8[C1^@g?heQ;*](a@p=.NpP$[NurHblD%Zhk\CcH#\.AlmSblUQB 101.574 + Ti#=PYH]08"G@MQ"i3b3L*<D<@+bC0=h!Yf+aB/YqGQ?"=F*\Ym)IX*n!=qq(`GkPa[kl8a 101.575 + QS3@mlF6NR2j^VReGDLTfX<X@3EJDPFu)(b$%OPVFphkEJasVnHl]XcLI'Y%Qu.SD.t>`ZJ 101.576 + p6W$%'auVKo"8rM%&Qkp2ImU#BFsTLlS<`25uJV=_JLF5&B2*R'aT;Yg:t"<AG)DCit]1_d 101.577 + ure_"c<5:sFRWA/_.('@,3iJNV$+jO6*GFuKO@=>`0`nPY]hL$N;9=#.4O><)@$[^?Q)=AH 101.578 + 96qi2&(Lb!9Z!K\>p=q*aH)Rt?@2*$heLM43>NNGBhd+:1cUOW)5\("i,FVSJpcV[fC[b!r 101.579 + 2<0]uG4[F6;P`%muq&_QK)RYp25.>;k<e6R;EBj36H1VK1PuEi]7r)6>Q)d]Hi;#mZ)+YH+ 101.580 + Cm_>l'U+nd7^[NHRp!:gMe.hbI()+n'3UAZ3KoET]q'Ep=fYIe<e6VoHUTbkJ$Y$>H,3"WK 101.581 + 0E<q[.J9k2'kCF<k<RP[CP%_i;&s(f:I'PQh5!a=qV@7$FJLtQP4d2=r+PLbEk5uQZJ-G3L 101.582 + -/G[A5<?Cc3KF<LgMl02Yn,!#+IA=P9:68#=!$[[K]GoTtZ_;l?'6[X'#\\@\J<7-YW_[DD 101.583 + 2M6.G:D[?")k9R3b>CKkbbm=Y)nO`_O2FDEis2RV5-7*B:\(W/eT.AcmF]GW;a\Ns6]=0;> 101.584 + RQaaAe\ocFX5F"&L_HL`R=^>NZ&Sg$%Zk^hq==K*[l]dhM3;X%)qTEX,L:,bTVj1bllVUoV 101.585 + %p\uFHMV!SZ\*[q2d;b5Xa0r;4#"'H,A?s$[/&6M.nr2$CJm%=ZT?&k)aQmH'=N$,Chp5Xq 101.586 + 7=.A=(g8k[+,,b)Eh6XGGu>'\(QU&4*ar?9<iW3BGI4UgRXdZM5Rki=K>pt>B<\(VRTi]SJ 101.587 + l^KgR]<&UV']iZe!"%RtkKXMls0HWN0UEb^7)6/"s$j6Q7*m[.5-"j:6`k%ZBLY$Vc][#S* 101.588 + *['LA`595-FQiYMX0(DnfX2@hmuafC>N_H\P,fJ.;cZ,;K6:0[k-4?^Qo09@<e_8/QmN7"a 101.589 + @H+'bbVRK."eKL)+=bS^V@d@<s\Wk'TO1mDqT7N$3<;Xae!C/\b[aer^3(+EQBh8,BaNZrP 101.590 + MeuIeSdFAFPP.SN>NiN-pr`NScZrAE3EF!V\Y+#mMR6)T>]-oM3B0)#+8=5L4EYsE=3c#+$ 101.591 + ,#T#\k0PM6&'/T@l2MQgOjOqq6@S\d(>L_Y2@PKs)S"3ZMO."=fZsP1pq`"dPp0m<#*`Dcd 101.592 + ')/cp@]YMbVZo):DeXX?AGelTqrTfX?2;5eRcBb<^1I)%%<g[5s)#fLc,_Z6/a\fR&TU*1P 101.593 + Atq78E/eJet/)jrY>rjY)BU\riW*GPnoDRA5BdJT?_SW?1pPL?"sF$6)HSY-:u)1nnfeQl> 101.594 + (I9h<WrR!]Dc1C8H.mq@@O2sKMY5?PPq<ldWCX*UIZuc8746F#cX#IM1c/&<+h;-QG6e.lW 101.595 + F$3rGSUH524j`h8OPRO<1P=)f_UI93[D#8@Or7TBOq8c<mhDaO_32<+)/Xq)JN+G4*c:&&K 101.596 + ^UJ27N+AL)M%5Rc_'&9[2gpaSS#:=-_EE:hGaSApE-j&A@gK)`rH-AI&YlRB0O$(dZiEZeE 101.597 + b$M&&TM>ZohFVPJQTY?,Q@JmBl1A>Y_`ag$KjF:>Xr*94L_%05hc:mFDq4hVuc6)saP'Ed5 101.598 + 4=D-(d:Y?F":lWp90X&\,)1<"RQB`1Z61YJY;PsE#/^!lG_1O6';<V!SHo'IaH$Y0tQ:`S" 101.599 + iog-jGeQZ%BijW8k[>e3/F\EfW=;uER;`QNPm,P&CeQ]C<;-o$be*lJq[J9`\Y5ac_T:,<" 101.600 + Qg33(aDTo2H2EE(o9MP_`d`n1^SAEQ\%A2X]?>9;5HglRPGJ/RK"eST*T`_.-GS,Hs$@$qX 101.601 + <U#4H.L^!\%#B[%0hIa#mGrIekhG2/f:LA6/^&pPU0lPMa>t"Qt.s$(P>3<&B@J)4XG\),n 101.602 + Rq0Y"%Z>7?<WM$jm4ELFM:?H$gB3+bibU')D/PK*=tHj>:u.^*N3.d9lF/m"V,JTuQ3%#`M 101.603 + Ll>,bLPZ>.'fa&&!F,uVi26=P>1^nMTJe:*0m]#geNS(.k$1mb^k'mnDA?H9rSD"g%k(7Qg 101.604 + $aDo`]>^F_1-J!$t.0]PY=3aBV%NH5O9nm0;,o"M_<hWl^<Fa_JK`bU"SQN&j41+ikD34"_ 101.605 + <3=[=)_9!%nm"<Fk8-kFD'N6]%.<58b/3]%MD"`kb3sQP*Zl2ZalW,>r>qS4YM&<!-%S=bL 101.606 + We_9GIEuJ5FWr#J]4,?WG;Aq0H96Y5c(]`.NO8+UrAjY!J(<hE$Qn:5pE*Q"[15mg8g2F!j 101.607 + <1t$!T`h\uLE[\]%,1PnD""oKY6$d.C]G/;XG^QEeiCI*]^9"G63-VKjWuP(9Wo$Ckak`uu 101.608 + _6<21^0Ou/:M8M[Z7Fe6WW?<8(7FK[Dl1;q?jJu56mC+(k8__OpWK\n%L1KmL/MhRh736]j 101.609 + 9b'9O+N1WBuNA>O0W!U(b_^eD!P,$#jZqh[=0"Ns<[7>hOa%,b@JttoAZP&2+XF3AO7ZO3u 101.610 + 9#^5H4[dfIm5[qmFeVJ/J7Z]<>h9;i7XUXOM<%-gVYtXC$0$6!T\.f6FN)pufl5p((36'NQ 101.611 + =j3sB%qKgTk#%L!TdM?Cf4sg<XAl6[FI!j6Z`;:F\t_9UIF'b7'$RSON.rcL5K<][:FmEc8 101.612 + G]MZM.PuK0-$EHEAL#L#0j(GN'J\,^2E!JNS_]3e$,Pk!FK,GpYk,A*<8@Ip@r&GCla:Ec4 101.613 + Ui/n0@.UbS(UT$h-2'X0HQRmOT]X.:/j<(Hq2NTVil=Rp1HqO3jQCtiRnBiqZMfVi\83NOB 101.614 + >DLI6f\q2*!C:Y].]eoq&GC?qt;QlM!>:pk`Uq+5-p#X^V@$TkFP-qWkGhRA:,C2Za\uON8 101.615 + 7Yu,&*khVj/]2h3E`upFaC^sJ/]49P:0<*dPh,hhDKr>)+EC_`fsg/r%a`2dl6M%3T4cis? 101.616 + PhPMH/5%Y-Um!=IOC'6GlC$&%5DIG,"TMRJUjjAAPlG:HLS:!#!pB:WU"mq":t"tISYZOa1 101.617 + %B%cLiU?LW-lt5@5OAguFI0iI+5>rB)l#LHUDYJ/njPmi-pFAe'BZ9?%P'(eL8VV6mg"e+i 101.618 + H.M;^TFfHs+]>RaK54Y@<P-O!GkB7hI84f([S!FV(@K5$i\%J?OrhCJ:J/7bB?UM<.'P5cd 101.619 + 9:lCN+'J\Rg$\u[g+<iXQEaC"R-cMZ$R)1+JR*4_:bu'+Y-h9LDUCh3RJUJ4hAJ<-.^a.;9 101.620 + gCWIM5oPjeL;\Zp_^OHLf&GCfZ-GE_&H!W)g:g^0hDn).@V"Mm5nsHoF%8e6*S,i$N[iU10 101.621 + XDc9hha^XNG_=^.4TAq=[7Fibnirj!9dmk.?kH7:.bgDMolC&PQ1bY\AnIFfJIM//?+jhB5 101.622 + oOogEpJ?W^`._?Ap(,@XY@9`h!DN<T?Y>Qn[@-)jm![*%]$ra.cVG"&b+hflSUj/c!V7'f[ 101.623 + :6nsBP@EZ$dq31Y,j+Hh,3]%>b!Rrn"fEtpu7e424U.6*oR/p,@KW9me7niP;IJkHEr4Qj! 101.624 + ,C(n0m2.r+:&JY)5ZW///Z2[9!KbC)Co_,3aieE0nD[l::P>Z^(8nh0gI"[`2%\_DG`X$Gk 101.625 + a<:^%VkSp;oe.=R6BF@;0SZP-*^8cKnC')Hp;ln^VNeNSTu9-N*%@SU6nup.RQX)Q'`OKiR 101.626 + "iV8''RFX<?ZH^DpS_=<T8)9M?C`!&@T2Ll?iIkamCUC'^hQ$.<C)T?4/$sS78,kF@u&:5` 101.627 + f1GR4J,.0m4&D_ZDrgi&h;q$+2:>EKD@04P-V]Y(mRt$PCJ5_D+nid((B=7BH7aNFP58em_ 101.628 + <d@cO9k[_X)qP'q2'n]j14RFod<_G9-)!1IF2g.Oehj4?ou*%!;kf*cq1X-AI&(K"Hh0u"g 101.629 + ]L"]ah:-TA(Fus30KcJM0K97>N\5rNL]ba65=sG#$U<-,e9YMMZRK<I$PuB@OP5Ri6:;&== 101.630 + iP3oLES9+L6:j#]B]PmB2&N&W@[d+Jj9Wq9-NeY`LqU<AlN>MF$UNdWOWuSm/["<K)C1M__ 101.631 + =u=?PNq0[=S!YGb_BBG`]l,[E>ZPofT9:*Z%seKBHl$s=\/1%ISLp0Z]0t>&Bg3!O&W6gL/ 101.632 + 0%)L&6YhZ/EdqO`Y.cLOt>j9Zah_NFf-!=GKVg`.I]cA5%WAo*02&B7B^#.*a9`IUp[$hG% 101.633 + T5l(>9l#frmH/4uqkTem7#`&SJXAJ^K"b.^-g3=+U*da5Vr?>1gunnY&t5tIt%44K^c;egO 101.634 + Mp)b'NeQ!<Vl4be(#FOKj7P:JZ;ueL@og(pjGfA2!Vk8$r_9N5BOdd]HTCc/tcrn+<AB[/) 101.635 + PUR`jaTjWLP(so%AEINnU6O7sQ!KS"GYb<ciRh\E#0n2;ZM%gbDM6-CNRmGiQ=A**AGTd%# 101.636 + 2hZ!$XoXIB]Rmp(Wl1[[M95nL.D/HPf-^`]%85VMUj.]W/c*J//]jJal]=$:nksGX.X>Z46 101.637 + &CjQgc%L\"er6O^,;-XmqK.#CLr](NF-EmV:d;g>5sZ!.1*;e/F(Acs$)9@Vd<^a@_/\CFo 101.638 + 3Pn+'fGW.)j^)_?ni.mZQ]<gJ3J>23<Yn5M.t60UfSVD\nhT_da5SPBTTc/MH:q&*8g70\T 101.639 + hPJo,A7Pr,jop%8g<'dR5`9U?C5]lra6o`?td>4uU@[Y-=C=^Wlp<p>]JgoI^08j5l/F`JT 101.640 + !TSSDbfRIuCXB3_`%aXQjOY<&q&^-tHXF#!-^2BV?Q\>ihb`!eZec735eXiQPPBJcXSR>iM 101.641 + qT8l.N\mi@%OLc1[^nW1kqdj56LV.fA$1XK2m?l/Q+Ht[43*VkTLUp;,A_>5K"T0TN[Frp& 101.642 + XFP2K.fAIP]Z*VmGn7;o^X<j?,6qO#(Re$b&A?mZj8j%F];1.rl<]$EMguP+oR\j*ZYF$9& 101.643 + q45_@(m\B2Nk"HOJ[S"$UD+=="BNOWYR\B.]82ul%@f0MrmNt[BX]=^Ao6jU(K0R3+I.T\< 101.644 + s\X^P;*71CdJ=WF=nN[KoOqL'KY]pE*]a(;&0,d1aHmXcA/%Mp"LpNhAK(+d?.$fHIL=l16 101.645 + WaD\\aU*=lMEBr\+GC+(rBZ@o_e^(*H,M\qjM3:t^4ZCiqi6n#\[_i$5Np)&F5Mus]fXseR 101.646 + 1$bI>U?hK4.C$BVDBD^o(\/!j?l<q`$;%m6f#CHVo.0K7'Mr\^j&!5fgIfm73Eqr1fQnk5" 101.647 + /Cd6V-^`<&m"G8I?FV^_AuHPQ+!a=:[ej-H&JE9Mdu";+&gS7:]IfS0CCt@n$;k`fmhr"Ap 101.648 + 8r@>J-E7[W/SA5"s^?SpPQ6_XH9K2nlhP/:IH7pL4"$BZfPnW:$<KS\U-R0&E_q8]`J.T"q 101.649 + cS9DpaiPBSM^YDs^$+M<E>=G&VaAGl,"0TW0:.P-=\$7Hb!:mr/%`%)8PO&Lpljj@QO$JA[ 101.650 + ^o3/^^o0g]M%!=AMQE)GLn__+;&kgd6aJ12!.mN/,7If2]IQ7`b_&-UCW:Hu7]Y=c>a1BS/ 101.651 + <!G503N0Qn;g14U<8"g8s"WW_X3BmW_,7DN#8&#nkR=F_(GMa66*3:KRlcADFcm'6/.$RjK 101.652 + 8c1Y<Aqo81[l_3.f!;=1X<"[\U9"N"el<`C*=&`*43!9>EksW'CY(,;`]L/7(uELGAAN8[. 101.653 + a+9SCK+oZUgPbf$-qe)`YYVb<Pl7D+FMI*ma,&^6p=bd=%#N6d=6gI>/X87^/6WMiNb;oJ% 101.654 + Vbp:@KK[!4"c:Se+^&6's9ZXQX<(,539lR)?m,?2OJkgiSc,,^c1\a/PX\R+-:>'YXn:El% 101.655 + n>YGTa,<to,Oc6uLc+8c%eT3bjO6U=kJj=:9l0%5U+8BB_+f<s`giYlN8VJKg!=X/Kb/!Q& 101.656 + M'rQMob]U:fItHjTe?l#El[7LkLo;N=,`g$+Ij4:i-Zg&>G\YL9;K?$n0#ROe;u3/f`+MbN 101.657 + OPVPTC>B1Ig/5cg:DD/G`*ua$'%7a;kd&m&Z)lE0c+H8p]sC`?N1H?3n0//ut=:>ong3_6i 101.658 + gm:\;%XN8i*WJ'DM;;Rs1>bpbi(d8,Gr1aOZt<8Gaeo>F7+-.6);@iW]T&Bmi!O]*T"bi)J 101.659 + cafSd0NZ>J9,YClB5L*B5;lh*;r;*^'eVIKm;oKa*\JCG*_F`fb`e?m=gha1k'i]<*4sBkQ 101.660 + D+H^Y)cWWi:6c`R]g=>fpr=[M<7IWlbs&Ne1JE=NeNFpO'gmp[4]IR^::'H8`@'47?rdQDc 101.661 + Y.obW)!QfooJJ0cRia)4ElEspR_`[eg1>q/;-rm)q)Z7]/r-P=I-T>r)0(\;[gFj'k%R"ag 101.662 + Z&4NuXB\V$7?6G)ne2O%jnVI<sD4U_T[I41rgs;Md\li(9\r#0EKnnhX(Wk,qZ$5rfG'j\< 101.663 + HG51[,==#o?hpr+#$TSBQm3R&dNjWlB:K@4%f;JBB<c!aZ4<n1/W<m=k!>qsSULE\M^5+PZ 101.664 + lWc_F/.oso^LkR]@Z.p3K2bZ%u535GR<?,/D;V?HW<m>MZORK^&O&Rua=#G"t$anF55ZZDi 101.665 + 9p;V]Ccjh^SQTN$c]htp/W#X=U;<<+X`F]d.Vi6Fg!c4mgDuP_4dT5#[FDiKWBIW@A7sW?q 101.666 + 9n'Lg@_p$rE^$lFBGBY>[><LTS$$:q1h4GL.JFOE:VegTNo?E4F?s(4NC\9XP%;h2W@BUg8 101.667 + J50W`e/t#kGpLJeX7\H\_RPM0t0o+p\^%g64,COR:`Je<2cXc5!0K]:hZQdaM/DK@'hD4Of 101.668 + a%r+'$%;2ik]e6HnJOHD.$TYYd";S4)K*S$`MMcf>HLpca)h=9.ro.K<m6SS4%1_U4]7FdA 101.669 + q=^C5bmCQB#W=L$D,.NThNRV5+LYoeG>$_!ZV)5HFgY)Cc)&jN_$QU2%D?f$A#&n3_QtHY3 101.670 + C(mR4$>?l-1+G##k)&c0i&.>fj+P\%92R4]?KLJY?4i2s'%Di>>HLra!4h&JT\^YuaA*]^" 101.671 + s$VW=pbHVM;<Tu!:o+ir*DpVf*^Wop%qf2r/WH?$'#O&6O52af;e^2#rX!eh<3OPs0qtKiC 101.672 + MGN]kg/E(4ZQ)i@QcGQ!G#O.>-b4eNg7r`Xn@m0*q1l@p"e%*>2j5BOfi+M@M8<28bKG`8: 101.673 + J^A6c6AeF4#($jtJW&1m>^D9*6Gn\:?'-ImM"4p$N<m8r\Ni_CE2PJNCKV^T85hjmeY@.:t 101.674 + R18(u\5\5/qoF2:.b7c$WO*4cl/m[;q>)Fogf0$7bX/emQ9I,mu%iuS<ORGR94HC\C=?r?] 101.675 + -7rZ&dAQ"ej`25G/13I6,M<QGb)UJaSoTW40p[F_,]36+ohWTXk@0Ga6nGT;#&FQ/:sK7G> 101.676 + -9&Z:$N29e`BN?^`Af7IPfpNctBD1B@XWJ5k<UlIUHId*Q1F(GZo]\.1dn)!B:aWlfSud*b 101.677 + ?CJ#UJ<Yn<'hTOMoDK)G,l]P-rd.M[]s@>r0=0b2A4"A5s)cNGSP"Nfs]CPTt:m85>>N#aX 101.678 + `^92/6736@$<(kc!'KB(uL/fp@8p6c=HdqW9UlBR\[@'c+`VWNS)idQ65Sr]$%OGJJ9>Ac= 101.679 + `\7=CP<RnO+l6r!.<hO)MT4q<h*+$2^.+#5ZL57_cM7R9#BoD;Un`r1SCJ,^Y][./>^WCZ5 101.680 + laET\XqXtrSqH1H$jOL_>Y+0o^hKB;&dC^aN^W$le87kFgsolb3<HVYm[gT5SuDBa2.ST4g 101.681 + .1R*js=j0(083:S?UC7W&W/d5g'L74lo\#g;U(/:lc`M1TVVQMk9-E%<kY4h/9;"2_aoBd4 101.682 + =YCp1>B3h>Yph7D4uQ]tMuP$GO:]K^''leaGKhhqmFM[MQFZa)2BQ#>!8,L9ZU<X?7gImW! 101.683 + 7/n=@+GGM'g,?V?m@\i[*2YsNi>_O5:>*s-)@-uJaMmIl+i[2.o5(Lf:NnAc(%ena"E:YOt 101.684 + BE7Sa8#eBHes7#Gh$8.-5AN#r>2qf+0BYKFe[Z0M86.5QG$Z%%n"]mJL=:.uinTM2Iei9Is 101.685 + q$6o<1AosJR-ScY;fYp;.&AH$3>(i/=ZZ^E@cfM\NoNhu-_HGJo00]geJ(tS:htgIl\P:U& 101.686 + Jt!bV&R4,F($-Eh\AlNF`R!aEsFF>O!]^=1<%hlnCG>_!o]E!JM).+'o+nf]N+SpT1.X'$G 101.687 + Sn6"T3?'HO2VfT0F`b7acffe*t+PF]suG@"[OM"_>]<.H0Y*B_B,cnAjX!mG229%?sgm.o3 101.688 + =NF*iehLF.,Q[jP0n$Y[B>q9a9_<br:I$sdu%GrFK'MkGY2TXEG@&<f&+#U)M9$$sB<1OBH 101.689 + >E"]p*+]+?r.N!@hTQ]gWGElOF#_mL>P?];3fMf99^l-`k;\9"e-$[83a(Go5/.,E8_5j[, 101.690 + (k9M5_Mp>0h)3Rio?_6Pf^.OLpnqih-'&I5T1WO*\h=7&e0p4)N5G'k#AC5P:35Z-I&!E*G 101.691 + je#ha'Vu:T3q9TFo3?AUgJ>dBkPG><<[kl(6N*<>5A@[n%b4Wf)Y*uk&FLonZ=]C/dLq'N+ 101.692 + ge&'r]Rh3oQ3ejC<[/E7WE[9,*7].LM=kF>7fl&>aJrcjMh4BLbOr+GY:=&8W]cl/$k"GI! 101.693 + XQ&:6ksHW(W(W5X,]^&pmAH1mC,caAW2WJNp"M@[d]B?@_l[gG@0BOA:UcajB0b5B!_Lc;L 101.694 + -`(8Mc[W?VSO(Zo=[)mXpU[PD/I)o$0fXC_A?G+m'F)Qqm0>r2sU\dj-HnVc$#`AtdM2@9k 101.695 + kEr2rC>+*Vc]"LIqo?[(O0Lh"K`4M+Ef],$+6nO2i<A\jrkMZcfB%fBRX9G(3cF5+nFguh< 101.696 + ;EHfJ"5s"i2C186n+e%^G55uRo]jtrWNCU5Mg9*'7FW'A=uaQ=G.9<DDrkm5cD&!0&'AUSa 101.697 + E<(7Ki'l1n"^bN+Q'+O\996q1Qb!1R_$Fi!I?aEgiRXB@>K)ApBc8;,NR'Jb#'p!#'(r)4I 101.698 + .n9Ur;$daj+_d9EVJAea6A12UO,=^ZC!"PV78JQhH,qh<&OF1*Tg9&Q^G.s\hbYF#.[#5a% 101.699 + g@*n7n4O4C_\j8%6HsR1*KZRPb9iVnR+-Xu]Ee.K0Am^b2kqTbt7]'s/SCfGoAaM9^2PhKC 101.700 + 27#^*@BurMGBSuO!i2aE=Z3o678mtRFRsXFSkXj+l'^;5r-jE5G<FmZHenRL$jO63Gs$!MK 101.701 + C30mI'd'1,sn<Mjna5DjS!MeeKR4"Rr>9FqjFGRkaB.<S&YLF`UVZJ]uQ5a2&`\%!14O5RF 101.702 + MX,A8)s#^kmWZE1ZR0eGbqU"Aol-%`3>A`$Yq[k,Th\N^bT26/\'2$6#S"-n6._)S2s8Gb< 101.703 + $uoRO*c8UOXkWU_fXlR$VQG+Qh^KP'!e0q;:@W3LG3(nECOW34/IS=5s!&aBZ?[V:,c-;2J 101.704 + /_(I!&4RhOQW`4_Q/b=lqIo&Z&#st8K4V:(YZk<5'(8?ndQ%;@8:(tTG]eN40<8BQ0e("=^ 101.705 + :t/Jc8Q+'g4],2/<F&a.e^](II%D^F,`J*8Gi)V)<S_q,f@B^B>,@-cW_X;XOiUoI$(;btf 101.706 + LXPdBA)u-4I@21;:TA)p=5pTgX_(0:V0[JS0lJEH[b%hDJdJ%:J2D[Y/TTEEBG*0/G;8%o` 101.707 + Y>_?`C1-E8XA,\9FEoiFji"XSXAu$\f85@4'5T<*UC(`YXT;=E19^RYeI)N&0,8#EE<9L+' 101.708 + @h3#tt$A]`5&=Y<dmF#G@h[UGLLapOO_TT`+(WjfAoBqWbOc.7!mpD]pjX\.okR-6#sNbE! 101.709 + m\mZ%1g>96?_(W.b&#JbugTPC:=nAt:>614q-?1rqY&!p#[S;ru*jHGmR[qKIU)W-cY[$FR 101.710 + !9gE;)I%<o'CF__kSu+=K("(;PJ8F6Su82N>(U;Ll$MQ]l6]UD(p>p+AICk&1eecP;:L:G8 101.711 + lFEiC"i::^N&''?/KqapYGk#i:p:%AQi=2[;k1$?=0,_TU'ob>7,tV1[,7<.V=AM[cb/YqT 101.712 + 0nVR@r^ZXmXr:=3KXVIWEVU.GC8+l))`J(7B4^1nJOUL_o<u3D&a:5I)L6Qh-_qNEqR(6UD 101.713 + dt!-Bu*<+h%g6GZ.MV)-/BGcN/XB$Be+0#G1&QRFUO@+g>kE-T"3&o,S4*%ZX&V!4)0jBPs 101.714 + f1F@q;))U>g$q_tO,Y6.QV50>Qfo(Yd8A643aEgdIWqJ%1fqO\/R[t2j#!8dBR(2^+D,)!m 101.715 + L$Ip4`YR]nO'sq3m?j<7pr(b1&d3'ieIk?[["+6c?S$$P^_A]''o4C./1h&#_ka#.>l!'7/ 101.716 + r5r\dt$[Sd;OmmOfFSsnD>J>09:e+73.S3!E8VP3R>D:"P@Q9$-ZD5VQ&&n7ohhZgoXFG&O 101.717 + nhS,.HBmG*^S5>YCK-0'20-QdYk@9BV2=e[i;Y1EL(#P%sUsM'![/8SSoOMY<?NcWR&_<B^ 101.718 + KFZ:4uII6]3EM&3QRk5<@RWL3<HPifMK**t5e!1kR4Cl?RY6=2H.507hL4^q8_.E;me&0n( 101.719 + !*3to]PNGfXg%@A(AIY?_0mV.B,t-S=Ec,NT'-MB`4j0!!DSqG7*a.W]O?*t?EK'o+JWMt7 101.720 + KPrDSkn5o^/pQU%nrC(RJOG*7=sDp'U*L<&:M2Rc,/Z$H"bLp)K%Q(G9h([fW2EU\XB]CgR 101.721 + \!97KpFcA-E"02MIR]iNYIZV_r8M2j:7j/d`RO64A:Qil$1R<aV5(C5q)?_ZVY[J?AgA6+0 101.722 + $McfFdj.a6^&Wl98@Q$#<9eAW<tG50-kG-"QA;c6(1?G`C[qAo-:l*ojJJ=^+=.m3ST.eag 101.723 + l#Jr:uC26F:;^=ZX/ASgb1[9(qPe(]dtDUn?YQ'McnW-;F?CcekeMH8S=S!A$^A^.d;53Q8 101.724 + kV0).$^pd?FlePdQG4+JJ]@VN$>l1g3Y8uT7`N_m7$\;_;0eT^@`oLHQja?NnotK&7r*Prd 101.725 + IdcB#Y#I7:f7Iibf.Hs:fH16(S/$YFAT;^iB(Fm7c#9`g_&o!R=^MDHKWsSZ_q9GM@N7gmn 101.726 + KmtI0HCso_f1Ro0`R_u9WjmJ98rD<29+;+*&W+>;X2Of]63uC==`%iXt>JT2D6._S<]9.Ak 101.727 + gD#5:C(]pQ&nh>&o`%.:o$WQLa0D^Nf1Zj\3@)1'36J\IRV*l]#AWM;ESH3=][&)k=73ER* 101.728 + 7`46Kl=T#T1J771<VMB);^o?N'9H4WQ++a>XN!;mo@j$[T%%A^>_mMb+jn..7p3AdV(dWua 101.729 + W%^FT0#?b3Yg)j,UN:o(rR$0sA^JsKH.A'$uJ'^7"=R)FlUCR9`dMh:KCQ0j@oZirY>9>rl 101.730 + *Cb8G.+$Wd#?:!5>`*ZYd+[4^>&.sYYVprNf6TAGmG5=DoX:,KqJ/iD4g2(J<i"7"X(UfO? 101.731 + :+B%ld)!p'^-"8]sk0%b^9A?4066h;8eN/.+]7(*YlQeB+<hL5Co+q,K&_gA[hIBiCaT9R^ 101.732 + +XaaTlonL&f$b\Kp&Ii=I1WTi)=cY9eSbRUVipaiiiH/lG&M</QmT3JJs$k1nR]/HOK])#< 101.733 + &-K_(i-:6[++^_fLFLQV3MP,,WQ.7HA&QLul<d[ikH45A/]os-C!3RQaISGTR7Ss@\!.Gj: 101.734 + JCU!KN^XG5a.I%qmo6"A>b<*aKjsPY_G-7%^3T!!g^!!*k6c%OT3o'.o5EU3IKAO2SI.1HI 101.735 + "aBqpk5=>=bYoj_M_5D<.Hm\2rcck<T2k1T@fkY,56(K6-cNDV)6gbiQA`Ps(mL-?(?4-=G 101.736 + CM?j]V6h?*_W>TUV#H37re$hS&9V<1#"ft8GZ[MMtm;=jF4jhjW3fkrK"mm^/;lFT-KisT* 101.737 + s@;+4p@[)s_t1jn=g,_Z!mUn+g>.qA0+m2,DNpY(HK0]^5+^m;E^<%cIC@&H7`BqiC14:Pq 101.738 + 7FNr`h%s3G6Y&2ODb2Zo.'"4078&43eNBYA>#]qS[N$<.\S3!56\47DP:_D;6\^B0K>r(o" 101.739 + '&-3!S\H$-O!3ds=Dr0m-is%0Bl)u5p0Quc$Ain@T#d6"/0*#$lT)C:b!0<l]:W3T,]((l4 101.740 + l#;[[E0CUtQohOC$dZp%0#%a4cN$bjq@D6dJhILAM[Qbpn^,)NYTF9lo(^N_%aK\3&4I.-# 101.741 + 8!"*&CD"#&JGaR(+rESis[R#9[Y6goH%H'*^RR]"B8R`e?b8uZV`ikYsT3;7hb2F*eDNT`) 101.742 + PP)8JG#p'sV*\Ma"Km^9Z_p'p3DLd;]ok-m!4D*oZQ(;1fZ>LD1p.+!L4;60'(aKbb8W'p1 101.743 + -_,Z>@rR2V3E'_,'i0io7?[i)H_(.5nRZ)\hKR2;!6(_O:u;0<`'ORNjI*APqYOeEFWYoWA 101.744 + T)UVCs9fF,u`>e>\ZOu.;dK6b;b1EnJ+*%Ar&_@mTQQZt\(%LB(;<]7OlPf<a*0LgT90BQn 101.745 + )'b;+,LSe%&jmpB7jO$W]e%D2Yorc1,p]<R(6W#NZ=>4ZB-rdW-IQf[&p#EuG:/Q"/b2Zrl 101.746 + N5<DHoqG3.)8>%&5O^;QRS)e.FOh<&u-pSV^dk1.`r\Y%r3IhPq(e7%l1jH+b_IF].B,g/C 101.747 + Mir'%8F1f.E0?/^Y:FdY.hME@p/W:nTm'!ce^Tp6Pf(0@KkRm6oWJlS+M10[gOe',**!(GV 101.748 + *m0p:O]dcVp?%$MlS!Ac?/@H*<ad3[ac1"/?D'14TT7l6E&1t,5X%$`RV/Ai,8$hI[V"6.n 101.749 + 1^(W;<2UcL7o2@SHG;k_42q*79'8&8CL3Rc@.!#k>PEGrfQ7W)t3R`gG';ITeV`L$B3n(8o 101.750 + '=)nd/<t:;0Yp7A"-<MH`Z4TmJD_Y8'@T)fF$5_p4k&:P'B;8Tk<>*q50bR[bC$OX>;3jP5 101.751 + JsdJ8!rBP#=+/G)&)I)'GEc3(I=9)6.?uC$X5]U;)OI\0VQZW"2k1LZ3Bk^68Unp'LP8f7m 101.752 + rS77+=uBdu?+]$5$6@C2)IJ@*M/?B1??&Ho+\j'QZcDG=RmE8(<#J:+RJdLIdWB/`9c'#,V 101.753 + keQ?cDl*g8T2'S/kUVb32S9%:%;'XK%,r3/#78<W$UP.<.fT1k"I!qadB-\>3Hh+a-g9sfa 101.754 + M<9$_Qk>%9-:=S`.$meGD]H9cK5Ea\k@,c[O!$PccGUikM'b`9#o21bl;:Qad'dHUV-CH\j 101.755 + .rsl*lN9i=02Q&[;oaKt6E)cK.9)R*<7OcE'iS+4<^ft7iq/3^'amiIEWHni*VF;od>f;)D 101.756 + c`-D<L&&9'n]UgLKKh"8+Z;:7om-A`@R[e=k.+4ZY`gpVco@d>1Kf\'sh*:OK\>B&iH(,dk 101.757 + `c;'3YHZ#Be=9dka-ef0+\+>?0Qe(#rV#k?aG>-<4<9FT3nhlk=Na.=_M.!P)T.G=g9j@+5 101.758 + Wlee;Im(L`UK@FcLB'eNcja9U9G.=`RO!1.1\qdY0jA&0U)!=r^+pLJf.ACHhF@[U_VqdL= 101.759 + FA_(4#(1UrWB+Ro\8@2GLTtb5@!!".*B?"CX!XCN]Qq&>'*nH>bp6#W'Q39+8>QtFHiU'+# 101.760 + Vaf6OC=]S((:.dW[qh29:j%pCPkZ>#@4K,T'hoIqJmCjsVacuH-)DG,DM[\XCK)LG<-Gll( 101.761 + @uHFpMZApDo98#e;%k*K2$ID:"8-?pChOJ(NGc\ERnQ-<%TgjVfJ(45a7dhoat%W!n:9nF4 101.762 + WWu(IN:G7oD8j-$'i.e^lr_14])`.(8SdQXb2?B6KVWG171Iet5rbF]XcF=4_A8(P?s6LNo 101.763 + /D0Xl+%'+6prcZc^4='(B-(Sc:XVg=]18%4U9Es`b.[qLR.>ut#h(#+&da*a5sI+Q\m%N`K 101.764 + M;dseU<oMqWErSi]fjM9?jVAGV2tMN#pOAP,J'8KT2q`4M'!O;(:"ON;p_/3\(P.qmJ^7nX 101.765 + 0cthM$%$*9H`,P32VCQo97ck"K@iDA(disHR=[93Jo^,qGZ05oASoK@Fi&9E(e9<_B82dhL 101.766 + =gBB=0YqQ$\6(LE>W\O(k[WHLPV=QLK>jD\*OBe0R]9FIPhpt\>+p`Vi$kBI+XK72cG)(,B 101.767 + ]AY4VXSGfWC*7a,HD/N7Sl('o@.$RM.W0N;2:j(upWYk?D';0_^onJMRqDH]FKjO4aJo)$> 101.768 + Flm4d0B/K!8f2ns_V`K44AOkCh>)'_QE9/8@XHSYtVpZ!pSI\W7o3B36/Qgp5A8!KE7PhAh 101.769 + n=Xc\H:GGrZLS<L"\P\YqB9ns$QIUV9@J=C0/MVMZ?:;\`(6=/Wc"ae-R+[Og)3^IdBhria 101.770 + E,u>>+h*hIgR=I5MrM@'3L?4<\!retS'P5V2TKGFMhdZ/L\\]U):P-Zf:@kKOHU&mJZ"_=7 101.771 + X:AlF*OCL\auFrpRdlM^:!K8fia4YnV^d!*-r-a_;U=jrLoZ!U"UT_$Y*D+o3:sQ=;]Y8\I 101.772 + kPs2kug'UY7niqBqp^)1_n$#F\C:J3B_t<Y$*QK&oZ?\md6..THmT/%.i#,t!_.H!FgG$X/ 101.773 + !ZFu0MO;l+&*V4d@Tj\'94Yt?<:VS]=1"]qNc4=Q_QW&?N3J36hXEKL!H<8*[<>+/F%Sgg+ 101.774 + hW`iE&[Pb)]L+&]:XkL6p>.R0,:TOVcVBJQ3(g\RNbZ.iEXWWp0H@?5gRB=7HXoT'978]Dg 101.775 + WNQ*hRc:<MKi/)d-7PBY#Fbgnq['Cd<"dqH/K'FFgD@$H@T?ma%6I<bHR8p./#<%sY\u^(g 101.776 + H#u%5D+YcZpK\Z>=pEX:(99`Z@\"B79?sZ?8W[5VK]IK'Po??E`H=<[09R9_O7n[<OdB`;n 101.777 + DG-iJ4rf9=]C1<I5+Og4?%:BiWe[J7UOJ,)`II=f'6fBY%WL6G'+K:TT/+W[1$@j+4F<f;g 101.778 + +QO]PL!49@,2O/XEsY.%c>77k4fFhZs9YJQ3t`Drj@qGg_0QhomGnmA);kX6WBZ6`AaicW* 101.779 + a;o3k8ZXm(P_Ps;!42BiuZ)(7"6?0p):W+Gu`+;fM>;`Y?/$:ufYueFc]O"Rm@K7B[<81E\ 101.780 + Rk@]GF2ZjW<BH-i]0K?-ng?PQ<?%L<V,bV=MmD)C\:[T"!ia=28]lX)\V3u*)h#,@J[0WV[ 101.781 + /@Wm]YZ+ek#C*"/%j3NqffU4;nXAt\n+gOY@:J#Z+aG(<;c)4SFBMT^aQhh]Qe([jAXC!F1 101.782 + lmZ]rHlO"]<WuWQpsQ_n'bs77ECt'4i-"$X<G?>)Fl_l[IOI^jRgaNY<_o25ut\WSKe=*CI 101.783 + $AdD?gP_HO4p3jm"t&]`ViesaM-h)lZ>4f,a9Wh"L@*Ik2CFg/IgYs"$]K$h`[8][E\<4lr 101.784 + n*,\aRRG+0+<?+mcS5rRYaoEHj<.2C3]X>6.Fj%FaZTO[VI,l]g``.B>h8N%34lsq:l*\4l 101.785 + [J^5-IInmmpf(PPd8)kSRsE7_V9QWOc24S@SeNP83`MX].@qX>*;.K;q5#(`"h`V"4Q%i_2 101.786 + pQg\cF^X4qn,p7(aiT0dJ-5"[(_g8:-94o&Q[T>`CLa#LR<<i<5Fd_)2FY,;4<'jQu@HK"[ 101.787 + eR)gc#l>%('U[T!D@5=qZ:8hBc+a@9r**O1ShsR!olO5+Cg*J%^C&D4\<(D-Q>An5Xq2RX( 101.788 + s\i_/Y8C/j'?Kmpr,^>@DSj6O.N<t;lC*pnZ1S*[\@klHrI(c1X[L[[4"mKHVV+ZXD3&+6W 101.789 + Nmc59cq4mK:On(MdnmPd'@N5q;g#p=Uo05/C,u@`1JXC:4*/.8^=BG%S=."F8<1d1`P[!h; 101.790 + Z^><*p4$i+IrU0E=8%,hKn"JLIt;?a<)n85pn_!cpfH]k:\NIsq5%*c]1>q.I;PUT<F;k^A 101.791 + QSF$Q%^M]qnJM$79B!Pg%.CGL/b[J[`(oY9.bSFh*M,AJO&.T=>V'2$&(_)OOsB`+D-Huib 101.792 + c343\_M37cTW`oR9(LO\"Pr=Yu^I.@!NeP1ark@540Dk*&rThJkQH:?Rhoo_sD-Thss;=u@ 101.793 + @`8Yo>LPhL7DTi%dglBPP\?EmY8<pQ%)omX_cYup8ZlSJ7]r3\_jQJ5@/d/C:8XI!/!/hGb 101.794 + 7?JW*F]Ii)n!+>;`7NNWNM8`roR+ujL+d'lWnsNak?SRtnB(MGGp4#B%d:i0@>rJ<PWRYbE 101.795 + 2`m#4pT`CUmPd:@hf2<"]=49cm`T[fiGeR^?8isgalRR=SDJHSU!`+HqOLs%?a8;OA@:!XI 101.796 + B.!qg=a)e=Q<3(7.km)DP))FA@qYbrbhbFS+6=QIfH%toD\eU0GF`n5d3'U"@4_@(C!1*Mn 101.797 + 6EjY5?0DY"p;_lBq(f,7[)Fl,O>j9F9Xo`2ktS$q2mM<u+60FC,kS0pH;h7^9==*(Ma5G3) 101.798 + %%S:7t"%CCC)-KiU59Z]%hP]OsP/>"=_16e[d9!Yh-/5%bJ[k:=ZoY0\4cN@_1[ZV=X0JcU 101.799 + @cR$i6SDQ0K1R.&`::%=r4ARc_pHDBZo`%0B;\Ag\9X(<D\kjqO:D0n0%3EV41mC-q6Uj3R 101.800 + 9N*du2bm;Yofl8P2&/VZ<4+JDf?A:]bsYOrbNsGeQ'(N=1.S0Yp/`n5VcQs-om^@O2AM!V= 101.801 + Kl6"A.#bFQXuDiFcC'<2NtYW2A@`G+kgZuAD^UlNO<_12\jAR>dlT:F?5O))T!"$FjkSA2j 101.802 + /#Wd$D?UCu/mF)0PuoH,@ZI#I=&\0/qGmKOHi@(PZA.F<,M][rCkmijcDX6-uOcYr#qS>4[ 101.803 + =iC['Qp9m>e%'B@bH=-dEt[SE@+a%9'q$+[AKRgGnAG>[K2mX763)0DQD*]0ZT5j:<NQ_ma 101.804 + 7c0le*\nd\CgTC'uWTuUr/k0Wfp.n/;)]!Tk)B1TCL$2*ns.&Ea).g<j\*H2b1e$j#_J\K$ 101.805 + -+`I_pA_pI/M<Yqh\bebL=^RkfpOTqU$l,JQ%osoEjh:ib[$\LdDj<hQJbneCju5ImAq@MZ 101.806 + PjSa8BZ.FVWPtmgp^qMG.k2\_E9l=o@oq&[Z:s;/<0[njZW'njAS1eQU^-m*1tn8Sr-<:;8 101.807 + #\Zl1R8m9>,7*^A70l58VB2I&V=26[*oBbg"DqSD,@7IqRs@97Dm#ct)sG:[!0W>M1:(O[c 101.808 + Ec!9i>2GCZmJ"[KR7m?ajl@u;P!Lo;^-TX5Mej2qf`ACgYk;so4@L(QB.&jP2F@;Ja4G!K_ 101.809 + A9Ubf(J<1bp6<EO_Tc?"H&ETc*26>bD<"^Md9p<6_b.ea%s"[,qEP)E6V4lC7M?kCE&1FF_ 101.810 + RknSs`Y:U*\+^L@F@.`8mENLud2,c5,BY_LS"a#n+!WQA,H=p*Z?EnE+s@D@NaRo;Q?O*<, 101.811 + ]/P%L"+!2$I2j#`.l3r4NNZuLuT.XN04='2cfSgd48`SEUZ[mis-\EUg>:.at:Y'],ch:,T 101.812 + AM8Z:S`;(>I4RBFFes"P.P:Uc`9:0n=L>nBiLlr4&%'DHTK^ec6sO4-Tjp3MKS97i@JLNMI 101.813 + %S1J(\W)Y?d_mjsMlOg?OuKPZq"IQ4%#QFeBBE/sMo(6dF^2l5m!&!FSb9efF$9H0Ia6ukm 101.814 + YH0bMV_$cH)Du`Jg:GQC=#GDhWY=$9.mZ/>Q-1M:jcBZ>L*/X9,k"1t#Zdu;C<?J"AAh(Z# 101.815 + #pRSEruk(-JNUt<8#\'e0Q`t@\sc[jh*Ygl1r=BtMI0%+OUdnglCF*,KOG/)-`E[>QHbiL: 101.816 + flu7-1pnp;t:Gn-7pRAm](Q")P%paaU)MHk+,KR>tV-0MlC^TIb#uW=U6lU0X[^9f#%ciR? 101.817 + ]XG%Z6deOt_^WlccEj,-+@/F^Sub6RJ)p;:nod>DOkMW)_!;5V`LMd4LA$PtFKq8jd6-oq* 101.818 + V94fD3JAg]/f*'HpLH7id=eW&SGZkg[7.O[p^;(Grt':#)sW[L*oj^#=u+d9IK0[-$:!hMe 101.819 + <h(rhl.EF*UZ"=d0OE^n9g@X/CaGoV^=.OE64d73n/100"i'FMrHr7@JAR-1Tf5ARRPr7Kf 101.820 + `EB_BCi)-SQ^pV$R_Z[AonFT1@$b1Maa'^W^h]_ml@98G.W3@Z]5eXU>ML8^-kg-ZU^bhrb 101.821 + ;g:VFr3C'(C6tp-qUQ\@^r>Ij48/MIkDKYB6[s<@Pg`78,QmBe+F=2ZO$QrHY-nMqFScF"G 101.822 + lQ]0uP=N%F+_HcNluJ_4tWMj%55`me-O`"N)HnbWn4/ps?pH3rI-ilk=3SqF%j)Pi(W8J-Z 101.823 + nl+P7:<gYC1uYYDIM)<X-q#LLKG2%Y$F)+Mt_)T^S<&n'D]7;0,ZOU(dYD@E,\&8;EqEL"\ 101.824 + [L(;Eo=eA+Q\HUE_gImXN]4MWqOs.A7<+V!(9:G4T$+c(Ll<EaChqF(26oRm&P$&N5(:#(T 101.825 + $QD*cJ4qg1Z,noe9RmRG@!,T[eP4(em(D7DYiu;=>1A8X6O0bc<h)>$lW./:ZpM4Z!8GF.> 101.826 + G>C/6=`M4bYLZq?LflDC@9Uq]3]2fmA*3pLpA1d<06Qj1e.2Q^Y'kc@;59CYrG;af_ZA9CJ 101.827 + )"034B^M)>4?M<^EG4)3Wh@2</\:8]aY+8Sf@0JT;bg\Oa^4[e\fsB]9]:bV!YlRkpBBmU; 101.828 + Z>@40ZHr[lEt>"6'JPNS?tR.KkPctC!?,J4D_o0Nh%N%XAF/`@?2Jd5D%kr.c'm"Y,dgX?H 101.829 + ^:8!"DKQ^"jbdRON+H/_*f:l=]H*c@GGe[PrY2j"QTa'[CA"'_oXaW2D7$0X=#'T!Yg*Vf+ 101.830 + kbPi0?D9s?Z0O4kGuLjW?G4-816:q;</p]<)9KQNVhY+b5Pfu)eST9nCEBh8HSVYE'Q25>r 101.831 + S55P7dCe7c]fONkQ#tTi'uW0G4:U/OgGSDdOtRBQTl18;r-.orVr_[X7qG`mtL9nfcbL*o9 101.832 + T5+&bl3Yd-^k#KmeEo6)bocQ&Od_7A&X,Ihuf0T;Tbl5O\3#q<5DON^)j72/l#A)INhlp,E 101.833 + HI3-^0AlfGjEg-Cl/S,#@Dl]%MZDa;b#![I)jZ,`fQq&Gn35pR)#,-rgDbeW_"VsE(VF8%q 101.834 + Y(bh$uLbom`ETjej\1H(B/=Z8;e/L]bVRB\J5[3mf3YJA)n0C[-M'O31$m,a;*/0UtUX4ZK 101.835 + dtU1O(pNWW#m:77.rgLrNuj3/5'"_&lc]Va]<Pi$V\"t2A1Oi3R6m,f6$r4@#an&1PJU!GZ 101.836 + uRY5F=4(F'1<O#Rm@;rW?85cncl0aU0n8$;ij-CI^pFb7&3G3J^ubAgd;300uM:'e![:*:) 101.837 + e8hLb!PW6_Zo#<(.B3];.)Jr%UHq=$,1a5_N.-e#3O7;^tI8^"A[dHnG^&=[1[n`Z+*Y]=n 101.838 + [d9=#1^5J-39q3aPP2ET'06<mTJls2(l,/u/378-n)g`FHt?9T=-`O&CYZua8RLI<ib&d1V 101.839 + C8=cAn%h_J07soX'ZuSY2J#DXG6'Qc6b[<pTI`CT:Wp-%<ZXLJ!?cVeW8/tVt$g>Y7@Rt<S 101.840 + 8:5tY#b4>VN6!H;83AFoP`*K`Ku8".aNT1PjB9SL\3IV[73emflF]6+HH*%BM#<6aClZDkL 101.841 + ;W@n7\lJDFC)rqS]UMbaK0a21o$bsZc?M\4]p/79W,gFW61@(b+u&[[&_?fXNK%pb2fXSKW 101.842 + fo*Yfd`c9)&Zam'Fl'[*)FVb@J')FLTGH\BC,IbG;_m[(FN"]Z\g<bN-C\oY8TQ^s!M.)G! 101.843 + ,[)>h@1\])@=3*_u1Cge>ERg:jjM/+S4N1\-1@nJ/.bbJLdjH@T[TKen]6<"iE0V(o$Q-?S 101.844 + B8X$j*g9SgoU!7D96Nd2,eCbrI1HEpAc.#GnF"08ibQpnoM,`$?b9=W"cj4II#rLd9lW?X+ 101.845 + M25-\b!bO?Z&64m+,r6$:?6H@o^C*/nBVg=cQr)-2"T$]oZpM0cXcaqFSF+7ps53#c_UE`[ 101.846 + /7C"M9J)I);>&,CB[N"E^(e[`;@tIBRrDh!Jrpe^dQFA'K]"@N)3'2WU"jo1nIOVRQdPPLh 101.847 + $ZNeCk4?$&N3t,D=ak*=B#mcV;@e:k].1bl^['%+,')U<K")lll_ab;sl):(W(U6R`=9&lF 101.848 + nX:/H[Bplj(\&r=L;1L/U1'^O2$.%!:dMeKPYP]mQ^mK)DH;WTOZoe4bt0[gakdj6cu2)E] 101.849 + M1t,G^dq&0ud;_K?(,c<O4p5ap!/s)THrHg,0f7P)&h;Ad",TBd]G/`:bY,a2*@b!kLikhi 101.850 + /J$-gQrFL7e+A4@;jBop(!W!bLuh,@]gu)86S"Ws[q*Fg']Y$;j.oCB`a(dXe9o[mL"0R** 101.851 + ha$+]g`9E:JQmGLi#`3Q!`)CF:`uU;Q.#EdG><I/K$Q\<b5moF_B9ZB\&G_etm-4[;4@4Ct 101.852 + @-RJu*@:I;d^@E)u0P<o%fJ207A<FOsN8f4B-WFa)GkGh84+f;3fF[<pNEI+QnsfB%J5omb 101.853 + TtJCj!(fHHI-H#TH/(cIiT&M6>F<!^augFlie3kR9U6p-9J78So![Ts7Hd]V5AOLsl\;B9( 101.854 + B[>iI8@b?cr]1&"0]buZDOBAmoZ=(OH_;A8!7jo&N8NiG5,o9)M);'ni;/J\G72`^(I_=<b 101.855 + /i<UG[?jaHKN[(3#jmQVD2h^%(0RTPa5E39SHT<%qH>+L2[\tW*F7>cAQY_NTB0J8FgmZn_ 101.856 + @(I_N@e]R-l1RR*/9`lR6@^2]0eD:7,*F3N+8BEBm8$Z:VXT>_c.>^/WU/\J#*lZ7h[M20p 101.857 + t3:_H_f<O)fe,Mg#k`abWXN1qB#=]+R[(JmBTH["H[14iXZtpJFJ6glc\PA^S*:Fr^ZXZ`T 101.858 + il%,"A'2V`o#]a_>PaID"<V;0gjh$r+DUCgeV;r&kr>rrt\9uB=X;ma(ISOtfK"GKg7T#OT 101.859 + $?C@4q8TnEFOP^M6hci(K>`gOFY9a6r28u!;/Ip;gL7+n*N",3LgIp@,01/J!:^O?\ZZDPZ 101.860 + oSG`t2b!\TII8%3ml5aRU>=e6!u>&$oiWu(?;$nt:"k=abM4EVi?:8-bq';E]*p:(!GNO/- 101.861 + 5X$K1H>3hhoN[QSeC"tY[D$pQNR<C&14Zf`EQNA[_+j]E/*?d)n*C?3D#dN4#L-.k$\rPWo 101.862 + `uSeP&HN;i-_=g;5u1bO!a2Q=<N(@Tupn^*co*S(`#='RID5ANJNCUJWoYeBAlk4fID3[+1 101.863 + G3QXrhr*']ns.GcsC>l\j(ETQ52J)Xn#RjKNC?2%eL0SmiZ0k->W:+i,M0?!QU2qW@+ZCb- 101.864 + 7*9@r5P+6ZVOW[EGdpZ(i@:?sbEn<I7;ItrjiSDFS7%QMA56qmPjJktLfrl@Fn!E9gV;c/4 101.865 + g/C[aOCdOo-\c"J]C"CB1*sU[0q*PHAPn/EJKo&<1/]X"->"Q;5%\b?_-9EoH2XZSHsgo8e 101.866 + Vtp3o*XV2<Z;YLft<5Qd%9B&PG<#8k(Vu1P%7C(9'3f,OOP;=c@/#r35pVI=tX82V6.MPA6 101.867 + CO3j1pU85f.'^S-D(rVS,LFIJ17TK&\S/BK<6X%YX&oY+4?_Lc0f3IR5RtZS2/aM6T]e0q2 101.868 + iG!CfC]k^Jl1p3E('HIW4W#k!),mX==XBB_lgl=QoUL/UK+1UI<:cL&6uaW*RmDa<H*M]<9 101.869 + o$k_cJY_mU-R%m)_DQsaJZ\jDhlTnSW`j^Uj\EfHk"pV[)DS+34V%AZcPXT*l%TSH/<ft<h 101.870 + L9*k_IMrFtif$@>Cg`t&,=Up!`fL\OMKSdMDTNV&Oc1n6CrXcO(;1=VLME(@lE1le\\H1DG 101.871 + t4aXD.BeYXi'HT4m]&sO3ZF99.F0>g(WVnD2-k`nSho#dH+EWj^uu(Z'!(g9];T#mU5;GI^ 101.872 + ;m`k)]5j$5M#t.)KTYknCM^$m*]3f'eke.TS)/>HZt%%c\/']nVZ5mntEn"@h*Lmq6n(m\] 101.873 + IehWO9lkjPbRDlB7t`K9QA4H##5n0\;,0'2R5"I/kq$YJsEV(Lu@(6QH-5mUbi!6D+me0su 101.874 + )Dj]KPPhubgc/_G;.djHBA[:J/87IllRd?P$?MlV1rpWbGnW9=+qD+oHC2ojdn`LsM0&W1a 101.875 + o'hC_E02)tHe4$l[uRp9N8reh9U:Lh?.shJSGB[8JA9T8!!phTADA-pdZ<pR+*/5Qo-Z<b0 101.876 + duSs^C:C_!!^7O^@cDU]o85l)%FDb4l_QS.b%N5>ug*I*h`rP-42B6#o)Q4"@-K1ORiu=oO 101.877 + gYcG=V:V!V8nUM.pT+/SGnbHAZo)F)`.-G]I5R:W/"+`0SBh-ADuIj97\Nh/J@RmKF!%5me 101.878 + jqBZi'q[Yh@Broo`2ch(qQmmZl0@.kCFp*X=0-V<TjQ7.l=F9%s*k4BSK=.6R"^Fp(W$7b: 101.879 + >`JA^*<*r[urr!23Ka?cbl5r+o6fE,ZK_>X\G@u*nGB`e3a*'_9p0H0[8>Ps/,*B=8^uh_g 101.880 + EE[=aY]IOG#g.H@mWBp0%LD?CRG*+bDCAW4IktJ%BU,@W"q;8aEoQO"j5(@,Zc2^6FBqL.U 101.881 + CNmOLdl<C32nYrk426O@Y/IBKjK:9Vs:9cY_HuG/,7/+@\FEY!V:MBGkr5MqBr$60VnH1R7 101.882 + o/$RP.D(2`CA\)=/V<lmGZs;&"!4Mm1U83CaW7Y"tS-46><,k5rFP]s(jU3]mVuOY<n77dI 101.883 + [?i[eRq>,5fdmTus?D0aj&#i8"TKj%ipb4tsp2_7YQ^kDVEDgP6RHs`HhLS4K.aS_CHr27\ 101.884 + o3mf,E'NS#-o]``"8e5cGJ\<#!6(9[74(\2>\;Ue?h^/Z!1GJ_.l<l3iLaqe5o.&`)Onk)t 101.885 + g)Lh&e;G^?mBVH!;?t_WK.8MBHb\aR?uF0afP!#Lqe(,T=QPE0P<++U8E<B@"D/n4?HmM[@ 101.886 + 'O:4TeGn>5=Kp,!,hPSIqSKTGPD,PL)7>CmM@#\DpFKBj@>O>%[B$:!.[+<:\Z1N%0n5s5S 101.887 + 1G8_Arl6+!OP&@id35N'Yoi\BGj2n6&:lZ.83,.1;6=Ui8mf;HF^"b@I[,C^JQ2BMN/;Bft 101.888 + LN09=7enHk_oKc-2o-1b`n2MWiZJ1:%GAQBZT-I&Q0=HW/Y5)<0IQ)`VKWf4.,B+q7-Su6& 101.889 + '^Z0%-D9h0c]O#MX]B/bbJ&#H2=?HtH%:VG/E1":M2][t#A9(g8VH5@9b[tp!]]OE$T?q7n 101.890 + >!44!9rHKUF]uIj[p?2iCj'#GVUo[oghq=?^#o';J:DNFS2]=ANPg30H!D0Zs!Bkl91?NXG 101.891 + ?5!slr^k/0"$tbh['")?7'l_*H7pqR.Acl[c9f?qP"\TbdQ?(RnIP&s$^hNX.^pkY_FRi_q 101.892 + J&)!br(;,YW"EPJ:j!U5uNSlJf]$.nY9'5**"LYc9B,pn'pl@QOOeX&>Pt+R&ZM'IbO7],A 101.893 + VNW]LVD$rh'aa-#_:+35''Kd"O#/<(mr&knQ:ac^J2-d!'\V('QMXJk5&Y!\0.\8oKT.j48 101.894 + 1Gj.8Q"*St7"l.Wcc#Z26,::8QjZ1Uuo^)1L.\'n$6P-j>[_q=W2[qW!@PL57PQX[35j2V' 101.895 + 8#*:,(B^^oRMQ77oKiho^IXS>4KfH6:;>0!'$.jd8>IYc,O&sI\?&\iA;3;>2/QQin\V$=N 101.896 + toW^?e?,'KjiW"/WF8n(/:'*fp6KGBA+,\V&m11`3h1hDFD.qf+Sk>(><U=OEXrr/^!-Z1d 101.897 + +*teLFJk6W)l1>?.t$$:?u-FW+=U,7o/M!lM!#:Oo1#U'jgEb:W'`?PguCI\9bW(9AiujnP 101.898 + 2!3-I0,`!T-RKHZ__#l#U.U<APTbI,fa[aifi?=fObAXV\KY&0Zk):!AqkF(adTBI1'KZRE 101.899 + #<Ne"/:0kD7gW;OTE+j&4[d?-h1#&afg<R+.*1H6aO%"7ro2=pKJn($GFABWF`0!_OK2jTX 101.900 + &QbXo;Hl>]HTohZWG!&&W8`Xc@Buq\h[N(R#X0lSjkN,JK(%p#n\Xc$;PLLo2*Re[Z$^:^Q 101.901 + uef/7FCau029pg*D]\copp#,fCfJ.M_)B(`fbeoqI?:u9YH<bY+1s<L#>MWngNnkl"]+mE- 101.902 + kh+jtM\[>_KdlVE<mHIY(shmd)\P]l&W*,7u&i1ZXMk8NO-AU%"D=Vl"^%.84Sb_XGIJJ&; 101.903 + $&TpYrt]NZ?/GL-bW]OD`A+=%8E:bDr;fGt(PKFrf4:'s9h/8lPu7n\U`V&\*/R,-e!K'>9 101.904 + H/ndqi$u>\^O3*;DU]Nk&ZO&@FOG5th_Y_qa3(2k2I5(cN:<B74+E+giT&L7i'Y9lHn-Sk' 101.905 + _NMus*%E0Dam29\QsX((%Xda%/&F5>!JjtdMp[P?7TdnQj$[U@;6DfHf\ILjlksuK+YLU]] 101.906 + 'dY7:P)0jD^S*S*tg:%O@c`E-KgR'8UCneAPM28;@:<D0nb%0/k*[%lpkNJWJ8?#8WcOD9& 101.907 + E/>PN3WWa\mm.M0rHic6asYdP@^>EKQLiiE!2HWoYDRE+i+!!(JD[0BNDRQr=K(9Nd?0k![ 101.908 + =Z7e(7a3&\5'o!W8;jkdfCX#83Cfp^r$ihu@1nfkHO,8-sW+O[^uJ-9(!Z]KmHVt2F4ba4- 101.909 + K+H4KE9+d""H9m4_Q-0GDoB-e[SqZk89/6q18>M991W[R3ip'#MI.3P>:0pTY-Um7<)5C/K 101.910 + N`"Ln8*L1#AS3b-**7%GAs@N`Om8&J'\k$LKe]GV>]uM!9)"3hWI-;k+2[(Q9&Gde0G8P5O 101.911 + kJDPaNZX`,^"\o(Bd@nYr.>JN[+T0-W(t"6`B?6L_FHq5_'#"I0s,/PiD3]@OS.9ocV7NKa 101.912 + C.\%4t^^<?5-jm9T%sH*:69^/s%e?g/!D+,aQDa&d6.ktE4gOGX:l8nDMsUGST:9SCM#7pD 101.913 + ]YI'U[)T2ZM(8EJh9F%WZl'B6W;a8K#Foh9t$C)holbMRZ2qTZ<*S=_7H6^0?bQb7"*C5A. 101.914 + R[E8q]96Tr1gmK7T%%=2#HSVSI_rMrYg%cD1C-drtlB?-mJXG_F$g8lLYR+LE/)/*immZKS 101.915 + =0D7'gYI5FJl7V0%-!>Km7HY2At!hEC;Au/<+c8#46)?;SiO5iCID7)CndUo_[QI471(0]2 101.916 + 2rD6-3,Oo@k5^E8&NL&.S-r.T9A,e:@(#F*&\S@A5`oN,p)%5gn:a+cPVf(*J.NU!6!/4nJ 101.917 + BdLFJ'(_^*u8:j?/EanjZ3m=YD+4gmreqSbC2nlMO?qoh($G/:n2>670e_O].3f:9!$jU@P 101.918 + =a8tF*fZ?:DbHAZ#><YVij1p`B-:dcqe1On[P\]SAnj@Z"U&Xf@._]*i!kI,R\DF['UD"ED 101.919 + C=D6$hjFZRm?:*p3(=#/FZd,<78md]da)/&NQTQF'F/^J56iM]S`VlgnD%+PN-R.k>D6<KN 101.920 + \^sIgj(6`k2YI?efNSkq'`7'%19>])=7X?rji7[o3Q'LN[n:L#XH0clf@sMJDJe4BBPNHtY 101.921 + .K1(DHkYrh6i!6).-t:S,3;+r827g(7I?4[dc:7q;4q&D\CbU^A%p6i*6e%DA"D5pa6C,;\ 101.922 + e!<,E]9>qVQm#"+)oF]THrC-bqhtNc1Jpa*@n5jBR_,n7W?Bq'RWQ:fE+UDBB*75$$YsLQ: 101.923 + a"TKAi;/*C+!O7U)6ch[l4J_<RoFC'sS\DKX;>qOHEf4i.bL?hMLmrrU#)]pjO@iNN//o0E 101.924 + iQhk?']tF*EG$`GHqaYAf?*A\EM!<,EP#gju""d5]Z%5[\#=uJFQLpd%hrtAVn/`+WG[Cp= 101.925 + r'uV&LBbS2NR`K(SlkEM^Ob&'+&(D'MXsag_0NdYkPYXZoNmU,1<cMXa4)'r-9,CZd1P^CL 101.926 + ThjAbh)SQlN=f/QP28IdehmFkC**@pg4QkHs_m'c&\dFB,YG$7<hq@H)LAm;?cg?28%?_g[ 101.927 + ?0FC]'7,!e(C3r*PNUIUC@qr]b;C>X6DYqd;NLYEJVK2m2K7^l\E5=U:/moRGI\r%J!K0Eh 101.928 + Gq#lq1<i(i'qkj1'CgaOnN1s`&aa;F'aT]\!>!peeF&2=9+3<QKK"7SRPX6/O3T`JXKVLc> 101.929 + _0NA9EYl66.no,k*DDHJ*YXiX[ih4NQ&46\;k23;Z][1p00SKdOM$U>EJZbOHO4`9K,_@W6 101.930 + #7tuJDlj4r\Hq]+9Fs&gn?iXC\I5XT$fu@2B]f\?,6dPui,C)tmA14&fLW6Q%C"e$0]`d`k 101.931 + mjIc!@ge5mUY`]jSFZHbV$4$KS]W/])M3d&EA*HnIZ@Q)%j+o&b-tcmi("7i:7HT%++p'/- 101.932 + buZ,4@pV$=Xk@d3B?8;\;ku'_,$80i\s,cD6;f%l#RFA?,ba3qk9[pQ8Sp,<HUeFVh<2(\* 101.933 + %n/sd<rkj@i-k%b`a8m_6fG4RGB)<PWLOeE\5W>`%D)XV/J$O[_%PmOB3Q]X[+n$Mt34W>! 101.934 + W:W,"iDG_DDfc@?R*V&(k:Di3@MZHR_)m3k+.0L^[]^+Y*8C-l=/BJqg#U$CK+L2S&1)1sQ 101.935 + (jFB8%$<1^a<$#;DW_S_+gNdn&e?3B3?tgm,P"*&dN8usnJN`"*"ZjU:i>9sUEhRf,B@':1 101.936 + 1_eQBdTX.,]U@4%@D`DT-]LN'B?C6&lU.)FX@`X..WKL16j:u7jen/YqdT`0[a4Q/LcfZ.+ 101.937 + 54J1:8WQ\LXDt(lo[b18,d<+V5($&4D9bM$kEoN#r)W*T;SZ^t]\jQ3hTr0%0&<o(=Xkq(E 101.938 + BZ067(FTtV;9C,-sl)r\Oc',<1,(GIWc0(TPlj!-6dCGE.I0p==Ho'.u]U_9@O1@m@[1E%) 101.939 + 1edZ+<1k=17'3-hE!AgE!16Ycr;ctn4-qCSJ/(8Js/cn%r.NQ@m2tM/O-@m][.4ObS/;PA] 101.940 + Dmhd%S4M$m+`YBnTmdFndLs>0!E6*^'<aJR\N=lG4&`sWZbnl`W1jA8*J(.-PJo\+^HIe$4 101.941 + nH!C!N7b0aqI_054dMn1Z:CT-l=)`%J0*SF9OhD;?ie/16`+MZi`U8ofQ1N%HAm'PQsL\of 101.942 + f^!#L3i#F+lu'38e[JN&3CZZp^^"Kba-e37,hu.dj[foW05L5j:rsd;6*#SG8dU#/G(B<-: 101.943 + Nk_*Z$_5#c_mFG2nWkTb2%8FsS\Zi<T2Kfi<J5njc"P_29o,=dup6F4m*dr.Wr\P'#l6g8q 101.944 + c1qcRoQP+:t"OiDWbdL4XQkLXh:#dFg"uOC4fg.FL'S'3fFR`.+o1sK,:UL4!Pm'tA<Z=>$ 101.945 + 'a#X#iNsP(#uS)4;:PnKo`J&WZnaKI'bqlj2'l-X3DX-5)'K+o<Ad^_2cO4!$36_SPthZ$7 101.946 + ocri:c1KL6Rc$c8QN5B;Y2U_-=9GGa]Glu9B$p]0S*<uLfe\g9b^Md#TT1^LKUAr/E3nMU' 101.947 + S*(@NgZ40N#jY&^'ljm5ss4=JH0qFhq=*aJ:Qa%e\4T2:<95fj(r?9\#1FnoX/q,p..(/`G 101.948 + PA,V_b4%^Q-8`hNJU1=%(]M-I=&>P6i+[DcQ4).Bro@IFY3031]-BS%ufk2VCWc!(HS%6HH 101.949 + [@M.!i<^C8>8S#8'n.<PUZ6:!&qZ\G`=d>L6[PfXV<o28.pf9I;p-3*I=(-8tBD-mi2MB_% 101.950 + P6k.*1+e"qEVj5j?"0`U-`ucM2Dc]H7PIc4!#)+![W2CLGA(cs6OlmoG.h^8a_\E0f%*b&P 101.951 + Ya+()I@2g20PM'WfL?D""J/^+-2I_FU;&kcQLfT6l*a[[fp_p$#lp;@Sn[2f%MD=*]1=bJ^ 101.952 + Vc'_5D<`3[<pi`M45$9YE$E%/dP^F14GW2aqh+=WVIP37$2%O;K]*Tl&giETe?%:@Q`M.TU 101.953 + ZT0p]"Y2b5gWAp&[YRc27&_0pPOHlSi5(di:apNLn,R<c93F>&m$:RP>f*]n8#HL.I3e5WW 101.954 + +2.-Lg7VZKN(S3MYH8<_(bk8!^D'U?KUe.8'$in++5r\rH0mP\W9K*'$GP-H0q1#`+FMj45 101.955 + %oX5Z-;&JiJWZ8m<8JVh.^YpjPIJ5T`/f;@*[\uiD$As;KSb-Oj#d"uI\Uh,==&WF8VFTI8 101.956 + bWf4<[hUY-"[141s%h#!rZ=S$G^m^C2APYl$15t@S%CsITPc_eTB^!H%u*RM"m*h,`@@39. 101.957 + +`OOD_a="&/u:)djrXs$2Ck(mHf.-nmtOIRW6Da_n/r9%;c"MaVcEpcXEm6[nG8Mg43@39? 101.958 + 01D.p.Gju<]?=:Tn*0%q).2#+\CK4Buf!1arN-1#Tf7"L=r_1VN:A6B)!3@0i6-o:YcATa2 101.959 + 280<Q)$HJm=AuC?1;E.Lt/7)AV9-RCabtWUDrZY<Lg7l%'il#m>6ZJj/cpsr>XXAp>#0.S- 101.960 + ,Gk<mU*WJNCa^$M.QMr>\J[Ih*K@UT6T=V"\YYa?WLBRSP3u[oG$,Io>_+f+GZLV)!X)Gpp 101.961 + b?rq?]l6jXDk<$W5HXdC:3mc36YEGU9ik>SToB'(&`=8?GbaPW9]g(l-Z,VCRK7IRB<HVp; 101.962 + <?Q)54V^U$$!;'MXc.%>B]#6PnH&lX%I9ShP?S>``/7q.G*URshbZ+pgST+aTI7l&d7n,74 101.963 + :Zb07lAi2WNVR%an`_&0cDl&<_<,l"AglED<9+f8`K#'gnQRLB4#&2q$eU)K`*3i-q#R9ji 101.964 + ?Jla-kQR3V\*(C<([=S[o@d'`-*HOX#+*'VIH'0`&4=_?$;QV&bQeGkXhRUE&TRm*QC%/$S 101.965 + pmi;L+pX'tg4tU>NZsA!8(s</UM6_(Vm3iSZ1`lt/+7UYa-0%7G"`:>ir[&/2I8H$0,`*%& 101.966 + hkk?n4*%)UEZ>0)I>)mK!RIgS9f^NNFKMtb<m0L-#(`)=UD#$F.$+gL_rFO3?b[IM7C0WF0 101.967 + F-"G)qhHS?CuiPG596HVcG`^nrgq,:-'c$-k]9A1nmFa,.aOqkgG%\>_&57EU'bLh![d^7I 101.968 + E#NB;WLH\8<Mh2&\(^AIH82Bf*4/%MT#JM/[-Gq4K608G;1WWF.d/N:K)0ZP)O^!&ZrqX(k 101.969 + :rO2)rPK9*"UTLd\fsjo0RQL2\4@R22M8,;(^X\["op^ZrMh[(pL<ki:'*0rnJV'C$K,\>D 101.970 + ln?0/H+U.L^#BCWg#+JULiQX+PIj",HWlY=F0Q\EOh<ciRMBc]8]n]Jb4N6_gR2B8T-'Gq/ 101.971 + b/q"n+FdU2/@BH7bhju!qaM<efrG7?_#T_=uXL2e0DO`ZU4=lg695f43AN*Z$YfT*3mk=$. 101.972 + ,tpb>KQf8/mVg9onjZbg[*A][T2L=i'+g\/EK-4FPL;I@ijY,)V)HC!=m36:(sB0ErJN7!9 101.973 + Wfe/^j7:>K4q_;lR:_3+X[d+r\h@HH*K7G#5$f>/3S4`b.^&Y"!QJU'4G[Z^prc'27K5f"s 101.974 + Th',Aa.AM700?TQgHm0[/MAn+!e"SU]>u/;g?-#)7H`EChS>V>CZuqiUfR;^eeA7.Cj'7"j 101.975 + KmC3VL9Ut$_FU1t/6`%K.M,0-INH<si8A&Fi#WG;&cjmRg15V`SFs:"$"dcD_Ybs1Ho)tI/ 101.976 + pQ%Z;4G(nglf7:=jMNPcop^V2`olCmH%SG7'Z%n)7A?BNo2.A2nD@FI6YB?Hl&B&IK74C5T 101.977 + V)!Q%"sgiWOUiN,dl@Z+T'8gnHU2JicXHYJM?+YFB$d_C<e4+cH/!V-(_[>]toiDLe;8jke 101.978 + Bd_<L?3YS3Vam5>hAPg<Z?qob/F+BYnLA;sq.qlLbiIcP;l_&`#WSh+3$';/e=5*%u-WR>5 101.979 + djFE[e\2:fA/B5@W\3^@oG23&u19.ED[2N7<^9/p\n_7M[#(1?E[U8,;iUsrkp$kWA;=0Di 101.980 + UQ9('ZO*u(KR)J7UYmUTnf-:>"-G9gCK1A-!5FV*5n3X<+n;-Kn\Qt)s%7,JLV[P4`Be$j) 101.981 + >_=%;tRq.Z^ccd_8DjV*%Mj_GM^[>+4^=>f`42(U:p-XQkrK/Y+n1onglaYiNN9(dK<kS+9 101.982 + 2Z]%LE;k#%8#:;P\%b9*0Z@n5M)Vs,0>+&X_'c3?=/Nj:W<j)@%IM7bSK>e?#,kP!G(l'P, 101.983 + I820@+(%!g@@q$&ZOj_:V%%Q-+Mccm)*'b/$XVb9Ufl2<V<2g!6Y&pVZ)Ypj?eUbel1bo'W 101.984 + ^</hCr<J&n@[p/8:)jS]%9WT9g(JE<Hq0g"bn/*,\%gds-@IY2)<\G>Ma(+ZX*0sALQ-3b1 101.985 + )4]8r3M"K/oGS_cO%H1sC%WC8<j,Z.f5('sfCmJd[=2uMH_&aDq6b\<hq3^n%Gf"`EOZoAk 101.986 + :R/pkA5G]2kNf#ea%@JrLT'g\_Xbk.hHP>:$.u;%XfB?<FJ2\Mo?l;.&VFVoshi<)&c$)>= 101.987 + Q"A&$uD!0$/G/4?u_2'*U[@A/bb>n:W"m6?&_N$UX@$1CZ]jj?!l>nH;2k43dqUhD\0`DVm 101.988 + H*4:J;UmSfL)\\W)OfKb9:LE/]S&0i8enbL3K7a\QXJuX^G1uK3+@)42kP(V@8-/j6Oh`^1 101.989 + =ieTd=,eCr;b+g/]/Fo56r6*=.E.^F)7,'Xpo7Z-a:335s4&5Cco0#ljjSM/;oE><G7'3e8 101.990 + 'H_2Q<nX_iEaKY?:0;c'\b$O`Hd_$31JLe=;;VZuFT@7q<-9+]9#)nb^o&CI9."]0j:u,9e 101.991 + oNEXobTL&2#&7*OrI?G.P_F016;:R19?c<!Au"+AWpb0p4]8U>'?aCCKgGNZY`oijh#G8lY 101.992 + QoV`:Q2*g;T".)Nmtb%3nHa[fZE`3;91jGi%ZnOX&Cic!&09kID7W#'_G2K-Z%,&rtRWN43 101.993 + /$&@/E;TW/A\X!l.:a8emnJidP:Q>SdHA9fLpP@XJY;jCp>Am:U5q1S]d>`hJ!hpH7#Dk.C 101.994 + 6k'N]X&WJ(Sd[>tRm%!@ZFCE$UhO667qM(Ydl?Xro@,GNV4+B$Irk!A^nrO$[)>b`s/D$80 101.995 + /#p4"?9,F#f_Pi7mJEdH]5IMco=]'hk52o3r!*;?`7-\\'jURQM6ES7VY&i=g5dJURrF[XX 101.996 + B9i_goj^]b!3#7/cd3E!?EN&Oph4T5[po#aLEjFU?>S[o.:RZUahnTBZofl(?aLtrWe)7G^ 101.997 + _#uj*:PnPN@'"#&+d\]L.<(nRs!`jhVDVki9hb\c9q?#rb&m[tUHs#Q4NZ8-F-#n(T[CJ-U 101.998 + MsIXe9]qgSRcoDO/gkPP8kG6gDI3f%bAh<?npAE+RQG92i';F'n?1shDV;fGa04J]tiL_FZ 101.999 + R,eVJ-3'[cn&t/i?Q%LmErsD='h\Ms9B*cm($cH`+&n4Pc56p9WU!u/ZOS0b`pjiuc'LR\2 101.1000 + Fd]a:ob(E5kXNlpJN[W74CXI=MM6o0USf_A*`Eu!bS\J5LqlHtlsh/GhD63]313%%CK%JQs 101.1001 + ,47SQ@Mf%!rudLPVVZ5@s!'YOnM"0q#MUK'SDL+Sg0<;P9NNH95u[E"MInR+\[5Q3q?8@4L 101.1002 + i!M9Sh)[J::9%)*gX;0HcU4IT$D!:jU'-X"hN-D@OF_)!-REQ?(PZ96k5(-+(4LP0AB9On) 101.1003 + pN8BVlkmUJnhOY:<;g_I]9`!u6M/LEU&RZgK\N^81L$p`DY@ZG4tRD1Uh)!dB?'RUm'_`DE 101.1004 + 5aW@4MF;S.d/14]^Q]]@G7nDu]iP^&*;tb]:q>iip'a(+n(5!J2%fk[$#Ed7<"YU)M0F,ge 101.1005 + 3pdu@TSLHr>aQ8$O.6H7.R7qkR-c*X?BY@]:dKXI.uXSg`sn_?.VH)$@C4URdqWS:LWiXMU 101.1006 + DuIQg2Bf%bsSB39o#*E?Dsk=7B(Cc3!KHs4t:D;WcZa''/KtW#,'JG[<AP^!R*8f.>=W5b- 101.1007 + 0=;cTU<iG8r@!g!P-)>\fUGY*ISM=*jAoUcUE,BmM-,#b^#"qaj:k739E9Jrnt4))4H%`s+ 101.1008 + %:7E.3K!7k+-=`QbA/C=Y:(3IXK>.n)k'fr7I&t`,1dqW_=Be^>J,$Gpn6n3U^NjcsXe69" 101.1009 + ".a;2+f%R@Z1C7_H<M:*\MRHRNo5\_KbINrtk?RnXFAU]NJ2Al*,!,a3>HtbkWbs_g(aB.5 101.1010 + ,,VVaGfH5m1a;Bc(E']jl]JUI!!m6q^#gs+>C1]k.G40g[/U!\McaETFoSJMbeqs]LOsB^= 101.1011 + >6"TY$e=1DsJ](^m*soN:A#9/ij0.QV.itr'?-Y(*gbbQP0u.W1crGd"'6Lm)^%.E$!EH?J 101.1012 + (dnfY[\hST%gS=S2Wg66H>pGi^I`FFh])Zt/>ZmN"YSB4TeiPHopAb#qdoja=%n13!4NjqN 101.1013 + +kr3Mc2[URE_P]p#8&3InYg<>to1$8DV4Cp7'S:a<jAmFem-Z&6*KC%R[SDg+s./GuGR,[< 101.1014 + ]"e:>CYFfsP)ef0nUi_odd[F614MtiNYuWB*\()%!qB97)<J5("7EN(UUIaAk3%slF;33J[ 101.1015 + XD!j%)iZ8UP`#%0?IR]?RQ!n*rIM1r(;ndo(Lnj#'"N,NNOofe-fYEpj7Pc9EcG>m`KA'<m 101.1016 + kK>.>BQJEE\8?@&H`R@PeK-Ro(n.rV;7J"?Yk/L]Q]\5hOE,DDf\.K8)/s)Y>8e5%ABR=c8 101.1017 + -Kpo&Yob&KO-U*iidIh?[F2_?ZCCg20&Y>i";O37f,0S9L$6r^!g@&\=*%-0OOR5H#ON%3C 101.1018 + jm;8F(r6E]UBK([uW$8-9d`V2I"TGeCD60lmC%E[Wn-qOj\PW9BhSM6h4+HDNn-0fsEe 101.1019 + 2C)61NLQ.*[kqHN4D6[D7[ppOuLe*YQd29gio&\#NY)E87*\c`:l+P]\GCK$rH3j0N^%]9c 101.1020 + mFWk7c\(_C978r%VdHq3g<rksMB,hQ>_]GGUhBT>q/?T$<PZ0&*H</ebE^J&0;J02QdZcj# 101.1021 + Mf8BX7_4^_jd4o!]md9lODF%Gk7s44_\t.6];6Hn:g@FPEQ7O'Q3huG<ihXan_PfkBK3h8K 101.1022 + lF+qO^a?Bq7,Z0jfdphTp_!<pB6I1sm(pn==j_,O];&VU8pV2ZE7O)Ln)@U4i_kIt$E^I95 101.1023 + #"TD/@E]<+:_5en?=^aoQqq\5A9m5A1K&JLEKb3h9W?&)Yl'_tS;C@WbY35F7/#0[Sei$,u 101.1024 + G%>0Rk2nDD7_t$%7j?PgC6#7?'Hl,/-HRmdd]o%Q2H+bqrJg=#*\<)W+0ET*!T8k`L3=H2( 101.1025 + Ri[>a'gLIk6>S#9Hmh=?.4_INTHb445n?5+]KZsZ_+R]FF,IA'6(F?GJJ_"s3/`Hs2#sF1# 101.1026 + %TYR6le"P/1[d__ON\T]KAR*4[[p$+:<ffA&UY'`\rY3\>V24!,4LpQbCg2%H.8sqojR-?: 101.1027 + :0=_Fo3jn8,1n@gN8j#UD&/nFAuqK0u_(74_A+4B+aC<>ff=S1DN!Lr9Eq=XdTZ7B@RFK>k 101.1028 + >.8%9KU_($Y1E'utt,)t!lW:2=W4,tRZKe.a/,iE?ldqKeX1.I`+L1lPWpe/WJKE03!72rd 101.1029 + $P7GQ:ECV!h7kA^O3Bk@PAO="@$lO0n0m4!//KeL-4(r.p\F)+kB.it?+J]<(WM9sECIf?X 101.1030 + XLL.o*.nO/abHbN3;eC71,As@4NO"0Kp6>d3,Z6A,UHP_Ju"G?J-H8r&BPnPUb#D67$L8:P 101.1031 + t>5H8SIP/X;_QnGDIepN;Rt4ask!pc&Uch`n9T;@#Z/57AA.f#@sS44JY>P$7BmY+0484#U 101.1032 + )!+D%5!n3UBF#5d;TV>/1t?X+Z\YFKeCHYtH(B9.7YKKKq4No/gV08d&Be'O<>1(sA:tW:X 101.1033 + [4BM^d:o`SAg9Bh!187>0t8k^2=!'J.)(aVjIrAiM;7#2ONGlPWS;*&Kbb0[4/&-5"+Y=A= 101.1034 + F`sf:Jr6S.Hd7kUdb=$M=Bb8CugEm$X"O'=FKT8a2.B/,&T:ep'\4fW<Mn:ZoK:Lg]+?rU0 101.1035 + fa/q&/"Eff,ih]oj\B(C6'Th^j4Q`7]Ys#b`;&a-ZBP>7iJ9/n:@*KP;1L\(T$1T#c+$KW6 101.1036 + c#:_m>*8o:,L63AC""eq+mOW:TXFU,j3.!m`ps-69=PMTQQ>)`.Ct]L`eM#3T\C;Fq?@a8/ 101.1037 + Q+jn-dU%>J4,X:orW+FUU@epHR/H4/Dc#r=Dg8&Q'KVcc[*MfqH.]\&4'i67D]3kYtA,JZB 101.1038 + FA*_bLEn:?4?*=0:J::&LpW(G8O1=@)Q:-B3(O>P@M,uS"q;JddZI4/!Q.8l]d;QVHI]e!( 101.1039 + +/Q1CW;XH,8r@h.Z0iK)J;^jJR>r5D$O$!k-;f+HlI5k/b3E)J0;lr,[]G6?h<hL.Lc@d.a 101.1040 + 8\IllJPkq)Qi`=D)kY5$^]fE]*1D^J-m+6c(d>=n.8!:]V'=62OACin#dkpV`DBPD;,nW7< 101.1041 + @q-L4]GEU<E3=*<Gbf8eMI>5:5J!i<IJ(O]j+R^>uf]e;fh2]ANds/e&2[o)n]jmS4!o^Bn 101.1042 + I\iKH4\H/+u`]bCN@.Z03pn\DogC,hCYt!Bk?Obp-(#:Y"iQ="SJp4`jb"F]Vjl=)E._79J 101.1043 + *-NRb.Tf<'C$]mNo+I2/kkMZmM;m/9\=5VY@(9$dRj4O"nnncd!e#e\fG&11M=76Yj?(c8# 101.1044 + k4`FBJ\Q%Zcf,0Z?3%Mp)O]`]f=Y5h?4d9)DQ!%CY=`'L.I@+/sR9?)L=fn/r]pr6MSQXd? 101.1045 + =m_harLd='TirJ2=tQLQ4eu7UV-7+k$H78AOGqhjJq6q%>%Oa<]rYD^X]jP`>4&LsrNKK8P 101.1046 + h?4&Mff\8R1.>;\iF<08%<(@8Dm&V&=k[L*YMERPFfeXM[DhA"V_e6A<7HU8;AM.=Nq=Lm1 101.1047 + 39`O%4`.g4dR.D*s+2VqcNHg5pnG]uhs55p))H#rT'0Ct-GK'cUBXajF@T=X+bC:L.,Ia3` 101.1048 + [&C6'e$$I*r9!q"_U-mW*@jjsqQgg$:QD9UiEOPGYD>b/pjY^tTKi@DmlfBA?%r7!S%d56f 101.1049 + ](c*;]RD-:\+Fkt^"-AG;!*Fg&nM2(5[eV\l!k[:M&7+dW8Zh+3H[FTlJ_i9)?9j'J<VS)@ 101.1050 + k1o@e^;8tqKXBAELRZcI]uA\:&G-"F14n?e)sW8b+EAll*oNE:KanJ5!8>?+hDe?5&cD+T9 101.1051 + oU1\r_biR&UiSEc4i4.q$7`3>(uhR"oMe$\6n(1MUWP0>sCBP@[jdMe0+t4:eMHQSX[^W!X 101.1052 + 9kMAgBFe,c)Up4#Bp`3&?H2CP*TQd-]cK@"I3Y).M?/@9<M<D0]Q=(ujP,iLm]r9C4RdJCF 101.1053 + Ju^jt4UPR5.)#:U\\MSK[2]O)SXXU)SQL_qN"pu#QX;dTO+=C>BCXi+\_&sRPQj!I8Q^+Wt 101.1054 + "=lU.3jEcGg0XtQ(=4'243kQGlRt:lf(D)#,MS^&HZ1<U=mXU#8?*Gs8TG9l%F4TgoL_plg 101.1055 + ]'/$O&)tBU@b+1`q\s(*1l[BY`Wfp(F!Nnd8i85/-lu%iIHX]XJ\p/=M1-NX>k8<dPaf<R4 101.1056 + no6;OE"n>a5bs>eo3p2*51IZ&DZCdf^;1p?:LFU<Z^[Sk%MMBW/YH+s5k&!%?>)75%WocB4 101.1057 + e:sABk,`];S;[#@<h2eiQi38I28X21V'FJYn>EkZ?ulbX4?^b7'>9gnn^a_p='\doKcT#%& 101.1058 + -ge;m_'$Qu]g8<@K3%%=[+$8Dj$ON.^8MWn5pML`!'X:1LDSMoo-#UZ/MStHD+j_;MgC17) 101.1059 + (i94hNdqB5B-k<4W"7/#mP.<a&?Bhs*)b>TfYm;?m*!HR@pd8gi&*;=<krtILr;tkGR'tZe 101.1060 + C2iTVYf!Z'XU3sLCXPoBi="of=Z+#&C3I63`i*PDJn.O*C8S#/ri=ZEK;:u=NQrO-?E]B@( 101.1061 + 'UX>;b#&a?I/!KcYX`MD'mYI0%=_4`!2G^m69-=2V;kAfS0U8$p\8`*nTeFh/1Hmm:MB:Ks 101.1062 + s)0!!r#LD3!WChU65m_R*A(mV_'%Lj$Fu_X-.BDFWr/a_^CJm;@.pmSLc<B'sQnldJ3iDOM 101.1063 + @0(A)Gjea78Dmr%ZI?J5K``,C\.ms`aQnAK7JqX3kSCLm<XG'K=,-0tVnlo>AdVOJ-X!t5[ 101.1064 + 6b0[=/mfoT6#EZ\(NfM"mU*+8CfF@J3E9lQ%'@lGma/A@HiO6kZ(<bMDb`.En$!Rb@!!Ncr 101.1065 + @+!RBW`^r(6DZAk*<9.YK6Xsh(cr$/)Qd'VK[S\\Ii'ksYm`90nf$8KcR12L,4[rHX#gQ,B 101.1066 + ,>RAgMrPuEmk23\AFVG.]KTmN(5V%^F>76s%ffu&-6ON_#K;^@gRVfM"_7Is#Z.r3Jela9" 101.1067 + 9q>[gADA4bu$\_!mG-#&TIR4H5+(M'=-_e`4,K;K3c!CgN97509kf!97Ze%9Ro=$.s;[Zh! 101.1068 + $5ob*_b!5^E306)b&MjkW@pJW<'1lN@YFc)VAOMZ$V<NQRASX31GgBD_e_0)qhEJH(;cReW 101.1069 + _<V7_D.P\=>2_fJ*S+UI4G%c_U&GpNRqK$@dC3I>l#6Ggq$m2ZAMiO532aEh8F,2JkPFllT 101.1070 + G=IW++nUKboT5F"+%ddh&rAe/1ukRi5n$sode4m4"X[IK0GX@QKm5h:GYa(h?\\Ya`!/e8p 101.1071 + kOcPIuJW5Mh+u6/C;<=c.dL#Oa,37JR=9;&B&iIQ$Fa9L=4BV,;f\WQ2&ssH)I,:;YI.8cM 101.1072 + =*(H)YNOMOOA0Rs?ZR"[Ks#O.gkqLA?n$"\5D8+.DspM>49QqQHiBO,egB`-Tb-qA5@k:TJ 101.1073 + g1LAE>%p=/p3k;W,T:3<^lCS+*&Ybha6N=(3/i&HY[/te*KXp?Z^&,<.8fRi@,SKR/G$Zo& 101.1074 + L&&8GnSo^j7$Ps)!#+r?l[trpcMg?u](WHkJ^C#2'SZo)NGInjhEJc^#L_5N#pof%-%=D!> 101.1075 + S]%628'C.qR\a]*Hha4k8(TZ?XVMVFI7TW\^p80&b"\53GE@c3-ek#]Q2=[.IB]N'.GOe+f 101.1076 + 81;gLa]e3n4e=eSpe\a*uF!eG_1?(C3QNkGHi.KYC*,nIGFG\0!#8%!4f`M^]0i697@n@5D 101.1077 + "$Ejo7n/H3[CT"9&H+JjEekGXNkn$\h#Wd.i8`,nl/)@aTG=Ai1Nf7q9sB"GQj6OoQcUGra 101.1078 + ka,*kl5deSR9AM]cLB#^7WU3,mr9rHJ8`9L27Th44-=Ye-b8>\ut'_kBcTgGS,U:"/<*jk1 101.1079 + 7'5Q+O6))=gYYh+Ca+<g3AYrOc[47/"h/&lkXq9l0!i85g)CF(JV)#(a]YLX>b:VQ\N5f7> 101.1080 + M6)BJ!@Y\=WVGaJ%e2SYkB#=57X>`@_SW[iHqcp>PL<?C;#N#`OVPk\26r0mCLoqcl7<dP# 101.1081 + 7#qk#OuIq^./^!bN<kkh#;u?9@KalqV<45B=6L^GC/0G#D^'-VFlm]L\IYBl[F2/hZ%Mrqr 101.1082 + rT(r7&n[KR*Hg$\-J8&9\tHTe$?J:b3+Z)N9UU#/SZ6+UGq]RQOQ(Tr\h/6G]`P%`?Zk5nL 101.1083 + nI+i<fHE>27a`DKfFS..-gHPSjUMU%eA96/+N[jp@bK,:fj@!FMBdjg5.WY3\6W(dm3W@cP 101.1084 + -+W;Kh6KXh/C>oZ$8EhpNKZQeAC2D*b1=721Z+@UGTlQ</0;T$'Ng\*\bg<i,80m?T,ni(X 101.1085 + Tf/sYmX`Xh9_>efdo>il:J!W_QHdN7#+EhYX+5as.p@'Z9ksm8*h]ikR1`">&qZoTlLcWVd 101.1086 + O77*SPTNB%83r?b^WKf9I"/*d&QaL(ss\T(GIS/Z;FQGeV-2h7SnGh#Is1rQY>)RSZ%+NAL 101.1087 + jeHg:#hJDVNb@_!sOE6d50c:Li+,h,dh9q*'kF<?T%PicP2(Yabju5g[^i#$a+d!J'*/S2Y 101.1088 + lt:u2G1iE0D'L.%.[c\CF]Sg]<3f9RnT9o*'s/mm$FMc?B"_`5r8/GaKd+kV1EIq*.;GraI 101.1089 + ciYQ!Q'j;\3Tkd"PLePsd?VT[>p2-'A19+1m+o4N$6t?X:P_ccI3o-a/)7DqmBW31mVBjm$ 101.1090 + )6X#YEXJ[Z-pE-DPkH<FM_)IA,I)+l<lM?eR=:c4U"Yr0Wll.-0W.`/.`&[U/leBRM0qN*` 101.1091 + o0t3Z=3:YT..qRgq"eOW4+6/qE@\tepVXACY*d-6k<*"oj(p*GkK[UGlGJIQ1KVo&6j;$G? 101.1092 + s*OE8\4\%>8r>+,T!PR:eGlptfAFk[NgHmH2PKbbgs]>NS;hT_lS<bp;j0&*,#,Jf0el<^H 101.1093 + bE,Pcal@b>RWGbHhg@SEGAM#BWI,$RauAS=d<Wt?/d8Xh^KIB#$r^:1%7hoVR&`'sYS#Q4; 101.1094 + R=Uom0&@'"Do\5>J5pC8*n\FjGO9sAqE/b;j_6O^S^]XfaE#i?m`pu_>ld@)^,b5p1(Cd)! 101.1095 + 4XR<sU`F(o&#(=<Ls[3.4lUSH#d^+."7ac-&bP;uRH\aimF\UDAqXHj^d0(lgdHt;(ulbSG 101.1096 + O^+?7Te1Zf'Fq60.JkM(tS<$/('>Ggp3m-2[ThKpIelp*"_7p+@m^t!"[;81AM@eN`5\$jL 101.1097 + .R@f<@j#0b8u#kgL6$$pri-D,de0N_'jJ,fqm.ARq$r8V.C"V-FaeP(B$c.5jP)+97YE2G: 101.1098 + iR>:^oE6^*7I;A#d4e/S=+,&lJ)6`H&#j!6l<YmP);)5T1BUe2pF0T*g-qWJ_p;2UC%ai0$ 101.1099 + G^"oCbG0BR6bt6GHgmi"E87$I8)<>l!E@..gc?qWCk`Q\QEfUAISNSuX6XRJ<J<+ApR_hbo 101.1100 + #SK798f:gV.9o-uqb<]Y]q,q;C1(DA!1"qZNfuB?-fti*TO]g8ch]XGBULNLA6r]mg'LH/* 101.1101 + 3::tfRqWI3C)iIIOnHscpKfV5"I6G,kEL[<0nO[MA4F:<Bd?]':h"UHP)+8So(Wqf".aV<c 101.1102 + XC]/P\jI3MQ,SA+`I$<g4mlSdb+j<PGsS\`s/B]lC3u8puo70,k:5?W>$!WlmFi73B1nTHk 101.1103 + FC96(5t.7kq^!q`3c.W@ip,s\DL^66?rfh*^h3j;"qahiB\:$JIeZGe]j&aLBKi)M.cG)a, 101.1104 + f>"rfZh6`6Ob/)Q=D#/"fU4lX2e!A0UDl*,)W5P.#=*p1=C100&f.@P;)khB#oi.O1^ktjc 101.1105 + \Q8"[orIE*PV6V<=X*fVSMsI=+n>E?LD[`Af=(G1iSZX!j3+Q`*k*a0Upi#10>FaDG)]A"H 101.1106 + nU$3(deTAb(l0\Y>,NnFl\cWBZknhrPcX^>q[''G$cB9,8[J<PK8UbL@+4CB#V;?@4<4RBr 101.1107 + RICP1E)7]DmcUFgJR?Eu7`*=cD^5/@_'W+2:ufO0$>[_YFQ`iG2e_Z4.j%\5G<ADujuuG#^ 101.1108 + j&1mD8CXFmg2P@iCMLV\".LkmiF.>AhrigTV-abA<KQXG[+WjR$]Ml!K'L@>h&`Aq#Mjdd9 101.1109 + q5TUO.l_c]L(ub*Nhde@UUIsFeX%,\.b\J("fO,*r(et*^0nN7PjN\YK:`UN!7?SA.dPT9A 101.1110 + g^A:k9Y!2=<%%`6;COnqh%A0Qm[Xt2Bpg__9$''nR)/o!Y6buTY_oro>EU8fF'6oC;B3)B. 101.1111 + fHQTXG"$m1L'7*>H2\Oe8@?D?s0V6PB&i^DOZ0?@3S(<j!I[HRYQ,-r3/c`f'thkZ&J&G(e 101.1112 + (7b-A9sii:"AG7l,:1,$E!9<P#`3@]eM5&SCOOZlp6,oO+cu%u_23#!?u[LX@anqrlSD^(F 101.1113 + El``Woul!5qY[*G.-<R6;;Sn(Of*pM@f:R#BQ\[D/)k6\YRBUEE7W<hA,\9iF-93,Ro/8^9 101.1114 + Ofcm,4!c+:7q&Yj83/("mA^gB.&s7G&k]KEC97"3TJ649(FhN:SYo_UA=S&)FNlj=PQWiZ; 101.1115 + G@'\M"kVWt0]^V'G:a;;i5qkf,hpqf*8^\6;lL_gh6*De:D-'?/tX=M,D?Z?]+sqZ-I6gq5 101.1116 + -S_<jS^5Rj*Z&=BV[@!\J!`gBSY42X]HFO<g_?>EJSpJF@^\XA*3<Ff^KDadQ:kGZEdE9Cd 101.1117 + *JeINI7QHTo@$%WcPCYJGUm!2O*<<`A]=cdkKCI^=LDWk36Xee4qLrXr$#LcJB(6jrHLiZI 101.1118 + rAYAa8^e)p>?1&PDc&H7a1peT&qNq=F^cBh3%qIu>d.!G?()C'//!"TYB_L24")#Q&>eUjZ 101.1119 + J:\9"3X=<Em,fMVB@MJC7(aA-,c=PYeM84,R^u?i^ibQX-:+l`hC*E%@XJ?9bcW&;Mo$Pes 101.1120 + >Au&9E.i5WC?:LojmSA$mk"ajRNX>1h+5Ql9;JHo`-^f2J#)'IA9e;HLtlp)mg=*k#[6Qr. 101.1121 + ^?4P+H;unNgf=PK#@q(l"*sj8IXKj#2(CU.utV;08a]PAq@tQ4:p?L"N!iA&5I3.KL-+X^m 101.1122 + `J$o%=Tm"-A8G7VrVeb43`S$fVg,`qp8*'b-2e+jiIsL2>dB,l]=H!H=SE65ot;,o'lp#_i 101.1123 + tH&I/<q+R)`2$j%^P0Ad)?8g@j0]5U^kL"suC>4\BeoAh#8+heoSA2t6l$#uUWiG'.5?Q-c 101.1124 + l#7`6hB8dZ-edZVm)A0OiAcEMk,93aA!0&DTcYV^],3BH))Xs:)%t=p_JJ(`<!%rU4DMH*1 101.1125 + .Q4/_/J#`5Y979#P_:2TDIUuk_UNI?G9Mg#Z!t5)anXA[%f#QR$*bs,WZ;L`:>]nr0_.($U 101.1126 + ?)f%fY?u:kNPl!P!gF'859bA-*g@W0K/m3>0LI+,Xe1KYfcsmnG1DR+i*kf`(9drIih!%,S 101.1127 + G)5$54\J;LIql.<-FUJdWde!%ZKp+7`th5oD0c>Ur][gksJo1#jgI>$FnG+7]IhWuB5:!:K 101.1128 + =M/+NC__&+Z',aPOI+V?XKNmo5(Uc0X=0]P:]!Y#S.kTG_`kjmU$KP_dUAJ`3@(_BU(EJDc 101.1129 + a*>m'EcV>asOUa,S)DLZm0k&urb8N%?"V%Lh8&Tm5_UU'/"AHgO0^peEX"I)p<Y(Bt+7ihl 101.1130 + ;e%22D&Xf2)enIe5u0(b)#g6Q1P%DAdm4co"@SFQ'*>g*1C#?1T/mUTkQ(E8d6JnrXtd1'3 101.1131 + cYZ?On0SHaQKY:0>eqe!nBAPd-[$4$Na*",In*$^?)P;e'Lf@&QKlm.\G0.[dni)E!.<qe7 101.1132 + 6\I+_quM1;P)i:)ktk0JCcqO?bCMF"4M`bd-=Ei^-.obVKE/+d<Bidq&<>2J6KE6c2JZ@UV 101.1133 + X22+-J&2l-X-8l[._m_lJ1ISZ:1F2fE26ngGh7hg43;#Fnad7>K&7<68T_i0@("[@!./BES 101.1134 + bo!C.#'1kM4-W@9=jc9KhQOtDd!qUb*K*+[h#qE9#+On^9;'Q_$j"]OL1+j3u:H#iV0_<aM 101.1135 + Xu),,_V%<Y(=iRR9acb,[#S%IRPYW]kEQ9JCAM')+=S$:H*_sXdt4-4W%^'0HD8kc@_kjD+ 101.1136 + Y'jK7P<dakj_?C#ub>)fi/$kPQaBr7Q0p45\l9KoLLr_l9Q*P#q\3SFIsK#qO*GC7b(Wp:Y 101.1137 + /Q"dOS9G/[2W(oM&H(O$\HR2PeR)P$]h.q`H[E+EQHM'?_Y0TNKaS-3WKgF5nclNZjUA1kN 101.1138 + Y%d*XR75<U/I&5:G*Q),Z+Ip>n'>a"8T`+q20nQTZ\%2IJKe9;<Wh-crm.^R\:Pfi'Pd9e\ 101.1139 + %1UYn3cos1=O\6H<&XFske_a[WeQO5I[?8aZd`5FO<D#$g&J5!cPd=7%90e=@_bf;@@K]B' 101.1140 + 8?p+]YA!qL.0S@I0K5m2Z0(CR7/[mq#+F+e$rjV.e,<"+q%$?+:$Jsa&VDiYM)**j"k,73$ 101.1141 + JnC:``')sO7^U2FZLXgL/s3Tl[hnmK]`n?;#h<9-qP7,[an,Qg+1GJD@KlRVg202^J]p=AM 101.1142 + >l2oY4<O`G=P'.JCX`Q!u.C%NpaEk^jdU@%(0*Qll%H/ogVVQ=Lp\@rAS6860"Eo:&%?-ZX 101.1143 + D]F2`\_<$`s<dqk*(/]52$`!oc[h)nBg5?:D[Fa\I29d:I$GSc!W6:#.KLB4hZ*[gAf2J7- 101.1144 + +*htCb+mit?m:fpMROD,h+@iYS`B7o+jD=1'n$`l2=#3iW?6Eqk<Y.c9/$iu3,kFi6(q-[d 101.1145 + nWL$:D0i5pEFK2k<U/bq..6=:Y&^d:6'#]Bq)m2aHmcgTp]YgX#qK\IDkmt`l)Aqp\Uf>3I 101.1146 + b/$P=41p8M^l/>HU>D!!XNQH[3/NW'2]bG[=_J%R=l]PKQ_idE63YXhg^;,G$l&.U`gcQF* 101.1147 + Q"YGF3iTMALs`Ko"BBLf]Lk%gdLnY'jE-FCIBd;0ZdjHm#k?';>nhQ"X(6`IO]CHu@@U2o/ 101.1148 + 4r1HWKjq_n0B=4YYUgJ1H,16*:EPjK>&n>\3UFb2I-=Ge8'WImfh`2qcp/[L<mBeblTEk!> 101.1149 + !:K!cDSg'QlBWn6S'+i'k[0]sGEqm>!l5PFRXtS%\KlpLp/\-dae5uFZagD1:3-0jc+,@@l 101.1150 + oU(8s!Z]dTWKqgJQOoXC6mu>LGF.!4Qf5E@=`RtRRi9BX6'_p+`a8QqY_A5Er%:aaXdLBAO 101.1151 + ,Gs>\2a'pGhCsLh"*AdiT\@b%eq;%k3fI=Roob6&+P&!)0@bCJdi"k/Idi!fpNOr,+6NmGZ 101.1152 + `]<U7t,4._.:)R1";IY*\*C=d@`aVS@lH4-bniG1C[_:1KZN6'b\).l&D_,B82o0r*Gdn<n 101.1153 + GdH+B^S^R3DU;UR:H)$sOZ3Z\@'9Obd\.BT$LYei#25uM=iDo2]PBk=I9<VeclqFDe@0hur 101.1154 + OC?HIM2",3pV(fA1')%TJ%=t'MR@nk1FBYq[7D"[bki:p\V)#/nNGKd7SrsudkIP`4<Fmd` 101.1155 + -(qj,R90ujiWZGff'Sp7-@-aS\9W8o.AX$cUA8aZ\ppp\$a@jWUdQN-RgrVJ:J,*,X\0b=+ 101.1156 + t$=Rrl+P94F'd4)XIG@X<_bLHkAf3"R7FgC9T`</K5HKg5V+.Xc@\FXm[%n(gEQBZ`\AkF? 101.1157 + 6J2]'rpM]7P/UZ5)qFKmBbgj^@PF[^m9bq`$$[_7":*$B0;cS!Y`e/"PFT6e_2t'mHpA\$. 101.1158 + l2PLJ9u]>qRR&P7hC8]3]u>KTB=*D,>:A"`XZG;N'reZ'Rl+M&j%/T$f[:Un;sZ*2'OgZOn 101.1159 + befj\GS,/8TlGB\CAKKMpWm$="qes#Ib(mTWSuS'i(I6[njhL9sPZsuX4%HhB%B^9:\SOo@ 101.1160 + )%\nL[9##&]o1@Or+!a:CW=KfYp:NN+]ZRQHcMhVa;f*.K;aS]cZn%b^NS#Ck0[eiZbk3*$ 101.1161 + QDIU40="4otKgG7UkV2p7%eh%CK]pC7!h<0Nij,l$eMcn_u^V3O*9;FeG6TbFAl\LjC/\ef 101.1162 + H!I)r0o.4RaEng`=PraT)?%SCb:kho*A:R[VRARr,bVn\gX:`4Zi&*(E%VllACBcWp)`6,4 101.1163 + HZ\"[m$a@`;KI7)MT9@V8g]]tQk4\i"]h0<gsb+.B5]0u%t#hB^-JLiPi<o]F]4O)LUp0:7 101.1164 + 8>eD5a;2shR_,Ta/$Iopd3[>Tem/-H/H54C=T?2M\V49!bJpl2f5?55?,oA;8IC6O'O.Sa- 101.1165 + frH?^4Xn5`?ekSpdYR"MrO/gk8)B,uI4o"o$AapPoA8c)a$'EnI9hX,gRt%2*u=5V![.Qr$ 101.1166 + n'IN5l%852hBV5'&a+lFFB@C4;b3hTr::/s,hH$a<atliL:am[TqYM*>dX>i5YaZ5og?6*G 101.1167 + %mS2C)BhO.>=Z&BCp0C!c=XN$r0(h=ceukMMc.ic/&VhHHL\&)Y;i[tr#\UEQ$hR%@UcWAU 101.1168 + Z0Ff[>9D2E]J#10ojXh/9fBH]F\+k/o0I%+s3.hnRq-1q20rH$BcB6\kT+WFS;*63LP>SnO 101.1169 + ]&K_,E?N_Gm$?dGUXp2k/#/`Jc(*Sk6Bc_]W4WE,R*S.r+kru6>ijkn'H"e?8f=e6Q[mTQV 101.1170 + <S,n7f:M6P@M"XV[NGJl\Gj]aZK8<KFkC!]YJ!5RSrr5=Om.?PRV0n.U4,UaX2',B\qrgr? 101.1171 + YfECU[&tj<8s>AQ\Xo=CELG3+9HhAs%Ou+ULs'QH'P`'S2tOuH1i$u+fsMpAmd-n`t4f4JO 101.1172 + .3>>,/TW*M<?fAA7OUqcOb?>UDc;G_#i;OB=$M&H@GNiK2]64s:Mp7,_XsZl03%NC>(Sf^s 101.1173 + VY+d#=VP#tY;;&Fp7jc5aN3Y:do9[Ao*F/C0<BM,/"`m"E&3[W58;lHLl$R)<3.9*lA3^HC 101.1174 + =;eZkZ[9g+@X]FbQg@]otZEZ\mQ<?S0(GV4)j]8mNSu$4lbTRY!mEQkQP$Xl(H5SV@AO]JM 101.1175 + 2Yf]^&Nu")EKr$eb4,nW:N)@H,c^l6L?.L).SN2OR%`I_Qg,i+"f-rWnI0eE:Ffi+D"a>KK 101.1176 + e<LQg@"^)h=NLA8@.d[S6e,q\7t&(VEBl_5G?KhFS_P1?O#?;][S4=*nPnX,O\,SE*aWAdH 101.1177 + U=MrLV`Q5N+(<r;GMYr_bIdk/*uEYOYZ4(U(1N!]^E8%]L:a<!rmrW:81?1XM=lN^!sC,/H 101.1178 + T>oDD<>.)Z1K]Vm'\X/7SX2%;p1Zoe=ClJoni7PU(9R&Wm'XFE_flumhJZ1NMea(OaZIlGW 101.1179 + qR"W/oY]uEX6#:(URmtdr'np\(XX]f/5uAMqCHDJ06;/"?f$#]:1lb$7K=Ht:87^M3c48R/ 101.1180 + 0$^f0W`f`2KWcoP,(`Al%21LAR\S=.:I238/E8W<1hn<M1UKcN'd@X/-Oh<J'el1R8,Q.QY 101.1181 + (q]s9H^^B+&>Z);?#LM;8$%5/'uI:7Fj?'m,\[36/c&"[Io#W,P@E(eNHo+f/d"l;C,hY8c 101.1182 + $P4fliXYC/3***r/!cX;t'eKOR(S+KPIME][)X9*E(T/_7*_[N-&O25qdA_+Y2F-J$\2$om 101.1183 + jPO:;9;U[ATfXs['-m%c#1'EZ@OM7O(LWtoR*MDqf@E.LLke:er7&ep0H8B;^8rOoLARZ5< 101.1184 + 7@AmoR^ebc4Af5lms':t3b,I&h>8`7F#X[-n,8:OY,bt.''r.Dnp62@Q33Jkk'd9MkR-$Gk 101.1185 + C9(t-@\ghH8N*uHW-R'CStUI*c)2eR1];u'KBC4[[:qtZ[\0'->*iq^VK&:r)C9[)D(5m*H 101.1186 + I3$/ekL%\2AEIUM1"HNC(MChN)fe@Dos3T-SNaq[EWp@oK=![M)[F5h6Wfg:J#&88=gF<op 101.1187 + qF^W*8o9QeFL0H3n&TN4LaIG<QWeF58/bLZE_E=-r%nR(AF',a'K7NlUqo5pEe9-amW6^A# 101.1188 + ;_5.N^/-Uq6F>F4WcSnmKe^N\RMlMjZqX8X3Mn,+[5ap[G50)FNO$D%2Y-U,Wj/-CG7,i:& 101.1189 + X`hSDWC*eiBK/[dFlpu/n=Xl.:Q?Eb4$i9cI"]<@&ec(50$g]'4+iP,Cf*.!4q,0X(_&2l< 101.1190 + ]\F`Z+OGN95IKoMQ5V$";$J0_2f(qoS%+8f^"4gV:*u].Q[#>Y"[%%%'k4OOMZf%&Woc'.S 101.1191 + t"8#_sT6(kH=Mb)ri'eQ'F,Fk0-u(:5^jH3CbhIr1?V8I^.<a8%!gW!!E1\KmkV9Lhe,6>Q 101.1192 + o]J*^`K-r.#2d+sRRH1Eu!*"sN=O,t_H2VLkDF<?XdXBOVrIL]g,g&r9FtAl+Ws5:)2T,=! 101.1193 + rC7S>]G&P+`KQAZqi8H8aE--EZR,pFe]q2$h<1;Ju^)F+oP^-?*9@[[mk*O6KD)@.m/6-l, 101.1194 + \^:<,Vj4pf-'#&9,3:+k]UJm\(V!lSH>ik#<bFM7=Q4g/i4B95@JBe4C:UV\?a>:LSV+Eqo 101.1195 + _A#_k$]7=bk_p6e;Lb,$Z(EdoGY4[&6_4So6H/m'aAMqL"6/eoO8o8!P(5nkN=^jk%ZXDB@ 101.1196 + ^HOa-!A,t8P*qg5DUlkT9SGX94A8]-W@'gFQi!`&lgXN'h>5<,d0n.q%lURbt#\:WDtsP). 101.1197 + $"f,:o^.`lRU/UO>ajF0\G>"1:-m[-4TVUodZG0ft4b(cPHp$^A/,>`Vj?,uh%Z=0r2ZJ-C 101.1198 + (Z'J,>"qBI:W2%1pU&;aKPJROC6E?\$a^Y&Z4W@Un\+VIV4dXhj=LiSt-[PWhC82<^Uc(;, 101.1199 + )V#o,_#u@Hl]3(<5d^PU1C6!F),8D-O>J#/8l<sge"Fat-$E$lK)EjOOS;Y*R["Du@?&d4* 101.1200 + hVC8l88C&,XVY%*7lfI*X-K1tO>cKsqXG^S<TCat(>)]eR;#4jTHKIF<*NN@@EAYo:c(_%> 101.1201 + (S`rCq1R`f7dn'b=Fp1o`_dc9aDQIkX4K,ik7<>j''5!CSr32Uj*<)h[Ah)N\.a`f'<iU4@ 101.1202 + o&qr-u>sNi42WMc?R:6Us"?ji3dYK._Q6\heOCj1=W#k;uedR0E<?g>cJ/<Ii.[f(+o<fog 101.1203 + Aq*cY:;pF'e56*Q!A_6sRYbJjXMR"LI5o?P/eH@nI^I=ArqV_$J5:QtBi,f5pPFZ?0Va[qJ 101.1204 + @+LgMmQ2Em5E>EoJ)?j@)H\+bm=T"U$73Ki;@l87rf>aa*)o"GKTX;)Ea3j'Cl*]-*/!A_. 101.1205 + C)9Va9U8!55,6I>"#\ss;A4*D1aH8*.HQP$7j+(56:?/^Q7H@2WF[0ae*AW%%>QpN7[q[RC 101.1206 + 3pk/!BVkKa!;PpJnP%U[<Ah)d$UVkBR-15nU8N(<F>f$Mk*p(`8')D*.AELn2#`2NSW@,GE 101.1207 + ,OR0V?XY]/uoi%In0bGE223,"tS'/Nm:=[&`(QB2XgbS&0.dZBo3\[,tDSWnU"Niqu6?CP4 101.1208 + R:XBB&b(!hhNDF^/+0+PpI-6uQ4!ksbO/Z#W@flDZj["&A1k+(V*'qM[n?BZ=<M#_uf9OSg 101.1209 + J%ZdY>4uL'6c2tAPh;Zt>-1OLl:"uHb.!*o1O-/EaB%RG-iUf>&G,G30e`5r5Z%PKGFj1*B 101.1210 + ?jmRi:'#l"_(r)skLCdY[qll+b-q`Y*&kW<Xs'2'QQ"mJ)i8T^*O.K"Lub-mg+#GgCN!YAi 101.1211 + gse]pcE?8Xm;D8hJe8ADK4mR2lEIi+WG9tRF!u26E8a"-="i]<r-Em\m@&37lH^rhm/$jVL 101.1212 + &5a^:W"o%qC).iuhX2J;1c[$17]2Y4k-FN-HpH_j"NX&`3WI^>5gY\Sp:89\[Y%hi[G6Dj% 101.1213 + ]@(&*U*(r6'=NHq]FH[e9;\"7p&CN9`MI1t$F;uAlod5gHN#OrrqlU<iR7QN9Z[hEd:ZZA: 101.1214 + I[^D%N+B..3WWYCcTtg*k3odCrJX=)4Z5TI?]/o4BfI"E"SN_tB4/9Cm$e;l3UUm5G53l._ 101.1215 + )VZir_nSa'0FJ;Tqo6'#n\5b15Io=D&;%`#XM<c0TaD#adb$"b2ScYVZEk!+b3?[he<M7/^ 101.1216 + _?bmUb'CsPX$]O4`MOM9&m]kU9Tp8Z(p$^/).)iVnqF<VYd@0WTFjBN'^b[4tI8W"0k-:ZT 101.1217 + $%`6eI#YlkV[9(I"f'5.[FU3m`^o0o2VE[M2=c9I.,Y*'^eOM!ODd6W_,E$Gaj*`:5e!gJB 101.1218 + ><h7j=MLf25\S0CC@O/>RP7)HZ)g:9>?PsjZ^6NgW5")(%MX2%+[6VD@)C?7g(84.q4#H2_ 101.1219 + L5h?,!Bh"2+#"W:+6rKb,$pV<+7+>(rPRkJb5p+!pKUcc`XE-"qDo3P1^76"RZb)a.egK-K 101.1220 + />Ps-Zs^"/$o11N7d,TG;t:84MA7Bc^I1.S4B]EU;i'sA2L)@@C\J)38A@e2`(S%i6N5#e! 101.1221 + &'Rb7DS\m1M&'\<e(="^>*):oTZ]k@DF]&_c,4-;3XOac9\I"_o-C6ZlP@CEC9pAa\a\4e1 101.1222 + AX\F$?B:6'@p'fDn&CT83>lb$qXrb_&=IK+R"5]1B@;>cA!5p^+8\$TmOg["$-gL)^Vl#]" 101.1223 + #gKW,Dg`3g/59&Mm*Ya7iU]WXC*/Ej>VlAlrj+33`GVrV*Gkop@S_9=1A#IMC6LpOs7,re: 101.1224 + sa[Em;K+^a`P=@&j7QX&VA(aG9dL<,c)e5rNC(Lb<OeID8+cs"'UgC,WI[i^,$S73lJ\@N+ 101.1225 + 8@lqaaP;J<1lRqaR@rm(YV;N>CaZu]oV!^",&$0f!rYH-d>.YNMHI\hJ<!4]VTJJOO)3m\X 101.1226 + O^,(s3?#Db\HOf)48PtGeo9I.MBK[e=Xm*lRGJZ8F2#+Ef(/3OrJL?6`f'37'eRdKMS:0`N 101.1227 + Y(SkqJ4Y^JB*/1W";A,*Y;Cp*rbO&Y-t,ZIfj"P<mF5ct*TfV$K5#".lSN[e.d&":$tTEO: 101.1228 + SGN,t'pjR7nN;pFi#c]j'?>7M<'LPV2oPf2ZZ^lM:u6-oIf(_%EZLp,+BWR6VY'ZCss%-aC 101.1229 + SlHm?9dMjc9/?D`3=K^0CR=+PCFPEr$H7)CBbuA(H>pcK.:!r;N$TXk'1Ji_beASkZ%!iYF 101.1230 + XT-7Ta%spa:"X,Rkc#P07N?B;#jfur;16]rk"=:G+HVIZ41-A%^&pX20MOV7C6;C_0df[#& 101.1231 + X<e<m):u28'HYp<2EBkPtWeE1X*0n`^C$%U^,9raXCgs.!Wb5.#4c7OpikjLP$!CqnZ9HT# 101.1232 + dVM:(k^[N$'Rb_C;!o:!FZ6RZ*+BNNYIX(A(HD//;#]oT#J&b+aYI!/8teo2YRJdSd6rAPc 101.1233 + 9Gc.1WdLfJ;J,eg<Z.f`R#&8Xkg&q3agGc'ugb$<oMeTs*\1tP`U,\9U\NDWdI!`\iDfJ7R 101.1234 + $&<=+\%ok_Mbh:C$PXNK@;i$?;KohD#`3<,1rm=PuYf.M7j[k8=Ut.r<b92SAOJ1$oL:B:% 101.1235 + ei8Uk=RB.r7+hGf#pjMf2/q2-kh2MeLkV;MU?YfkG7\>1=k[@eSYN%'@G-U.dV@2soq`u5J 101.1236 + .Q[Hg9<Zm`N7e7>MA2<&7pIIort4QKS\`Dbe,g\%91^p#YCdkYJ\)3m%hCTL"FD$b"[6;]s 101.1237 + osP*)iMc0D1qCj<)83'A0i"<j7\?a>=73S/I<W>7fe!3l0<o7P:g:a+Z(j.Hj[ka.qalgu: 101.1238 + K!-&l&U@p9N\=cLb%`N!313a2d<h/XZC+GsA\;c*[.\iaQ89[6]b4KklMgl2D57)iAO;F3G 101.1239 + LYi)Uq^nojJFktjO32OV\'QRK(hVJ.Dg(ZurHq)_9/MTX2hO6I[p$\Z5K?,&->pZ_ReP9Ha 101.1240 + 5i#H5U93#(FnhPFfSJn:fO`de6.sdfRF*nSb8#q4fhC5h^>Ku.PpD2jV;EtC`OOt#g2Q63X 101.1241 + =.42MI(s$^.%i*"pi(($.iJL8gV[;h9<LN$mV&,i?Bc"NP8a_UZ"r]UXf(sEWfa((u_19?_ 101.1242 + t&jba20)ZsBoiT%J')rZIg>-!OYTRYD7WFT\Zc!meJ\5GdASXp0uQHf0/3@R]ln=Et.5:4U 101.1243 + \#@cf=Qk[fE$6Xcpqik9_B._,``21o3giqQB%5SQgIo4'6qiAN`k%?Y,$aOq=k+BB=hnb;" 101.1244 + 65ia)'iP!oQb[XqU*ad"A&j9?XAc:H8k8R*#JnrOtjDJAdZ,/+@ff<[)hBihp1Z;A$f,dOq 101.1245 + 77^)EULc1WA%l"*L02gB5\6):j;qLd_)p^;M;P_Iaai4.H:64qo]29n?hE>XKf*2DWT-Yq? 101.1246 + qpc57VEQQp<rp#?0.Yi4hAtJ>is%*jPFP.>mob+DB;PSk9b956igkrFIa1Ok@Sq!AmL4@ft 101.1247 + ^WqNNQ[4VI>NT@\"8D6>_2(hJhE&.63t/gSnf)r?0(FBFe]QAJTM"reG)tL/2E$\NgLTTF0 101.1248 + o&NG-KIk;J-1#*?9rFgeH4kr+R+p313dQ&_/U#^1McHj1&PCPGARl*d)G\:!PgnR=*L<G$' 101.1249 + dSr$k*M;iE(0Pl9V"BK-IjD"mVAEILg@kqe:E9>u&BX$`Ui-0q6;$NsrBg.OWW&b+_3bmSM 101.1250 + #,$*nTa$5_EJ>6glW\]Km]Yj,l%D$,"?s#E=F19TP&&-]lMeAJ3/E1E=p!isB[2V'(:%]CZ 101.1251 + g118kl.OIL<-Y1Oq'[WlJA]12R)KgZKu22CM(%k@63c#\neaeCY$48f"^OZ_/(IBlpf7d?F 101.1252 + 1BKQ#)c?NTQQ5DO=khHWsM*;'qnGY^[8KHj=n?mO$t3.s6WcCun]JLik@`d"g4BULs-BaL/ 101.1253 + fuW/0X8DUGRoj62\<#ifTam&'9"in!/X54]#BlL,d,=4XF4GZP*r=)E,un$]H:!=%p.NpGn 101.1254 + 6#5DG>8F(3Hk_<Je#%k(-n6?8I"R?!gL1#i+Y-;`f_1Lgm&8oPU[g_cU/P-"JaUmb+QMPO7 101.1255 + #jC.COCnTMVZ-&a!045s%Y"_&7fVsas6sq/E/,%q`sH\!$?3DVO?tB]%h8(AM`k*%.Xb2Qm 101.1256 + =rj6g)i-X6^ulf-?%]WLJ*$)LJ57e%e=9ir(F8G%",^Er/q>[^C0tA0L0`M<E]ebE6U"5jW 101.1257 + :Dd.X8[.p2btBlDBHqj$Jbi`beO>LDY:A(l)q:&FakhCMo*sG`Qi`kk&!<#E,a"rtYnV`9R 101.1258 + @mLQ<DEcjGSQ'a;V$lfeIia!(*l;:'4kWUC@XO$7Kr^iTN@Li5TJT0eWO\*XC0#j4[;Ip<I 101.1259 + B96?3!M'ko6^Ir[gYOp\bE+^0_q#Tl\;KcH1D8:lQCs'GGR;uOknn^<9pF'W\D2<'0OHfk' 101.1260 + $M`LZE-$k/G7(cLD.(,h8Bio/;jO9<LH>!dD'WaSY,:pXI]#l"p^T3tCB%>*-X@3PJIXlLm 101.1261 + 5DZHk1&k6ZA>E1#QJ<"#8$P0HtF1,ppZ1S.;VQ`Q0fp1n%XAn+,:=ZOU`akDnfh=k.^-\L' 101.1262 + XE,G_V4QQXt15@<)m;H*T#B/^7VkOEQL8)#%c:O!ZnlYJ[8"G:8;I!PX1Sd;l'N;bnu3U\` 101.1263 + J2;k-_m=XSV'<7r*W44D9Ie(m4aJH>McE[Oq8/t]E>T(hj$c&P#O(oOhPpUC\$<GMgBM"d8 101.1264 + "cHc6(*/LM!ESeQWR9a?YS,=YNV9[3mkIDB^`=:_E%Bm?Vhn'0_]E#.K#a^<np98M4JpEfZ 101.1265 + q6.\a"cE-$&]6I9-?_gjYFo17LV:0kG1Y*M:U>J$Tm,[^n]tVNa+&7?Y&R6k!3_UmO3I,He 101.1266 + VI9>Bg@IQ2b`ofM=e7[KW&O:Y0?li9(5X7IP8D@<lTR=r+ic0NNW\+GWH-)?i[CTM!qftG? 101.1267 + 4MtY\[)Hn`s(tVL8?7q>[0>Hq23T^YXCadf&&rLmW]RhTi@*:b)Ti^Yr#!A1?O6Gel_O,Wd 101.1268 + .[$].>\d@dR!)'"`-jA@oWH9Dd`XrH\[X$%sV$Hl>QV8OQ@0SQnTD+LZJ3B^e1fMZH1(6&b 101.1269 + U/IR[cUB'OKL/Uj0.S4ZS(m2b:n>XAI`q",JR]7dt8R0tN2]_;.h6r9=\,\-_4.?`IDS0:o 101.1270 + =1dSfrI;UjE*,4L(Cc/<@W>M_AiC`kaC/Bm4/Q!IQbU;A:Yb"%4T!K=F3i(jpGDljl>d!OA 101.1271 + lJa^fP7ZD`hQB^$3b;@4,0JD26u.ZG[*E[(QHJrEd:a*8CVFdh/c&u^8G&7fBd[-?+\:8]r 101.1272 + np-cQ'K[EmCi(1E?nFjQWX?RRF$<%s2mBbcFB#;9CH-r2cR6/+3GPDu_Am'M5qH"@.e(&B2 101.1273 + <GikBE2Ya`kD/ZS*>%3s%n\H\jDlPqb"NrnCaSdsg]'uc;O>o1KmN+EmHOfWC=`t?K;#KMg 101.1274 + CQQNksF>!2>0H*FT4pbHSQ+i+0m.J+I,PqR2&(CaTb,L%8L<E40Z@bed9HoV9E2p_t__<pr 101.1275 + !i)b@4YMDl',n@pYqQ0i(ie'u4jT>YrBJX@Zr&nI9Zo?>ZcCT27C4Ws:I)0Z@!L9]!GlN)2 101.1276 + U0.4hD`r<4\rLb[7*sBNHINc]2"VL"ZfXP?!#SlN*brm1a=^9:%0oKPV7k]d%dU5@[sAjDq 101.1277 + 0*,6]+$iX2rW8X!B*SF`rR,;duc"W+^!0WkGCd&ITk&3f@IA;_#7fUW>cNM^Z"@7r0Er^#6 101.1278 + oKK1tYH<`dQ=IG^CYrI<`B%L%E^Z/?]G8/9"mQs+-^HAGYf2;AP=<[,nN=Qq]jA5,_9R]7f 101.1279 + ;Jk]r*fZ^(Pg?KA5[G-j-]YiM8e\n1eLc*Edj/Oue&D`3j-Ac&BA`]1PCQ(tM@%'iUV<OFb 101.1280 + ?U;W[.f@c&XUQ(91^tHIV]iF4.+lP(`E(eRXo>l;`q:t7[FEr#glk`;drAFUql]=u]%*Wnn 101.1281 + [bo_WA#lK]%Z_JfW'e!c&&lVV]n]qToJ)8b+W0R$<IqW-60USqP8L['oArj/mF38CW@QOk+ 101.1282 + Jd<N_PO&l[,paa(<rtSZcnbpDqLiK4+gcXhRSdPS(_^Hm_I_nE:rLJ_dtJ%F6HY4LrQ^r2# 101.1283 + t-H&N9"KW+h/p#n+N!gV.^<Ypk,H:S!6eabk=O#g%i7s4Y,T<IVtl44)p^?UqKpskU+UJ]$ 101.1284 + F]!^QJV,Y"5Chdsr5Bn1Ni.8^^-LFhRkT^8h_e<s_79c=)-LmI3/hO8OM)&NSn.mP@+`CJ> 101.1285 + 1*iaoRD^dg_RPU_'*S/4WVeJD@#cDi(9UH_2I,]IJ!,S;a9(EL.PEd[6fX!gd5(KL0hs2e= 101.1286 + KN=t`*#O3nB.O#I!-Y/6>tr)&J_fH6)%=,@cSFB&EY+YO*\s)OM2_MG>f'C`,gr8aMYp47h 101.1287 + ^[U5\LT=oL)6/P+8UF>)k/5a7@f$?\:j$nS1Zf=Y/q^af^,)nc"Tu7VGL.Sq(FH\%lJ;!ZM 101.1288 + OTDGX39aa%/Bh:**!0NqRO=_ruRg\QQ#E\N[K%%O#M/S3usWk&fX0jbe-N9RcYP$!J](mI] 101.1289 + <:20)cVkZ,.'J(BNc1OQ6N?[F6_2N@X(G->kJVg0p6thl7],>NKkCiAs;pK\>(q<iqngp-' 101.1290 + _I,@ui('Y1<g_tu@h?bJRcCLKRL_;GT;ee2BO#nX-6@")=h*a0<>(g8)/%/P2`]>tl'qrI8 101.1291 + =g(J4_[>6V+5,kR;$hNjQWKtFO!`$`jXWu0lrTcc*9mLaJW`X6"#?3HB1pD(BW\gWAPf8$B 101.1292 + \7<:3*CQPmXNF+f$DPX\,QZoJ2/#CG'/J01DpYnuhco;,CfX6Nek];0fht(+Nad<).5V(Y` 101.1293 + 4=]\%@li5:c2O@%bCrH-P0ZCdk<8=4CAO4/uE<jNk^%g5e1[SFtJ>:jFQSG+XWjVZQ8QW]W 101.1294 + r7]eR+,"NIc>-09nXqQ,l;5C<MlfE>Y`Yog[3p^9jnHPYp"eM'T@-G\*(9n&*`KLV<A#Uo[ 101.1295 + V"S9[>hbc=WG-I<FMU>5=ZoJ*)gJ8,b+5:WHNbkr%Cu4m4V7_T!l.XQ&#&]q*;NZ8mj7Ko6 101.1296 + L6B1"]cuN^_j-8IL\<TB/86s7YhlceO]PiC$d&O@WDO\gH6Ejk&(_a[a^AiUB`R19]_d&`5 101.1297 + 7[m;Yd95K<b]ma^6SnM=F%a`Cdkh(FqLqkl^&t(_+p<fP!RH"`:Ns0*>Vq[;7O>Y/g7b$U^ 101.1298 + G9@W99BQr1l\A5`ScZ;Dhr=G4LqP:L\D?<PHK?Kdt!`*R/9rd[u#e%eOICLB53Vin(L5g6^ 101.1299 + ,cFrAR(TR0jR:P+7VJsjO;Yja7=+2gN1oqD&s!(bskfH6oI$GhN4_b?k1-B[,,nf-*MFTO@ 101.1300 + ]mJ1>,q>8Z.>LHJ\Na-%_dYDPM0%OQeQT.WC=;j75R&mgff4KFJg$kqV$,2N]F*m#JV:<A! 101.1301 + @rIq$KXVKVon//Y;S0[Qd(V"a[W"L7?#4I@d019G1kVE-SC`9VI$(c1k4n)R[S';:,>;9bu 101.1302 + ]6M._/clpOS1H<;>6]9A<FPcLKd])a</+o7#5lrC7]&\>AEAP6rPM[!*U!m+m:M$AG7sGY_ 101.1303 + meSMFWXrM\3#<5VR>*N<[_Oe(7qP&al'aletoek"/E!C7P+!$<lt>gJiEY&$V<.:hAri1f_ 101.1304 + D%>&C<(M*CEd<#:6@5`S\0DoIU(Z(Bb3;13D4'9)95#Kl,_E$AD")m<0X!d!/qojDU;Jq19 101.1305 + RT-Yn;`V2gDZ6usatE;QS(g#))rJAVLNt-!pHS-F"b.iLKfJ-<%4-)J8G+0=*,fYf\:c,0$ 101.1306 + dOO3ZVBeNAn,3E7i^dTp-D7/fO);K'^/!_;\r/*hRuFYoj4bMntm%?HmKg^lSJqSYUJALpQ 101.1307 + m.I4GERkalGJm*%;q&K6tHSm^;E'0RY=/(]QQ1EUM-JVB=0M^8P;Fa/o/FCrl:`\m@<&M/) 101.1308 + ):Z.!mDG0PL%7Q6]P$IN)TIt-l-,BRgj+nRn;R.2-5Hi8H?pA_>ss6p0kcj9\+$NFQ41P6Y 101.1309 + h!Se^B%0>r'!Y>kD@HJP\a>+q&*5Tl$:cSS24T]'Y*C811+ljUD_#pnh"V;q$%Rr0]qB$n) 101.1310 + "7T:p:hUfap`AD^1!f:f0PVV:TGe7$]k;F,6$O3,i;O:D(P<(uYYPJ-B*Bso"b]c.U&$SWT 101.1311 + *k(&W.F4gd'X5mTaU?!!?q=@E#T23bl;,6*'qLu+mL'Kd1#N\"7Y"b&4m#O:_fXR#S$^Y,\ 101.1312 + GD=Us%eS=JB>NJc7k#M%G93@Vc,Y.%(ZcK%"UVas>sjc&BZZ32<RBARW+\Dh,^.7ha4%0df 101.1313 + HBcCF`?Y!'\J_1EAD-bqG)8hP$WqiPG*EG62a<qXPJ3ACX_d0UB-$MLZ@i(4d*6FRP#C@Wr 101.1314 + iFWu/FVc+61MF5cN6Ao[p/<&eF*>EFVj)I790i0G6<>*>5N39$kb"V*JD&i)m09<dX!o3]* 101.1315 + `ZJb-r2n9BmF%n.e7gD$'e@ZRD<UAFd(I79cB7oEdJG&%i%^p3#_7aSEZ$"!<mRNbck79?O 101.1316 + sj==S.U;h1!@<UE]G58bS[%21"#S;Y3-'_=!CN_,-k,kdP*E&dMu.V-7Mt8!H&\5*@?>U-; 101.1317 + mhfOoR5B"XS2?-XfCGi(c$NC'm5&-W3Mai2%VJo-[64i"'ce7Xh+FXp^9t.qaBlU5^[@&BV 101.1318 + 1@d4^<\O]re7R#H(.q2r*>P.]t;0cGZ;g/>"%YDgCp6H"si*A[:@EqqA`$Pro3.^IAMiKbH 101.1319 + ,QQ]9>0d/P3DL.EM<@d-n(Bg'Vd_ROAMUq@<KHViY/8m4`2&`V]_=KuJZJ*uQ/2&d?0QQCJ 101.1320 + UCd:_mi9dS2DY(KDZni*^,,2p*_sm"Nm?HUdV4k7-o.$PEdBI'Ij];lJto1u&ecF0KfSSS+ 101.1321 + p/u7'9P<g=X,.1,BKtK?kjpW68>g!3j.*Q+TN&\K0#3[+EB+s!uWEVdlJ+]-Ltq8o>N\a(H 101.1322 + D$M]b6)KUEM(Mo-H/[.DRYc5ro*U2_%[X3eQjR&],0Zn1TP//u@!A:Q%)m*u`#)4RIqSY7` 101.1323 + !H-9Ul&EM?\bMB=EK:,%nW6IAFX@bjE2d4do2/J0Hd;-lZ]o/9Qf7l5?Adf;G9(5tZ6-<)$ 101.1324 + >FAdI;Y=Pjn7>F\k'K.C>3Zn!!(">QqoL:-K9(PnR0D(AYnK9L7UIG<T4S35>1L0f6G>.I, 101.1325 + 2MDSK9<TB#68XYC2eLA6$bC%N_a!^:*\.m`bL]Mtd3.He3O20f^_-Yk.68-<1%WdSOs`D51 101.1326 + u5PW3YT1P8t@=q/chU`*4'%E[21r'8Q!AE4k1cU_f7jb)^c?u,r=mB;t3h-#=!6g.2>bJPQ 101.1327 + NseT0%UI$m<GR%g,N2lNRC\4-XI[&S"nmNEGk8jOANZ-Z)rf\P0Ci=d>fDPgjGhDb\Ku:(G 101.1328 + ?qZ0Jr`mU1V$)W@h:_&<ona^!B>>kQWQ2;)7Mh-G0\>bUp7!Uqh[ar!Eu?5<-=[J*ubr#4N 101.1329 + \'I+e@5u8:2qd6%;&&A)J?r."-M@e_W@.hY]iG'.'+rVUO&p>R.ei-s0cl"!i0u=,8Fus&s 101.1330 + 9k0Jb!jF:3[DQ6m:LN-$&])g36'SCX0k46kB/WV"G!BL^)BU-`*`bpHG)'>kk5M+pB_I?s< 101.1331 + ek"(l7o^8?T+<eG)9J,gbHXT'u=0iG,o8!ZF$AIB(icC!C@m)'j$:12RTE"_,Y?FT5F&P't 101.1332 + *:?j-*SfMf!Y-D`76uop9T/hATGq#Zh-f_)6,jKj"WNDq>]RFfKqVY3[dZgonstFh7N-IrS 101.1333 + s5;ZI^?2`Med4`_E)7kaQT^t!P#f6$aR0i7ekf%"miQ3[.l/mouKG=i<1NHX??DU`TIf6MS 101.1334 + LI"F9RGNP%u(Pj\d$3;9SGr@,fUIT:naLP<GGZU]@[i1Hs+#c,)*b-*N7pua8<DJgoH=HLN 101.1335 + GK;CE3ILQ$)HXn+A!:=drH;7S',TbYK(jD)]cEI'?Qj-5AP$=':_6_/<eDW@=1s)C%=n3bG 101.1336 + @Z#XY?ui,oN$JGJgB[b3%,7r/U]*?H0h_\3$!XM[<emQ9od#R'6Gug\=L,:4*SM]pcKt?[t 101.1337 + WjI!4ZPTfP-&LCbXEI'`^CPAa>*1M13a\Ii*Q0"%i[*N,<e`!)W4l!C)FEn/c'OJ=)+LGc? 101.1338 + RqQZtKk;olUgQ+R:/@M-H&N&+[j9s92:Z]+'_KED"I;fRJWZVEk*K^M9_,IN5Mcll'5&#AO 101.1339 + lGkl<Gmu#]Y#l+X>91t-9%>D<BqtU.d@)nD>\3(RgL#BBU=XeX"8M9C+GBk!gGr_(_NJeZ: 101.1340 + 7lE+8Goeiqp]+]ePp&qg@I9>Ss)AoDQ6sq;=0*Lr7nr<T1)U?+fm/ppH^1;k7@<J&iD#]:e 101.1341 + i["]Q<2%;JWp3RS1]'i#iXI*GlNmcKpb>;M4m.uVUP]N]FObRK*(S#=g=L-c&.oTSE+&qg" 101.1342 + DjK8mofQ%&&<FH'0Sd@@^Qj?[6@=3H&+^EpUf\Kp\q[3XLr,Xe>0'#<DBt3@l9Ag`6C6U*+ 101.1343 + $AH5hh=X`^?UFE8+jH9%b34eqj>UcLr?H:apD9r.V_V)hVQH<I)U?)@C+VE/"1J7kG+h1C/ 101.1344 + 4&fPj43d<'`ae=$3W&K3s,#)q4T;GeSWB-<DHC:bDSZ2IZW]H?#H>T.%)63Gd)k+1+fZ<?e 101.1345 + '<#*M;Ao0]=P6mp,?n=9Bt9"Y)A@rf*X@#MFS(Qo25cU1l3n4\*5WMc3B<hnTm\u&YWE#mH 101.1346 + O6pg%C#^AYr`]*HPs*#(PY0^$/6^?HRL_^J$,7qZSe/LJiqU'*OGW/Zo^^`HV(TV9sjbs!' 101.1347 + =2`!-T#;?'lMuZWgs0qSk+lh/X?)bk$0&g'*Gn6+?[F"Ik&`>D]e1cWC12\K^4)^`XF4SWl 101.1348 + 25./O%Q)l^E\Xh+D7]0!F-?qn8C!"`68+^6V0gW@+5e$FWFZeMt&HeH*Eh7`^EYlHGkGUs= 101.1349 + YIMr8([QDaKA6$(4\$l%9XV\?[Rb*VtOpO2O!dk_Vg\CYu6]'e<(*"WAJ7FN]cajVfD'GYT 101.1350 + _9&&!4i@1``&pK,HqD8h9uQs,`B7/>Hs+G$?,c_M`]RhPHtgS[\$P!'`uo`LGA\87TtGala 101.1351 + ?5.Cqp6L:hoP_2aZPj1I$r*hS]Uf'aulNB5eY=P5QI=Y"['2<H7C)MouMNr3?.lGquMf4"c 101.1352 + `eX^prjSi8:c/EWGo9'`>h+>80&j,L6(C"2*Zd)l(\gL_AMEYkoTBf&LXWo>hpMd6/2iI#H 101.1353 + B^(WX,u[6Ocuh'`qb/WesdbP`I1@i<L"U!1&e:,TSkGe9/j0@]qF[6Y8PI5lg@l8Y3>_*B> 101.1354 + "@*dE7c-O(,1'"`6HNFDBI?]'>7[Yt&feqAENS*PQJSFY*]oXsdC_9kQ"F[,Yn*+Ng!Rk>D 101.1355 + gEQC@_N31arR>%oTK+tJh8uq4)@U0ngIH!R`*OBGh"S9Q%3=QcJUQ,I1=2TA0c>KCSbR&HF 101.1356 + p#Y$>X>MII1b@#%H-J&dCp/F>?G`dAcc+^a1BaRqRZP@c/F++gOcW1]5`i/8).6+F2?&,!0 101.1357 + -'Q1#iH?h1SfHIT_onZfV*FW#]m>!r<TPCei]e!LiEmIX!]Z#M=$)fY2(`IY`2S($MBK^?" 101.1358 + [e)^Ga@g(dm%1**Xa*Y%.84u6@=XSMlTSjAR5*UES5Gk-XnqIg68c/el&<ZY4/=%3N<gb)t 101.1359 + dmQ#jESaR*c1$p/ZDLTW_1Ct7LrPAi4kS.loT(2<b$u+RZnG_2M!p?GNmLhR**@W/kZX9d5 101.1360 + &)CQn./l6B5.>R'8TNKN3P]F$^a&KbT:B7@C#7E&+cl;s,po=(O4kE4Io7GuiXm8Pjs-qb^ 101.1361 + MESYHr_=&m3.nmH,'pMCD.qXl@4<2h_HJ4b8ri1gb.!=.Zb%++-b^:q`ZD'AcPTBHi*d&%0 101.1362 + KiGT?6uhH8\/f,%)q!*c)N4\"(3Iqh.uDTB6'elpi.Mro9"6?hMKiRNN.9'Fk!EI_jp'Qdd 101.1363 + W*$%>1tYZLH,.2@b0it7[.DE/_u8)ki9&->EL(<PVMR8g=l/XK,m',d%[Bf1jC-PBS3O97X 101.1364 + &:WcWPXUYQtUJ7^%RT1u.9rCqT'cN?4W>M2VlP5K^2Rr"T<$Fog&73I)?s2d'RoQWED7<!) 101.1365 + 2]C*'l#41>mh_JDmeKX8hs4&H(&&#g_dW'PS5q9\NQ5Q")'"r<.@#gDo+c:PD_7O+BCm&f/ 101.1366 + rm<VdqEkBSQ;psXk.3):CE`E?P8/^T6m-Y3[#-fdj.<']UW3@j)OH9^/\DCbtW9=cT[K[W! 101.1367 + Vc?q](XJDn4]"<VbmZo;4(lo,g+1H242'de>@X&3#*b_qt9=l5(6HbjkK.5O\aH^PscP#6; 101.1368 + R/6k]_iE+Bmm61BL@bQ7(Z3=*Lk`#d<jXXd0U_smjs&O^?6@f@\`Z4M\u:"g6:TWoGfiM@, 101.1369 + 3C;q03_QHMOBZOg.,b]U;@`WPrM^(W.$%!sE:Kjo2am)]b.3tXHWc-&N4L39t;*;6>9C-0o 101.1370 + !hL&.b;2i`7+4"fF(/tm_P172HHp!$lT7kggtOtK&DT<TcZB<m5u;939WYCXlY;%r&Q0W>7 101.1371 + Hg71)(0;J#tlQl]e\`#@i[Uj'f?,;9".?BUJk(`78h.IjuTY7<U*NT/(SD_qcd'#_J(W!mA 101.1372 + 4l2:fA"4f[ogCMdol_7?]URl.\-VZnsPC6s3QbRm*l)2#h=FG3-<]=t74`73C#j)VuV(oP7 101.1373 + $r<3<i"#1nQ`PaD-;@s\6C_9[O8fB)j[]P>$f-Dk[Cju_MiRGNL^3+V/thpsr7Bihg!.g4K 101.1374 + S`T<"fGih)KA,-00Ag^W#;/dn,(.4*clG^)pAbh'iMWF$Q;O59YAK;Rm#aAah,]ohrR7P?3 101.1375 + MNo,!6@&XC^e:Uhi49u)2QKE;/ZU.iVR',D)O1J_>WAUmYqe;UYDm@F7anb^HXf:&Uq&!BG 101.1376 + j\t"laq&Q%eI-^=^nS$DgVcl2WfiKCmJ]C`)qHCk`1'&h.\d$_+^Yk.W+b?+"hEN#+m9h6! 101.1377 + C!nM%nbg3R\6s7mAcpq*r9PFm>"0Sa?<1CYO%2`n@hsRu_XJ-G/Pe^\@^TMXBni-Oc:1&RQ 101.1378 + 9m>s*ReG&gnEeKl$85kqI.-'u6t/\"@7nGqGhF7X^m6T]h!M20#0QCia6K"kYd5LsG[GO,2 101.1379 + OrK;<l^UO:E?k`]2%dX0WfEhOa#s*<M-3lg,hXUXKasBh;ILs@5MaugS6k2JF0%_:?cPlp9 101.1380 + :m@N1#Z+aD6n9OUhA7Z_6OZUdpJp3,QB"LT^&VRf8jOS=6hk2D?b;#A0a6H!dRsQ!1eW[f2 101.1381 + CB;S%0@`#[t/(U#/rR,(.c@VJqU!/6%TlO)<-d)-OHH9=L:Sia]B2H[I9\qZO$rmoIXfgH\ 101.1382 + sfP6k.S=C([=-&\#>&P&aAFjVW%C.1cWX;!O1*r9Zm2P7_>HH\hlg,tU*O-=kUlMC;Y&\-T 101.1383 + *+,.sP4O:!U3,!Q6jd1'`+2DQ!J-S/-eZ^-aG`PLI5#ULo%4><FA&bt:/%Y8g>o+Vp5E_?b 101.1384 + X7([oGl8FN?<=$b-AjF:b:!IfA(ron9+EM@AbemR/+IoC#%*D1m#qn;O<9p*7N_Z\Og=2r) 101.1385 + !0hQEHTC=cU.KI,H.',2'_N$)b\XeU;r!GF''p/X:^`tMi'Irh+[M[32'f*&?P-dX0;FXjH 101.1386 + K;Iq&l9`B727&A8Skpfan85.<9Kf/Wg?W[@&<%70k:sCHIGK*aCiXD;.K9i;t;"Ib+/Q8;c 101.1387 + L_48#]6S*=+7e_E&5%3CBfFCmWM;X&6g$9,caj("IC<ea[KYC71'O;0K4Hg0%:R4_q0b[0T 101.1388 + \lgq0Pk*j.BND:>o4\S:_%W%tl^b7Q*R//5Okmn(U?MT5V@=aM0t1c8D)$"Q:9PE$C2Tplo 101.1389 + %)Tp8]O>O>(1f:GX_&08\KFE63HRrU+/EBol!0S'Y>Q>s*BhXhigKT#DC+Fnj[O!A'=e^#R 101.1390 + Nt"m8Q-F/MRujX#`;?I>rXC:Z@pu&/8Z*4c2Fc-h,6q3l!Yd%*%-t`M?qJucpMc:K>L?L?& 101.1391 + U(R(V.<:CRRp,*n@ha(g0VD]IW*VX[qd>e>4Q3KmKHZ>EX(Nl7Bp,Oh@!$//XtPIRYr56Ne 101.1392 + =f5>hr"YChVKJ\:s3-&L$b%6p;h0(mbFgOm.a8m+\f(W&ir9:0VXOaeMd.SWqoFHuZjn0GP 101.1393 + AWiuEW3EY0h:Wtub@EbB>.'JL`9_'YAYR/ZM36ct4G#86WHKPl3)BCVDSfScdL:Jj>26LQ] 101.1394 + 39[H@<0KI:WL@l/L(^b>G=jE0L2O;!fZ"+;E.9Z'P><I5OCK>Z+RMPj4<HFe+.59.;QA^m< 101.1395 + 23!LJm!osL6YUWWQ0r&ZEB$R?@73=X1BfG%=EMF2&T!-ZXs"lJ@>bF$@6_i\j+jFr*=VmdX 101.1396 + ,;(G<@@)[eT,<+M>dXd=RcH&m<,^X<Gp1k'4D*)LeJ/ffd0^%S_7*1V7'^b4'HD)l--MPE1 101.1397 + F,]3*Lp^lo%EGWK/'h["41Li,Dr`gfZnSHVEui_I^*n(?&JI&FJ[U[Gn,8=uRIc*X_XVA0J 101.1398 + \b#D[9ogTsj$$'7SdQISlW7nHCj^oqnZD6>&'9`En,fKamFV\c9*+rSm0_!o(BRqI[>CZ^p 101.1399 + V!Efs?28nAr<s1gd?,nck6SCe/4Vj0;/S367IfiU@<1h\>(/)5XB^-RA@o+eCep>hKi^sTX 101.1400 + ohr"eH$jZc,cVb5%C:X(D@5]X[)I&P5sI4!IH`.eQI9)!<\fMq;#q3B'JZUQaCfBe&H$J^E 101.1401 + *;0j7uJS.A&gHg-qRTdKI,G/95_$ge9_nIo0$7pE8N,.I1uMDWX$`[D`&Go9=)ue*1b`rdY 101.1402 + BMNa7Oi1]CuV1agjn$\iG)Sd]Lpt2PH`3A.",'AS`H05U<S*fe79\[IV?#do=4Qq&_<Tp2r 101.1403 + =>,<f7?HBZ,,ToYlDT9o./01rF_!?D&KHhP(362CPC:\P!=\RiANQVj?LSXk_@%iEe$*!$' 101.1404 + 3!\?<J5Wee)3(UhgWrQ*(&tped$j;CPmhRGJM4=sH"7e^I%RB9?5=o+qbKd^*Qba9d5E$+= 101.1405 + 8=.)iNk`2G3E+eLg3C6NX0=;/P,Ke!W(A3FI]R4+_,1`@3i`7N+rGDE#c%fn,SNHonMk#DV 101.1406 + P>6M4=NUbAAJ:O6<K+3_ph"ej$?'_6M`9m&MCHF/@dfj];&1_@rj?@?+p^!%bW"[.=2)Q.7 101.1407 + 4+=JeU=*+KZg6-c>6^KK)jt$Sqt==@=Z$4gZK"r%/4c7@l=F_mDs&M*8_\<CCXmWa%.t/2' 101.1408 + DU0L94([feKKRclua1T+IW$G1*a3)IRsV&pf^"4UF4"ATL.%E5D37C]CNb[!<2[mWm^7*)1 101.1409 + B\`-#)=iN"&&j/c$9M7hTO?%rS]2?=)A7NKH:Hu(8[-RWYi<VNV?+@gX6dWrB81d=O#m^:% 101.1410 + #/WGkR-bi[GfKYcJ1Pq*e+puT&B8+I7M4Ot,]uW4ILpm;\0QD,g57s7E2JGp'm$`(9MNRo% 101.1411 + S!N8`k-3#9Jeb4$qB;eQn&u*XB,N=N_!R0[t&&1EiX_4Op0'n5id5X]RYj7Hm1[#]jrP4oU 101.1412 + /:<s$uk(2.0,"bah>PABF&V6u7F2e5V8"qmXJqPOt;09SWo71;2H[73aJ*QmYLnP/Ed&b"0 101.1413 + lI#Z=5*X["!>%rc5K9U*JsQ,(>D^sn^Co@D(&[S(;a8[-1V=M7+:l\`<6#m@i53Y]^ufunI 101.1414 + ?bE.XuFGWF)1;T2bL1J4bE(hM'gkD9=9CU+CFKPr&),-uLbe,1D*+_c)KM:A'8(>US%+,K* 101.1415 + \3#'m.7BfPo-TMS0oo_,YT!QtP\;*PBh]Po9E9uE'Ac?6hoK5P"o;_[:pUNtgC.hXba9_P9 101.1416 + BO&ibt%sM$?VT)bg9*9l;":j9dms)^q7Y)?\p>-Lr:2<,bn(tffNEl::%f4d#(QIVp$\ia4 101.1417 + thjiMH_\qE@%6$qkpJFHJSV28te5c>0<%;lNS*oM1qRcohL=I-_8,LJ1,A:jO)d,h1+aQHo 101.1418 + q1Jnml4TiNSpJM94W`f0N99;PE\JiPV^c.r%cN.rF)>!+KiSD`K4>nII[L]Bj_2C"[oFWEq 101.1419 + '!#2g(M!Z:T]`V-&,#ThU:g$'2r,5$?JNs8;aB^#KjUqh2S3ncubTdJ.o'*pMIMbU7;Yut: 101.1420 + jQ4gGW.st$2BeqIkZ:6E*g@rnLtt"\XWc.>3`Du8;F*QHM".?imYN+RbIRr,Kf_/7.>Ra-/ 101.1421 + *)Q'N;(GVL'@s\!Q@S6D+R\DWl-;f.^62Y]UjjOIT()U$&(ChrD?F_4B35_e.kn<D*lQ[7# 101.1422 + I6e"#X1\NEFN2`^mJ)c2/&,$=uiC</Hu4ebH6I%:N0hDb0Os<To[t%:iLEd8_c1#h;mTHPk 101.1423 + :;h$qM-<G8>2,=+nW`)X1?L"1,C/TD(G4'%H2;s42^eTD+>G"JN?f.`1b<HqT8L/rGC#T[U 101.1424 + 1])5U&EYN7B#Ljead%o7B-n$&mdc?h6qAhs#<`dY60(>$UoncdeXB0h*#T\1m]o>F6HWSaF 101.1425 + f\5+^j>,?`%9O1;=<s892(^MqKLq?ULW'PP!1(U&%F:\4=Z&sR3Jjq^R0`bMg$PFtoo@Y;O 101.1426 + 4jrPfb$]rF_jt"_ceoA5!2i!%-#pINEQ4X>.a@Z*I:m@X=ISP/)3t@bV[DCKA,_!63XAk]r 101.1427 + P@#[QA?.=.QKuC7JK+.lgV"&7oc<=@EEb70F038EIV@otXfQ_-AS-gc`MZ5\:6dAhTNtLJ> 101.1428 + Zk:!$Y"b$7BVLCe_9&?#f#FbZI0gmuVo%FA>sHjASW$@lH<#[Z<bem0$AKFgf]J4p<;:^3: 101.1429 + `?%(L6Fi4H&D,XQ9>M[$Le^<3t_1j(Q"sBiLJ:%TUia-K\>fFqpIEl*jiER,IL$N#K9nuqY 101.1430 + \R+T`gO4<NNUJRFe(NHH=6Z6CeLXGV/\$$;K[:<]W(I&lq-TuohlZf`^&;<Gra3qL"Sc\ap 101.1431 + o"D$Fp>AS?p4JH7K24>rJ!RY#!f*j?u1O/"^nJ;?sX7KW-F*=G`%#;L+kpO[LD*.&HVB"Ja 101.1432 + fXj?rhkk&RfPi?e@1=eCP%epYUuIi>rtH:e6=S8;_q;LQHN7Fr]JSs'U!U$@W:hVBTB=%tk 101.1433 + tig!R$,iZhi.ceddRik''b!Sl\.cX.G=.$_@[2>&`d'[>roiN=>6:(,ta!=F8W?oB=j*][T 101.1434 + 1,@HN<j&S2!^('#aVrDSVA,Z5^2A?La'k(]6j9>NkNZ!_/1h8d?@)a5GkbmD=+QRu>A#9Lk 101.1435 + [O#FL-K9:Kbs9/Ni-0q6;$Nsr?r/lg!'4[>;$N\9L7lYC&93F>qW3fI%/qjeYX=.16f7BUL 101.1436 + U(iTAm^=!s(0hMLr_1PTIsXg<97FbATh/ap+'VOC,EXV$:[m(-<"JF<FocUAWBpTY$'l+$] 101.1437 + E#7AbKL<DIMZ[?=lZ<AnGrCITML-04q5/gAGbQIAOD)Q+&hdjDI*D%KBpM!T5S'jL+gDXs@ 101.1438 + MkKP2,!j5(;T#(u+L6"*M'kair.:oWX_N+'FkiV"C-mXXLtVd`CEAF!<'d&#RV=(Fd1%%^^ 101.1439 + [k$`tZDhZ2CMr'hZFiB)Hs(S-2$#ZABp77#bM<7>]B#r*VRg'"gB*=kfL&(7RL8X<sWbS-+ 101.1440 + C6kr9Y,m="C5!e0lFsB9%^9^iXQojqLF?VhJ9(sgF)*,-CG*,4I]<VAGZH5jL1kZ5DRXE<\ 101.1441 + Ei:W#Io2;^.iD:_JAS@KNMdg=K1RtVee9%CbD`&k-#,R4bae:m"W`"NU,n2[VUIh#*;S<?> 101.1442 + GChQ>(McN0]uiesYd*Ru>kIMe8OEm[EDFRd(X-C*n\mY+o_sd7p&69rT?\^jCq5C2PBY"%M 101.1443 + ;<7cWo3k&+MgDF)I5Gc-9mAI!tQmV_-(cKoH*l_o>_$@qIJ7dKLam;F?67=]4@=@rf.o5AO 101.1444 + ;ms&RT&93Sp3.m$&mrn,;L?jnT@#B!ELXuBB%fL92*!_TmB>fVR7Aa$gH<sEm#C(V,T*XqA 101.1445 + $#m'TE5)_KcO4^=I#$`_ML#_ek6u=e&of!,E7Y\WfRAV.W,UsJnNRZV7i?<-$Ab40$;SAA^ 101.1446 + DLtJ)=cX/LQHoQ0W>;EI0ZAdE^(W7d!CJukmEIVE^q$gL!nd:Vhg.XnqSc:89aT*((,O-E2 101.1447 + Dc+<g5G\PmOm4B4+*fTSmF-Q>.8YA[ZSi\;tKO[r\4MA)70%BU.^ss(HqAD,/W8`W]rkaD+ 101.1448 + WWj=ZR'(6&Zf7,s;Z@s3KAcA(R+VWg$2BQ+=Mn>?Ae?j!T%iPpc9-B%N1N8^(^hhP"defJK 101.1449 + W3+J%%"dglY&BpGT:CG3!hqhja:l=jUhXb^-o7d#%Y`JC[[WWdno>U\"d$8\7LZ%=M@).\B 101.1450 + %mfALa60E-E%'k&a)(J%!VY,_p?-@<%rc_7DMB9C#B6U^+EM`SEH_A+GAh_M@)6mIVf,(KG 101.1451 + JA@ra)KT@?j`:(#&ep7%t+-h>QWh95-V"3:gSA_Gk`Y0+^Vc<fPlV\L3TnWG3E+`W-*&Bo& 101.1452 + >Z#fbuP`<dn4iHXb$+@)k"/^G:YKF5Pk\&9hUl=."n@<bFo$l'>^ap/VI^R-G.Zl"<?+8gM 101.1453 + Sa9QWd&@uj'9O&Y)Q7uDIKqHb.`TVch?9OpXf$?&[]pS6c8:l:=/HEKd7:.B@rXl1%VoS6K 101.1454 + +(K^9fASi9Nq/-+VGm=)3Wr&HhH*.&;+HL/@rV>**q<lu4rSEKgCCku3Ge]"2:ORFGF:*M? 101.1455 + GdkY>7r7peW->_mI)!aVa*r7%-MRhiI"uZc2hVO!Kma3PpO@u0c\_TZbkGb/pt7t&6r;IJo 101.1456 + tsgZ_e5.eB9V6IPdEB7M5Rrrs5<N]Ef8ORhr^O:s.<Z\Du9RoLtCJ?StgT>A(KC\HN0pNYH 101.1457 + \Fam,MCPok3^Na/KDQWdbKfG&XAUcgtZW'BlklHNo$"fV`EGZJ`L(qKGL'G?B!M$?`(f#Qt 101.1458 + &0"+igHd!.r*&f""B@?B\h.O>ac7:OYh`(hBnLrNrPki=uZ+-K(HNjba;E8OnhV/(nrSZ*N 101.1459 + ^aC9'(bJlkR=r/Hjq?.7#6NBtse7K^JK1i(?C!\c-:#lBWXt#]OX^8D<Y#[('])>Wb`-5/= 101.1460 + .V1E)_/$4./2m@:_;P3s64ZS`c+<Rb^0AN"('W8'9d[2bG73gY\6N_*TckPAo+.&'f22g.p 101.1461 + ,WQ>E4th0N<Qk-[<6)gg3l@1jRAr1:E''3qdfZZ5;pj$`oh19g-9aVm8!t@"s.c,TE/sYLW 101.1462 + eh$H//CS8#=]"FaDkma(Mg7iQ`fL?N=(1`^0>]hLA%mJ"1KJkh>XKAj[*t;\8;K4GW58FhO 101.1463 + >ZHhql^l,l?iOQ[YGn=f&N'aCI18k+Y!aa#@KP-BTh8u;"a%1"(jPRR]/"qej`2(@InLQ7) 101.1464 + hk_hl>U)t'nd./\*+\*F2EKiql7$,CLEO8ddLO$DZNA<TNU:"o=R3p&(I%_t2;Oj^9b0mki 101.1465 + (mH2$67is^e?L^O;]7Crbg&271qle-p7T>W%,-BM0E_7S]BL"="@:/8&I;1ZFR9E%d)7LFc 101.1466 + DW:2&3ga=%h_:T6r=[fO`X_CVm2cn)UgFREui<)%"BD@E[st[Pd3g[UmQ3L=]X)'I:67/<J 101.1467 + +@P4q3E^g:$ClE8A"*rFXM<U#V0oKshGQAD(!hR:b.'I@0Ii%i`]*>1U9Tp/]FjYmdE`!F2 101.1468 + K>LI%;pV$NMrLSa4'A<>SYAG$2VE:!=FhGB(?GL-#p6Vh$T]fgf$Z/\Pt,Vd-TK]*^EK1oV 101.1469 + HFSLL<GS@tW[1YIJ<(V8Q3KE.Pr]uY,<ck`%4>QQFOl]_FbQlB+<P(Q02[.0@>fiE\FJ60I 101.1470 + -$Hp[IH,alQf[UjT\%bQHXG8j*J!B'(7*!KcOLP@7lY(t9k!nLN.U&8H68&%oefTHAU?Vg[ 101.1471 + -_(&Z!,7,\piPGXke8/[ak7d[NP8aMWJb\rrKq)>TX8T>#9@@_XUOC[C=nN^;#$41Q!p)Uf 101.1472 + jE<(Xc/q-)m\FU'VbcRbBEj,Z-m=KVi"CF+:*%m2UaXFGn&dY..eNL7oUX+0+Xf$7@jnYJL 101.1473 + st4?\Q0GPM\30o[ej?_Q][?D"4^WL5<L0DaP[d?`nR>I2DH4^m?5El`_aKm:D7?A\E4DaC& 101.1474 + k*Vr0_o[L+UgE?H"/^QfiU#h@pAkuR?Jp.]1h%4ee"^UX4F@7;2-\mLE+'B,),RNQV;c;9] 101.1475 + 94iO4ILng_7$JX1mVW/m\LXBKh+-252N%UP\&2CSTc>qEd,#a0Pd'u0$]0X8r4tAF9]OFA3 101.1476 + bX%D:I*>Z[tnheJd;)W+il(.889#aD01IsneDZ8W[N`n"t6Ej'[MUM<\mOR)%_R:q\5G8Ma 101.1477 + SHeZbd4lc?mf-/8cS#R.VN\jF'ZMD="Qqr?02QhDM:/n/]#tKHa#K,;Cr33Pl:08ISrKc`T 101.1478 + &mQ0(K0Ta-L<H8-*>_LS'=."#]1dmf$E)PA?MNMKlUO>u5m)B;j?&9.A0km9!(jLoN:PiKW 101.1479 + $8I@uRFDe=mh`$p3EM8kNQd\-39c9bbU>ZW<dnX7<.>&3BgB`rL&5&'uaF,(C"c1HM3=n0[ 101.1480 + rhZ[eJ^S@g5e&Ha-\PQl`X,-J'h87e+X*Fug%pe0-;,A(>^dq*$BWs7FJH,/NtYuY;&U`Ke 101.1481 + k=Y+mqR_QaUD&-60Of^as3UDFu(Qn-)@<!PYO0r3CkFY81U]D:a?>6=$3"EWV2gsWa>5Rd8 101.1482 + #uaiR1MT90SLar#:jrT$%H!5fnT972-_kd#]bEcA]7mo'21aR^H2B4MWi'E0![aN3=Qr0Q9 101.1483 + k0UVf^7>3fa:XiE8FO0S*m`V=MWQ.ig-;7\>pHod`sI/'N&5)%@)@\=C=JKfou5O;@M+I&j 101.1484 + Q:]qR4/=@3P;HTdEpubCEA6aO:/uVOtNrR5gLjsH5#86o#AuKFaU%S-3>8q-iaIO(l9VU6. 101.1485 + H8\X!m=IhaI.2p]H6:_oJKO@qK%SM"@S,sF6h[7)cME/fY++^6KSmuL9<2TZl&N*s-I>Z1+ 101.1486 + P8/dV5CMXkRsUmC<Ug$276oKh](ZpC@Of]9uP^c1N_I3I*/P^1:59kkCE%K"i/b2[9*7m=; 101.1487 + #u`75XO)OJ\NO?V?Nfo^8^.;?Z0ONSLfu;Hm*/6[#^TU9^Ya2oXMl)XK:u6.)g=T8Q]oLog 101.1488 + DYc_Vj3M!jm(7QnfErYjO#+)Wh9dC3[&hPE=S6bo@Q!gaUPiB/VT88]4Y`'120`X-3/mN0# 101.1489 + b7&S_9>s6E_.C"-'$'G^(.q"Ho`c%*#@q^p`'e)P'V(([I"!grA=cLM5s$.-"l?i#/+#irY 101.1490 + ],SriE$ec,RB%DpkoD(GoVRm0==Z^CA?05bE=-_IFjF&]/HT9b<6Ns9&':l]Ao-TRb_A1"5 101.1491 + eBaWnN!%"cn3N!_LZJsD6MCAs'TXX>EFYY7+b53,Cg2dVXB15amM4MC&),7E7"X7D.]a&I8 101.1492 + ,MTIO<7MF"gP[>A!P2B%AqLL[.*"C3@8S<!]g9'DpQ^mt9!57>!ejIJ$rh)+D:/UAV('aaY 101.1493 + X4N5,3N!9jse_Y@aQiRPD2Ds[mro+fKci)K/MU(_R;[EdTUI#;D@=.BV9'm)Nu0XUXEapY3 101.1494 + *`?[YXQX+i5p%K!Zgu"V>Tcu9\Lk6J\$_I\J:,U!T3FgekAYjE*,XA:;$Qq9"ocBnaHD(P& 101.1495 + HtMNnm]G&R2)E3Q/u<Gja1+ZA,3'Nh&oHI@X\CkkeKedk'`M@3cOV`]gWZI+LSqiWiJd!Vr 101.1496 + a'Ni!Pc_#@c1>V7;u<7=pd-%n-`>j%,iX@laVij68-CTT/GcP:D*)D9dt+![&:^@l($67L? 101.1497 + 0fsXZ$0Y`2"1Um[ML#4,F%4V$C7:?WK\q^N/Ys]V+jONQlk6`VA=4j=H=QbS(M]_\c1u;Vt 101.1498 + =a&``*LG>$jY0$$A-M%/9/QeVDcJ*q9RfBsWamsG&`;gZ>LhQANG(%(V`J"tTa?4`'?BNHq 101.1499 + `-"_*L(auR-rhX'1JQ`A363k>%#LE[$78X)I*_Gf_rr\u\0>;,^D!nC5,)?_lWBq`,-u+SY 101.1500 + `QlE4/D*^S85k)ZTWV2rNQCu@S:!]@gMGCDUJh"V0).i!a,hGLOF%5ZIQ283OX%%2Y@\tKm 101.1501 + e&7j,&fM(/$^::5U8mbj8p[pd$u5_R-X6E"n#.jY[GV-mfm^V$a/4^!_E9d;X[,OrZ\NEE. 101.1502 + JJ<<rVPQ,-UWmMTW][rkK$_^eil[cjKj6_Z;G-%u0`Xd0C6#SH;XK3QF6L0VffPhX&W0,%o 101.1503 + KUYpR'P.g0h"JRf2&L_b+EN$*gE&[4\3OLG$]fL5)Yj3POMU+do__$4QgP9U59+9;2!%i5h 101.1504 + !(Jj?&6aIAX/J6AR"Mu)j7l(eB?P::bQ,t<\;)I+E.hdriNY.lsk&=ctM%jP7Bop@LmopMZ 101.1505 + 0,7qf#3FJ`&Ra=lAJt#M0!NY"k7nG8Wsu=W^qlNY_;Z2<<ZLYu+#38?&E;/5$s+m8nEgj,% 101.1506 + Lb3IW#74a+\naR1)`aR!'(Vb*^lD,ck-:Q.NL9"(/d%"&iu)Y$R0UX>9c,M"0ee#h&<"YLs 101.1507 + Me=1018+Ba\g_ioTnT62peBh'T>C'r%0D_HPKP\0DJiC$@ne&ST3W*=$UQ4Q/+8+Z'O7@L@ 101.1508 + .J.Pd\H;QD:gCDX9M]'e@'&1hHIV^6p,-aCVg&nNEs:a!&]C%?<mEQ0Bsa!^CO-na_jCW[$ 101.1509 + HXSn+EQS?j61#<]Yj!sA,%:Ia*U>6ocjWpu/+3*IdBNkG?mPP+)H,8G_nFHW8,qpRM,-_.m 101.1510 + m3s:doeZ1q1dWK#1&a5qhREj66HT3OkT__^%5lKpln[WEKu!&n;!u1)@0OImkc.IR=M$>2- 101.1511 + j#kr15[IMh$#T[.rgk[%H@.<Nj[<!1h3NqTn!WZOZHs<1c)I"K<ZpO[5A:VPi4,MJiu)f/N 101.1512 + iKI-ZRKJdr$P>EZe;(82GPnUbYcqN4AH54^sa@0%0W+QTd]?W^T5he!qfufe8?O1+i"ae%/ 101.1513 + X:1*%N66:2"bU5_Kj2+%MI0QRRSZOSjPTN;dBKi%(indR?!?SZ[Pi=PY?<#dr_2C)-$d^-B 101.1514 + ;oP$bC75Ug9s3tpt;/6s>GW7L[3qN):!_Z#4Mb+"H47mYN'TuZ7&63Q<6#QPFb_cpqXuQ%r 101.1515 + .?kr7oWA^V'2-;A9=1i6Pfaj8cU[$@4d7Bh6Am'sAOBB&0Z\/S_O3->p>Bj&7q5=M9Qr7FS 101.1516 + K\UK8]-la!Zsm14@q:m;)JS41ib`F\P`G1;G-9cFVnX'I6(@Z1t74@'f7'jO&ORq,P79aoH 101.1517 + 4ch:(('"*u.jV7A3<YX"Vp%.C:6mni@3dThOF*3:nK[U6er6O&n2'9soaXF<jHMfI4*T)AS 101.1518 + Q<Zo:`nD,-gkd.81de4_^a:`P?e>=3U'7f,W^=u0.c+ghe@,E<n_HX.A'9ORZjiY,SuHV>Y 101.1519 + g9@]=H!eFE1i]Yf6&X;0I,?-9qH!NdA?WD\%<Jb,#8R@W8'31,BoY"=YfHSeR?1n=Jp(TR< 101.1520 + 5U&Qs?kPL[oke-t3%,P"6<5K_eic?#+=$J*@pm\oZ9)RT_d!E!;8]OoDPRNgD?)S8!HrW+G 101.1521 + 'dgITi2[*BB%07P_j'_$Y's5BgMu&K;hjZnK-Xi$214r[]1alI;9Ua=`n(D9_SHb)D'I';* 101.1522 + p=1Jsg&!N$<ESD,qTJj3^pQO'[NK=k#N.P7^1aQVR0E:K3d$<<G#mZmZ[-!k$*1"-61LnSM 101.1523 + 9k=a&,!eT`:gl#E$@EE29J<$?9>LK;rZD0Ei?[InTNh."qC;.9KE"I!^JX)ik!?C*lqdP`= 101.1524 + /=*9+U?(s#Q(GB1JB5e&<An.8g@n%6,X`sgZGXYJN2f`&%K6Y7cBX<J>2cFuZ4_^[[(tYWp 101.1525 + "!@Y6:^7fCH0(0(NqZ.h^Ik5mH-#SYj'-Wb4a$mfES!TA_@e_Kl#Xe,?/rJ(<QnKEjt63g0 101.1526 + e%l#.`NQ3s&uTB1=@COpU2=@"`T*d=EimMTsK=%C]G.u@$al5@gR#fQm,Vs.(/`!_6P3$=' 101.1527 + ajI6BQ2==4LEi$ZZ=UI:=XQ@MN5a.:)=hK==GQ(%lW8O'bs8+P8&NpI6?O4+os-I,YBcFKd 101.1528 + X4(a3"327Rd[\/g<kO_lA-<nN-L<$>QA,Dm<H=a,$H($H,e^&n)IF5`mQR']mqOc7.5H#m\ 101.1529 + F\:'>p@sT^Z1QHts5Y[9j4qp!JNTFMoYgn*ifk_JDNQHU*6B?l<5COf;K=I\)U+q&(fh:A7 101.1530 + OZ(U9o]9tUTl.r,1sZPZUMYMV4s*l.dC$ZK@Qf8U4']6hK)ubYfbPc4hdBF+,%F\u!\K'M> 101.1531 + F)^[OCAYc)-qraFs@k<6Bni%(hnkYs&aQ&8[hW=3Kt_3,8U*E,9e_.'f$oa>>(4ZPbi#NJs 101.1532 + m[i^(Iom=P%"1i&R=\[T3+MSH:*sDq8+e4(2/\.($[G+tmIm:S'fPAAM&Q!\\"_dpn#7F<W 101.1533 + /B1bj#/*G"k/4SW)&H1.@cpRel]?hR!_,*/H:'qa"SATh5d(13VGIuY_)*]cb(qFbGYI:jZ 101.1534 + )S=3=r>$Ic_`K.>%O7D1j,(H,Lm@N#ZT,K4j[U#Rb@<S(sU6\n=\hBuae"8MpTt)tW[;I1u 101.1535 + >4>X@VYM&Wg&%G91fY:`R,X`f!l9@emkIl6s-EC_f)'u?"f:2jPjnpB3?+_Sh3NAS25<m83 101.1536 + ?a.EH^`Z*Qi\\P>.,Wc$7OR;+GE[Z3L?pY#F63$=/%@6ifAkH"gK82Km@N@'nK'TWNK\pOl 101.1537 + D@lUTBoY)OgNN+PF=N+mlYU9F4p$.Y%c$jH9lI?aN5?SQfPGRG0sfRPf>(EB&Z;@M=/Mafr 101.1538 + AE.,kK@=3\4K&X%?JTOY<^]74ucJg.gtFdo$HpM5B8T68n%KGm0$_fcgm^'f;*GX)qMUYH" 101.1539 + lcauTKVC/#N!C.Wh0H>GuCB<-<S'-t`$!DVu\s]]m3$DCNp,]S<FgU'N]EOW@Z^:OIW&tfs 101.1540 + \]M/X!EYaLF*f5_g:AfG^QVVa:?ola:(NSYdNI8p3d=lIRgpmsO+a6e9A'KbJh=i)!PZ)K< 101.1541 + >h;ues!We!MUbf_-7$bHuI%dq';A;&Y'rWi\SW#A35-%4@@6/!XH)a&3&R#b!:g+J-jBQm9 101.1542 + m^qb?V$iS@cu"^W[\8bZr34SBK.3ccmHYc!8lFSD2<Dhp*5%c<TPXSCtc1s0d:'[a@oS@om 101.1543 + \/'ukh)?C!%NGa]R2JdJuKLnON&q`C-Eo1ZZ]+IaDppg,YA@oGN,LE)C:pJ\:2PIHl,+ItB 101.1544 + Gp!=o=5Cu$b+PfR:r>i+eV'EO3MUg+4*DOYRVn7Nl)I7Lp*I7_aJ'/R_!e#jL]o1P!O4bP; 101.1545 + fj0rtSX\<gOq?HD+PYJARMjK.&^a^OLtu:d_A.<dA%:LtemWpVTmAeYlYN:GR^RpkJr1d9c 101.1546 + nL*_g=_T_]`FR2$aM!]a5VZe_S*hn\!(b%+?VSN[.gZO=#0OY`#M0+>YE&Ffr"m'QBF2Hp= 101.1547 + (6E/\:Ytdf$a&S`cV.K0+MEWa6km(Et7@\)c99iVd-FFsDilj2it(,[3XL4J!YR\*!bgk?P 101.1548 + @s*^SuGJ*7r+k['&.Sr;ghO6I^K25(QFJdp$f[Eij*=a4Z/Jg\p>&"5f5R[u;0HLp!X`R#e 101.1549 + \QpV2H+siW4_f37^+J,q*F=XO8g#TlW.)*mj*p"0o]pfWj74)%s_;677hs\D<*eEr)SSfR= 101.1550 + 6UCeonN^USSsAj'+7^Kunm<d8T.BH^;NO5!01rE64fdsQTC1S"+PkYZ>`'`:lT.5f3rEp"h 101.1551 + $(PUKHiH\`?L6*r^X:=4B3J->l-!.]^OaG/Uo\E6i8^S'LXmc"?1YJEH_<>>LEu^Hk$.4'g 101.1552 + /Jl@*09.bJ\lpdJc_R5I_k!%HIR<668A@!1VNr9AS/tkuWf)T=r7Ye`9%#j?L',hr4R,dDd 101.1553 + 5::?"Y'S$hCq!9/PR+G,t7!YG`m6K+$YF?Ui[M+$?c=L;Bh)3%,GOkB;T5p;@]i^e>Nr_Y+ 101.1554 + $b2MdqFJ`J$R7ub,=g[%*3Lrq.PM,U-JO,u+k`f5\eUVcLV#n$8D).)JWDB!@=CO%j;j]<* 101.1555 + OMsA3I(cdP.u\bT4_8?#\8@>IKt`1>Ct7i/WZ43BAZo2`[O(=(\M_&elfrg+NYc95_l,OsA 101.1556 + bteVa\RX@&WJiA>$7/sH//+C6(u\>o>(;]0UJc-]Ch#OE:708fh")k?+/X1\_V/tS)*^E[D 101.1557 + A7[G`_V@+%aT9EopG\"qDB%_r'uD)5fNFNeQOSPFHnck_tt]&XMa9pTZK?4?NO5It,'jo_L 101.1558 + ;+f2(6?B`1tkB""WB!LF?#"TZ7j1_02Pj2;_-+4,$)#XTp"-ON2%N#[=4nC!186`=Bs&4:F 101.1559 + O7hS4p1esT*Dj0IX77iU:(a4KIB!T*d=rQYF@VQu%%uK(I'ZH%?JJ:09'TF(bni?^o8+KlR 101.1560 + -bba;:3`BYM_M"W`#4M"aKkHQ0MEr7fPnZ'@X;W\,)k(Uc)oo03"49#k;lAE[-p+Q1Xu._: 101.1561 + UB]n5Ys9P#=;7o2%N)P1fY>X(A)WXQ&R5-?SPHc[4b.O$<4?,!johO9iNc#TZK@<>f`O2Ns 101.1562 + oo\53GQWYG$i4RcRS*rChoF$11]G]T3u8L0$t.G_K5I7:`&nLeWk)[#D%=::!XURqc-8Z^0 101.1563 + &@m6ajES!NQsDunQ(GR`H8A^>I(2c\IQ?+4t6G[4kAk2EhKF,j\_pX5sD=77_9[T+hpHFft 101.1564 + tl=jfQ(1`=D+d''-"JKh`K%j^R7Lt,D0jLTS^T[P;!Pip85DZ#;=RcU3n:W3<jgfIb#X]IK 101.1565 + ispj+r'Qn83S&D&@gPnXPXp`')'5^0!b\4#cJi]9V)W3+LU6hn93Z,o;Mc8\BpPiRlPPqpS 101.1566 + *F^BZ6mYuXKPCB;W`85D7S41Kk0HlostnXYcGD:qpJ"_DnC2m^i2"S,>"IH(D"GT[+)=Xe( 101.1567 + dQ)r='Td.(a8N7_Og/3tbK5\+(N?);,?2M9>l=a$hCt.K7H0W"sk#Bm%+UB)(+=fU%hp`YW 101.1568 + hZp;n.7i-(\.LZ0Xu+\LcT*\I,kFM0^O<dGBV'oC-%dM8VC/rKJTUicu$9'fn#1n`m^%RC0 101.1569 + lDGEfYDFtm'#sro\k^@%JmUc&>3Nd68s$-,TB2'EJ0rI(J#7F"KK_4I>QQf0D'Alc'%KrXD 101.1570 + Cp"%9_C'3:M^rq$!LOL2@#'TC_(ob1Q!,SPmP2*qfDu@gEA;>6-2/3agC6Qh2[;%tNr_4br 101.1571 + ZQYRL^AdP&E]`!@Pbq:@oQ<[0lRuhA57ub$-f7^<<=AF6%k>YhS@W/XeM7X@o7Xu7OYS3h0 101.1572 + RI)E?6u"[sUN%9=Q`%hDkqAkRsYp"cie4$q@c&+&*]pGq8#A,'V'Bd;36MY=5Lgp>Hemqup 101.1573 + .Q"J?>#9!ZUUBbj=O9Lr5]PbdP4*i%56%cQ2,V'Mq&Z4*JA_A<X'$h-Inc2'@g?A.;0WdeP 101.1574 + 2&3niJ04jZCJ8uPs2:[`ZT'X=WE)!SXpeK>79,E2!/;-THI.bQPMC(,M!)5e,22FZQBp1ZH 101.1575 + :#H%3&MtqR,r%!gaaZBT*&/TL\Blhd\0#@f,+f!G@SaPj5A0LJLh&Cfch[r6<NP2;dXHknB 101.1576 + 2_-moaG]bHA";X&Mb3Z%ZD**#>mE%);K#4T[\Zf`mPM>bp';&e>*u1Z7mRRFX![rp-:9TPt 101.1577 + XmdS>$Z<N(-DrLnoS.S<>mi;9:ae.E%.Aa2V.='[BOOJGhftc<<!Q/q^"u\KOl=Ut*!,0PJ 101.1578 + DBEobZ@OGX6:VUWO2C:U1g\#@pcZ99@baIq,e#knal?UIhP!(X>,eXia#<R.h<fBV-d/.5g 101.1579 + $Yu7ch8XX$$"R'j0Y-(n`j#d;Eni8++@+hd+B5&Ls$^QOi=u_'u>apJTQDW1FLR`!oCSS/` 101.1580 + (8MW\93GX2'=IKC[b.&Fk\89L!#>Kfg\N"2Cb.36`b%']]9m;,3=DY(*,/\4m<(\Ef-0(Xm 101.1581 + 9JDUn>Vfb?PdifdE?SdD;ATAcV0#I,emL'FQU6e/Xb+7d;Ub@i\&b6)-#9qb,U*bA^%RZ96 101.1582 + gbC#YeL;(aZrIl\RT31YO!#p.Z28>m(FmAWma/7P#e93=_01_?;(i+*(8I-KSr*mZd9D-4j 101.1583 + Ah.n,@taY7.m&W6sdN?Lje)\S@Kktcjh`u%5^A$SsmD=ItRoN[*`r$G)PFQ=T*&Lo)?<B?U 101.1584 + U$HieDJ[0(dLkiEG'cD`f"Jc"t^c#iJ=_BTDCJ<4tVJFHhXpYf"dS[?AH]h#4/`EbW;)#FL 101.1585 + 4RKQa_:^%6o$edaX;%(8HMC5Xer$2doU3R06P+-,9V`QH9bTTP!%s-S6A"N#"hdG.[4qt&q 101.1586 + PR'Q[4caFA`;1)ZPaEN)4k6]HXU)DZ-gfFU1"[C^JPY'h]*SPoTd>&G8C)A&p^]t^0N,Z4d 101.1587 + KIfpOMP9^;.Z3"Dl>n+X\$6fd+m*O]T;W*l2;4<To>#!dS&WT'Rf%YBLTA^RnTao4(k3Me% 101.1588 + up^5/riYsa-`E!3jb*+\Bi\\cNmKShfMFX[pS<',&j.#@J/$F\_kNAq6P]hFC=`8p?,?O_4 101.1589 + alsXh#Xg))N!nB50M:F/qe!:@jX38Rc,\QajOe$08V807%j*3(Ll1DbRqCnQ+!JdLA+msZ5 101.1590 + Eb8l'#H8C8>XJ+=;J]UaRYl.ebZN1<S:'%+o>N5PaCcPB[G`iI9#FE402pQZ0V6egie;Q]) 101.1591 + ;>FC>r.M=hb==5fm:iNQ*Rs7!!A@1p$f^f!sD[a*k;lQi1A&G8rn<b4$2n[9&_+(Gmj=?fc 101.1592 + C<4*n%:CM8gPdp$'Pb?8JoZEJ='Uldfl4%RX/BYWkho(eKclfs7F<!k]bm>i$:(4s.gjHsD 101.1593 + @%hi[M0^-9miC;O2u%"9dg%b>1R_dW7_?F4E$qIK$3hK!c68_<"9G9=$eS9`7@^6UP"_WC^ 101.1594 + ]<RB=W475<PqKMA-6Fse%]JDU*bO[7elTZW\4;aJA#_Xj>90c]H'd@$8+\TFVoXf0`^,u8( 101.1595 + MPi-!]">1q.]^3.lYM(RD84j>_*f!-"18iLK,!Y15uO19/.KFS)Ok6u.jNb6ZlP5hb7#oJ( 101.1596 + k@q_q[o*?PE,]tZ-]Md:q+/l#f&h:$3=3_:olno1,4%k&hA#f81)+d#Js#J_H:J<CWo"a*3 101.1597 + pP1$&^#?fS-g[d"k%90d@#9]-oJ21a4`J3WpKQ$i;0$r&T(X4-VldA,_9Ws1$epJ-7&N.(2 101.1598 + ,E1rCge"61gt;@'Oc-'\l]#Q#m\&;@n39#)Y@])cY3WnfmLMEoSE_".OaW<pBJX1Qf]]Au7 101.1599 + HPZbu"K>e.46#jo\KNb9i)9(ZDP8"u:"6N&U@Yulq4P5Q7fU4\fMF2.34V4;GOVioWbE4<m 101.1600 + .)]_RS7d]&D$ZAD6ZA&F)sF"Y4?o?G-1jA?@kWVB4G@m$a$WkF+G<-=WCF[Y2hRM*k`3[c8 101.1601 + ;Rap_JsA#1e,)N$'_eo[Nm7_oM_B.s#->H]=_2_Zb<3rGf[7MVJtG6;Ehp*8r(K:#KT_rTM 101.1602 + W`EP"?L&LHoIm_EPs2Q-"",7MK<'I$oi$ZFkMD!c-*i'MLHDf=ai4Lg/Der0^(I"H"/BPmh 101.1603 + 2cm%"=HSe3L$"Come]@7!GfRlQEX[6%0oW$%6Kh;nTas3(8#dun4a[/ANMbL@J"EP?KRNak 101.1604 + :96@\&S9]VfHDfu9LQH,&BR%_IG_Y^+#I)RfUEd^1CC.AJ9!kZQY_50PT?B&I"686(d;(rd 101.1605 + V_*R+Pl-2"]P+qDL'fHB[\Qp>!LU=.&]K)!`Jh?%<7R_]ND/=q8F4nn4I46Vg56<+badE^e 101.1606 + D6^$fV;][:#Z+FK](,uR`hM=-ZB@lOBs"g>V-4pU(#pS/Er"EcQ15bV6&(:][EXpe$dcUcD 101.1607 + 9sU&s5qRn[M9H:Gh'*`2q9Yp<RcRbed`4"S\ESiQn=S:-+iB,iqd0oM0?X:4aTa/Gm\&lO" 101.1608 + WY2Pc.g(iiG]1sg@MOJ,?6,SO!#$IH'N:`TqLbk+`]\BeFjd/kOeFH+OuK-a?"#68$5Li%j 101.1609 + *'nqHS#;B[c$(ar#)9I:(U_8:*jQ=a8kg;4ZaO0"p*7rTBJ']ubaE1EWbZ9]@PFO32:@o1F 101.1610 + "X98:3!Je2![(Ho,qOWj153e)d\SYH';3_60ul]ndkrtPI3H4;?dR%T6e*+(KO<-DOO;k`; 101.1611 + =+B]r$S$)i_s@q;hZHQo4_*$!C^PI5nMDkF(%jQ0i4Die!VnA?rhkf`W>R-Jb;R`eP32X1= 101.1612 + YAN;ajL4'bF;l;8:pI<AYXnWe46\!`/apU&@m>9GGti\^F#t9aq78'h,&8gla6ZaK8U-4\= 101.1613 + /&:=QsNeeM`H;Ee(QA\[%teobZO%9Z_qNR^I4^-u&LeE,*>!)`C`f"fTNY]PN=4GM+$f0+1 101.1614 + ,9j3D86<1u-e3*-J8C.Q8HB!&of>)dceL3tY=B5lMNpU:T[7j[+K%Mfo<c*K#%;8j?d"D+& 101.1615 + "8EL^fFli%MHHF(fYrf;*Ga<VK\"ZOf&]"poo?Iho2"n=/L>QHh02lDGd&AV<X"Wq'nKCCJ 101.1616 + m"A.fte<R9q8THL0<H5S6OoSrLqpgCbC#m5J<f3OaA_ar?qPEO<$I;;[$;]='7l;fhe5BAU 101.1617 + $u#Q_Wr8g6ejBTuPYHYhM%AMC"hJ6LNP"[>E_4XGEfZFh-8"S(Qi6X^."AI?<!%WE[6eg8s 101.1618 + Gg>X,OT)G"Ok:;oS(m-ZPZ.+"g*M9W;_FgBeVb1f@m>dCM:D9Rij\/])*>m74^^!Nad]dNK 101.1619 + O&.QB[,*:Rgs'-Cc3e4/j`Pg"9-;?@Hbsd-<=I<?TVHftRh?AjC`Sd[@c.riT'^amd<JK<M 101.1620 + jeqe#-gfD`IHN!Vf%"oph2%h3SO2/76qEI>?D)f(kR)k89RunW#Dd=(&:"KldK`m$#@6s," 101.1621 + o2N%o\ZeHhmNC>`Vn](F,-E0N?E7sQu_)u!oMQ2?fhIJ89TcuG)Zh*L[G:QQ3CYk$K$qk#L 101.1622 + Ic+#^cm8HsiNR@&=IlP`LU@d"d^1LR&N\%Mdq&E"+,u#At8bDAcgT!"BtM?mZXtQ4Mr.nAJ 101.1623 + O!+)Cg`np]FQcsB#XiZ9Ar:$1G56/I:UgZ>Be*[[['lWUmB>0*5fgk]*U``\#9</'/c)9)[ 101.1624 + o9`Z*Z"$g,o6RpiN2WJC-<Zogk4u^1[3b*-+'[Y4Gc9#Ou3f7<G#09gS%2]:=53'@Ej'ZX- 101.1625 + ?u$2W:PP64j>KQhn])(S,NP.Y'^dr?*]`;Q9B0VHiZ7";U-<$<c=F>nAKFh"SgJ#H,N=#mh 101.1626 + NcW&C*;N@o\.:$@L^4Q5^uU"/mM\-ir.Y-rS:ci0pM)]j#GHH:,V,#B&p`7jNu:bk%EcF:? 101.1627 + ;K%j5+E\W!_Si5n+#bB&7Cc<^mN&7q@?kB1>7J-<''(FQSD+k+6PSG&,tF;.Z3EM.K._??T 101.1628 + tqIaY)oBCZjMH=,co.Hh*TjeuEj`'@cHQ.<R6jo+YhV=<V%`o]`I@odkfDJ3"H3E4"XA2\` 101.1629 + BmVM+D9BPY.d>j<$:3#?48*O'6k?+PEIQM1ectAA\jM$a_G'dm_s5biVk?qs.:q,^2&e,+g 101.1630 + LT#=[(8>PUV<W5tl@,VqL8jHGBnof)N?E1qLiDX>Y3MmfC6l)YfQW)&dK[L1L;pH5<j1h$Y 101.1631 + _OoY#;FM[jhtq@Yj8I'LN%TqE7!OYH>C7'li+,D\:(r%cj*s*#A1d<<krGkXQnZ]laFfJB! 101.1632 + LYS-KkZ*TD!i4oXmi`^<?GiMDACPm(Md+^254Gm5EJ]0%J.tQNu0im<7&t<n(uPg?h=W#O' 101.1633 + Ni3-0kpgMNP>mI\-9^s[&ui9dE%mKV/FfPQDBdKZ(QbKf0d2WX9(#&G^6m1d6b^`3P@k2Nt 101.1634 + oilIX!h'LqL]]KqXAgQ@==DW[n8Hrj"Dg(noIe\T3BEZ-!"i,&1`q]#bq="%QE!H=2%fc!X 101.1635 + on?Mr"Xn-i0*-$)!cW>an:4l$&7:D,&o_apE5)hNI^=dEd,E"SE5r4R#5IOEFq"^k#>f,S* 101.1636 + t`L*&;6.nE0+Gs?Pd^S")pa6EM"6?Ii.0?Snu79C&Q4f@E&NhGm>25KSX5nNg\t"Mrn'!l, 101.1637 + P49i$N.,+*(s\`SQ`jrfZi6VeJ>5kt`r&QBl/9QZErqA>%<3?Rt/kNpO0KW@aq9qBKh*3:1 101.1638 + nX=[,%&[lnfJ>Qq'0LJZ@hpiUZH6M'A-eSqs7\BbF'Dfdp$oS5qu*<$BmkOb*/FLYQfS<XO 101.1639 + #&:k*pFO*eTcohK\0F\7KoYt*E``sg-L>(0^_#7P6mdo4`3VBjcbuZ!0_:io=b46EFnh25I 101.1640 + #:/kI1ZUJB%2Unq2J6a&cfr2$A2c&uSs"/,5NE<=A1qNXh_GW>F*=^/EdhVDL3I]^-#C>%S 101.1641 + YnNTLK&AV<;1<ToH-A@#>o\p9_;0.oP]&"d/`g3dIanlGMQ>Bf[=m9:j<4toS6=e0[KK+8* 101.1642 + F6q`Bact>J#-Go%h"KG=RVee;O"ONLWLFgkT7,Dd`-+-$K8C@lB9i(R'_hArQIspA\h8QYL 101.1643 + ]k`cCk#k6II<GA[i`DgBoHq,`k%DjOe.F85:DG>gBoDhN?GG`;qop^_oL\BoHGVL#IOGNdF 101.1644 + us*FOSk4g#no`(lb7tkf1GR*,"pjQKCMZ8d@nlM-6=8/KeQat#cNr,NZGm,u.J%^Qn^8/V, 101.1645 + "]/$C'mkUP_MB=&FW`gL^Vu_"3Ldf6Ju?]<fHLA-b(5>kJNqAV^_$RN%"PPcJ8b[B0E_A0( 101.1646 + kN#1K]$HqjHAimd-@iLaY2;g+5'4EgARr(rLB"(3,=I,d=r3PL)8Wn\(ps)ir0KnL@AE,+B 101.1647 + \p,=ah1Mr[6oXXH[hbcf$89I`L[Of@kuKGR!l:l;-dG2spU1]^+4sE9Hb@=7Sp"dXD/Rs(C 101.1648 + m%QfJ'?.XF%cRs1[7<nnDqEW>6Q-Bh1a'G:WSKL+QnBOiF/iGcKfnMm=F/Jj@8@Z^o.3^!k 101.1649 + 3_dj=fS'CaIPY,F[#(t&c09O>Q8d,<[<B$F:(X(uX_IYomXqqSYbna3S;`Uci)I,"]b'6d` 101.1650 + ;-1s&qb='@CK7t-G,4W3!%_/4)</nHIp-3f\)k$lDn'"YQFH7XrEd-CDcMq]p;pbZi,<j&- 101.1651 + 5R,H`+!^g]Oj)CO2tjP=ZiQ_/XO[nF'60<G<M@M3,eL`1#kKre7s,0]k1*iYL2"h'ch2DD7 101.1652 + >K^2aYdOa*k_\E-Oi)--L;KjDoNN^1TBqcffIn!</jSQe1JFHX4AJSP.ktYl%ea-^W*@oQk 101.1653 + pgc(=r.BXM%rYHOkTj`J+\n@-g-Nrg*3:^dL.^lU)V"2POB'a;9F$f&))OGkIlZ&O"VhmRL 101.1654 + "1sV\Sk^<uO;%,kO%e2(@%E/oQ<>EK8Cg=-SJ:"Ba4%Um`)93?5E_4<6I!m*3:AINO]Q+.7 101.1655 + ,KUQlPa&k`oA6W&bG*qk^8m.G'?C^Er4tsFm(G'r'+<699Tp180Yu1Z+Z%B,CH2bi$O#9E7 101.1656 + _uJ!&^Lpm"$Mdqm,pU['Fb43^bLd[-+e25@jfWfCRZJ<L)h:+dZgjc-7grO9di1QlK'KZMh 101.1657 + CN+aR[dYs3gR7<E7S2.qT7A"C5S>erJP77EotWF[8b3oJ9dl`r1TY:GsU-A!C"gJS!N#D4N 101.1658 + <3M^,Dn4&f-K7ToH.#tR#$'d[^%(Ce=Fg<9H!XNE2Ypp`r>Rb')\oeOWg>^*=;ELsY])1@d 101.1659 + Zl*Z#NeY)klXCVkMMA(5/Is^.57;ltn3,U#H=07K!M880>2.FL3<]jRH(rf",jI%M9BWQBH 101.1660 + [i7h?Cj8P4fc@TTgY%U(S*('bb0j`KS^U@e96/ndh=W%QGq=0:F/A,a!E#c@?jamVl@?UM0 101.1661 + 5C\kZs2jO(;2t?-`gblCl=EuZ`IYKe;>lIDK1Heg$[\,\JVA;MscU6mCfZVcMXr!>RiaNE$ 101.1662 + 1:&_s]]`'ueb76H,40S;UC8[!Ai$bOZD`G-^O.2L`5N.r@bf0)@X-;p1]W<RnY_s'<Hk!/G 101.1663 + )*p4GSG8p:TpI!0^s;5`=+bHPpDJGq&cFSPqrPZ7ILA])#jPi&%rZ5^+L]R#OqBC3]#3HV9 101.1664 + n+NMD-I%>l/%XePbea37,DqtM8^]u%WreoY^^[g9cp&2[2g;LPTnssk4L!d(,I*rE*WIL!^ 101.1665 + "rK,^'OZRU6pP>k"@t'`@)/:b6RE9fA6*N`/0PJLN/@ig9N]8E.5&KO()I5pUL&SCH;M<o& 101.1666 + r3Pk*lKoh@e(Q^_9!5=&DmIb$n4SB-luh_$].SH@Y0E+3$O#:MG[+u(t[dFiiH%,jcTJ[R( 101.1667 + X<[_u9WI!3%dK6Q+KqF_Jm.e#t_G(aF\e*\kkUa&jW.^]RF=1$i\re5ffZ7"G@O%336p=BN 101.1668 + K]M2j$XL`lJ*,2_H?2G)%^&u0P+%4Q<5&oL*.U*^L!!lk;%+EWY.9Pi&O,>Q&-h@@XX/*2F 101.1669 + kMWiJj^K@pHip=(>;XBoC.*1S9l#L'h%FI"68n1RFEAiR*"98Xk0.)=>*-4d_9j$nV>)7*d 101.1670 + :jF8n8\DNjTtCPk-j@abVDuEAknm@%BVL;ls4lu.F#$:k6^Zee8#(ML,Z$a%d`4;#Tl=$4C 101.1671 + _+ljkVFVPa.Yn7.o=]J&ZCB<SlAIB3I,5E.''D7jbd<jRQVX%o^O:`R@t.tm4i*Ma"`c(?V 101.1672 + *hW)d5pRU\)g#'_.F.J5k,[']FLueBV`:E$u6>%#P7(N*+fl[k<[\@oGc#46%>*WQi##!"& 101.1673 + $,a'DglJRYcM0Ec&mnDXFjN$d+R-pWI4Q*!i4S;1k7Do0b=Xd)Ym=&pV9la)ME?ilA?Rf*+ 101.1674 + 5%$,o`q>lYr5X(V_.5CJ"Mc/SN1M2&bZ:g&:$CI5VM\$*!9Rp<F!oVqUYhZT`L`Y8J.'c8R 101.1675 + @hZ;RadpSJ0C<O0WjQ.O"\W\i5gaPWKoLY=lF0gs7DXMn:<"&'gMttbZ+3pf9@o)hc7@_!\ 101.1676 + bAh2fG!4P(K+0qQ6tRXO^31r2;u2KJD=97AT]XmW=V"kbSD?RHf9")Hicq::n`nt5oob&2s 101.1677 + bbGdC4VBScKci%eQ5p?W=6ZosT$)"l+(OJ3oY<&D0[]h=4`U-n$/DfPJK]4?Y&[*XTbeNA" 101.1678 + Q'8AqZg7E"u'OkjS/FrCGJR!3R.Y8UgN:^/Jk8[uB4^p+pA!(a4Y<O)\"Z'!R-ccJou$&E% 101.1679 + =(:&V'4@dn=j]lt?n3)BGlY?[J\#<O7c=%@]N/ChIWE6C(h&P+N;*b2V70ck50nD\QAe?hb 101.1680 + o>Z&A=IVH*S5QifmX\Mc\?41QA@jRm.Y.<NB3ouiUX<R[G[T?:e_ujk^oj)uD2!J!Tq/+2X 101.1681 + o0:-L#7kN]Fo?Q'[1#k!p\L'U^U:,edFDh]$2i_`^[KkcR9G-D1)+"nRICVjGHa5,\-M]Ze 101.1682 + 8P6kNC*WX)n9dg.E#F's.p!a52YP\h_@o4hQ@o46Qd&O#%'4bZMg_kouRh,h=XS'F+]=X!= 101.1683 + b\#;&+qXT\fA^g;Bt/c>kUNq;#e93H3k<NTM*EumEeG4=+@!Q#?Z,)p8)(-=!O2BGI.r#:Z 101.1684 + 9h"Gk`r)i"%4)"1K9Th<6ka42lG.KiFIpGN(jS[6n:k>$0%MUH/jhRZ!@d1*i&7"Ee;YQ#V 101.1685 + $.73Epf/to<e+E<,`&<:$-bteO++3J3&_$'M@Y@s_Wds`B49^95:AB/"u^OYl?7^H=7s;`g 101.1686 + Wo64mKp@cpHIqsGtipq]45\=DIFKpQZqph-rp%H/m0*c$+tq(<Obsp.p\5J"?oVWnBp!7<# 101.1687 + ),HSL7[$L8#E2!>JR$/.)/MS*Ba@>4?6qY-MpB1kCFe[00;?qd2quqQT]1rp:Q]DccE,!P% 101.1688 + Q)"XWnMM=JnNGq31h):FR"M^E<.qHm%`I:',Lrl<^h?Z5@\hnAda#N>SfO7Ia,c2%B0l2=t 101.1689 + mp3toT,JHKOWkZ=FIp_UAs2Xs8?gmuDhu*ND!<=eW!,r5EVE!X4i^jLO!72SaYT3c6+Ta>D 101.1690 + !cQ/g#g+_JK__Rpq;bTQ0I[+n5m/l1"E6p8YY>8i;$AXR"_XS2,eEto=U$Qk#&n8\Y\aU6E 101.1691 + <e1?#B-RB&6qa;(C-%U#]PV+Y`/d)/=6J:""b)[b\GOCrs8+j$?2sOYcS9%YmW7n!Uu9XjB 101.1692 + 2Zu[gXt0$uj;sYg!UGd0FW=$cHBX0[gL#i=7R'!\h3]E%pC1M$%^g7IDS:;#Lpp!>$sh&9/ 101.1693 + !fYmh97&J6`4&TJ[#YoOGH+VHLU&of?5Yq6UY0bZ9!'6-#GYrrcj,3V;%NhBkpj+n+=Uq@g 101.1694 + G'k5/gnQ`^L4VfP?#I-Q1Z#(0bUt<C5Xrt#c!5,X'%.YO_(i8CC!1=\oD](9p)0)&^Z'P.2 101.1695 + fLY(W):>E%Yp1)naLiX,)e-gCTVMu._!/+G]HDbFWPo\$XW9.H*HBaQZ/$Gji>s`8*c^EcZ 101.1696 + 0`V&nK0K'AauKckVsG7ocQ!n+E@c2Z4.rI&Krmh)@[&8D%>[,N?>GOB'SM57aqm0>R9=;'_ 101.1697 + 447@,W?i.)4`L<j%GoK#VN`:a1_h#;L`KZ<[Qq-RL7WafR<"U#dWgDCfRT%0@pdEd[7kO![ 101.1698 + bY-ut.mZAcUOY6.O*..WaOK'7Rj12sEJh?aAe&j?d/==st20#;$JVUB<j-EY)M_@8p_ZHRW 101.1699 + L&ef1K$DJr$5r^E4<[*3;_^)$0o$8rZnLlZj05.C80UiSI'ebaRD9A#497Fq@`.rng/r:2P 101.1700 + D?NsJ8MVhPO<N!t_929j?S`nihW$sWF$*m)K/>.G,(S9%U;nA:C]W!a7j9A1Y89"d@5]oQ2 101.1701 + KNP?ZMbsT'fNC?A?RR3WlbXB.(*JE/7A95VV!J3;IC[I_9)\G_W`j!?>udZ2fkopWCZ[?RN 101.1702 + ddCnL[-I1V>8Y:*P6h4CP?SZ`?4[d60;94_25anFJ)Mffg^Re4IqTa=%-Bp>Jcl^E?"<79J 101.1703 + q&q@URmAn;ehZj`S#!'[aN6"DArM+er,jZ`$g,(aJB!ljKa.3dtR'pKS'Zog.f5nHp36hEr 101.1704 + <U+\[SZO,(_7+>=:J^6dObcLpp$1qnG+cAhMlDDO8@mKm<J13eQ2!M;H,)hO$%s(1HO?4_( 101.1705 + nmFg$JgfOY`Yar9Cbti!'Wjq`YtH;Sq,FapZ`5Y)R5Yae9@V$VmlE"7)@F>0l/n_<V/"sU- 101.1706 + k!EC/7F*)U>Q0]n3?Qc9XORLZsFa6VY"=GiZNj3kurL$WiOCg&L&Z"FSer.+%qkB;KDA&&F 101.1707 + i1F!E,1>9B,=$TtOCl7/#P#<+a$0_4oS&b#NH\W*o<CN9i*("]cfqFhn"GTiY08E%=oe%om 101.1708 + m3+bG(RFOu-2Ao*2GM9f6\O]N8D=Z)ThYF)-/[ma;d>%EX0FfapP)"qDcU&^.QeP(?'.TM^ 101.1709 + H$1W-biT3oGgk6f-,*`+2Pr._\;,?jK)p5iG@OXRXlV<]0pF/!9'9ukS!FReh?uH1pb7=!L 101.1710 + $"5).14nkb6H0El+Mpf!"I:J^79D1ddNXY*C+X>t2+@\@Y@KO+7?nE:NcZggRNdP=#a'Z)/ 101.1711 + NY\n.:dU5Ap.m#XW]@?:K'/gB4MN8Trf02cL!De!S/Y%KBhJilrL7:'Buk5i[>DITIb2d&c 101.1712 + sIg@2VoXGr?9c<T:s'K&D#A0EbFp0$8MmFm!Nud;:elD/1Fd((kDLi&s@6DJ2k#1UM=cRa# 101.1713 + 9b=9@if/2HHADJCo=,*\.+15HS[&9+Voh?pr8@O<q3K37jWEd&sQ[k*OK%#l!t0udO2Uie( 101.1714 + E06AD7AB7k*e2AjceTE&a]jUu[^uh6m=@USP,*g[6eIc'2`?_o\p^VW+K&E:'a$C0ceJ<m/ 101.1715 + cBEHrOa/mNH"SgPjj_[8*%ssBHL)MpQ`MJ_d'jM5SEb'`6KEq[_G]COi"C2WP"I9H7NuFQ' 101.1716 + K8=(m3+sXMbl_fI,`*qTjfWK`@cbno1lQ=fDU3o!IuJ?H-BcE&G@h;VM>tgJ62h<673K4OD 101.1717 + BI4)dm4.QlK1'Eq].p"JXjMTn"\0_h!biP_ms.67B\X]SItb*/R*$i0Y^Tm<3_CL3REe\85 101.1718 + !.18MA80m>^#`,U48Dh$:LFc0!t,0+$l.!G\?pL/MOW;7G)U_n^M#8jEW%+@N#CPs?IMg0i 101.1719 + V_W[59-j=k6hdbrN,0*3*-q'`r'R8;h\D</>iJo15D:^_,=R7e:+SP1jbq:)r+DN*eN`M-. 101.1720 + :lHA<M]%M*7O!_XNp1:2_Vj%2#U4g1P%)G/U?NA[-4otjPBf0P\NE#5$rdC!+uqlPW#RB@3 101.1721 + [0kV$MF$.!oQ<<OB5rX1=Is66IrVT`G,DmPfRu5i0BYel'NYD(P\[/2#caI=dPPAR<b3gUJ 101.1722 + bajZq?&,H9%ObU,A97I+:p1/9PVMM`EZV;D+@KG>k+i.WL/`.2U;fR`?]@/aH-J-E&bKHki 101.1723 + _!F^\<;-]AqrT6^7)\bsG4$XibqTDAg>,2m&*^dcicPZ6(6[#7Gn)'\([k<eQJ3XT>,D/"* 101.1724 + M615I&DC0-ca#md0/rB[]qCeZ@;5H:TNg=ga>$N0?7@p5&KuTjacB?H$'i!oT>h"AU["]cI 101.1725 + D-IM)V<+$7Uhrfb`.VOR,(R/%VP?\]8T%rE?+Plm\ui"-m>!8(LO-5%$1R>(S0E%V/8cj[M 101.1726 + S`E#.<Qc_>L`+;(5C[\_@eokHoei5Pu8^q+r#XK'AE4*M8],UP?6J,$[G[R]+)"A&V*shN8 101.1727 + j(c)\]&;_a3Gm"</c`1U**C0Nj8)C,6bPOh_A,`YZ6TBDW`A9$lPgYVp68m:%IUqcso%/[W 101.1728 + -$[X2_13jl5\8[c2;P_-r4:37\1Kt&_iP30Y-\:@K"CnD"e>pr#`QBr;QSj``o,CrWMT_YX 101.1729 + teso-EVUn[f673Sf@[*/W,%=Xm$ICa*Xh;8g]mJGG[5FeM*PL-rP`pPI@P7$9',q!%<ZqWp 101.1730 + %)Y'`qGsV5JrX[A/2Kf6B3o\%5s*9(UAm\d$D8<e@0R>qEmc.^?,J2d![kf>RD:$$W-0,Z^ 101.1731 + 0F7J]M1c*iO:pFPe7p9UIHIuNd29d!PE+]?qr<kU<'I"=cHH5H$%92D!]@O5^UX4noln#X, 101.1732 + 67j,+@"4C2?AiYgQu0IN&V@r/*0)XC5g7]#.%F6$pRu_9>$\2AMiX=:`W#hhtoR3'qZW;9B 101.1733 + ._-nREW#7d4K:),hoC4$g/'+U2&`hOBF.F3=j60$)0j(#[RS"W@',&Yu0"(pRkFLX;nG89s 101.1734 + )]X`?I]HZ*Ub7fl[*BhmM5pfS`+nOU1>sj?V6RQD6/%=jrHBa6LOD6bB=fY@g2%W7%pHI`V 101.1735 + SFt)drAW+%4-[b%/t46l(rQSe.Be:b/8gB!liV!4$od0eg0IM.]rg#W"jFYQ2a+Er6\!?dW 101.1736 + %2?9/NVg*cP#po?nRt_QltXCV&Z42=hi2K,'eVD;0C^4<RTmKd2>-?*&7]P"sTM#/8CQE&T 101.1737 + r=c*19,MN*X'S^)c2"T>`t(iYSfH+OS:3s4eh(Iat]pU?UJE'!*t8Y(]e";Qk_[l7?bE$W> 101.1738 + ]2>4T3K;SL%=2u+;TR9-OW+sMPekAM#"mpA&FKB.Y$]]/s+_DTNS8&?;rl"=+G%.3<G_]Sl 101.1739 + Gl?T!FcM=,^WHfPL,5sDQWEZpXdb%*Qi(-@OZRf7bY8A#;62WZX5X]u?H8PO>/=nSNY1(.Q 101.1740 + U3mSh`n60V,/mZY-BdCJfD^pU67=a@jt(fNlTZ5+<L<6j+>M_!R\(gFhRYFBI)jMI,YjiS@ 101.1741 + dSg!P#la_,*KkqEss7AFpI]j]ON>9_T-EH^"$CJ&"L=RmZXGIoZ\_XQ#rUM%&=_U6%+,E1] 101.1742 + L]5nortXa1Yh1q.?,ds-`]Y:<"!cgOC[K(?+iE-/Ff\8j_LVeq^EiJYYs^/t$YY!6b<3`B8 101.1743 + OJ1&OA,o7-:RG4k)VPCgc;4+Xn!%!S)2ND8=kQE22/#S[aT"_5C+n<d0-)%D?giXm#l:+6p 101.1744 + 97H4uIe8@8eO%87D)&/*&-'Lp^&t)_%=Y5t5jqAVsc=o/*:$31Xe<SuUK#%s3);PdZ7AE`E 101.1745 + 'Ui#SR8'SXl4k5&:8ops<St3Nj_a`tY?'PGQgJ)W<O5iq(7S=,fkn3&mM?bBrWbKh0(0@IX 101.1746 + mQCG^I!nS'4).@Kt1HE=HHQ8bDgUR_7:/$:).<+)D`1#'$E9uGXAaYXVC]&V8MQj)P'g]=U 101.1747 + If;i+m1pGV?H;mHf^id5-%&hcnEs)?+-%B[$Mn]U`+WREao9qAgWD:T;n1FlN*!B5b?9Ed. 101.1748 + C%*uC![jn!cr*hQD8`F,lNlZOhgYNb`WIK(C]f8ktb8\a4p!d_XoPR7FViZ&Sb5c0\,#<up 101.1749 + M*-mlIU(kG'BGk4f/:n!c5ssm@N`3l0Yo+3&mR_a27<)ds84DHA@WBD"r+cCb6DSXU%^Fqh 101.1750 + +#0ZD:uICkr.]sF0bd1pa`:p]-V<l^UFAfUUoQ"<o#.jd960#)Z9?NZp96_Q]Xosno0h%b9 101.1751 + k]aeVCY87QT5%%Tpn+bo>!RR5TsY#2BnoE!tL+m;,ot+@tbPL(_gEM7jLhidn(b'bpo@(`+ 101.1752 + 8mB4[ctE*n0EG3*@o8q@Y"%i0@5'*pmD'5;#EZ@j8E2SKr<aU2#0MRl&rJ?WZq)K4.l*-&Z 101.1753 + 88p-k0V8ojd=0[+:V?Y.r7V5nB8k^;0aRo\JoD]r)s#"Mp3;M%"Gf0tY'/3u/I#@6Luic&4 101.1754 + 37Hu;XoReu\>?8`>U>5ulqgfn`nHOQ1QpSFoiF*K?KcAZt,j=#3/U!%D#V@c\@sI,tO(7ti 101.1755 + 6]ko)-;0P+YAKg(g'\nCQs^"SA!pq/DGQa6q8RH:?].?l&811GJn8V:TE6KSkY^$0=OXOD; 101.1756 + ebGl_5SPm_03$iqS@6T,;L0eIG\2Y_M>s]T#u`o>=<CTS-Kha)rBS3'\O8A^?Y6$Lq`DaDg 101.1757 + UXD^Mj#T"2Sr(-OTOJR7[3.bYO4nQR2A^NmD\"V^oq`S'o\,+[Q]#!d!M-6O>ZD]8:(Ga2h 101.1758 + oD<8oAA:\EokN.gS3Rm]tdaPSesg2-G*Z36a(8?ZG*U'<mXkZ<d0plAd(M>>ubUZm)RVlT- 101.1759 + 0rl;A48fU1*Ps,Qd*3uF]M`&WRIn.u\/\Zh^YnMV;p%]b!#O6l(+2S`lP%Q`N@?s46!**,A 101.1760 + J:LN"%i>k\^aok=6pQB`F`aHZU6]:;RJ!PR`'#6kXT@p5,!kc6+e]JM(,1uW3RE@*+]8k2K 101.1761 + `,*eASc>0`#"/ief-u$E=QF,4,8h*mZ5l5b1pbaHu;3B\KZA2@T6!WNodJba&)j;kUDCCG[ 101.1762 + JF1#1S8+Q#Z*i_N1B>(h$72+\:ZD&2B(]@ebD3Mo9b"V/S]UZ6_p"'j-G$R["Kf%0SuB57j 101.1763 + Ki+Ao^-)s;Th6-p\PdXi\XjSh0%=):[nA9j?$<_H#00d^G\S!/OI+-m1ab8->5P`h>24SYL 101.1764 + hUN"MDKod6Gn..'PJDM<peTQOQ9.j7;[RMAkZiqiLJ&iI^R"QogaQ#\aa8)<hMTe7VF6GOE 101.1765 + PH:)pP_B0aYQ^oQW#"uIqnJ:,cptrO*&Ej*MKtG"9c4+9'.RZjq;FGKPk1K1epAu^Ic=oA6 101.1766 + ^2ZKIo#geqbC8aTRg^-#9".?K;Aqu@ZlKXVR.sglC1hqb]1FLj#2Fl)P`)sHD&&@841WH3: 101.1767 + rGd4":5Oc1'KtPdG/Qp]<NYW!H41-q%!S"tSrc@W%rH1WOf9:d>)lL%M7;<-j[)C/mp+Pr, 101.1768 + @6Qb>TGjB\b8<i]5@3`q/#>GbfNY8/9s=B-Jr=Z(#:[fJQo85Mp\Lu"r1_6fq(KIn=G%L:O 101.1769 + 9eP'HYP_2?O1lP<:TL3u3TYY36NS>"Sa$L[[&Ue!0`(&?Pd[731ilbJO0kP7PS$S4A:VH>2 101.1770 + .&s,7[$I#Bc-^D`/Q#mZ[^=#(Uk*!Oqk4q/,\(&!"rAl=$5$>2JVq'jBo7aV[6kMW)Zg-j/ 101.1771 + l;t5J>NDL7o<XX\;7"@$L:uEZ$($8gUieoO4j7AZg+&L]@WA?7(X!h5kXGl60O",X5Qffd: 101.1772 + @<6#dOf\nCm,_&AO@uE=A?;(N:(C]]?SHi,j.'#T1n(L3NjZof`mW<I5-V<M^2L$\iWO)oJ 101.1773 + %e%q56SGU!&m/'3tF@LQ+k>UlkNcmf3O]O4(/!3<ro-5)4OOtcFVcSn1`K`g[lkJ/4kaHcK 101.1774 + %Nr2jGCQe,ea@KiPncg%ROU;JA=!.V,=-@UT>K`FY04k'sR\BO``+BbR;*;abF&LW2oIN%- 101.1775 + EK(dk!$m[=\[IME0pYiT(bD'0JX@"o6A,8i\b*OKjl#m-@6k563])E=OZGg[?B\0=P/h1J0 101.1776 + rB'DS(!gM:DFhbR1([A`;4s^C3;A`;7n(abseUn+aL.l@`+;]!jbpAH4%(-?E``Y;eCr@=V 101.1777 + hp8csck\(bu<EBZ70tlog.?%8jKUQIFQW=)2N`6[5437,%N^D^>FZ\7kFA7ddL7B`f[iWTq 101.1778 + Soi]r(';.`r3Y4Ir%+$6A%:QYjgGEeqM`aa$(Muhb<UBbahTlLl_.PBW;S2Z4BrZT3p78Sd 101.1779 + T9(DF(0ud!>9pOYj<Xe0s!<B;JUD$18fi<lm`^'s``!eYHneE7!Qquk-e9;NN(^E(O(6ZR6 101.1780 + T2XF]W^)iO"f*V&a!3u=UL8Oa@k3O\rh7hfQW*11:Pr.':"=RA><-<.9+X8@),\RG)]b2SW 101.1781 + ZY[&Bo?c(DQ"G=9GfSCkiO+L1kG@^?Upg3StL_YEfLonDM%#k6Nd\_GLY[dd%Iu9Si=]7ru 101.1782 + pHNP.p5Qmh9LJ-g#g(2K]Uls54*=gb(RP%"=N-XH,sja;QKY$1a'N+u6*RqaUtI61!TKRuK 101.1783 + gC]-0H2hf)*tG;!&>H(Js7I".:LITO]R(P5KRJ!oqXOXeu=$[m6Q29pa3Xmc7[@)hBf-MKZ 101.1784 + ;+D_<IkUd%k\%rOd5IBJ&-a0U?kJQh-UQL+5-49T+.`SE_Kg/f+^^L6/*!/AV!so?OU(_CV 101.1785 + _umek".?*@Skt!5(ki#Z$T\rj(.u+X,)eT3CbcZT#Z@u7C"=aAY8f@o'H=T^=e^Md(C3pT# 101.1786 + TH,GC3Mpb)aV+:NmR3SlN0Aj+$=l^1Fl?hr$"G3[?9B.MXa.?!o0p1KV-%R1h]R?nR95SKU 101.1787 + [OeTR/[?"55H@HE%5O_[=m4'*&5-2a]R0(]]-%BLK-&+=WeL1V7eH/36/!j,EKfQS^ckgPn 101.1788 + Hj0>\\m6js,50EX]m=fI2_`(1KY=tck6"qskn"11W*:e8O)@AY3"WXscX5mA2=+>N2Y,@H( 101.1789 + V`)8h+OfiAO,.M!\#[4pK5t-0'3i"kHe3-6Z>;iPcT*)16]O!cg=g1FXL`1$Ale_`m@mZku 101.1790 + M^+r?OWZ=8#Xm%N517CcZ>h]TK`ZpD6O3^g10MG0(PkUO`sZ=_]O&W0F#\PMMkjOs4E`R"> 101.1791 + ceCt7r3H5K6SpqZ5t->SM5_qE)J[k@??X6]G,$/#TLi8]bW-4Lf:b_gkH1<`^I=(RlRi3FE 101.1792 + ts/M`/,q6BmHdCbj)EO"sCQS7Df**082lWOtjT]:-\blZ@q^<u(&)80"$e^aMTr/W0_?!^* 101.1793 + "p8`Pedfcp6GJBNU;1nmSnUImYE*jh$I"Jj1ULD=SF"rN$r9WB6[&rRkPb05_V@i<;9R7d5 101.1794 + S7p.H"4.64t7"a-G)hAs,Z9f/91P9Y#5_Q%.S@V@p]1]\Mb$927`4e.1V1LP>#ZDe#)jqY, 101.1795 + fbfi$M\BQg/?hf]J\mNuLK)@t]ZMt=Z:%e,apCn'jG4(@CJ4$@9aoED*7>J$]h'/@M-MgWg 101.1796 + l3=Bd`m*N$R4`/6a`8MHHFMYP*uW,`8410hZtc"J2C:<JrE$Z\1kSR[kNKRaFPBTY;Ps_9n 101.1797 + _b+SE`kNlOJciS6VotEUo$`)U?"b-b3NM"'5R,eW*2)!_i8$0NA[:\1hE"9/nBHRc_m(hoH 101.1798 + eq\aX>E5eDrkO%P4Zb1M3=0cRb%^V;QdcOC%S>m=,B#7==?Y7(S'g*6^:,RjVVd)pTjn^^H 101.1799 + 3It[J+#TKUr<;dGsY>6$X2.OHaEaI)(3R!S-%_W"$9CR`S;:2nZ%Cd%B&?`tp>V`60\MXgo 101.1800 + *?nB5,>pL]:lOd7fTshHT?dB\;Mn*YPE:=\ql%B'Z4iRWP;*EU67@X[dg;ErM^AorJq:SuN 101.1801 + b[gI/H%#UHAkB<#Z*k:S?.:d):Fd4;p@I(h$$QsD,?ml,W$O%m$H2_6QtBn,\2?c&1SSKPn 101.1802 + oc178Zg5]"p!q:_&Hb#Sd@c#V/*d#s\Y]eI>AU*E#H[e'nP!eOn&bN1disWmSoB^)4.#F[F 101.1803 + VY>?/@A<QlOb3Up,"?PqdR$],0OR_2!<moB<s<_[.+>Kp1.DH:=^(,]K_U<*ZcKo#RBX/T8 101.1804 + .I;5bg+fq>hdY2Ad*HG45F&c4Q8[WWk=Y!OCh$?&5&l=Z:BS-RVCsTVCUmU?\Yu+$AG$"Wm 101.1805 + =:Kg@`H93JJ_2t1f5W:"+O^W(3/B%`=2JS[FbNpdMcdZO=N_3'oa019NEGu^=K*b$TRo,\N 101.1806 + N*/0f8te/d*ErIM@63Z%98Nn"e&SrRp!>";H5s6opf1Ko%BEZQ.\g'Y`7=\JXE]#V+?Ks+k 101.1807 + YAueCk(u>)fLbSZ3lFN^_Ki>-4n63lhIc\d0U$"uqNEJ:sSDDP3pt'bt]nrM'W5CP]rGgBF 101.1808 + ;WU-"pRLPR)sUgq/q[BGB,[>8X@a3#9UXbtmCL^@o+Uh.8r&E6pBEnH?JgkEY%=VTXn!$lu 101.1809 + pgs+)Kh9He+5;aH.>j]oFBj4fSBNOklg/Y^!NRLI]>Zib7fg(-jd#D4:JR*e^>AUNK^kb.8 101.1810 + Js?n*?1<GP"i=PFZ/.0uN]kt7*T@?IM#[_$#U"h*34`D7dGDS'?HqjMPT[4NmG?[g#m*ZN8 101.1811 + 5k=Z4-de=>tDO4c1-;b9Nj]8N:Di4,'K\OL0FCX#j&\S7;`SHJJH!8cM:c&ToB>+_^Z[]Lo 101.1812 + '4fpkE$%T-n4ROU02A-0kg3>7jTkfnbI=+FfD39O2pGLhi5^%ME2&'4Ele==ht\7M](=on\ 101.1813 + `7?\S.n^l+0Ek*W[>M>eHM:&0Sd&VuSTO[/"6I@$rW8Vk@N@&\)iXchWKLY\&Ci$l=q5`"< 101.1814 + 5U]f&2=KT*]IJ[>o.UG0!gO9pu*\q4X1CIe0@m2bXl18BJO5SrTinBUME/*9+_2+rc@#0P! 101.1815 + pn-PBMV8fP#_j`5(+BN+h.--fih_s+NSOj]6jYH<?*NC!*\UrHNfH:Dj'GGjhG.VFR_5\Z< 101.1816 + CTbm/h:G#B8I*X,'HTbDFn'bLZ@Le#_knec;f[L"leqPhp,5.IONsB/E6G]AVIZ/c50o_YD 101.1817 + ]84AKGDp?=me_Me*(\k&p0!.+6aU-K*70i8tsek!m;9LgWC<Lh94_?-?gA?jH[&@+HBT(3& 101.1818 + 9)?<uKV@-265S]U"X@qM$S?G6Mt*3j/%IgC420-,1JrMl-kEo6Z?k/F.XW/KLIkD5\bB;P? 101.1819 + 6p1!2=j58dMAei,a5_WIO<s[@<Au`t80i;OXGiq6RMlqroOH3sJJn]XaB@qcJm[.Yd2!M.3 101.1820 + i5UleU6K>WPmG(g'uC41=n_(+JS/"'Lb=bQn::nrb@HotB$QVJ2L/c/Wp"&bC<`43Pd$#\X 101.1821 + _G#@.ZGb!7^(c/FbhAu#[M015+^U`X9a6XfCl`7\;B=\$jj'Z`7?$p#-!J4X,%g&A?L:Fk- 101.1822 + sY/_cSp"R@_An-H"u2m]e$^#NgU(D6<-FJng*pet.q-G`5[p6%B/2A9`i?-ie)qQ>5P7CVG 101.1823 + ..W2J>R5\;(7?A=d3m`KCLgMOW/m!CMqmSRi?l^cR?g'*Aj?GL($eV8dOjrg12-7e2T_2<, 101.1824 + $OVj_VfS+,?ent-IDU.WL%F9g\B^X]8@(o6>NkgHgc%cR]gpRCm?H[52M/,6FO\h%oVKRfV 101.1825 + cfB6s);a'S*K'4_o&&[U(odmRhWsV8")pI-:hH2RI6ggLmFABCcNW8A`fJj@Gi'p)k]VU\D 101.1826 + A`^l[LNd%'t3610(k2.#L<$%>Cf@P?2*h0N2J86A"\le^AmZQ_MV1MS[T/pQ:Y7E(C5d,KB 101.1827 + %Ztr_2a_rU>jnE_duR46JT3Z6(88j)3Cf>jCN6Tke=thPU$OAgU.GgMk_8muWI\-MiPNcZ7 101.1828 + OTkCAOu(F&7=)i@CK@0/Q#7K7DC)/E:unu"Wlh`aK;J>EJ,M,bpC-PZ1=kobFmka4hWTShE 101.1829 + B'3hu'nW*\:\BGu%V;^@ngA$Wh(JBT*\r@KbAMHjj:6Pss\FhK)l!UHM429QIbgt-)>?=/) 101.1830 + LsB=0+nJb[F+6Q"hd1Hl+7a7TDZ<"CNtcW,?ZnG(l$$Z]?Y4It]Ppu>9jH7+CtEiSCD/pDG 101.1831 + /%m;hekrLX6bm4p?uu=%rCt^F*Bij6+rgkm:Z/hG8T4XpO@I4T6`VdFkXlZpTJu\5Buq[Is 101.1832 + :pC2Xb=(%tYJpIeYRLGYa#KpOW*HLNn<)G`R\Z7u$f2Mg3!qGgD@BT8NF$O*L\dGn6$(095 101.1833 + iMPBfBWGu'\dhide?kl^]i"8FU)_p\@YRJF%VH,#nq\"7lkT)%99H4QZp+.rB_TmAYlH9\6 101.1834 + P:SrG.Vg;^JqJW<YT;d.?W;=9/HH3(4c`VTOYBng)H3d^ZkZ\n^6j>nEHN1/F&%-b&[X3M3 101.1835 + qiA45QahC7]6g`oH`+Q(^V0LM<X-WGH$@)P)JF?0E*CT):7*+,3$/.!8i\!6r--50T?2Jaa 101.1836 + S`fqI)jEXcd$pqc[=?kI.,G[s3Z6JdX=@-rD1mj=4DY*f6qSiI:q5]J(ad]g3p`jIF$XGhp 101.1837 + )@\AqZ#$!ao&\BAJ!VhL7-=IQuqC2s,Qbk5J`NIZN]ATBH3Wl$g+u";kW!-cH#Qmj,*S8Jc 101.1838 + @Fr6Tgu`r;n%s%i9:?gN8\om_2ZIt.9DO8=?]qgJ4s(uO;$-i3k8qZm1%-l%;!+E1FN*Yem 101.1839 + 66=I+.F@IDeLW*_"BV\rl)3.02dCB*t5pML`A28EUU.larZ&io"KZ7RZRS@DCH,Sif4.]5\ 101.1840 + e+s4PKgVS3B[h>s-C%6$;eabXKgqn;W`<faHGsL(>HV%Ceb]N)`FH2VCt<r%VU]Ij>A_sgK 101.1841 + uW4;IpHEJGMVESGCDbpf2qXk"bX[#E7fP--P_QZ@r^/tH2WPK0s1q1>eXDsS'>Se3W/#l4e 101.1842 + ^;;o\(ldQW'g4CNZ*E?H6?WfPL99?,k?9\)$IrS,N'dHc+44S#^@\-?=oQ+ugQ;(I+bDl?# 101.1843 + )C5/11(g[0334oXVsKWK!j3F72*Vq(,,H[XcNLWANJqL*hMJ&gaFqu2(YC[q8802($f!&+r 101.1844 + U&HopH>T!a^d!QuB_GHaO$Gt0&0atrrgc5k^d/60@`).LG'#`0[;&$c="9ANgBA3.`0!SAi 101.1845 + )TL1;E?*"rgj's]dJSP<aAO"7,081o)L9FjS=(_GUn",(8lD1Y.a$2NIhj]bF9`YdnXQj<b 101.1846 + YoM'1<e30d59*H>hM$[dsU+6Y"+0/!)D"UmQ=9DPkdMhe,99Hb>8Q9(X'kc%m\NA>o?,Ze9 101.1847 + rK2dSubd9%)5&0Xf8^K^hg`6cCiXe5[M\$W(X"\O4b%/Ql-)eU:k.elA8T>1V6;EB-T\S=O 101.1848 + !/"J'UAfN'#KVGM8L;,g"Y%?"iOepX6*g/acDC>.7PZ#&/qh77F@Ps(=Mflm&1Eno80d<+2 101.1849 + G?.jDWf6uV&hH-0aE$(3i@04XGAa+[$fDYf$i)h$,K&G9F&VT+F>8)?:8(Jh`9Gh@jMW3:& 101.1850 + 0oY-phDpVVf`"0u_RHrsP+PCt`iIS\m.!g2=aje;AWsbOREiu&C]J'#DKD9/fuAN4kZT$aU 101.1851 + ?L;pOI>0t2GUogQ!15Rk1OpAWp81'HO+C9`AUk7_a_J4OddE)=_`fM\#Zc<9H1De]'d>;k1 101.1852 + ^akZL$i,h6h0*hYFnSg\l&G:tO50M<ZnJF1^o]?Puc10NT<FRN.]ab3(n"mB@$+mio.[4T< 101.1853 + OKDg^mLaRWqu.OOa,^I4Z8MaosQoK*9sg@j@;ESU:a7g1O7RY%J>GXFEHiqTF\Okoh>>l!! 101.1854 + dRs/AmqGXXplLUGOj6()^e+MpGrh$%PPlAC/\bht2dIdBE?eP.M2E\HZfmX1^qYo"UcMVOt 101.1855 + fD1_T/tA@Z[ncr+d+NrqOd81DYgqXQpO@,S:;?NN!)oZqIukL`^kFiOT.BYgd!cNm(duGPJ 101.1856 + qR9"mLd='<1i)_p2/%7E5N<b$VLUZA.[Dh_Y.gT7gq2)A\K-N\:kLR,XmO3dLr\u,ekNc9o 101.1857 + 6kI9thu3b8[+pMT$JB5Y.cM6f_MhZ$m-0Jn#<6,H4H+V?0-%N<P!bArDdonOB77l.`!4Ej; 101.1858 + JY_l,UqiX#RA030[&LG^&[PHK9C@9U_A:EWTK<JolR/AK:DSYG=qMrOFaZU/(<+67;>&Y]1 101.1859 + o,)I6anop8&&g#(P-QQTRGEaiE+-63o-<[lJO]"jQ82mRtS&C)&nNL>S)20d,,&2>#&AH#< 101.1860 + M_aF'@s0Vml+5;dVW=hm:Cp'1'6\ELB!QW2"TDFreF*DF*7^QR\m.4hRgkoNk>(E1?I%dlX 101.1861 + <r:[Qd\Kr9h;lVk/>tcdrKG&npNK14QInhRX%3)B0&te5*'7VG0_Vq:2!>mRC$:Z;49@3d( 101.1862 + ID5cMbXXb!ekD/-KOFLmgAK;b@A=S!j<Y!]q;ujQ$aS-EaM=\ajG\geA5*1a1AjH.<*I7#c 101.1863 + "np7eHsklqHi(o?k,Qp)j"-"qB,-h(S,"PNuPC*`[TZ<g]jV27d.m49S`WQNe$DbI"6Gc)d 101.1864 + `R>hPgs!RE)Xn;$7e'[)KWWSNb<;;k]d.nD+3BX8`!i<\QB2bjJ<[Lg=2i#PV6AbA;Q*k?5 101.1865 + fXMB!lNDs9oTIR))b"H-+cg>RRO-Zl<GL?:Z)NueY:#.-1!0YXY,nq2PF;KC.oA*m/uG$Mq 101.1866 + [[R\He"q\=IqYn@p9sRQa<M<#1EC#:?d/k-BcVI>1YuSai0%DG1O6%7W!,O]t7&5oU/qX.s 101.1867 + 1&FZ('<TRb8'oEXCREZgmiP;Yl"_$=2&aWS7%ZS#]pK]p,pL*s>uA'nXSl]k"RL#%8C=?D> 101.1868 + @BY_"XP`Zfl/fjslAEkskE6@!.+_fR5lffS0PI,nqBc";("lJ65=@u8aB\F5BKe&=CmmhPR 101.1869 + u(fEn5ANPa+N"*[^G83KgEI8)t,cK@'RGruWm0XU[F7h[X@f]AaRmaM.ptE%26@4`pP`I1. 101.1870 + @gQb;eXH)?_kYE;A@Pa0RrbAlXGPr:;HP)uEa_^tc+<^N!f5U713UT=G97K8!p2+`@4/Do4 101.1871 + %mG9P-Q*^bkZNgkBTc<8iE-bg%KRQN=h."NQ/cQ(IC"GQSrleU*c<\bNR_oWQE/A!#eD!kt 101.1872 + FaHYV$j>])Q/S*JG'rILt.Y*W"dLZ`K#>%'Opm=(C&W5NTj!OT`tIjiQPio,M,\!!;e.h#p 101.1873 + I:Gt)rPThB4&SUUt>cGM`)=mP'W[<AlogGfb:_eCd5pB`a)S!R)k).gUl7g7i+++uJAMb#X 101.1874 + r$/s1gf^DBr?ajY,QEg%5Ds:cF?Nr!@\YCop]sk+'[:7L1$ZmhX,2BGQ'U'J/P%X2=:&*Tc 101.1875 + H<bfbnkt[m<:5Mg06<3FNcW,7-Um7T*Ir+Air(o.9lJeSs6#A%`jAL7lF`1''+Rs>q2QuhA 101.1876 + FD3f]V21u\MNG4Q\"jaL"%i";sJbZ[1nT"c$PGslh=buPFf[UqSr$m)fpE!0'h!!-\_'H*G 101.1877 + G)B;rToLHKU.FAoJ57i;5@9^jA;fp^Y"!4PuUjr6NJ!3j[^g]%HQ;hoPI'X5*0YQh>dfR<? 101.1878 + 8/g,K&3i%nZ]qG'cFIHS<<hYgK"WKls:,=CpF:!MGT`lg!n:\C2Q:B1lP;Y@NDn31n`Et5O 101.1879 + YITi;o"RB?;caDYrYK)ti;Y9q;nb'K&T)=&%R!g'R;SK8j-pGhVGV@nL6t7eFic=rHPh1qo 101.1880 + s)3eqcjp-g&kobSc#E"rEY3,R!c[a&F\&+[I",4%Xrd&k+-:TjbmIf.5apHj3(asJL\@ 101.1881 + )n;L"=9rIBWPd,.fHN^"JTN2:W+`%3o@*MqdPNfDfYgFG4/78;m9(GYZ/ilFTO7_@n2V%a, 101.1882 + LE2KGDk%$ALVCKaN%LQD?48$\d)R/XY.o81)Jcrbk3u#9pDAFt"u&AoPo`X6uTFppP$Y;f> 101.1883 + EWO?P"jE<"p4PL.7^VnTJ&g9>-LrIo"pmOJ*1r$INHe,kg/m^io^n0sIOjA8+mOQ-gb$78U 101.1884 + 7Y9n)q6=CC%1ac,s#S?tU01N1hgeQ6)$aElBd3qr3pD)(f@5+ijk6DAi)]"QZ>75UlM+!J" 101.1885 + DC4iS^0sdP/+=Sb:6MlBp2F4(%]\>[`>*t'LPocj,'OO4!,Sp#YYA"2:$T\jb10-<)Id1\k 101.1886 + pVInfW>Y;e*U9W&N]2Bppt-a#fTFQ`lAo!kgg;h(lQ[cZ&X?)-Q-ZA!0Cn#,&\ANT,M^LMU 101.1887 + ARS;6q3^#d>g<'i2:@WQuP.D$-\7*26j]huJqFe8gSE%Di&6ncl6*4rc<C(Qqs+EF;QG5:+ 101.1888 + `i?>kMB;J@K^UuFmG+j^4D/\ZT@M!smD"d4]P/aEU<`>e5]cr,%5Be%k(Cp<C%r5l&dU1l) 101.1889 + hD'u/O.E=(lEJGq0U70Ma)=a7,n+S6tXXQ"_*-.GQ9rR01cRKCn-ZZNuU1YsTI4FWh,,TE3 101.1890 + noHJgRjJ:0(/k;h`QKURR5"4J<f:S@bb#&JLG@-)X![%nnX0Ilbk<['P`j!+!;SCk^G>q1L 101.1891 + PNgEl#dij!:$m;&X,t+#RN.nE/o[mPJVX3o&BHM`@<'ZCoUg)ZIW!==DUII1*VE37Vm3'65 101.1892 + Qsu&b>BK7ja2$4X:<F3E&F!!Q-b>UGWIV3R_+g^sP%P)CSNs26,ChdI`M6E;\YA2cAifF*d 101.1893 + +-I_7HS5*P:re*\i?l<+^;$SWYe'E:<3"$ffj5a2XA`>LBa[m9R%6'N<Se/q!k,=4d=5r!L 101.1894 + KF>#uq1IG,#6^0Z"_P9GlYZKq48]>m@oM7mi;ajYe7?h!7e+R,XN,[_Ea:qoLe8IhkF%92R 101.1895 + 7u0YNe7.BgY\HX?2fsC;e;m08P=\`?8VRUB&TL%PVaPVt8X)q@['*+:ZV+9,99d"g9H7LuK 101.1896 + 1j_79U*^oeB^i'dT!8B_=Y]@<8UFbj%`S::6b$6F@/gQo1r?[:R(`PeG_U"lr>mu:_a@7eI 101.1897 + PLl'2_aF.*.R#7JAN:),aH^;O&b1eLsQ1*/*m$;\_AmeN["J6W@#,;anY"F[oFH;cQh!<L$ 101.1898 + b^eF?Ph@ocTB<g@H$b=bM0ogVr"=-\,6eUL[9Jpde,@HNrF'dHg\P?CnP=d>IZ`YD4&+Cu9 101.1899 + _0O]B5^dVHBZWf;g(W+ZC<PMa<_@]ef/YIAoe\VGV/du4C%Md`(!+0%6g(O)A>nsXb[I,VH 101.1900 + \R)\J(,btne\PU8`Xu4o>kPr@edl&Oh-;hq"ngt`Q1c.4+tZ*I@[6Wi<VdIgrZ5)k&%4MNT 101.1901 + T`n$d9tn7@3FN7p#7QS8S(pS@Ni!cFt6pC0J0^nA&?o0!0^qo&1s2/&%4#@[T!s,=^j_HA[ 101.1902 + X1((2$utGV-?o>o%<0[WuN:;e:+G@Y'gs<f:=.N\-PK?(g.jFq8;q6#$$S@b&166IfQ]/S_ 101.1903 + _t@Q#fE@4j.?)-n#iCZ)=2+He=b"`1T]D&)qb<[]P"mMr[k??Y@8(?\ttgKdh,>ekW'290W 101.1904 + Yc7LpH?Zinu2=GLMi%:8V>W(&O6SEGEc#M\W@b1cdokd_3#Srb-B/`j,K%2Pcm3Y0P"4q:! 101.1905 + J<tH]g'^u*AUkkH_V,RqJqak*/D"->+\R(s?r!S9G%0'HTKHeP)g>A.;n%,TpORQYC`6B`/ 101.1906 + O>/=f8k2$drli6%6)E]TNcg\UNAiUG@7h&[sfo[/Ug01HXWat\%ZJ+O;+GCB/dsB2pZmu4* 101.1907 + j6HJ'[U5\)\1Rl$J$2I\q1;(\hUorEt/#AXCaIU>(4%?n3'*B/dI?@b$%,D1U^!B/eRsGUn 101.1908 + 1Z0mp?C/GJgi\%RG2[V%ON&E;Gj``[u3fl=N!K&YHSAm%[!]7n7AK>Q.\V!Wo(D0OWPG@K< 101.1909 + N!1%2_Sh7I$;n.E0Q],P.?&6]iAXJW4Qu5j4T8D0>MDo=.B+TiBM0/DrFX%-L#%riq`Hc'. 101.1910 + H(ri7pMY77fm8>AHIoA4pP+qWd>d9kIohk5Q^KP;m<7+cI:CfV\)2MkfnPk/I_sQdf>2r]j 101.1911 + cJV;JjS.Bf@=lnomPGmIKJ,RQaMBRd?=7qHm70l\':,h!`'X;/U0&Qij4m3B7@@")H\#/=< 101.1912 + Wlr?nHVH;n+E55gt8#R?o7'Lq"=W=@JSO87pLqR!$Z/R?*&Rc%otERA/)^->/7Rf8Kk&RY' 101.1913 + (WK^kG^I>nqt4i57/H'sBgdtlo_S0HLRAFH%_du!kB"5(phL8UT:`K4XmNZulBH0QtAmS;E 101.1914 + Q/Xc<2\>>a!rap-DNHJ0![3&>"$5ja?#b!iMg-)3>O=`c_UmaND_)\>.V@-R$#_;ZG_V,RT 101.1915 + A#4^JVLmNL>$7WLX=P8WV]%W*!lq*fl)122V#`TQ>$5`pfqoo%VKuu/RW#*t]rFEK)LAH_H 101.1916 + @@DKK;`3'X+K%6]"b3\'<,/HUtTJginA4[LT3YRWg^&f]!*`S\#Z7VX5M1&2S:W1\.UiXXT 101.1917 + lJ@>,El4f;N^l/GeE?2G9m8l7KU?YCbH03d[m#VCc!UVn33cg4uYS&Z".rY<'4mH@d_?0;s 101.1918 + 4BZ?i@GEBYpWc)$mb/XF#R3kd2WMmN7OZm`\rHE)&,5IBr+/DF1#gK6%R>Ru-`T-D[k>'mU 101.1919 + Xe#/X]UcWT;4*JXGf=0Hu\3er[>D\32fspluVckTM<<WaFGIuVM]UR*WgX!P:1?h>q0H8c[ 101.1920 + gY]^aj1\a\^74H&g[Dlro=nN(^RP,8g],&/"2J.H^mkeJg^h4@'>[oi_42I\g`OBQ,Jm\5_ 101.1921 + ON-ngb6Pb1W*HV_jig+gcr^s6c<5"`10K=geYm/;oN!C`LL/OggA&@A&_bd`gghagi(4QF2 101.1922 + qO0a..LsgjdBbK?.;QaIJ10glKM:!'gSe~>Q 101.1923 +Q 101.1924 +showpage 101.1925 +%%Trailer 101.1926 +count op_count sub {pop} repeat 101.1927 +countdictstack dict_count sub {end} repeat 101.1928 +cairo_eps_state restore 101.1929 +%%EOF
102.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 102.2 +++ b/0__Papers/VMS/VMS__Foundation_Paper/VMS__Full_conference_version/figures/VMS-core__internal_workings.svg Sat Aug 03 19:24:22 2013 -0700 102.3 @@ -0,0 +1,1010 @@ 102.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 102.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 102.6 + 102.7 +<svg 102.8 + xmlns:dc="http://purl.org/dc/elements/1.1/" 102.9 + xmlns:cc="http://creativecommons.org/ns#" 102.10 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 102.11 + xmlns:svg="http://www.w3.org/2000/svg" 102.12 + xmlns="http://www.w3.org/2000/svg" 102.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 102.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 102.15 + width="744.09448819" 102.16 + height="1052.3622047" 102.17 + id="svg2" 102.18 + sodipodi:version="0.32" 102.19 + inkscape:version="0.47 r22583" 102.20 + sodipodi:docname="VMS-core__internal_workings.svg" 102.21 + inkscape:output_extension="org.inkscape.output.svg.inkscape" 102.22 + version="1.1"> 102.23 + <defs 102.24 + id="defs4"> 102.25 + <marker 102.26 + inkscape:stockid="Arrow2Mend" 102.27 + orient="auto" 102.28 + refY="0.0" 102.29 + refX="0.0" 102.30 + id="Arrow2Mend" 102.31 + style="overflow:visible;"> 102.32 + <path 102.33 + id="path3563" 102.34 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 102.35 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 102.36 + transform="scale(0.6) rotate(180) translate(0,0)" /> 102.37 + </marker> 102.38 + <marker 102.39 + inkscape:stockid="TriangleOutM" 102.40 + orient="auto" 102.41 + refY="0.0" 102.42 + refX="0.0" 102.43 + id="TriangleOutM" 102.44 + style="overflow:visible"> 102.45 + <path 102.46 + id="path3682" 102.47 + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " 102.48 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" 102.49 + transform="scale(0.4)" /> 102.50 + </marker> 102.51 + <marker 102.52 + inkscape:stockid="Arrow2Lend" 102.53 + orient="auto" 102.54 + refY="0.0" 102.55 + refX="0.0" 102.56 + id="Arrow2Lend" 102.57 + style="overflow:visible;"> 102.58 + <path 102.59 + id="path3557" 102.60 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 102.61 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 102.62 + transform="scale(1.1) rotate(180) translate(1,0)" /> 102.63 + </marker> 102.64 + <marker 102.65 + inkscape:stockid="Arrow1Mstart" 102.66 + orient="auto" 102.67 + refY="0.0" 102.68 + refX="0.0" 102.69 + id="Arrow1Mstart" 102.70 + style="overflow:visible"> 102.71 + <path 102.72 + id="path3542" 102.73 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 102.74 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" 102.75 + transform="scale(0.4) translate(10,0)" /> 102.76 + </marker> 102.77 + <marker 102.78 + inkscape:stockid="Arrow1Lend" 102.79 + orient="auto" 102.80 + refY="0.0" 102.81 + refX="0.0" 102.82 + id="Arrow1Lend" 102.83 + style="overflow:visible;"> 102.84 + <path 102.85 + id="path3539" 102.86 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 102.87 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" 102.88 + transform="scale(0.8) rotate(180) translate(12.5,0)" /> 102.89 + </marker> 102.90 + <marker 102.91 + inkscape:stockid="Arrow1Lstart" 102.92 + orient="auto" 102.93 + refY="0.0" 102.94 + refX="0.0" 102.95 + id="Arrow1Lstart" 102.96 + style="overflow:visible"> 102.97 + <path 102.98 + id="path3536" 102.99 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 102.100 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" 102.101 + transform="scale(0.8) translate(12.5,0)" /> 102.102 + </marker> 102.103 + <inkscape:perspective 102.104 + sodipodi:type="inkscape:persp3d" 102.105 + inkscape:vp_x="0 : 526.18109 : 1" 102.106 + inkscape:vp_y="0 : 1000 : 0" 102.107 + inkscape:vp_z="744.09448 : 526.18109 : 1" 102.108 + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" 102.109 + id="perspective10" /> 102.110 + <inkscape:perspective 102.111 + id="perspective4311" 102.112 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 102.113 + inkscape:vp_z="1 : 0.5 : 1" 102.114 + inkscape:vp_y="0 : 1000 : 0" 102.115 + inkscape:vp_x="0 : 0.5 : 1" 102.116 + sodipodi:type="inkscape:persp3d" /> 102.117 + <inkscape:perspective 102.118 + id="perspective4336" 102.119 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 102.120 + inkscape:vp_z="1 : 0.5 : 1" 102.121 + inkscape:vp_y="0 : 1000 : 0" 102.122 + inkscape:vp_x="0 : 0.5 : 1" 102.123 + sodipodi:type="inkscape:persp3d" /> 102.124 + <inkscape:perspective 102.125 + id="perspective4365" 102.126 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 102.127 + inkscape:vp_z="1 : 0.5 : 1" 102.128 + inkscape:vp_y="0 : 1000 : 0" 102.129 + inkscape:vp_x="0 : 0.5 : 1" 102.130 + sodipodi:type="inkscape:persp3d" /> 102.131 + <marker 102.132 + inkscape:stockid="Arrow2Mend" 102.133 + orient="auto" 102.134 + refY="0" 102.135 + refX="0" 102.136 + id="Arrow2Mend-9" 102.137 + style="overflow:visible"> 102.138 + <path 102.139 + id="path3563-4" 102.140 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 102.141 + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" 102.142 + transform="scale(-0.6,-0.6)" /> 102.143 + </marker> 102.144 + <inkscape:perspective 102.145 + id="perspective4423" 102.146 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 102.147 + inkscape:vp_z="1 : 0.5 : 1" 102.148 + inkscape:vp_y="0 : 1000 : 0" 102.149 + inkscape:vp_x="0 : 0.5 : 1" 102.150 + sodipodi:type="inkscape:persp3d" /> 102.151 + <marker 102.152 + inkscape:stockid="Arrow2Mend" 102.153 + orient="auto" 102.154 + refY="0" 102.155 + refX="0" 102.156 + id="Arrow2Mend-8" 102.157 + style="overflow:visible"> 102.158 + <path 102.159 + id="path3563-2" 102.160 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 102.161 + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" 102.162 + transform="scale(-0.6,-0.6)" /> 102.163 + </marker> 102.164 + <inkscape:perspective 102.165 + id="perspective4461" 102.166 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 102.167 + inkscape:vp_z="1 : 0.5 : 1" 102.168 + inkscape:vp_y="0 : 1000 : 0" 102.169 + inkscape:vp_x="0 : 0.5 : 1" 102.170 + sodipodi:type="inkscape:persp3d" /> 102.171 + <inkscape:perspective 102.172 + id="perspective14081" 102.173 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 102.174 + inkscape:vp_z="1 : 0.5 : 1" 102.175 + inkscape:vp_y="0 : 1000 : 0" 102.176 + inkscape:vp_x="0 : 0.5 : 1" 102.177 + sodipodi:type="inkscape:persp3d" /> 102.178 + <inkscape:perspective 102.179 + id="perspective14206" 102.180 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 102.181 + inkscape:vp_z="1 : 0.5 : 1" 102.182 + inkscape:vp_y="0 : 1000 : 0" 102.183 + inkscape:vp_x="0 : 0.5 : 1" 102.184 + sodipodi:type="inkscape:persp3d" /> 102.185 + <inkscape:perspective 102.186 + id="perspective14299" 102.187 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 102.188 + inkscape:vp_z="1 : 0.5 : 1" 102.189 + inkscape:vp_y="0 : 1000 : 0" 102.190 + inkscape:vp_x="0 : 0.5 : 1" 102.191 + sodipodi:type="inkscape:persp3d" /> 102.192 + <inkscape:perspective 102.193 + id="perspective3233" 102.194 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 102.195 + inkscape:vp_z="1 : 0.5 : 1" 102.196 + inkscape:vp_y="0 : 1000 : 0" 102.197 + inkscape:vp_x="0 : 0.5 : 1" 102.198 + sodipodi:type="inkscape:persp3d" /> 102.199 + <marker 102.200 + inkscape:stockid="Arrow2Mend" 102.201 + orient="auto" 102.202 + refY="0" 102.203 + refX="0" 102.204 + id="Arrow2Mend-8-1" 102.205 + style="overflow:visible"> 102.206 + <path 102.207 + id="path3563-2-7" 102.208 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 102.209 + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" 102.210 + transform="scale(-0.6,-0.6)" /> 102.211 + </marker> 102.212 + <marker 102.213 + inkscape:stockid="Arrow2Mend" 102.214 + orient="auto" 102.215 + refY="0" 102.216 + refX="0" 102.217 + id="marker3239" 102.218 + style="overflow:visible"> 102.219 + <path 102.220 + id="path3241" 102.221 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 102.222 + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" 102.223 + transform="scale(-0.6,-0.6)" /> 102.224 + </marker> 102.225 + <inkscape:perspective 102.226 + id="perspective3353" 102.227 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 102.228 + inkscape:vp_z="1 : 0.5 : 1" 102.229 + inkscape:vp_y="0 : 1000 : 0" 102.230 + inkscape:vp_x="0 : 0.5 : 1" 102.231 + sodipodi:type="inkscape:persp3d" /> 102.232 + <inkscape:perspective 102.233 + id="perspective3447" 102.234 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 102.235 + inkscape:vp_z="1 : 0.5 : 1" 102.236 + inkscape:vp_y="0 : 1000 : 0" 102.237 + inkscape:vp_x="0 : 0.5 : 1" 102.238 + sodipodi:type="inkscape:persp3d" /> 102.239 + <marker 102.240 + inkscape:stockid="Arrow2Mend" 102.241 + orient="auto" 102.242 + refY="0" 102.243 + refX="0" 102.244 + id="Arrow2Mend-8-5" 102.245 + style="overflow:visible"> 102.246 + <path 102.247 + id="path3563-2-5" 102.248 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 102.249 + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" 102.250 + transform="scale(-0.6,-0.6)" /> 102.251 + </marker> 102.252 + <marker 102.253 + inkscape:stockid="Arrow2Mend" 102.254 + orient="auto" 102.255 + refY="0" 102.256 + refX="0" 102.257 + id="marker3453" 102.258 + style="overflow:visible"> 102.259 + <path 102.260 + id="path3455" 102.261 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 102.262 + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" 102.263 + transform="scale(-0.6,-0.6)" /> 102.264 + </marker> 102.265 + <inkscape:perspective 102.266 + id="perspective4753" 102.267 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 102.268 + inkscape:vp_z="1 : 0.5 : 1" 102.269 + inkscape:vp_y="0 : 1000 : 0" 102.270 + inkscape:vp_x="0 : 0.5 : 1" 102.271 + sodipodi:type="inkscape:persp3d" /> 102.272 + <marker 102.273 + inkscape:stockid="Arrow2Mend" 102.274 + orient="auto" 102.275 + refY="0" 102.276 + refX="0" 102.277 + id="Arrow2Mend-8-12" 102.278 + style="overflow:visible"> 102.279 + <path 102.280 + id="path3563-2-3" 102.281 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 102.282 + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" 102.283 + transform="scale(-0.6,-0.6)" /> 102.284 + </marker> 102.285 + <inkscape:perspective 102.286 + id="perspective4850" 102.287 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 102.288 + inkscape:vp_z="1 : 0.5 : 1" 102.289 + inkscape:vp_y="0 : 1000 : 0" 102.290 + inkscape:vp_x="0 : 0.5 : 1" 102.291 + sodipodi:type="inkscape:persp3d" /> 102.292 + <marker 102.293 + inkscape:stockid="Arrow2Mend" 102.294 + orient="auto" 102.295 + refY="0" 102.296 + refX="0" 102.297 + id="Arrow2Mend-8-8" 102.298 + style="overflow:visible"> 102.299 + <path 102.300 + id="path3563-2-74" 102.301 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 102.302 + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" 102.303 + transform="scale(-0.6,-0.6)" /> 102.304 + </marker> 102.305 + <inkscape:perspective 102.306 + id="perspective4850-7" 102.307 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 102.308 + inkscape:vp_z="1 : 0.5 : 1" 102.309 + inkscape:vp_y="0 : 1000 : 0" 102.310 + inkscape:vp_x="0 : 0.5 : 1" 102.311 + sodipodi:type="inkscape:persp3d" /> 102.312 + <marker 102.313 + inkscape:stockid="Arrow2Mend" 102.314 + orient="auto" 102.315 + refY="0" 102.316 + refX="0" 102.317 + id="Arrow2Mend-8-7" 102.318 + style="overflow:visible"> 102.319 + <path 102.320 + id="path3563-2-9" 102.321 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 102.322 + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" 102.323 + transform="scale(-0.6,-0.6)" /> 102.324 + </marker> 102.325 + <inkscape:perspective 102.326 + id="perspective4914" 102.327 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 102.328 + inkscape:vp_z="1 : 0.5 : 1" 102.329 + inkscape:vp_y="0 : 1000 : 0" 102.330 + inkscape:vp_x="0 : 0.5 : 1" 102.331 + sodipodi:type="inkscape:persp3d" /> 102.332 + <inkscape:perspective 102.333 + id="perspective4946" 102.334 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 102.335 + inkscape:vp_z="1 : 0.5 : 1" 102.336 + inkscape:vp_y="0 : 1000 : 0" 102.337 + inkscape:vp_x="0 : 0.5 : 1" 102.338 + sodipodi:type="inkscape:persp3d" /> 102.339 + </defs> 102.340 + <sodipodi:namedview 102.341 + id="base" 102.342 + pagecolor="#ffffff" 102.343 + bordercolor="#666666" 102.344 + borderopacity="1.0" 102.345 + gridtolerance="10000" 102.346 + guidetolerance="10" 102.347 + objecttolerance="10" 102.348 + inkscape:pageopacity="0.0" 102.349 + inkscape:pageshadow="2" 102.350 + inkscape:zoom="2.34" 102.351 + inkscape:cx="470.48905" 102.352 + inkscape:cy="738.60096" 102.353 + inkscape:document-units="px" 102.354 + inkscape:current-layer="layer1" 102.355 + showgrid="false" 102.356 + inkscape:window-width="1585" 102.357 + inkscape:window-height="1135" 102.358 + inkscape:window-x="239" 102.359 + inkscape:window-y="0" 102.360 + inkscape:window-maximized="0" /> 102.361 + <metadata 102.362 + id="metadata7"> 102.363 + <rdf:RDF> 102.364 + <cc:Work 102.365 + rdf:about=""> 102.366 + <dc:format>image/svg+xml</dc:format> 102.367 + <dc:type 102.368 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 102.369 + <dc:title /> 102.370 + </cc:Work> 102.371 + </rdf:RDF> 102.372 + </metadata> 102.373 + <g 102.374 + inkscape:label="Layer 1" 102.375 + inkscape:groupmode="layer" 102.376 + id="layer1"> 102.377 + <text 102.378 + xml:space="preserve" 102.379 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60163802;stroke-opacity:1;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 102.380 + x="441.66748" 102.381 + y="404.66492" 102.382 + id="text8002" 102.383 + sodipodi:linespacing="100%"><tspan 102.384 + sodipodi:role="line" 102.385 + x="441.66748" 102.386 + y="404.66492" 102.387 + style="font-size:8px" 102.388 + id="tspan12172" /></text> 102.389 + <text 102.390 + xml:space="preserve" 102.391 + style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 102.392 + x="435.16418" 102.393 + y="244.9225" 102.394 + id="text5831"><tspan 102.395 + sodipodi:role="line" 102.396 + id="tspan5833" 102.397 + x="435.16418" 102.398 + y="244.9225"><tspan 102.399 + style="fill:#159415;fill-opacity:1" 102.400 + id="tspan5843">Green</tspan> = VMS-core</tspan></text> 102.401 + <text 102.402 + id="text5835" 102.403 + y="245.02016" 102.404 + x="530.34119" 102.405 + style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 102.406 + xml:space="preserve"><tspan 102.407 + y="245.02016" 102.408 + x="530.34119" 102.409 + id="tspan5837" 102.410 + sodipodi:role="line"><tspan 102.411 + style="fill:#0303b8;fill-opacity:1" 102.412 + id="tspan5845">Blue</tspan> = application</tspan></text> 102.413 + <text 102.414 + xml:space="preserve" 102.415 + style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 102.416 + x="360.28989" 102.417 + y="245.02016" 102.418 + id="text5839"><tspan 102.419 + sodipodi:role="line" 102.420 + id="tspan5841" 102.421 + x="360.28989" 102.422 + y="245.02016"><tspan 102.423 + style="fill:#960a0a;fill-opacity:1" 102.424 + id="tspan5847">Red</tspan> = plug-in</tspan></text> 102.425 + <text 102.426 + xml:space="preserve" 102.427 + style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 102.428 + x="368.25397" 102.429 + y="405.27225" 102.430 + id="text5849"><tspan 102.431 + sodipodi:role="line" 102.432 + id="tspan5851" 102.433 + x="368.25397" 102.434 + y="405.27225" /></text> 102.435 + <path 102.436 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.50000001, 0.50000001;stroke-dashoffset:0;marker-end:url(#Arrow2Mend-8)" 102.437 + d="M 289.73631,397.76803 C 263.95998,384.0618 244.9124,373.07853 244.9124,373.07853" 102.438 + id="path6066-9-4" 102.439 + sodipodi:nodetypes="cc" /> 102.440 + <rect 102.441 + y="231.42043" 102.442 + x="157.23335" 102.443 + height="194.79402" 102.444 + width="457.79532" 102.445 + id="rect18326-3" 102.446 + style="opacity:0.3142857;fill:none;stroke:#000000;stroke-width:0.09999995;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.39999999, 0.39999999;stroke-dashoffset:0" /> 102.447 + <path 102.448 + sodipodi:nodetypes="cc" 102.449 + id="path3602" 102.450 + d="m 261.4119,372.41344 c 26.46687,13.70623 46.02474,24.6895 46.02474,24.6895" 102.451 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.5, 0.5;stroke-dashoffset:0;marker-end:url(#Arrow2Mend-8)" /> 102.452 + <g 102.453 + id="g3232" 102.454 + transform="translate(0,-1.1337509)"> 102.455 + <rect 102.456 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 102.457 + id="rect3614" 102.458 + width="131.25447" 102.459 + height="68.687347" 102.460 + x="352.18222" 102.461 + y="309.504" /> 102.462 + <text 102.463 + sodipodi:linespacing="100%" 102.464 + id="text3639" 102.465 + y="318.80692" 102.466 + x="417.67981" 102.467 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 102.468 + xml:space="preserve"><tspan 102.469 + y="318.80692" 102.470 + x="417.67981" 102.471 + sodipodi:role="line" 102.472 + id="tspan3641" 102.473 + style="font-size:9px;text-align:center;text-anchor:middle">Physical-Core Controller</tspan><tspan 102.474 + id="tspan3661" 102.475 + y="327.80692" 102.476 + x="417.67981" 102.477 + sodipodi:role="line" 102.478 + style="font-size:9px;text-align:center;text-anchor:middle">(pthread)</tspan></text> 102.479 + <g 102.480 + transform="translate(69.355022,-312.20049)" 102.481 + id="g3647"> 102.482 + <rect 102.483 + style="fill:none;stroke:#159415;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:4.32072499, 4.32072499;stroke-dashoffset:0" 102.484 + id="rect3649" 102.485 + width="61.691765" 102.486 + height="16.01606" 102.487 + x="317.60855" 102.488 + y="667.70459" /> 102.489 + <text 102.490 + sodipodi:linespacing="100%" 102.491 + id="text3651" 102.492 + y="678.71558" 102.493 + x="347.65115" 102.494 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 102.495 + xml:space="preserve"><tspan 102.496 + y="678.71558" 102.497 + x="347.65115" 102.498 + sodipodi:role="line" 102.499 + id="tspan3653" 102.500 + style="font-size:9px;text-align:center;text-anchor:middle">core_loop</tspan></text> 102.501 + </g> 102.502 + </g> 102.503 + <path 102.504 + sodipodi:nodetypes="cc" 102.505 + id="path3655" 102.506 + d="M 318.49369,397.76803 C 357.52667,383.08168 386.37044,371.313 386.37044,371.313" 102.507 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.49999999, 0.49999999;stroke-dashoffset:0;marker-end:url(#Arrow2Mend-8)" /> 102.508 + <g 102.509 + id="g3242" 102.510 + transform="translate(0,-1.1337509)"> 102.511 + <rect 102.512 + y="309.504" 102.513 + x="532.18225" 102.514 + height="68.687347" 102.515 + width="78.674728" 102.516 + id="rect4725" 102.517 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 102.518 + <text 102.519 + xml:space="preserve" 102.520 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 102.521 + x="571.67981" 102.522 + y="322.80692" 102.523 + id="text4727" 102.524 + sodipodi:linespacing="100%"><tspan 102.525 + style="font-size:9px;text-align:center;text-anchor:middle" 102.526 + sodipodi:role="line" 102.527 + x="571.67981" 102.528 + y="322.80692" 102.529 + id="tspan4731">slaveVP</tspan></text> 102.530 + <g 102.531 + transform="translate(230.36868,-317.52206)" 102.532 + id="g4733"> 102.533 + <rect 102.534 + y="673.02618" 102.535 + x="316.63855" 102.536 + height="16.01606" 102.537 + width="47.791374" 102.538 + id="rect4737" 102.539 + style="fill:none;stroke:#0303b8;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:4.320725, 4.320725;stroke-dashoffset:0" /> 102.540 + <text 102.541 + xml:space="preserve" 102.542 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 102.543 + x="340.63751" 102.544 + y="684.03717" 102.545 + id="text4739" 102.546 + sodipodi:linespacing="100%"><tspan 102.547 + style="font-size:9px;text-align:center;text-anchor:middle" 102.548 + id="tspan4741" 102.549 + sodipodi:role="line" 102.550 + x="340.63751" 102.551 + y="684.03717">top_VP_fn</tspan></text> 102.552 + </g> 102.553 + </g> 102.554 + <g 102.555 + id="g5001" 102.556 + transform="translate(-104.17459,-375.52206)"> 102.557 + <text 102.558 + sodipodi:linespacing="100%" 102.559 + id="text4834" 102.560 + y="619.79431" 102.561 + x="339.56277" 102.562 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 102.563 + xml:space="preserve"><tspan 102.564 + y="619.79431" 102.565 + x="339.56277" 102.566 + sodipodi:role="line" 102.567 + id="tspan4836" 102.568 + style="font-size:9px;text-align:center;text-anchor:middle">Shared Parallelism-Semantic State</tspan><tspan 102.569 + id="tspan4838" 102.570 + y="628.79431" 102.571 + x="339.56277" 102.572 + sodipodi:role="line" 102.573 + style="font-size:9px;text-align:center;text-anchor:middle" /></text> 102.574 + <rect 102.575 + style="fill:none;stroke:#960a0a;stroke-width:1.07999992;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:4.32000008, 4.32000008;stroke-dashoffset:0" 102.576 + id="rect4840" 102.577 + width="149.25206" 102.578 + height="12.695431" 102.579 + x="264.97189" 102.580 + y="610.18365" /> 102.581 + </g> 102.582 + <path 102.583 + sodipodi:nodetypes="cc" 102.584 + id="path4883" 102.585 + d="m 205.94834,249.27344 c -0.0417,34.47629 -0.0725,62.1034 -0.0725,62.1034" 102.586 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.49999999, 0.49999999;stroke-dashoffset:0;marker-end:url(#Arrow2Mend-8)" /> 102.587 + <path 102.588 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.49999999, 0.49999999;stroke-dashoffset:0;marker-end:url(#Arrow2Mend-8)" 102.589 + d="m 193.94834,311.61326 c -0.0417,-34.47628 -0.0725,-62.10333 -0.0725,-62.10333" 102.590 + id="path4885" 102.591 + sodipodi:nodetypes="cc" /> 102.592 + <path 102.593 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend-8)" 102.594 + d="m 530.74391,361.79676 c -25.49902,0.002 -44.34169,0.004 -44.34169,0.004" 102.595 + id="path4902" 102.596 + sodipodi:nodetypes="cc" /> 102.597 + <path 102.598 + sodipodi:nodetypes="cc" 102.599 + id="path4904" 102.600 + d="m 485.57785,337.79676 c 25.49902,0.002 44.34169,0.004 44.34169,0.004" 102.601 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend-8)" /> 102.602 + <text 102.603 + xml:space="preserve" 102.604 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 102.605 + x="508.8573" 102.606 + y="335.07925" 102.607 + id="text4721-1" 102.608 + sodipodi:linespacing="100%"><tspan 102.609 + style="font-size:8px;text-align:center;text-anchor:middle;fill:#159415;fill-opacity:1" 102.610 + id="tspan4723-9" 102.611 + sodipodi:role="line" 102.612 + x="508.8573" 102.613 + y="335.07925">Switch VPs</tspan></text> 102.614 + <text 102.615 + sodipodi:linespacing="100%" 102.616 + id="text4931" 102.617 + y="359.07925" 102.618 + x="508.8573" 102.619 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 102.620 + xml:space="preserve"><tspan 102.621 + y="359.07925" 102.622 + x="508.8573" 102.623 + sodipodi:role="line" 102.624 + id="tspan4933" 102.625 + style="font-size:8px;text-align:center;text-anchor:middle;fill:#159415;fill-opacity:1">Switch VPs</tspan></text> 102.626 + <g 102.627 + id="g4969" 102.628 + transform="translate(-12.174591,-319.52206)"> 102.629 + <path 102.630 + id="path17769-7" 102.631 + d="m 288.45515,727.81832 c 41.78708,0 41.78708,0 41.78708,0" 102.632 + style="fill:none;stroke:#159415;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:none" /> 102.633 + <text 102.634 + sodipodi:linespacing="100%" 102.635 + id="text17771-1" 102.636 + y="737.88684" 102.637 + x="288.42194" 102.638 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 102.639 + xml:space="preserve"><tspan 102.640 + style="font-size:9px" 102.641 + y="737.88684" 102.642 + x="288.42194" 102.643 + id="tspan17773-1" 102.644 + sodipodi:role="line">schedSlot</tspan></text> 102.645 + <path 102.646 + style="fill:none;stroke:#159415;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:none" 102.647 + d="m 348.45515,727.81832 c 41.78708,0 41.78708,0 41.78708,0" 102.648 + id="path17775-5" /> 102.649 + <text 102.650 + xml:space="preserve" 102.651 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 102.652 + x="348.42194" 102.653 + y="737.88684" 102.654 + id="text17777-2" 102.655 + sodipodi:linespacing="100%"><tspan 102.656 + sodipodi:role="line" 102.657 + id="tspan17779-7" 102.658 + x="348.42194" 102.659 + y="737.88684" 102.660 + style="font-size:9px">schedSlot</tspan></text> 102.661 + <text 102.662 + xml:space="preserve" 102.663 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 102.664 + x="286.49493" 102.665 + y="724.40527" 102.666 + id="text17771-1-8" 102.667 + sodipodi:linespacing="100%"><tspan 102.668 + sodipodi:role="line" 102.669 + id="tspan17773-1-6" 102.670 + x="286.49493" 102.671 + y="724.40527" 102.672 + style="font-size:9px">slaveVP ptr</tspan></text> 102.673 + </g> 102.674 + <rect 102.675 + y="262.49448" 102.676 + x="163.84431" 102.677 + height="161.39378" 102.678 + width="329.44443" 102.679 + id="rect4979" 102.680 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1.08018125, 6.48108746;stroke-dashoffset:0" /> 102.681 + <text 102.682 + xml:space="preserve" 102.683 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 102.684 + x="396.57816" 102.685 + y="273.16141" 102.686 + id="text4981" 102.687 + sodipodi:linespacing="100%"><tspan 102.688 + style="font-size:9px;text-align:center;text-anchor:middle" 102.689 + id="tspan4983" 102.690 + sodipodi:role="line" 102.691 + x="396.57816" 102.692 + y="273.16141">Repeated for each physical core</tspan></text> 102.693 + <text 102.694 + xml:space="preserve" 102.695 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 102.696 + x="263.94568" 102.697 + y="390.80692" 102.698 + id="text3911" 102.699 + sodipodi:linespacing="100%"><tspan 102.700 + style="font-size:9px;text-align:center;text-anchor:middle" 102.701 + id="tspan3913" 102.702 + sodipodi:role="line" 102.703 + x="263.94568" 102.704 + y="390.80692">1</tspan></text> 102.705 + <g 102.706 + id="g3195"> 102.707 + <rect 102.708 + y="271.504" 102.709 + x="172.18222" 102.710 + height="105.5536" 102.711 + width="131.25447" 102.712 + id="rect17981-6" 102.713 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 102.714 + <g 102.715 + transform="translate(-104.75363,-307.52206)" 102.716 + id="g3590"> 102.717 + <g 102.718 + transform="translate(-109.01365,39.321571)" 102.719 + id="g18019-8"> 102.720 + <text 102.721 + xml:space="preserve" 102.722 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 102.723 + x="419.38776" 102.724 + y="590.22229" 102.725 + id="text17967-5" 102.726 + sodipodi:linespacing="100%"><tspan 102.727 + style="font-size:9px;text-align:center;text-anchor:middle" 102.728 + id="tspan17969-7" 102.729 + sodipodi:role="line" 102.730 + x="419.38776" 102.731 + y="590.22229">comm_</tspan><tspan 102.732 + style="font-size:9px;text-align:center;text-anchor:middle" 102.733 + sodipodi:role="line" 102.734 + x="419.38776" 102.735 + y="599.22229" 102.736 + id="tspan17971-6">handler_fn</tspan></text> 102.737 + <rect 102.738 + y="580.86206" 102.739 + x="395.11298" 102.740 + height="22.365267" 102.741 + width="48.927513" 102.742 + id="rect17973-1" 102.743 + style="fill:none;stroke:#960a0a;stroke-width:1.08000004;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:4.32, 4.32;stroke-dashoffset:0" /> 102.744 + </g> 102.745 + <g 102.746 + id="g3604" 102.747 + transform="translate(-45.01365,39.321571)"> 102.748 + <text 102.749 + sodipodi:linespacing="100%" 102.750 + id="text3606" 102.751 + y="590.22229" 102.752 + x="419.38776" 102.753 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 102.754 + xml:space="preserve"><tspan 102.755 + y="590.22229" 102.756 + x="419.38776" 102.757 + sodipodi:role="line" 102.758 + id="tspan3608" 102.759 + style="font-size:9px;text-align:center;text-anchor:middle">scheduler_</tspan><tspan 102.760 + id="tspan3610" 102.761 + y="599.22229" 102.762 + x="419.38776" 102.763 + sodipodi:role="line" 102.764 + style="font-size:9px;text-align:center;text-anchor:middle">fn</tspan></text> 102.765 + <rect 102.766 + style="fill:none;stroke:#960a0a;stroke-width:1.08000004;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:4.32, 4.32;stroke-dashoffset:0" 102.767 + id="rect3612" 102.768 + width="48.927513" 102.769 + height="22.365267" 102.770 + x="395.11298" 102.771 + y="580.86206" /> 102.772 + </g> 102.773 + </g> 102.774 + <text 102.775 + xml:space="preserve" 102.776 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 102.777 + x="237.94568" 102.778 + y="280.80692" 102.779 + id="text17977-3-5" 102.780 + sodipodi:linespacing="100%"><tspan 102.781 + style="font-size:9px;text-align:center;text-anchor:middle" 102.782 + id="tspan17979-3-4" 102.783 + sodipodi:role="line" 102.784 + x="237.94568" 102.785 + y="280.80692">localMasterVP</tspan></text> 102.786 + <g 102.787 + transform="translate(-103.63132,-319.52206)" 102.788 + id="g3580"> 102.789 + <path 102.790 + sodipodi:nodetypes="cc" 102.791 + id="path18292-2" 102.792 + d="m 317.62527,671.29009 c -5.09448,-8.49068 -8.85909,-15.29455 -8.85909,-15.29455" 102.793 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.5, 0.5;stroke-dashoffset:0;marker-end:url(#Arrow2Mend-8)" /> 102.794 + <g 102.795 + transform="translate(-7.0136518,5.3215684)" 102.796 + id="g17983-3"> 102.797 + <rect 102.798 + style="fill:none;stroke:#159415;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:4.32072499, 4.32072499;stroke-dashoffset:0" 102.799 + id="rect17975-2" 102.800 + width="61.691765" 102.801 + height="16.01606" 102.802 + x="317.60855" 102.803 + y="667.70459" /> 102.804 + <text 102.805 + sodipodi:linespacing="100%" 102.806 + id="text17977-2" 102.807 + y="678.71558" 102.808 + x="347.65115" 102.809 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 102.810 + xml:space="preserve"><tspan 102.811 + y="678.71558" 102.812 + x="347.65115" 102.813 + sodipodi:role="line" 102.814 + id="tspan17979-1" 102.815 + style="font-size:9px;text-align:center;text-anchor:middle">master_loop</tspan></text> 102.816 + </g> 102.817 + <path 102.818 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.5, 0.5;stroke-dashoffset:0;marker-end:url(#Arrow2Mend-8)" 102.819 + d="m 374.32675,655.55365 c -5.09448,8.49068 -8.85909,15.29455 -8.85909,15.29455" 102.820 + id="path3578" 102.821 + sodipodi:nodetypes="cc" /> 102.822 + </g> 102.823 + <text 102.824 + xml:space="preserve" 102.825 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 102.826 + x="269.62048" 102.827 + y="298.02182" 102.828 + id="text4821" 102.829 + sodipodi:linespacing="100%"><tspan 102.830 + style="font-size:9px;text-align:center;text-anchor:middle" 102.831 + id="tspan4823" 102.832 + sodipodi:role="line" 102.833 + x="269.62048" 102.834 + y="298.02182">readyQ</tspan><tspan 102.835 + style="font-size:9px;text-align:center;text-anchor:middle" 102.836 + sodipodi:role="line" 102.837 + x="269.62048" 102.838 + y="307.02182" 102.839 + id="tspan4825" /></text> 102.840 + <rect 102.841 + y="288.66159" 102.842 + x="245.3457" 102.843 + height="12.695431" 102.844 + width="48.927513" 102.845 + id="rect4827" 102.846 + style="fill:none;stroke:#960a0a;stroke-width:1.08000004;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:4.32000001, 4.32000001;stroke-dashoffset:0" /> 102.847 + <path 102.848 + sodipodi:nodetypes="cc" 102.849 + id="path3576-2" 102.850 + d="m 227.16268,311.46504 c 9.78768,-7.86986 17.02037,-14.17623 17.02037,-14.17623" 102.851 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.49999999, 0.49999999;stroke-dashoffset:0;marker-end:url(#Arrow2Mend-8)" /> 102.852 + <path 102.853 + sodipodi:nodetypes="cc" 102.854 + id="path3576-3" 102.855 + d="m 271.94834,302.4222 c -0.0417,4.62441 -0.0725,8.33012 -0.0725,8.33012" 102.856 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.49999998, 0.49999998;stroke-dashoffset:0;marker-end:url(#Arrow2Mend-8)" /> 102.857 + <text 102.858 + xml:space="preserve" 102.859 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 102.860 + x="201.94568" 102.861 + y="348.80692" 102.862 + id="text3915" 102.863 + sodipodi:linespacing="100%"><tspan 102.864 + style="font-size:9px;text-align:center;text-anchor:middle" 102.865 + id="tspan3917" 102.866 + sodipodi:role="line" 102.867 + x="201.94568" 102.868 + y="348.80692">2</tspan></text> 102.869 + <text 102.870 + sodipodi:linespacing="100%" 102.871 + id="text3919" 102.872 + y="294.80692" 102.873 + x="199.94568" 102.874 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 102.875 + xml:space="preserve"><tspan 102.876 + y="294.80692" 102.877 + x="199.94568" 102.878 + sodipodi:role="line" 102.879 + id="tspan3921" 102.880 + style="font-size:9px;text-align:center;text-anchor:middle">3</tspan></text> 102.881 + <text 102.882 + xml:space="preserve" 102.883 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 102.884 + x="231.94568" 102.885 + y="302.80692" 102.886 + id="text3923" 102.887 + sodipodi:linespacing="100%"><tspan 102.888 + style="font-size:9px;text-align:center;text-anchor:middle" 102.889 + id="tspan3925" 102.890 + sodipodi:role="line" 102.891 + x="231.94568" 102.892 + y="302.80692">4</tspan></text> 102.893 + <text 102.894 + xml:space="preserve" 102.895 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 102.896 + x="261.94568" 102.897 + y="344.80692" 102.898 + id="text3931" 102.899 + sodipodi:linespacing="100%"><tspan 102.900 + style="font-size:9px;text-align:center;text-anchor:middle" 102.901 + id="tspan3933" 102.902 + sodipodi:role="line" 102.903 + x="261.94568" 102.904 + y="344.80692">5</tspan></text> 102.905 + </g> 102.906 + <text 102.907 + xml:space="preserve" 102.908 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 102.909 + x="297.94568" 102.910 + y="390.80692" 102.911 + id="text3935" 102.912 + sodipodi:linespacing="100%"><tspan 102.913 + style="font-size:9px;text-align:center;text-anchor:middle" 102.914 + id="tspan3937" 102.915 + sodipodi:role="line" 102.916 + x="297.94568" 102.917 + y="390.80692">6</tspan></text> 102.918 + <text 102.919 + sodipodi:linespacing="100%" 102.920 + id="text3939" 102.921 + y="390.80692" 102.922 + x="355.94568" 102.923 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 102.924 + xml:space="preserve"><tspan 102.925 + y="390.80692" 102.926 + x="355.94568" 102.927 + sodipodi:role="line" 102.928 + id="tspan3941" 102.929 + style="font-size:9px;text-align:center;text-anchor:middle">8</tspan></text> 102.930 + <text 102.931 + xml:space="preserve" 102.932 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 102.933 + x="503.94568" 102.934 + y="326.80692" 102.935 + id="text3951" 102.936 + sodipodi:linespacing="100%"><tspan 102.937 + style="font-size:9px;text-align:center;text-anchor:middle" 102.938 + id="tspan3953" 102.939 + sodipodi:role="line" 102.940 + x="503.94568" 102.941 + y="326.80692">9</tspan></text> 102.942 + <text 102.943 + sodipodi:linespacing="100%" 102.944 + id="text3955" 102.945 + y="350.80692" 102.946 + x="503.94568" 102.947 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 102.948 + xml:space="preserve"><tspan 102.949 + y="350.80692" 102.950 + x="503.94568" 102.951 + sodipodi:role="line" 102.952 + id="tspan3957" 102.953 + style="font-size:9px;text-align:center;text-anchor:middle">10</tspan></text> 102.954 + <path 102.955 + sodipodi:nodetypes="cc" 102.956 + id="path3175" 102.957 + d="m 350.74391,361.79676 c -25.49902,0.002 -44.34169,0.004 -44.34169,0.004" 102.958 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend-8)" /> 102.959 + <path 102.960 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend-8)" 102.961 + d="m 305.57785,337.79676 c 25.49902,0.002 44.34169,0.004 44.34169,0.004" 102.962 + id="path3177" 102.963 + sodipodi:nodetypes="cc" /> 102.964 + <text 102.965 + sodipodi:linespacing="100%" 102.966 + id="text3179" 102.967 + y="335.07925" 102.968 + x="328.8573" 102.969 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 102.970 + xml:space="preserve"><tspan 102.971 + y="335.07925" 102.972 + x="328.8573" 102.973 + sodipodi:role="line" 102.974 + id="tspan3181" 102.975 + style="font-size:8px;text-align:center;text-anchor:middle;fill:#159415;fill-opacity:1">Switch VPs</tspan></text> 102.976 + <text 102.977 + xml:space="preserve" 102.978 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 102.979 + x="328.8573" 102.980 + y="359.07925" 102.981 + id="text3183" 102.982 + sodipodi:linespacing="100%"><tspan 102.983 + style="font-size:8px;text-align:center;text-anchor:middle;fill:#159415;fill-opacity:1" 102.984 + id="tspan3185" 102.985 + sodipodi:role="line" 102.986 + x="328.8573" 102.987 + y="359.07925">Switch VPs</tspan></text> 102.988 + <text 102.989 + sodipodi:linespacing="100%" 102.990 + id="text3187" 102.991 + y="326.80692" 102.992 + x="323.94568" 102.993 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 102.994 + xml:space="preserve"><tspan 102.995 + y="326.80692" 102.996 + x="323.94568" 102.997 + sodipodi:role="line" 102.998 + id="tspan3189" 102.999 + style="font-size:9px;text-align:center;text-anchor:middle">7</tspan></text> 102.1000 + <text 102.1001 + xml:space="preserve" 102.1002 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 102.1003 + x="323.94568" 102.1004 + y="350.80692" 102.1005 + id="text3191" 102.1006 + sodipodi:linespacing="100%"><tspan 102.1007 + style="font-size:9px;text-align:center;text-anchor:middle" 102.1008 + id="tspan3193" 102.1009 + sodipodi:role="line" 102.1010 + x="323.94568" 102.1011 + y="350.80692">11</tspan></text> 102.1012 + </g> 102.1013 +</svg>
103.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 103.2 +++ b/0__Papers/VMS/VMS__Foundation_Paper/VMS__Full_conference_version/figures/VMS-core__plugins.eps Sat Aug 03 19:24:22 2013 -0700 103.3 @@ -0,0 +1,365 @@ 103.4 +%!PS-Adobe-3.0 EPSF-3.0 103.5 +%%Creator: cairo 1.8.6 (http://cairographics.org) 103.6 +%%CreationDate: Sun Oct 17 19:38:15 2010 103.7 +%%Pages: 1 103.8 +%%BoundingBox: 0 0 116 67 103.9 +%%DocumentData: Clean7Bit 103.10 +%%LanguageLevel: 2 103.11 +%%EndComments 103.12 +%%BeginProlog 103.13 +/cairo_eps_state save def 103.14 +/dict_count countdictstack def 103.15 +/op_count count 1 sub def 103.16 +userdict begin 103.17 +/q { gsave } bind def 103.18 +/Q { grestore } bind def 103.19 +/cm { 6 array astore concat } bind def 103.20 +/w { setlinewidth } bind def 103.21 +/J { setlinecap } bind def 103.22 +/j { setlinejoin } bind def 103.23 +/M { setmiterlimit } bind def 103.24 +/d { setdash } bind def 103.25 +/m { moveto } bind def 103.26 +/l { lineto } bind def 103.27 +/c { curveto } bind def 103.28 +/h { closepath } bind def 103.29 +/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto 103.30 + 0 exch rlineto 0 rlineto closepath } bind def 103.31 +/S { stroke } bind def 103.32 +/f { fill } bind def 103.33 +/f* { eofill } bind def 103.34 +/B { fill stroke } bind def 103.35 +/B* { eofill stroke } bind def 103.36 +/n { newpath } bind def 103.37 +/W { clip } bind def 103.38 +/W* { eoclip } bind def 103.39 +/BT { } bind def 103.40 +/ET { } bind def 103.41 +/pdfmark where { pop globaldict /?pdfmark /exec load put } 103.42 + { globaldict begin /?pdfmark /pop load def /pdfmark 103.43 + /cleartomark load def end } ifelse 103.44 +/BDC { mark 3 1 roll /BDC pdfmark } bind def 103.45 +/EMC { mark /EMC pdfmark } bind def 103.46 +/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def 103.47 +/Tj { show currentpoint cairo_store_point } bind def 103.48 +/TJ { 103.49 + { 103.50 + dup 103.51 + type /stringtype eq 103.52 + { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse 103.53 + } forall 103.54 + currentpoint cairo_store_point 103.55 +} bind def 103.56 +/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore 103.57 + cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def 103.58 +/Tf { pop /cairo_font exch def /cairo_font_matrix where 103.59 + { pop cairo_selectfont } if } bind def 103.60 +/Td { matrix translate cairo_font_matrix matrix concatmatrix dup 103.61 + /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point 103.62 + /cairo_font where { pop cairo_selectfont } if } bind def 103.63 +/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def 103.64 + cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def 103.65 +/g { setgray } bind def 103.66 +/rg { setrgbcolor } bind def 103.67 +/d1 { setcachedevice } bind def 103.68 +%%EndProlog 103.69 +%%Page: 1 1 103.70 +%%BeginPageSetup 103.71 +%%PageBoundingBox: 0 0 116 67 103.72 +%%EndPageSetup 103.73 +q 103.74 +Q q 103.75 +q 0 0 117 67 rectclip 103.76 +% Fallback Image: x=0, y=0, w=116, h=65 res=300dpi size=399300 103.77 +[ 0.24 0 0 0.24 0 0.327072 ] concat 103.78 +/DeviceRGB setcolorspace 103.79 +8 dict dup begin 103.80 + /ImageType 1 def 103.81 + /Width 484 def 103.82 + /Height 275 def 103.83 + /BitsPerComponent 8 def 103.84 + /Decode [ 0 1 0 1 0 1 ] def 103.85 + /DataSource currentfile /ASCII85Decode filter /LZWDecode filter def 103.86 + /ImageMatrix [ 1 0 0 -1 0 275 ] def 103.87 +end 103.88 +image 103.89 +J3I@:BHu(:pOk^R:T.dk*=mro@So+\<\5,H7Uo<*jE<[.O@Wn[3@'nb-^757;Rp>H>q_R=Al 103.90 + C^cenm@9:1mM9jS"!dTMT(d8$g?t7s\'HOJg#PSPQ1`C/m<k<ioH)<bk^Hj`\=EYZP^B4!g 103.91 + 3;B=(iZ<kDqOh/Bf.DHAorf'R[o?>ioWjnAY&^Hf#!Qo!:QLNm9ApfKo@"^St*EZ$@h7Iu_ 103.92 + dAb*B(hHM_+c/A3_/KTg;O43>N3c+5)[@l+5FLs\BULUaal`3%:<o887eo3Me/cP3]=PdZ! 103.93 + go`"\NO%+%3I?d9;j#,$np4Qs03bd8X)RpL$EoAk_=@@arU18[WS6S6H@0(,e%b2Fq7f.4D 103.94 + ^FtK.-a-^`ir&L%0OEX9GI`IODGpB_@VYP$,Ve*/ITH-bVY3W/8C>o*cVOQKd#X?9bX/(9N 103.95 + ;hHOZZn_7?NO1(WM6kAK/XoKPq^J0sl-?a0F-D'h>PLB,o"@,_I111+\T;ajP!l-d!&iT.% 103.96 + e/>a[.cdZeMs92bu*/kbcJV__#PoP$$N1M#)o:%M?)+j1Opk9%o(KO6Z6F4AYo:,E+N3D]7 103.97 + S$Tq2Sh"*j$'D3;6:imCW5#QKF,=>9a`@jVR['[;:;RD-F8Q#.+Ki:rn"\Vipojq&s7-Kf$ 103.98 + _Sb_TSJ.XGc#m=DQ0j!,fG4pM@G$ktNFUWW9pK;CQ>N1*g(o[EC"elTX_ZZ,c*_ECQL2A(g 103.99 + _UF=ESQm4c#_\W:"=CB22WBi.$5D:LW)d^m<d_,c1QMBQgOa$i"uq-J`)nJ%>3UV:)/KAQu 103.100 + 3q"iY[\%M;jo*/W8X+c8CUAR-m+uj;AFrOlVo_9p=ZV20BS3MB`J*?BIu]RHBp?D4B]+c?5 103.101 + ]@RI5KqkSaqbU$.ptNMGKY>YUNWW&A%=?FiV&WToqTXfLb+cF'e?RdRkmll-E@V&u.7m?bb 103.102 + [L1RW,Rr7&kmMh2J\aGrimCVg)-HTDpW&bNXT=`DQ_=3sJ%E%]U:DLk=Rg/S?A_M=UIHiq5 103.103 + /^*`*cS`u=SF8VekhLIRaI]tm.CJdg:K>s<SSqfcp)T12d<(p<.t3UdaN`Q8SaV!ap`9s!@ 103.104 + !J'lalE/&:R1%2IVq&SqAs"?l1^&^2HP5HVmYHE541ShO^?qahNOQa4?*3\+4ONnR+^6grE 103.105 + kB*k*pgLU\T:d[PdCdhoE)F+9NYtE"2h18'32$46_:!8bNO9h#&:!e/D.XNPR?G"C@kl*Nr 103.106 + c8_2"3S"2k7kOEoeM0dar7"=/4fnY%j0i4MRd[WMuM*^`a)%H55cLJ[C[6eHc4U')3_E;Cb 103.107 + H=H"rn6Q6`E/gEd:SIQ'!n7-Eh-cK26$Y%!pL7n)f7G)VrUB;P<nW#7l;%FPsf\qfeQ8S^K 103.108 + O>,Zn9T?<'.)e.H*9*n<O%adEa4TnqirE8A;3F/^fZkZ#9P]`p4Bb;,2^:beMi$u&E5uAV, 103.109 + bci9"4?[(8Vhd:6<bLp;L0EO#[4B6@utE-Q-$X\q%i';:5AsT+Uol1&L2[C'XHR;7ohJ^-0 103.110 + .(E!4FIHBnHm@%"eTP*ZR^r&iaK63gVC4--Nio'F[[$Rdt2g"M(]k=R9OcF%0dsW@9^``/p 103.111 + ,P2KV<3.5n&^ggdXACWZrP*i?TI@Y9,Y$b?4#kP?>CCaIe-\7FN!r32`ri`XH.(GsdgeY.$ 103.112 + ZN6DTr0]jokRPTMT:+<A,=Nos!ZpBXJ.GI9.`>4j4ac9.h2]-09KUJ'UN)D+P3geEYTl[qT 103.113 + a*H\dkFA*2PM(u=3MSd*S;2mH>(TA$QR\IdP$W"*KJ2U*0VZarX&X&?<SG,flNL^3eLDWi` 103.114 + Xq@'l[BoC!J"0pECMGnENW<e\lW)&?0f17LR"9[er%pBlYOSA',%r[>7G$-7>\9M/[3j*G@ 103.115 + )1E"fa>`WOdDV%4i64X#;`Y=kc)Pm002j9KL3]X!#5pPA%8-\UE&mDd4k7Z*m]Yg07cu<p_ 103.116 + Fu[-`mO&'/(iC]t-O2SRGjH]<%57EN)A0#knWQN\m&]sm=M[Tk:>@.%UZ]2rn<?/*$5D9Ou 103.117 + KC_"tF/#u[Q(]^u\IeI+&h0\UEhRkQ!nZXOeAM636](TmU?Q8rnn-/p/<YkL]$gPNCo6n,- 103.118 + UA`k?qge0j&].XG$9<JAJ_1/50oc14=<&9+XtCI-=H=)(>YN^f^!Nskos7i&o"P=A0b4!)) 103.119 + @67XM=JK<'3OZB0d36OiP=-f=Q^l=<uHlbPt`@KV:!Y(>7C'\;0)c5.RT/D1`1[''2[Unjk 103.120 + Q]!o)j-W)(R%$#\0(b^1#8])BIq:*tH5$EH.CO5%e-PSaU7\cU2n?BAE>kZQ^a-A.o.0N== 103.121 + VlZo_]a#].D_S"nb6NsWBJ6g7j8IIo.XdnPX.l.CELfLW<t;YFq:=FI(>7O?M$UK$O0]r6X 103.122 + L50_:r.L(]WUGHFDe_9HtlFU,^2<M_h)8o!4Adg_D6q5@opKYV\KsU6.)Qd,VBPge$'D96E 103.123 + e"[s/Cdo)'o%&tZHIj`c[NDsO-B?LLCJZ\[4MkQfYg/s5+)FZq_Y#tcfm;7.j1VS0g7H%4S 103.124 + -+@!8>Ec'S2qA^/V3@S&IpX]"3ULu3U&,W3`n<NN4[>`me.$i,K>o&X:ouBr\Y9FLBZd;T- 103.125 + `"bRq20;/*9Nh7W6[3^EL?(?r6<;m[/,h([!uF>j6e.YtlE%2]\(jdH7_gscEJaU#RIs 103.126 + U'^p*9.lV)qB_nDDX+kG=RH!VNY^:W$<)ZT/ok==pRJ3W%RbMnWHAZu[-%QZOed@D5]FU`H 103.127 + 1]0&4>h,/R=*[d`U,Z<IG(L$R`mCiARO_/RBJ\qt-jLiADkYU82EHl]U=6<\AIN'CsY3Ng1 103.128 + Rg8>"kDjf#SAk:Vn1d$LShPV5%XCjQi>o\WqqicZ.Y]SA55X=ns)0eX;#g7f&Uejf>!MrW3 103.129 + nql&fWWRrk9En?qQ(dCG>,Zdq5cXQr@/k1s,6^+5?P5KU\6C5&AGmIfTN;i7)OKs^&NEbms 103.130 + HeS`F],J.!!a3:1=aB@*^`cjs:#(o'nBf!N&?b93>OfNZHIq!i$5H0HBX:l2V?l?Orn*%7F 103.131 + OkieHmXs.BAdL%<WPNf^Cha6rBS:)<Q#%093pTkJQ:cX-c.FCWRk*hsY3Ab*7Q5f)r5j__G 103.132 + ]DfT3'DUtZQ$#HPIY+"_YZ<se9QKAU50VXAa;IFHX$]o0)&=E2gD[<Sg@k`6"n:J>(f*neg 103.133 + $RfunjmrU_!<<CF#po65/@bT=nH3YOdI!8)7JR=g"R[hQ"lKCVOMlo$)%]7t&WkZ>c*e2r, 103.134 + nb2E*DnB7-Hc*6bkPuGLN(iWmB$BH!>#f)fdLtScNmls2ZooEoM;:.7M-6P&HpEF?dWCkcq 103.135 + P6%6Pf2Wngqel/mAuA?MI=I]$WXY0m_OcDZn.$$ml&U-1Me6!q58')@sp;L(t0=D\fU%)Ng 103.136 + 3]Oab8hK$\>ZfBgqnYgjU'^=CRp)6f^e9g"38lsK8kU626YEUO*O]c(R/n\tkUW-%sb)]s( 103.137 + NplWG!/#;a:JCTd@LJ^8YX]#S*D\\!*i95M(7K4&s`<=HK'SYu7m&q+!OC+r\f!,/N0+'Eg 103.138 + >_b&(?a*5P;>eT+#6#'$LTQCT`Uo=QjNbaQ+#4tsOq+l1JJ`Ac(p"Sln;/O[;%EqN->!DAn 103.139 + lfF!QiI[&%Z,fe`UPEkfdd7!,"SaYL%cIA$O^qea0LsQbFGZ8<?Vs+`NkC'0[dl0+"Ze0,> 103.140 + QZpOH,(ck$TsH"-Htu'(V$`[16*Z/1g)N%N&TY[#))_?df:>Y!g>"]a$=Vo+HYaP1h'Od_? 103.141 + ARQ1<<P1FgcA:tZD_p1S@h"p5t[%akOUP*/l/N9]WS8De6a!=mW"mDAB*:>K`1+@ZdbP7KT 103.142 + [Rb3es?k),F;T&PEk319AkAgkc0!-npaXD3h#P1"t''1-4T^kuD4*/'JPGGq@L3Bj?..SB? 103.143 + ;nkIOeNI[74=h(,Cn2Qi4Xh&t5-sW?lG5X-1HlEf5#N<2'Ce=E"[H]d5=PSBKDtGjb7h5.1 103.144 + _^6^oH?OK"[L'*!Y'Ze6%)*D<C:jf(Gn9A<'`o/6uFh0?aMC)oLD>,<CLN^`k`\t1grj1@N 103.145 + )Uf','+WP)VnpF[pOuF&73Ee8n-eKh-<AD_t6\[#mp:P\mdg8T^LpoUt+uq&#:R8i3YBoW\ 103.146 + )[a!"*T3qTaOoYF3J3D$Ts9XN&<jrmE_d7n`99sbF'Eo04Uh+i(V9[nO/P_*eoUB7gu:UL' 103.147 + ro`7lH"]0=J:pga/oat%Y'iB)k;7.EAoc[3j,uSk7;RJ)SoeBB&-8D@o!qeELog)P779"D$ 103.148 + <4,G"ohe^H<E4/UIn)X1oG2?0N=5Dn<jcdFol4%jF]W^2=0TE9L%:URI9:WK=LF,jooWB7P 103.149 + ujuIF0sIu8b#r+V-8#@>.(J9os%T^csN&l>;a)uotalj`E[PF=f48_jn9R7e=[-H%L/t7Fi 103.150 + drIj^*)o?FB-T[=DU!]3b1+?a]i>p&S6;b]@k;bg=^D&;;`KV-XFL`g.WRp*!m'-";$H@^[ 103.151 + jtp+^&82.LeiA%"O1p-E4I7:^R5A@>3Cp/,BZ<Fp=r$T;7Fead&>p4mfoB!uPgp2O_'F_>l 103.152 + CB=<5$p46l'<eiR<8(&&:1]%Fn&MrRW@=S?9FR$Y\pkJKO?Ii`)etTrX/;KOKCOoi.i2^ZP 103.153 + `GAJb4nCHXP]9<lmpS$!Bbm7S(:(^kV>qC3+82lDG2g:Q[YK%;CNN0UQ-`l=fg41*=t"H0( 103.154 + @o0tkAI`s@94)R[e>JWqJ0.2?ZfdAe'1,^Z#/]?EVC0089o32Ys+L:^%WabL]VBo.UQ0CX` 103.155 + V6/2bA(7%#5W2FK=)7FgbY$)f<'#\X-'H(FI*6d][]C-s"YVQSCdm1hubE#FBbM[r@HE\TD 103.156 + p4H0a.-k\k\mZ#sXLE&V3OVR(QWXLn5$?ak5uQc?QpYQ,KHCA55F$RJHQo5I`uHoGYlpM51 103.157 + -Z[B6Z"h.uk9='%jg8oLQZ1j/4"A^#'%rHOVG!J0FGOp=mQ%,-CHC'tM99k$/;RrJ2\a5Ls 103.158 + %*LgmQ%>.*I0Pa[=>7:Q-sp'%Kf=E:f"$EF_0tG6He+O:[[Va>T6%MJJp0J8G=@#5_2#(RK 103.159 + 1J@P=:2Ff%m"oqKNDN8p\np[;2C-kKlr$"bP@$_MhW#CL.8q4L$a#m7UF[OLH$?1=<i_sB8 103.160 + Y74M\`RW95fX+fo,t3L;iR#\F@hgp`+PSN7];/R,GE_fk+@BD]&Vb\E/Pa4"XQ!**>Pi'k2 103.161 + (5Vi^4UOERaf[iLWi4-:l,keN%=q*C5G]p*VU'3<RW7d#q[1pgC;DV6agR9$S<3Eapo@+c` 103.162 + A\Q+qG5F&`_QV0c5FjEf#:IPKPQT9H"R<b(m9pk5WQkg!q=;Gd7NL>\>R5fnPq5KZ^\T1fc 103.163 + RJ<87(R&#>cZ&[\Rk#AFfV=t[':IF2D"F]'(=ejUFc@`)-e[!]q9b"Dn""a5FVp0>o;JkgD 103.164 + j\)uS>M@=g%K$Go:$X2Y8Pu63:3;?a**m[B\F&lVGX%3Z_JD-T=9B@\_E8=WKd\LRV%>LqD 103.165 + `#s23%H2U"VYV3^KJXCI)+@P$/6=`i#XO>%Cf<OP4l\g)b;N$`9<2DAl2^>'6b*5Gu%JWCj 103.166 + e$-SM2TNMbj;W@I8c':PuuYqegLWL71ob."AU/ZM*.XKa2e5s)2.rJ_^FBY(<)o5M`i%,?e 103.167 + c?.&;"/k7n[AL6qm'3<7`Bdi2rL=/ePb4<5*V<t)kmbA`B2c<c#NQT_I-*T!<Y\bJd]*oSh 103.168 + OT[BC0f!q/P&/E)lt\YqR<lZL>/YEi0;uD(IbH0!)V^jiSmm`ji@*F>dn(pj`6PM=&BLKE- 103.169 + 2TRa$J)Z/Z!1gI)f"Fc+#O6-\4HY0P#3s^CUWUP\-A#$]2#MU;K8)CM>0Z5-E3s+K<=]"l: 103.170 + E]B&Y=ciI#P:+?PAT`'.4_0h72S8,YfjIL'bQWk37mAl.WX^]<Sstj1Ap)`ZZr;>S4e7&fV 103.171 + f.Pd\u.+oes[*KU&9C0SbdcW8Ihgsi1j&:o0>d^^H[U(NOd_oR82!WOZI[c):(iq!rs/X\/ 103.172 + rCgg0Y__0ZlY2@.P5n?E]`BXFmHZKmpe&CmIa,T`7W-u_s0dS"%\L;g<VM2fJ"KX]kC:NN. 103.173 + >U=ZaWM_iA@Znf?P.^^?A,mQ<?dfh87Ib&=6=81D*Pg&-)s%ht\mHGl"hQY$@/++Le]>`4c 103.174 + )>P8[nb@Tra5AS`>kY.k]M\C_9.)AV>&Z?2Z8I_Fbt1YS+l$94<oEi[C,dR_PWI4ju4(Om; 103.175 + ?pI%")d7H]9e82%cBXc6<2t>h3;'qoo>'b$>jbgo>+ZYGQK,]@b6S=Ja2g/^@r^s'\^<8;Y 103.176 + &D9tl$U)Eir$I,Wb+jk7=XaA.`J*Eh(cD'4s0!Bmf&SScsC\^r1+f6P-,H&7Crp"2DfSsiI 103.177 + 0jrFV(C6Dkf&P_f*nO;"Tq'pf,!I`oK*OX`uD!?;hfWS#qL&p1pH.g__C7W8t>>`f##KkjJ 103.178 + ]Nlt&g-nb"e%>S1?2]K+rVkR?8sc+70YNn)`U>>&n\q#N,OLW6h=Mff>M;imjD_4Zr9j&\= 103.179 + il&FjrF1tP8i)d&;NC`j1ZXZ4ihADc/Ug>5(8H*Hc4Y;6=@7b!)1#OIV%8?BAVFg^SrsF^& 103.180 + crWFmMEolEL6PqkMZT\6p;4NP<6Y#.`^lNclJ,Bc`T%g#$r(kBm%Cl5i0_rha(mSLbgT`dO 103.181 + WLIAc0IpW3^(n=?90rlOYMs/uA9?eg$cruJf%JqlFTE*hYoB3jr&O7)OlGoKo=*^/>kA)7. 103.182 + *c2RkF*jt\<'AH)-faT4_S,`&>J&@!GI=B`-h\5.,!VX8dLYm#/^N*]Q(E8,;oD_'uT1!AM 103.183 + 8OiV$b<=OqR]H-de+L&<qjn\r^BsrF!R*+[d@RRN4SQiWoD$(Sp4'dFs+/'/Ckh??r8,k1F 103.184 + &^<>P&ERUq<(^"%gW^J#mGpP+V4?I/f>+R6fJ[pPYNYBKd#IfB[]R6(5KZ#&'5LE8G861AJ 103.185 + .MNmTBFS70f"nci@9-O%ndNRE0]"1RO4N<#QJ5B*G!JO-H'',l$>r6sVYcKhWFbU;7sJ#c1 103.186 + c,7t9,7K\I3d]fB$El\jLs7]+Nh>O.MeKeeudV`8E+.]$=P=g6Q=<`lZN$!aL*)`X4]h[$N 103.187 + b@'UXe?/E+/6c<T2fq)h&S^1s@)BBTS8YsmMobsB$HF$k0*]89]Am2_bBi(T9knEUY]p!Bk 103.188 + d]$aE>lBNmGl\sf/9f@lBkN"]oZ*Sq\Fo_788]`[g$a)99A83.]jQ]K0(?Hq+5)F\T0+jnM 103.189 + l4>BYnMN3ro_o/1\eWJ]@)BrDef'".?F<T\j*@f2$Z1E"":4Ubee,>VU0r?"ea225l&+WoG 103.190 + gRX9T%PU]8H15pF>XD%`Y^!b[VM[EMR@NTPD)G)`3PKY1klA$:^2Skt4M*\?XgukdkL3P+= 103.191 + n%Jg0n*nq%;_0sA_E/>t>X*j_+%X0BX=d57Nn^Mb;D.Ej1cY/8F3PeT+/1E%bp:1tm?[`QZ 103.192 + 3,bi/3K/3mhZf6$`UJ,Gh4.t#j4L^:U/G?nJ81YCD_fDjE6IU&<4&7`=aqIQ+&aG8rW%H29 103.193 + PrIqnlJX%gI7D^XB[VB55SM&>`Mq@]Y,4k]&fC,cnKbM%-rT=T0A)K2`@o19CZeA6Pd2XJf 103.194 + kZ0rVGX:/P)(a`lAK#Np'MUEgFDJ?Cf2$^RqK!,MPFm9(9/X]Z+$/0EKp*\DOaMESH+Gl8C 103.195 + KSK<sU>Ecp$mGDOJF:JnDpKl;_mni:t;JNAK)dM]H;Aaa]E_q'JatSG>R'h+1&T=X'\bK8k 103.196 + sKoqDn"ApMC:cf:rU+.ZI.iX)5im]HPL?q>GHK4*B__apeDKZbl3kdHG&/(6foKd+hMd^;O 103.197 + M@dbbFOR@t3D"u#%K4FdG<E/(FD-D;SE]mp@W*-,.S*p19qM&5/oOksY/FKTkkm20kK'A]K 103.198 + Z@_'MS/dsN#d"T2hl4j9RHt3=kAG70#=D8R83KDh1`L`8Q#8U2l^;kYT(7JOI>;Re9Dn_sp 103.199 + *P+CCnUM5@YN!6.i3WNWQ_@s$F<hc0sb;Ef/T:;?0XSt,@#hCAgk<gN2$+)#K#!_LaLgF./ 103.200 + ckA,$!&LA+QCbO9+'`s.XY:;<r.rJ(j3TY:mXg,lPo5q&i'cr[%mJ=l9<IE5W@,&B>JN*+M 103.201 + 3Zld3&((:p4K+ZVu&`13OmY.[AIK7S!-'+id:!$=$F,-RgdO(DLqc6IL\n&>+>aDaJ4b.2i 103.202 + &jF>(SnIK(!ep.NqjX:foo2HrIKEN0d]qs(A>:U1FcZM*,Z`_6fS(f'dQ*[Z8#mXRp<Hf_m 103.203 + .E3Pg@GqeX9<4V,2)-p_@f_U!V%ghe<ndsi>XKb#"Pt*XJ8ek31Ni3:SuYeh+!Ja/N<t9U^ 103.204 + Sl,s&2J<hn.nGCZ,6'*]L[=-/a#$Gk80d"76or]3?s9c?jJRg.1t+i+,/E;'9_(6c(597eF 103.205 + _5rRIc>lnM@?SW;#9#Xt&dD4!sU;/k1J,O%u-:OQTM[8'HOG9Ys+]#]1btHp`p72161(J5b 103.206 + U`&Y$($=pN0d?7-[lP`,ekYW.goU0DJZA.hoT=_=EM#rlqH[0Jk)K_MA=I$(^#)ik'21785 103.207 + >=#"BDQ'\/H80jq&;5SCN(oFU2m1LPe@@U$?@62J?/nM5h)'k"'2H"B9V3JET,A7tq+F+?H 103.208 + ,goJtGBiXK[1QN:iXCoY_ZaMS$u/0F.F[ob0FM;f3sn//UmZ*d$p?s.-\dH)65:_@\`&$,[ 103.209 + U+IiSp8G9O/R'VLK&j^Qfu[!/[Y'3a_#0V.=EIQca%=aLZqF1I=&/_o[M>.AjWJu'5b*1!) 103.210 + `$<;]`hU-W2e5`6o#VaE<4f2&0jlE[kA[rAb1l4R0eQ4@CE^&Z.FeMUq)(/r5c!/6!ID]gB 103.211 + \=#d%I$b_!B'l:C4kZ`]c1*Lfd'rGZWh_^P3[GI3dtip"'lT:c3Z&Cor?e9"P<'uGK"U)ud 103.212 + %XcTPO<2!=XW48\(14lkmcqg,U!hdAE@J2I6dG%VsTWOn3[l3ESX)CXJbH,SkhVM/"I,;"0 103.213 + /r19_(Dof@QPMa&73tY)d&\(=DD[iS&pEA42Zme6"gA<2P`8'Z.^3*`GdEAtWS+Q`IHqLD, 103.214 + *FkfTrEhJ/WgaZQ%6@']&$JF4H2/$O]c%[=^<I5K<Gn)kt$\59BbD&/bm(#21-TND++KJ2? 103.215 + %d+H]I*'9G4mQnd<TW^BVgg<kQ@$)Wh?f6!r(3[D`K[?O<#eP-.TYVM?6*m!YGrQ:o2]IT- 103.216 + t?pGh^X0QjS/M20mu'm*K7%XL">=/u(g$(ZmtKG,i#m&,"`\Z<Sc/O?rfC@?".VBaR>!*`> 103.217 + >p>UP$`oKJY&58Tko6t8YBgm[l'2+pQY'Iip%nRf,_T)-M,1's$PJ]^0:\=NsdM;3m5]a3" 103.218 + <pmZMADXcQn=-74WMS(LF(Mp/kH"#nj!\,hZOj-i@S*/i=BD_d?UBI%%^*C\dg38Fc0`2HC 103.219 + m!')CI#@UqE)2'"5meYPoI912)[RNfd+]dB`%qun/X+;R@'r,M^>LrL>1aICMr*:^?B\o>h 103.220 + nDsa%dg#W+Aq+.Q3J@J.64RG+kk!4J:%S4\7^\bidETUpBTP>73>.I8m#e;j4<g%!!]9+o< 103.221 + dFm*6gQ\=G21[NoN"4bKk\cQ2>/bE(G;/XJ0/V`X68R?72peo-":/?kr8mOg8-[heJ`e8Fo 103.222 + 9IX5NdL$F?i%DHp^2Fgb8IXPB4h<8;oe#/NDaS,WZddF.Aq`g80DhuF#Y.Elor`\YFgTe=? 103.223 + %--er6,pU:LiP6W]*OE8Xp.514d0ALI)N>ZKKA7fIAB4bX[sHpjM?2K$1-OSIW#,bK62-Td 103.224 + W@%l,(;$Mpr&S-I#c\H\%b!$m="'T+Q6UN(oinV/ZJ=RVsLt_3$+ds^+kK=6s.aKH+5#`r: 103.225 + @Y5^@MR%H7U9HoI8rK58PeGKbSdOXcVrtnqjo]kJ/bO&JGta!]Rd.H*DgSP+'lT:l%<&M(4 103.226 + FN$EI:$fV^r14sjcgRp'GDoA^*,j9`^%Ru73Kqo$!c`O^]AYS5'eU[8l)&\DPq2r!pii?uI 103.227 + QadeP@P^E-7YjXBbF,ud>%f>36C\T?Rq(*]A.#]/qo62YcbR!_J]eG:!Gm(I!3P1+bYULtc 103.228 + Y^aMgQ'5VQ^[)uK^s>@k0YN*'-p^\/$,StfJjDqs^/Mq`A/BgWOI>uXZ;_qPK3>AL*lE(F5 103.229 + ,pM/.NbpQM)UqL`(F"*JNQ*<EPd%<6AmIe3CUVXTYLB\M8@A(!/W=CLI6U\]:fKq;")2]]S 103.230 + B0,Nq>3?$=L^>cG7k5$PXqSoAU^*49,LI#kU;?=I;C,kJ<AG[#@K\>VnjSUF4f%`b:&k^kK 103.231 + &c0IO*2XYBR[&PBp]kI&\'.\$JDqPqEEFh\j/`6a"8*)<%;-Gs5]2&ogbg/LS+P_tA3LhO5 103.232 + Z',3^a7M1!uPjr]?qXBV^1.IDb&1C!V1k^TFI7-oZ,FT_kgg7E'&Y1I7*"65p(lLj6V7:$4 103.233 + `^@!pK-WXB^;q1r_##smqb9JRlaYH3`Oq$5HEY:qKs``i%8:aK]99,@"=5T1XpfJDF3hM?O 103.234 + $YCn8m9t?an!7uU'Sj_4;4M8o7WnJ@m4^l5Fc:V4D$JJ=@Xn.6sNtbCdoBAC']3&%$[@,3_ 103.235 + W1M'?Vk$8j&tDXLfK8?^jHDb+n%1+r@gg]=MC*5'2t1lc2R`N^=uo8Y_9g,asT9)p<k]1[N 103.236 + +QS2ST,"\Wlu99[Z<Pe50;cl9X1RlnBD]>9n<eP#f$Z7C[J"/hVF6+h`Ka7uMD'T9u$btD$ 103.237 + Cbe2+Kb)=BWKen*47_;kuX%Q$;j1`am`64L;4"S.*cGt=ZcCF/lCcWF*W&spV'f<Wj<50k4 103.238 + _b/-;`!Mu/N#PMod5nAN6+cWu]P\(8CnS$&8X)fl1S7;[bf_Ob:21#/HmhaK\k]@.:`CM!E 103.239 + YV?mim-;R:@(-hqV=GQ`!D/Y:m`G'XU>4_$qW:nb5D2I2"aStl;6]!`pkr^(tHfH&P^4Yc= 103.240 + <E/r;T1@!)OsZ;41;+)7*$fK:@GC:D4sB>A$e5aO'kW3n4t$D"s%fR#oQ,9RO0E.VHudnkl 103.241 + 54;OJBLZ(b+6e!3n_6gWAG'_=A^+?MG(c6/k"_A#g#S;Y$>5@Fdk\Cf57bX)1^UfAg;I4A1 103.242 + /4:R9#)>J!rkZ(R[5Z@nC,OEoB/AOPo*m4-te!qX(jKSuDS&YO57"jWWU[X.KmRg>(;hX#T 103.243 + <@1Mt(8l3\3s@%]bu7V&S^90BVKupO!8p`5o@!Jt97X32Lp954&l4[eMfS=8Emu!R:/n=me 103.244 + G>J0X;KJVA6)7Be(PelC2(i/OKIje\<Io\"\&pf,LlVK&7eqi]_X@HPRnsIUhKs2PY"amp" 103.245 + $\r<]"@<<HhMhSQ92>8HciN&b+>6Fk*/$<R":bCg'iNF[UA$;(HZW$qFAn-R?BK9J(KkD21 103.246 + Eqla-fu<FkR!X]SKmW1gn?=@gl\km&VqUl'6]V`PMa9p'r+qj2\-^!V*[N8RZP-WifH9\fU 103.247 + rPo%JW\_)>$=kiRNMgnit9>On$d#D/[bGj1RqO:HTg-H!H>cq7AW)cW<+_@>R70l9R7*sbg 103.248 + Tf%7%fZ@<=cW^"H:aN*74aL'rU=Pg5<irWoal#^A1Esb0gM%MZ"R0-e]M#Z<Tf'11-&c&.N 103.249 + EaVY3I1N0RJf$q"M;Xh%@+P%%E7+LY$9Tm[O@>A]mJHj[TnAI78Yj4IE`3i`n^O?3pk$3?" 103.250 + Z,sBWqZU>!:8qZ:RT%L5N*!h.Xl8%GG+".,??Q>OALr9cmZW:+%XG0+r@C,fSUBDHX!Tfu4 103.251 + fb7HZ2gh&icU;Wrl;[Hdi.ls@co!_j+iV<?_3Qef(=?Q*q@M>CPK_$Fko>'ZiD`U[A`\DC5 103.252 + Tau/s$Wbtg:TGok/hq25lmJgP_H/K,Obt*4YH+I5P_91T<R0E=l[KdlhnR-eP+/SQFodi_; 103.253 + 6IO]5?WI>7\W(!7$/l3<@#bh-.GE^Z>N!0.i6:[o*T"mXf2b'.gr:"9WS6;X)e$k&iB^UT< 103.254 + :=7,Md9$He$MDLVB',+^>['W@Tf71iDJS,#0fQ:eUAYINV244NSt'g@bH6?<\@kWKAplH@Y 103.255 + A2mX!-)rA)WDjiLSNSc7iaR:?(t,A!o[D&Ph@3O5i(diiL_].@K2H3b/O7A!TDk.2cX#:1M 103.256 + -Vj45#QV@I*9L1=fPj>KUBSjHtj9FY#j'])7aV5f<QX5n5S@_N?ic9Ppc<"0U9j\Ahc%S`0 103.257 + ?:5GK;i8.>hmDi\],@tau%5q5JhHr?]r(,TV:fG0S2@NL7(<p.WjfV-]Ag68Q?fm1Nhj%'O 103.258 + k!*IDC^LYRPNGu'Q1S.d8*7NjAqk-b.'I4MF(\+mAdQiHk_S%XBOa;aKYDaM0p2ZgHsZ2TB 103.259 + 3'Htrb=:`,%p=pB3h,q-=KN&6]J2P@kK31F(8_A^Z:u;ka[pg$S5nkk[tZgBBF&oG'=4HDq 103.260 + :52B\nU/7ZqB/NflqWku_ifDO5'XBj_rKAl`jl2H/j(Bk]JqAr`+H%U&"LbNC4Ckq7Iop42 103.261 + ELF_U*eAH#Ef=l3r-Uh/,JC5u?[;8R#VeS-))B$RC@hGe6p_!8eLjj(&B2Ql?u9'ZMm>bYu 103.262 + f7YoPpZte`t\H\hpNaHR!^?:5#B9ogf(;";+\^`%<li*pI@bbL+RV<PICaNM)5/q*(]Gp"< 103.263 + >0ZMPIUDGbb@:atS%d##p;QCD<:%RB>4$QO,"6>$[d%H,iI7HbdQS0$d'@%99sXQR6D)qXC 103.264 + @)XNf'/caIbHT;3EY7fD7t!051:b=e/Lm&Lj42_CP"MWGj^T?>?Z%!)*1kOd1;Vag0Gn*S> 103.265 + :#MB9Sckfj+FsVW3m&o:bm=Rm,rl:1iM*&*kD]<4KP6=RKCAgd&m=:Rp\<!_\^Em7D"%8$! 103.266 + *I$,:E3_!alaln\NU74r=oKk2T8muG.+o9uRX$1Lp@n+&n%nd<8L&FT5"nC+(M@DJ%n6uc! 103.267 + ;EDUdtD?8agL[4(QA[^jY$5;qU\oG[#nDZVdo6FC8f(%0$mo\7VrBb*c+Rta]llH@LOrTA@ 103.268 + fs;]]$TncR9S"qJg`h!E[h2,nq[J>n0>aDq4fdt5qB-202b'hfLgKJP$E%bmZkLD6(")9\8 103.269 + hd3RK!74;8&=riiZZk^Db\]-$Yan<0)c,t2G$ee5oTXA.1qBf/rMe-^FIk,YZX4m4Y8Dko/ 103.270 + lF.X\VlR.e4_7nhOltG$5/Y$$!)u+YlOW!4'SjlgGc?^n`fFMIgYcQS@W[`Gk.j2`SFa>[A 103.271 + Z@:+o3FUXTgU3F@f)#W:`$UJ:@_T'_?Dp.J=UpkJLDBg8e-m`.>J^LLK1.eZYEDS2\8rD'L 103.272 + 3;%6l1#]BA!%jkp1f-*(i8-^Q!HT1N*LG^mCFB:=,03K\cMXR_W(6]U.EWbs\V\bjMX^]T* 103.273 + OLqVbCC:"_1&$)bk>)@d'j[/T+C@>Vo,f]j?[-"*NoJP)l*Y['KpS0^<0'D&;PWi:hGt2BG 103.274 + cPZU\:o1K7U//,Kg14q%u#;<?h"cepINhY>*70PrbYt=F[m?D2ThnH=?p!o<7GtT*)h(-E( 103.275 + 8BsF:akBOqb$=k3h>mp0As?%fqG[9.WnlHS9:0"QXY6Suh*==f5iVG)T5rND)bT[hl+>kaB 103.276 + K/n?o#47&OS`3A.Q!\W$,86q6VAEsVUbeG:kQl2N&<LV0"oW-I6uG9=7!;fNRC>kT8LE%Q0 103.277 + N2m.&k+]1oA*!<bIKD4^BCNk*>Hp:7Tj4sT,R_K6SIFh7Er!pqn3;mc]NKhQ]'#/gEe9m@3 103.278 + GA_#?\V'h&*"0C_6Ss;2O4%0jK>G3X<2'nD"Xa1<M7YgPr(UZ!L5c(t]j1#pmKW7^Dnd[j3 103.279 + /E-)]4HIV&6X4\[^31-n0MZ<[E]$X!X&LQ_-kW7/.NBrKL91ppk2*_'8f4fd<NSMi>[KfNt 103.280 + M02L.*>F+lq&')bO*TInO.3pVb&<1O@;X08J?Eq`BXq-dg=Y#"_1V7>'*7m.bipVGh3YpbQ 103.281 + NX9r^]b[<QM^[9Ke!WeB#YDCo=TfceTJ7=MjaJjc]k3n-p^(qIKN[0st9ob2<%CN<rJ6@pe 103.282 + ^:p5+k7OA(=[6i3,op/'*n;Q2jf,/gL2'&p<eG8m1?$gA5WUdTX[\BI/BObnID+p]>ZeAA6 103.283 + Fh%8-CV,D\.rqMOZ<],2nRd/m[,,j#S\JgDpg+JV[A/MV1[^lJ[11\W9ca)UWt2H(m&[oKr 103.284 + Un'4d:E0cbeKT"jFm@^+"r!p\,6/NYN[hGTWk,*q#\/]U5K.=-rM2UTk]^qW2`DQdgDhnRn 103.285 + Bfpj$VVs^($#bVSC:&g5Wp^)W^c\d9@7<X%gf?g,I1'JDhTlH2-Bk/ja13-V<;CV*K$XT^' 103.286 + ,R>_s`0/#up+_lMQ,qS*U5oRo"gd]BNBOCYg7/s0+!.\nYLRXn'$<7%>WBgVn$Y`=VN1sS] 103.287 + 5U689M1_A7qW&-8\6Y[hma,c&CY8#,lr5o"5l5ZuYQaAS9LX,L^.#5d`6t&]enX<;nUe,B? 103.288 + QmPD!Cm_bNCRuS<FOEN$+_k"[=JC_U)MPOl7-e*k("Eg.Tp#A#KMlk"\;++`;d!7+88Qk;c 103.289 + )>so<S;PcnLuE#*"bAb$Mk1_)#!fq9@>52B[*5o8ss!jFn4:%?-"V9L!qu,1JT1%nj?5D$+ 103.290 + l4dT!@mT+<iQTi<!>AKj9=4(d"W&SMrkaDj^/A2.eM_>/,h:fTXiV9N^tGOA".O7g?(,7Bp 103.291 + VNZq`Jd?"bgYY:>oN=dYm`H6$\W\YWkG[.XhO"@<fC4%6tG;\o";f&bAV6.uLBP\Ab2j`mQ 103.292 + B#,mDcaBe:ohc19YIp^h3:l-"C3E<HR7F'SfT_M+aL$d)YZpnrcl4JkM42N"T+DUluK0p(D 103.293 + #J1S9'n9BN)NDdITQAu]DlnCUgAC!q55]t.>+Ht8F#MaO^nD<p%DH^qc>8'p#]=a<3aFl0T 103.294 + 4Q[Pc_quug:'DCX^b!0+h[gaas%i*!43pj-LSU@gi<S>+S_9MM0XUVFkBD,Z3P[Oa@<UlCT 103.295 + ,7eIO=q)C4#m/4pC?(W^U7\I7qn*f;$&/TSkQOQfRj5=q;DuEpKraYiQKue._RR`c^#g7Z_ 103.296 + 0=)-V88$3$"[55n(e%t3YuMl+DmZk*m4K':2,+#kJ)*MF'q`G*^3'a4a]!)7%.ncZcg.0Z@ 103.297 + V<Aj7[aM;g<%74kSKBCgH,5/8P`-auT0chT.JZBF2ZMRU2fs.PfIWM4Y(N'?^\OBDd`1/Pd 103.298 + E6?uo(Xl!N@DK0iO=CCM7REGH9E@J`9gM5M%VVJmQ%BUF42:>.(u__,/+6Lr1/]TJN@]2sX 103.299 + r7,Rpp<TJ8HO$F+kD`6?R!hO5'F3r1eE9-db1$*OG83O-f_pT@lsaQEJdR5pq5FY8erQY3] 103.300 + IuOj?]Q:Wf=#\NQ>7>*MfC:HNXZB9@BF,=5p#_nO\8M8VFr&@g[Y5/ndrsV)6\tN;sSRK?4 103.301 + `0,j(oY019sG:$KVPjnJhC1QClD2oQHU4(NaqFt8(KZT9J0oq'XfLs9Y<6)N!/S!2i^1'^N 103.302 + =BHo@(Z^uc1f><Q1iQ7JsQ>o\<k<`jY'r&saI6k;_#@2@iU@\WQ8g)MOkp"9CnIC_Cq2#dE 103.303 + M)^B6U5;S?;bZGP2*fZ%^qmtH7p%W,RVY"1Ypt/ud9S+Y<77%mL&.c_FNLBn27V*bM,`c:< 103.304 + @!gf2_?M]&'J4aX*&h+`"b"!.4n,jEuq4+$,'#17:<7J^9?(EF]PPqYTRUs;BflA?H^;WVR 103.305 + 7`@%p-t<haGVhF[@WZ.f!Q?AI5M=DOnm!4_&<)Q(GD[Ue[nI'Im[JWTRFXf%Vcim3L/cm]q 103.306 + jU.XPlHAZ^kk@[Ye]NB=3un?EYL`EM9pKH?\.46^&cgT-#UTZYQT<hd[[]-hR@c+I<"Tafc 103.307 + ^NH6_G(Ub$TficJFB;Zbd\u"C((<$DFQui!tl;I2@)p``^V5KIlVWD!nfMQPnCV41YoSY6N 103.308 + S?L37^2+kVelgNj&`pC+koTkh7\2lp'a#QA5gn.20*tNUQGFuhpJ%.95H\</,5<b7)#PD-% 103.309 + /plZ;;hF^Ccm9Q%4&PB[dF_>Q]/o?29+::[pA?$87>X/_96-sS\.s_ce]P3Qu7E767Isd<^ 103.310 + 1<.U.XJdP`0U!+3!qsQ_Y:g:E>0Nb'6Z=Q]-Z.Eun[IGo2.Zgln.rmSG03Pk!idfRGZY(Wu 103.311 + Jj/?h7GC9m69U3Y",8loX51CTliq(b=HCP/*u-57X")DW04-!mqZI(5t)IHI&^LNKVK9\N= 103.312 + ;B[mWeZp>(=g+H(a.;qC]5c<$Rnb_N%3^<5:ee\,;1M`P(Y(n@;M62BFfK<V2(a`L0q0Q8+ 103.313 + Lq75Y##EcQY@ZojmgM+%]HOMO65B6CZ<4Bt.p?J5k,gYFp5>!bXWM<$c-$8KS-[iE:M`ABZ 103.314 + rFKm%G%\umZN`6VsMecYW*RR.]>Jbp."_kkY;@AD.Mb8G,uZ1Q:3S2ql)gbW0G5Rd1P2EW! 103.315 + FsuO2Y%OjZLr#FPZNEXUg)@c9mHLd0S+S7.g"**_1I^H/YWRX7<;=AK6UA@iU,]CH_+MpW3 103.316 + J`jBk"<%/%EE2[%IXkC[[c[$C3+/EZ%KRmC\?7N/W-@r=qO)K$#*pD517_uH\KNi;NTIWDr 103.317 + fG_L:=fsQX&>r"QmT+J!>Z?dI2kb&$QO`$@MkBRQi\as>'qaK36EIHYRUUbM`_`-M2_fOmu 103.318 + q8qIYff:^EdJc/<(;D*Fo-]gG?=1/2o"i/SlYc1j"H(R4NIcI'[IDl;pugBt1V@(doAbVHi 103.319 + 56YS4IHp>Dr6F8+!i%cUnQU,[j?=CPD;4Y^@Ar?d$:`fgrUYY1-[%er(i\Jrcc]`\c^NkT3 103.320 + o=ac3*cQ,Gf3PEV2KG#l;JF#Ul.TWdd)W25pB$:W1dr./_)Po5-*ll]/[IVTj&IGiGV$!X/ 103.321 + O@/gA28JZ&)>:?^DmbieFqhQP@BO4H9Bpf&]nWCpjsV,FINW8Om",)ebe$iL$c`qSZg(T*- 103.322 + s:9Ok@#6hssqG:5uU*BjRAHIH/R`%h]L.MW3G6:Rq#>g!r&3sli7+^p%XRG-lmgf(F')-.8 103.323 + pTU=fOMW2sVZLaPs00`PJg+&E<t#RJmL+uO.j500g<l"(:9_fhE1IF,PmO0,%;pe.M/XL<E 103.324 + 3+iP$BRf8`km+bYkILPnID)tWtPm2!sl-!"#2FP&CMa6n58^)#ga-*:_^fD(u0*nJ'dQSbY 103.325 + \U!p*$\$'Z)(%7VNG&gB=FoI#Wg*0BEem[h95<nV/%GVk35V'T`n)![%L*&Loks:4afpQ,4 103.326 + r5Lg:nX-=`(gnW84XDU0.-VID97+E<8^d@;418H6Wo*'u4q0p3^MWZ3[?(+'n7B"[$*::j@ 103.327 + ?+gA?QOLZ1Qc>KPD*Nj^,ENFCt#Vj4<N9@),@K,<*l>u,I&.&"QO&Uf\"r-5-DU3_M%\"Q' 103.328 + ,':*nj/'L51&`@P)^*QM+7]uuiXI&E,:%g7j_'Bk0t;0oF!Hi#o?lE&n`$)oC8HlnWQkSUA 103.329 + f1cS\GW+.IY9<uE%]N](l*n-N2Uk7&sF0s<cI%>m3l*GX_/k5*piHT/Wu.hd\MYn??">]L@ 103.330 + $79"`4c)"Y!/?-GgcQkUA#64!t3r-VfdFC)\52&0/"P)m]Jt!QQlilEi5bMiY17#44$P0TV 103.331 + C:ogc$J$_I,Yq#>&C%1tHA%:'h7raN,riT!,PmPbG-0bap7'MOQ%O/h'C%M=l'0k)djY;-E 103.332 + j+H>t<`%rho@K/+30Q49`1Ld='%D+MR$J#]2!Rg7=o'Z!Cgdc9rXY1$MEebD$VQKEu(R(g[ 103.333 + $K!iIg_9:j#'7OA'>PQ.`sSk*`Y!7"d3?%3-Ta-<W0=>*1Yk5eWB4h6n8k2pe"ZA2k<G0f1 103.334 + o[Z8m56aWq`p$S5,lLbm>!hZpHZ)(U=8'%ZlMJ)nNc?OYRtc#o?`qiV*]8bSs1B4ZopfKWC 103.335 + !Sr5r:G`;q0.c7n&>15OH8QZs-!k]gSj!7.Pf$1\X@\G+(6R2,nil#N&"MVaft%6$!E)1m3 103.336 + a'I7[D,K(Oed:LuPii<:aD7oZ$P#>[pUZV-%Z8dV7`Z_3ad3D6a%=]Dk(eC%Nb^7#bR5;^D 103.337 + Qo[Q]*@nd[#:;nYVM3gr\%nRK(:W1^W[/Wrj=\gK#6KZ6''QC;Je0&-f;:Qad'dHUV-W63[ 103.338 + ;UmF!'f/cg2cGu';q4*3'gkr#7oYaH<7OcE'iS+4=&kMi;;_a]"9/i]O=PHZ<n2+i'm!GVG 103.339 + ?:&V=4Me&'n]TG-WlK:W9[q7D?!5&+r$<2&J^pA!BXI`#m6Hn>1Kf\'sh+E[p,-0>LgJn'u 103.340 + O9V`dUlp_fa(,("6Ggf3OZr?.Ih=(#rO+&C/_q"V^D0;6jsdj'Ga_?e,0a('@rF#@NhK>gK 103.341 + <U[M*(M(L`UK@FcN)p#r."pF$dKC4N^%!/Y2d2e/.8A(EkT(.2V57q@oYACaOf(/ndF=(R\ 103.342 + %A_(4#(1UrWB4dHFB%Cm5(3=(#&g5!5B@_3=(5$:$LM3!3B\&5Y(6`H5QYDab':,5J;n<Y6 103.343 + _ePCT)fVgmPc8"*.jJ%!CY$7:(;g8!:.C;t*`,LF.GJ!FFXT/eD:[T^(?.QBPkI!%*k'Z.0 103.344 + BYY[j_pI^Dq=n9QKTNY.-Yp0E#0%)(DCd)"<qt!4S9G-0m>f?'loWkEn92hJgGEWb<n33&[ 103.345 + r3ipHs%(7nM;f+u]gFQ7[3F=*9j67@-[l(K#336$:dpG1UXHf3fcfZY`aPE48hk(P?s6LB6 103.346 + "K+k3>A<q18*JU!NNH.SY3f8QD(m;_cXH$6fG(UJHi[_):0+W"Z4^ls.:P)/%?I+PoW(Xme 103.347 + *8UJ;bHl(C`(ZTs;=ad"RF)(r#\#k+'pOAP+X:9%_m<=(TH5r-l-`liZfDU8&(P.KuIJ=b5 103.348 + (aFW)iIUbOK%M`/$aD^YPBYY8K@iDA$3PmSRP4a1K\0(S(fQ,j=,!#;J-0DfG[#o)B81u0L 103.349 + ;RUBpiD1WGDDP\*;Ft@@=O)8H\e%k&,;/D@nVWfQ\>GnM8OLmTc],YVA8m,L'Pt\Gd7hSC` 103.350 + 3"fLKLs@R!p%8An"lYM3sG^ps"T(S.bUiLq(ujR&Un]GE*Mr`rcj-+hs&IH]2(J>PRrJK6N 103.351 + >Y!JX^N2gF#;Qs5S=%>82Y?^7m*8:_=p_A'O12IVB)'u]eInF-%O!Vno<Fta;(^I;W*T=(s 103.352 + 63DqbLb?HtV'Y,l\28bVeTG#pn>ZjF()+a$19jI@rPp"L6FiBZ?/X?EmP?,m]q1k9rCR=_/ 103.353 + Ddr;[),ZYe$^%0AOnGo@,+k-cZ'F"#R.*R"3BLET4otJ!P]a[(U@jcHI@=ogP'+U1UD8t1N 103.354 + L!_/06rgf3R*mhfpu8m>5<Z828bf,]q2dM0cBLd"*^0@]p[mMRQ9&g)6$aq0X-d<.J^/Nfs 103.355 + 3'[[p&Ue0feEdj(FlY3LlN1SJcXD[Lo5O<if<9UVd\>)@ABK&R5*+>Ii083S0o!g,=51QF[ 103.356 + B-).k>oBj9:+PrYC'3ZS-EV4o41Ie*6.@Q#7\VlH2dWnOYW)RHGrN](H7X'39>)T#!3AiY1 103.357 + TXP2"#KQ2n.n#[M_X!-B'"*P`SkH3J(WhJOX"*P_HpTE6H?eW(;])/]th5k*$XLe_?g=.iD 103.358 + Dm:5JY$1(p]$IP\jf_k`Z9$76j(kssg*Z[;-Ta8h)\b"g)71=+2eDrp]"bFWi\u33[5t_%3 103.359 + h:S[I=G?d[bG`0#q;=TF17Wc\&ITW':hEnJ%1u+\A_U\2RFQ1QaXMe\_Eaf"*dcIRR[L&Y] 103.360 + kH)@J$e!S%G0%]A(*5)oK<ma1Rnb]\CcG)q2K)f=d[.^"_GY)rnY:kJ!GO^>&+k)tUgKpV3 103.361 + 3p^YAe(*!<u]#Jci;^t]I:*#$.n(VuUU7g#&"+9~>Q 103.362 +Q 103.363 +showpage 103.364 +%%Trailer 103.365 +count op_count sub {pop} repeat 103.366 +countdictstack dict_count sub {end} repeat 103.367 +cairo_eps_state restore 103.368 +%%EOF
104.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 104.2 +++ b/0__Papers/VMS/VMS__Foundation_Paper/VMS__Full_conference_version/latex/.pdf Sat Aug 03 19:24:22 2013 -0700 104.3 @@ -0,0 +1,31 @@ 104.4 +%!PS-Adobe-3.0 EPSF-3.0 104.5 +%%Creator: PDF2EPS - BaKoMa TeX Portable Document Format (PDF) Import Filter. 104.6 +%%Title: ..\figures\Proto-Runtime__mdoules_plus_plugin_plus 104.7 +%%CreationDate: Sat May 04 20:18:38 2013 104.8 +%%LanguageLevel: 3 104.9 +%%DocumentData: Clean7Bit 104.10 +%%BoundingBox: 0 0 612 792 104.11 +%%Rotate: 0 104.12 +%%EndComments 104.13 + 104.14 +%%Error: Can't find image 104.15 + 104.16 +%%Page: 1 1 104.17 +newpath 104.18 +0 0 moveto 0 792 lineto 612 792 lineto 612 0 lineto closepath 104.19 +1 0 0 setrgbcolor stroke 104.20 +0 0 0.5 setrgbcolor 104.21 +/Times-Roman findfont 30 scalefont setfont 104.22 +0 396 moveto 0 90 rmoveto 104.23 +gsave (Filter:) gsave show grestore 120 0 rmoveto (PDF2EPS) show grestore 104.24 +0 -30 rmoveto gsave (File:) gsave show grestore 120 0 rmoveto (../figures/Proto-Runtime__mdoules_plus_plugin_plus) show grestore 104.25 +1 0 0 setrgbcolor 104.26 +0 -30 rmoveto gsave (Error:) gsave show grestore 104.27 + /Times-Roman findfont 24 scalefont setfont 120 0 rmoveto (Can't find image) show grestore 104.28 +0 0.5 0 setrgbcolor 104.29 +0 -60 rmoveto gsave (Hint:) show grestore 104.30 +/Times-Roman findfont 24 scalefont setfont 104.31 +0 -30 rmoveto gsave 20 0 rmoveto (Open the file by Acrobat and then save) show grestore 104.32 +%%EndPage 104.33 +(\nPDF2EPS Error: ../figures/Proto-Runtime__mdoules_plus_plugin_plus - Can't find image\n) print flush 104.34 +%%EndDocument
105.1 --- a/0__Papers/VMS/VMS__Foundation_Paper/VMS__Full_conference_version/latex/VMS__Full_conf_paper_2.tex Thu Feb 21 23:27:44 2013 -0800 105.2 +++ b/0__Papers/VMS/VMS__Foundation_Paper/VMS__Full_conference_version/latex/VMS__Full_conf_paper_2.tex Sat Aug 03 19:24:22 2013 -0700 105.3 @@ -52,12 +52,13 @@ 105.4 105.5 105.6 \authorinfo{Sean Halle} 105.7 - {Open Source Research Institute} 105.8 - {Email1} 105.9 + {Open Source Research Institute, INRIA, 105.10 + and TU Berlin} 105.11 + {seanhalle@yahoo.com} 105.12 \authorinfo{Merten Sach} 105.13 {TU Berlin} 105.14 {msach@mailbox.tu-berlin.de} 105.15 -\authorinfo{Ben Juurlink} 105.16 +\authorinfo{Benjamin Juurlink} 105.17 {TU Berlin} 105.18 {b.juurlink@tu-berlin.de} 105.19 \authorinfo{Albert Cohen} 105.20 @@ -68,9 +69,9 @@ 105.21 105.22 105.23 \begin{abstract} 105.24 - Domain Specific Languages that are embedded into a base language have promise to provide productivity, performant-portability and wide adoption for parallel programming. However such languages have too few users to support the large effort required to create them, resulting in low uptake of the method. 105.25 -To solve this, we introduce a proto-runtime approach, which reduces the effort to create and port domain specific languages. It modularizes the creation of runtime systems and the parallelism constructs they implement, separating the language-construct logic and scheduling logic away from the low-level runtime details of concurrency, memory consistency, and runtime-performance related code. 105.26 -As a result, new parallel constructs are written using sequential reasoning, and are easily reused across languages, and scheduling of work onto hardware is under language and application control, without interference from an underlying thread package scheduler. This enables higher quality scheduling decisions for higher application performance. 105.27 + Domain Specific Languages that are embedded into a base language have promise to provide productivity, performant-portability and wide adoption for parallel programming. However such languages have too few users to support the large effort required to create them and port them across hardware platforms, resulting in low adoption of the method. 105.28 +To solve this, we introduce a proto-runtime approach, which reduces the effort to create and port domain specific languages. It modularizes the creation of runtime systems and the parallelism constructs they implement, by separating the language-construct and scheduling logic away from the low-level runtime details, including concurrency, memory consistency, and runtime-performance aspects. 105.29 +As a result, new parallel constructs are written using sequential reasoning, and are easily reused across languages. In addition, scheduling of work onto hardware is under language and application control, without interference from an underlying thread package scheduler. This enables higher quality scheduling decisions for higher application performance. 105.30 We present measurements of the time taken to develop runtimes for new languages, as well as time to re-implement existing ones, which average a few days each. In addition, we measure performance of proto-runtime based implementations going head-to-head with the standard distributions of Cilk, StarSs (OMPSs), and posix threads, showing that the proto-runtime matches or outperforms on large servers in all cases. 105.31 \end{abstract} 105.32 105.33 @@ -79,14 +80,14 @@ 105.34 105.35 105.36 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 105.37 -\section{Introduction} 105.38 +\section{Background and Motivation} 105.39 \label{sec:intro} 105.40 105.41 [Note to reviewers: this paper's style and structure follow the official PPoPP guide to writing style, which is linked to the PPoPP website. We are taking on faith that the approach has been communicated effectively to reviewers and that we won't be penalized for following it's unorthodox structure.] 105.42 105.43 -Programming in the past has been overwhelmingly sequential, with the applications being run on sequential hardware. But the laws of physics have forced the hardware to become parallel. This trend will force nearly all future programming to become parallel programming. However, the transition from sequential to parallel programming has been slow due to the difficulty of the traditional parallel programming methods. 105.44 +Programming in the past has been overwhelmingly sequential, with the applications being run on sequential hardware. But the laws of physics have forced the hardware to become parallel, which will force nearly all future programming to become parallel programming. However, the transition from sequential to parallel programming has been slow due to the difficulty of the traditional parallel programming methods. 105.45 105.46 -The difficulties with parallel programming fall into three main categories: 1) a difficult mental model, 2) having to rewrite the code for each hardware target to get acceptable performance and 3) disruption to existing practices, including steep learning curve, changes to the tools used, and changes in design practices. Many believe that these can be overcome with the use of Domain-Specific Languages []. But such languages have been slow to adopt, we believe due to the cost to create and to port across hardware targets. This cost makes them impractical given the small number of users of each language, which is specific to a narrow domain. 105.47 +The difficulties with parallel programming fall into three main categories: 1) difficult mental model, 2) effort to rewrite the code for each hardware target to get acceptable performance and 3) disruption to existing practices, including steep learning curve, changes to the tools used, and changes in design practices. Many believe that these can be overcome with the use of Domain-Specific Languages []. But such languages have been slow to adopt, we believe due to the cost to create them and to port them across hardware targets. The small number of users of each language, which is specific to a narrow domain, makes this cost impractical. 105.48 105.49 We propose that a method that makes Domain Specific Languages (DSLs) low cost to produce as well as to port across hardware targets will allow them to fulfill their promise, and we introduce what we call a proto-runtime to help towards this goal. 105.50 105.51 @@ -104,7 +105,7 @@ 105.52 105.53 %\item The modularization is consistent with patterns that appear to be fundamental to parallel computation and runtimes (\S\ ). 105.54 105.55 -\item The modularization cleanly separates hardware oriented runtime internals from the logic of the language (\S ). 105.56 +\item The modularization cleanly separates runtime internals from the language-specific logic (\S ). 105.57 105.58 105.59 \item The modularization results in reduced time to implement a new language's behavior, and in reduced time to port a language to new hardware (\S\ ). 105.60 @@ -116,7 +117,7 @@ 105.61 105.62 \item Part of the time reduction is due to encapsulation of hardware aspects inside the hardware-oriented module (\S \ref{sec:intro}). 105.63 105.64 -\item Part of the time reduction is due to languages reusing the effort to performance tune the runtime internals on each hardware target (\S\ ). 105.65 +\item Part of the time reduction is due to reuse of performance-tuning effort spent on runtime internals (\S\ ). 105.66 105.67 \item Part of the time reduction is due to using sequential thinking when implementing the language logic, enabled by the proto-runtime protecting shared internal runtime state, and exporting an interface that presents a sequential model (\S\ ). 105.68 105.69 @@ -127,21 +128,21 @@ 105.70 105.71 \item 105.72 105.73 -The modularization also gives the language control over placement of work onto the hardware. This allows application information and language semantic information to be used in decisions of which core a given unit of work executes on. This can result in reduced communication between cores and increased performance (\S\ ). 105.74 +The modularization also selectively exposes hardware aspects relevant to placement of work, giving the language control over placement of work onto the hardware. If the language takes advantage of this, it can result in reduced communication between cores and increased application performance (\S\ ). 105.75 105.76 \begin{itemize} 105.77 105.78 -\item Similar control over hardware is not possible when the language is built on top of a package like Posix threads or TBB, which has its own hardware assignment (\S\ ). 105.79 +\item Similar control over hardware is not possible when the language is built on top of a package like Posix threads or TBB, which has its own work-to-hardware assignment (\S\ ). 105.80 105.81 \end{itemize} 105.82 105.83 -\item Modularization with similar benefits does not appear possible when using a package such as Posix threads or TBB, unless the package is modified, to conform to a proto-runtime interface, or else used according to the proto-runtime pattern (\S\ ). 105.84 +\item Modularization with similar benefits does not appear possible when using a package such as Posix threads or TBB, unless the package itself is modified, and then used according to the proto-runtime pattern (\S\ ). 105.85 105.86 \end{itemize} 105.87 105.88 -The paper is organized as follows: We first expand on the value of embedded style DSLs (eDSL), and where the effort goes when creating one (\S \ref{sec:DSLHypothesis}). We focus on the role that runtime implementation effort plays in the adoption of eDSLs \S, which motivates the value of the savings provided by the proto-runtime approach. We then move on to the details of the proto-runtime approach (\S ), and tie them to how a runtime is modularized (\S ), and how this provides the claimed benefits. 105.89 -We then provide overhead measurements (\S ) and implementation time measurements (\S ), which show that the proto-runtime approach is performance competitive while significantly reducing implementation and porting effort. 105.90 -Next, with the full understanding of the proto-runtime approach in hand, we discuss how it compares to related work (\S ), and finally, we highlight the main conclusions drawn from the work (\S ). 105.91 +The paper is organized as follows: We first expand on the value of embedded style DSLs (eDSL), and where the effort goes when creating one (\S \ref{sec:DSLHypothesis}). We focus on the role that runtime implementation effort plays in the adoption of eDSLs \S, which motivates the value of the savings provided by the proto-runtime approach. We then move on to the details of the proto-runtime approach (\S ), and tie them to how a runtime is modularized (\S ), covering how each claimed benefit is provided. 105.92 +We then show overhead measurements (\S ) and implementation time measurements (\S ), which indicate that the proto-runtime approach is performance competitive while significantly reducing implementation and porting effort. 105.93 +With the understanding of the proto-runtime approach in hand, we then discuss how it compares to related work (\S ), and finally, we highlight the main conclusions drawn from the work (\S ). 105.94 105.95 105.96 105.97 @@ -151,13 +152,13 @@ 105.98 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 105.99 \section{Background: The eDSL Hypothesis} 105.100 105.101 -[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 105.102 +%[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 105.103 105.104 -[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 105.105 +%[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 105.106 105.107 -[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 105.108 +%[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 105.109 105.110 -[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 105.111 +%[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 105.112 105.113 Domain Specific Languages have been around for a while [], and recently have been suggested as a good approach for parallel programming[][stanford PPL]. 105.114 105.115 @@ -169,58 +170,303 @@ 105.116 A style of domain language, which we feel has good applicability to parallel software development, is the so-called \textit{embedded} style of DSL (eDSL) [] [metaborg][stanford ppl]. In this variation, a program is written in a mix of a base language plus domain language constructs. The syntax of the two is intermixed. A preprocessing step then translates the domain syntax into the base syntax, and includes calls to the domain language's runtime. 105.117 105.118 105.119 -For example, C (or Java) is used as the base language for an application, and custom syntax for constructs from a user-interface eDSL are mixed-in. To test the code, the developer modifies the build process to first perform the translation step, then pass the resulting source through the normal C (or Java) compiler. The resulting executable contains calls to a dynamic (or shared) library that becomes linked, at run time, to a runtime implementation that has been tuned to the hardware it is running on. 105.120 +For example, use C (or Java) as the base language for an application, and mix-in custom syntax for constructs from a user-interface eDSL. To test the code, the developer modifies the build process to first perform the translation step, then pass the resulting source through the normal C (or Java) compiler. The resulting executable contains calls to a dynamic (or shared) library that becomes linked, at run time, to a runtime implementation that has been tuned to the hardware it is running on. 105.121 105.122 - language, with domain language constructs are intermixed with constructs of a base language, such as C or Java. 105.123 + 105.124 \subsection{Low learning curve, high productivity, and portability} 105.125 -Domain experts are familiar with the concepts expressed by the custom syntax, which makes DSLs quick to learn, especially for experts in the domain, who are \textit{not} expert programmers. Embedded style DSLs further reduce learning curve because they have relatively few constructs, and require no new development tools nor development procedures. Together, these should meet the goal of a low learning curve for switching to parallel software development. 105.126 +DSLs are generally quick to learn because the domain experts are already familiar with the concepts expressed by the custom syntax, especially for those who are \textit{not} expert programmers. Embedded style DSLs further reduce learning curve because they have relatively few constructs, and require no new development tools nor development procedures. Together, these should meet the goal of a low learning curve for switching to parallel software development. 105.127 105.128 -A well designed syntax also, simplifies the code, modularizes it, and encapsulates the major performance aspects. Simplifying reduces the amount of code and the amount of mental effort. Modularizing separates concerns within the code and isolates aspects, which improves productivity. Encapsulating performance inside the DSL constructs removes them from the application programmer's concerns, which also improves productivity. 105.129 +Productivity can be enhanced by a well designed syntax, which can simplify the application code, modularize it, and encapsulate performance aspects inside the language. Simplifying reduces the amount of code and the amount of mental effort. Modularizing separates concerns within the code and isolates aspects, which improves productivity. Encapsulating performance inside the DSL constructs removes them from the application programmer's concerns, which also improves productivity. 105.130 105.131 -Perhaps the most important productivity enhancement comes from hiding parallelism aspects inside the custom DSL constructs. The language takes advantage of the domain patterns to present a familar mental model, and then attaches synchronization, work-division, and communication implications to those constructs, without the programmer having to be aware of them. Combining the simplicity, modularization, performance encapsulation, and parallelism hiding, with congruence with the mental model of the domain, together they should meet the goal of high productivity. 105.132 +Perhaps the most important productivity enhancement comes from hiding parallelism aspects inside the custom DSL constructs. The language takes advantage of the domain patterns to present a familar mental model, and then attaches synchronization, work-division, and communication implications to those constructs, without the programmer having to be aware of them. Combining the simplicity, modularization, performance encapsulation, and parallelism hiding, with congruence with the mental model of the domain, together work towards the goal of high productivity. 105.133 105.134 Portability is aided by the encapsulation of performance aspects inside the DSL constructs. This means that the elements of the problem that require large amounts of computation are often pulled into the language, which isolates the application code from hardware performance concerns. Only the language implementation must adapt to new hardware in order to get high performance. Although such isolation cannot always be fully achieved, Domain Languages hold promise for making significant strides towards it. 105.135 105.136 -\subsection{Embedded Style DSLs provide low disruption} 105.137 +\subsection{Low disruption and easy adoption} 105.138 + 105.139 +Using an eDSL tends to have low disruption because the base language remains the same, along with most of the development tools and practices. 105.140 + Constructs from the eDSL can be mixed into existing sequential code, incrementally replacing the high computation sections, while continuing with the same development practices.\subsection{ Few users means the effort of eDSLs must be low} 105.141 + 105.142 +What appears to be holding eDSLs back from addressing the challenges of parallel programming would be mainly the time, expertise, and cost needed to develop an eDSL. Because the number of users is small, the economic model of the past doesn't apply. For sequential languages, the potential user-base is in the millions, but for a parallel Domain Language, the user base may be only a few hundred developers who will use the language. 105.143 + 105.144 +As such, the effort to create a usable eDSL needs to be reduced to the point that it is viable for that size of user base. 105.145 + 105.146 +The effort to be reduced falls into three categories: 105.147 + 105.148 +\begin{enumerate} 105.149 +\item effort to explore the design and create the eDSL syntax 105.150 +\item effort to create the runtime that embodies the eDSL behavior 105.151 +\item effort to performance tune the eDSL on particular hardware 105.152 +\end{itemize} 105.153 + 105.154 + 105.155 +\subsection{Critical areas of effort in the big picture} 105.156 + 105.157 +Across the industry as a whole, when eDSLs become successful, there will be hundreds of Domain Languages, and likewise hundreds of different hardware platforms that each language must run efficiently on. That multiplicative effect must be reduced in order to make the eDSL approach economically viable. 105.158 + 105.159 +The first category of eDSL effort is creating the front-end translation of custom syntax into the base language. This is a one-time effort that does not repeat when new hardware is added. 105.160 + 105.161 +The effort that has to be expended on each platform is the runtime implementation, which includes hardware-specific low-level tuning, and the tuning of the domain construct implementation. 105.162 + 105.163 +Luckily, hardware platforms cluster into groups with similar performance-related features. This opens the door to an approach that can present a common abstraction for all platforms in a cluster. Examples of clusters include: 105.164 + 105.165 +\begin{itemize} 105.166 +\item shared coherent memory multi-core single-chip machine 105.167 +\item shared coherent memory multi-chip machine 105.168 +\item independent address space coprocessor (GPU) 105.169 +\item a network of nodes of the other categories 105.170 +\item a machine with a hierarchy of sub-networks 105.171 +\end{itemize} 105.172 + 105.173 + 105.174 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 105.175 +% 105.176 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 105.177 +\section{Our Proposal} 105.178 + 105.179 +We propose addressing the runtime effort by defining a modularization of runtimes. The low-level hardware details are collected into one module, which presents a common interface for all platforms sharing similar performance related features. This module only has to be implement once for a given platform, then reused by the languages. 105.180 + 105.181 +Thus, a given language doesn't have to re-implement its runtime for every platform. Instead, it has a much lower effort requirement of implementing for each category. 105.182 + 105.183 +The language effort is further reduced because the language doesn't 105.184 +consider the low-level details of making the runtime itself run fast. It 105.185 +only has to consider the level of hardware feature that is exposed by the 105.186 +interface. This is a higher level of abstraction, which simplifies the task 105.187 +for the language implementer. 105.188 + 105.189 +In this paper, we present work that applies to coherent 105.190 +shared memory machines, both single chip and multiple chip. Extensions beyond this are currently in progress, to address multiple-address-space machines and hierarchical networked collections of processors, which will appear in future papers. 105.191 + 105.192 +\subsection{Breakdown of the modules} 105.193 + 105.194 +The language is broken into two parts. One is a thin wrapper library that 105.195 +invokes the runtime and the other is a set of modules that are part of the runtime. 105.196 + 105.197 +The runtime consists of three modules. One encapsulates the low-level hardware details, and presents an interface to the language modules. We call 105.198 +this the \textit{proto-runtime}. 105.199 +It's job is to enforce the interface that the language modules see. 105.200 + 105.201 +The language has two modules, both of which are collected in what we call the \textit{language plugin}. One module encodes the behavior of language 105.202 +constructs, the other module provides logic for choosing which work to execute on 105.203 +which hardware resource. 105.204 + 105.205 +The plugin collects the two language modules into a dynamic library that is implemented, compiled, and distributed separately from any application executables. This is how a non-changing application executable is able to invoke plugin code that can change between machines. The executable contains only symbols of plugin functions, and during the run those are linked to specific functions' implementations. 105.206 + 105.207 +In order to provide such modularization, we rely upon something we call a tie-point as the primitive upon which synchronization constructs are built. The low-level nature of a tie-point places them below the level of constructs like a mutex. Instead, a mutex is implemented on top of tie-points. This places all parallel constructs on the same level in the software stack, be they complex like the AND-OR parallelism of Prolog, or the wild-card matching 105.208 +channels in coordination languages, or ultra-simple acquire and release mutex constructs. All are implemented in terms of the same tie-point primitives provided by the proto-runtime. 105.209 + 105.210 + 105.211 + 105.212 + 105.213 + 105.214 +\subsection{The origin of tie-points.} 105.215 + 105.216 +A tie-point relates timelines, so we talk a little about timelines. A timeline is the primitive in parallelism. If you look at any parallel language, it establishes a number of independent timelines. It then controls which timelines are actively progressing relative to the others. 105.217 + 105.218 +For example, take a thread library. It provides a command to create a thread, and that thread represents an independent timeline. The library also provides the mutex acquire and release commands, which control which of those timelines advance relative to each other. When an acquire executes, it causes the thread to block, which means the associated timeline suspends. The release in a different thread clears the block, which resumes the timeline. That linkage between suspend and resume of different timelines is the control the language exerts over which timelines are actively progressing. 105.219 + 105.220 +To build up to tie-points, we look at the nature of points on 105.221 +a single timeline, by reviewing mutex behavior in detail. We see the timeline shown in Fig X. Thread 1, which is timeline 1, tries to acquire the mutex, M, 105.222 +by executing the acquire command. Timeline 1 stops, at point 1.1, then something external to it happens, and the timeline starts again at point 1.2. The gap between is not seen by the code executed within the thread. Rather, from the code-execution viewpoint, the acquire command is a single command, and hence the gap between 1.1 and 1.2 collapses to a single point on the timeline. 105.223 + 105.224 +Now, a tie-point is seen as the linkage between such collapsed points on 105.225 +two timelines. In Fig X, timeline 1 is still there, suspends still at 1.1 and resumes at 1.2. However, now there is a second timeline, timeline 2. It executes the release command at point 2.1, which suspends timeline 2, performs the behavior of the release command 105.226 +inside the gap, then resumes timeline 2 at 2.1. The behavior of the release 105.227 +command causes the end of suspend in the first timeline. That causality ties the two collapsed points in the two timelines together. 105.228 + 105.229 + 105.230 +We call this connection between the collapsed suspensions a tie point. What it provides is a guarantee about visibility of events between the tied timelines. The 105.231 +guarantee makes both agree on the order of events,\textit{ 105.232 +relative to the tied points}. Any operation that executes before the point in the second timeline, 2.1, is visible immediately after the point in the first timeline, 1.2. In addition, nothing 105.233 +in the first timeline happening after the tie-point is visible in the second 105.234 +timeline before the tie-point. 105.235 + 105.236 +Just that guarantee defines it as a half tie-point. A full tie-point adds the dual guarantee between the second timeline 105.237 +and the first. Namely, for a full tie--point, anything before the point in the first timeline is visible in the second timeline after the tie-point, 105.238 +and nothing in the second timeline after the tie-point is visible in the 105.239 +first before the tie-point. 105.240 + 105.241 +A tie-point is the primitive mechanism that the proto-runtime implements. It does not involve any notion of dependency nor constraint semantics. All it provides is the notion that the tied points are the same "instant" for both tied timelines. What that means is that both timelines see events ordered relative to that point in the same way. 105.242 + 105.243 +It is up to the language to supply the behavior that happens inside 105.244 +the gaps. This behavior is what decides which timelines get tied together. It is that decision making, of which timelines to tie together, that implements the 105.245 +semantics of a synchronization construct. 105.246 + 105.247 + 105.248 + 105.249 +\subsection{Tie-points within a proto-runtime} 105.250 + 105.251 + In Fig X we didn't say what entity executes the behavior that takes place in the gaps in the timelines. This is what the proto-runtime does. It provides 105.252 +primitives that suspend a timeline and then cause behavior supplied by the language 105.253 +plugin to execute in the gap. This plugin behavior chooses which timelines remain suspended versus which resume execution, or start execution. 105.254 + 105.255 +As such, the plugin behavior that runs in the proto-runtime when one timeline 105.256 +suspends is what chooses another timeline to resume as a consequence of that 105.257 +suspension. That 105.258 +choice establishes causality between the suspensions of the two timelines, 105.259 +and thus creates the tie between the two collapsed timeline points. The proto-runtime 105.260 +module provides the suspend and resume primitives and the proto-runtime entity 105.261 +executes the plugin behavior. 105.262 + 105.263 +The proto-runtime entity is also known as the Master, while the timelines 105.264 +are known as Slaves. The behavior of the language constructs executes within the Master's timeline, while the behavior of application code executes within Slave timelines. 105.265 + 105.266 +\subsection{More about the proto-runtime} 105.267 + 105.268 +The proto-runtime provides the following primitives, for use by language 105.269 +plugins: 105.270 +\begin{itemize} 105.271 +\item create a virtual processor (which has a suspendible timeline) 105.272 +\item create a task (which has an atomic timeline that runs to completion) 105.273 +\item automatically convert a task to a virtual processor, as needed 105.274 +\item choose which virtual processor or task to begin execution on an offered 105.275 +core 105.276 +\item suspend a timeline, and cause a function to handle the suspension to execute in the Master, with supplied parameters 105.277 +\item end a timeline 105.278 + 105.279 +\end{itemize} 105.280 + 105.281 +Virtual processors and tasks, both, have associated timelines. The reason for having both is a practical one, as tasks are simpler, with less overhead, 105.282 +and many languages have the semantics of short, atomic, units of work that 105.283 +are not intended to suspend. Thus, tasks are treated differently inside the 105.284 +proto-runtime, and incur less overhead to create and run. 105.285 + 105.286 +A special feature of the proto-runtime is that if a task happens to execute 105.287 +a language command that causes suspension, then the proto-runtime automatically 105.288 +converts that task to a virtual processor. This helps support the mixing of different 105.289 +languages within the same program. 105.290 + 105.291 +The proto-runtime involves the language into the process of choosing which core a given task 105.292 +or virtual processor executes on. The proto-runtime maintains control, but offers free cores to the plugin, which responds by then assigning a task or virtual processor to the core. The proto-runtime just offers, it is up to the language to decide what work that core should receive at that point in time. 105.293 + 105.294 +The proto-runtime provides a mechanism for communicating information from the application code to the plugin function invoked. For example, the identity of a particular mutex a thread wishes to acquire 105.295 +can be communicated from the wrapper library to the plugin. 105.296 + 105.297 + 105.298 +Because the proto-runtime tracks all the timelines, the end of a timeline has to be explicitly stated in the application code, by calling a wrapper library function. That then invokes the proto-runtime primitive that informs the proto-runtime instance. The proto-runtime performs internal bookkeeping related to the ending of the timeline, and notes that the core is now free and offers it to the plugin's Assigner function. 105.299 + 105.300 + 105.301 + 105.302 + 105.303 + 105.304 + 105.305 +\subsection{Expl with Sung} 105.306 + 105.307 +A plugin is a dynamic library that is implemented, compiled, and distributed separately from any application executables. This is how a non-changing executable is able to invoke plugin code that can change between machines. The executable contains only symbols of plugin functions, and during the run those are linked to specific functions' implementations. 105.308 105.309 ? 105.310 -Lastly, switching from sequential programming to using an eDSL tends to have low disruption because the base language remains the same, along with most of the development tools and practices. 105.311 - The cus\subsection{ Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets} 105.312 105.313 -\subsection{ effort to create = syntax trans + runtime + construct impl \& effort to port = runtime + constr impl_} 105.314 +The sequence goes: wrapper library 105.315 + is compiled into the application 105.316 +executable; during the run, a call to the library function passes information, 105.317 +such as the ID of the mutex to acquire; the library function packages the 105.318 +information into a request data structure, then invokes the proto-runtime 105.319 +primitive that suspends the virtual processor (timeline) that is executing 105.320 +that code; the invocation passes the request structure and also a pointer 105.321 +to the plugin function that will receive the request and perform the behavior. it invokes the suspend to the plugin function, which implements the behavior of acquire mutex, and runs 105.322 +inside the proto-runtime instance. 105.323 105.324 -showing the role that runtime implementation plays in the success of eDSLs. 105.325 +? 105.326 105.327 -\subsection{big picture = langs * runtimes -\textgreater runtime effort critical} 105.328 105.329 -====================================== 105.330 +A task is an atomic unit of work. It runs to completion, without suspending. That characteristic allows the proto-runtime to internally treat a task differently than a virtual processor. The fact that it never suspends means it doesn't need a stack, and needs less bookkeeping, which makes a task faster to create and faster to assign, for lower overhead. 105.331 105.332 -We expand on the hypothesis that an embedded style Domain Specfic Language (eDSL) provides high programmer productivity, with a low learning curve. We also show (\S ) that when an application is written in a well designed eDSL, porting it to new hardware becomes simpler, because often only the language needs to be ported. That is because the elements of the problem being solved that require large amounts of computation are often pulled into the language. Lastly (\S ), we hypothesize that switching from sequential programming to using an eDSL is low disruption because the base language remains the same, along with most of the development tools and practices. 105.333 +However, a task may optionally choose at some point to execute a language command that causes it to suspend. At the point it does that, the proto-runtime internally converts the task to a virtual processor. That allows the task to suspend and later resume, at the cost of gaining the normal virtual processor overhead. However, the virtual processor the task is converted to comes from a recycle pool and returns when the task completes. 105.334 105.335 -In \S \ref{sec:DSLHypothesis} we show that the small number of users of an eDSL means that the eDSL must be very low effort to create, and also low effort to port to new hardware. At the same time, the eDSL must remain very high performance across hardware targets. 105.336 +As an application programmer, you can create processes directly with an OS-like language built on top of the proto-runtime. But you use a programming language to create tasks or virtual processors. For example, VSs has a way to create tasks. VSs internally then uses a proto-runtime command to have the proto-runtime create a task for it. Then VSs decorates the task with its own meta-data. It uses that meta-data to track when a task should be executed. 105.337 105.338 -In \S we analyze where the effort of creating an eDSL is expended. It turns out that in the traditional approach, it is mainly expended in creating the runtime, and in performance tuning the major domain-specific constructs. We use this to support the case that speeding up runtime creation makes eDSLs more viable. 105.339 +? 105.340 105.341 -In \S we take a step back and examine what the industry-wide picture would be if the eDSL approach were adopted. A large number of eDSLs will come into existence, each with its own set of runtimes, one runtime for each hardware target. That causes a multiplicative effect: the number of runtimes will equal the number of eDSLs times the number of hardware targets. Unless the effort of implementing runtimes reduces, this multiplicative effect could dominate, which would retard the uptake of eDSLs. 105.342 +The only thing you're allowed to do outside a language is create the environment in which you start a language. 105.343 105.344 +? 105.345 105.346 - ============== 105.347 +The implementation of the language behavior is the plugin. The plugin has two parts: request handlers, which handle the messages that come when a VP suspends, and an assigner, which picks where particular VP resumes onto or a task runs. With VSs, the plugin provides the behavior of "submit task". 105.348 +The request handler plus plugin together provide the two halves of what people normally call a scheduler. 105.349 105.350 -Further, in \S we show that when an application is written in a well designed eDSL, porting it to new hardware becomes simpler because often only the language needs to be ported. That is because the elements of the problem being solved that require large amounts of computation are often pulled into the language. Lastly, in \S we hypothesize that switching from sequential programming to using an eDSL is low disruption because the base language remains the same, along with most of the development tools and practices. Hence, we cover how the three issues currently making parallel programming unattractive are addressed by embedded-style DSLs. 105.351 +Here's VSs code. This is library code that the application programmers get to see. This is code that gets compiled into the application. Here is submit task. Over in the seed function, it called VSs\_\_submit\_task. So, here's the implementation of submit\_task. You can see all it does is create a request data structure, and fill it up with some data, then call this proto-runtime primitive, which is "send\_create\_task\_request" and there's a separate proto-runtime primitive for creating tasks, because tasks are special inside the proto-runtime, so you need a special call just for them. 105.352 105.353 -We next show what the blocks to eDSLs are, and where the main effort in implementing an eDSL lies. Specifically, in \S \ref{sec:DSLHypothesis} we show that the small number of users of an eDSL means that the eDSL must be very low effort to create, and also low effort to port to new hardware. At the same time, the eDSL must remain very high performance across hardware targets. 105.354 +This is not the plugin code, this is the library that the application executable includes. It's equivalent to the pthread library. When you look at the source of the pthread library, it's just a wrapper that invokes the OS. It doesn't do anything itself. The language libraries are the same thing, just wrappers that invoke the proto-runtime primitives. Those suspend the VP and send a message to the proto-runtime. When the message arrives, it invokes the plugin to handle the task. 105.355 105.356 -In \S we analyze where the effort of creating an eDSL is expended. It turns out that in the traditional approach, it is expended in creating the translator for the custom DSL syntax, in creating the runtime, and in performance tuning the major domain-specific constructs. We propose that the MetaBorg[] or Rose[] translation approaches cover creating translators for custom syntax, and that tuning constructs is inescapable, leaving the question of runtime implementation time. 105.357 +Here's how the wrapper library connects a request to the request handler: via this function pointer, right here Fig X, given to the proto-runtime "suspend and send" primitive. The pointed-to function is part of the plugin. That runs inside the proto-runtime, and is what handles the message created in the wrapper library. 105.358 105.359 -In \S we explore the effects of runtime implementation time by taking a step back and examine what the industry-wide picture would be if the eDSL approach were adopted. A large number of eDSLs will come into existence, each with its own set of runtimes, one runtime for each hardware target. That causes a multiplicative effect: the number of runtimes will equal the number of eDSLs times the number of hardware targets. Unless the effort of implementing runtimes reduces, this multiplicative effect could dominate, which would retard the uptake of eDSLs. Thus, showing that an approach that mitigates this multiplicative effect is valuable, and is the role that the proto-runtime plays. 105.360 + 105.361 +If we go and look at that handler function, Fig X, we see that it has a standard prototype, so it takes a standard set of arguments. One of those, here in Fig X, is a language environment. This is the special sauce, it is the thing that is shared among all the cores. This language environment is where tasks are placed that are not yet ready to execute, and where suspended virtual processors are placed that are not yet ready to resume. 105.362 + 105.363 +Here, Fig X, you can see there's a hash table. The language environment contains that hash table. The tasks get parked in this hash table. Each time a task completes, it looks in the hash table, finds all tasks waiting for its completion, and updates the status of those waiting tasks. If this was the last task being waited for, the waiter is taken out of the hash table and put into the queue of ready to execute tasks. 105.364 + 105.365 +This is the semantics of the language. This is how the semantics of the language defines what dependencies are, and how it defines when a task's dependencies have been satisfied. The implementation is just a data structure in the shared language environment. It is the proto-runtime that takes care of creating the tasks, creating the virtual processors, execute those, suspend them and resume them. The proto-runtime handles the mechanics of all that stuff. The language just figures out what are the constraints on making it ready. 105.366 + 105.367 +? 105.368 + 105.369 +Separately, the proto-runtime calls the Assigner function, which is also part of the plugin dynamic library. Each time a task completes or a virtual processor suspends, the wrapper library invokes a proto-runtime primitive. Among other things, that primitive informs the proto-runtime about the completion of that work, which tells the proto-runtime that hardware resources have just been freed up. 105.370 + 105.371 +The proto-runtime then invokes the Assigner function, passing it information about the hardware that was just freed. The assigner is implemented by the language and uses some language-specific way to choose which of the ready work-units to execute on that hardware (a work-unit is either a ready-to-execute task or a ready-to-resume virtual processors). This is how the language is given control over placement of work onto cores. 105.372 + 105.373 +=================== 105.374 + 105.375 +Any event visible before in one is visible in both after. The guarantee is between before in one and after in both. 105.376 + 105.377 +From the program point of view, that acquire statement is one instant. That entire gap in physical time is seen as a single instant to the code. 105.378 + 105.379 +However, the tie point is just one instant in the timelines. After the point, one of the timelines could perform an event that interferes with an event from before the tie-point, and no guarantees are given about what the other timeline sees. However, if another tie-point is created between them, then they are both guaranteed to see that second, interfering event, after the second tie-point. 105.380 + 105.381 +Take the example of a mutex, M. The purpose of the only-one semantics of a mutex is to isolate read and write operations done by the owning thread from those done by other threadz, which own before or after it. 105.382 + 105.383 +The mutex behavior is illustrated in Fig X. Timeline 1 writes to variable A at point 1, then releases the M at point 2. Timeline 2 acquires M, at the tied point 2 and reads A at point 3. For M to provide isolation, it must guarantee that the A write operation at point 1 is seen by the other timeline's read operation, at point 3. Likewise, it has to guarantees that nothing that happens in timeline 2 after the acquire of M, at point 2, will be seen by timeline 1 before its release, also at point 2. 105.384 + 105.385 +That ordering guarantee is what we think of when we imagine the behavior of a mutex acquire-release pair. All writes done by the releasing thread are seen as completed, by reads performed in the acquiring thread, and no writes in the acquiring thread are seen before the release by the releasing thread. That is required in order to have value for the semantics of only one thread owns the mutex at any point. The purpose of only-one is to isolate read and write operations done by the owning thread from those done by the threads that own before or after it. 105.386 + 105.387 + 105.388 +The behavior is implemented in terms of a data structure that lives inside the controlling entity's environment. The controlling entity looks up the data structure for the mutex being requested. This data structure has a field that contains the name of the thread that current owns the mutex, plus a queue of threads waiting to acquire it. So, the controlling entity first looks at the field that holds the current owner, sees that it is occupied, and then puts the thread's name into the queue of waiting threads. 105.389 + 105.390 +At some point later, the waiting thread reaches the top of the queue. At the point the owning thread executes the release operation, that owning thread also suspends, the controlling entity sees that suspend and that the thread wants to perform the release behavior. It looks up the release behavior and performs it. This behavior looks up the mutex data structure in the controlling entity's environment, removes the releasing thread from the owner field, takes the top thread off the waiters, writes its name into the current owner, then marks both those threads as ready to resume their timelines. 105.391 + 105.392 +The proto-runtime is the controlling entity, which looks up the behaviors and performs them. It also manages the environment that holds the data structures used by the behaviors. 105.393 + 105.394 +=========== 105.395 + 105.396 +The purpose of the M is to guarantee that what gets written to A here in this timeline is seen over here, in this other timeline. 105.397 + 105.398 +So, to turn this simple mechanism into a synchronization construct, you add semantics on top, which determine the end of suspend in the two timelines. The timelines voluntarily place themselves into suspend, and it is up to the controlling entity to decide at what point to end that suspension. It is this choice of ending suspension that ties events in one timeline to events in another. The semantics of deciding that end of suspension is the semantics of the synchronization construct. 105.399 + 105.400 +For example, take mutual exclusion within Threads. One thread executes a construct that asks to acquire the mutex. At the point of executing, that thread suspends, so that timeline ceases advancing. At some point later, the controlling entity sees that suspend, and sees that the timeline is attempting the acquire mutex activity. It looks up the behavior for acquire mutex, which is then performed inside that controlling entity. 105.401 + 105.402 +============ 105.403 + 105.404 + 105.405 +%====================================== 105.406 + 105.407 +%We expand on the hypothesis that an embedded style Domain Specfic Language (eDSL) provides high programmer productivity, with a low learning curve. We also show (\S ) that when an application is written in a well designed eDSL, porting it to new hardware becomes simpler, because often only the language needs to be ported. That is because the elements of the problem being solved that require large amounts of computation are often pulled into the language. Lastly (\S ), we hypothesize that switching from sequential programming to using an eDSL is low disruption because the base language remains the same, along with most of the development tools and practices. 105.408 + 105.409 +%In \S \ref{sec:DSLHypothesis} we show that the small number of users of an eDSL means that the eDSL must be very low effort to create, and also low effort to port to new hardware. At the same time, the eDSL must remain very high performance across hardware targets. 105.410 + 105.411 +%In \S we analyze where the effort of creating an eDSL is expended. It turns out that in the traditional approach, it is mainly expended in creating the runtime, and in performance tuning the major domain-specific constructs. We use this to support the case that speeding up runtime creation makes eDSLs more viable. 105.412 + 105.413 +%In \S we take a step back and examine what the industry-wide picture would be if the eDSL approach were adopted. A large number of eDSLs will come into existence, each with its own set of runtimes, one runtime for each hardware target. That causes a multiplicative effect: the number of runtimes will equal the number of eDSLs times the number of hardware targets. Unless the effort of implementing runtimes reduces, this multiplicative effect could dominate, which would retard the uptake of eDSLs. 105.414 + 105.415 + 105.416 +% ============== 105.417 + 105.418 +%Further, in \S we show that when an application is written in a well designed eDSL, porting it to new hardware becomes simpler because often only the language needs to be ported. That is because the elements of the problem being solved that require large amounts of computation are often pulled into the language. Lastly, in \S we hypothesize that switching from sequential programming to using an eDSL is low disruption because the base language remains the same, along with most of the development tools and practices. Hence, we cover how the three issues currently making parallel programming unattractive are addressed by embedded-style DSLs. 105.419 + 105.420 +%We next show what the blocks to eDSLs are, and where the main effort in implementing an eDSL lies. Specifically, in \S \ref{sec:DSLHypothesis} we show that the small number of users of an eDSL means that the eDSL must be very low effort to create, and also low effort to port to new hardware. At the same time, the eDSL must remain very high performance across hardware targets. 105.421 + 105.422 +%In \S we analyze where the effort of creating an eDSL is expended. It turns out that in the traditional approach, it is expended in creating the translator for the custom DSL syntax, in creating the runtime, and in performance tuning the major domain-specific constructs. We propose that the MetaBorg[] or Rose[] translation approaches cover creating translators for custom syntax, and that tuning constructs is inescapable, leaving the question of runtime implementation time. 105.423 + 105.424 +%In \S we explore the effects of runtime implementation time by taking a step back and examine what the industry-wide picture would be if the eDSL approach were adopted. A large number of eDSLs will come into existence, each with its own set of runtimes, one runtime for each hardware target. That causes a multiplicative effect: the number of runtimes will equal the number of eDSLs times the number of hardware targets. Unless the effort of implementing runtimes reduces, this multiplicative effect could dominate, which would retard the uptake of eDSLs. Thus, showing that an approach that mitigates this multiplicative effect is valuable, and is the role that the proto-runtime plays. 105.425 105.426 105.427 105.428 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 105.429 -\section{The DSL Hypothesis} 105.430 -\label{sec:DSLHypothesis} 105.431 +\subsection{Details} 105.432 +\label{subsec:Details} 105.433 105.434 -Following that background on DSLs, we move on to the details of the proto-runtime approach (\S ). We provide details of how a runtime is modularized (\S ), showing what responsibilities are encapsulated in which modules, and what the interfaces between them look like. We show how this makes the proto-runtime be reused by all languages on given hardware, and how the low-level tuning of the proto-runtime for specific hardware automatically benefits all the languages that run on that hardware. 105.435 + We move on to the details of the proto-runtime approach (\S ), showing how a runtime is modularized (\S ), what responsibilities are encapsulated in which modules, and what the interfaces between them look like. 105.436 + 105.437 +This modularization and its interface is what makes the proto-runtime reusable by all languages on given hardware, and the low-level tuning of the proto-runtime for specific hardware automatically benefits all the languages on that hardware. 105.438 + 105.439 +? 105.440 105.441 We follow this (\S ) with an in-depth look at implementing language logic, and show how the proto-runtime interface allows it to use sequential thinking. We then give similar detail (\S ) on the implementation of the assigner, which chooses what core executes each chunk of work. We discuss how that has the potential to improve application performance by reducing communication between cores and reducing idle time of cores. We support our belief (\S ) that the patterns we followed when modularizing are indeed fundamental and will remain valid for future languages and hardware. We then discuss (\S ) some of the centralized services provided by the current proto-runtime implementation, as well as planned future ones. Then we give an example of reusing language logic from one language implementation to another (\S ). 105.442
106.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 106.2 +++ b/0__Papers/VMS/VMS__Foundation_Paper/VMS__Full_conference_version/latex/VMS__Full_conf_paper_3.tex Sat Aug 03 19:24:22 2013 -0700 106.3 @@ -0,0 +1,2152 @@ 106.4 +%----------------------------------------------------------------------------- 106.5 +% 106.6 +% Template for sigplanconf LaTeX Class 106.7 +% 106.8 +% Name: sigplanconf-template.tex 106.9 +% 106.10 +% Purpose: A template for sigplanconf.cls, which is a LaTeX 2e class 106.11 +% file for SIGPLAN conference proceedings. 106.12 +% 106.13 +% Guide: Refer to "Author's Guide to the ACM SIGPLAN Class," 106.14 +% sigplanconf-guide.pdf 106.15 +% 106.16 +% Author: Paul C. Anagnostopoulos 106.17 +% Windfall Software 106.18 +% 978 371-2316 106.19 +% paul@windfall.com 106.20 +% 106.21 +% Created: 15 February 2005 106.22 +% 106.23 +%----------------------------------------------------------------------------- 106.24 + 106.25 + 106.26 +\documentclass[preprint]{sigplanconf} 106.27 + 106.28 +% The following \documentclass options may be useful: 106.29 +% 106.30 +% 10pt To set in 10-point type instead of 9-point. 106.31 +% 11pt To set in 11-point type instead of 9-point. 106.32 +% authoryear To obtain author/year citation style instead of numeric. 106.33 +\usepackage{amssymb,graphicx,calc,ifthen,subfig,dblfloatfix,fixltx2e} 106.34 + 106.35 + 106.36 +% correct bad hyphenation here 106.37 +\hyphenation{op-tical net-works semi-conduc-tor} 106.38 + 106.39 +\usepackage{wasysym} 106.40 +\usepackage{amstext} 106.41 + 106.42 +\begin{document} 106.43 + 106.44 +\bibliographystyle{plain} 106.45 +% 106.46 + 106.47 +\conferenceinfo{WXYZ '05}{date, City.} 106.48 +\copyrightyear{2005} 106.49 +\copyrightdata{[to be supplied]} 106.50 + 106.51 +\titlebanner{banner above paper title} % These are ignored unless 106.52 +\preprintfooter{short description of paper} % 'preprint' option specified. 106.53 + 106.54 + 106.55 +\title{A Proto-Runtime Approach to Domain Specific Languages} 106.56 + 106.57 + 106.58 +\authorinfo{Sean Halle} 106.59 + {Open Source Research Institute, INRIA, 106.60 + and TU Berlin} 106.61 + {seanhalle@opensourceresearchinstitute.org} 106.62 +\authorinfo{Merten Sach} 106.63 + {TU Berlin} 106.64 + {msach@mailbox.tu-berlin.de} 106.65 +\authorinfo{Albert Cohen} 106.66 + {Ecole Normal Supereur, and INRIA} 106.67 + {albert.cohen@inria.fr} 106.68 + 106.69 +\maketitle 106.70 + 106.71 + 106.72 +\begin{abstract} 106.73 + 106.74 +? 106.75 +replace lang-specific with interface, centralize services, minimize effort to create, give language control over hardware assignment.. side benefits: multi-lang, perf-tuning, debugging 106.76 + 106.77 +? 106.78 + 106.79 +Domain Specific Languages that are embedded into a base language have promise to provide productivity, performant-portability and wide adoption for parallel programming. However such languages have too few users to support the large effort required to create them and port them across hardware platforms, resulting in low adoption of the method. 106.80 +To solve a portion of this, we introduce a proto-runtime approach, which reduces the effort to create and port 106.81 +the runtime portion of a parallel domain specific language. It modularizes the creation of runtime systems and the parallelism constructs they implement, by separating the language-construct and scheduling logic away from the low-level runtime details, including concurrency, memory consistency, and runtime-performance aspects. 106.82 +As a result, new parallel constructs are written using sequential reasoning, and multiple languages can be mixed within 106.83 +the same program. In addition, scheduling of work onto hardware is under language and application control, without interference from an underlying thread package scheduler. This enables higher quality scheduling decisions for higher application performance. 106.84 +We present measurements of the time taken to develop runtimes for new languages, as well as time to re-implement existing ones, which average a few days each. In addition, we measure performance of proto-runtime based implementations going head-to-head with the standard distributions of Cilk, StarSs (OMPSs), and posix threads, showing that the proto-runtime matches or outperforms on several multi-core machines in all cases. 106.85 +\end{abstract} 106.86 + 106.87 + 106.88 + 106.89 + 106.90 + 106.91 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 106.92 +\section{Background and Motivation} 106.93 +\label{sec:intro} 106.94 + 106.95 +[Note to reviewers: this paper's style and structure follow the official PPoPP guide to writing style, which is linked to the PPoPP website. We are taking on faith that the approach has been communicated effectively to reviewers and that we won't be penalized for following it's recommended structure and approach.] 106.96 + 106.97 +Programming in the past has been overwhelmingly sequential, with the applications being run on sequential hardware. But the laws of physics have forced the hardware to become parallel, which will force nearly all future programming to become parallel programming. However, the transition from sequential to parallel programming has been slow due to the difficulty of the traditional parallel programming methods. 106.98 + 106.99 +The difficulties with parallel programming fall into three main categories: 1) difficult mental model, 2) extra effort to rewrite the code for each hardware target to get acceptable performance and 3) disruption to existing practices, including steep learning curve, changes to the tools used, and changes in design practices. 106.100 + 106.101 +Many believe that these can be overcome with the use of Domain-Specific Languages []. But such languages have been slow to adopt, we believe due to the cost to create them and to port them across hardware targets. The small number of users of each language, which is specific to a narrow domain, makes this cost impractical. 106.102 + 106.103 +We propose that a method that makes Domain Specific Languages (DSLs) low cost to produce as well as to port across hardware targets will allow them to fulfill their promise, and we introduce what we call a proto-runtime to help towards this goal. 106.104 + 106.105 +A proto-runtime instance is a normal, full, runtime, but with two key pieces replaced by an interface. One piece replaced is the logic of language constructs, and the other is logic for choosing which core to assign work onto. The remaining proto-runtime piece handles the low-level hardware details of the runtime. 106.106 + 106.107 +The decomposition into a proto-runtime plus plugged-in language behaviors modularizes the construction of runtimes. The proto-runtime is one module, which embodies runtime internals, which are hardware oriented and independent of language. The plugged-in portions form the two other modules, which are language specific. The interface between them occurs at a natural boundary, which separates the hardware oriented portion of a runtime from the language oriented portion. 106.108 + 106.109 +We claim the following benefits of the proto-runtime approach, each of which is supported in the indicated section of the paper: 106.110 + 106.111 +\begin{itemize} 106.112 + 106.113 +\item The proto-runtime approach should reliably apply to future languages and hardware. because the patterns underlying it appear to be fundamental and so should hold for future languages and architectures (\S\ref{subsec:TiePoints}, 106.114 +\S\ref{subsec:Example}). 106.115 + 106.116 +\item The proto-runtime approach modularizes the runtime (\S\ref{sec:Proposal}). 106.117 + 106.118 +%\item The modularization is consistent with patterns that appear to be fundamental to parallel computation and runtimes (\S\ ). 106.119 + 106.120 +\item The modularization cleanly separates runtime internals from the language-specific logic (\S\ref{sec:Proposal}, 106.121 +\S\ref{subsec:Example}). 106.122 + 106.123 +\item The modularization gives the language control 106.124 +over timing and placement of executing work (\S\ref{sec:Proposal}). 106.125 + 106.126 +\item The modularization results in reduced time to implement a new language's behavior, and in reduced time to port a language to new hardware (\S\ref{sec:Proposal}, 106.127 +\S\ref{subsec:ImplTimeMeas}). 106.128 + 106.129 +\begin{itemize} 106.130 + 106.131 + 106.132 +\item Part of the time reduction is due to the proto-runtime providing a centralized location for services for all languages to use, so the language doesn't have to provide them separately. Such services include debugging facilities, automated verification, concurrency handling, hardware performance information gathering, and so on (\S\ ). 106.133 + 106.134 +\item Part of the time reduction is due to encapsulation of hardware aspects inside the hardware-oriented module (\S \ref{sec:intro}). 106.135 + 106.136 +\item Part of the time reduction is due to reuse of the performance-tuning effort for runtime internals (\S ). 106.137 + 106.138 +\item Part of the time reduction is due to using sequential thinking when implementing the language logic, enabled by the proto-runtime protecting shared internal runtime state and exporting an interface that presents a sequential model (\S\ref{subsec:Example}). 106.139 + 106.140 + 106.141 +\end{itemize} 106.142 + 106.143 +\item 106.144 + 106.145 +The modularization also selectively exposes hardware aspects relevant to placement of work, giving the language control over placement of work onto the hardware. If the language takes advantage of this, it can result in reduced communication between cores and increased application performance (\S\ ). 106.146 + 106.147 +\begin{itemize} 106.148 + 106.149 +\item Similar control over hardware is not possible when the language is built on top of a package like Posix threads or TBB, which has its own work-to-hardware assignment (\S\ref{sec:Related}). 106.150 + 106.151 +\end{itemize} 106.152 + 106.153 +\item Modularization with similar benefits does not appear possible when using a package such as Posix threads or TBB, unless the package itself is modified and then used according to the proto-runtime pattern (\S\ref{sec:Related}). 106.154 + 106.155 +\end{itemize} 106.156 + 106.157 +The paper is organized as follows: We first expand on the value of embedded style DSLs (eDSL), and where the effort goes when creating one (\S\ref{subsec:eDSLEffort}). We focus on the role that runtime implementation effort plays in the adoption of eDSLs, which motivates the value of the savings provided by the proto-runtime approach. We then move on to the details of the proto-runtime approach (\S\ref{sec:Proposal}), and tie them to how a runtime is modularized (\S\ref{subsec:Modules}), covering how each claimed benefit is provided. 106.158 +We then show overhead measurements (\S\ref{subsec:OverheadMeas}) and implementation time measurements (\S\ref{subsec:ImplTimeMeas} ), which indicate that the proto-runtime approach is performance competitive while significantly reducing implementation and porting effort. 106.159 +With that understanding in hand, we then discuss how the approach compares to related work (\S\ref{sec:Related}), and finally, we highlight the main conclusions drawn from the research (\S\ref{sec:Conclusion}). 106.160 + 106.161 + 106.162 + 106.163 + 106.164 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 106.165 +% 106.166 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 106.167 +\section{Background: The eDSL Hypothesis} 106.168 + 106.169 +%[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 106.170 + 106.171 +%[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 106.172 + 106.173 +%[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 106.174 + 106.175 +%[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 106.176 + 106.177 +Domain Specific Languages have been around for a while [], and recently have been suggested as a good approach for parallel programming[][stanford PPL]. 106.178 + 106.179 +In essence, a DSL, or just Domain Language, captures patterns that are common in a particular domain of expertise, such as user interfaces, simulations of physical phenomena, bio-informatics, cosmology, and so on. Each domain has a particular set of mental models, common types of computation, and common kinds of data structures. A DSL captures these common elements in custom syntax. 106.180 + 106.181 + 106.182 +\subsection{Embedding a DSL into a base language} 106.183 + 106.184 +A style of domain language, which we feel has good applicability to parallel software development, is the so-called \textit{embedded} style of DSL (eDSL) [] [metaborg][stanford ppl]. In this variation, a program is written in a mix of a base language plus domain language constructs. The syntax of the two is intermixed. A preprocessing step then translates the domain syntax into the base syntax, and includes calls to the domain language's runtime. 106.185 + 106.186 + 106.187 +For example, use C (or Java) as the base language for an application, and mix-in custom syntax for constructs from a user-interface eDSL. To test the code, the developer modifies the build process to first perform the translation step, then pass the resulting source through the normal C (or Java) compiler. The resulting executable contains calls to a dynamic (or shared) library that becomes linked, at run time, to a runtime implementation that has been tuned to the hardware it is running on. 106.188 + 106.189 + 106.190 +\subsection{Low learning curve, high productivity, and portability} 106.191 +DSLs are generally quick to learn because the domain experts are already familiar with the concepts expressed by the custom syntax, especially for those who are \textit{not} expert programmers. Embedded style DSLs further reduce learning curve because they have relatively few constructs, and require no new development tools nor development procedures. Together, these should meet the goal of a low learning curve for switching to parallel software development. 106.192 + 106.193 +Productivity can be enhanced by a well designed syntax, which can simplify the application code, modularize it, and encapsulate performance aspects inside the language. Simplifying reduces the amount of code and the amount of mental effort. Modularizing separates concerns within the code and isolates aspects, which improves productivity. Encapsulating performance inside the DSL constructs removes them from the application programmer's concerns, which also improves productivity. 106.194 + 106.195 +Perhaps the most important productivity enhancement comes from hiding parallelism aspects inside the custom DSL constructs. The language takes advantage of the domain patterns to present a familar mental model, and then attaches synchronization, work-division, and communication implications to those constructs, without the programmer having to be aware of them. Combining the simplicity, modularization, performance encapsulation, and parallelism hiding, with congruence with the mental model of the domain, together work towards the goal of high productivity. 106.196 + 106.197 +Portability is aided by the encapsulation of performance aspects inside the DSL constructs. This means that the elements of the problem that require large amounts of computation are often pulled into the language, which isolates the application code from hardware performance concerns. Only the language implementation must adapt to new hardware in order to get high performance. Although such isolation cannot always be fully achieved, Domain Languages hold promise for making significant strides towards it. 106.198 + 106.199 +\subsection{Low disruption and easy adoption} 106.200 + 106.201 +Using an eDSL tends to have low disruption because the base language remains the same, along with most of the development tools and practices. 106.202 + Constructs from the eDSL can be mixed into existing sequential code, incrementally replacing the high computation sections, while continuing with the same development practices. 106.203 + 106.204 + \subsection{ Few users means the effort of eDSLs must be low} \label{subsec:eDSLEffort} 106.205 + 106.206 +What appears to be holding eDSLs back from addressing the challenges of parallel programming would be mainly the time, expertise, and cost needed to develop an eDSL. Because the number of users is small, the economic model of the past doesn't apply. For sequential languages, the potential user-base is in the millions, but for a parallel Domain Language, the user base may be only a few hundred developers who will use the language. 106.207 + 106.208 +As such, the effort to create a usable eDSL needs to be reduced to the point that it is viable for that size of user base. 106.209 + 106.210 +The effort to be reduced falls into three categories: 106.211 + 106.212 +\begin{enumerate} 106.213 +\item effort to explore language design and create the eDSL syntax 106.214 +\item effort to create the runtime that produces the eDSL behavior 106.215 +\item effort to performance tune the eDSL on particular hardware 106.216 +\end{itemize} 106.217 + 106.218 + 106.219 +\subsection{Critical areas of effort in the big picture} 106.220 + 106.221 +Across the industry as a whole, when eDSLs become successful, there will be hundreds of Domain Languages, and likewise hundreds of different hardware platforms that each language must run efficiently on. That multiplicative effect must be reduced in order to make the eDSL approach economically viable. 106.222 + 106.223 +The first category of eDSL effort is creating the front-end translation of custom syntax into the base language. This is a one-time effort that does not repeat when new hardware is added. 106.224 + 106.225 +The effort that has to be expended on each platform is the runtime implementation, which includes hardware-specific low-level tuning, and the tuning of the domain construct implementation. 106.226 + 106.227 +Luckily, hardware platforms cluster into groups with similar performance-related features. This opens the door to an approach that can present a common abstraction for all platforms in a cluster. Examples of clusters include: 106.228 + 106.229 +\begin{itemize} 106.230 +\item shared coherent memory multi-core single-chip machine 106.231 +\item shared coherent memory multi-core multi-chip machine 106.232 +\item independent address space coprocessor (GPU) 106.233 +\item a network of nodes of the above categories 106.234 +\item a machine with a hierarchy of sub-networks 106.235 +\end{itemize} 106.236 + 106.237 + 106.238 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 106.239 +% 106.240 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 106.241 +\section{Our Proposal} \label{sec:Proposal} 106.242 + 106.243 +We propose addressing the runtime effort by defining a modularization of runtimes, as seen in Fig X. The low-level hardware details are collected into one module, which presents a common interface. The language supplies 106.244 +the top two modules, which plug in via the interface. The hardware specific module presents the same interface 106.245 +for all platforms sharing similar performance related features. This module only has to be implement once for a given platform, then reused by the languages. 106.246 + 106.247 +\begin{figure}[ht] 106.248 + \centering 106.249 + \includegraphics[width = 1.5in, height = 1.1in]{../figures/proto-runtime__modules.pdf} 106.250 + \caption{Shows how the proto-runtime approach modularizes the implementation of a runtime. The three pieces are the proto-runtime implementation, an implementation of the language construct behaviors, and an implementation of the portion of scheduling that chooses which work is assigned to which processor. } 106.251 + \label{fig:PR_three_pieces} 106.252 +\end{figure} 106.253 + 106.254 + 106.255 +Thus, a given language doesn't have to re-implement its runtime for every platform. Instead, it has a much lower effort requirement, of implementing for each category. 106.256 + 106.257 +The language effort is further reduced because the language doesn't consider the low-level details of making the runtime itself run fast. It only has to consider the level of hardware feature that is exposed by the interface. This is a higher level of abstraction, which simplifies the task for the language implementer. 106.258 + 106.259 +One additional benefit is giving control to the language, to choose when and where it wishes work to execute. 106.260 +This feature simplifies implementation of languages 106.261 +that have features related to scheduling behavior. 106.262 +It also enables the language implementor to use sophisticated 106.263 +methods for choosing placement of virtual processors 106.264 +(threads) and tasks, which can significantly impact 106.265 +application performance. 106.266 + 106.267 +In this paper, we present work that applies to coherent 106.268 +shared memory machines, both single chip and multiple chip. Extensions beyond this are currently in progress, to address multiple-address-space machines and hierarchical 106.269 +heterogeneous collections of processors, which will appear in future papers. 106.270 + 106.271 +\subsection{Breakdown of the modules} \label{subsec:Modules} 106.272 + 106.273 +The language is broken into two parts, as seen in Fig 106.274 +X. One is a thin wrapper library that 106.275 +invokes the runtime and the other is a set of modules that are part of the runtime. 106.276 + 106.277 + 106.278 + 106.279 +\begin{figure}[ht] 106.280 + \centering 106.281 + \includegraphics[width = 2.8in, height = 1.1in]{../figures/proto-runtime__modules_lang_breakdown.pdf} 106.282 + \caption{Shows how the code of the language implementation 106.283 + is broken into two pieces. The first is a thin wrapper 106.284 + that invokes the runtime, the other is a dynamic 106.285 + library that plugs into the runtime.} 106.286 + \label{fig:langBreakdown} 106.287 +\end{figure} 106.288 + 106.289 +The runtime itself consists of three modules connected via 106.290 +an interface, as was seen back in Fig X. One encapsulates the low-level hardware details, and presents an interface to the language modules. We call 106.291 +this the \textit{proto-runtime}. 106.292 +It's job is to enforce the interface that the language modules see. 106.293 + 106.294 + 106.295 +The language has two modules, both of which are collected in what we call the \textit{language plugin}. One module encodes the behavior of language 106.296 +constructs, the other module provides logic for choosing which work to execute on 106.297 +which hardware resource. 106.298 + 106.299 +The plugin collects the two language modules into a dynamic library that is implemented, compiled, and distributed separately from any application executables. This is how a non-changing application executable is able to invoke plugin code that can change between machines. The executable contains only symbols of plugin functions, and during the run those are linked to specific functions' implementations. 106.300 + 106.301 +In order to provide such modularization, we rely upon a model for specifying synchronization constructs that we call the tie-point model. The low-level nature of a tie-point places them below the level of constructs such as a mutex. Instead, a mutex is specified in terms 106.302 +of the primitives in the tie-point model. The proto-runtime 106.303 +then implements the primitives of the tie-point model. 106.304 + 106.305 + This places all parallel constructs on the same level in the software stack, be they complex like the AND-OR parallelism of Prolog, or the wild-card matching 106.306 +channels in coordination languages, or ultra-simple acquire and release mutex constructs. All are implemented in terms of the same tie-point primitives provided by the proto-runtime. 106.307 + 106.308 +We have reached a point in the paper, now, where the order of explanation can take one of two paths: either 106.309 +start with the abstract model of tie-points and explain how this affects the modularization of the runtime, or start with implementation details and work upwards towards the abstract model of tie-points. We have chosen to start with the abstract tie-point model, but the reader is invited to skip to the section after it, which starts with code examples and ties code details to the abstract tie-point model. 106.310 + 106.311 + 106.312 + 106.313 +\section{The tie-point model.}\label{subsec:TiePoints} 106.314 + 106.315 + 106.316 +\subsection{timelines} 106.317 +A tie-point relates timelines, so we talk a bit, first, about timelines. A timeline is the primitive in parallelism. If you look at any parallel language, it involves a number of independent timelines. It then controls which timelines are actively progressing relative to the others. 106.318 + 106.319 +For example, take a thread library, which we consider 106.320 +a parallel language. It provides a command to create a thread, where that thread represents an independent timeline. The library also provides the mutex acquire and release commands, which control which of those timelines advance relative to each other. When an acquire executes, it can cause the thread to block, which means the associated timeline suspends; it stops 106.321 +making forward progress. The release in a different thread clears the block, which resumes the timeline. That linkage between suspend and resume of different timelines is the control the language exerts over which timelines are actively progressing. 106.322 + 106.323 +To build up to tie-points, we look at the nature of points on 106.324 +a single timeline, by reviewing mutex behavior in detail. We see the timeline shown in Fig \ref{fig:singleTimeline}. Thread A, which is timeline A, tries to acquire the mutex, M, 106.325 +by executing the acquire command. Timeline A stops, at point 1.S, then something external to it happens, and the timeline starts again at point 1.R. The gap between is not seen by the code executed within the thread. Rather, from the code-execution viewpoint, the acquire command is a single command, and hence the gap between 1.S and 1.R collapses to a single point on the timeline. 106.326 + 106.327 + 106.328 +\begin{figure}[ht] 106.329 + \centering 106.330 + \includegraphics[width = 2.8in, height = 0.8in] 106.331 + {../figures/PR__timeline_single.pdf} 106.332 + \caption{The timeline suspends at 1.S and resumes 106.333 + at 1.R. From the viewpoint of the timeline, the gap collapses into a single point.} 106.334 + \label{fig:singleTimeline} 106.335 +\end{figure} 106.336 + 106.337 + 106.338 +Now, a tie-point is seen as the linkage between such collapsed points on 106.339 +two timelines. In Fig \ref{fig:dualTimeline}, timeline A is still there, suspends still at 1.S and resumes at 1.R. However, now there is a second timeline, timeline B. It executes the release command at point 2.S, which suspends timeline B, performs the behavior of the release command 106.340 +inside the gap, then resumes timeline B at 2.R. The behavior of the release 106.341 +command causes the end of suspend in the first timeline. That causality ties the two collapsed points in the two timelines together. 106.342 + 106.343 + 106.344 +\begin{figure}[ht] 106.345 + \centering 106.346 + \includegraphics[width = 2.8in, height = 1.35in] 106.347 + {../figures/PR__timeline_dual.pdf} 106.348 + \caption{Two timelines with a causal relationship. 106.349 +Activity that takes place during the gap in timeline 106.350 +B causes resume of timeline A. This ties point 2 on 106.351 +timeline B to point 1 on timeline A.} 106.352 + \label{fig:dualTimeline} 106.353 +\end{figure} 106.354 + 106.355 + 106.356 + 106.357 +We call this connection between the collapsed suspensions a tie-point. What it provides is a guarantee about visibility of events between the tied timelines. The 106.358 +guarantee makes both agree on the order of events,\textit{ 106.359 +relative to the mutual tied point}. 106.360 +The guarantees are what defines a tie-point. 106.361 + 106.362 +Fig \ref{fig:tie-pointGuarantees} shows the ordering guarantees in terms of visibility of operations between 106.363 +the timelines. If these visibility constraints are 106.364 +satisfied, then the timelines share a tie-point. Note that the ordering 106.365 + guarantees are equivalent to the constraints on visibility of operations. Operations that execute in 106.366 +the first timeline before the tie-point must be visible 106.367 +in the second after the tie point, and vice versa. Likewise, operations that execute in one timeline after the tie-point must not be visible in the other timeline before the tie-point. 106.368 + 106.369 + 106.370 + 106.371 +\begin{figure}[ht] 106.372 + \centering 106.373 + \includegraphics[width = 2.8in, height = 1.25in] 106.374 + {../figures/PR__timeline_tie_point_ordering.pdf} 106.375 + \caption{The 106.376 +guarantees that a tie-point enforces. Shows which 106.377 + operations performed on one timeline are visible to the other 106.378 +timeline. These visibilities must be true for a tie-point. 106.379 +Note that all events are divided into two groups, those 106.380 +before the tied points versus those after the tied 106.381 +points. Both timelines see the same before group and 106.382 +the same after group. } 106.383 + \label{fig:tie-pointGuarantees} 106.384 +\end{figure} 106.385 + 106.386 + 106.387 +\subsection{Formal definition of tie-point} 106.388 +In a moment we will show how any and all synchronization constructs 106.389 +can be defined in terms of tie-points. Before getting 106.390 +there, we provide a formal definition of tie-point, 106.391 +which we will then use in showing that all synchronization 106.392 +constructs can be implemented in terms of tie-points. 106.393 + 106.394 +In our formalization, we treat a tie-point as something 106.395 +that exists in the code, and causes what we call an \textit{ordering-point} to 106.396 +arise in every run of the code. We define ordering-point 106.397 +formally, and use that to state the constraints that 106.398 +a tie-point code-instance must enforce. 106.399 + 106.400 + 106.401 +\subsubsection{Lifeline, Timeline, and Projection} 106.402 +We define a formal entity that we call a lifeline, 106.403 +where a timeline is a type of lifeline. 106.404 +We define event-types and specific occurrences of event-types, and show how multiple lifelines can observe the same occurrence. A projection between 106.405 +lifelines is defined as an event initiated upon one lifeline being observed on a different lifeline. The projection is from initiator to observer. 106.406 + 106.407 +\begin{description} 106.408 +\item[event:] 106.409 +\(E \) represents an event, which is something that 106.410 +can be initiated or observed. 106.411 +\item[occurrence:] 106.412 +\(O\in E \times\mathbb{N}\) is the set of occurrences, where each occurrence associates a specific event with a unique identifier. A particular occurrence is denoted by subscripting with the value of the associated 106.413 +integer, for example: \(O_{7}\) 106.414 + 106.415 +\item[clock:] 106.416 +\(t:I\rightarrow\mathbb{R}^{+}\) maps each integer 106.417 +onto a real number, such that \(I_{1}<I_{2}\Rightarrow 106.418 +R_{1}<R_{2}\) . In general, different clocks have no relation to each other, but elements associated with a clock have a sequence defined by the integer 106.419 +sequence of the clock. 106.420 +\item[lifeline:] 106.421 +\(l = <\alpha , t> \) 106.422 + is a lifeline, where \(\alpha\) 106.423 +is a sequence over \(Dom(t)\) and each element of \(\alpha\) is either an initiation of an occurrence, or an observation 106.424 +of one. A \textit{beat} of the lifeline is one tuple, denoted \(l(i)\), while the occurrence associated 106.425 +to the beat is denoted\(\) \(O(l(i)) \) or equivalently \(O(\alpha(i)). \) The real value 106.426 +associated with the beat is denoted \(t(l(i))\). For a given lifeline, not every element of \(t\) must have an associated 106.427 +\(\alpha\), but every \(\alpha\) must have a unique associated 106.428 +\(I\) from the clock \(t\). Note that \(\forall i , t(l(i)) < t(l(i+1))\). At most one beat from one 106.429 +lifeline can initiate an occurrence. However, multiple 106.430 +beats 106.431 +from a given lifeline can observe the same occurrence, 106.432 +including one initiated earlier in the sequence of 106.433 +the lifeline, 106.434 +and multiple lifelines may observe the same occurrence, 106.435 +each multiple times. 106.436 + 106.437 +\item[projection:] 106.438 +Given \(l_{1} = <\alpha , t_{1}> \), \(l_{2} = <\beta , t_{2}> \) then a projection from \(l_{1}\) to \(l_{2}\) 106.439 + is denoted \(l_{1}(i) \uparrow l_{2}(j) \), where \(l_{1}(i) \uparrow l_{2}(j) 106.440 +\equiv O(l_{1}(i)) = O(l_{2}(j))\). 106.441 + This says that the occurrence initiated by the ith beat of the first lifeline is observed by the jth beat 106.442 +of the second lifeline. 106.443 + 106.444 +\item[ordering tuple:] \(OT_{}\) is a tuple consisting 106.445 +of a set of two beats from two different lifelines, which do 106.446 +not participate in projections, plus a set of projections 106.447 +that cross the two beats in the forward direction. 106.448 +Given \(OT =<[l_{1}(x) , l_{2}(y)], [projections]> \) then \(OT\) is an 106.449 +ordering tuple iff \( [projections] \neq0 \forall p(i,j) \in projections \nexists p(i,j) 106.450 +|i<x \wedge j>y\ \) 106.451 +\item[program run:] \(\mathcal{R} \) is a particular set of lifelines. 106.452 +The program run begins with the creation of any lifeline, and 106.453 +ends with the end of all lifelines. 106.454 + 106.455 +\item[equivalent positions in different sequences:] a partial ordering is defined. 106.456 +Given two positions within different sequences, if 106.457 +one or both both can be 106.458 +validly rearranged, by using the partial ordering to 106.459 +define valid rearrangements, so they occupy 106.460 + the same position in their rearranged sequences, then 106.461 +they are equivalent positions. 106.462 + 106.463 +\item[equivalent occurrences:] two occurrences are 106.464 +equivalent if their event instances cannot be distinguished, given the observation 106.465 +measurements of interest. If the observation measurement 106.466 +involves sequences, then the two events must lie at 106.467 +equivalent positions within their respective sequences. 106.468 + 106.469 +\item[equivalent lifelines:] two lifelines whose beats 106.470 +can be paired, such that every beat in one lifeline 106.471 +has an equivalent beat in the other. The beats do 106.472 +not have to occur in the same order in both lifelines. 106.473 +Beats associated to occurrences that are not of interest can be dropped. 106.474 + 106.475 +\item[equivalent program runs:] two runs such that 106.476 +their lifelines can be paired one-to-one, with every lifeline in one paired to an equivalent 106.477 +lifeline in the other. The projections between lifelines 106.478 +in one run can be different from the projections in 106.479 +the other run. 106.480 + 106.481 +\item[tie-point:] a set of beats, one from each of two lifelines, such that this set of beats forms a separation set in all equivalent program runs. 106.482 +\end{description} 106.483 + 106.484 + 106.485 +Some things to note: A particular occurrence 106.486 +can be associated to at most one beat from a given 106.487 +lifeline, but that same occurrence can also be associated 106.488 +to beats from multiple other lifelines. Also, an occurrence may 106.489 +be initiated by a lifeline but never observed by any. 106.490 +Every \(O\) has a set of projections associated with it. 106.491 + 106.492 +For example, the event could 106.493 +be writing a value into a variable. Two separate 106.494 +write events are considered equivalent occurrences if 106.495 +they both write the same particular value into whatever memory location 106.496 +is associated to the same particular 106.497 +variable, and happen within valid partial orderings 106.498 +relative to the other occurrences. This is normally 106.499 +compared across re-creations of the "universe" that 106.500 +provides the context for the orderings of events instances. 106.501 + 106.502 +========= 106.503 + 106.504 + Okay, talked it over with Sung -- what about making distinguished beats 106.505 +-- as Sung poked around for, make the PR\ "suspend" be the 106.506 +distinguished beat. Then, as we worked out talking it 106.507 +through, make the code that happens on the hidden timeline be the linkage between the beats -- so a tie-point is any number of distinguished beats such that the hidden calculation on one of the beats executed the resume for all of the other beats in the tie point. That establishes how a tie point gets created.. separately, need a universal statement of what is guaranteed by a tie point. 106.508 + 106.509 +So, one thing, is that the hidden calc is normally chosen such that every equivalent program run reproduces equivalent tie points -- but defining equivalent relies upon defining the "meaning"\ of the constructs.. but maybe that thing above about equivalent in terms of partial order can be used, by saying all constructs 106.510 +are associated with a partial ordering -- but, still can have truly non-deterministic behavior being the correct behavior.. hmmm, but that should still have a partial ordering! 106.511 + 106.512 + What I\ really want to do is define tie-point in terms of the write-to-read. A half tie point says what's before the pre is visible after in the post timeline. And a full tie-point says that goes both ways. So, acquire-release is only a half tie-point, because what's after the release in its timeline can be seen before the acquire in its timeline. That makes it a half tie-point. Also, whats before the acquire in its timeline does not necessarily have to be seen after the release in its timeline.. that also makes it a half tie-point. 106.513 + 106.514 +So, use the project definition, and the crossing definition, to say which crossing projects are allowed by a half tie point, and which of those must be eliminated to make it a full tie-point. Then THAT\ defines the behaviors of a tie-point, independently from how it is created. 106.515 + 106.516 +The full definition of tie-point, in terms of proto-runtime value, has both those -- the hidden timeline "math" thing along with the causality, gives the "creation" aspect of tie-point, and the allowed projections gives the "behavior" aspect of tie-point. 106.517 + 106.518 +From the projection "behavior" I can simply state "this 106.519 +defines what all synchronization constructs do" -- 106.520 +the projection behavior is the whole purpose of a sync construct -- to ensure particular communication pattern when comm is via side-effect 106.521 + 106.522 +======= 106.523 + 106.524 +From first model, have the real-value constraints for slide of suspend and resume relative to each other.. 106.525 + 106.526 +The behavior of full tie-point is no back-cross projections, and there is a set of forward-crossing projections, which may be empty, and any of the tied timelines may 106.527 +be the initiating timeline. For a half tie-point, have the origin lifeline. There is a set of forward-crossing projections with initiation on the origin lifeline, 106.528 +and backward crossing are allowed whose initiation 106.529 +is on non-origin lifeline. 106.530 + 106.531 +But a tie-point is more than just the behavior it defines. 106.532 + In order for a pair of special beats to form a tie-point, 106.533 +they must be causally linked on their internal lifelines. This means that a sequence of changes of the internal 106.534 +state links the internal activity of one of the special beats to the internal activity of another special beat 106.535 +that executes the resume that ends the second special beat. All special beats that are resumed inside the 106.536 +same internal activity will have the behavior of a 106.537 +full tie-point. Half tie-points can have both halves 106.538 +resumed in different internal activities. 106.539 + 106.540 +A special beat has a variable-length span, as measured in the real-number of the clock. A special beat is associated to an isolated atomic span on a hidden lifeline. The only way to end the span of a special beat is via a "resume" beat on the hidden lifeline, which names the special beat to be ended. 106.541 + 106.542 +The internal activity on the hidden lifeline enforces some description. 106.543 + 106.544 +For 106.545 +example, send-receive descriptions are: send = if paired 106.546 +receiver is in shared context then resume both else place self into shared context. receive: if paired send is in shared context then resume both else place self into shared context. 106.547 + 106.548 +For acquire-release.. acquire: if lock-owner inside shared 106.549 +context is empty then place self-name into lock-owner 106.550 +and resume self else place self onto end of sequence 106.551 +of special beats. release: remove self from lock-owner 106.552 +and place the next in sequence of special beats into 106.553 +lock-owner. If non-empty then resume the new lock-owner. 106.554 +in every case, resume self. Note, acquire-release can 106.555 +form either a half tie-point or a full tie-point. 106.556 +? 106.557 + 106.558 +==== 106.559 + 106.560 +Note to the reader. This is a first pass at a formal description of tie-point. It likely contains more constraints than necessary. It should not be taken as the final formalism, nor is it implied to be elegant in any way, but simply an existence proof for a formal description 106.561 +of a useful subset of what the intuition of tie-point associates to. 106.562 + 106.563 + 106.564 + 106.565 + 106.566 + 106.567 +\subsection{How a synchronization construct relates 106.568 +to tie-points} 106.569 + 106.570 +To prepare for stating how the tie-point model can be used to 106.571 +specify a synchronization construct, we first state 106.572 +clearly what we mean by a ``synchronization construct''. 106.573 + 106.574 +The top of Fig \ref{fig:PRSyncConstrDef} shows two 106.575 +independent timelines, both performing reads and writes 106.576 +within a machine that has coherent shared memory. The 106.577 +timelines have no relative ordering defined, so any 106.578 +write on Timeline A can be received by any read of 106.579 +the same address on 106.580 +Timeline B, and vice versa. This means that, in general, 106.581 +the use of a variable that is read and written by both will result in non-deterministic behavior. 106.582 + 106.583 + 106.584 +\begin{figure}[ht] 106.585 + \centering 106.586 + \includegraphics[width = 2.0in, height = 2.8in] 106.587 + {../figures/PR__timeline_sync_def.pdf} 106.588 + \caption{Depicts the meaning we adopt for `synchronization construct'. One of them controls communications between timelines 106.589 +by controlling the slide of timelines relative to each 106.590 +other. They imply certain visibility between writes and reads on different timelines.} 106.591 + \label{fig:PRSyncConstrDef} 106.592 +\end{figure} 106.593 + 106.594 + 106.595 + 106.596 +To control the behavior of writes and reads to the 106.597 +same addresses, a common point must be established, which 106.598 +limits the ``sliding'' of the timelines relative to 106.599 +each other. A synchronization construct is used for 106.600 +this. 106.601 +The net effect of such a construct is to establish 106.602 +a common point that both timelines agree on. This 106.603 +point separates reads and writes before it from reads 106.604 +and writes after it. 106.605 + 106.606 +For example, consider a simple lock used to protect a critical section. The lock is acquired by one timeline 106.607 +before entering the critical section. Any writes performed 106.608 +on other timelines before the lock was granted must be complete before the critical section starts, so that reads performed inside the critical section see them. This is illustrated in the middle of Fig \ref{fig:PRSyncConstrDef}. 106.609 + 106.610 +The critical section ends by releasing the lock, which allows a different timeline to acquire and enter the critical section. As seen in the bottom of Fig \ref{fig:PRSyncConstrDef}, 106.611 +any writes performed by that new 106.612 +timeline after it acquires the lock must not be visible 106.613 +to reads performed by the old timeline before it released 106.614 +the lock. 106.615 + 106.616 +With this intuition, we define a synchronization construct 106.617 +as an operation preformed on a timeline, which has 106.618 +the property that it creates 106.619 +a tie-point together with an operation performed on a different 106.620 +timeline. Such operations that establish a tie-point 106.621 +fit our definition of synchronization constructs. 106.622 + 106.623 + 106.624 +\subsection{More on tie-points} 106.625 + 106.626 +Fig \ref{fig:dualTimeline} showed how a tie-point can be generated. The establishment was accomplished by 106.627 +a combination of primitive mechanisms. These include: 1) suspend; 2) an `invisible' timeline that executes 106.628 +behavior in the gaps; 3) resume 106.629 +called from that invisible timeline; and 4) enforcement 106.630 +of instruction completion relative to resume. 106.631 + 106.632 +What an established tie-point provides is the notion that the tied points are the same ``instant" for both tied timelines. What that means is that both timelines see events ordered relative to that point in the same way. 106.633 + 106.634 + 106.635 +Notice that the primitives that establish a tie-point 106.636 +do not involve any notion of dependency or constraint 106.637 +on order of execution. It is the behavior code that runs on the invisible 106.638 + timeline that embodies notions such as dependency 106.639 + between units of work, mutual exclusion, 106.640 + partial ordering of work, and so on. However, the 106.641 + primitives do provide the notion of causality, the ordering implied by causality, and enforcing completion 106.642 +of reads/writes. 106.643 + 106.644 +It is up to the language to supply the behavior that happens inside 106.645 +the gaps, which executes on the invisible timeline. This behavior is what decides which timelines end up 106.646 +sharing a tie point. It is that decision making, of which timelines to tie together, that implements the 106.647 +semantics of a synchronization construct. 106.648 + 106.649 +A workshop paper also discusses tie points 106.650 +[]. A formal treatment of tie-points is beyond the scope of this paper. However, a formal framework has been substantially completed and 106.651 +will be published in a future paper. 106.652 + 106.653 + 106.654 + 106.655 +\subsection{Tie-points within a proto-runtime} 106.656 + 106.657 + Fig \ref{fig:dualTimeline} didn't say what entity owns the hidden timeline that executes the behavior that takes place in the gaps. This is what the proto-runtime does. An instance of the 106.658 +proto-runtime executes the language plugin behavior. 106.659 +It acts as the hidden timeline. 106.660 + 106.661 + The proto-runtime code module also supplies implementations 106.662 +of the primitives that are used to establish a tie-point, including these: 106.663 + 106.664 + %It provides the primitive that suspends a timeline and then causes language plugin behavior to execute in the gap. 106.665 + 106.666 +%The plugin behavior that runs in the proto-runtime when one timeline suspends is what chooses another timeline to resume as a consequence. That choice establishes causality between the suspensions of the two timelines, and in the process ensures that a valid tie will exist between the two collapsed timeline points. The code of the primitives is provided as part of the proto-runtime code module, while the plugin behavior is executed by an instance of a running proto-runtime. 106.667 + 106.668 +%The running proto-runtime instance is also known as the Master, while the application timelines are known as Slaves. The behavior of the language constructs executes within the Master's timeline, while the behavior of application code executes within Slave timelines. 106.669 + 106.670 +%\subsection{More about the proto-runtime} 106.671 + 106.672 +\begin{itemize} 106.673 +\item create a virtual processor (which has a suspendible timeline) 106.674 +\item create a task (which has an atomic timeline that runs to completion) 106.675 + 106.676 +\item suspend a timeline, then invoke a function to handle the suspension -- handler is supplied with 106.677 +parameters from application 106.678 +\item resume a timeline, which makes it ready for execution 106.679 +\item end a timeline 106.680 +\item trigger choosing which virtual processor or task to begin execution on an offered 106.681 +core 106.682 + 106.683 +\end{itemize} 106.684 + 106.685 +Virtual processors and tasks, both, have associated timelines. The reason for having both is a practical one, as tasks are simpler, with less overhead, 106.686 +and many languages have the semantics of short, atomic, units of work that 106.687 +are not intended to suspend. Thus, tasks are treated differently inside the 106.688 +proto-runtime, and incur less overhead to create and run. 106.689 + 106.690 +A special feature of the proto-runtime is that if a task happens to execute 106.691 +a language command that causes suspension, then the proto-runtime automatically 106.692 +converts that task to a suspendible virtual processor. This helps support the mixing of different 106.693 +languages within the same program. 106.694 + 106.695 + 106.696 +The proto-runtime provides a mechanism for communicating information from the application code to the plugin function that was invoked to handle suspension. For example, the identity of a particular mutex a thread wishes to acquire 106.697 +can be communicated from the wrapper library to the plugin. 106.698 + 106.699 + 106.700 +Because the proto-runtime tracks all the timelines, the end of a timeline has to be explicitly stated in the application code, by calling a wrapper library function. That then invokes the proto-runtime primitive, 106.701 +which informs the proto-runtime instance. The proto-runtime performs internal bookkeeping related to the ending of the timeline, and notes that the core is now free and offers it to the plugin's Assigner function. 106.702 + 106.703 +The proto-runtime involves the language into the process of choosing which core a given task 106.704 +or virtual processor executes on. The proto-runtime maintains control, but offers free cores to the Assigner 106.705 +portion of the plugin. It responds by then assigning a task or virtual processor to the core. The proto-runtime just offers, it is up to the language to decide what work that core should receive at that point in time. 106.706 + 106.707 + 106.708 + 106.709 +\subsection{Concrete Example}\label{subsec:Example} 106.710 + 106.711 +To make this concrete, consider the example of implementing 106.712 +acquire mutex and release mutex. The semantics are: 106.713 + 106.714 +\begin{itemize} 106.715 +\item Acquire Mutex: A thread calls the construct, 106.716 +and 106.717 +provides the name of the mutex. If no thread owns the 106.718 +mutex, the calling thread is given ownership and it 106.719 +continues to make progress. However, if a different thread 106.720 +already owns the mutex, the calling thread is put into a queue 106.721 +of waiting threads, and stops making progress. 106.722 +\item Release Mutex: A thread calls the construct and 106.723 +provides the name of the mutex. If the mutex has waiting threads in its queue, then the next thread is taken out and given ownership of the mutex. That thread is resumed, to once again make progress, as it the thread 106.724 +that called the release construct.. 106.725 +\end{itemize} 106.726 + 106.727 +This calls for a data structure that has two fields: 106.728 +one holds the thread that currently owns the mutex, 106.729 +the other holds a queue of threads waiting to acquire 106.730 +the mutex. The semantics of a construct involve multiple 106.731 +reads 106.732 +and writes of the data structure. Hence, the 106.733 + structure must be protected 106.734 +from races between different threads. 106.735 + 106.736 +The protection 106.737 +is where the difficulty comes into the implementation, 106.738 +and where performance issues come into the picture. 106.739 +It could be accomplished with a single global lock 106.740 + that uses hardware primitives, or accomplished 106.741 +with wait-free data structures that only rely upon the coherence 106.742 +mechanism of the memory system, or even by message passing plus 106.743 +quorum techniques. 106.744 + 106.745 +However, the implementation of the semantics is independent 106.746 +of the implementation of the protection. They are orthogonal, 106.747 +and an interface can be placed between them. One side 106.748 +of the interface implements checking and updating the fields of 106.749 +the data structure, while the other side implements 106.750 +protecting the first side from interference. 106.751 + 106.752 +The side that provides protection requires fields, 106.753 +for its use, to be placed into the data structure used 106.754 +to represent a thread. To hide those details, 106.755 +the protection side should also provide 106.756 +primitives to create and destroy threads, as well as suspend 106.757 +and resume them. 106.758 + 106.759 +This interface that separates the semantic side from 106.760 +the protection 106.761 +side is the proto-runtime interface. It is what enables 106.762 +the modularization of runtime system implementations. 106.763 + 106.764 +The tie-point concept provides a model for thinking 106.765 +about how the semantic side controls ordering among multiple threads, without exposing any details of the protection side. The tie-point model involves thinking only about actions taken during suspension of timelines (threads). It assumes that those actions are protected from interference, and that suspend and resume of timelines are primitive operations made available. The model remains constant regardless of implementation details. 106.766 + That provides a cross-hardware way of specifying synchronization 106.767 +behavior using just sequential thinking. The proto-runtime primitives implement the elements of the tie-point model. 106.768 + 106.769 + %Currently, these constructs are either implemented directly in terms of hardware level synchronization constructs such as the atomic Compare And Swap (CAS) instruction, or else are a thin wrapper that invokes operating system behavior. However, the behavior of the OS\ kernel's threading primitives are themselves implemented in terms of hardware level synchronization 106.770 +%constructs. Either way, developing the behavior proves 106.771 +%time consuming due to the difficulty of debugging hardware level synchronization behavior, and due to the difficulty of performance tuning such low level code across the full spectrum of patterns caused by applications. 106.772 + 106.773 + 106.774 + 106.775 + 106.776 + 106.777 +\section{Concrete Details} 106.778 +Now that we have seen the concepts of how to modularize 106.779 +a runtime system, using the tie-point model, it is 106.780 +time to make the concepts concrete by showing code 106.781 +segments that implement each of the concepts, and code 106.782 +segments that use the concepts. We will start with 106.783 +the big picture and work down. 106.784 + 106.785 +The first stop will be the development process, showing 106.786 +how it is fractured into three separate and independent 106.787 +development activities. Next, we will show examples 106.788 +of how application 106.789 +code invokes constructs, and follow the path of calls 106.790 +down to the point it switches over to the runtime system. Lastly, 106.791 +we will look at the flow of control inside the runtime, 106.792 +where we will focus on the interaction between plugin 106.793 +code and proto-runtime code. 106.794 + 106.795 +In this last portion, we will show how the 106.796 +interface supplies the plugin with a consistent ``inside 106.797 +the runtime" environment. Along with that, we will 106.798 +show how providing 106.799 +a consistent environment 106.800 + is an implementation of the "single hidden timeline" portion 106.801 + of the tie-point model. We will also show how it is 106.802 + the existence of a \textit{single} hidden timeline 106.803 + that allows the semantic portion of the language constructs 106.804 +to be written in a sequential style, without regard to concurrency issues. 106.805 + 106.806 + 106.807 +\subsection{Three independent development efforts} 106.808 + 106.809 +To get a handle on the big picture, we describe the 106.810 +three independent paths that development takes: 106.811 +one for development of proto-runtime code, one for 106.812 +development of language implementation, and one for 106.813 +application development. Each of these produces a separate 106.814 +installable artifact. 106.815 +The proto-runtime development produces a dynamic library, for each machine. The language development produces a dynamic library to plug into whichever proto-runtime library is installed on a given machine. It may also produce development tools that are used during compilation, distribution, and even installation and during the run. The application development produces a single source, which the language tools may then turn into multiple executables. 106.816 + 106.817 +The proto-runtime code is developed separately from 106.818 +both language and application code, and packaged as a dynamic library. This library has multiple implementations. Each kind of hardware platform has a proto-runtime implemented specifically for it, and is tuned for low overhead on that hardware. The administrator of a particular machine chooses the proto-runtime implementation best suited to that hardware, and installs that. 106.819 + 106.820 +The language code is likewise developed separately from both proto-runtime and application code. Although multiple versions of a language may be implemented, there are significantly fewer versions than the number of proto-runtime versions. That is because most of the hardware details are abstracted away by the proto-runtime interface. 106.821 + 106.822 +However, the interface does expose hardware features related to placement of work onto cores, so some variations may exist for the same interface. Again, the administrator chooses which language implementation best suits their machine and installs the corresponding dynamic library. 106.823 + 106.824 +The wrapper library, however, is not 106.825 +installed on the machine where code runs. Rather, it 106.826 +is only used during development of an application, 106.827 +and remains independent of hardware. 106.828 + 106.829 +Ideally the application is developed only once. It makes calls to the wrapper library, which in turn invokes the dynamic libraries of the language and proto-runtime. 106.830 +When an application is executed, the loader binds the 106.831 +dynamic libraries, connecting them to the application. 106.832 + In this way, a single, 106.833 +unchanging, executable gains access to machine-specific implementations of language and proto-runtime. 106.834 + 106.835 +However, the success of the compile-once approach has 106.836 +limits in practice. Each machine's characteristics determine the size of unit of work that gives the best performance. When too small, the overhead in the runtime system that is required to create the work, manage constraints, and perform assignment becomes larger than the work 106.837 +itself. When work-unit size is too large, then not enough units exist to keep all the cores busy. Thankfully, the range between is wide enough, for most applications, that neither limit is hit, on most machines. As machines evolve, though, this happy circumstance is likely to change, necessitating recompiling and possibly hand modifying the application code or some meta-form. 106.838 + 106.839 +\subsection{Walk through of activity during execution} 106.840 + 106.841 +At this point, we present a picture of the flow of control on each 106.842 +of two cores, as the core is switched between application 106.843 +code and runtime code. It is too early to understand 106.844 +the details, but this figure can be referred back to 106.845 +as each portion is discussed in the coming sub-sections. 106.846 +Each portion of the figure is labelled with the sub-section that describes that portion of activity. 106.847 + 106.848 +At the top is the main program, which starts the proto-runtime, 106.849 +and creates a proto-runtime process. Below that is 106.850 +depicted the creation of proto-runtime virtual processors, 106.851 +along with the animation of application code by those virtual 106.852 +processors. 106.853 + 106.854 +? 106.855 + 106.856 +The application passes information to a wrapper library 106.857 +call, 106.858 +such as the ID of the mutex to acquire. The library function packages the 106.859 +information into a request data structure, then invokes a proto-runtime 106.860 +primitive. That suspends the virtual processor (timeline) that is executing 106.861 +that code. The call to the primitive passes as arguments the request structure and a pointer 106.862 +to the plugin function that will handle the request. 106.863 +The handler runs inside the Master and chooses which 106.864 +other timelines to resume as a consequence of the wrapper-library 106.865 +call. Those timelines will then resume, returning from 106.866 +whatever wrapper-library call caused them to suspend. In this way, the request handle implements the behavior of a 106.867 +synchronization construct. 106.868 + 106.869 +However, there is one last step between the request 106.870 +handler marking a timeline as ready to resume 106.871 +and it becoming re-animated. That step is where the 106.872 +assignment half of the language plugin comes into play. 106.873 +The request handlers stack up work that is free to 106.874 +be executed, but it is the assigner that chooses which 106.875 +of those to place onto an offered core. 106.876 + 106.877 + 106.878 + 106.879 + 106.880 + 106.881 +\begin{figure*}[ht] 106.882 + \centering 106.883 + \includegraphics[width = 7.0in, height = 4.5in] 106.884 + {../figures/Proto-Runtime__modules_plus_plugin_plus_code.pdf} 106.885 + \caption{Illustration of the physical time sequence of the timelines of multiple virtual processors executing on multiple 106.886 +cores. The timelines run top to bottom, while calls 106.887 +between modules and returns run horizontally. The colors of Fn names indicate whether the 106.888 +code is part of the application (green), the proto-runtime module (blue), or the language (red). The top two timelines are animated 106.889 +by core 1, while the bottom 2 are animated by core 106.890 +2. The boxes 106.891 +represent virtual processors, each with its associated 106.892 +timeline next to it. The timelines have no relative 106.893 +ordering, except at tie-points established by the Request 106.894 +Handlers. Gaps in the timelines are caused by suspension, 106.895 +which is effected by primitives within the proto-runtime 106.896 +code module.} 106.897 + \label{fig:langBreakdown} 106.898 +\end{figure*} 106.899 + 106.900 + 106.901 + 106.902 +\subsection{Using language constructs} 106.903 +In the simple form of an eDSL, the language constructs 106.904 +take the form of function calls. The reader familiar 106.905 +with posix threads will have used function calls to 106.906 +perform mutex acquire commands and mutex release commands. 106.907 +Here, we illustrate invoking language commands in the 106.908 +same way. 106.909 + 106.910 +We use posix threads for our example because it is 106.911 +a familiar language that the reader already knows well. 106.912 +It allows us to illustrate the concepts new to proto-runtime without introducing potential confusion about what the language semantics are. 106.913 + 106.914 +\subsubsection{Main and startup} 106.915 +Before using a proto-runtime based language, the proto-runtime 106.916 +system must be started, and a proto-runtime process 106.917 +must be created. Fig X shows this. Notice that the 106.918 +create process was given a pointer 106.919 +to a function. This function is the seed of the proto-runtime 106.920 +based application code. This seed must start all proto-runtime 106.921 +based languages that will be used in the application, 106.922 +and must create the virtual processors and tasks that 106.923 +perform the work and may in turn create more VPs and/or tasks that perform work. 106.924 + 106.925 +==main, with PR\_\_start and PR\_\_create\_process == 106.926 + 106.927 +\subsubsection{Seed birth function and thread birth 106.928 +function} 106.929 +Fig X shows our example seed function. It first starts 106.930 +the language that will be used, which is Vthread. It 106.931 +is an implementation of posix threads that is on top of proto-runtime. 106.932 +Next, the seed uses Vthread commands to create two 106.933 +threads, and then uses Vthread join to wait for both 106.934 +threads to die. Lastly it "dissipates", which is the 106.935 +command that kills the virtual processor that is animating 106.936 +the function. 106.937 + 106.938 +==seed\_birth\_Fn, with Vthread\_\_start(), Vthread\_\_create\_thread, 106.939 +Vthread\_\_join, Vthread\_\_stop, and dissipate== 106.940 + 106.941 +Notice the signature 106.942 +of the seed birth function. It returns void, and takes a pointer 106.943 +to void plus a pointer to a SlaveVP struct. This is 106.944 +the standard signature that must be used for all birth functions for 106.945 +proto-runtime created virtual processors or tasks. 106.946 + 106.947 + 106.948 +Also, notice that the standard signature includes a 106.949 +pointer to a SlaveVP struct. This is a proto-runtime 106.950 +defined structure, which holds the meta-information 106.951 +about a virtual processor. The birth function is handed 106.952 +the structure of the virtual processor that is animating 106.953 +it. 106.954 + 106.955 +An illuminating aside is that the birth function for 106.956 +a posix thread doesn't need 106.957 +to be handed the structure representing the animating thread. 106.958 +That is because the operating system tracks which thread 106.959 +is assigned to which core. Posix thread constructs work by executing 106.960 +an instruction that suspends the code executing on 106.961 +the core and switches 106.962 +the core over to animating the OS kernel code. The OS kernel 106.963 +then looks up the data structure that is assigned to 106.964 +the core. 106.965 + 106.966 +That lookup is how the OS kernel gains the 106.967 +pointer to the thread that was animating the application 106.968 +code that called the posix construct. But the implementation 106.969 +of proto-runtime illustrated in this paper doesn't 106.970 +have such a hardware based suspend instruction available, 106.971 +and so proto-runtime-based application code must explicitly pass around the pointer to the data 106.972 +structure of the virtual processor performing the animation. 106.973 + 106.974 +Fig X shows the birth function of the threads created 106.975 +by the seed birth function. It uses the Vthread equivalent 106.976 +of mutex acquire and release to protect access to 106.977 +a critical section. Notice that the signature 106.978 +is the same as the signature of the seed birth function. 106.979 +Also notice that the SlaveVP structure is handed to 106.980 +each invocation of a Vthread construct. In the next 106.981 +several sub sections we will track how this SlaveVP structure 106.982 +is used. 106.983 + 106.984 +==thread birth function.. uses Vthread acquire and 106.985 +release to protect a counter plus print of count value== 106.986 + 106.987 + 106.988 +\subsection{Language Wrapper Library} 106.989 + 106.990 +Looking at the implementation of the Vthread calls 106.991 +reveals code such as in Fig X. 106.992 + 106.993 +==wrapper lib code for mutex acquire== 106.994 + 106.995 +There's nothing much to it. It just creates a data 106.996 +structure, fills it, then hands it to a proto-runtime 106.997 +call. This is a starnd form for wrapper library 106.998 +calls. The data structure is used to carry information 106.999 +into the proto-runtime (the proto-runtime that was 106.1000 +started by the PR\_\_start command). The PR call is 106.1001 +the equivalent of the hardware instruction that suspends 106.1002 +application code and switches to the kernel. For the 106.1003 +implementation of PR illustrated in this paper, this 106.1004 +call is implemented with assembly instructions. 106.1005 + 106.1006 +This wrapper library code is placed on the machine 106.1007 +used during development of the application, and is 106.1008 +compiled into the application executable. However, 106.1009 +the proto-runtime call is a link to a dynamic library, 106.1010 +and is not part of the application executable. 106.1011 + 106.1012 +Notice that the PR\ primitive is given a pointer to 106.1013 +a function. This is called the handler function, and 106.1014 +is part of the language plugin. The proto-runtime 106.1015 +will actually perform the call to the handler function, but in a carefully controlled 106.1016 +way. It will provide the handler function with a carefully controlled environment 106.1017 +to use while it handles this wrapper-library call. 106.1018 +We will see in a moment how proto-runtime invokes the 106.1019 +handler function, and what such a handler function 106.1020 +looks like. 106.1021 + 106.1022 +First, here's the assembly that suspends the application code and 106.1023 +switches to the proto-runtime code, as seen in Fig X 106.1024 + 106.1025 +==assembly of suspend and switch== 106.1026 + 106.1027 +All it does is save the program counter and stack pointer 106.1028 +into the SlaveVP structure, then load in the program 106.1029 +counter and stack pointer of the proto-runtime code, 106.1030 +which was previously saved in different fields of that same SlaveVP structure. 106.1031 + 106.1032 +\subsubsection{proto-runtime code that is switched 106.1033 +to} 106.1034 + 106.1035 +The PR assembly code switches the core to executing 106.1036 +the (psuedo) code seen in Fig X. 106.1037 + 106.1038 +==animation master code, which calls plugin fns== 106.1039 + 106.1040 +All this does is invoke the handler function named 106.1041 +in the wrapper library, and hands it an environmen. 106.1042 +This is the hidden environment referred to in the tie-point 106.1043 +model. It must be accessed in an isolated, atomic, 106.1044 +fashion. The proto-runtime code seen here happens 106.1045 +to use a global lock for each language's environment. 106.1046 + However other implementations are possible. In order 106.1047 + to keep overhead low, it uses the Compare And Swap 106.1048 + instruction to acquire the lock, and an exponential random 106.1049 + backoff scheme when contention for the lock arises. 106.1050 + 106.1051 + The handler function is the hidden behavior that executes 106.1052 + on the hidden timeline that is mentioned in the tie-point 106.1053 + model. The suspend primitive is what begins a special 106.1054 + beat on the lifeline of the virtual processor that 106.1055 + executed the wrapper library call. It is this handler 106.1056 + code that then establishes the causal connections 106.1057 + between such special beats, and so ties them together. 106.1058 + The causal connection is via the changes make to the 106.1059 + language environment. 106.1060 + 106.1061 + So, in summary, the proto-runtime is the hidden timeline. 106.1062 + The suspend primitive is what starts a special beat 106.1063 + and starts the behavior on the hidden timeline. The 106.1064 + lock is what isolates and sequentializes 106.1065 + the behavior on the hidden timeline. The language 106.1066 + environment is the hidden state used to establish 106.1067 + causal connection between special beats. 106.1068 + 106.1069 + 106.1070 + 106.1071 +This is not the plugin code, this is the library that the application executable includes. It's equivalent to the pthread library. When you look at the source of the pthread library, it's just a wrapper that invokes the OS. It doesn't do anything itself. The language libraries are the same thing, just wrappers that invoke the proto-runtime primitives. Those suspend the VP and send a message to the proto-runtime. When the message arrives, it invokes the plugin to handle the task. 106.1072 + 106.1073 +Here's how the wrapper library connects a request to the request handler: via this function pointer, right here Fig X, given to the proto-runtime "suspend and send" primitive. The pointed-to function is part of the plugin. That runs inside the proto-runtime, and is what handles the message created in the wrapper library. 106.1074 + 106.1075 + 106.1076 +If we go and look at that handler function, Fig X, we see that it has a standard prototype, so it takes a standard set of arguments. One of those, here in Fig X, is a language environment. This is the special sauce, it is the thing that is shared among all the cores. This language environment is where tasks are placed that are not yet ready to execute, and where suspended virtual processors are placed that are not yet ready to resume. 106.1077 + 106.1078 +Here, Fig X, you can see there's a hash table. The language environment contains that hash table. The tasks get parked in this hash table. Each time a task completes, it looks in the hash table, finds all tasks waiting for its completion, and updates the status of those waiting tasks. If this was the last task being waited for, the waiter is taken out of the hash table and put into the queue of ready to execute tasks. 106.1079 + 106.1080 +This is the semantics of the language. This is how the semantics of the language defines what dependencies are, and how it defines when a task's dependencies have been satisfied. The implementation is just a data structure in the shared language environment. It is the proto-runtime that takes care of creating the tasks, creating the virtual processors, execute those, suspend them and resume them. The proto-runtime handles the mechanics of all that stuff. The language just figures out what are the constraints on making it ready. 106.1081 + 106.1082 +? 106.1083 + 106.1084 +Separately, the proto-runtime calls the Assigner function, which is also part of the plugin dynamic library. Each time a task completes or a virtual processor suspends, the wrapper library invokes a proto-runtime primitive. Among other things, that primitive informs the proto-runtime about the completion of that work, which tells the proto-runtime that hardware resources have just been freed up. 106.1085 + 106.1086 +The proto-runtime then invokes the Assigner function, passing it information about the hardware that was just freed. The assigner is implemented by the language and uses some language-specific way to choose which of the ready work-units to execute on that hardware (a work-unit is either a ready-to-execute task or a ready-to-resume virtual processors). This is how the language is given control over placement of work onto cores. 106.1087 + 106.1088 +=================== 106.1089 + 106.1090 + 106.1091 +\subsection{not sure} 106.1092 +A task is an atomic unit of work. It runs to completion, without suspending. That characteristic allows the proto-runtime to internally treat a task differently than a virtual processor. The fact that it never suspends means it doesn't need a stack, and needs less bookkeeping, which makes a task faster to create and faster to assign, for lower overhead. 106.1093 + 106.1094 +However, a task may optionally choose at some point to execute a language command that causes it to suspend. At the point it does that, the proto-runtime internally converts the task to a virtual processor. That allows the task to suspend and later resume, at the cost of gaining the normal virtual processor overhead. However, the virtual processor the task is converted to comes from a recycle pool and returns when the task completes. 106.1095 + 106.1096 +As an application programmer, you can create processes directly with an OS-like language built on top of the proto-runtime. But you use a programming language to create tasks or virtual processors. For example, VSs has a way to create tasks. VSs internally then uses a proto-runtime command to have the proto-runtime create a task for it. Then VSs decorates the task with its own meta-data. It uses that meta-data to track when a task should be executed. 106.1097 + 106.1098 +? 106.1099 + 106.1100 +The only thing you're allowed to do outside a language is create the environment in which you start a language. 106.1101 + 106.1102 +? 106.1103 + 106.1104 +The implementation of the language behavior is the plugin. The plugin has two parts: request handlers, which handle the messages that come when a VP suspends, and an assigner, which picks where particular VP resumes onto or a task runs. With VSs, the plugin provides the behavior of "submit task". 106.1105 +The request handler plus plugin together provide the two halves of what people normally call a scheduler. 106.1106 + 106.1107 +================= 106.1108 + 106.1109 +\subsection{more on tie-points} 106.1110 +Any event visible before in one is visible in both after. The guarantee is between before in one and after in both. 106.1111 + 106.1112 +From the program point of view, that acquire statement is one instant. That entire gap in physical time is seen as a single instant to the code. 106.1113 + 106.1114 +However, the tie point is just one instant in the timelines. After the point, one of the timelines could perform an event that interferes with an event from before the tie-point, and no guarantees are given about what the other timeline sees. However, if another tie-point is created between them, then they are both guaranteed to see that second, interfering event, after the second tie-point. 106.1115 + 106.1116 +Take the example of a mutex, M. The purpose of the only-one semantics of a mutex is to isolate read and write operations done by the owning thread from those done by other threads, which own before or after it. 106.1117 + 106.1118 +The mutex behavior is illustrated in Fig X. Timeline 1 writes to variable A at point 1, then releases the M at point 2. Timeline 2 acquires M, at the tied point 2 and reads A at point 3. For M to provide isolation, it must guarantee that the A write operation at point 1 is seen by the other timeline's read operation, at point 3. Likewise, it has to guarantees that nothing that happens in timeline 2 after the acquire of M, at point 2, will be seen by timeline 1 before its release, also at point 2. 106.1119 + 106.1120 +That ordering guarantee is what we think of when we imagine the behavior of a mutex acquire-release pair. All writes done by the releasing thread are seen as completed, by reads performed in the acquiring thread, and no writes in the acquiring thread are seen before the release by the releasing thread. That is required in order to have value for the semantics of only one thread owns the mutex at any point. The purpose of only-one is to isolate read and write operations done by the owning thread from those done by the threads that own before or after it. 106.1121 + 106.1122 + 106.1123 +The behavior is implemented in terms of a data structure that lives inside the controlling entity's environment. The controlling entity looks up the data structure for the mutex being requested. This data structure has a field that contains the name of the thread that current owns the mutex, plus a queue of threads waiting to acquire it. So, the controlling entity first looks at the field that holds the current owner, sees that it is occupied, and then puts the thread's name into the queue of waiting threads. 106.1124 + 106.1125 +At some point later, the waiting thread reaches the top of the queue. At the point the owning thread executes the release operation, that owning thread also suspends, the controlling entity sees that suspend and that the thread wants to perform the release behavior. It looks up the release behavior and performs it. This behavior looks up the mutex data structure in the controlling entity's environment, removes the releasing thread from the owner field, takes the top thread off the waiters, writes its name into the current owner, then marks both those threads as ready to resume their timelines. 106.1126 + 106.1127 +The proto-runtime is the controlling entity, which looks up the behaviors and performs them. It also manages the environment that holds the data structures used by the behaviors. 106.1128 + 106.1129 +=========== 106.1130 + 106.1131 +The purpose of the M is to guarantee that what gets written to A here in this timeline is seen over here, in this other timeline. 106.1132 + 106.1133 +So, to turn this simple mechanism into a synchronization construct, you add semantics on top, which determine the end of suspend in the two timelines. The timelines voluntarily place themselves into suspend, and it is up to the controlling entity to decide at what point to end that suspension. It is this choice of ending suspension that ties events in one timeline to events in another. The semantics of deciding that end of suspension is the semantics of the synchronization construct. 106.1134 + 106.1135 +For example, take mutual exclusion within Threads. One thread executes a construct that asks to acquire the mutex. At the point of executing, that thread suspends, so that timeline ceases advancing. At some point later, the controlling entity sees that suspend, and sees that the timeline is attempting the acquire mutex activity. It looks up the behavior for acquire mutex, which is then performed inside that controlling entity. 106.1136 + 106.1137 +============ 106.1138 + 106.1139 + 106.1140 +\subsection{More on eDSLs} 106.1141 +%====================================== 106.1142 + 106.1143 +%We expand on the hypothesis that an embedded style Domain Specfic Language (eDSL) provides high programmer productivity, with a low learning curve. We also show (\S ) that when an application is written in a well designed eDSL, porting it to new hardware becomes simpler, because often only the language needs to be ported. That is because the elements of the problem being solved that require large amounts of computation are often pulled into the language. Lastly (\S ), we hypothesize that switching from sequential programming to using an eDSL is low disruption because the base language remains the same, along with most of the development tools and practices. 106.1144 + 106.1145 +%In \S \ref{sec:DSLHypothesis} we show that the small number of users of an eDSL means that the eDSL must be very low effort to create, and also low effort to port to new hardware. At the same time, the eDSL must remain very high performance across hardware targets. 106.1146 + 106.1147 +%In \S we analyze where the effort of creating an eDSL is expended. It turns out that in the traditional approach, it is mainly expended in creating the runtime, and in performance tuning the major domain-specific constructs. We use this to support the case that speeding up runtime creation makes eDSLs more viable. 106.1148 + 106.1149 +%In \S we take a step back and examine what the industry-wide picture would be if the eDSL approach were adopted. A large number of eDSLs will come into existence, each with its own set of runtimes, one runtime for each hardware target. That causes a multiplicative effect: the number of runtimes will equal the number of eDSLs times the number of hardware targets. Unless the effort of implementing runtimes reduces, this multiplicative effect could dominate, which would retard the uptake of eDSLs. 106.1150 + 106.1151 + 106.1152 +% ============== 106.1153 + 106.1154 +%Further, in \S we show that when an application is written in a well designed eDSL, porting it to new hardware becomes simpler because often only the language needs to be ported. That is because the elements of the problem being solved that require large amounts of computation are often pulled into the language. Lastly, in \S we hypothesize that switching from sequential programming to using an eDSL is low disruption because the base language remains the same, along with most of the development tools and practices. Hence, we cover how the three issues currently making parallel programming unattractive are addressed by embedded-style DSLs. 106.1155 + 106.1156 +%We next show what the blocks to eDSLs are, and where the main effort in implementing an eDSL lies. Specifically, in \S \ref{sec:DSLHypothesis} we show that the small number of users of an eDSL means that the eDSL must be very low effort to create, and also low effort to port to new hardware. At the same time, the eDSL must remain very high performance across hardware targets. 106.1157 + 106.1158 +%In \S we analyze where the effort of creating an eDSL is expended. It turns out that in the traditional approach, it is expended in creating the translator for the custom DSL syntax, in creating the runtime, and in performance tuning the major domain-specific constructs. We propose that the MetaBorg[] or Rose[] translation approaches cover creating translators for custom syntax, and that tuning constructs is inescapable, leaving the question of runtime implementation time. 106.1159 + 106.1160 +%In \S we explore the effects of runtime implementation time by taking a step back and examine what the industry-wide picture would be if the eDSL approach were adopted. A large number of eDSLs will come into existence, each with its own set of runtimes, one runtime for each hardware target. That causes a multiplicative effect: the number of runtimes will equal the number of eDSLs times the number of hardware targets. Unless the effort of implementing runtimes reduces, this multiplicative effect could dominate, which would retard the uptake of eDSLs. Thus, showing that an approach that mitigates this multiplicative effect is valuable, and is the role that the proto-runtime plays. 106.1161 + 106.1162 + 106.1163 + 106.1164 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 106.1165 +\subsection{Details} 106.1166 +\label{subsec:Details} 106.1167 + 106.1168 + what responsibilities are encapsulated in which modules, and what the interfaces between them look like. 106.1169 + 106.1170 +modularization and its interface is what makes the proto-runtime reusable by all languages on given hardware, and the low-level tuning of the proto-runtime for specific hardware automatically benefits all the languages on that hardware. 106.1171 + 106.1172 +? 106.1173 + 106.1174 + 106.1175 + 106.1176 + overhead measurements 106.1177 + 106.1178 +implementation time measurements 106.1179 + 106.1180 + discuss why equivalent user-level M to N thread packages haven't been pursued, leaving no viable user-level libraries to compare against. 106.1181 + 106.1182 + give numbers that indicate that the proto-runtime approach is also competitive with Cilk, and OMPSs, on large multi-core servers. 106.1183 + 106.1184 + summary of development time of the various embedded languages created so far. Unfortunately, no control is available to compare against, but we provide estimates based on anecdotal evidence of the time taken to develop the versions compared against for overhead. In the 106.1185 +least, the same effort would have to be expended on 106.1186 +each and every language that we expended on performance 106.1187 +tuning our proto-runtime. 106.1188 + 106.1189 + We continue with a bigger picture discussion of the difference in design methods between traditional approaches and the proto-runtime implementations (\S ). We discuss OpenMP versus the equivalent proto-runtime version called VOMP (\S ). Then (\S ) we discuss Cilk 5.4 vs the proto-runtime VCilk. Next we discuss pthread vs Vthread (\S ), and OMPSs vs VSs (\S ). These discussions attempt to give the two design philosophies and paint a picture of the development process in the two competing approaches. The goal is to 106.1190 + 106.1191 +illustrate how the proto-runtime approach maintains many of the features, through its centralized services, while significantly reducing implementation time, through reuse of the services, elimination of concurrency concerns in design and debugging, and in the simplifications in design and implementation caused by the clean modularization of the proto-runtime approach, and the regularization of implementation from one language to another. 106.1192 + 106.1193 +Then, with the full understanding of the proto-runtime approach in hand, we discuss how it compares to related work (\S ). 106.1194 + 106.1195 +Finally, we highlight the main conclusions drawn from the work (\S ). 106.1196 + 106.1197 + 106.1198 + 106.1199 +? 106.1200 + 106.1201 + 106.1202 + 106.1203 + 106.1204 + The behavior module creates work and determines when work is free the execute, it tracks constraints on work imposed by language semantics, and constraints 106.1205 +due to data dependencies. 106.1206 + 106.1207 + a copy of the proto-runtime with language modules runs separately on each core and they communicate via shared variables in a shared language environment. The proto-runtime protects access to the shared language environment so that language modules can be written in sequential style. 106.1208 + 106.1209 +? 106.1210 + 106.1211 +The proto-runtime also implements "centralized" services that it makes available to all languages. Hardware specific functions include communicating between processors and protecting the internal state used by the language modules. 106.1212 + 106.1213 + 106.1214 + 106.1215 + this makes the proto-runtime be reused by all languages on given hardware, and the low-level tuning of the proto-runtime for specific hardware automatically benefits all the languages that run on that hardware. 106.1216 + 106.1217 + implementing language logic, 106.1218 + 106.1219 +show how the proto-runtime interface allows it to use sequential thinking. 106.1220 + 106.1221 +give similar detail on the implementation of the assigner, 106.1222 +we discuss how that has the potential to improve application performance by reducing communication between cores and reducing idle time of cores. 106.1223 + 106.1224 +support belief that the patterns we followed when modularizing are indeed fundamental and will remain valid for future languages and hardware. 106.1225 + 106.1226 + discuss some of the centralized services provided by the current proto-runtime implementation, as well as planned future ones. 106.1227 + 106.1228 +reusing language logic from one language implementation to another. 106.1229 + 106.1230 + 106.1231 +%%%%%%%%%%%%%%%%%%%%%%%% 106.1232 +%% 106.1233 +%%%%%%%%%%%%%%%%%%%%%%%% 106.1234 +\section{Measurements} 106.1235 +With the background on eDSLs and description of the proto-runtime approach behind us, we then provide overhead measurements in \S\ref{subsec:OverheadMeas} and implementation time measurements in \S\ref{subsec:ImplTimeMeas} 106.1236 + 106.1237 +\subsection{Overhead Measurements} \label{subsec:OverheadMeas} 106.1238 +For the following, we use a 4-core single socket 2.4Ghz laptop, and a 4 socket by 10 core each server. 106.1239 + 106.1240 +For runtime performance: 106.1241 + 106.1242 +-- Vthread vs pthread: laptop and server on exe vs task (and fibonacci?) 106.1243 + 106.1244 +-- VCilk vs Cilk: laptop and server on fibonacci (from Albert) 106.1245 + 106.1246 +-- VOMP vs OpenMP: laptop and server on exe vs task and fibonacci 106.1247 + 106.1248 +-- VSs vs OMPSs: laptop and server on fibonacci and jpeg 106.1249 + 106.1250 +\begin{tabular}{|c|c|c|c|c|c|c|}\hline 106.1251 +a & 2 & a & a & a & a & a \\\hline 106.1252 +a & 2 & a & a & a & a & a \\\hline 106.1253 +a & a & a & a & a & a & a \\\hline 106.1254 +a & a & a & a & a & a & a \\\hline 106.1255 +\end{tabular} 106.1256 +\caption{} 106.1257 +\label{tab} 106.1258 + 106.1259 +As seen, we didn't include application performance because we have not yet taken advantage of the opportunity to use language information to predict locality. That research is in progress and will be reported in future papers. 106.1260 + 106.1261 + 106.1262 +\subsubsection{Vthread Versus Highly Tuned Posix Threads} 106.1263 + 106.1264 +Measurements indicate that the proto-runtime approach has far lower overhead than even the current highly tuned Linux thread implementation, and discusses why equivalent user-level M to N thread packages haven't been pursued, leaving no viable user-level libraries to compare against. 106.1265 +\subsubsection{VCilk Versus Cilk 5.4} 106.1266 +In \S we give numbers that indicate that the proto-runtime approach is also competitive with Cilk 106.1267 +\subsubsection{VSs Versus StarSs (OMPSs)} 106.1268 +OMPSs 106.1269 +\subsubsection{VOMP Versus OpenMP} 106.1270 +VOMP 106.1271 + 106.1272 + 106.1273 +%%%%%%%%%%%%%%%%%%%%%%%% 106.1274 +%% 106.1275 +%%%%%%%%%%%%%%%%%%%%%%%% 106.1276 +\subsection{Development Time Measurements}\label{subsec:ImplTimeMeas} 106.1277 +Here we summarize the time to develop each of the eDSLs and copy-cat languages created so far. As a control, we estimate how long the equivalent functionality required, using the traditional approach, based on anecdotal evidence. 106.1278 + 106.1279 +Summarized in Table \ref{tabPersonHoursLang}, we measured the time we spent to design, code, and get an initial version working for each of the languages we created. The results are shown in the same order we created them, with SSR the first. As we gained experience, design and coding became more efficient. Not shown is the 7 hours required to take the send-receive code from SSR and adapt it to work with tasks in VSs. In addition, 11 hours was spent importing the DKU constructs into VSs. These are hours spent at the keyboard or with pen and paper, and don't include think time during other activities in the day. 106.1280 + 106.1281 + 106.1282 +\begin{centering} 106.1283 +\begin{tabular}{|l|r|r|r|r|r|r|} 106.1284 + \cline{2-7} 106.1285 + \multicolumn{1}{r|}{} & SSR & Vthread & VCilk & HWSim & VOMP & VSs\\ 106.1286 + \cline{2-7} 106.1287 + \noalign{\vskip2pt} 106.1288 + \hline 106.1289 + Design & 19 & 6 & 3 & 52 & 18& 6\\ 106.1290 + Code & 13 & 3 & 3& 32 & 9& 12\\ 106.1291 + Test & 7 & 2 & 2& 12 & 8& 5\\ 106.1292 + L.O.C. & 470 & 290 & 310& 3000 & 690 & 780\\ 106.1293 + \hline 106.1294 +\end{tabular} 106.1295 +\caption 106.1296 +{Hours to design, code, and test each embedded language. L.O.C. is lines of (original) C code, excluding libraries and comments. 106.1297 +} 106.1298 +\end{centering} 106.1299 +\label{tabPersonHoursLang} 106.1300 + 106.1301 +\subsubsection{Comparison of Design Approaches} 106.1302 +We give the bigger picture of the difference in design methods between traditional approaches and the proto-runtime implementations, discussing OpenMP versus VOMP, Cilk 5.4 vs VCilk, pthread vs Vthread, and OMPSs vs VSs. These discussions attempt to give the two design philosophies and paint a picture of the development process in the two competing approaches. The goal is to illustrate how the proto-runtime approach maintains many of the language features, through its centralized services, while significantly reducing implementation time, through reuse of the services, elimination of concurrency concerns in design and debugging, and in the simplifications in design and implementation caused by the clean modularization of the proto-runtime approach, and the regularization of implementation from one language to another. 106.1303 + 106.1304 + 106.1305 +%%%%%%%%%%%%%%%%%%%%%%%% 106.1306 +%% 106.1307 +%%%%%%%%%%%%%%%%%%%%%%%% 106.1308 +\section{Related Work} \label{sec:Related} 106.1309 + 106.1310 +With the full understanding of the proto-runtime approach in hand, we discuss how it compares to other approaches for implementing the runtimes of domain specific languages. The criteria are: level of effort to implement the runtime, effort to port the runtime, runtime performance, and support for application performance. The main alternative implementation approaches are: posix threads, user-level threads, TBB, modifying libGomp, and using hardware primitives to make a custom runtime. 106.1311 + 106.1312 +We first talk about each of these approaches, then summarize the conclusions in Table \ref{tab:CriteriaVsApproach}. 106.1313 + 106.1314 +The first three methods involve building the DSL runtime on top of OS threads, user threads, or TBB, all of which are languages in their own right. So the DSL runtime runs on top of the runtime for that lower-level language. This places control of work placement inside the lower-level runtime, blocking the DSL runtime, which hurts application-code performance, due to inability to use data locality. In addition, OS threads have operating system overhead and OS-imposed fairness requirements, which keeps runtime performance poor. 106.1315 + 106.1316 +All three also force the DSL implementation to manage concurrency explicitly, using language primitives such as locks. TBB may have a slight advantage due to its task-scheduling commands, but only for task-based languages. Hence, implementation effort is poor for these approaches. 106.1317 + 106.1318 +For the same reason, for these three, the runtime code needs to be rewritten and tuned for each hardware platform for each language, or else some form of hardware-abstraction placed into the runtime. But putting in a hardware abstraction is essentially an alternative way of implementing half of the proto-runtime approach, but without the centralization, reuse, and modularization benefits. 106.1319 + 106.1320 +Many language researchers use libGomp (based on informal discussions) because of its very simple structure, which makes it relatively easy to modify, especially for simple languages. However, it provides no services such as debugging or performance tuning, and it has no modularization or reuse across languages benefits. As the price of the simplicity, performance suffers, as seen in the experiments []. Also, re-writes of the DSL runtime are required for each platform in order to tune it to hardware characteristics. However, because the runtime is directly modified, the language gains control over placement of work, enabling good application performance. 106.1321 + 106.1322 +Lastly, we consider the alternative of writing a custom runtime from scratch, using hardware primitives such as the Compare And Swap (CAS) instruction, or similar atomic read-modify-write instructions. This approach requires the highest degree of implementation effort, and the worst portability across hardware. However, if sufficient effort is expended on tuning, it can achieve the best runtime performance and equal the best performance of application code. So far, the gap has proven small between highly tuned language-specific custom runtime performance and that of our proto-runtime, but we only have the CILK implementation as a comparison point. 106.1323 + 106.1324 +Putting this all together, Table \ref{tab:CriteriaVsApproach} shows that the proto-runtime approach is the only one that scores high in all the mesures. It makes initial language implementation fast, as well as reduces porting effort, while keeping runtime performance high and enabling high application performance. 106.1325 + 106.1326 +\begin{center} 106.1327 +\begin{tabular}{|c|c|c|c|c|}\hline 106.1328 +Runtime Creation & \textbf{impl.}& \textbf{porting} & \textbf{runtime} & \textbf{application} \\ 106.1329 +\textbf{} & \textbf{ease} & \textbf{ease} & \textbf{perf.} & \textbf{perf.}\\\hline 106.1330 +\textbf{OS Threads} & ++ & ++ & + & + \\\hline 106.1331 +\textbf{User Threads} & ++& ++ & ++ & + \\\hline 106.1332 +\textbf{TBB} & ++ & ++ & ++ & + \\\hline 106.1333 +\textbf{libGomp} & +++ & ++ & +++ & ++++ \\\hline 106.1334 +\textbf{HW primitives} & + & + & +++++ & +++++ \\\hline 106.1335 +\textbf{Proto-runtime} & +++++ & +++++ & ++++ & +++++\\\hline 106.1336 +\end{tabular} 106.1337 +\end{center} 106.1338 +\caption{The table shows how well each approach scores in each measure important to the implementor of a runtime for a DSL. On the left are the approaches that can be used to write the runtime. At the top are the measures an implementor may care about. For all measures, one plus is the lowest score, indicating the implementation approach is undesirable, 5 indicates the highest desirability. The scores are based on reasons discussed in the text. } 106.1339 +\label{tab:CriteriaVsApproach} 106.1340 + 106.1341 + 106.1342 + 106.1343 + 106.1344 +%%%%%%%%%%%%%%%%%%%%%%%% 106.1345 +%% 106.1346 +%%%%%%%%%%%%%%%%%%%%%%%% 106.1347 +\section{Conclusions and Future Work} 106.1348 +The main takeaways from the paper are first, the potential for embedded style Domain Specific Languages (eDSLs) to address the issues that are holding-back parallel programming, and second the role that the proto-runtime approach can play in making eDSLs practical, by simplifying the runtime aspect of implementing a large number of eDSLs across the many hardware targets. 106.1349 +%The proto-runtime approach does this by modularizing the runtimes, providing reuse of centralized services, and reuse of the hardware-specific performance tuning, which is performed once per hardware, on the proto-runtime, then enjoyed by all the eDSLs. Hence, the proto-runtime approach provides a significant piece of the puzzle of providing eDSLs, to bring parallel programming into the mainstream. 106.1350 + 106.1351 + 106.1352 +%[[Hypothesis: Embedded-style DSLs -> high productivity + low learning curve + low disruption + low app-port AND quick time to create + low effort to lang-port + high perf across targets]] 106.1353 + 106.1354 + 106.1355 +Specifically, we have shown how the approach modularizes runtime code, in a way that appears applicable to any language or execution model. It isolates the hardware-specific portion from language behavior as well as from the language-driven placement of work onto resources, providing interfaces between them. 106.1356 + 106.1357 + The modularization reduces the effort of implementing a new language, especially for an embedded-style one where runtime creation is a significant portion of total effort. It causes the low level hardware portion to be reused by each language. And, the behavior implementation is simplified, by handling shared state inside the proto-runtime and exporting a sequential interface for the behavior module to use. The simplification reduces effort, as does reuse of the hardware-specific portion, reuse of behavior code from one language to another, reuse of assignment code, and familiarity with the modular structure by implementors. Overall effort reduction was supported by measurements of implementation effort. 106.1358 + 106.1359 +The proto-runtime approach makes it practical to maintain high overall runtime performance, with low effort for the language implementor. It is practical because high effort is put into performance-tuning the hardware-specific proto-runtime, which is then reused by each language. In this way the performance derived from the high tuning effort is inherited without extra effort by the language creators, thus amortizing the cost. 106.1360 + 106.1361 +Centralized services were implemented inside the proto-runtime portion, such as debugging facilities, automated verification, concurrency handling, hardware performance information gathering, and so on. We showed how they are reused by the languages. 106.1362 + 106.1363 +Although we didn't measure it, we indicated how application performance can be increased due to giving the language direct control over placement of work, to take advantage of data affinity or application-generated communication patterns. This ability is due to the assignment module, which provides the language implementor with control over which core work is assigned to, and the order of executing each work unit. 106.1364 + 106.1365 +Work on the proto-runtime approach is in its infancy, and much remains to be done, including: 106.1366 +\begin{itemize} 106.1367 +\item Creating related interfaces for use with distributed memory hardware, and interfaces for hierarchical runtimes, to improve performance on many-level hardware such as high-performance computers, and to tie together runtimes for different types of architecture, to cover heterogeneous architectures and machines. 106.1368 +\item Extending the proto-runtime interface to present hardware information that a work-assigner will need, but in a generic way that remains constant across many hardware configurations yet exposes all relevant information. 106.1369 +\item Exploring work assignment implementations that take advantage of language and application knowledge to improve placement of work to gain higher application performance. 106.1370 +\item Applying the proto-runtime approach to support a portability software stack, and supply OS services to applications via the proto-runtime, to further increase application-code portability. 106.1371 +\end{itemize} 106.1372 + 106.1373 + 106.1374 +============================================= 106.1375 +== 106.1376 +== 106.1377 +== 106.1378 +== 106.1379 +== 106.1380 +============================================= 106.1381 + 106.1382 +\section{The Problem} 106.1383 + 106.1384 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 106.1385 + 106.1386 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 106.1387 + 106.1388 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 106.1389 + 106.1390 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 106.1391 + 106.1392 + 106.1393 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 106.1394 + 106.1395 +While talking about the problems encountered by Domain Specific Languages (DSLs), we focus on implications for the runtime system, due to its central role in the claims. At the same time we will support the hypothesis that embedded-style DSLs are high-productivity for application programmers, have a low learning curve, and cause low disruption to current programming practices. While doing this we set the ground work for the next section, where we show that the main effort of implementing embedded-style DSLs is creating the runtime, and that when using the proto-runtime approach, embedded-style DSLs are low-effort to create and port and move the effort of porting for high performance out of the application and into the language. 106.1396 + 106.1397 +To give the needed depth, we'll first talk about a way to classify parallel languages according to the structure of their runtime (subsection \ref{subsec:ClassifyingLangs}). Then we'll talk about the sub-class of domain specific parallel languages, what sets them apart, and the implications for their runtime implementations (subsection \ref{subsec:DomSpecLangs}). That segues into the embedded style of language, and how the work of implementing them is mainly the work of implementing their runtime (subsection \ref{subsec:EmbeddedDSLs}). 106.1398 + 106.1399 +Once that reduction from parallel languages in general to embedded style domain specific ones in particular is done, we'll give more on what embedded style DSLs look like from an application programmer's view (subsection \ref{subsec:AppProgViewOfDSL}). We will include depth on a particular embedded-style language, showing sample code that uses the constructs, then delving into needs within the implementation of that language, and behavior of the constructs during a run (subsection []). 106.1400 + 106.1401 +The main implications for runtime systems, which were uncovered within the section, are summarized at the end (subsection []). 106.1402 + 106.1403 +\subsection{Classifying parallel languages by virtual processor based vs task based} 106.1404 +\label{subsec:ClassifyingLangs} 106.1405 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 106.1406 + 106.1407 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 106.1408 + 106.1409 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 106.1410 + 106.1411 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 106.1412 + 106.1413 + 106.1414 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 106.1415 + 106.1416 +One major axis for classifying parallel languages is whether they are virtual processor based or task based, which has implications for the structure of the runtime. 106.1417 + 106.1418 +A virtual processor is long-lived, and has a context that persists across suspend and resume, while a task has no preceding context to fit into and leaves no implied context when done. Posix threads is a standard example of a virtual processor based parallel language, as are UPC, Charm, TBB, and so forth. All of these create virtual processors (aka threads), which suspend when they invoke synchronizations and other parallel-language constructs then resume after the construct completes. Such virtual processors have their own private stack to save the information that is needed upon resume. 106.1419 + 106.1420 +In contrast, dataflow is a standard example of a task based language, as is CnC. For these languages, a task is passed all the information it needs at the point of creation, and is expected to run to completion. If a task needs to invoke a parallelism construct, that invocation normally ends the task, while information needed by following tasks is saved explicitly in shared variables, or passed to the runtime as a continuation that is then handed to the task created when the construct completes. 106.1421 + 106.1422 +Hybrids of the two also exist, such as OpenMP which implies thread creation, via the parallel-pragma, but also creates tasks via the for-pragma. As well, StarSs (OMPSs) mixes the two, with a main thread that creates meta-tasks that have to resolve their dependencies before being turned into executable tasks. Those tasks are also able to invoke barriers and other synchronization constructs, then resume. 106.1423 + 106.1424 +The runtime implementations of the two different types of execution model differ markedly. Virtual processor (VP) based runtimes have to create a stack for each VP created, and manage the interleaving of the CPU's hardware stack. They also require a mechanism to suspend and resume the VPs, and save them in internal structures while suspended. 106.1425 + 106.1426 +In contrast, task based runtimes need ultra-fast creation of tasks, and fast linkage from the end of one to the start of the next. They tend to keep the task-structures in a queue and discard them when complete. 106.1427 + 106.1428 +Hence, VP based runtimes revolve around storing suspended VPs inside structures that embody the constraints on when the VP can resume. But task based runtimes revolve around the conditions upon which to create new tasks, and the organization of the inputs to them. The runtimes for hybrid languages have characteristics of both. 106.1429 + 106.1430 + 106.1431 +\subsection{Domain specific parallel languages} 106.1432 +\label{subsec:DomSpecLangs} 106.1433 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 106.1434 + 106.1435 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 106.1436 + 106.1437 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 106.1438 + 106.1439 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 106.1440 + 106.1441 + 106.1442 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 106.1443 + 106.1444 +Now we'll talk about the sub-class of Domain Specific Languages (DSLs): what sets them apart from other parallel languages, how they potentially solve the issues with parallel programming, and the implications for their runtime implementations. 106.1445 + 106.1446 +DSLs can be any of the three basic language types (VP based, task-based or hybrid), but they are distinguished by having constructs that correspond to features of one narrow domain of applications. For example, we have implemented a DSL that is just for use in building hardware simulators [cite the HWSim wiki]. Its constructs embody the structure of simulators, and make building one fast and even simpler than when using a sequential language, as will be shown in Subsection []. The programmer doesn't think about concurrency, nor even about control flow, they simply define behavior of individual hardware elements and connect them to each other. 106.1447 + 106.1448 +It is this fit between language constructs and the mental model of the application that makes DSLs highly productive and easy to learn, at the same time, it is also what makes applications written in them more portable. Application patterns that have strong impact on parallel performance are captured as language constructs. The rest of the source code has less impact on parallel performance, so just porting the language is enough to get high performance on each hardware target. 106.1449 + 106.1450 +In practice, designing such a language is an art, and for some hardware targets, the language can become intrusive. For example, for porting to GPGPUs, their performance is driven by decomposition into many small, simple, kernels, which access memory in contiguous chunks. Fitting into this pattern forces rearrangement of the base sequential code, and even constrains choice of algorithm. Hence, a DSL that is portable to standard architectures as well as GPUs would place the GPU restrictions onto the code for all machines. However, much excellent work [polyhedral, others] is being done on automated tools to transform standard code to GPU form, which would lift the restrictions. Also, constructs such as the DKU pattern [] map well onto GPUs as well as standard hardware. 106.1451 + 106.1452 +\subsection{The embedded style of DSL} 106.1453 +\label{subsec:EmbeddedDSLs} 106.1454 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 106.1455 + 106.1456 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 106.1457 + 106.1458 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 106.1459 + 106.1460 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 106.1461 + 106.1462 + 106.1463 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 106.1464 + 106.1465 +We segue now into the embedded style of language, and show how the work of implementing them is mainly the work of implementing their runtime plus their complex domain constructs. We focus on embedded style domain specific languages because it is the least effort-to-create form of DSL, and making DSLs practical requires it to be low effort to create them and port them to various hardware targets. 106.1466 + 106.1467 + 106.1468 +An embedded-style language is one that uses the syntax of a base language, like C or Java, and adds constructs that are specific to the domain. An added construct may be expressed in custom syntax that is translated to into a library call, or else directly invoked by making a library call, as illustrated in Figure \ref{fig:EmbeddedEx}. Inside the library call, a primitive is used to escape the base language and enter the embedded language's runtime, which then performs the behavior of the construct. 106.1469 + 106.1470 + 106.1471 +\begin{figure}[h!tb] 106.1472 +{\noindent 106.1473 +{\footnotesize 106.1474 +{\normalsize Creating a new virtual processor (VP):} 106.1475 +\begin{verbatim} 106.1476 +newVP = SSR__create_VP( &top_VP_fn, paramsPtr, animatingVP ); 106.1477 +\end{verbatim} 106.1478 + 106.1479 +{\noindent {\normalsize sending a message between VPs:}} 106.1480 +\begin{verbatim} 106.1481 +SSR__send_from_to( messagePtr, sendingVP, receivingVP ); 106.1482 +\end{verbatim} 106.1483 + 106.1484 +{\noindent {\normalsize receiving the message (executed in a different VP):}} 106.1485 +\begin{verbatim} 106.1486 +messagePtr = SSR__receive_from_to( sendingVP, receivingVP ); 106.1487 +\end{verbatim} 106.1488 +} 106.1489 +} 106.1490 + 106.1491 +\caption 106.1492 +{Examples of invoking embedded-style constructs. 106.1493 +} 106.1494 +\label{fig:EmbeddedEx} 106.1495 +\end{figure} 106.1496 +An embedded-style language differs from a library in that it has a runtime system, and a way to switch from the behavior of the base language to the behavior inside the runtime. In contrast, libraries never leave the base language. Notice that this means, for example, that a posix threads library is not a library at all, but an embedded language. 106.1497 + 106.1498 +As a practical matter, embedded-style constructs normally have a thin wrapper that invokes the runtime. However, some DSLs perform significant effort inside the library before switching to the runtime, or else after returning from the runtime. These look more like traditional libraries, but still involve an escape from the base language and more importantly are designed to work in concert with the parallel aspects of the language. They concentrate key performance-critical aspects of the application inside the language, such as dividing work up, or, for example, implementing a solver for differential equations that accepts structures created by the divider. 106.1499 + 106.1500 +It is the appearance of constructs being library calls that brings the low-disruption benefit of embedded-style DSLs. The syntax is that of the base language, so the existing development tools and work flows remain intact when moving to an embedded style DSL. In addition, the fit between domain concepts and language constructs minimizes mental-model disruption when switching and makes the learning curve to adopt the DSL very low. 106.1501 + 106.1502 +\subsection{Application programmer's view of embedded-style DSLs} 106.1503 +\label{subsec:AppProgViewOfDSL} 106.1504 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 106.1505 + 106.1506 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 106.1507 + 106.1508 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 106.1509 + 106.1510 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 106.1511 + 106.1512 + 106.1513 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 106.1514 + 106.1515 +Well designed DSLs have very few constructs, yet capture the most performance-critical domain patterns, in a way that feels natural to the application programmer. This often means that data structures and usage patterns are part of the language. 106.1516 + 106.1517 +For example, a linear-equation-solving language would define a standard data structure for the coefficients of the equations, and supply a construct by which the language is asked to perform the work of solving them. This feels very much like a library, but the runtime system dynamically performs division of work according to the hardware, and implements communication between cores and a scheduler that load balances and tries to take advantage of data affinity and even computational accelerators. All of which puts performance in the hands of the runtime and is simple to use. 106.1518 + 106.1519 +An example of a DSL that we created using the proto-runtime approach is HWSim [], which is designed to be used for writing architectural simulators. 106.1520 + 106.1521 +When using HWSim, a simulator application is composed of just three things: netlist, behavior functions and timing functions. These are all sequential code that call HWSim constructs at boundaries, such as the end of behavior, and use HWSim supplied data structures. To use HWSim, one creates a netlist composed of elements and communication paths that connect them. A communication path connects an outport of the sending element to an inport of the receiving element. An action is then attached to the inport. The action is triggered when a communication arrives. The action has a behavior function, which changes the state of the element, and a timing function which calculates how much simulated time the behavior takes. 106.1522 + 106.1523 +The language itself consists of only a few standard data structures, such as \texttt{Netlist}, \texttt{Inport}, \texttt{Outport}, and a small number of constructs, such as \texttt{send\_comm} and \texttt{end\_behavior}. The advancement of simulated time is performed by a triggered action, and so is implied. The parallelism is also implied, by the only constraints on order of execution of actions being consistency. 106.1524 + 106.1525 +The only parallelism-related restriction is that a behavior function may only use data local to the element it is attached to. Parallel work is created within the system by outports that connect to multiple destination inports which means one output triggers multiple actions, and by behavior functions that generate multiple output communications each. 106.1526 + 106.1527 +Overall, simulator writers have fewer issues to deal with because time-related code has been brought inside the language, where it is reused across simulators, and because parallelism issues reduce to simply being restricted to data local to the attached element. Both these increase productivity of simulator writers, despite using a parallel language. The language has so few commands that it takes only a matter of days to become proficient (as demonstrated informally by new users of HWSim). Also, parallelism related constructs in the language are generic across hardware, eliminating the need to modify application code when porting to new hardware (if the language is used according to the recommended coding style). 106.1528 + 106.1529 +\subsection{Implementation of Embedded-style DSLs} 106.1530 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 106.1531 + 106.1532 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 106.1533 + 106.1534 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 106.1535 + 106.1536 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 106.1537 + 106.1538 + 106.1539 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 106.1540 + 106.1541 +When it comes to implementing an embedded-style of DSL, the bulk of the effort is in the runtime and the more complex domain specific constructs. 106.1542 + 106.1543 +Examples of constructs implemented for DSLs include Abstract Data Types (ADTs), like linked lists, hash tables, and priority queues. Also, full algorithms, like solvers for systems of equations, or even linear algebra operations on matrices. It will be seen in subsection[] that the proto-runtime approach causes the implementation for such constructs to be reused, with high performance, across all the hardware targets in a hardware class such as the class of shared-memory multi-core platforms. 106.1544 + 106.1545 +In addition, embedded style DSLs rely heavily on data types that are part of the language. These are often domain-specific such as \texttt{Netlist}, \texttt{Inport}, and \texttt{Outport} in HWSim, or \texttt{Protein} in a bio-informatics DSL, but can also be common such as \texttt{SparseMatrix} in domains like data mining and scientific applications. 106.1546 + 106.1547 + 106.1548 + During language design, common patterns that consume significant development time or computation are placed into the language. Also, any patterns that expose hardware configuration, such as the number and size of pieces of work should be pulled into the language to aid portability. 106.1549 + 106.1550 +If such design is successful then porting the application reduces to just porting the language. When the language has successfully captured the main computational patterns of the domain, then the application code encapsulates only a small portion of the performance, so it does not need to be tuned. Further, when patterns that expose hardware-motivated choices or hardware-specific commands are in the language, then the application code has nothing that needs to change when the hardware changes. 106.1551 + 106.1552 +For example, HWSim pulls hardware-specific patterns inside the language by handling all inter-core communications inside the language, and also by aggregating multiple elements together on the same core to tune work-unit size. 106.1553 + 106.1554 +The advantage of placing these into the language, instead of application code, is portability and productivity. 106.1555 + 106.1556 + 106.1557 +\subsection{Implementation Details of Embedded-style DSLs} 106.1558 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 106.1559 + 106.1560 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 106.1561 + 106.1562 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 106.1563 + 106.1564 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 106.1565 + 106.1566 + 106.1567 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 106.1568 + 106.1569 +? 106.1570 + 106.1571 +Figure [] shows\ the implementation of the wrapper library for HWSim's send\_and\_idle construct, which sends a communication on the specified outport, and then causes the sending element to go idle. Of note is the packaging of information for the runtime. It is placing into the HWSimSemReq data structure, and then the application work is ended by switching to the runtime. The switch is via the send\_and\_suspend call, which is a primitive implemented in assembly that jumps out of the base C language and into the runtime. 106.1572 + 106.1573 +The switch to the runtime can be done in multiple ways. Our proto-runtime uses assembly to manipulate the stack and registers. For posix threads language, when implemented in Linux, the hardware trap instruction is used to switch from application to the OS. The OS serves as the runtime that implements the thread behavior. 106.1574 + 106.1575 +The core is used by the construct implementation differently for VP based languages vs for task based languages. 106.1576 + 106.1577 +For VP based languages, once inside the runtime, a synchronization construct performs the behavior shown abstractly in Figure []. In essence, a synchronization construct is a variable length delay, which waits for activities outside the calling code to cause specific conditions to become true. These activities could be actions taken by other pieces of application code, such as releasing a lock, or they could be hardware related, such as waiting for a DMA transfer to complete. 106.1578 + 106.1579 +While one piece of application code (in a VP) is suspended, waiting, other pieces can use the core to perform their work, as long as the conditions for those other pieces are satisfied. Hence, the runtime's construct implementation checks if conditions are met, and if not stores the suspended piece (VP). If the construct can change conditions for others, it updates them. For example, the lock-release construct updates state for VPs waiting for the lock. Separately, for VPs whose conditions have been met, when a core becomes available, the runtime chooses which VP to assign to which core. 106.1580 + 106.1581 +These are the two behaviors a construct performs inside the runtime: managing conditions on which work is free, and managing assignment of free work onto cores. 106.1582 + 106.1583 +For task based languages, a task runs to completion then always switches to the runtime at the end. Hence, no suspend and resume exists. Once inside, the runtime's job is to track conditions on which tasks are ready to run, or which to create. For example, in dataflow, a task is created only once all conditions for starting it are met. Hence, the only language constructs are "instantiate a task-creator", "connect a task creator to others", and "end a task". During a run, all of the runtime behavior takes place inside the "end a task" construct, where the runtime sends outputs from the ending task to the inputs of connected task-creators. The "send" action modifies internal runtime state, which represents the order of inputs to a creator on all of its input ports. When all inputs are ready, it creates a new task, then when hardware is ready, assigns the task to a core. 106.1584 + 106.1585 + 106.1586 +One survey[] discusses DSLs for a variety of domains, and this list of DSLs was copied from their paper: 106.1587 +\begin{itemize} 106.1588 +\item In Software Engineering: Financial products [12, 22, 24], behavior control and coordination [9, 10], software architectures [54], and databases [39]. 106.1589 +\item Systems Software: Description and analysis of abstract syntax trees [77, 19, 51], video device driver specifications [76], cache coherence protocols [15], data structures in C [72], and operating system specialization [63]. 106.1590 +\item Multi-Media: Web computing [14, 35, 4, 33], image manipulation [73], 3D animation [29], and drawing [44]. 106.1591 +\item Telecommunications: String and tree languages for model checking [48], communication protocols [6], telecommunication switches [50], and signature computing [11]. 106.1592 +\item Miscellaneous: Simulation [2, 13], mobile agents [36], robot control [61], solving partial differential equations [26], and digital hardware design [41]. 106.1593 +\end{itemize} 106.1594 + 106.1595 +\subsection{Summary of Section} 106.1596 + [[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 106.1597 + 106.1598 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 106.1599 + 106.1600 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 106.1601 + 106.1602 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 106.1603 + 106.1604 + 106.1605 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 106.1606 + 106.1607 +This section illustrated the promise of DSLs for solving the issues with parallel programming. The HWSim example showed that well designed parallel DSLs can actually improve productivity, and have a low learning curve, as well as reduce the need for touching application code when moving to new target hardware. The section showed that the effort of implementing an embedded style DSL is mainly that of implementing its runtime and complex domain constructs, and that a well-designed DSL captures most of the performance-critical aspects of an application inside the DSL constructs. Hence, porting effort reduces to just performance-tuning the language (with caveats for some hardware). This effort is, in turn, reused by all the applications that use the DSL. 106.1608 + 106.1609 +The stumbling point of DSLs is the small number of users, after all, how many people write hardware simulators? Perhaps a few thousand people a year write or modify applications suitable for HWSim. That means the effort to implement HWSim has to be so low as to make it no more effort than writing a library, effectively a small percentage of a simulator project. 106.1610 + 106.1611 +The runtime is a major piece of the DSL implementation, so reducing the effort of implementing the runtime goes a long way to reducing the effort of implementing a new DSL. 106.1612 + 106.1613 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 106.1614 +\section{Description} 106.1615 +\label{sec:idea} 106.1616 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 106.1617 + 106.1618 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 106.1619 + 106.1620 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 106.1621 + 106.1622 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 106.1623 + 106.1624 + 106.1625 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 106.1626 + 106.1627 +? 106.1628 + 106.1629 + 106.1630 +Now that we have made the case that embedded style DSLs have potential to solve many parallel programming issues, and that a major obstacle to uptake of them is their implementation effort, we describe the proto-runtime concept and show how it addresses this obstacle to DSLs. As shown, embedded style DSL implementation effort and porting effort is mainly that of creating the runtime and implementing the more complex language constructs. We show here that the proto-runtime approach dramatically reduces the effort of creating a DSL runtime, through a number of features. 106.1631 + 106.1632 + 106.1633 +\begin{figure}[ht] 106.1634 + \centering 106.1635 + \includegraphics[width = 2in, height = 1.8in]{../figures/PR_three_pieces.pdf} 106.1636 + \caption{Shows how the proto-runtime approach modularizes the implementation of a runtime. The three pieces are the proto-runtime implementation, an implementation of the language construct behaviors, and an implementation of the portion of a scheduler that chooses which work is assigned to which processor. } 106.1637 + \label{fig:PR_three_pieces} 106.1638 +\end{figure} 106.1639 + 106.1640 + 106.1641 +The main feature is the proto-runtime's approach to modularizing the runtime code. As shown in Fig \ref{fig:PR_three_pieces}, it breaks the runtime into three pieces: a cross-language piece, which is the proto-runtime implementation, a piece that implements the language's constructs and plugs into the proto-runtime, and a piece that assigns work onto hardware and also plugs into the proto-runtime. 106.1642 + 106.1643 +The modularization appears to remain valid across parallel languages and execution models, and we present underlying patterns that support this observation. We analyze the basic structure of a synchronization construct, and point out how the proto-runtime modularization is consistent with it. 106.1644 + 106.1645 +\subsection{Creating an eDSL} 106.1646 + 106.1647 + 106.1648 +\begin{figure}[ht] 106.1649 + \centering 106.1650 + \includegraphics[width = 2in, height = 1.8in]{../figures/eDSL_two_pieces.pdf} 106.1651 + \caption{An embedded style DSL consists of two parts: a runtime and a wrapper library that invokes the runtime} 106.1652 + \label{fig:eDSL_two_pieces} 106.1653 +\end{figure} 106.1654 + 106.1655 +As shown in Fix \ref{fig:eDSL_two_pieces}, to create an embedded style DSL (eDSL), do two things: create the runtime and create a wrapper-library that invokes the runtime and also implements the more complex language constructs. 106.1656 + 106.1657 +As seen in Fig X, a library call that invokes a language construct is normally a thin wrapper that only communicates to the runtime. It places information to be sent to the runtime into a carrier, then invokes the runtime via a primitive. The primitive suspends the base language execution and switches the processor over to the runtime code. 106.1658 + 106.1659 +\subsection{The Proto-Runtime Modularization} 106.1660 + 106.1661 +\subsubsection{Dispatch pattern} 106.1662 +-- standardizes runtime code 106.1663 +-- makes familiar going from one lang to another 106.1664 +-- makes reuse realistic, as demonstrated by VSs taking SSR constructs 106.1665 + 106.1666 +-- show the enums, and the switch table 106.1667 + 106.1668 +-- point out how the handler receives critical info -- the semEnv, req struct and calling slave 106.1669 + 106.1670 +\subsubsection{The Request Handler} 106.1671 +-- cover what a request handler does.. connect it to the wrapper lib, and the info loaded into a request struct. 106.1672 + 106.1673 +-- give code of a request handler.. within on-going example of implementing pthreads, or possibly HWSim, or pick a new DSL 106.1674 + 106.1675 +\subsection{Exporting a performance-oriented machine view } 106.1676 +The proto-runtime interface exports a view of the machine that shows performance-critical aspects. Machines that share the same architectural approach have the same performance-critical aspects, and differ only in the values. 106.1677 + 106.1678 +For example, the interface models cache-coherent shared-memory architectures as a collection of memory pools connected by networks. The essential variations among processor-chips are the sizes of the pools, the connections between them, such as which cores share the same L2 cache, and the latency and bandwidth between them. 106.1679 + 106.1680 +Hence, a single plugin can be written that gathers this information from the proto-runtime and uses it when deciding which work to assign to which core. Such a plugin will then be efficient across all machines that share the same basic architecture. 106.1681 + 106.1682 +This saves significant effort by allowing the same plugin to be reused for all the machines in the category. 106.1683 + 106.1684 +\subsection{Services Provided by the Proto-runtime} 106.1685 + 106.1686 +-- Put services into the low-level piece.. plugins have those available, and inherit lang independent such as debugging, perf counters.. provides effort reduction because lang doesn't have to implement these services. 106.1687 + 106.1688 +-- -- examples of iherited lang services inside current proto-runtime: debugging and perf-tuning.. verification, playback have been started (?) 106.1689 + 106.1690 +-- -- examples of plugin services: creation of base VP, the switch primitives, the dispatch pattern (which reduces effort by cleanly separating code for each construct), handling consistency model (?), handling concurrency 106.1691 + 106.1692 +\subsection{eDSLs talking to each other} 106.1693 +-- show how VSs is example of three different DSLs, and H264 code is three different languages interacting (pthreads, OpenMP, StarSs) 106.1694 + 106.1695 +-- make case that proto-runtime is what makes this practical ! Their point of interaction is the common proto-runtime innards, which provides the interaction services.. they all use the same proto-runtime, and all have common proto-runtime objects, which is how the interaction becomes possible. 106.1696 + 106.1697 +\subsection{The Proto-runtime Approach Within the Big Picture} 106.1698 + 106.1699 +-- Give background on industry-wide, how have langs times machines.. 106.1700 +-- say that proto-runtime has synergistic advantages within this context. -- repeat that eDSLs talk to each other. 106.1701 +-- give subsubsection on MetaBorg for rewriting eDSL syntax into base lang syntax. 106.1702 +-- bring up the tools issue with custom syntax -- compiling is covered by metaborg re-writing.. can address debugging with eclipse.. should be possible in straight forward way that covers ALL eDSLs.. their custom syntax being stepped through in one window, and stepping through what they generate in separate window (by integrating generation step into eclipse).. even adding eclipse understanding of proto-runtime.. so tracks the sequence of scheduling units.. and shows the request handling in action in third window.. 106.1703 + 106.1704 +Preview idea that many players will contribute, and will get people that specialize in creating new eDSLs (such as one of authors).. 106.1705 +-- For them, code-reuse is reality, as supported by VSs example, 106.1706 +-- and the uniformity of the pattern becomes familiar, also speeding up development, as also supported by VSs, HWSim, VOMP, and DKU examples. 106.1707 +-- for those who only create a single eDSL, the pattern becomes a lowering of the learning curve, aiding adoption 106.1708 + 106.1709 +-- Restate and summarize the points below (covered above), showing how they combine to shrink the wide-spot where all the runtimes are. 106.1710 + 106.1711 +-- The low-level part implemented on each machine, exports a view of the machine that shows performance-critical aspects 106.1712 + 106.1713 +-- Collect machines into groups, based on performance critical aspects of hardware.. provides reduction in effort because only one plugin for entire group. 106.1714 + 106.1715 +-- Put services into the low-level piece.. plugins have those available, and inherit lang independent such as debugging.. provides effort reduction because lang doesn't have to implement these services. 106.1716 + 106.1717 + 106.1718 +\section{(outline and notes)} 106.1719 + 106.1720 +-- What a plugin looks like: 106.1721 + 106.1722 +-- -- pattern of parallel constructs.. ideas of Timeline, tie-point, animation, suspension, VP states, constraints, causality, work-units, meta-units, updates in constraint states attached to the meta-units 106.1723 + 106.1724 +-- -- a sych construct is something that creates a tie between two work-units. So, the logic of the construct simply establishes causality -- the ending of one work-unit causes the freedom to start animation of another. 106.1725 + 106.1726 +-- -- -- Examples: mutex is end of work-unit that frees lock causes freedom to start work-unit that gets the lock. They are causally tied. The semantics of the construct is the particular conditions existing inside the runtime (in this case ownership condition of a mutex), and what changes those conditions (in this case releasing lock removes one from owner, plus acquire-lock sets one as wanting the lock), and how freedom to be animated is affected by the changes in conditions (in this case, removal of ownership must precede gaining ownership) on what makes a work-unit free (in this case, being given ownership of the mutex), 106.1727 + 106.1728 +-- Hence, precisely, the parallelism model of the language defines constraints, which are implemented as state inside the runtime. Constructs provided do a number of things: signal bringing a set of constraints into existence (create a mutex), signal update to the state of those constraints (release mutex, state desire to acquire), and trigger the runtime to propagate those changes, which results in additional changes to states, including marking meta-units as free to be animated. cause creation of meta-units (explicitly as in VSs, or via creating entities that trigger creation as in dataflow, or via creating entities that consist of consecutive work-units as in pthreads). 106.1729 + 106.1730 + 106.1731 +-- Recipe for how to make the language plugin: time reduction is part due to simplifying the parallelism construct logic.. 106.1732 + 106.1733 + 106.1734 + 106.1735 + 106.1736 +\subsection{The Cross-language Patterns Behind the Proto-runtime} 106.1737 + 106.1738 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 106.1739 + 106.1740 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 106.1741 + 106.1742 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 106.1743 + 106.1744 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 106.1745 + 106.1746 + 106.1747 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 106.1748 + 106.1749 +An application switches to the runtime, which does scheduling work then switches back to application code. 106.1750 + 106.1751 + 106.1752 +\subsection{Some Definitions} 106.1753 + 106.1754 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 106.1755 + 106.1756 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 106.1757 + 106.1758 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 106.1759 + 106.1760 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 106.1761 + 106.1762 + 106.1763 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 106.1764 + 106.1765 +We adopt the concepts of work-unit, virtual processor (VP), animation, and tie-point as discussed in a previous paper []. A work-unit is the trace of instructions executed between two successive switches to the runtime, along with the data consumed and produced during that trace. A Virtual Processor is defined as being able to animate either the code of a work-unit or else another VP, and has state that it uses during animation, organized as a stack. Animation is definedd as causing time of a virtual processor to advance, which is equivalent to causing state changes according to instructions, while suspension halts animation, and consequently causes the end of a work-unit (a more complete definition of animation can be found in the dissertation of Halle[]). A tie-point connects the end of one work-unit to the beginning of one in a different VP, so a tie-point represents a causal relationship between two work-units, and establishes an ordering between those work-units, effectively tying the time-line of the VP animating one to the time-line of the VP animating the other work-unit. 106.1766 + 106.1767 +In addition, we introduce a definition of the word task, which is a single work-unit coupled to a virtual-processor that comes into existence to animate the work-unit and dissipates at completion of the work-unit. By definition of work-unit, a task cannot suspend, but rather runs to completion. If the language defines an entity that has a timeline that can be suspended by switching to the runtime, then such an entity is not a task. Pure Dataflow[] specifies tasks that fit our definition. 106.1768 + 106.1769 +\subsection{Handling Memory Consistency Models} 106.1770 + 106.1771 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 106.1772 + 106.1773 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 106.1774 + 106.1775 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 106.1776 + 106.1777 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 106.1778 + 106.1779 + 106.1780 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 106.1781 + 106.1782 +Weak memory models can cause undesired behavior when work-units on different cores communicate through shared variables. Specifically, the receiving work-unit can see memory operations complete in a different order than the code of the sending work-unit specifies. 106.1783 + 106.1784 +For example, consider a proto-runtime implemented on shared memory hardware that has a weak consistency model, along with a language that implements a traditional mutex lock. All memory operations performed in the VP that releases the lock should be seen as complete by the VP that next acquires the lock. 106.1785 + 106.1786 +It is up to the proto-runtime to enforce this, using hardware primitives. It has to ensure that all memory operations performed, by a task or VP, before switching to the runtime are completed before any dependent task or VP is switched into from the runtime. More precisely, the proto-runtime has to ensure that all memory operations performed by a work-unit are visible in program order to any tied work-units. In some cases the language plugin has to alert the proto-runtime of the causality between work-units. 106.1787 + 106.1788 + 106.1789 +The proto-runtime does not, however, protect application code that attempts to communicate between VPs or tasks directly, without using a parallelism construct to protect the communication. 106.1790 + 106.1791 + 106.1792 + 106.1793 +======= 106.1794 + 106.1795 + I plan to explain VMS as a universal pattern that exists in all runtimes: that is, that the application switches to runtime, which does a scheduling decision and then switches back. I'll explain it first with just master and slaves, leaving out the core\_loop. Explain it as a normal runtime that has had two key pieces removed and replaced with interfaces. The language supplies the missing pieces. Then, introduce the core\_loop stuff as a performance enhancement used when lock acquisition dominates (as it does on the 4 socket 40 core machine). 106.1796 + Next, give HWSim as an example of a real domain specific (it's working, ref manual attached), and focus on how the modularity allowed pulling constructs from other languages (singleton and atomic), and a breakdown of implementation time vs design time, and so on. Highlight how VMS's features for productivity and encapsulation solve the practical problems for domain-specific languages. 106.1797 + Finally, show that VMS performance is good enough, by going head-to-head with pthreads and OpenMP (doing a VMS OpenMP implementation now). And also StarSs if I have time. I'll run overhead-measuring on them, and also regular benchmarks. 106.1798 + 106.1799 +================= 106.1800 + 106.1801 +\subsection{The patterns} 106.1802 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 106.1803 + 106.1804 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 106.1805 + 106.1806 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 106.1807 + 106.1808 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 106.1809 + 106.1810 + 106.1811 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 106.1812 + 106.1813 + 106.1814 +Soln: modularize runtime, to reduce part have to mess with, hide part that has low-level details, reuse low-level tuning effort, and reuse lang-spec parts. 106.1815 + 106.1816 +Benefits: lang impl doesn't have to touch low-level details, inherit centralized services, can reuse code from other languages to add features. 106.1817 + 106.1818 +Performance must be high, or the labor savings don't matter. By isolating the low-level details inside the proto-runtime, they can be intensively tuned, then all the languages inherit the effort. 106.1819 + 106.1820 +Part of what makes this so easy is the dispatch pattern.. adding a construct reduces to adding into switch and writing handler.. borrow constructs by taking the handler from the other lang. 106.1821 + 106.1822 +By isolating the low-level details inside the proto-runtime, they can be intensively tuned, then all the languages inherit the effort. Compare that to current practices, where the runtime code is monolithic.. each language has to separately modify the runtime, understanding and dealing with the concurrency, and then on a new machine, each language has to re-tune the low-level details, worrying about the consistency model on that machine, how its particular fence and atomic instructions work, and so on. 106.1823 +We spent 2 months performance tuning the current version, but only 18 hours implementing VSs on top of it, and VSs inherited the benefit from all that effort. So did VOMP, and SSR, and VCilk, and so on.. each time we improved the proto-runtime, all the languages improved, with no effort on the part of the language creator. 106.1824 + 106.1825 + 106.1826 +\subsubsection{Views of synchronization constructs} 106.1827 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 106.1828 + 106.1829 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 106.1830 + 106.1831 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 106.1832 + 106.1833 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 106.1834 + 106.1835 + 106.1836 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 106.1837 + 106.1838 +One view of sync constructs is that they are variable-length calls. The 106.1839 +basic hardware does this by stalling the pipeline. 106.1840 + 106.1841 +Another view is that they mark the boundary of a communication made via shared read/write. A load or store of a single location has a precise boundary enforced by the hardware, but if a pipeline desires to load, modify, then write a single location it has to have additional hardware. It has to make the multiple primitive load/store operations appear as a single operation. 106.1842 + 106.1843 +Moving up to the application level, the same pattern exists: an operation the application wants to do may involve many loads and stores, but it wants the collection to appear as a single indivisible operation. So the application-level equivalent of a load or store involves multiple memory locations but is to be treated as a single indivisible operation. This requires the application-level equivalent of the hardware that made the read-modify-write into a single indivisible operation. That equivalent is what a synchronization construct is. The reason a sync construct takes a variable amount of time is that it waits until all other indivisible operations that might conflict have completed. 106.1844 + 106.1845 +Another way to think of the sync construct is that it enforces sharp communication boundaries. The multiple read and write operations are treated as a single communication with the shared-state. If any other part of the application sees only part of the communication, it sees something inconsistent and thus wrong. So the sync constructs ensure that communications are complete, so the parts of the application only see complete communications from other parts. 106.1846 + 106.1847 +\subsubsection{Universal Runtime Patterns} 106.1848 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 106.1849 + 106.1850 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 106.1851 + 106.1852 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 106.1853 + 106.1854 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 106.1855 + 106.1856 + 106.1857 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 106.1858 + 106.1859 +Unified pattern within parallel languages: create multiple timelines, then control relative progress of them, and control location each chunk of progress takes place. 106.1860 + 106.1861 +Another universal pattern: code runs, switches to runtime, some point later switches back to code, making application run be a collection of trace segments bounded by runtime calls. 106.1862 +The runtime tracks constraints (dependencies) among units, creates and destroys units, and assigns ready units to hardware. 106.1863 + 106.1864 +Units have a life-line, which is fundamental to parallel computation, as demonstrated in a paper by some of the authors []. 106.1865 + 106.1866 +Every unit has a meta-unit that represents it in the runtime. A unit is defined as the trace of application code that exists between two scheduling decisions. Looking at this in more detail, every runtime has some form of internal bookkeeping state for a unit, used to track constraints on it and make decisions about when and where to execute. This exists even if that state is just a pointer to a function that sits in a queue. We call this bookkeeping state for a unit the meta-unit. 106.1867 + 106.1868 +Each unit also has a life-line, which progresses so: creation of the meta-unit \pointer , state updates that affect constraints on the unit \pointer, the decision is made to animate the unit \pointer, movement of the meta-unit plus data to physical resources that do the animation \pointer , animation of the unit, which does the work \pointer, communication of state-update, that unit has completed, and hardware is free \pointer , constraint updates within runtime, possibly causing new meta-unit creations or freeing other meta-units to be chosen for animation. This repeats for each unit. Each step is part of the model. 106.1869 + 106.1870 +Note a few implications: first, many activities internal to the runtime are part of a unit's life-line, and take place when only the meta-unit exists, before or after the work of the actual unit; second, communication that is internal to the runtime is part of the unit life-line, such as state updates; third, creation may be implied, such as in pthreads, or triggered such as in dataflow, or be by explicit command such as in StarSs, and once created, a meta-unit may languish before the unit it represents is free to be animated. 106.1871 + 106.1872 +\subsubsection{Putting synchronization constructs together with universal runtime patterns} 106.1873 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 106.1874 + 106.1875 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 106.1876 + 106.1877 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 106.1878 + 106.1879 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 106.1880 + 106.1881 + 106.1882 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 106.1883 + 106.1884 +Putting these together, gives us that any parallelism construct that has a synchronization behavior causes the end of a work-unit, and a switch to the runtime. The code following the construct is a different work-unit that will begin after the constraint implied by the construct is satisfied. 106.1885 + 106.1886 +The runtime is made up of the infrastructure for the constraints and assignment, such as communicating bookkeeping state between cores, and protecting internal runtime updates of shared information. Plus, the logic of the constructs and logic of choosing an assignment of work to cores. 106.1887 + 106.1888 +For large machines, the infrastructure dominates the time to execute a parallelism construct, while for smaller machines, like single-socket, the logic of constructs and assignments has a chance to be significant. 106.1889 + 106.1890 +\begin{figure}[ht] 106.1891 + \centering 106.1892 + \includegraphics[width = 2in, height = 1.8in]{../figures/SCG_stylized_for_expl.pdf} 106.1893 + \caption{Something to help understanding} 106.1894 + \label{fig:SCG_expl} 106.1895 +\end{figure} 106.1896 + 106.1897 + 106.1898 + 106.1899 + 106.1900 +%%%%%%%%%%%%%%%%%%%%% 106.1901 +\section{The Details} 106.1902 +[[Hypothesis: Embedded-style DSLs -> high productivity + low learning curve + low disruption + low app-port AND quick time to create + low effort to lang-port + high perf across targets]] 106.1903 +[[Claims: modularize runtime, mod is fund patterns, mod sep lang logic from RT internals, mod makes internal reusable & lang inherit internal perf tune & inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 106.1904 + 106.1905 +The interfaces between lang logic and proto-runtime. 106.1906 + 106.1907 +Demonstrate: modular runtime, how reduces part have to mess with, hides part that has low-level details, reuses low-level tuning effort, and reuses lang-spec parts. 106.1908 + 106.1909 +Demonstrate Benefits: lang impl doesn't touch low-level details, inherits centralized services (debug support), reuses code from other languages to add features. 106.1910 + 106.1911 +\subsection{Reuse of Language Logic} 106.1912 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 106.1913 + 106.1914 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 106.1915 + 106.1916 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 106.1917 + 106.1918 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 106.1919 + 106.1920 + 106.1921 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 106.1922 + 106.1923 +Demonstrate reuse of language logic: 106.1924 +All the languages have copied singleton, atomic, critical section and transaction. In VOMP, took the task code from VSS, in VSS, took the send and receive code from SSR.. for DKU, took the code almost verbatim from earlier incarnation of these ideas, and welded it into SSR, and took VSs tasks and put into SSR. Thus, circle completes.. VSs took from SSR, now SSR takes from VSs.. pieces and parts are being borrowed all over the place and welded in where they're needed. 106.1925 + 106.1926 +Part of what makes this so easy is the dispatch pattern.. adding a construct reduces to adding into switch and writing handler.. borrow constructs by taking the handler from the other lang. 106.1927 + 106.1928 +Another part is that code for the constructs is isolated from concurrency details, which are inside the proto-runtime. All the dynamic system issues, and best way to impl locks, and need for fences, and so on is isolated from the construct logic. This isolation is also how porting effort is lowered (or in many cases eliminated), and is how runtime performance is kept high. 106.1929 + 106.1930 +? 106.1931 + 106.1932 +Performance must be high, or the labor savings don't matter. By isolating the low-level details inside the proto-runtime, they can be intensively tuned, then all the languages inherit the effort. Compare that to current practices, where the runtime code is monolithic.. each language has to separately modify the runtime, understanding and dealing with the concurrency, and then on a new machine, each language has to re-tune the low-level details, worrying about the consistency model on that machine, how its particular fence and atomic instructions work, and so on. 106.1933 +We spent 2 months performance tuning the current version, but only 18 hours implementing VSs on top of it, and VSs inherited the benefit from all that effort. So did VOMP, and SSR, and VCilk, and so on.. each time we improved the proto-runtime, all the languages improved, with no effort on the part of the language creator. 106.1934 + 106.1935 +? 106.1936 + 106.1937 +In addition to runtime performance, application level performance must be high. The runtime's performance only affects overhead, and so is only a factor for small work-unit (task) sizes. But data affinity affects performance for all work. 106.1938 + 106.1939 +The proto-runtime approach partially addresses this by giving the language the opportunity to directly control placement of work. This isn't possible when building on top of threads, because the scheduling is in a separate, lower-level, layer where assignment of work to core is made in isolation, blind to language constructs and 106.1940 +other application features. 106.1941 + 106.1942 + 106.1943 + 106.1944 + 106.1945 +%%%%%%%%%%%%%%%%%%%%% 106.1946 +\section{Measurements} 106.1947 + 106.1948 +\subsection{Implementation time} 106.1949 + 106.1950 + 106.1951 +\subsection{Runtime and Application Performance} 106.1952 + 106.1953 + 106.1954 +%%%%%%%%%%%%%%%%%%%%% 106.1955 +\section{Related Work} 106.1956 + 106.1957 + 106.1958 +%%%%%%%%%%%%%%%%%%%%% 106.1959 +\section{Conclusion and Future Work} 106.1960 +\label{sec:conclusion} 106.1961 + 106.1962 + 106.1963 + 106.1964 +\end{document} 106.1965 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 106.1966 +Here is an example of netlist creation: 106.1967 + 106.1968 +The circuit has two elements, each with one input port, one output port, and a single activity-type. The elements are cross-coupled, so output port of one connects to input port of the other. The input port has the activity-type attached as its trigger. The activity is empty, and just sends a NULL message on the output port. The activity's duration in simulated time and the resulting communication's flight duration in simulated time are both constants. 106.1969 + 106.1970 + Note that HWSimElem data type is generic. An elem is specialized by declaring inports and outports, and by connecting activity types to in-ports. Behavior is attached to an element by attaching activity types to in-ports of the element. 106.1971 + 106.1972 +First, here is the top-level function that creates and returns the netlist structure: 106.1973 + 106.1974 +To use HWSim, one creates a netlist composed of elements and communication paths connecting them. An element has a number of in-ports and outports, and a communication path connects an outport of the source element to an inport of the destination elements. The inport has an action attached, which in turn has a behavior function and a timing function, both of which are triggered by the arrival of a communication. The behavior function has local persistent state of the element available to use, and can generate out-going communications. The timing function calculates how much Guest (simulated) time the behavior spanned. In addition, communication paths have an attached function that calculates time from being sent until arrival of the communication. Both the behavior and timing function are application-programmer provided. The entire simulator application is composed of those three things: netlist, behavior functions and timing functions, and all are sequential code. 106.1975 + 106.1976 +The embedded DSL consists of standard data structures, such as netlist, inport, outport, that the application must use in the language-defined way, and a small number of language calls, such as send_comm and end_behavior. The advancement of simulated time is implied, and the parallelism is implied. The only parallelism-related restriction is that a behavior function may only use data local to the element it is attached to. If state in the hardware is shared, such as registers or memory, then other elements access that state by sending communications to the element that contains the state. Parallelism is created within the system by outports that connect to muliple destination inports, and by behavior functions that generate multiple output communications each. 106.1977 + 106.1978 + 106.1979 +\begin{small}\begin{verbatim} 106.1980 +HWSimNetlist * 106.1981 +createPingPongNetlist() 106.1982 + { HWSimNetlist *netlist; 106.1983 + HWSimElem **elems; 106.1984 + HWSimActivityType **activityTypes; 106.1985 + HWSimCommPath **commPaths; 106.1986 + int32 numElems, numActivityTypes, numCommPaths; 106.1987 +\end{verbatim}\end{small} 106.1988 + 106.1989 +The first thing to do is create the netlist structure, which holds three things: element structs, activity type structs, and communication path structs. It also has two collections of pointers to the traces collected during the run, but these are handled internally by HWSim. 106.1990 +\begin{small}\begin{verbatim} 106.1991 + netlist = malloc( sizeof(HWSimNetlist) ); 106.1992 + 106.1993 + numElems = 2; 106.1994 + elems = malloc( numElems * sizeof(HWSimElem *) ); 106.1995 + 106.1996 + numCommPaths = 2; 106.1997 + commPaths = malloc( numCommPaths * sizeof(HWSimCommPath *) ); 106.1998 + 106.1999 + numActivityTypes = 1; 106.2000 + activityTypes = malloc( numActivityTypes * sizeof(HWSimActivityType *) ); 106.2001 + 106.2002 + netlist->numElems = numElems; 106.2003 + netlist->elems = elems; 106.2004 + netlist->numCommPaths = numCommPaths; 106.2005 + netlist->commPaths = commPaths; 106.2006 + netlist->numActivityTypes = numActivityTypes; 106.2007 + netlist->activityTypes = activityTypes; 106.2008 +\end{verbatim}\end{small} 106.2009 + 106.2010 +Now, create the activity types. During the run, an activity instance is created each time a communication arrives on an in-port. The activity instance is a data structure that points to the activity type. The activity type holds the pointers to the behavior and timing functions. 106.2011 +\begin{small}\begin{verbatim} 106.2012 + //have to create activity types before create elements 106.2013 + //PING_PONG_ACTIVITY is just a #define for readability 106.2014 + netlist->activityTypes[PING_PONG_ACTIVITY] = createPingPongActivityType(); 106.2015 +\end{verbatim}\end{small} 106.2016 + 106.2017 +Next, create the elements, and pass the netlist structure to the creator. It will take pointers to activity types out of the netlist and place them into the in-ports of the elements. 106.2018 +\begin{small}\begin{verbatim} 106.2019 + elems[0] = createAPingPongElem( netlist ); //use activity types from netlist 106.2020 + elems[1] = createAPingPongElem( netlist ); 106.2021 +\end{verbatim}\end{small} 106.2022 + 106.2023 +Now, the reset in-port of one of the elements has to be set up to trigger an activity. Every element has a reset in-port, but normally they are set to NULL activity type. Here, we want only one of the two elements to have an activity triggered when the reset signal is sent to start the simulation. 106.2024 + 106.2025 +Note that during initialization, all the elements become active, each with its own timeline, but unless an activity is triggered in them they remain idle, with their timeline suspended and not making progress. Only ones that have an activity type attached to their reset in-port will begin to do something in simulated time when simulation starts. 106.2026 +\begin{small}\begin{verbatim} 106.2027 + //make reset trigger an action on one of the elements 106.2028 + elems[1]->inPorts[-1].triggeredActivityType = 106.2029 + netlist->activityTypes[PING_PONG_ACTIVITY]; 106.2030 +\end{verbatim}\end{small} 106.2031 + 106.2032 +Now, connect the elements together by creating commPath structures. A comm path connects the out-port of one element to the in-port of another. A given port may have many comm paths attached. However, an in-port has only one kind of activity type attached, and all incoming communications fire that same activity. There are multiple kinds of activity, including kinds that have no timing, and so can act as a dispatcher. These end themselves with a continuation activity, which is chosen according to the code in the behavior function. So, a commPath only connects an out port to an in port. 106.2033 + 106.2034 +This code sets fixed timing on the comm paths. It also uses a macro for setting the connections. The format is: sending elem-index, out-port, dest elem-index, in-port: 106.2035 +\begin{small}\begin{verbatim} 106.2036 + //elem 0, out-port 0 to elem 1, in-port 0 106.2037 + commPaths[0]= malloc(sizeof(HWSimCommPath)); 106.2038 + setCommPathValuesTo(commPaths[0],0,0,1,0); 106.2039 + commPaths[0]->hasFixedTiming = TRUE; 106.2040 + commPaths[0]->fixedFlightTime = 10; //all time is stated in (integer) units 106.2041 + 106.2042 + //elem 1, out-port 0 to elem 0, in-port 0 106.2043 + commPaths[1]= malloc(sizeof(HWSimCommPath)); 106.2044 + setCommPathValuesTo(commPaths[1], 1,0,0,0); 106.2045 + commPaths[1]->hasFixedTiming = TRUE; 106.2046 + commPaths[1]->fixedFlightTime = 10; //all time is stated in (integer) units 106.2047 +\end{verbatim}\end{small} 106.2048 + 106.2049 +done building netlist, return it 106.2050 +\begin{small}\begin{verbatim} 106.2051 + return netlist; 106.2052 + } 106.2053 +\end{verbatim}\end{small} 106.2054 + 106.2055 +The macro that sets the connections inside a comm path struct 106.2056 +\begin{small}\begin{verbatim} 106.2057 +#define setCommPathValuesTo( commPath, fromElIdx, outPort, toElIdx, inPort)\ 106.2058 +do{\ 106.2059 + commPath->idxOfFromElem = fromElIdx; \ 106.2060 + commPath->idxOfFromOutPort = outPort; \ 106.2061 + commPath->idxOfToElem = toElIdx; \ 106.2062 + commPath->idxOfToInPort = inPort; \ 106.2063 + }while(0); //macro magic for namespace 106.2064 +\end{verbatim}\end{small} 106.2065 + 106.2066 +Creating an element involves creating arrays for the in-ports and out-ports, then configuring the in-ports. The out-ports are automatically filled in during simulation start-up, by HWSim. The most interesting feature is that each in-port is assigned an activity type, which all arriving communications trigger. During the simulation, each incoming communication creates an activity instance, which points to this triggered activity type. The behavior and timing of the instance are calculated by the behavior and timing functions in the activity type. Notice that the activity type pointers are taken from the netlist, so they have to be created before creating the elements. 106.2067 +\begin{small}\begin{verbatim} 106.2068 +HWSimElem * 106.2069 +createAPingPongElem( HWSimNetlist *netlist ) 106.2070 + { HWSimElem *elem; 106.2071 + elem = malloc( sizeof(HWSimElem) ); 106.2072 + elem->numInPorts = 1; 106.2073 + elem->numOutPorts = 1; 106.2074 + elem->inPorts = HWSim_ext__make_inPortsArray( elem->numInPorts ); 106.2075 + elem->inPorts[-1].triggeredActivityType = IDLE_SPAN; //reset port 106.2076 + elem->inPorts[0].triggeredActivityType = netlist->activityTypes[PING_PONG_ACTIVITY]; 106.2077 + return elem; 106.2078 + } 106.2079 +\end{verbatim}\end{small} 106.2080 + 106.2081 +Creating an activity type involves setting the pointers to the behavior and timing functions, which are defined inside a separate directory where all the behavior and timing functions are defined. An activity may have behavior set to NULL, or timing set to NULL, and may have fixed timing. The structure has flags to state the combination. 106.2082 +\begin{small}\begin{verbatim} 106.2083 +HWSimActivityType * 106.2084 +createPingPongActivityType( ) 106.2085 + { HWSimActivityType *pingPongActivityType; 106.2086 + pingPongActivityType = malloc( sizeof(HWSimActivityType) ); 106.2087 + 106.2088 + pingPongActivityType->hasBehavior = TRUE; 106.2089 + pingPongActivityType->hasTiming = TRUE; 106.2090 + pingPongActivityType->timingIsFixed = TRUE; 106.2091 + pingPongActivityType->fixedTime = 10; 106.2092 + pingPongActivityType->behaviorFn = &pingPongElem_PingActivity_behavior; 106.2093 + return pingPongActivityType; 106.2094 + } 106.2095 +\end{verbatim} \end{small} 106.2096 + 106.2097 + 106.2098 +========= 106.2099 + 106.2100 +All behavior functions take a ptr to the activity instance they are executing the behavior of. The instance contains a pointer to the elem, and most behaviors will use the element's elemState field. It holds all the persistent state of the element, which remains between activities. 106.2101 + 106.2102 +Here is the behavior function from the ping-pong example: 106.2103 +\begin{small}\begin{verbatim} 106.2104 +void 106.2105 +pingPongElem_PingActivity_behavior( HWSimActivityInst *activityInst ) 106.2106 + { //NO_MSG is #define'd to NULL, and PORT0 to 0 106.2107 + HWSim__send_comm_on_port_and_idle( NO_MSG, PORT0, activityInst ); 106.2108 + } 106.2109 +\end{verbatim}\end{small} 106.2110 + 106.2111 +There are four ways a behavior can end: 106.2112 +\begin{description} 106.2113 +\item end, no continuation: 106.2114 +\begin{small}\begin{verbatim} HWSim__end_activity_then_idle( HWSimActivityInst *endingActivityInstance )\end{verbatim}\end{small} 106.2115 +\item end, with continuation: 106.2116 +\begin{small}\begin{verbatim} HWSim__end_activity_then_cont( HWSimActivityInst *endingActivityInstance, 106.2117 + HWSimActivityType *continuationActivityType)\end{verbatim}\end{small} 106.2118 +\item end by sending a communication, with no continuation: 106.2119 +\begin{small}\begin{verbatim} HWSim__send_comm_on_port_then_idle( void *msg, int32 outPort, 106.2120 + HWSimActivityInst *endingActivityInstance)\end{verbatim}\end{small} 106.2121 +\item end by sending a communication, with continuation: 106.2122 +\begin{small}\begin{verbatim} HWSim__send_comm_on_port_then_cont( void *msg, int32 outPort, 106.2123 + HWSimActivityInst *endingActivityInstance 106.2124 + HWSimActivityType *continuationActivityType)\end{verbatim}\end{small} 106.2125 + 106.2126 + 106.2127 +============= 106.2128 + 106.2129 + 106.2130 +\subsection{Activity Timing Functions} 106.2131 +All activity timing functions take a ptr to the activity instance they are calculating the timing of. The instance contains a pointer to the element the activity is in. The behavior function is free to communicate to the timing function by leaving special data inside the element state. The timing function might also simply depend on the current state of the element. 106.2132 + 106.2133 +Here's an example: 106.2134 +\begin{small}\begin{verbatim} 106.2135 +HWSimTimeSpan 106.2136 +sampleElem_sampleActivity_timing( HWSimActivityInst *activityInst ) 106.2137 + { 106.2138 + return doSomethingWithStateOfElem( sendingActivity->elem->elemState ); 106.2139 + } 106.2140 +\end{verbatim}\end{small} 106.2141 + 106.2142 +\subsection{Calculating the time-in-flight of a communication path} 106.2143 + 106.2144 +The timing function for a communication path is similar to that of an activity. Except, the timing might also depend on configuration data or state stored inside the comm path struct, so that is passed to the timing function as well. 106.2145 + 106.2146 +\begin{small}\begin{verbatim} 106.2147 +HWSimTimeSpan 106.2148 +commPath_TimeSpanCalc( HWSimCommPath *commPath, HWSimActivityInst *sendingActivity ) 106.2149 + { return doSomethingWithStateOfPathAndElem( commPath, sendingActivity->elem->elemState ); 106.2150 + } 106.2151 +\end{verbatim}\end{small} 106.2152 + 106.2153 + 106.2154 + 106.2155 +
107.1 Binary file 0__Papers/VMS/VMS__Foundation_Paper/VMS__Full_conference_version/latex/VMS__Full_conf_paper_3_short.pdf has changed
108.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 108.2 +++ b/0__Papers/VMS/VMS__Foundation_Paper/VMS__Full_conference_version/latex/VMS__Full_conf_paper_3_short.tex Sat Aug 03 19:24:22 2013 -0700 108.3 @@ -0,0 +1,448 @@ 108.4 +%----------------------------------------------------------------------------- 108.5 +% 108.6 +% Template for sigplanconf LaTeX Class 108.7 +% 108.8 +% Name: sigplanconf-template.tex 108.9 +% 108.10 +% Purpose: A template for sigplanconf.cls, which is a LaTeX 2e class 108.11 +% file for SIGPLAN conference proceedings. 108.12 +% 108.13 +% Guide: Refer to "Author's Guide to the ACM SIGPLAN Class," 108.14 +% sigplanconf-guide.pdf 108.15 +% 108.16 +% Author: Paul C. Anagnostopoulos 108.17 +% Windfall Software 108.18 +% 978 371-2316 108.19 +% paul@windfall.com 108.20 +% 108.21 +% Created: 15 February 2005 108.22 +% 108.23 +%----------------------------------------------------------------------------- 108.24 + 108.25 + 108.26 +\documentclass[preprint]{sigplanconf} 108.27 + 108.28 +% The following \documentclass options may be useful: 108.29 +% 108.30 +% 10pt To set in 10-point type instead of 9-point. 108.31 +% 11pt To set in 11-point type instead of 9-point. 108.32 +% authoryear To obtain author/year citation style instead of numeric. 108.33 +\usepackage{amssymb,graphicx,calc,ifthen,subfig,dblfloatfix,fixltx2e} 108.34 + 108.35 + 108.36 +% correct bad hyphenation here 108.37 +\hyphenation{op-tical net-works semi-conduc-tor} 108.38 + 108.39 +\usepackage{wasysym} 108.40 + 108.41 +\begin{document} 108.42 + 108.43 +\bibliographystyle{plain} 108.44 +% 108.45 + 108.46 +\conferenceinfo{WXYZ '05}{date, City.} 108.47 +\copyrightyear{2005} 108.48 +\copyrightdata{[to be supplied]} 108.49 + 108.50 +\titlebanner{banner above paper title} % These are ignored unless 108.51 +\preprintfooter{short description of paper} % 'preprint' option specified. 108.52 + 108.53 + 108.54 +\title{A Proto-Runtime Approach to Domain Specific Languages} 108.55 + 108.56 + 108.57 +\authorinfo{Sean Halle} 108.58 + {Open Source Research Institute, INRIA, 108.59 + and TU Berlin} 108.60 + {seanhalle@opensourceresearchinstitute.org} 108.61 +\authorinfo{Merten Sach} 108.62 + {TU Berlin} 108.63 + {msach@mailbox.tu-berlin.de} 108.64 +\authorinfo{Albert Cohen} 108.65 + {Ecole Normal Supereur, and INRIA} 108.66 + {albert.cohen@inria.fr} 108.67 + 108.68 +\maketitle 108.69 + 108.70 + 108.71 +\begin{abstract} 108.72 + 108.73 +? 108.74 +replace lang-specific with interface, centralize services, minimize effort to create, give language control over hardware assignment.. side benefits: multi-lang, perf-tuning, debugging 108.75 + 108.76 +? 108.77 + 108.78 +Domain Specific Languages that are embedded into a base language have promise to provide productivity, performant-portability and wide adoption for parallel programming. However such languages have too few users to support the large effort required to create them and port them across hardware platforms, resulting in low adoption of the method. 108.79 +To solve this, we introduce a proto-runtime approach, which reduces the effort to create and port domain specific languages. It modularizes the creation of runtime systems and the parallelism constructs they implement, by separating the language-construct and scheduling logic away from the low-level runtime details, including concurrency, memory consistency, and runtime-performance aspects. 108.80 +As a result, new parallel constructs are written using sequential reasoning, and languages can be mixed within 108.81 +the same program. In addition, scheduling of work onto hardware is under language and application control, without interference from an underlying thread package scheduler. This enables higher quality scheduling decisions for higher application performance. 108.82 +We present measurements of the time taken to develop runtimes for new languages, as well as time to re-implement existing ones, which average a few days each. In addition, we measure performance of proto-runtime based implementations going head-to-head with the standard distributions of Cilk, StarSs (OMPSs), and posix threads, showing that the proto-runtime matches or outperforms on large servers in all cases. 108.83 +\end{abstract} 108.84 + 108.85 + 108.86 + 108.87 + 108.88 + 108.89 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 108.90 +\section{Background and Motivation} 108.91 +\label{sec:intro} 108.92 + 108.93 +[Note to reviewers: this paper's style and structure follow the official PPoPP guide to writing style, which is linked to the PPoPP website. We are taking on faith that the approach has been communicated effectively to reviewers and that we won't be penalized for following it's recommended structure and approach.] 108.94 + 108.95 +Programming in the past has been overwhelmingly sequential, with the applications being run on sequential hardware. But the laws of physics have forced the hardware to become parallel, which will force nearly all future programming to become parallel programming. However, the transition from sequential to parallel programming has been slow due to the difficulty of the traditional parallel programming methods. 108.96 + 108.97 +The difficulties with parallel programming fall into three main categories: 1) difficult mental model, 2) extra effort to rewrite the code for each hardware target to get acceptable performance and 3) disruption to existing practices, including steep learning curve, changes to the tools used, and changes in design practices. 108.98 + 108.99 +Many believe that these can be overcome with the use of Domain-Specific Languages []. But such languages have been slow to adopt, we believe due to the cost to create them and to port them across hardware targets. The small number of users of each language, which is specific to a narrow domain, makes this cost impractical. 108.100 + 108.101 +We propose that a method that makes Domain Specific Languages (DSLs) low cost to produce as well as to port across hardware targets will allow them to fulfill their promise, and we introduce what we call a proto-runtime to help towards this goal. 108.102 + 108.103 +The proto-runtime approach is a normal, full, runtime, but with two key pieces replaced by an interface. One piece replaced is the logic of language constructs, and the other is logic for choosing which core to assign work onto. The remaining proto-runtime piece handles the low-level hardware details of the runtime. 108.104 + 108.105 +The decomposition into a proto-runtime plus plugged-in language behaviors modularizes the construction of runtimes. The proto-runtime is one module, which embodies runtime internals, which are hardware oriented and independent of language. The plugged-in portions form the two other modules, which are language specific. The interface between them occurs at a natural boundary, which separates the hardware oriented portion of a runtime from the language oriented portion. 108.106 + 108.107 +We claim the following benefits of the proto-runtime approach, each of which is supported in the indicated section of the paper: 108.108 + 108.109 +\begin{itemize} 108.110 + 108.111 +\item The proto-runtime approach should reliably apply to future languages and hardware. because the patterns underlying it appear to be fundamental and so should hold for future languages and architectures (\S\ref{subsec:TiePoints}). 108.112 + 108.113 +\item The proto-runtime approach modularizes the runtime (\S\ref{sec:Proposal}). 108.114 + 108.115 +%\item The modularization is consistent with patterns that appear to be fundamental to parallel computation and runtimes (\S\ ). 108.116 + 108.117 +\item The modularization cleanly separates runtime internals from the language-specific logic (\S\ref{sec:Proposal} ). 108.118 + 108.119 +\item The modularization gives the language control 108.120 +over timing and placement of executing work (\S\ref{sec:Proposal}). 108.121 + 108.122 +\item The modularization results in reduced time to implement a new language's behavior, and in reduced time to port a language to new hardware (\S\ref{sec:Proposal}). 108.123 + 108.124 +\begin{itemize} 108.125 + 108.126 + 108.127 +\item Part of the time reduction is due to the proto-runtime providing a centralized location for services for all languages to use, so the language doesn't have to provide them separately. Such services include debugging facilities, automated verification, concurrency handling, hardware performance information gathering, and so on (\S\ ). 108.128 + 108.129 +\item Part of the time reduction is due to encapsulation of hardware aspects inside the hardware-oriented module (\S \ref{sec:intro}). 108.130 + 108.131 +\item Part of the time reduction is due to reuse of the performance-tuning effort for runtime internals (\S\ ). 108.132 + 108.133 +\item Part of the time reduction is due to using sequential thinking when implementing the language logic, enabled by the proto-runtime protecting shared internal runtime state and exporting an interface that presents a sequential model (\S\ ). 108.134 + 108.135 + 108.136 +\end{itemize} 108.137 + 108.138 +\item 108.139 + 108.140 +The modularization also selectively exposes hardware aspects relevant to placement of work, giving the language control over placement of work onto the hardware. If the language takes advantage of this, it can result in reduced communication between cores and increased application performance (\S\ ). 108.141 + 108.142 +\begin{itemize} 108.143 + 108.144 +\item Similar control over hardware is not possible when the language is built on top of a package like Posix threads or TBB, which has its own work-to-hardware assignment (\S\ ). 108.145 + 108.146 +\end{itemize} 108.147 + 108.148 +\item Modularization with similar benefits does not appear possible when using a package such as Posix threads or TBB, unless the package itself is modified and then used according to the proto-runtime pattern (\S\ ). 108.149 + 108.150 +\end{itemize} 108.151 + 108.152 +The paper is organized as follows: We first expand on the value of embedded style DSLs (eDSL), and where the effort goes when creating one (\S \ref{sec:DSLHypothesis}). We focus on the role that runtime implementation effort plays in the adoption of eDSLs \S, which motivates the value of the savings provided by the proto-runtime approach. We then move on to the details of the proto-runtime approach (\S ), and tie them to how a runtime is modularized (\S ), covering how each claimed benefit is provided. 108.153 +We then show overhead measurements (\S ) and implementation time measurements (\S ), which indicate that the proto-runtime approach is performance competitive while significantly reducing implementation and porting effort. 108.154 +With that understanding in hand, we then discuss how the approach compares to related work (\S ), and finally, we highlight the main conclusions drawn from the research (\S ). 108.155 + 108.156 + 108.157 + 108.158 + 108.159 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 108.160 +% 108.161 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 108.162 +\section{Background: The eDSL Hypothesis} 108.163 + 108.164 +%[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 108.165 + 108.166 +%[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 108.167 + 108.168 +%[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 108.169 + 108.170 +%[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 108.171 + 108.172 +Domain Specific Languages have been around for a while [], and recently have been suggested as a good approach for parallel programming[][stanford PPL]. 108.173 + 108.174 +In essence, a DSL, or just Domain Language, captures patterns that are common in a particular domain of expertise, such as user interfaces, simulations of physical phenomena, bio-informatics, cosmology, and so on. Each domain has a particular set of mental models, common types of computation, and common kinds of data structures. A DSL captures these common elements in custom syntax. 108.175 + 108.176 + 108.177 +\subsection{Embedding a DSL into a base language} 108.178 + 108.179 +A style of domain language, which we feel has good applicability to parallel software development, is the so-called \textit{embedded} style of DSL (eDSL) [] [metaborg][stanford ppl]. In this variation, a program is written in a mix of a base language plus domain language constructs. The syntax of the two is intermixed. A preprocessing step then translates the domain syntax into the base syntax, and includes calls to the domain language's runtime. 108.180 + 108.181 + 108.182 +For example, use C (or Java) as the base language for an application, and mix-in custom syntax for constructs from a user-interface eDSL. To test the code, the developer modifies the build process to first perform the translation step, then pass the resulting source through the normal C (or Java) compiler. The resulting executable contains calls to a dynamic (or shared) library that becomes linked, at run time, to a runtime implementation that has been tuned to the hardware it is running on. 108.183 + 108.184 + 108.185 +\subsection{Low learning curve, high productivity, and portability} 108.186 +DSLs are generally quick to learn because the domain experts are already familiar with the concepts expressed by the custom syntax, especially for those who are \textit{not} expert programmers. Embedded style DSLs further reduce learning curve because they have relatively few constructs, and require no new development tools nor development procedures. Together, these should meet the goal of a low learning curve for switching to parallel software development. 108.187 + 108.188 +Productivity can be enhanced by a well designed syntax, which can simplify the application code, modularize it, and encapsulate performance aspects inside the language. Simplifying reduces the amount of code and the amount of mental effort. Modularizing separates concerns within the code and isolates aspects, which improves productivity. Encapsulating performance inside the DSL constructs removes them from the application programmer's concerns, which also improves productivity. 108.189 + 108.190 +Perhaps the most important productivity enhancement comes from hiding parallelism aspects inside the custom DSL constructs. The language takes advantage of the domain patterns to present a familar mental model, and then attaches synchronization, work-division, and communication implications to those constructs, without the programmer having to be aware of them. Combining the simplicity, modularization, performance encapsulation, and parallelism hiding, with congruence with the mental model of the domain, together work towards the goal of high productivity. 108.191 + 108.192 +Portability is aided by the encapsulation of performance aspects inside the DSL constructs. This means that the elements of the problem that require large amounts of computation are often pulled into the language, which isolates the application code from hardware performance concerns. Only the language implementation must adapt to new hardware in order to get high performance. Although such isolation cannot always be fully achieved, Domain Languages hold promise for making significant strides towards it. 108.193 + 108.194 +\subsection{Low disruption and easy adoption} 108.195 + 108.196 +Using an eDSL tends to have low disruption because the base language remains the same, along with most of the development tools and practices. 108.197 + Constructs from the eDSL can be mixed into existing sequential code, incrementally replacing the high computation sections, while continuing with the same development practices.\subsection{ Few users means the effort of eDSLs must be low} 108.198 + 108.199 +What appears to be holding eDSLs back from addressing the challenges of parallel programming would be mainly the time, expertise, and cost needed to develop an eDSL. Because the number of users is small, the economic model of the past doesn't apply. For sequential languages, the potential user-base is in the millions, but for a parallel Domain Language, the user base may be only a few hundred developers who will use the language. 108.200 + 108.201 +As such, the effort to create a usable eDSL needs to be reduced to the point that it is viable for that size of user base. 108.202 + 108.203 +The effort to be reduced falls into three categories: 108.204 + 108.205 +\begin{enumerate} 108.206 +\item effort to explore the design and create the eDSL syntax 108.207 +\item effort to create the runtime that embodies the eDSL behavior 108.208 +\item effort to performance tune the eDSL on particular hardware 108.209 +\end{itemize} 108.210 + 108.211 + 108.212 +\subsection{Critical areas of effort in the big picture} 108.213 + 108.214 +Across the industry as a whole, when eDSLs become successful, there will be hundreds of Domain Languages, and likewise hundreds of different hardware platforms that each language must run efficiently on. That multiplicative effect must be reduced in order to make the eDSL approach economically viable. 108.215 + 108.216 +The first category of eDSL effort is creating the front-end translation of custom syntax into the base language. This is a one-time effort that does not repeat when new hardware is added. 108.217 + 108.218 +The effort that has to be expended on each platform is the runtime implementation, which includes hardware-specific low-level tuning, and the tuning of the domain construct implementation. 108.219 + 108.220 +Luckily, hardware platforms cluster into groups with similar performance-related features. This opens the door to an approach that can present a common abstraction for all platforms in a cluster. Examples of clusters include: 108.221 + 108.222 +\begin{itemize} 108.223 +\item shared coherent memory multi-core single-chip machine 108.224 +\item shared coherent memory multi-core multi-chip machine 108.225 +\item independent address space coprocessor (GPU) 108.226 +\item a network of nodes of the above categories 108.227 +\item a machine with a hierarchy of sub-networks 108.228 +\end{itemize} 108.229 + 108.230 + 108.231 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 108.232 +% 108.233 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 108.234 +\section{Our Proposal} \label{sec:Proposal} 108.235 + 108.236 +We propose addressing the runtime effort by defining a modularization of runtimes, as seen in Fig X. The low-level hardware details are collected into one module, which presents a common interface. The language supplies 108.237 +the top two modules, which plug in via the interface. The hardware specific module presents the same interface 108.238 +for all platforms sharing similar performance related features. This module only has to be implement once for a given platform, then reused by the languages. 108.239 + 108.240 +\begin{figure}[ht] 108.241 + \centering 108.242 + \includegraphics[width = 1.5in, height = 1.1in]{../figures/proto-runtime__modules.pdf} 108.243 + \caption{Shows how the proto-runtime approach modularizes the implementation of a runtime. The three pieces are the proto-runtime implementation, an implementation of the language construct behaviors, and an implementation of the portion of scheduling that chooses which work is assigned to which processor. } 108.244 + \label{fig:PR_three_pieces} 108.245 +\end{figure} 108.246 + 108.247 + 108.248 +Thus, a given language doesn't have to re-implement its runtime for every platform. Instead, it has a much lower effort requirement, of implementing for each category. 108.249 + 108.250 +The language effort is further reduced because the language doesn't consider the low-level details of making the runtime itself run fast. It only has to consider the level of hardware feature that is exposed by the interface. This is a higher level of abstraction, which simplifies the task for the language implementer. 108.251 + 108.252 +One additional benefit is giving control to the language, to choose when and where it wishes work to execute. 108.253 +This feature simplifies implementation of languages 108.254 +that have features related to scheduling behavior. 108.255 +It also enables the language implementor to use sophisticated 108.256 +methods for choosing placement of virtual processors 108.257 +(threads) and tasks, which can significantly impact 108.258 +application performance. 108.259 + 108.260 +In this paper, we present work that applies to coherent 108.261 +shared memory machines, both single chip and multiple chip. Extensions beyond this are currently in progress, to address multiple-address-space machines and hierarchical 108.262 +heterogeneous collections of processors, which will appear in future papers. 108.263 + 108.264 +\subsection{Breakdown of the modules} 108.265 + 108.266 +The language is broken into two parts, as seen in Fig 108.267 +X. One is a thin wrapper library that 108.268 +invokes the runtime and the other is a set of modules that are part of the runtime. 108.269 + 108.270 + 108.271 + 108.272 +\begin{figure}[ht] 108.273 + \centering 108.274 + \includegraphics[width = 2.8in, height = 1.1in]{../figures/proto-runtime__modules_lang_breakdown.pdf} 108.275 + \caption{Shows how the code of the language implementation 108.276 + is broken into two pieces. The first is a thin wrapper 108.277 + that invokes the runtime, the other is a dynamic 108.278 + library that plugs into the runtime.} 108.279 + \label{fig:langBreakdown} 108.280 +\end{figure} 108.281 + 108.282 +The runtime itself consists of three modules connected via 108.283 +an interface, as was seen back in Fig X. One encapsulates the low-level hardware details, and presents an interface to the language modules. We call 108.284 +this the \textit{proto-runtime}. 108.285 +It's job is to enforce the interface that the language modules see. 108.286 + 108.287 + 108.288 +The language has two modules, both of which are collected in what we call the \textit{language plugin}. One module encodes the behavior of language 108.289 +constructs, the other module provides logic for choosing which work to execute on 108.290 +which hardware resource. 108.291 + 108.292 +The plugin collects the two language modules into a dynamic library that is implemented, compiled, and distributed separately from any application executables. This is how a non-changing application executable is able to invoke plugin code that can change between machines. The executable contains only symbols of plugin functions, and during the run those are linked to specific functions' implementations. 108.293 + 108.294 +In order to provide such modularization, we rely upon something we call a tie-point as the primitive upon which synchronization constructs are built. The low-level nature of a tie-point places them below the level of constructs such as a mutex. Instead, a mutex is implemented on top of tie-points. This places all parallel constructs on the same level in the software stack, be they complex like the AND-OR parallelism of Prolog, or the wild-card matching 108.295 +channels in coordination languages, or ultra-simple acquire and release mutex constructs. All are implemented in terms of the same tie-point primitives provided by the proto-runtime. 108.296 + 108.297 + 108.298 + 108.299 + 108.300 + 108.301 +\subsection{The origin of tie-points.}\label{subsec:TiePoints} 108.302 + 108.303 + 108.304 +A tie-point relates timelines, so we talk a bit, first, about timelines. A timeline is the primitive in parallelism. If you look at any parallel language, it establishes a number of independent timelines. It then controls which timelines are actively progressing relative to the others. 108.305 + 108.306 +For example, take a thread library. It provides a command to create a thread, and that thread represents an independent timeline. The library also provides the mutex acquire and release commands, which control which of those timelines advance relative to each other. When an acquire executes, it causes the thread to block, which means the associated timeline suspends; it stops 108.307 +making forward progress. The release in a different thread clears the block, which resumes the timeline. That linkage between suspend and resume of different timelines is the control the language exerts over which timelines are actively progressing. 108.308 + 108.309 +To build up to tie-points, we look at the nature of points on 108.310 +a single timeline, by reviewing mutex behavior in detail. We see the timeline shown in Fig X. Thread 1, which is timeline 1, tries to acquire the mutex, M, 108.311 +by executing the acquire command. Timeline 1 stops, at point 1.S, then something external to it happens, and the timeline starts again at point 1.R. The gap between is not seen by the code executed within the thread. Rather, from the code-execution viewpoint, the acquire command is a single command, and hence the gap between 1.S and 1.R collapses to a single point on the timeline. 108.312 + 108.313 + 108.314 +\begin{figure}[ht] 108.315 + \centering 108.316 + \includegraphics[width = 2.8in, height = 0.8in] 108.317 + {../figures/PR__timeline_single.pdf} 108.318 + \caption{The timeline suspends at 1.S and resumes 108.319 + at 1.R. From the viewpoint of the timeline, the gap collapses into a single point.} 108.320 + \label{fig:langBreakdown} 108.321 +\end{figure} 108.322 + 108.323 + 108.324 +Now, a tie-point is seen as the linkage between such collapsed points on 108.325 +two timelines. In Fig X, timeline A is still there, suspends still at 1.S and resumes at 1.R. However, now there is a second timeline, timeline 2B. It executes the release command at point 2.S, which suspends timeline B, performs the behavior of the release command 108.326 +inside the gap, then resumes timeline B at 2.R. The behavior of the release 108.327 +command causes the end of suspend in the first timeline. That causality ties the two collapsed points in the two timelines together. 108.328 + 108.329 + 108.330 +\begin{figure}[ht] 108.331 + \centering 108.332 + \includegraphics[width = 2.8in, height = 1.35in] 108.333 + {../figures/PR__timeline_dual.pdf} 108.334 + \caption{Two timelines with a causal relationship. 108.335 +Activity that takes place during the gap in timeline 108.336 +B causes resume of timeline A. This ties point 2 on 108.337 +timeline B to point 1 on timeline A.} 108.338 + \label{fig:langBreakdown} 108.339 +\end{figure} 108.340 + 108.341 + 108.342 + 108.343 +We call this connection between the collapsed suspensions a tie point. What it provides is a guarantee about visibility of events between the tied timelines. The 108.344 +guarantee makes both agree on the order of events,\textit{ 108.345 +relative to the mutual tied point}. Any operation that executes before the point in the second timeline, 2.S, is visible immediately after the point in the first timeline, 1.R. In addition, nothing 108.346 +in the first timeline happening after the tie-point is visible in the second 108.347 +timeline before the tie-point. 108.348 + 108.349 +Just that guarantee defines it as a half tie-point. A full tie-point adds the dual guarantee from timeline 108.350 +B to A. Namely, for a full tie-point, anything before the tie-point in timeline A is visible in timeline B after the tie-point, 108.351 +and nothing in timeline B after the tie-point is visible in A before the tie-point. 108.352 + 108.353 +A tie-point is the primitive mechanism that the proto-runtime implements. It does not involve any notion of dependency nor constraint semantics. All it provides is the notion that the tied points are the same "instant" for both tied timelines. What that means is that both timelines see events ordered relative to that point in the same way. 108.354 + 108.355 +It is up to the language to supply the behavior that happens inside 108.356 +the gaps. This behavior is what decides which timelines get tied together. It is that decision making, of which timelines to tie together, that implements the 108.357 +semantics of a synchronization construct. 108.358 + 108.359 +A formal treatment of tie-points is beyond the scope of this paper. However, a formal framework has been substantially completed and 108.360 +will be published in a future paper. 108.361 + 108.362 + 108.363 + 108.364 +\subsection{Tie-points within a proto-runtime} 108.365 + 108.366 + In Fig X we didn't say what entity executes the behavior that takes place in the gaps in the timelines. This is what the proto-runtime does. It provides 108.367 +primitives that suspend a timeline and then cause behavior supplied by the language 108.368 +plugin to execute in the gap. This plugin behavior chooses which timelines remain suspended versus which resume execution, or start execution. 108.369 + 108.370 +As such, the plugin behavior that runs in the proto-runtime when one timeline 108.371 +suspends is what chooses another timeline to resume as a consequence. That 108.372 +choice establishes causality between the suspensions of the two timelines, 108.373 +and thus creates the tie between the two collapsed timeline points. The proto-runtime 108.374 +code module provides the suspend and resume primitives, while the running proto-runtime instance 108.375 +executes the plugin behavior. 108.376 + 108.377 +The running proto-runtime instance is also known as the Master, while the application timelines 108.378 +are known as Slaves. The behavior of the language constructs executes within the Master's timeline, while the behavior of application code executes within Slave timelines. 108.379 + 108.380 +\subsection{More about the proto-runtime} 108.381 + 108.382 +The proto-runtime provides the following primitives, for use by language 108.383 +plugins: 108.384 +\begin{itemize} 108.385 +\item create a virtual processor (which has a suspendible timeline) 108.386 +\item create a task (which has an atomic timeline that runs to completion) 108.387 +\item automatically convert a task to a virtual processor, as needed 108.388 +\item trigger choosing which virtual processor or task to begin execution on an offered 108.389 +core 108.390 +\item suspend a timeline, then invoke a function to handle the suspension -- handler executes in the Master, with supplied parameters 108.391 +\item end a timeline 108.392 + 108.393 +\end{itemize} 108.394 + 108.395 +Virtual processors and tasks, both, have associated timelines. The reason for having both is a practical one, as tasks are simpler, with less overhead, 108.396 +and many languages have the semantics of short, atomic, units of work that 108.397 +are not intended to suspend. Thus, tasks are treated differently inside the 108.398 +proto-runtime, and incur less overhead to create and run. 108.399 + 108.400 +A special feature of the proto-runtime is that if a task happens to execute 108.401 +a language command that causes suspension, then the proto-runtime automatically 108.402 +converts that task to a virtual processor. This helps support the mixing of different 108.403 +languages within the same program. 108.404 + 108.405 +The proto-runtime involves the language into the process of choosing which core a given task 108.406 +or virtual processor executes on. The proto-runtime maintains control, but offers free cores to the plugin, which responds by then assigning a task or virtual processor to the core. The proto-runtime just offers, it is up to the language to decide what work that core should receive at that point in time. 108.407 + 108.408 +The proto-runtime provides a mechanism for communicating information from the application code to the plugin function that was invoked to handle suspension. For example, the identity of a particular mutex a thread wishes to acquire 108.409 +can be communicated from the wrapper library to the plugin. 108.410 + 108.411 + 108.412 +Because the proto-runtime tracks all the timelines, the end of a timeline has to be explicitly stated in the application code, by calling a wrapper library function. That then invokes the proto-runtime primitive that informs the proto-runtime instance. The proto-runtime performs internal bookkeeping related to the ending of the timeline, and notes that the core is now free and offers it to the plugin's Assigner function. 108.413 + 108.414 + 108.415 + 108.416 + 108.417 + 108.418 + 108.419 +\subsection{What happens at different times within the 108.420 +big picture} 108.421 + 108.422 +To get a handle on the big picture, we describe three different paths through time: 108.423 +one for development of proto-runtime code, one for 108.424 +development of language implementation, and one for 108.425 +application development. 108.426 + 108.427 +The proto-runtime code is developed separately from 108.428 +both language and application code, and packaged as a dynamic library. This library has multiple implementations. Each kind of hardware platform has a proto-runtime implemented specifically for it, and is tuned for low overhead on that hardware. The administrator of a particular machine chooses the proto-runtime implementation best suited to that hardware, and installs that. 108.429 + 108.430 +The language code is likewise developed separately from both proto-runtime and application code. Although multiple versions of a language may be implemented, there are significantly fewer versions than the number of proto-runtime versions. That is because most of the hardware details are abstracted away by the proto-runtime interface. 108.431 + 108.432 +However, the interface does expose hardware features related to placement of work onto cores, so some variations may exist for the same interface. Again, the administrator chooses which language implementation best suits their machine and installs the corresponding dynamic library. 108.433 + 108.434 +The wrapper library, however, is not 108.435 +installed on the machine where code runs. Rather, it 108.436 +is only used during development of an application, 108.437 +and remains independent of hardware. 108.438 + 108.439 +The application, ideally, is developed only once. It makes calls to the wrapper library, which in turn invokes the dynamic libraries of the language and proto-runtime. 108.440 +When an application is executed, the loader binds the 108.441 +dynamic libraries, connecting them to the application. 108.442 + In this way, a single, 108.443 +unchanging, executable gains access to machine-specific implementations of language and proto-runtime. 108.444 + 108.445 +However, the success of the compile-once approach has 108.446 +limits in practice. Each machine's characteristics determine the size of unit of work that gives the best performance. When too small, overhead in the runtime system required to create the work, manage constraints, and perform assignment becomes larger than the work 108.447 +itself. When units become too large, not enough units exist to keep all the cores busy. Thankfully, the range between is large enough, for most applications, that neither limit is hit, on most machines. As machines evolve, though, this happy circumstance is likely to change, necessitating recompiling and possibly hand modifying the code. 108.448 + 108.449 +\end{document} 108.450 + 108.451 +
109.1 Binary file 0__Papers/Vote_Bucks/MSW_A4_format.doc has changed
110.1 Binary file 1__Presentations/11__3__LCPC_11/VMS_presentation_for_LCPC_11.odp has changed
111.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 111.2 +++ b/1__Presentations/13__Jy_01__DSLDI/DSL_on_top_of_Thds.svg Sat Aug 03 19:24:22 2013 -0700 111.3 @@ -0,0 +1,341 @@ 111.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 111.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 111.6 + 111.7 +<svg 111.8 + xmlns:dc="http://purl.org/dc/elements/1.1/" 111.9 + xmlns:cc="http://creativecommons.org/ns#" 111.10 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 111.11 + xmlns:svg="http://www.w3.org/2000/svg" 111.12 + xmlns="http://www.w3.org/2000/svg" 111.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 111.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 111.15 + width="744.09448819" 111.16 + height="1052.3622047" 111.17 + id="svg2" 111.18 + sodipodi:version="0.32" 111.19 + inkscape:version="0.48.2 r9819" 111.20 + sodipodi:docname="DSL_on_top_of_Thds.svg" 111.21 + inkscape:output_extension="org.inkscape.output.svg.inkscape" 111.22 + version="1.1"> 111.23 + <defs 111.24 + id="defs4"> 111.25 + <marker 111.26 + inkscape:stockid="Arrow2Mend" 111.27 + orient="auto" 111.28 + refY="0.0" 111.29 + refX="0.0" 111.30 + id="Arrow2Mend" 111.31 + style="overflow:visible;"> 111.32 + <path 111.33 + id="path4008" 111.34 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 111.35 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 111.36 + transform="scale(0.6) rotate(180) translate(0,0)" /> 111.37 + </marker> 111.38 + <inkscape:perspective 111.39 + sodipodi:type="inkscape:persp3d" 111.40 + inkscape:vp_x="0 : 526.18109 : 1" 111.41 + inkscape:vp_y="0 : 1000 : 0" 111.42 + inkscape:vp_z="744.09448 : 526.18109 : 1" 111.43 + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" 111.44 + id="perspective10" /> 111.45 + <inkscape:perspective 111.46 + id="perspective12172" 111.47 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 111.48 + inkscape:vp_z="1 : 0.5 : 1" 111.49 + inkscape:vp_y="0 : 1000 : 0" 111.50 + inkscape:vp_x="0 : 0.5 : 1" 111.51 + sodipodi:type="inkscape:persp3d" /> 111.52 + <inkscape:perspective 111.53 + id="perspective12937" 111.54 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 111.55 + inkscape:vp_z="1 : 0.5 : 1" 111.56 + inkscape:vp_y="0 : 1000 : 0" 111.57 + inkscape:vp_x="0 : 0.5 : 1" 111.58 + sodipodi:type="inkscape:persp3d" /> 111.59 + </defs> 111.60 + <sodipodi:namedview 111.61 + id="base" 111.62 + pagecolor="#ffffff" 111.63 + bordercolor="#666666" 111.64 + borderopacity="1.0" 111.65 + gridtolerance="10000" 111.66 + guidetolerance="10" 111.67 + objecttolerance="10" 111.68 + inkscape:pageopacity="0.0" 111.69 + inkscape:pageshadow="2" 111.70 + inkscape:zoom="1.553811" 111.71 + inkscape:cx="381.80397" 111.72 + inkscape:cy="563.31961" 111.73 + inkscape:document-units="px" 111.74 + inkscape:current-layer="layer1" 111.75 + showgrid="false" 111.76 + inkscape:window-width="1600" 111.77 + inkscape:window-height="848" 111.78 + inkscape:window-x="-8" 111.79 + inkscape:window-y="-8" 111.80 + inkscape:window-maximized="1" /> 111.81 + <metadata 111.82 + id="metadata7"> 111.83 + <rdf:RDF> 111.84 + <cc:Work 111.85 + rdf:about=""> 111.86 + <dc:format>image/svg+xml</dc:format> 111.87 + <dc:type 111.88 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 111.89 + <dc:title></dc:title> 111.90 + </cc:Work> 111.91 + </rdf:RDF> 111.92 + </metadata> 111.93 + <g 111.94 + inkscape:label="Layer 1" 111.95 + inkscape:groupmode="layer" 111.96 + id="layer1"> 111.97 + <text 111.98 + sodipodi:linespacing="100%" 111.99 + id="text12985" 111.100 + y="527.55029" 111.101 + x="169.00162" 111.102 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 111.103 + xml:space="preserve"><tspan 111.104 + y="527.55029" 111.105 + x="170.50552" 111.106 + sodipodi:role="line" 111.107 + id="tspan12989" 111.108 + style="text-align:center;text-anchor:middle">Thd </tspan><tspan 111.109 + y="537.55029" 111.110 + x="169.00162" 111.111 + sodipodi:role="line" 111.112 + style="text-align:center;text-anchor:middle" 111.113 + id="tspan4800">Construct</tspan><tspan 111.114 + id="tspan3149" 111.115 + y="547.55029" 111.116 + x="169.00162" 111.117 + sodipodi:role="line" 111.118 + style="text-align:center;text-anchor:middle">Behavior</tspan></text> 111.119 + <rect 111.120 + style="fill:none;stroke:#000000;stroke-width:1.08018136;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 111.121 + id="rect12971" 111.122 + width="131.7012" 111.123 + height="114.03358" 111.124 + x="130.30118" 111.125 + y="513.65302" /> 111.126 + <text 111.127 + xml:space="preserve" 111.128 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 111.129 + x="196.33487" 111.130 + y="595.20319" 111.131 + id="text12973" 111.132 + sodipodi:linespacing="100%"><tspan 111.133 + sodipodi:role="line" 111.134 + id="tspan12975" 111.135 + x="196.33487" 111.136 + y="595.20319" 111.137 + style="text-align:center;text-anchor:middle">Hardware Specific</tspan><tspan 111.138 + sodipodi:role="line" 111.139 + x="196.33487" 111.140 + y="605.20319" 111.141 + id="tspan3089" 111.142 + style="font-size:12px;text-align:center;text-anchor:middle" /></text> 111.143 + <text 111.144 + sodipodi:linespacing="100%" 111.145 + id="text12985-7" 111.146 + y="527.52588" 111.147 + x="229.1481" 111.148 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 111.149 + xml:space="preserve"><tspan 111.150 + y="527.52588" 111.151 + x="229.1481" 111.152 + id="tspan12987-4" 111.153 + sodipodi:role="line" 111.154 + style="text-align:center;text-anchor:middle">Assignment</tspan><tspan 111.155 + id="tspan3151" 111.156 + y="537.52588" 111.157 + x="229.1481" 111.158 + sodipodi:role="line" 111.159 + style="text-align:center;text-anchor:middle">of Work</tspan><tspan 111.160 + id="tspan3153" 111.161 + y="547.52588" 111.162 + x="229.1481" 111.163 + sodipodi:role="line" 111.164 + style="text-align:center;text-anchor:middle">onto Cores</tspan></text> 111.165 + <text 111.166 + xml:space="preserve" 111.167 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 111.168 + x="197.00162" 111.169 + y="439.55029" 111.170 + id="text4710" 111.171 + sodipodi:linespacing="100%"><tspan 111.172 + style="text-align:center;text-anchor:middle" 111.173 + id="tspan4712" 111.174 + sodipodi:role="line" 111.175 + x="198.50552" 111.176 + y="439.55029">DSL </tspan><tspan 111.177 + style="text-align:center;text-anchor:middle" 111.178 + sodipodi:role="line" 111.179 + x="197.00162" 111.180 + y="449.55029" 111.181 + id="tspan4796">Construct</tspan><tspan 111.182 + style="text-align:center;text-anchor:middle" 111.183 + sodipodi:role="line" 111.184 + x="197.00162" 111.185 + y="459.55029" 111.186 + id="tspan4714">Behavior</tspan></text> 111.187 + <text 111.188 + sodipodi:linespacing="100%" 111.189 + id="text4746" 111.190 + y="527.55029" 111.191 + x="343.00162" 111.192 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 111.193 + xml:space="preserve"><tspan 111.194 + y="527.55029" 111.195 + x="344.50552" 111.196 + sodipodi:role="line" 111.197 + id="tspan4748" 111.198 + style="text-align:center;text-anchor:middle">DSL </tspan><tspan 111.199 + y="537.55029" 111.200 + x="343.00162" 111.201 + sodipodi:role="line" 111.202 + style="text-align:center;text-anchor:middle" 111.203 + id="tspan4798">Construct</tspan><tspan 111.204 + id="tspan4750" 111.205 + y="547.55029" 111.206 + x="343.00162" 111.207 + sodipodi:role="line" 111.208 + style="text-align:center;text-anchor:middle">Behavior</tspan></text> 111.209 + <rect 111.210 + style="fill:none;stroke:#000000;stroke-width:1.08018136;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 111.211 + id="rect4752" 111.212 + width="131.7012" 111.213 + height="52.250008" 111.214 + x="310.30118" 111.215 + y="575.43658" /> 111.216 + <text 111.217 + xml:space="preserve" 111.218 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 111.219 + x="376.33487" 111.220 + y="595.20319" 111.221 + id="text4754" 111.222 + sodipodi:linespacing="100%"><tspan 111.223 + sodipodi:role="line" 111.224 + id="tspan4756" 111.225 + x="376.33487" 111.226 + y="595.20319" 111.227 + style="text-align:center;text-anchor:middle">Hardware Specific</tspan><tspan 111.228 + sodipodi:role="line" 111.229 + x="376.33487" 111.230 + y="605.20319" 111.231 + style="text-align:center;text-anchor:middle" 111.232 + id="tspan4758" /><tspan 111.233 + sodipodi:role="line" 111.234 + x="376.33487" 111.235 + y="616.76843" 111.236 + id="tspan4760" 111.237 + style="font-size:12px;text-align:center;text-anchor:middle">(Proto-Runtime)</tspan></text> 111.238 + <text 111.239 + sodipodi:linespacing="100%" 111.240 + id="text4762" 111.241 + y="527.52588" 111.242 + x="409.1481" 111.243 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 111.244 + xml:space="preserve"><tspan 111.245 + y="527.52588" 111.246 + x="409.1481" 111.247 + id="tspan4764" 111.248 + sodipodi:role="line" 111.249 + style="text-align:center;text-anchor:middle">Assignment</tspan><tspan 111.250 + id="tspan4766" 111.251 + y="537.52588" 111.252 + x="409.1481" 111.253 + sodipodi:role="line" 111.254 + style="text-align:center;text-anchor:middle">of Work</tspan><tspan 111.255 + id="tspan4768" 111.256 + y="547.52588" 111.257 + x="409.1481" 111.258 + sodipodi:role="line" 111.259 + style="text-align:center;text-anchor:middle">onto Cores</tspan></text> 111.260 + <text 111.261 + xml:space="preserve" 111.262 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 111.263 + x="376.3902" 111.264 + y="573.19415" 111.265 + id="text4770" 111.266 + sodipodi:linespacing="100%"><tspan 111.267 + sodipodi:role="line" 111.268 + x="376.3902" 111.269 + y="573.19415" 111.270 + id="tspan4772" 111.271 + style="font-size:8px;text-align:center;text-anchor:middle">Hardware Abstraction Interface</tspan></text> 111.272 + <rect 111.273 + y="-575.43658" 111.274 + x="310.30118" 111.275 + height="9.1641436" 111.276 + width="131.7012" 111.277 + id="rect4774" 111.278 + style="fill:none;stroke:#000000;stroke-width:1.08018136;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 111.279 + transform="scale(1,-1)" /> 111.280 + <rect 111.281 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 111.282 + id="rect4776" 111.283 + width="65.276405" 111.284 + height="52.250008" 111.285 + x="310.40247" 111.286 + y="513.58252" /> 111.287 + <rect 111.288 + y="513.58252" 111.289 + x="376.40247" 111.290 + height="52.250008" 111.291 + width="65.276405" 111.292 + id="rect4778" 111.293 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 111.294 + <text 111.295 + sodipodi:linespacing="100%" 111.296 + id="text4780" 111.297 + y="477.20319" 111.298 + x="198.33487" 111.299 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 111.300 + xml:space="preserve"><tspan 111.301 + style="text-align:center;text-anchor:middle" 111.302 + y="477.20319" 111.303 + x="198.33487" 111.304 + id="tspan4782" 111.305 + sodipodi:role="line">Hardware</tspan><tspan 111.306 + style="text-align:center;text-anchor:middle" 111.307 + y="487.20319" 111.308 + x="198.33487" 111.309 + sodipodi:role="line" 111.310 + id="tspan4786">Specific Choices</tspan><tspan 111.311 + style="font-size:12px;text-align:center;text-anchor:middle" 111.312 + id="tspan4784" 111.313 + y="497.20319" 111.314 + x="198.33487" 111.315 + sodipodi:role="line" /></text> 111.316 + <rect 111.317 + transform="scale(1,-1)" 111.318 + style="fill:none;stroke:#000000;stroke-width:1.08018136;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 111.319 + id="rect4788" 111.320 + width="131.7012" 111.321 + height="9.1641436" 111.322 + x="130.30118" 111.323 + y="-513.43658" /> 111.324 + <text 111.325 + sodipodi:linespacing="100%" 111.326 + id="text4790" 111.327 + y="511.19415" 111.328 + x="196.3902" 111.329 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 111.330 + xml:space="preserve"><tspan 111.331 + style="font-size:8px;text-align:center;text-anchor:middle" 111.332 + id="tspan4792" 111.333 + y="511.19415" 111.334 + x="196.3902" 111.335 + sodipodi:role="line">Thd Interface</tspan></text> 111.336 + <rect 111.337 + y="417.97049" 111.338 + x="130.30118" 111.339 + height="86.35968" 111.340 + width="131.7012" 111.341 + id="rect4794" 111.342 + style="fill:none;stroke:#000000;stroke-width:1.08018136;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 111.343 + </g> 111.344 +</svg>
112.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 112.2 +++ b/1__Presentations/13__Jy_01__DSLDI/Level_of_lang_fig.svg Sat Aug 03 19:24:22 2013 -0700 112.3 @@ -0,0 +1,156 @@ 112.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 112.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 112.6 + 112.7 +<svg 112.8 + xmlns:dc="http://purl.org/dc/elements/1.1/" 112.9 + xmlns:cc="http://creativecommons.org/ns#" 112.10 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 112.11 + xmlns:svg="http://www.w3.org/2000/svg" 112.12 + xmlns="http://www.w3.org/2000/svg" 112.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 112.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 112.15 + width="744.09448819" 112.16 + height="1052.3622047" 112.17 + id="svg2" 112.18 + sodipodi:version="0.32" 112.19 + inkscape:version="0.48.2 r9819" 112.20 + sodipodi:docname="Level_of_lang_fig.svg" 112.21 + inkscape:output_extension="org.inkscape.output.svg.inkscape" 112.22 + version="1.1"> 112.23 + <defs 112.24 + id="defs4"> 112.25 + <marker 112.26 + inkscape:stockid="Arrow2Mend" 112.27 + orient="auto" 112.28 + refY="0.0" 112.29 + refX="0.0" 112.30 + id="Arrow2Mend" 112.31 + style="overflow:visible;"> 112.32 + <path 112.33 + id="path4008" 112.34 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 112.35 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 112.36 + transform="scale(0.6) rotate(180) translate(0,0)" /> 112.37 + </marker> 112.38 + <inkscape:perspective 112.39 + sodipodi:type="inkscape:persp3d" 112.40 + inkscape:vp_x="0 : 526.18109 : 1" 112.41 + inkscape:vp_y="0 : 1000 : 0" 112.42 + inkscape:vp_z="744.09448 : 526.18109 : 1" 112.43 + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" 112.44 + id="perspective10" /> 112.45 + <inkscape:perspective 112.46 + id="perspective11923" 112.47 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 112.48 + inkscape:vp_z="1 : 0.5 : 1" 112.49 + inkscape:vp_y="0 : 1000 : 0" 112.50 + inkscape:vp_x="0 : 0.5 : 1" 112.51 + sodipodi:type="inkscape:persp3d" /> 112.52 + </defs> 112.53 + <sodipodi:namedview 112.54 + id="base" 112.55 + pagecolor="#ffffff" 112.56 + bordercolor="#666666" 112.57 + borderopacity="1.0" 112.58 + gridtolerance="10000" 112.59 + guidetolerance="10" 112.60 + objecttolerance="10" 112.61 + inkscape:pageopacity="0.0" 112.62 + inkscape:pageshadow="2" 112.63 + inkscape:zoom="1.3364318" 112.64 + inkscape:cx="362.39987" 112.65 + inkscape:cy="550.40126" 112.66 + inkscape:document-units="px" 112.67 + inkscape:current-layer="layer1" 112.68 + showgrid="false" 112.69 + inkscape:window-width="1317" 112.70 + inkscape:window-height="832" 112.71 + inkscape:window-x="7" 112.72 + inkscape:window-y="0" 112.73 + inkscape:window-maximized="0" /> 112.74 + <metadata 112.75 + id="metadata7"> 112.76 + <rdf:RDF> 112.77 + <cc:Work 112.78 + rdf:about=""> 112.79 + <dc:format>image/svg+xml</dc:format> 112.80 + <dc:type 112.81 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 112.82 + <dc:title></dc:title> 112.83 + </cc:Work> 112.84 + </rdf:RDF> 112.85 + </metadata> 112.86 + <g 112.87 + inkscape:label="Layer 1" 112.88 + inkscape:groupmode="layer" 112.89 + id="layer1"> 112.90 + <text 112.91 + xml:space="preserve" 112.92 + style="font-size:26.76311111px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 112.93 + x="579.24304" 112.94 + y="681.2489" 112.95 + id="text11005" 112.96 + sodipodi:linespacing="100%" 112.97 + transform="scale(0.97144411,1.0293953)"><tspan 112.98 + id="tspan11007" 112.99 + sodipodi:role="line" 112.100 + x="579.24304" 112.101 + y="681.2489">HW</tspan></text> 112.102 + <path 112.103 + id="path3046" 112.104 + d="m 380.30862,475.64298 c 179.56076,0 179.56076,0 179.56076,0" 112.105 + style="fill:#800000;stroke:#800000;stroke-width:3.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 112.106 + inkscape:connector-curvature="0" /> 112.107 + <path 112.108 + inkscape:connector-curvature="0" 112.109 + style="fill:#800000;stroke:#800000;stroke-width:3.0999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 112.110 + d="m 380.30862,696.04155 c 179.56076,0 179.56076,0 179.56076,0" 112.111 + id="path3048" /> 112.112 + <path 112.113 + inkscape:connector-curvature="0" 112.114 + style="fill:#800000;stroke:#800000;stroke-width:3.0999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:37.19999886,37.19999886;stroke-dashoffset:0;marker-end:none" 112.115 + d="m 380.30862,640.94191 c 179.56076,0 179.56076,0 179.56076,0" 112.116 + id="path3050" /> 112.117 + <path 112.118 + id="path3052" 112.119 + d="m 380.30862,585.84227 c 179.56076,0 179.56076,0 179.56076,0" 112.120 + style="fill:#800000;stroke:#800000;stroke-width:3.0999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 112.121 + inkscape:connector-curvature="0" /> 112.122 + <text 112.123 + sodipodi:linespacing="100%" 112.124 + id="text3054" 112.125 + y="627.72272" 112.126 + x="579.24304" 112.127 + style="font-size:26.76311111px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 112.128 + xml:space="preserve" 112.129 + transform="scale(0.97144411,1.0293953)"><tspan 112.130 + y="627.72272" 112.131 + x="579.24304" 112.132 + sodipodi:role="line" 112.133 + id="tspan3056">PRT</tspan></text> 112.134 + <text 112.135 + xml:space="preserve" 112.136 + style="font-size:26.76311111px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 112.137 + x="579.24304" 112.138 + y="574.19647" 112.139 + id="text3058" 112.140 + sodipodi:linespacing="100%" 112.141 + transform="scale(0.97144411,1.0293953)"><tspan 112.142 + id="tspan3060" 112.143 + sodipodi:role="line" 112.144 + x="579.24304" 112.145 + y="574.19647">Threads</tspan></text> 112.146 + <text 112.147 + sodipodi:linespacing="100%" 112.148 + id="text3062" 112.149 + y="467.14404" 112.150 + x="579.24304" 112.151 + style="font-size:26.76311111px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 112.152 + xml:space="preserve" 112.153 + transform="scale(0.97144411,1.0293953)"><tspan 112.154 + y="467.14404" 112.155 + x="579.24304" 112.156 + sodipodi:role="line" 112.157 + id="tspan3064">DSL</tspan></text> 112.158 + </g> 112.159 +</svg>
113.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 113.2 +++ b/1__Presentations/13__Jy_01__DSLDI/PRT__modules.svg Sat Aug 03 19:24:22 2013 -0700 113.3 @@ -0,0 +1,228 @@ 113.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 113.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 113.6 + 113.7 +<svg 113.8 + xmlns:dc="http://purl.org/dc/elements/1.1/" 113.9 + xmlns:cc="http://creativecommons.org/ns#" 113.10 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 113.11 + xmlns:svg="http://www.w3.org/2000/svg" 113.12 + xmlns="http://www.w3.org/2000/svg" 113.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 113.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 113.15 + width="744.09448819" 113.16 + height="1052.3622047" 113.17 + id="svg2" 113.18 + sodipodi:version="0.32" 113.19 + inkscape:version="0.48.2 r9819" 113.20 + sodipodi:docname="PRT__modules.svg" 113.21 + inkscape:output_extension="org.inkscape.output.svg.inkscape" 113.22 + version="1.1"> 113.23 + <defs 113.24 + id="defs4"> 113.25 + <marker 113.26 + inkscape:stockid="Arrow2Mend" 113.27 + orient="auto" 113.28 + refY="0.0" 113.29 + refX="0.0" 113.30 + id="Arrow2Mend" 113.31 + style="overflow:visible;"> 113.32 + <path 113.33 + id="path4008" 113.34 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 113.35 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 113.36 + transform="scale(0.6) rotate(180) translate(0,0)" /> 113.37 + </marker> 113.38 + <inkscape:perspective 113.39 + sodipodi:type="inkscape:persp3d" 113.40 + inkscape:vp_x="0 : 526.18109 : 1" 113.41 + inkscape:vp_y="0 : 1000 : 0" 113.42 + inkscape:vp_z="744.09448 : 526.18109 : 1" 113.43 + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" 113.44 + id="perspective10" /> 113.45 + <inkscape:perspective 113.46 + id="perspective12172" 113.47 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 113.48 + inkscape:vp_z="1 : 0.5 : 1" 113.49 + inkscape:vp_y="0 : 1000 : 0" 113.50 + inkscape:vp_x="0 : 0.5 : 1" 113.51 + sodipodi:type="inkscape:persp3d" /> 113.52 + <inkscape:perspective 113.53 + id="perspective12937" 113.54 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 113.55 + inkscape:vp_z="1 : 0.5 : 1" 113.56 + inkscape:vp_y="0 : 1000 : 0" 113.57 + inkscape:vp_x="0 : 0.5 : 1" 113.58 + sodipodi:type="inkscape:persp3d" /> 113.59 + </defs> 113.60 + <sodipodi:namedview 113.61 + id="base" 113.62 + pagecolor="#ffffff" 113.63 + bordercolor="#666666" 113.64 + borderopacity="1.0" 113.65 + gridtolerance="10000" 113.66 + guidetolerance="10" 113.67 + objecttolerance="10" 113.68 + inkscape:pageopacity="0.0" 113.69 + inkscape:pageshadow="2" 113.70 + inkscape:zoom="1.553811" 113.71 + inkscape:cx="381.80397" 113.72 + inkscape:cy="586.15006" 113.73 + inkscape:document-units="px" 113.74 + inkscape:current-layer="layer1" 113.75 + showgrid="false" 113.76 + inkscape:window-width="1600" 113.77 + inkscape:window-height="848" 113.78 + inkscape:window-x="-8" 113.79 + inkscape:window-y="-8" 113.80 + inkscape:window-maximized="1" /> 113.81 + <metadata 113.82 + id="metadata7"> 113.83 + <rdf:RDF> 113.84 + <cc:Work 113.85 + rdf:about=""> 113.86 + <dc:format>image/svg+xml</dc:format> 113.87 + <dc:type 113.88 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 113.89 + <dc:title></dc:title> 113.90 + </cc:Work> 113.91 + </rdf:RDF> 113.92 + </metadata> 113.93 + <g 113.94 + inkscape:label="Layer 1" 113.95 + inkscape:groupmode="layer" 113.96 + id="layer1"> 113.97 + <rect 113.98 + y="417.82236" 113.99 + x="127.32263" 113.100 + height="69.307014" 113.101 + width="137.26534" 113.102 + id="rect12977" 113.103 + style="fill:none;stroke:#800000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:4.32072507, 4.32072507;stroke-dashoffset:0" /> 113.104 + <text 113.105 + sodipodi:linespacing="100%" 113.106 + id="text12979" 113.107 + y="399.76575" 113.108 + x="195.84009" 113.109 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 113.110 + xml:space="preserve"><tspan 113.111 + y="399.76575" 113.112 + x="195.84009" 113.113 + sodipodi:role="line" 113.114 + id="tspan3291" 113.115 + style="font-size:18px;text-align:center;text-anchor:middle">runtime system</tspan></text> 113.116 + <text 113.117 + sodipodi:linespacing="100%" 113.118 + id="text12985" 113.119 + y="447.55026" 113.120 + x="163.00162" 113.121 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 113.122 + xml:space="preserve"><tspan 113.123 + y="447.55026" 113.124 + x="163.00162" 113.125 + sodipodi:role="line" 113.126 + id="tspan12989" 113.127 + style="text-align:center;text-anchor:middle">Construct</tspan><tspan 113.128 + id="tspan3149" 113.129 + y="457.55026" 113.130 + x="163.00162" 113.131 + sodipodi:role="line" 113.132 + style="text-align:center;text-anchor:middle">Behavior</tspan></text> 113.133 + <rect 113.134 + style="fill:none;stroke:#000000;stroke-width:1.08018136;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 113.135 + id="rect12971" 113.136 + width="131.7012" 113.137 + height="52.250008" 113.138 + x="130.30118" 113.139 + y="495.43658" /> 113.140 + <text 113.141 + xml:space="preserve" 113.142 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 113.143 + x="196.33487" 113.144 + y="515.20319" 113.145 + id="text12973" 113.146 + sodipodi:linespacing="100%"><tspan 113.147 + sodipodi:role="line" 113.148 + id="tspan12975" 113.149 + x="196.33487" 113.150 + y="515.20319" 113.151 + style="text-align:center;text-anchor:middle">Hardware Specific</tspan><tspan 113.152 + sodipodi:role="line" 113.153 + x="196.33487" 113.154 + y="525.20319" 113.155 + style="text-align:center;text-anchor:middle" 113.156 + id="tspan3155" /><tspan 113.157 + sodipodi:role="line" 113.158 + x="196.33487" 113.159 + y="536.76843" 113.160 + id="tspan3089" 113.161 + style="font-size:12px;text-align:center;text-anchor:middle">(Proto-Runtime)</tspan></text> 113.162 + <text 113.163 + sodipodi:linespacing="100%" 113.164 + id="text12985-7" 113.165 + y="447.52585" 113.166 + x="229.1481" 113.167 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 113.168 + xml:space="preserve"><tspan 113.169 + y="447.52585" 113.170 + x="229.1481" 113.171 + id="tspan12987-4" 113.172 + sodipodi:role="line" 113.173 + style="text-align:center;text-anchor:middle">Assignment</tspan><tspan 113.174 + id="tspan3151" 113.175 + y="457.52585" 113.176 + x="229.1481" 113.177 + sodipodi:role="line" 113.178 + style="text-align:center;text-anchor:middle">of Work</tspan><tspan 113.179 + id="tspan3153" 113.180 + y="467.52585" 113.181 + x="229.1481" 113.182 + sodipodi:role="line" 113.183 + style="text-align:center;text-anchor:middle">onto Cores</tspan></text> 113.184 + <text 113.185 + xml:space="preserve" 113.186 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 113.187 + x="193.25641" 113.188 + y="426.6572" 113.189 + id="text12985-8" 113.190 + sodipodi:linespacing="100%"><tspan 113.191 + style="text-align:center;text-anchor:middle;fill:#800000" 113.192 + id="tspan12989-4" 113.193 + sodipodi:role="line" 113.194 + x="193.25641" 113.195 + y="426.6572">Language Plug-in</tspan></text> 113.196 + <text 113.197 + xml:space="preserve" 113.198 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 113.199 + x="196.3902" 113.200 + y="493.19415" 113.201 + id="text12973-5" 113.202 + sodipodi:linespacing="100%"><tspan 113.203 + sodipodi:role="line" 113.204 + x="196.3902" 113.205 + y="493.19415" 113.206 + id="tspan3089-7" 113.207 + style="font-size:8px;text-align:center;text-anchor:middle">Hardware Abstraction Interface</tspan></text> 113.208 + <rect 113.209 + y="-495.43658" 113.210 + x="130.30118" 113.211 + height="9.1641436" 113.212 + width="131.7012" 113.213 + id="rect3204" 113.214 + style="fill:none;stroke:#000000;stroke-width:1.08018136;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 113.215 + transform="scale(1,-1)" /> 113.216 + <rect 113.217 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 113.218 + id="rect3217" 113.219 + width="65.276405" 113.220 + height="52.250008" 113.221 + x="130.40247" 113.222 + y="433.58255" /> 113.223 + <rect 113.224 + y="433.58255" 113.225 + x="196.40247" 113.226 + height="52.250008" 113.227 + width="65.276405" 113.228 + id="rect3219" 113.229 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 113.230 + </g> 113.231 +</svg>
114.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 114.2 +++ b/1__Presentations/13__Jy_01__DSLDI/PR__timeline_dual.svg Sat Aug 03 19:24:22 2013 -0700 114.3 @@ -0,0 +1,446 @@ 114.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 114.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 114.6 + 114.7 +<svg 114.8 + xmlns:dc="http://purl.org/dc/elements/1.1/" 114.9 + xmlns:cc="http://creativecommons.org/ns#" 114.10 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 114.11 + xmlns:svg="http://www.w3.org/2000/svg" 114.12 + xmlns="http://www.w3.org/2000/svg" 114.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 114.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 114.15 + width="744.09448819" 114.16 + height="1052.3622047" 114.17 + id="svg2" 114.18 + sodipodi:version="0.32" 114.19 + inkscape:version="0.48.2 r9819" 114.20 + sodipodi:docname="PR__timeline_dual.svg" 114.21 + inkscape:output_extension="org.inkscape.output.svg.inkscape" 114.22 + version="1.1"> 114.23 + <defs 114.24 + id="defs4"> 114.25 + <marker 114.26 + inkscape:stockid="Arrow2Mend" 114.27 + orient="auto" 114.28 + refY="0.0" 114.29 + refX="0.0" 114.30 + id="Arrow2Mend" 114.31 + style="overflow:visible;"> 114.32 + <path 114.33 + id="path4008" 114.34 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 114.35 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 114.36 + transform="scale(0.6) rotate(180) translate(0,0)" /> 114.37 + </marker> 114.38 + <inkscape:perspective 114.39 + sodipodi:type="inkscape:persp3d" 114.40 + inkscape:vp_x="0 : 526.18109 : 1" 114.41 + inkscape:vp_y="0 : 1000 : 0" 114.42 + inkscape:vp_z="744.09448 : 526.18109 : 1" 114.43 + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" 114.44 + id="perspective10" /> 114.45 + <inkscape:perspective 114.46 + id="perspective11923" 114.47 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 114.48 + inkscape:vp_z="1 : 0.5 : 1" 114.49 + inkscape:vp_y="0 : 1000 : 0" 114.50 + inkscape:vp_x="0 : 0.5 : 1" 114.51 + sodipodi:type="inkscape:persp3d" /> 114.52 + </defs> 114.53 + <sodipodi:namedview 114.54 + id="base" 114.55 + pagecolor="#ffffff" 114.56 + bordercolor="#666666" 114.57 + borderopacity="1.0" 114.58 + gridtolerance="10000" 114.59 + guidetolerance="10" 114.60 + objecttolerance="10" 114.61 + inkscape:pageopacity="0.0" 114.62 + inkscape:pageshadow="2" 114.63 + inkscape:zoom="1.3364318" 114.64 + inkscape:cx="331.64634" 114.65 + inkscape:cy="652.12596" 114.66 + inkscape:document-units="px" 114.67 + inkscape:current-layer="layer1" 114.68 + showgrid="false" 114.69 + inkscape:window-width="1317" 114.70 + inkscape:window-height="878" 114.71 + inkscape:window-x="7" 114.72 + inkscape:window-y="1" 114.73 + inkscape:window-maximized="0" /> 114.74 + <metadata 114.75 + id="metadata7"> 114.76 + <rdf:RDF> 114.77 + <cc:Work 114.78 + rdf:about=""> 114.79 + <dc:format>image/svg+xml</dc:format> 114.80 + <dc:type 114.81 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 114.82 + <dc:title></dc:title> 114.83 + </cc:Work> 114.84 + </rdf:RDF> 114.85 + </metadata> 114.86 + <g 114.87 + inkscape:label="Layer 1" 114.88 + inkscape:groupmode="layer" 114.89 + id="layer1"> 114.90 + <path 114.91 + id="path7353" 114.92 + d="m 196.98465,281.37498 c 69.82336,0 69.82336,0 69.82336,0" 114.93 + style="fill:#800000;stroke:#800000;stroke-width:1.80000007;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 114.94 + inkscape:connector-curvature="0" /> 114.95 + <g 114.96 + transform="translate(-32,-120)" 114.97 + id="g7355" 114.98 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none"> 114.99 + <path 114.100 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" 114.101 + d="m 298.82881,392.82004 c 0,19.38279 0,19.38279 0,19.38279" 114.102 + id="path7357" 114.103 + inkscape:connector-curvature="0" /> 114.104 + <text 114.105 + sodipodi:linespacing="100%" 114.106 + id="text7359" 114.107 + y="376.52615" 114.108 + x="298.7023" 114.109 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 114.110 + xml:space="preserve"><tspan 114.111 + y="376.52615" 114.112 + x="298.7023" 114.113 + id="tspan7361" 114.114 + sodipodi:role="line" 114.115 + style="font-size:10px;text-align:center;text-anchor:middle">Suspend</tspan><tspan 114.116 + y="385.74353" 114.117 + x="298.7023" 114.118 + sodipodi:role="line" 114.119 + id="tspan7363" 114.120 + style="font-size:9px;text-align:center;text-anchor:middle">(Point 2.S)</tspan></text> 114.121 + </g> 114.122 + <g 114.123 + transform="translate(-60,-120)" 114.124 + id="g7365" 114.125 + style="stroke-width:1.8;stroke-miterlimit:4;stroke-dasharray:none"> 114.126 + <path 114.127 + style="fill:none;stroke:#000000;stroke-width:1.8;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" 114.128 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 114.129 + id="path7367" 114.130 + inkscape:connector-curvature="0" /> 114.131 + <text 114.132 + sodipodi:linespacing="100%" 114.133 + id="text7369" 114.134 + y="376.52615" 114.135 + x="378.7023" 114.136 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 114.137 + xml:space="preserve"><tspan 114.138 + y="376.52615" 114.139 + x="380.20621" 114.140 + id="tspan7371" 114.141 + sodipodi:role="line" 114.142 + style="font-size:9px;text-align:center;text-anchor:middle"><tspan 114.143 + style="font-size:10px" 114.144 + id="tspan8087">Resume </tspan></tspan><tspan 114.145 + y="385.74353" 114.146 + x="378.7023" 114.147 + sodipodi:role="line" 114.148 + id="tspan7373" 114.149 + style="font-size:9px;text-align:center;text-anchor:middle">(Point 2.R)</tspan></text> 114.150 + </g> 114.151 + <text 114.152 + sodipodi:linespacing="100%" 114.153 + id="text7375" 114.154 + y="285.27441" 114.155 + x="352.7023" 114.156 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 114.157 + xml:space="preserve"><tspan 114.158 + y="285.27441" 114.159 + x="352.7023" 114.160 + sodipodi:role="line" 114.161 + id="tspan7379">Timeline B</tspan></text> 114.162 + <path 114.163 + inkscape:connector-curvature="0" 114.164 + style="fill:none;stroke:#800000;stroke-width:1.80000000000000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none" 114.165 + d="m 320.08408,281.37498 c 27.45405,0 27.45405,0 27.45405,0" 114.166 + id="path7387" /> 114.167 + <path 114.168 + id="path8089" 114.169 + d="m 195.41471,317.37498 c 151.68424,0 151.68424,0 151.68424,0" 114.170 + style="fill:#000000;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 114.171 + inkscape:connector-curvature="0" /> 114.172 + <text 114.173 + xml:space="preserve" 114.174 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 114.175 + x="352.7023" 114.176 + y="320.02267" 114.177 + id="text8091" 114.178 + sodipodi:linespacing="100%"><tspan 114.179 + id="tspan8093" 114.180 + sodipodi:role="line" 114.181 + x="352.7023" 114.182 + y="320.02267">Physical time</tspan></text> 114.183 + <path 114.184 + inkscape:connector-curvature="0" 114.185 + style="fill:none;stroke:#422fac;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 114.186 + d="m 195.92204,221.37498 c 33.06652,0 33.06652,0 33.06652,0" 114.187 + id="path8095" /> 114.188 + <g 114.189 + id="g8097" 114.190 + transform="translate(-70,-180)" 114.191 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none"> 114.192 + <path 114.193 + inkscape:connector-curvature="0" 114.194 + id="path8099" 114.195 + d="m 298.82881,392.82004 c 0,19.38279 0,19.38279 0,19.38279" 114.196 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> 114.197 + <text 114.198 + xml:space="preserve" 114.199 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 114.200 + x="298.7023" 114.201 + y="376.52615" 114.202 + id="text8101" 114.203 + sodipodi:linespacing="100%"><tspan 114.204 + style="font-size:10px;text-align:center;text-anchor:middle" 114.205 + sodipodi:role="line" 114.206 + id="tspan8103" 114.207 + x="298.7023" 114.208 + y="376.52615">Suspend</tspan><tspan 114.209 + style="font-size:9px;text-align:center;text-anchor:middle" 114.210 + id="tspan8105" 114.211 + sodipodi:role="line" 114.212 + x="298.7023" 114.213 + y="385.74353">(Point 1.S)</tspan></text> 114.214 + </g> 114.215 + <g 114.216 + id="g8107" 114.217 + transform="translate(-60,-180)" 114.218 + style="stroke-width:1.8;stroke-miterlimit:4;stroke-dasharray:none"> 114.219 + <path 114.220 + inkscape:connector-curvature="0" 114.221 + id="path8109" 114.222 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 114.223 + style="fill:none;stroke:#000000;stroke-width:1.8;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" /> 114.224 + <text 114.225 + xml:space="preserve" 114.226 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 114.227 + x="378.7023" 114.228 + y="376.52615" 114.229 + id="text8111" 114.230 + sodipodi:linespacing="100%"><tspan 114.231 + style="font-size:9px;text-align:center;text-anchor:middle" 114.232 + sodipodi:role="line" 114.233 + id="tspan8113" 114.234 + x="380.20621" 114.235 + y="376.52615"><tspan 114.236 + id="tspan8115" 114.237 + style="font-size:10px">Resume </tspan></tspan><tspan 114.238 + style="font-size:9px;text-align:center;text-anchor:middle" 114.239 + id="tspan8117" 114.240 + sodipodi:role="line" 114.241 + x="378.7023" 114.242 + y="385.74353">(Point 1.R)</tspan></text> 114.243 + </g> 114.244 + <text 114.245 + xml:space="preserve" 114.246 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 114.247 + x="352.7023" 114.248 + y="225.27441" 114.249 + id="text8119" 114.250 + sodipodi:linespacing="100%"><tspan 114.251 + id="tspan8121" 114.252 + sodipodi:role="line" 114.253 + x="352.7023" 114.254 + y="225.27441">Timeline A</tspan></text> 114.255 + <path 114.256 + id="path8123" 114.257 + d="m 320.08408,221.37498 c 27.45405,0 27.45405,0 27.45405,0" 114.258 + style="fill:none;stroke:#422fac;stroke-width:1.8;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none" 114.259 + inkscape:connector-curvature="0" /> 114.260 + <path 114.261 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999998, 2.99999998;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 114.262 + d="m 292.57011,280.15667 c 1.60737,-35.06333 -0.1867,-13.69014 2.41106,-33.11537 1.74808,-13.07166 19.28851,-14.93437 19.28851,-14.93437" 114.263 + id="path8125" 114.264 + inkscape:connector-curvature="0" 114.265 + sodipodi:nodetypes="csc" /> 114.266 + <path 114.267 + sodipodi:nodetypes="csc" 114.268 + inkscape:connector-curvature="0" 114.269 + id="path5550" 114.270 + d="m 239.09804,401.95213 c 23.67157,4.34238 9.24233,-0.50438 22.35648,6.51358 8.8248,4.72253 10.08233,52.10878 10.08233,52.10878" 114.271 + style="fill:none;stroke:#000000;stroke-width:0.99999982;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.00000004, 3.00000004;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 114.272 + <path 114.273 + inkscape:connector-curvature="0" 114.274 + style="fill:#800000;stroke:#800000;stroke-width:1.80000007;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 114.275 + d="m 196.98465,461.37498 c 69.82336,0 69.82336,0 69.82336,0" 114.276 + id="path5552" /> 114.277 + <g 114.278 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 114.279 + id="g5554" 114.280 + transform="translate(-32,60)"> 114.281 + <path 114.282 + inkscape:connector-curvature="0" 114.283 + id="path5556" 114.284 + d="m 298.82881,392.82004 c 0,19.38279 0,19.38279 0,19.38279" 114.285 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> 114.286 + <text 114.287 + xml:space="preserve" 114.288 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 114.289 + x="298.7023" 114.290 + y="376.52615" 114.291 + id="text5558" 114.292 + sodipodi:linespacing="100%"><tspan 114.293 + style="font-size:10px;text-align:center;text-anchor:middle" 114.294 + sodipodi:role="line" 114.295 + id="tspan5560" 114.296 + x="298.7023" 114.297 + y="376.52615">Suspend</tspan><tspan 114.298 + style="font-size:9px;text-align:center;text-anchor:middle" 114.299 + id="tspan5562" 114.300 + sodipodi:role="line" 114.301 + x="298.7023" 114.302 + y="385.74353">(Point 2.S)</tspan></text> 114.303 + </g> 114.304 + <g 114.305 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 114.306 + id="g5564" 114.307 + transform="translate(-60,60)"> 114.308 + <path 114.309 + inkscape:connector-curvature="0" 114.310 + id="path5566" 114.311 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 114.312 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> 114.313 + <text 114.314 + xml:space="preserve" 114.315 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 114.316 + x="378.7023" 114.317 + y="376.52615" 114.318 + id="text5568" 114.319 + sodipodi:linespacing="100%"><tspan 114.320 + style="font-size:9px;text-align:center;text-anchor:middle" 114.321 + sodipodi:role="line" 114.322 + id="tspan5570" 114.323 + x="380.20621" 114.324 + y="376.52615"><tspan 114.325 + id="tspan5572" 114.326 + style="font-size:10px">Resume </tspan></tspan><tspan 114.327 + style="font-size:9px;text-align:center;text-anchor:middle" 114.328 + id="tspan5574" 114.329 + sodipodi:role="line" 114.330 + x="378.7023" 114.331 + y="385.74353">(Point 2.R)</tspan></text> 114.332 + </g> 114.333 + <text 114.334 + xml:space="preserve" 114.335 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#800000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 114.336 + x="352.7023" 114.337 + y="465.27441" 114.338 + id="text5576" 114.339 + sodipodi:linespacing="100%"><tspan 114.340 + id="tspan5578" 114.341 + sodipodi:role="line" 114.342 + x="352.7023" 114.343 + y="465.27441">Timeline B</tspan></text> 114.344 + <path 114.345 + id="path5580" 114.346 + d="m 320.08408,461.37498 c 27.45405,0 27.45405,0 27.45405,0" 114.347 + style="fill:none;stroke:#800000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 114.348 + inkscape:connector-curvature="0" /> 114.349 + <path 114.350 + inkscape:connector-curvature="0" 114.351 + style="fill:#000000;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 114.352 + d="m 195.41471,497.37498 c 151.68424,0 151.68424,0 151.68424,0" 114.353 + id="path5582" /> 114.354 + <text 114.355 + sodipodi:linespacing="100%" 114.356 + id="text5584" 114.357 + y="500.02267" 114.358 + x="352.7023" 114.359 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 114.360 + xml:space="preserve"><tspan 114.361 + y="500.02267" 114.362 + x="352.7023" 114.363 + sodipodi:role="line" 114.364 + id="tspan5586">Physical time</tspan></text> 114.365 + <path 114.366 + id="path5588" 114.367 + d="m 195.92204,401.37498 c 33.06652,0 33.06652,0 33.06652,0" 114.368 + style="fill:none;stroke:#422fac;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 114.369 + inkscape:connector-curvature="0" /> 114.370 + <g 114.371 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 114.372 + transform="translate(-70,0)" 114.373 + id="g5590"> 114.374 + <path 114.375 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" 114.376 + d="m 298.82881,392.82004 c 0,19.38279 0,19.38279 0,19.38279" 114.377 + id="path5592" 114.378 + inkscape:connector-curvature="0" /> 114.379 + <text 114.380 + sodipodi:linespacing="100%" 114.381 + id="text5594" 114.382 + y="376.52615" 114.383 + x="298.7023" 114.384 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 114.385 + xml:space="preserve"><tspan 114.386 + y="376.52615" 114.387 + x="298.7023" 114.388 + id="tspan5596" 114.389 + sodipodi:role="line" 114.390 + style="font-size:10px;text-align:center;text-anchor:middle">Suspend</tspan><tspan 114.391 + y="385.74353" 114.392 + x="298.7023" 114.393 + sodipodi:role="line" 114.394 + id="tspan5598" 114.395 + style="font-size:9px;text-align:center;text-anchor:middle">(Point 1.S)</tspan></text> 114.396 + </g> 114.397 + <g 114.398 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 114.399 + transform="translate(-60,0)" 114.400 + id="g5600"> 114.401 + <path 114.402 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" 114.403 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 114.404 + id="path5602" 114.405 + inkscape:connector-curvature="0" /> 114.406 + <text 114.407 + sodipodi:linespacing="100%" 114.408 + id="text5604" 114.409 + y="376.52615" 114.410 + x="378.7023" 114.411 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 114.412 + xml:space="preserve"><tspan 114.413 + y="376.52615" 114.414 + x="380.20621" 114.415 + id="tspan5606" 114.416 + sodipodi:role="line" 114.417 + style="font-size:9px;text-align:center;text-anchor:middle"><tspan 114.418 + style="font-size:10px" 114.419 + id="tspan5608">Resume </tspan></tspan><tspan 114.420 + y="385.74353" 114.421 + x="378.7023" 114.422 + sodipodi:role="line" 114.423 + id="tspan5610" 114.424 + style="font-size:9px;text-align:center;text-anchor:middle">(Point 1.R)</tspan></text> 114.425 + </g> 114.426 + <text 114.427 + sodipodi:linespacing="100%" 114.428 + id="text5612" 114.429 + y="405.27441" 114.430 + x="352.7023" 114.431 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 114.432 + xml:space="preserve"><tspan 114.433 + y="405.27441" 114.434 + x="352.7023" 114.435 + sodipodi:role="line" 114.436 + id="tspan5614">Timeline A</tspan></text> 114.437 + <path 114.438 + inkscape:connector-curvature="0" 114.439 + style="fill:none;stroke:#422fac;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 114.440 + d="m 320.08408,401.37498 c 27.45405,0 27.45405,0 27.45405,0" 114.441 + id="path5616" /> 114.442 + <path 114.443 + sodipodi:nodetypes="csc" 114.444 + inkscape:connector-curvature="0" 114.445 + id="path5618" 114.446 + d="m 292.57011,460.15667 c 1.60737,-35.06333 -0.1867,-13.69014 2.41106,-33.11537 1.74808,-13.07166 19.28851,-14.93437 19.28851,-14.93437" 114.447 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.99999998, 2.99999998;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" /> 114.448 + </g> 114.449 +</svg>
115.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 115.2 +++ b/1__Presentations/13__Jy_01__DSLDI/PR__timeline_single.svg Sat Aug 03 19:24:22 2013 -0700 115.3 @@ -0,0 +1,306 @@ 115.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 115.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 115.6 + 115.7 +<svg 115.8 + xmlns:dc="http://purl.org/dc/elements/1.1/" 115.9 + xmlns:cc="http://creativecommons.org/ns#" 115.10 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 115.11 + xmlns:svg="http://www.w3.org/2000/svg" 115.12 + xmlns="http://www.w3.org/2000/svg" 115.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 115.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 115.15 + width="744.09448819" 115.16 + height="1052.3622047" 115.17 + id="svg2" 115.18 + sodipodi:version="0.32" 115.19 + inkscape:version="0.48.2 r9819" 115.20 + sodipodi:docname="PR__timeline_single.svg" 115.21 + inkscape:output_extension="org.inkscape.output.svg.inkscape" 115.22 + version="1.1"> 115.23 + <defs 115.24 + id="defs4"> 115.25 + <marker 115.26 + inkscape:stockid="Arrow2Mend" 115.27 + orient="auto" 115.28 + refY="0.0" 115.29 + refX="0.0" 115.30 + id="Arrow2Mend" 115.31 + style="overflow:visible;"> 115.32 + <path 115.33 + id="path4008" 115.34 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 115.35 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 115.36 + transform="scale(0.6) rotate(180) translate(0,0)" /> 115.37 + </marker> 115.38 + <inkscape:perspective 115.39 + sodipodi:type="inkscape:persp3d" 115.40 + inkscape:vp_x="0 : 526.18109 : 1" 115.41 + inkscape:vp_y="0 : 1000 : 0" 115.42 + inkscape:vp_z="744.09448 : 526.18109 : 1" 115.43 + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" 115.44 + id="perspective10" /> 115.45 + <inkscape:perspective 115.46 + id="perspective11923" 115.47 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 115.48 + inkscape:vp_z="1 : 0.5 : 1" 115.49 + inkscape:vp_y="0 : 1000 : 0" 115.50 + inkscape:vp_x="0 : 0.5 : 1" 115.51 + sodipodi:type="inkscape:persp3d" /> 115.52 + </defs> 115.53 + <sodipodi:namedview 115.54 + id="base" 115.55 + pagecolor="#ffffff" 115.56 + bordercolor="#666666" 115.57 + borderopacity="1.0" 115.58 + gridtolerance="10000" 115.59 + guidetolerance="10" 115.60 + objecttolerance="10" 115.61 + inkscape:pageopacity="0.0" 115.62 + inkscape:pageshadow="2" 115.63 + inkscape:zoom="3.5576235" 115.64 + inkscape:cx="365.33771" 115.65 + inkscape:cy="706.58767" 115.66 + inkscape:document-units="px" 115.67 + inkscape:current-layer="layer1" 115.68 + showgrid="false" 115.69 + inkscape:window-width="1600" 115.70 + inkscape:window-height="848" 115.71 + inkscape:window-x="-8" 115.72 + inkscape:window-y="-8" 115.73 + inkscape:window-maximized="0" /> 115.74 + <metadata 115.75 + id="metadata7"> 115.76 + <rdf:RDF> 115.77 + <cc:Work 115.78 + rdf:about=""> 115.79 + <dc:format>image/svg+xml</dc:format> 115.80 + <dc:type 115.81 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 115.82 + <dc:title></dc:title> 115.83 + </cc:Work> 115.84 + </rdf:RDF> 115.85 + </metadata> 115.86 + <g 115.87 + inkscape:label="Layer 1" 115.88 + inkscape:groupmode="layer" 115.89 + id="layer1"> 115.90 + <path 115.91 + id="path8089" 115.92 + d="m 195.41471,257.37498 c 151.68424,0 151.68424,0 151.68424,0" 115.93 + style="fill:#000000;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 115.94 + inkscape:connector-curvature="0" /> 115.95 + <text 115.96 + xml:space="preserve" 115.97 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 115.98 + x="352.7023" 115.99 + y="260.77094" 115.100 + id="text8091" 115.101 + sodipodi:linespacing="100%"><tspan 115.102 + id="tspan8093" 115.103 + sodipodi:role="line" 115.104 + x="352.7023" 115.105 + y="260.77094">Physical time</tspan></text> 115.106 + <path 115.107 + inkscape:connector-curvature="0" 115.108 + style="fill:none;stroke:#422fac;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 115.109 + d="m 195.92204,221.37498 c 33.06652,0 33.06652,0 33.06652,0" 115.110 + id="path8095" /> 115.111 + <g 115.112 + id="g8097" 115.113 + transform="translate(-70,-180)" 115.114 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none"> 115.115 + <path 115.116 + inkscape:connector-curvature="0" 115.117 + id="path8099" 115.118 + d="m 298.82881,392.82004 c 0,19.38279 0,19.38279 0,19.38279" 115.119 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> 115.120 + <text 115.121 + xml:space="preserve" 115.122 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 115.123 + x="298.7023" 115.124 + y="376.52615" 115.125 + id="text8101" 115.126 + sodipodi:linespacing="100%"><tspan 115.127 + style="font-size:10px;text-align:center;text-anchor:middle" 115.128 + sodipodi:role="line" 115.129 + id="tspan8103" 115.130 + x="298.7023" 115.131 + y="376.52615">Suspend</tspan><tspan 115.132 + style="font-size:9px;text-align:center;text-anchor:middle" 115.133 + id="tspan8105" 115.134 + sodipodi:role="line" 115.135 + x="298.7023" 115.136 + y="385.74353">(Point 1.S)</tspan></text> 115.137 + </g> 115.138 + <g 115.139 + id="g8107" 115.140 + transform="translate(-60,-180)" 115.141 + style="stroke-width:1.8;stroke-miterlimit:4;stroke-dasharray:none"> 115.142 + <path 115.143 + inkscape:connector-curvature="0" 115.144 + id="path8109" 115.145 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 115.146 + style="fill:none;stroke:#000000;stroke-width:1.8;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" /> 115.147 + <text 115.148 + xml:space="preserve" 115.149 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS;stroke-width:1.8;stroke-miterlimit:4;stroke-dasharray:none" 115.150 + x="378.7023" 115.151 + y="376.52615" 115.152 + id="text8111" 115.153 + sodipodi:linespacing="100%"><tspan 115.154 + style="font-size:9px;text-align:center;text-anchor:middle;stroke-width:1.8;stroke-miterlimit:4;stroke-dasharray:none" 115.155 + sodipodi:role="line" 115.156 + id="tspan8113" 115.157 + x="380.20621" 115.158 + y="376.52615"><tspan 115.159 + id="tspan8115" 115.160 + style="font-size:10px;stroke-width:1.8;stroke-miterlimit:4;stroke-dasharray:none">Resume </tspan></tspan><tspan 115.161 + style="font-size:9px;text-align:center;text-anchor:middle;stroke-width:1.8;stroke-miterlimit:4;stroke-dasharray:none" 115.162 + id="tspan8117" 115.163 + sodipodi:role="line" 115.164 + x="378.7023" 115.165 + y="385.74353">(Point 1.R)</tspan></text> 115.166 + </g> 115.167 + <text 115.168 + xml:space="preserve" 115.169 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 115.170 + x="352.7023" 115.171 + y="224.52615" 115.172 + id="text8119" 115.173 + sodipodi:linespacing="100%"><tspan 115.174 + id="tspan8121" 115.175 + sodipodi:role="line" 115.176 + x="352.7023" 115.177 + y="224.52615">Timeline A</tspan></text> 115.178 + <path 115.179 + id="path8123" 115.180 + d="m 320.08408,221.37498 c 27.45405,0 27.45405,0 27.45405,0" 115.181 + style="fill:none;stroke:#422fac;stroke-width:1.8;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none" 115.182 + inkscape:connector-curvature="0" /> 115.183 + <path 115.184 + inkscape:connector-curvature="0" 115.185 + style="fill:#000000;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 115.186 + d="m 195.41471,377.37498 c 151.68424,0 151.68424,0 151.68424,0" 115.187 + id="path5836" /> 115.188 + <text 115.189 + sodipodi:linespacing="100%" 115.190 + id="text5838" 115.191 + y="380.77094" 115.192 + x="352.7023" 115.193 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 115.194 + xml:space="preserve"><tspan 115.195 + y="380.77094" 115.196 + x="352.7023" 115.197 + sodipodi:role="line" 115.198 + id="tspan5840">Physical time</tspan></text> 115.199 + <path 115.200 + id="path5842" 115.201 + d="m 195.92204,341.37498 c 33.06652,0 33.06652,0 33.06652,0" 115.202 + style="fill:none;stroke:#422fac;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" 115.203 + inkscape:connector-curvature="0" /> 115.204 + <g 115.205 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 115.206 + transform="translate(-70,-60)" 115.207 + id="g5844"> 115.208 + <path 115.209 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" 115.210 + d="m 298.82881,392.82004 c 0,19.38279 0,19.38279 0,19.38279" 115.211 + id="path5846" 115.212 + inkscape:connector-curvature="0" /> 115.213 + <text 115.214 + sodipodi:linespacing="100%" 115.215 + id="text5848" 115.216 + y="376.52615" 115.217 + x="298.7023" 115.218 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 115.219 + xml:space="preserve"><tspan 115.220 + y="376.52615" 115.221 + x="298.7023" 115.222 + id="tspan5850" 115.223 + sodipodi:role="line" 115.224 + style="font-size:10px;text-align:center;text-anchor:middle">Suspend</tspan><tspan 115.225 + y="385.74353" 115.226 + x="298.7023" 115.227 + sodipodi:role="line" 115.228 + id="tspan5852" 115.229 + style="font-size:9px;text-align:center;text-anchor:middle">(Point 1.S)</tspan></text> 115.230 + </g> 115.231 + <g 115.232 + style="stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none" 115.233 + transform="translate(-60,-60)" 115.234 + id="g5854"> 115.235 + <path 115.236 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" 115.237 + d="m 378.82881,392.77746 c 0,19.15152 0,19.15152 0,19.15152" 115.238 + id="path5856" 115.239 + inkscape:connector-curvature="0" /> 115.240 + <text 115.241 + sodipodi:linespacing="100%" 115.242 + id="text5858" 115.243 + y="376.52615" 115.244 + x="378.7023" 115.245 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 115.246 + xml:space="preserve"><tspan 115.247 + y="376.52615" 115.248 + x="380.20621" 115.249 + id="tspan5860" 115.250 + sodipodi:role="line" 115.251 + style="font-size:9px;text-align:center;text-anchor:middle"><tspan 115.252 + style="font-size:10px" 115.253 + id="tspan5862">Resume </tspan></tspan><tspan 115.254 + y="385.74353" 115.255 + x="378.7023" 115.256 + sodipodi:role="line" 115.257 + id="tspan5864" 115.258 + style="font-size:9px;text-align:center;text-anchor:middle">(Point 1.R)</tspan></text> 115.259 + </g> 115.260 + <text 115.261 + sodipodi:linespacing="100%" 115.262 + id="text5866" 115.263 + y="344.52615" 115.264 + x="352.7023" 115.265 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 115.266 + xml:space="preserve"><tspan 115.267 + y="344.52615" 115.268 + x="352.7023" 115.269 + sodipodi:role="line" 115.270 + id="tspan5868">Timeline A</tspan></text> 115.271 + <path 115.272 + inkscape:connector-curvature="0" 115.273 + style="fill:none;stroke:#422fac;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" 115.274 + d="m 320.08408,341.37498 c 27.45405,0 27.45405,0 27.45405,0" 115.275 + id="path5870" /> 115.276 + <path 115.277 + style="fill:none;stroke:#000000;stroke-width:1.8;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.6,1.8;stroke-dashoffset:0" 115.278 + d="m 248.81439,338.09818 c 0,9.22856 0,9.22856 0,9.22856" 115.279 + id="path5846-1" 115.280 + inkscape:connector-curvature="0" /> 115.281 + <path 115.282 + inkscape:connector-curvature="0" 115.283 + id="path6664" 115.284 + d="m 266.81439,338.09818 c 0,9.22856 0,9.22856 0,9.22856" 115.285 + style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.6, 1.8;stroke-dashoffset:0" /> 115.286 + <path 115.287 + inkscape:connector-curvature="0" 115.288 + style="fill:none;stroke:#999999;stroke-width:1.79999994999999990;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none;opacity:0.53539822999999997" 115.289 + d="m 249.92204,341.37498 c 16.089,0 16.089,0 16.089,0" 115.290 + id="path6666" /> 115.291 + <text 115.292 + xml:space="preserve" 115.293 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 115.294 + x="244.7023" 115.295 + y="356.52615" 115.296 + id="text6668" 115.297 + sodipodi:linespacing="100%"><tspan 115.298 + sodipodi:role="line" 115.299 + x="244.7023" 115.300 + y="356.52615" 115.301 + style="font-size:8px;fill:#999999" 115.302 + id="tspan6674">Hidden</tspan><tspan 115.303 + sodipodi:role="line" 115.304 + x="244.7023" 115.305 + y="364.52615" 115.306 + id="tspan6672" 115.307 + style="font-size:8px;fill:#999999">meta-comm</tspan></text> 115.308 + </g> 115.309 +</svg>
116.1 Binary file 1__Presentations/13__Jy_01__DSLDI/ProtoRuntime_expl.odp has changed
117.1 Binary file 1__Presentations/13__Jy_01__DSLDI/ProtoRuntime_expl.pdf has changed
118.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 118.2 +++ b/1__Presentations/13__Jy_01__DSLDI/software_stack_PRT.svg Sat Aug 03 19:24:22 2013 -0700 118.3 @@ -0,0 +1,2209 @@ 118.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 118.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 118.6 + 118.7 +<svg 118.8 + xmlns:dc="http://purl.org/dc/elements/1.1/" 118.9 + xmlns:cc="http://creativecommons.org/ns#" 118.10 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 118.11 + xmlns:svg="http://www.w3.org/2000/svg" 118.12 + xmlns="http://www.w3.org/2000/svg" 118.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 118.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 118.15 + width="744.09448819" 118.16 + height="1052.3622047" 118.17 + id="svg2" 118.18 + version="1.1" 118.19 + inkscape:version="0.48.2 r9819" 118.20 + sodipodi:docname="software_stack_PRT.svg"> 118.21 + <defs 118.22 + id="defs4"> 118.23 + <marker 118.24 + inkscape:stockid="Arrow2Mend" 118.25 + orient="auto" 118.26 + refY="0.0" 118.27 + refX="0.0" 118.28 + id="Arrow2Mend" 118.29 + style="overflow:visible;"> 118.30 + <path 118.31 + id="path12287" 118.32 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 118.33 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 118.34 + transform="scale(0.6) rotate(180) translate(0,0)" /> 118.35 + </marker> 118.36 + <marker 118.37 + inkscape:stockid="Arrow1Mend" 118.38 + orient="auto" 118.39 + refY="0.0" 118.40 + refX="0.0" 118.41 + id="Arrow1Mend" 118.42 + style="overflow:visible;"> 118.43 + <path 118.44 + id="path12269" 118.45 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 118.46 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" 118.47 + transform="scale(0.4) rotate(180) translate(10,0)" /> 118.48 + </marker> 118.49 + </defs> 118.50 + <sodipodi:namedview 118.51 + id="base" 118.52 + pagecolor="#ffffff" 118.53 + bordercolor="#666666" 118.54 + borderopacity="1.0" 118.55 + inkscape:pageopacity="0.0" 118.56 + inkscape:pageshadow="2" 118.57 + inkscape:zoom="1.89" 118.58 + inkscape:cx="374.11139" 118.59 + inkscape:cy="538.12457" 118.60 + inkscape:document-units="px" 118.61 + inkscape:current-layer="layer1" 118.62 + showgrid="false" 118.63 + inkscape:window-width="1600" 118.64 + inkscape:window-height="848" 118.65 + inkscape:window-x="-8" 118.66 + inkscape:window-y="-8" 118.67 + inkscape:window-maximized="1" 118.68 + showguides="true" 118.69 + inkscape:guide-bbox="true" /> 118.70 + <metadata 118.71 + id="metadata7"> 118.72 + <rdf:RDF> 118.73 + <cc:Work 118.74 + rdf:about=""> 118.75 + <dc:format>image/svg+xml</dc:format> 118.76 + <dc:type 118.77 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 118.78 + <dc:title></dc:title> 118.79 + </cc:Work> 118.80 + </rdf:RDF> 118.81 + </metadata> 118.82 + <g 118.83 + inkscape:label="Layer 1" 118.84 + inkscape:groupmode="layer" 118.85 + id="layer1"> 118.86 + <path 118.87 + inkscape:connector-curvature="0" 118.88 + id="5" 118.89 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.90 + d="m 312.22417,590.2936 0,0 c 0,-0.0904 0.0242,-0.16282 0.0727,-0.2352 0.0485,-0.0723 0.12123,-0.1267 0.21821,-0.16284 0.097,-0.0362 0.19399,-0.0543 0.31522,-0.0543 l 0,0 0,0.45232 -0.60618,0 z" /> 118.91 + <path 118.92 + inkscape:connector-curvature="0" 118.93 + id="6" 118.94 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.95 + d="m 302.83035,589.84127 59.40509,0 0,0.45233 0,0.47042 -59.40509,0 0,-0.47042 0,-0.45233 z" /> 118.96 + <path 118.97 + inkscape:connector-curvature="0" 118.98 + id="7" 118.99 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.100 + d="m 362.23544,589.84127 0,0 c 0.12124,0 0.21823,0.0181 0.31521,0.0544 0.097,0.0362 0.16973,0.0905 0.21823,0.16284 0.0485,0.0723 0.097,0.14474 0.097,0.2352 l 0,0 0,0 -0.63042,0 0,-0.45233 z" /> 118.101 + <path 118.102 + inkscape:connector-curvature="0" 118.103 + id="8" 118.104 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.105 + d="m 362.86586,590.2936 0,23.26755 -0.63042,0 -0.58192,0 0,-23.26755 0.58192,0 0.63042,0 z" /> 118.106 + <path 118.107 + inkscape:connector-curvature="0" 118.108 + id="9" 118.109 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.110 + d="m 362.86586,613.56115 0,0 c 0,0.0905 -0.0485,0.16282 -0.097,0.23519 -0.0485,0.0723 -0.12123,0.1267 -0.21823,0.16285 -0.097,0.0362 -0.19397,0.0723 -0.31521,0.0723 l 0,0 0,-0.47041 0.63042,0 z" /> 118.111 + <path 118.112 + inkscape:connector-curvature="0" 118.113 + id="10" 118.114 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.115 + d="m 362.23544,614.03156 -59.40509,0 0,-0.47041 0,-0.45234 59.40509,0 0,0.45234 0,0.47041 z" /> 118.116 + <path 118.117 + inkscape:connector-curvature="0" 118.118 + id="11" 118.119 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.120 + d="m 302.83035,614.03156 0,0 c -0.12123,0 -0.21822,-0.0361 -0.31522,-0.0723 -0.097,-0.0362 -0.16971,-0.0905 -0.21821,-0.16285 -0.0485,-0.0723 -0.0727,-0.14473 -0.0727,-0.23519 l 0,0 0.60618,0 0,0.4704 z" /> 118.121 + <path 118.122 + inkscape:connector-curvature="0" 118.123 + id="12" 118.124 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.125 + d="m 302.22417,613.56115 0,-23.26755 0.60618,0 0.63042,0 0,23.26755 -0.63042,0 -0.60618,0 z" /> 118.126 + <path 118.127 + inkscape:connector-curvature="0" 118.128 + id="13" 118.129 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.130 + d="m 320.06994,612.6384 0,-2.24352 -1.81851,0 0,2.24352 -0.58193,0 0,-4.64989 0.58193,0 0,1.86358 1.81851,0 0,-1.86358 0.58193,0 0,4.64989 -0.58193,0 z" /> 118.131 + <path 118.132 + inkscape:connector-curvature="0" 118.133 + id="14" 118.134 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.135 + d="m 323.2463,612.25845 0,0 0,0 c -0.21822,0.28949 -0.55768,0.45232 -1.01836,0.45232 l 0,0 0,0 c -0.24249,0 -0.4607,-0.10858 -0.63044,-0.28948 l 0,0 0,0 c -0.16973,-0.19903 -0.26671,-0.43424 -0.26671,-0.72373 l 0,0 0,0 c 0,-0.34375 0.14548,-0.63324 0.4122,-0.88655 l 0,0 0,0 c 0.26671,-0.23519 0.63043,-0.34375 1.04261,-0.34375 l 0,0 0,0 c 0.12125,0 0.26673,0.0181 0.41222,0.0723 l 0,0 0,0 c 0,-0.5428 -0.21824,-0.81418 -0.67892,-0.81418 l 0,0 0,0 c -0.33946,0 -0.60618,0.0905 -0.80015,0.30758 l 0,0 -0.21823,-0.52469 0,0 0,0 c 0.097,-0.0905 0.24247,-0.18093 0.4122,-0.23522 l 0,0 0,0 c 0.19397,-0.0723 0.3637,-0.10858 0.53343,-0.10858 l 0,0 0,0 c 0.4607,0 0.80015,0.10858 0.96988,0.34378 l 0,0 0,0 c 0.19397,0.23522 0.31522,0.59706 0.31522,1.08558 l 0,0 0,1.21222 0,0 0,0 c 0,0.28948 0.0727,0.48851 0.24246,0.59706 l 0,0 0,0.28949 0,0 0,0 c -0.24246,0 -0.41219,-0.0181 -0.50919,-0.0905 l 0,0 0,0 c -0.12122,-0.0723 -0.19397,-0.19902 -0.21822,-0.34376 z m -0.0485,-1.2846 0,0 0,0 c -0.16974,-0.0362 -0.29097,-0.0723 -0.36372,-0.0723 l 0,0 0,0 c -0.29095,0 -0.50918,0.0904 -0.67891,0.2352 l 0,0 0,0 c -0.19397,0.16284 -0.26672,0.34378 -0.26672,0.56088 l 0,0 0,0 c 0,0.36187 0.16973,0.52469 0.55768,0.52469 l 0,0 0,0 c 0.29097,0 0.53343,-0.14473 0.75167,-0.43422 l 0,-0.81419 z" /> 118.136 + <path 118.137 + inkscape:connector-curvature="0" 118.138 + id="15" 118.139 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.140 + d="m 326.25293,609.834 0,0 0,0 c -0.12124,-0.0905 -0.24247,-0.14475 -0.3637,-0.14475 l 0,0 0,0 c -0.16974,0 -0.33947,0.0905 -0.48494,0.28949 l 0,0 0,0 c -0.14548,0.19901 -0.21823,0.43423 -0.21823,0.72372 l 0,0 0,1.93594 -0.55768,0 0,-3.40146 0.55768,0 0,0.54277 0,0 0,0 c 0.19398,-0.41615 0.50918,-0.61517 0.8729,-0.61517 l 0,0 0,0 c 0.097,0 0.24247,0.0181 0.43643,0.0544 l -0.24246,0.61517 z" /> 118.141 + <path 118.142 + inkscape:connector-curvature="0" 118.143 + id="16" 118.144 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.145 + d="m 328.84735,612.6384 0,0 0,-0.25329 0,0 0,0 c -0.19396,0.21709 -0.4607,0.30757 -0.82438,0.30757 l 0,0 0,0 c -0.38796,0 -0.70316,-0.14474 -0.94565,-0.45232 l 0,0 0,0 c -0.24246,-0.30758 -0.3637,-0.70562 -0.3637,-1.21223 l 0,0 0,0 c 0,-0.5066 0.12124,-0.94084 0.4122,-1.3027 l 0,0 0,0 c 0.26672,-0.37996 0.60617,-0.56089 0.99413,-0.56089 l 0,0 0,0 c 0.3152,0 0.55769,0.0905 0.7274,0.25331 l 0,0 0,-1.5741 0.55768,0 0,4.79465 -0.55768,0 z m 0,-2.60538 0,0 0,0 c -0.12123,-0.23522 -0.3152,-0.34377 -0.55768,-0.34377 l 0,0 0,0 c -0.3152,0 -0.53343,0.1267 -0.7274,0.36186 l 0,0 0,0 c -0.19398,0.2352 -0.26671,0.54279 -0.26671,0.92274 l 0,0 0,0 c 0,0.81418 0.33945,1.23031 1.01836,1.23031 l 0,0 0,0 c 0.0727,0 0.19398,-0.0362 0.31522,-0.0905 l 0,0 0,0 c 0.12123,-0.0723 0.19398,-0.1267 0.21821,-0.19902 l 0,-1.88167 z" /> 118.146 + <path 118.147 + inkscape:connector-curvature="0" 118.148 + id="17" 118.149 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.150 + d="m 333.04208,612.71077 -0.14547,0 -0.89715,-2.31589 -0.89715,2.31589 -0.14546,0 -1.11537,-3.49194 0.60617,0 0.65466,2.24354 0.80017,-2.24354 0.14548,0 0.84865,2.24354 0.7274,-2.24354 0.53343,0 -1.11536,3.49194 z" /> 118.151 + <path 118.152 + inkscape:connector-curvature="0" 118.153 + id="18" 118.154 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.155 + d="m 336.36392,612.25845 0,0 0,0 c -0.21822,0.28949 -0.55768,0.45232 -1.01838,0.45232 l 0,0 0,0 c -0.24247,0 -0.46069,-0.10858 -0.63042,-0.28948 l 0,0 0,0 c -0.19398,-0.19903 -0.26671,-0.43424 -0.26671,-0.72373 l 0,0 0,0 c 0,-0.34375 0.12123,-0.63324 0.41219,-0.88655 l 0,0 0,0 c 0.26672,-0.23519 0.63044,-0.34375 1.04262,-0.34375 l 0,0 0,0 c 0.12123,0 0.26673,0.0181 0.41221,0.0723 l 0,0 0,0 c 0,-0.5428 -0.24248,-0.81418 -0.67891,-0.81418 l 0,0 0,0 c -0.33947,0 -0.60618,0.0905 -0.80017,0.30758 l 0,0 -0.24246,-0.52469 0,0 0,0 c 0.12123,-0.0905 0.26671,-0.18093 0.43645,-0.23522 l 0,0 0,0 c 0.19396,-0.0723 0.3637,-0.10858 0.53343,-0.10858 l 0,0 0,0 c 0.46068,0 0.77591,0.10858 0.99413,0.34378 l 0,0 0,0 c 0.19397,0.23522 0.3152,0.59706 0.3152,1.08558 l 0,0 0,1.21222 0,0 0,0 c 0,0.28948 0.0727,0.48851 0.24248,0.59706 l 0,0 0,0.28949 0,0 0,0 c -0.24248,0 -0.41221,-0.0181 -0.5092,-0.0905 l 0,0 0,0 c -0.12123,-0.0723 -0.19396,-0.19902 -0.24246,-0.34376 z m -0.0485,-1.2846 0,0 0,0 c -0.16973,-0.0362 -0.29098,-0.0723 -0.36371,-0.0723 l 0,0 0,0 c -0.29095,0 -0.50918,0.0904 -0.70317,0.2352 l 0,0 0,0 c -0.16971,0.16284 -0.24246,0.34378 -0.24246,0.56088 l 0,0 0,0 c 0,0.36187 0.16973,0.52469 0.55768,0.52469 l 0,0 0,0 c 0.29097,0 0.53343,-0.14473 0.75166,-0.43422 l 0,-0.81419 z" /> 118.156 + <path 118.157 + inkscape:connector-curvature="0" 118.158 + id="19" 118.159 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.160 + d="m 339.39479,609.834 0,0 0,0 c -0.12123,-0.0905 -0.24246,-0.14475 -0.3637,-0.14475 l 0,0 0,0 c -0.19398,0 -0.36371,0.0905 -0.50919,0.28949 l 0,0 0,0 c -0.14547,0.19901 -0.21822,0.43423 -0.21822,0.72372 l 0,0 0,1.93594 -0.53343,0 0,-3.40146 0.53343,0 0,0.54277 0,0 0,0 c 0.19398,-0.41615 0.50918,-0.61517 0.89713,-0.61517 l 0,0 0,0 c 0.097,0 0.24247,0.0181 0.43645,0.0544 l -0.24247,0.61517 z" /> 118.161 + <path 118.162 + inkscape:connector-curvature="0" 118.163 + id="20" 118.164 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.165 + d="m 342.64389,611.01003 0,0 -2.25497,0 0,0 0,0 c 0,0.39805 0.12124,0.68753 0.3152,0.90466 l 0,0 0,0 c 0.16974,0.18091 0.38797,0.28947 0.67892,0.28947 l 0,0 0,0 c 0.31521,0 0.58193,-0.10857 0.7759,-0.30755 l 0,0 0.24248,0.43421 0,0 0,0 c -0.0727,0.0905 -0.21823,0.18093 -0.38795,0.23522 l 0,0 0,0 c -0.21823,0.0904 -0.4607,0.14473 -0.75166,0.14473 l 0,0 0,0 c -0.38795,0 -0.70315,-0.14473 -0.99414,-0.43424 l 0,0 0,0 c -0.29094,-0.32566 -0.46068,-0.7599 -0.46068,-1.28459 l 0,0 0,0 c 0,-0.56088 0.16974,-1.0132 0.48493,-1.37507 l 0,0 0,0 c 0.26674,-0.30757 0.60619,-0.45233 0.99414,-0.45233 l 0,0 0,0 c 0.43644,0 0.77589,0.14476 1.04261,0.41615 l 0,0 0,0 c 0.24248,0.2714 0.36372,0.61517 0.36372,1.04939 l 0,0 0,0 c 0,0.14474 -0.0242,0.25332 -0.0485,0.37995 z m -1.33358,-1.32078 0,0 0,0 c -0.24247,0 -0.4607,0.0905 -0.63044,0.25328 l 0,0 0,0 c -0.14546,0.18095 -0.24246,0.37998 -0.2667,0.61517 l 0,0 1.72153,0 0,0 0,0 c 0,-0.23519 -0.0727,-0.43422 -0.21821,-0.59706 l 0,0 0,0 c -0.14549,-0.18093 -0.33947,-0.27139 -0.60618,-0.27139 z" /> 118.166 + <path 118.167 + inkscape:connector-curvature="0" 118.168 + id="21" 118.169 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.170 + d="m 344.85036,612.6384 0,0 0,-0.12669 1.33358,-2.22544 0,0 0,0 c 0.26672,-0.4704 0.4122,-0.88655 0.4122,-1.21223 l 0,0 0,0 c 0,-0.41611 -0.21823,-0.63325 -0.67891,-0.63325 l 0,0 0,0 c -0.14549,0 -0.29097,0.0362 -0.43645,0.12669 l 0,0 0,0 c -0.12123,0.0905 -0.24247,0.19902 -0.29097,0.34377 l 0,0 -0.38795,-0.34377 0,0 0,0 c 0.0728,-0.19902 0.19399,-0.36186 0.38795,-0.48851 l 0,0 0,0 c 0.19399,-0.12669 0.43645,-0.18093 0.70317,-0.18093 l 0,0 0,0 c 0.4122,0 0.72741,0.10858 0.96988,0.30758 l 0,0 0,0 c 0.21821,0.19902 0.33946,0.50661 0.33946,0.86847 l 0,0 0,0 c 0,0.36187 -0.1455,0.81418 -0.46069,1.33888 l 0,0 -0.94564,1.66455 1.67305,0 0,0.56088 -2.61868,0 z" /> 118.171 + <path 118.172 + inkscape:connector-curvature="0" 118.173 + id="22" 118.174 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.175 + d="m 303.36378,606.39634 58.36248,0.34376 0,0.43423 0,0.43423 -58.36248,-0.34378 0,-0.43423 0,-0.43421 z" /> 118.176 + <path 118.177 + inkscape:connector-curvature="0" 118.178 + id="31" 118.179 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.180 + d="m 224.73083,547.77517 0,0 0,1.99023 -0.63042,0 0,-5.19268 0,0 0,0 c 0.46068,-0.0181 0.75166,-0.0362 0.8729,-0.0362 l 0,0 0,0 c 1.38208,0 2.08524,0.50661 2.08524,1.51981 l 0,0 0,0 c 0,1.17605 -0.63043,1.75502 -1.84278,1.75502 l 0,0 0,0 c -0.0727,0 -0.24246,0 -0.48494,-0.0362 z m 0,-2.56919 0,0 0,1.93593 0,0 0,0 c 0.26673,0.0181 0.41219,0.0362 0.43644,0.0362 l 0,0 0,0 c 0.80015,0 1.21237,-0.34377 1.21237,-1.04941 l 0,0 0,0 c 0,-0.63323 -0.43647,-0.95892 -1.30935,-0.95892 l 0,0 0,0 c -0.0727,0 -0.19398,0.0181 -0.33946,0.0362 z" /> 118.181 + <path 118.182 + inkscape:connector-curvature="0" 118.183 + id="32" 118.184 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.185 + d="m 227.8102,548.71599 0,0 0,-4.30612 0.63042,0 0,4.17948 0,0 0,0 c 0,0.21713 0.0485,0.37995 0.14548,0.48851 l 0,0 0,0 c 0.12123,0.10858 0.26672,0.16283 0.43645,0.16283 l 0,0 0,0.59707 0,0 0,0 c -0.80015,0 -1.21235,-0.37995 -1.21235,-1.12177 z" /> 118.186 + <path 118.187 + inkscape:connector-curvature="0" 118.188 + id="33" 118.189 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.190 + d="m 230.30764,545.96588 0,0 0,2.44253 0,0 0,0 c 0,0.59707 0.21822,0.86847 0.70315,0.86847 l 0,0 0,0 c 0.19399,0 0.38795,-0.0723 0.55769,-0.18092 l 0,0 0,0 c 0.16973,-0.1267 0.29096,-0.2714 0.33946,-0.43424 l 0,0 0,-2.69584 0.63042,0 0,3.79952 -0.63042,0 0,-0.52471 0,0 0,0 c -0.0727,0.16285 -0.21823,0.2895 -0.4122,0.41614 l 0,0 0,0 c -0.21821,0.1267 -0.43645,0.18093 -0.63043,0.18093 l 0,0 0,0 c -0.38793,0 -0.65466,-0.10857 -0.84863,-0.34376 l 0,0 0,0 c -0.21822,-0.25331 -0.31522,-0.57897 -0.31522,-1.0132 l 0,0 0,-2.51492 0.60618,0 z" /> 118.191 + <path 118.192 + inkscape:connector-curvature="0" 118.193 + id="34" 118.194 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.195 + d="m 233.24152,550.81479 0,0 0.33945,-0.54279 0,0 0,0 c 0.36372,0.2714 0.70317,0.39804 1.01838,0.39804 l 0,0 0,0 c 0.26672,0 0.48493,-0.0542 0.65467,-0.16284 l 0,0 0,0 c 0.16973,-0.0905 0.24248,-0.2352 0.24248,-0.37993 l 0,0 0,0 c 0,-0.30759 -0.19398,-0.47044 -0.60618,-0.47044 l 0,0 0,0 c -0.0728,0 -0.19397,0.0181 -0.38795,0.0544 l 0,0 0,0 c -0.19398,0.0361 -0.31522,0.0542 -0.43645,0.0542 l 0,0 0,0 c -0.48495,0 -0.72742,-0.19902 -0.72742,-0.61517 l 0,0 0,0 c 0,-0.10857 0.0485,-0.21711 0.16974,-0.32567 l 0,0 0,0 c 0.12123,-0.0905 0.26671,-0.16284 0.43645,-0.2171 l 0,0 0,0 c -0.50919,-0.25332 -0.75165,-0.68754 -0.75165,-1.3027 l 0,0 0,0 c 0,-0.39805 0.12123,-0.74182 0.38793,-0.99513 l 0,0 0,0 c 0.26673,-0.27138 0.58193,-0.39802 0.94565,-0.39802 l 0,0 0,0 c 0.33945,0 0.60616,0.0723 0.80015,0.2171 l 0,0 0.3152,-0.39805 0.41221,0.41615 -0.38796,0.30758 0,0 0,0 c 0.16973,0.21712 0.24248,0.5247 0.24248,0.88656 l 0,0 0,0 c 0,0.37996 -0.097,0.70562 -0.31522,0.95893 l 0,0 0,0 c -0.21821,0.27138 -0.5092,0.41612 -0.8729,0.45231 l 0,0 -0.50918,0.0544 0,0 0,0 c -0.0727,0.0181 -0.14548,0.0361 -0.24246,0.0905 l 0,0 0,0 c -0.12124,0.0362 -0.16974,0.0905 -0.16974,0.16283 l 0,0 0,0 c 0,0.0723 0.12124,0.1267 0.33945,0.1267 l 0,0 0,0 c 0.0727,0 0.21823,-0.0181 0.43645,-0.0544 l 0,0 0,0 c 0.19398,-0.0362 0.33947,-0.0362 0.43645,-0.0362 l 0,0 0,0 c 0.33947,0 0.60617,0.0723 0.80015,0.25329 l 0,0 0,0 c 0.19398,0.18094 0.29096,0.43424 0.29096,0.74182 l 0,0 0,0 c 0,0.36185 -0.14548,0.63326 -0.43644,0.85036 l 0,0 0,0 c -0.29095,0.21712 -0.65467,0.32567 -1.09112,0.32567 l 0,0 0,0 c -0.21822,0 -0.46068,-0.0362 -0.7274,-0.12669 l 0,0 0,0 c -0.24248,-0.0905 -0.43645,-0.19904 -0.60618,-0.32568 z m 1.33358,-4.3604 0,0 0,0 c -0.21822,0 -0.38795,0.0723 -0.53343,0.2352 l 0,0 0,0 c -0.14548,0.18093 -0.19397,0.37995 -0.19397,0.61517 l 0,0 0,0 c 0,0.27139 0.0485,0.48851 0.19397,0.66944 l 0,0 0,0 c 0.12123,0.16284 0.29097,0.25328 0.53343,0.25328 l 0,0 0,0 c 0.21823,0 0.38795,-0.0905 0.50918,-0.25328 l 0,0 0,0 c 0.12125,-0.16285 0.19399,-0.39805 0.19399,-0.66944 l 0,0 0,0 c 0,-0.23522 -0.0727,-0.43424 -0.21822,-0.61517 l 0,0 0,0 c -0.12125,-0.16283 -0.29097,-0.2352 -0.48495,-0.2352 z" /> 118.196 + <path 118.197 + inkscape:connector-curvature="0" 118.198 + id="35" 118.199 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.200 + d="m 237.36351,544.53653 0,0 0,0 c 0.097,0 0.19397,0.0362 0.26672,0.10857 l 0,0 0,0 c 0.0727,0.0905 0.12123,0.18093 0.12123,0.30758 l 0,0 0,0 c 0,0.10858 -0.0485,0.21712 -0.12123,0.2895 l 0,0 0,0 c -0.0728,0.0905 -0.16974,0.12669 -0.26672,0.12669 l 0,0 0,0 c -0.12123,0 -0.19398,-0.0362 -0.26672,-0.12669 l 0,0 0,0 c -0.0727,-0.0723 -0.12123,-0.18093 -0.12123,-0.2895 l 0,0 0,0 c 0,-0.12669 0.0485,-0.21711 0.12123,-0.30758 l 0,0 0,0 c 0.0727,-0.0723 0.14549,-0.10857 0.26672,-0.10857 z m -0.33946,5.22887 0,0 0,-3.22055 -0.48494,0 0,-0.57897 1.09112,0 0,3.79952 -0.60618,0 z" /> 118.201 + <path 118.202 + inkscape:connector-curvature="0" 118.203 + id="36" 118.204 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.205 + d="m 240.78234,549.7654 0,0 0,-2.18925 0,0 0,0 c 0,-0.41614 -0.0485,-0.68752 -0.16974,-0.85037 l 0,0 0,0 c -0.12123,-0.16284 -0.29096,-0.2533 -0.55768,-0.2533 l 0,0 0,0 c -0.14548,0 -0.29096,0.0542 -0.46068,0.14473 l 0,0 0,0 c -0.14548,0.0905 -0.26673,0.19904 -0.33947,0.34378 l 0,0 0,2.80441 -0.63041,0 0,-3.79952 0.43643,0 0.19398,0.5066 0,0 0,0 c 0.19399,-0.37995 0.53344,-0.56088 0.99413,-0.56088 l 0,0 0,0 c 0.7759,0 1.16385,0.50659 1.16385,1.5198 l 0,0 0,2.334 -0.63041,0 z" /> 118.206 + <path 118.207 + inkscape:connector-curvature="0" 118.208 + id="38" 118.209 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.210 + d="m 213.3105,532.19714 39.06189,0 0,0.45232 0,0.47042 -39.06189,0 0,-0.47042 0,-0.45232 z" /> 118.211 + <path 118.212 + inkscape:connector-curvature="0" 118.213 + id="39" 118.214 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.215 + d="m 252.37239,532.19714 0,0 c 0.12123,0 0.21822,0.0181 0.31522,0.0542 0.097,0.0362 0.16971,0.0905 0.21821,0.16285 0.0485,0.0723 0.097,0.14473 0.097,0.23519 l 0,0 0,0 -0.63042,0 0,-0.45231 z" /> 118.216 + <path 118.217 + inkscape:connector-curvature="0" 118.218 + id="40" 118.219 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.220 + d="m 253.00281,532.64946 0,23.24944 -0.63042,0 -0.60618,0 0,-23.24944 0.60618,0 0.63042,0 z" /> 118.221 + <path 118.222 + inkscape:connector-curvature="0" 118.223 + id="41" 118.224 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.225 + d="m 253.00281,555.8989 0,0 c 0,0.0905 -0.0485,0.16285 -0.097,0.23522 -0.0485,0.0723 -0.12123,0.12669 -0.21821,0.16285 -0.097,0.0362 -0.19399,0.0723 -0.31522,0.0723 l 0,0 0,-0.47044 0.63042,0 z" /> 118.226 + <path 118.227 + inkscape:connector-curvature="0" 118.228 + id="42" 118.229 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.230 + d="m 252.37239,556.36933 -39.06189,0 0,-0.47043 0,-0.45232 39.06189,0 0,0.45232 0,0.47043 z" /> 118.231 + <path 118.232 + inkscape:connector-curvature="0" 118.233 + id="50" 118.234 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.235 + d="m 284.03893,547.77517 0,0 0,1.99023 -0.65467,0 0,-5.19268 0,0 0,0 c 0.48495,-0.0181 0.75167,-0.0362 0.8729,-0.0362 l 0,0 0,0 c 1.35783,0 2.061,0.50661 2.061,1.51981 l 0,0 0,0 c 0,1.17605 -0.63042,1.75502 -1.81852,1.75502 l 0,0 0,0 c -0.0727,0 -0.24248,0 -0.46071,-0.0362 z m 0,-2.56919 0,0 0,1.93593 0,0 0,0 c 0.24248,0.0181 0.38797,0.0362 0.41222,0.0362 l 0,0 0,0 c 0.77589,0 1.18809,-0.34377 1.18809,-1.04941 l 0,0 0,0 c 0,-0.63323 -0.43645,-0.95892 -1.28509,-0.95892 l 0,0 0,0 c -0.0727,0 -0.19397,0.0181 -0.31522,0.0362 z" /> 118.236 + <path 118.237 + inkscape:connector-curvature="0" 118.238 + id="51" 118.239 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.240 + d="m 287.06982,548.71599 0,0 0,-4.30612 0.63042,0 0,4.17948 0,0 0,0 c 0,0.21713 0.0485,0.37995 0.14548,0.48851 l 0,0 0,0 c 0.12123,0.10858 0.26672,0.16283 0.43643,0.16283 l 0,0 0,0.59707 0,0 0,0 c -0.80015,0 -1.21233,-0.37995 -1.21233,-1.12177 z" /> 118.241 + <path 118.242 + inkscape:connector-curvature="0" 118.243 + id="52" 118.244 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.245 + d="m 289.5915,545.96588 0,0 0,2.44253 0,0 0,0 c 0,0.59707 0.21822,0.86847 0.67891,0.86847 l 0,0 0,0 c 0.19399,0 0.38795,-0.0723 0.55769,-0.18092 l 0,0 0,0 c 0.16971,-0.1267 0.29096,-0.2714 0.33945,-0.43424 l 0,0 0,-2.69584 0.60618,0 0,3.79952 -0.60618,0 0,-0.52471 0,0 0,0 c -0.0727,0.16285 -0.21822,0.2895 -0.43644,0.41614 l 0,0 0,0 c -0.19398,0.1267 -0.41221,0.18093 -0.60618,0.18093 l 0,0 0,0 c -0.3637,0 -0.65466,-0.10857 -0.84863,-0.34376 l 0,0 0,0 c -0.21823,-0.25331 -0.31523,-0.57897 -0.31523,-1.0132 l 0,0 0,-2.51492 0.63043,0 z" /> 118.246 + <path 118.247 + inkscape:connector-curvature="0" 118.248 + id="53" 118.249 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.250 + d="m 292.50114,550.81479 0,0 0.33945,-0.54279 0,0 0,0 c 0.3637,0.2714 0.70317,0.39804 0.99413,0.39804 l 0,0 0,0 c 0.29097,0 0.50918,-0.0542 0.67892,-0.16284 l 0,0 0,0 c 0.16973,-0.0905 0.24246,-0.2352 0.24246,-0.37993 l 0,0 0,0 c 0,-0.30759 -0.21821,-0.47044 -0.60616,-0.47044 l 0,0 0,0 c -0.0728,0 -0.21823,0.0181 -0.38797,0.0544 l 0,0 0,0 c -0.19396,0.0361 -0.33945,0.0542 -0.43643,0.0542 l 0,0 0,0 c -0.48495,0 -0.75166,-0.19902 -0.75166,-0.61517 l 0,0 0,0 c 0,-0.10857 0.0728,-0.21711 0.19398,-0.32567 l 0,0 0,0 c 0.12123,-0.0905 0.24246,-0.16284 0.43643,-0.2171 l 0,0 0,0 c -0.50918,-0.25332 -0.75165,-0.68754 -0.75165,-1.3027 l 0,0 0,0 c 0,-0.39805 0.12124,-0.74182 0.38795,-0.99513 l 0,0 0,0 c 0.24247,-0.27138 0.55768,-0.39802 0.94563,-0.39802 l 0,0 0,0 c 0.33947,0 0.60618,0.0723 0.80015,0.2171 l 0,0 0.31522,-0.39805 0.4122,0.41615 -0.38795,0.30758 0,0 0,0 c 0.16971,0.21712 0.24246,0.5247 0.24246,0.88656 l 0,0 0,0 c 0,0.37996 -0.097,0.70562 -0.3152,0.95893 l 0,0 0,0 c -0.24248,0.27138 -0.5092,0.41612 -0.87289,0.45231 l 0,0 -0.50919,0.0544 0,0 0,0 c -0.0727,0.0181 -0.14548,0.0361 -0.24248,0.0905 l 0,0 0,0 c -0.12123,0.0362 -0.16973,0.0905 -0.16973,0.16283 l 0,0 0,0 c 0,0.0723 0.12125,0.1267 0.31521,0.1267 l 0,0 0,0 c 0.097,0 0.24247,-0.0181 0.43645,-0.0544 l 0,0 0,0 c 0.21823,-0.0362 0.36372,-0.0362 0.4607,-0.0362 l 0,0 0,0 c 0.33945,0 0.60617,0.0723 0.80015,0.25329 l 0,0 0,0 c 0.19397,0.18094 0.29097,0.43424 0.29097,0.74182 l 0,0 0,0 c 0,0.36185 -0.14549,0.63326 -0.43645,0.85036 l 0,0 0,0 c -0.29097,0.21712 -0.65467,0.32567 -1.09112,0.32567 l 0,0 0,0 c -0.24246,0 -0.4607,-0.0362 -0.72741,-0.12669 l 0,0 0,0 c -0.24247,-0.0905 -0.43644,-0.19904 -0.60617,-0.32568 z m 1.33358,-4.3604 0,0 0,0 c -0.21823,0 -0.4122,0.0723 -0.53343,0.2352 l 0,0 0,0 c -0.14548,0.18093 -0.21823,0.37995 -0.21823,0.61517 l 0,0 0,0 c 0,0.27139 0.0727,0.48851 0.21823,0.66944 l 0,0 0,0 c 0.12123,0.16284 0.29097,0.25328 0.53343,0.25328 l 0,0 0,0 c 0.21822,0 0.38795,-0.0905 0.50918,-0.25328 l 0,0 0,0 c 0.12124,-0.16285 0.19399,-0.39805 0.19399,-0.66944 l 0,0 0,0 c 0,-0.23522 -0.0727,-0.43424 -0.21824,-0.61517 l 0,0 0,0 c -0.12123,-0.16283 -0.29095,-0.2352 -0.48493,-0.2352 z" /> 118.251 + <path 118.252 + inkscape:connector-curvature="0" 118.253 + id="54" 118.254 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.255 + d="m 296.62312,544.53653 0,0 0,0 c 0.097,0 0.19398,0.0362 0.26673,0.10857 l 0,0 0,0 c 0.0727,0.0905 0.12123,0.18093 0.12123,0.30758 l 0,0 0,0 c 0,0.10858 -0.0485,0.21712 -0.12123,0.2895 l 0,0 0,0 c -0.0728,0.0905 -0.16973,0.12669 -0.26673,0.12669 l 0,0 0,0 c -0.12124,0 -0.19397,-0.0362 -0.26672,-0.12669 l 0,0 0,0 c -0.097,-0.0723 -0.12122,-0.18093 -0.12122,-0.2895 l 0,0 0,0 c 0,-0.12669 0.0242,-0.21711 0.097,-0.30758 l 0,0 0,0 c 0.097,-0.0723 0.16971,-0.10857 0.29095,-0.10857 z m -0.33945,5.22887 0,0 0,-3.22055 -0.4607,0 0,-0.57897 1.06688,0 0,3.79952 -0.60618,0 z" /> 118.256 + <path 118.257 + inkscape:connector-curvature="0" 118.258 + id="55" 118.259 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.260 + d="m 300.04194,549.7654 0,0 0,-2.18925 0,0 0,0 c 0,-0.41614 -0.0485,-0.68752 -0.16972,-0.85037 l 0,0 0,0 c -0.12123,-0.16284 -0.29096,-0.2533 -0.55769,-0.2533 l 0,0 0,0 c -0.14547,0 -0.29095,0.0542 -0.46069,0.14473 l 0,0 0,0 c -0.14548,0.0905 -0.26671,0.19904 -0.33946,0.34378 l 0,0 0,2.80441 -0.63042,0 0,-3.79952 0.43645,0 0.19397,0.5066 0,0 0,0 c 0.19398,-0.37995 0.53345,-0.56088 0.99413,-0.56088 l 0,0 0,0 c 0.77591,0 1.16386,0.50659 1.16386,1.5198 l 0,0 0,2.334 -0.63043,0 z" /> 118.261 + <path 118.262 + inkscape:connector-curvature="0" 118.263 + id="56" 118.264 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.265 + d="m 272.01244,532.64946 0,0 c 0,-0.0905 0.0242,-0.16283 0.0727,-0.23519 0.0242,-0.0723 0.097,-0.1267 0.19398,-0.16285 0.097,-0.0362 0.19396,-0.0542 0.31521,-0.0542 l 0,0 0,0.45231 -0.58193,0 z" /> 118.266 + <path 118.267 + inkscape:connector-curvature="0" 118.268 + id="57" 118.269 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.270 + d="m 272.59437,532.19714 39.06188,0 0,0.45232 0,0.47042 -39.06188,0 0,-0.47042 0,-0.45232 z" /> 118.271 + <path 118.272 + inkscape:connector-curvature="0" 118.273 + id="58" 118.274 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.275 + d="m 311.65625,532.19714 0,0 c 0.12123,0 0.21823,0.0181 0.31521,0.0542 0.097,0.0362 0.16973,0.0905 0.21822,0.16285 0.0485,0.0723 0.097,0.14473 0.097,0.23519 l 0,0 0,0 -0.63043,0 0,-0.45231 z" /> 118.276 + <path 118.277 + inkscape:connector-curvature="0" 118.278 + id="59" 118.279 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.280 + d="m 312.28668,532.64946 0,23.24944 -0.63043,0 -0.60619,0 0,-23.24944 0.60619,0 0.63043,0 z" /> 118.281 + <path 118.282 + inkscape:connector-curvature="0" 118.283 + id="60" 118.284 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.285 + d="m 312.28668,555.8989 0,0 c 0,0.0905 -0.0485,0.16285 -0.097,0.23522 -0.0485,0.0723 -0.12124,0.12669 -0.21822,0.16285 -0.097,0.0362 -0.19398,0.0723 -0.31521,0.0723 l 0,0 0,-0.47044 0.63043,0 z" /> 118.286 + <path 118.287 + inkscape:connector-curvature="0" 118.288 + id="61" 118.289 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.290 + d="m 311.65625,556.36933 -39.06188,0 0,-0.47043 0,-0.45232 39.06188,0 0,0.45232 0,0.47043 z" /> 118.291 + <path 118.292 + inkscape:connector-curvature="0" 118.293 + id="62" 118.294 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.295 + d="m 272.59437,556.36933 0,0 c -0.12125,0 -0.21823,-0.0362 -0.31521,-0.0723 -0.097,-0.0362 -0.16973,-0.0905 -0.19398,-0.16285 -0.0485,-0.0723 -0.0727,-0.14473 -0.0727,-0.23521 l 0,0 0.58193,0 0,0.47043 z" /> 118.296 + <path 118.297 + inkscape:connector-curvature="0" 118.298 + id="63" 118.299 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.300 + d="m 272.01244,555.8989 0,-23.24944 0.58193,0 0.63042,0 0,23.24944 -0.63042,0 -0.58193,0 z" /> 118.301 + <path 118.302 + inkscape:connector-curvature="0" 118.303 + id="73" 118.304 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.305 + d="m 343.27432,547.77517 0,0 0,1.99023 -0.63043,0 0,-5.19268 0,0 0,0 c 0.48494,-0.0181 0.77589,-0.0362 0.87289,-0.0362 l 0,0 0,0 c 1.38207,0 2.08523,0.50661 2.08523,1.51981 l 0,0 0,0 c 0,1.17605 -0.63041,1.75502 -1.84276,1.75502 l 0,0 0,0 c -0.0727,0 -0.21823,0 -0.48493,-0.0362 z m 0,-2.56919 0,0 0,1.93593 0,0 0,0 c 0.29095,0.0181 0.43643,0.0362 0.46068,0.0362 l 0,0 0,0 c 0.7759,0 1.1881,-0.34377 1.1881,-1.04941 l 0,0 0,0 c 0,-0.63323 -0.43644,-0.95892 -1.28508,-0.95892 l 0,0 0,0 c -0.0727,0 -0.19399,0.0181 -0.3637,0.0362 z" /> 118.306 + <path 118.307 + inkscape:connector-curvature="0" 118.308 + id="74" 118.309 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.310 + d="m 346.35368,548.71599 0,0 0,-4.30612 0.60616,0 0,4.17948 0,0 0,0 c 0,0.21713 0.0728,0.37995 0.16973,0.48851 l 0,0 0,0 c 0.12124,0.10858 0.24249,0.16283 0.43645,0.16283 l 0,0 0,0.59707 0,0 0,0 c -0.82439,0 -1.21234,-0.37995 -1.21234,-1.12177 z" /> 118.311 + <path 118.312 + inkscape:connector-curvature="0" 118.313 + id="75" 118.314 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.315 + d="m 348.87537,545.96588 0,0 0,2.44253 0,0 0,0 c 0,0.59707 0.21822,0.86847 0.70315,0.86847 l 0,0 0,0 c 0.19398,0 0.36371,-0.0723 0.53345,-0.18092 l 0,0 0,0 c 0.16971,-0.1267 0.2667,-0.2714 0.33945,-0.43424 l 0,0 0,-2.69584 0.60616,0 0,3.79952 -0.60616,0 0,-0.52471 0,0 0,0 c -0.0727,0.16285 -0.21822,0.2895 -0.43645,0.41614 l 0,0 0,0 c -0.19399,0.1267 -0.38795,0.18093 -0.58192,0.18093 l 0,0 0,0 c -0.38796,0 -0.67891,-0.10857 -0.8729,-0.34376 l 0,0 0,0 c -0.21823,-0.25331 -0.31521,-0.57897 -0.31521,-1.0132 l 0,0 0,-2.51492 0.63043,0 z" /> 118.316 + <path 118.317 + inkscape:connector-curvature="0" 118.318 + id="76" 118.319 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.320 + d="m 351.785,550.81479 0,0 0.33946,-0.54279 0,0 0,0 c 0.3637,0.2714 0.70317,0.39804 0.99412,0.39804 l 0,0 0,0 c 0.29096,0 0.5092,-0.0542 0.67891,-0.16284 l 0,0 0,0 c 0.14548,-0.0905 0.24247,-0.2352 0.24247,-0.37993 l 0,0 0,0 c 0,-0.30759 -0.21822,-0.47044 -0.63042,-0.47044 l 0,0 0,0 c -0.0485,0 -0.19398,0.0181 -0.3637,0.0544 l 0,0 0,0 c -0.19398,0.0361 -0.33946,0.0542 -0.43645,0.0542 l 0,0 0,0 c -0.48493,0 -0.75166,-0.19902 -0.75166,-0.61517 l 0,0 0,0 c 0,-0.10857 0.0727,-0.21711 0.19398,-0.32567 l 0,0 0,0 c 0.097,-0.0905 0.24249,-0.16284 0.4122,-0.2171 l 0,0 0,0 c -0.48493,-0.25332 -0.72741,-0.68754 -0.72741,-1.3027 l 0,0 0,0 c 0,-0.39805 0.12123,-0.74182 0.38796,-0.99513 l 0,0 0,0 c 0.24247,-0.27138 0.55767,-0.39802 0.94563,-0.39802 l 0,0 0,0 c 0.33945,0 0.60617,0.0723 0.80015,0.2171 l 0,0 0.31522,-0.39805 0.41218,0.41615 -0.38795,0.30758 0,0 0,0 c 0.16973,0.21712 0.24248,0.5247 0.24248,0.88656 l 0,0 0,0 c 0,0.37996 -0.097,0.70562 -0.33946,0.95893 l 0,0 0,0 c -0.21824,0.27138 -0.50918,0.41612 -0.84865,0.45231 l 0,0 -0.50918,0.0544 0,0 0,0 c -0.0728,0.0181 -0.14549,0.0361 -0.26672,0.0905 l 0,0 0,0 c -0.097,0.0362 -0.14548,0.0905 -0.14548,0.16283 l 0,0 0,0 c 0,0.0723 0.097,0.1267 0.31521,0.1267 l 0,0 0,0 c 0.097,0 0.24247,-0.0181 0.43644,-0.0544 l 0,0 0,0 c 0.21823,-0.0362 0.36371,-0.0362 0.4607,-0.0362 l 0,0 0,0 c 0.33944,0 0.60618,0.0723 0.80014,0.25329 l 0,0 0,0 c 0.19399,0.18094 0.29097,0.43424 0.29097,0.74182 l 0,0 0,0 c 0,0.36185 -0.14548,0.63326 -0.43645,0.85036 l 0,0 0,0 c -0.29097,0.21712 -0.65466,0.32567 -1.09111,0.32567 l 0,0 0,0 c -0.24247,0 -0.48494,-0.0362 -0.7274,-0.12669 l 0,0 0,0 c -0.24247,-0.0905 -0.4607,-0.19904 -0.60618,-0.32568 z m 1.33358,-4.3604 0,0 0,0 c -0.21822,0 -0.4122,0.0723 -0.53344,0.2352 l 0,0 0,0 c -0.14548,0.18093 -0.21821,0.37995 -0.21821,0.61517 l 0,0 0,0 c 0,0.27139 0.0727,0.48851 0.19396,0.66944 l 0,0 0,0 c 0.14549,0.16284 0.31522,0.25328 0.55769,0.25328 l 0,0 0,0 c 0.21823,0 0.38796,-0.0905 0.5092,-0.25328 l 0,0 0,0 c 0.12123,-0.16285 0.19396,-0.39805 0.19396,-0.66944 l 0,0 0,0 c 0,-0.23522 -0.0727,-0.43424 -0.21821,-0.61517 l 0,0 0,0 c -0.12124,-0.16283 -0.29097,-0.2352 -0.48495,-0.2352 z" /> 118.321 + <path 118.322 + inkscape:connector-curvature="0" 118.323 + id="77" 118.324 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.325 + d="m 355.90699,544.53653 0,0 0,0 c 0.097,0 0.19396,0.0362 0.26671,0.10857 l 0,0 0,0 c 0.0727,0.0905 0.097,0.18093 0.097,0.30758 l 0,0 0,0 c 0,0.10858 -0.0242,0.21712 -0.097,0.2895 l 0,0 0,0 c -0.0727,0.0905 -0.16973,0.12669 -0.26671,0.12669 l 0,0 0,0 c -0.12124,0 -0.19397,-0.0362 -0.26672,-0.12669 l 0,0 0,0 c -0.0727,-0.0723 -0.097,-0.18093 -0.097,-0.2895 l 0,0 0,0 c 0,-0.12669 0.0242,-0.21711 0.097,-0.30758 l 0,0 0,0 c 0.0727,-0.0723 0.14548,-0.10857 0.26672,-0.10857 z m -0.33947,5.22887 0,0 0,-3.22055 -0.46068,0 0,-0.57897 1.06686,0 0,3.79952 -0.60618,0 z" /> 118.326 + <path 118.327 + inkscape:connector-curvature="0" 118.328 + id="78" 118.329 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.330 + d="m 359.3258,549.7654 0,0 0,-2.18925 0,0 0,0 c 0,-0.41614 -0.0727,-0.68752 -0.16972,-0.85037 l 0,0 0,0 c -0.12124,-0.16284 -0.31521,-0.2533 -0.55768,-0.2533 l 0,0 0,0 c -0.14549,0 -0.29097,0.0542 -0.4607,0.14473 l 0,0 0,0 c -0.14548,0.0905 -0.26671,0.19904 -0.3637,0.34378 l 0,0 0,2.80441 -0.60617,0 0,-3.79952 0.4122,0 0.19397,0.5066 0,0 0,0 c 0.21822,-0.37995 0.55768,-0.56088 1.01837,-0.56088 l 0,0 0,0 c 0.77591,0 1.13961,0.50659 1.13961,1.5198 l 0,0 0,2.334 -0.60618,0 z" /> 118.331 + <path 118.332 + inkscape:connector-curvature="0" 118.333 + id="79" 118.334 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.335 + d="m 331.27205,532.64946 0,0 c 0,-0.0905 0.0242,-0.16283 0.0728,-0.23519 0.0485,-0.0723 0.12123,-0.1267 0.21821,-0.16285 0.097,-0.0362 0.19399,-0.0542 0.29097,-0.0542 l 0,0 0,0.45231 -0.58193,0 z" /> 118.336 + <path 118.337 + inkscape:connector-curvature="0" 118.338 + id="80" 118.339 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.340 + d="m 331.85398,532.19714 39.06188,0 0,0.45232 0,0.47042 -39.06188,0 0,-0.47042 0,-0.45232 z" /> 118.341 + <path 118.342 + inkscape:connector-curvature="0" 118.343 + id="81" 118.344 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.345 + d="m 370.91586,532.19714 0,0 c 0.12123,0 0.21823,0.0181 0.31521,0.0542 0.097,0.0362 0.16973,0.0905 0.21823,0.16285 0.0485,0.0723 0.097,0.14473 0.097,0.23519 l 0,0 0,0 -0.63042,0 0,-0.45231 z" /> 118.346 + <path 118.347 + inkscape:connector-curvature="0" 118.348 + id="82" 118.349 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.350 + d="m 371.54628,532.64946 0,23.17707 -0.63042,0 -0.60617,0 0,-23.17707 0.60617,0 0.63042,0 z" /> 118.351 + <path 118.352 + inkscape:connector-curvature="0" 118.353 + id="83" 118.354 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.355 + d="m 371.54628,555.82653 0,0 c 0,0.0905 -0.0485,0.16285 -0.097,0.23522 -0.0485,0.0723 -0.12123,0.12669 -0.21823,0.16282 -0.097,0.0362 -0.19398,0.0723 -0.31521,0.0723 l 0,0 0,-0.47043 0.63042,0 z" /> 118.356 + <path 118.357 + inkscape:connector-curvature="0" 118.358 + id="84" 118.359 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.360 + d="m 370.91586,556.29697 -39.06188,0 0,-0.47044 0,-0.45233 39.06188,0 0,0.45233 0,0.47044 z" /> 118.361 + <path 118.362 + inkscape:connector-curvature="0" 118.363 + id="85" 118.364 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.365 + d="m 331.85398,556.29697 0,0 c -0.097,0 -0.19397,-0.0362 -0.29097,-0.0723 -0.097,-0.0362 -0.16971,-0.0905 -0.21821,-0.16283 -0.0485,-0.0723 -0.0728,-0.14476 -0.0728,-0.23521 l 0,0 0.58193,0 0,0.47043 z" /> 118.366 + <path 118.367 + inkscape:connector-curvature="0" 118.368 + id="86" 118.369 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.370 + d="m 331.27205,555.82653 0,-23.17707 0.58193,0 0.63041,0 0,23.17707 -0.63041,0 -0.58193,0 z" /> 118.371 + <path 118.372 + inkscape:connector-curvature="0" 118.373 + id="95" 118.374 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.375 + d="m 429.71478,547.77517 0,0 0,1.99023 -0.65466,0 0,-5.19268 0,0 0,0 c 0.50918,-0.0181 0.80014,-0.0362 0.89714,-0.0362 l 0,0 0,0 c 1.40632,0 2.08523,0.50661 2.08523,1.51981 l 0,0 0,0 c 0,1.17605 -0.60617,1.75502 -1.84277,1.75502 l 0,0 0,0 c -0.0727,0 -0.24246,0 -0.48494,-0.0362 z m 0,-2.56919 0,0 0,1.93593 0,0 0,0 c 0.29097,0.0181 0.43645,0.0362 0.43645,0.0362 l 0,0 0,0 c 0.8244,0 1.23659,-0.34377 1.23659,-1.04941 l 0,0 0,0 c 0,-0.63323 -0.43644,-0.95892 -1.30933,-0.95892 l 0,0 0,0 c -0.097,0 -0.21823,0.0181 -0.36371,0.0362 z" /> 118.376 + <path 118.377 + inkscape:connector-curvature="0" 118.378 + id="96" 118.379 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.380 + d="m 432.8184,548.71599 0,0 0,-4.30612 0.58192,0 0,4.17948 0,0 0,0 c 0,0.21713 0.0485,0.37995 0.16973,0.48851 l 0,0 0,0 c 0.097,0.10858 0.24247,0.16283 0.4122,0.16283 l 0,0 0,0.59707 0,0 0,0 c -0.7759,0 -1.16385,-0.37995 -1.16385,-1.12177 z" /> 118.381 + <path 118.382 + inkscape:connector-curvature="0" 118.383 + id="97" 118.384 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.385 + d="m 435.29159,545.96588 0,0 0,2.44253 0,0 0,0 c 0,0.59707 0.24247,0.86847 0.70316,0.86847 l 0,0 0,0 c 0.21823,0 0.4122,-0.0723 0.58193,-0.18092 l 0,0 0,0 c 0.16973,-0.1267 0.26672,-0.2714 0.31521,-0.43424 l 0,0 0,-2.69584 0.63042,0 0,3.79952 -0.63042,0 0,-0.52471 0,0 0,0 c -0.0485,0.16285 -0.19398,0.2895 -0.4122,0.41614 l 0,0 0,0 c -0.21822,0.1267 -0.41219,0.18093 -0.60617,0.18093 l 0,0 0,0 c -0.38795,0 -0.67892,-0.10857 -0.89714,-0.34376 l 0,0 0,0 c -0.19398,-0.25331 -0.29096,-0.57897 -0.29096,-1.0132 l 0,0 0,-2.51492 0.60617,0 z" /> 118.386 + <path 118.387 + inkscape:connector-curvature="0" 118.388 + id="98" 118.389 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.390 + d="m 438.24972,550.81479 0,0 0.33946,-0.54279 0,0 0,0 c 0.36371,0.2714 0.65467,0.39804 0.94563,0.39804 l 0,0 0,0 c 0.29097,0 0.50919,-0.0542 0.67891,-0.16284 l 0,0 0,0 c 0.14549,-0.0905 0.24248,-0.2352 0.24248,-0.37993 l 0,0 0,0 c 0,-0.30759 -0.21823,-0.47044 -0.63042,-0.47044 l 0,0 0,0 c -0.0727,0 -0.19398,0.0181 -0.36371,0.0544 l 0,0 0,0 c -0.16973,0.0361 -0.31521,0.0542 -0.4122,0.0542 l 0,0 0,0 c -0.48494,0 -0.72741,-0.19902 -0.72741,-0.61517 l 0,0 0,0 c 0,-0.10857 0.0727,-0.21711 0.16973,-0.32567 l 0,0 0,0 c 0.12124,-0.0905 0.26672,-0.16284 0.43645,-0.2171 l 0,0 0,0 c -0.48494,-0.25332 -0.72741,-0.68754 -0.72741,-1.3027 l 0,0 0,0 c 0,-0.39805 0.12123,-0.74182 0.38795,-0.99513 l 0,0 0,0 c 0.24247,-0.27138 0.53344,-0.39802 0.89714,-0.39802 l 0,0 0,0 c 0.33946,0 0.60617,0.0723 0.80015,0.2171 l 0,0 0.31521,-0.39805 0.38795,0.41615 -0.3637,0.30758 0,0 0,0 c 0.16973,0.21712 0.24246,0.5247 0.24246,0.88656 l 0,0 0,0 c 0,0.37996 -0.12123,0.70562 -0.33946,0.95893 l 0,0 0,0 c -0.21821,0.27138 -0.50918,0.41612 -0.87288,0.45231 l 0,0 -0.48495,0.0544 0,0 0,0 c -0.0485,0.0181 -0.14548,0.0361 -0.21821,0.0905 l 0,0 0,0 c -0.097,0.0362 -0.14548,0.0905 -0.14548,0.16283 l 0,0 0,0 c 0,0.0723 0.097,0.1267 0.29096,0.1267 l 0,0 0,0 c 0.097,0 0.24246,-0.0181 0.41219,-0.0544 l 0,0 0,0 c 0.19398,-0.0362 0.33946,-0.0362 0.43645,-0.0362 l 0,0 0,0 c 0.36371,0 0.63042,0.0723 0.8244,0.25329 l 0,0 0,0 c 0.19397,0.18094 0.29096,0.43424 0.29096,0.74182 l 0,0 0,0 c 0,0.36185 -0.14548,0.63326 -0.43644,0.85036 l 0,0 0,0 c -0.29096,0.21712 -0.65467,0.32567 -1.11537,0.32567 l 0,0 0,0 c -0.19397,0 -0.43644,-0.0362 -0.65467,-0.12669 l 0,0 0,0 c -0.24246,-0.0905 -0.46069,-0.19904 -0.60617,-0.32568 z m 1.26084,-4.3604 0,0 0,0 c -0.19397,0 -0.3637,0.0723 -0.50919,0.2352 l 0,0 0,0 c -0.097,0.18093 -0.16972,0.37995 -0.16972,0.61517 l 0,0 0,0 c 0,0.27139 0.0727,0.48851 0.16972,0.66944 l 0,0 0,0 c 0.14549,0.16284 0.31522,0.25328 0.50919,0.25328 l 0,0 0,0 c 0.21823,0 0.38795,-0.0905 0.53344,-0.25328 l 0,0 0,0 c 0.12124,-0.16285 0.16972,-0.39805 0.16972,-0.66944 l 0,0 0,0 c 0,-0.23522 -0.0727,-0.43424 -0.19397,-0.61517 l 0,0 0,0 c -0.14548,-0.16283 -0.29096,-0.2352 -0.50919,-0.2352 z" /> 118.391 + <path 118.392 + inkscape:connector-curvature="0" 118.393 + id="99" 118.394 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.395 + d="m 442.32322,544.53653 0,0 0,0 c 0.12123,0 0.19397,0.0362 0.29096,0.10857 l 0,0 0,0 c 0.0727,0.0905 0.097,0.18093 0.097,0.30758 l 0,0 0,0 c 0,0.10858 -0.0242,0.21712 -0.097,0.2895 l 0,0 0,0 c -0.097,0.0905 -0.16973,0.12669 -0.29096,0.12669 l 0,0 0,0 c -0.097,0 -0.19398,-0.0362 -0.26673,-0.12669 l 0,0 0,0 c -0.0727,-0.0723 -0.12123,-0.18093 -0.12123,-0.2895 l 0,0 0,0 c 0,-0.12669 0.0485,-0.21711 0.12123,-0.30758 l 0,0 0,0 c 0.0727,-0.0723 0.16973,-0.10857 0.26673,-0.10857 z m -0.33946,5.22887 0,0 0,-3.22055 -0.48494,0 0,-0.57897 1.11536,0 0,3.79952 -0.63042,0 z" /> 118.396 + <path 118.397 + inkscape:connector-curvature="0" 118.398 + id="100" 118.399 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.400 + d="m 445.74204,549.7654 0,0 0,-2.18925 0,0 0,0 c 0,-0.41614 -0.0727,-0.68752 -0.16973,-0.85037 l 0,0 0,0 c -0.12124,-0.16284 -0.29097,-0.2533 -0.55768,-0.2533 l 0,0 0,0 c -0.14548,0 -0.29096,0.0542 -0.43644,0.14473 l 0,0 0,0 c -0.14549,0.0905 -0.26673,0.19904 -0.36371,0.34378 l 0,0 0,2.80441 -0.60618,0 0,-3.79952 0.4122,0 0.19398,0.5066 0,0 0,0 c 0.21822,-0.37995 0.55767,-0.56088 1.01837,-0.56088 l 0,0 0,0 c 0.72741,0 1.11536,0.50659 1.11536,1.5198 l 0,0 0,2.334 -0.60617,0 z" /> 118.401 + <path 118.402 + inkscape:connector-curvature="0" 118.403 + id="101" 118.404 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.405 + d="m 417.71253,532.64946 0,0 c 0,-0.0905 0.0242,-0.16283 0.0727,-0.23519 0.0485,-0.0723 0.12124,-0.1267 0.21823,-0.16285 0.097,-0.0362 0.19397,-0.0542 0.3152,-0.0542 l 0,0 0,0.45231 -0.60617,0 z" /> 118.406 + <path 118.407 + inkscape:connector-curvature="0" 118.408 + id="102" 118.409 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.410 + d="m 418.3187,532.19714 39.0134,0 0,0.45232 0,0.47042 -39.0134,0 0,-0.47042 0,-0.45232 z" /> 118.411 + <path 118.412 + inkscape:connector-curvature="0" 118.413 + id="103" 118.414 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.415 + d="m 457.3321,532.19714 0,0 c 0.12123,0 0.21821,0.0181 0.31521,0.0542 0.097,0.0362 0.16973,0.0905 0.21821,0.16285 0.0485,0.0723 0.097,0.14473 0.097,0.23519 l 0,0 0,0 -0.63042,0 0,-0.45231 z" /> 118.416 + <path 118.417 + inkscape:connector-curvature="0" 118.418 + id="104" 118.419 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.420 + d="m 457.96252,532.64946 0,23.24944 -0.63042,0 -0.58193,0 0,-23.24944 0.58193,0 0.63042,0 z" /> 118.421 + <path 118.422 + inkscape:connector-curvature="0" 118.423 + id="105" 118.424 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.425 + d="m 457.96252,555.8989 0,0 c 0,0.0905 -0.0485,0.16285 -0.097,0.23522 -0.0485,0.0723 -0.12123,0.12669 -0.21821,0.16285 -0.097,0.0362 -0.19398,0.0723 -0.31521,0.0723 l 0,0 0,-0.47044 0.63042,0 z" /> 118.426 + <path 118.427 + inkscape:connector-curvature="0" 118.428 + id="106" 118.429 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.430 + d="m 457.3321,556.36933 -39.0134,0 0,-0.47043 0,-0.45232 39.0134,0 0,0.45232 0,0.47043 z" /> 118.431 + <path 118.432 + inkscape:connector-curvature="0" 118.433 + id="107" 118.434 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.435 + d="m 418.3187,556.36933 0,0 c -0.12123,0 -0.21822,-0.0362 -0.3152,-0.0723 -0.097,-0.0362 -0.16973,-0.0905 -0.21823,-0.16285 -0.0485,-0.0723 -0.0727,-0.14473 -0.0727,-0.23521 l 0,0 0.60617,0 0,0.47043 z" /> 118.436 + <path 118.437 + inkscape:connector-curvature="0" 118.438 + id="108" 118.439 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.440 + d="m 417.71253,555.8989 0,-23.24944 0.60617,0 0.63042,0 0,23.24944 -0.63042,0 -0.60617,0 z" /> 118.441 + <path 118.442 + inkscape:connector-curvature="0" 118.443 + id="114" 118.444 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.445 + d="m 488.9744,547.77517 0,0 0,1.99023 -0.65467,0 0,-5.19268 0,0 0,0 c 0.50919,-0.0181 0.80015,-0.0362 0.89714,-0.0362 l 0,0 0,0 c 1.38208,0 2.08524,0.50661 2.08524,1.51981 l 0,0 0,0 c 0,1.17605 -0.60618,1.75502 -1.84278,1.75502 l 0,0 0,0 c -0.0727,0 -0.24246,0 -0.48493,-0.0362 z m 0,-2.56919 0,0 0,1.93593 0,0 0,0 c 0.29097,0.0181 0.43645,0.0362 0.43645,0.0362 l 0,0 0,0 c 0.82439,0 1.21235,-0.34377 1.21235,-1.04941 l 0,0 0,0 c 0,-0.63323 -0.41221,-0.95892 -1.2851,-0.95892 l 0,0 0,0 c -0.097,0 -0.21822,0.0181 -0.3637,0.0362 z" /> 118.446 + <path 118.447 + inkscape:connector-curvature="0" 118.448 + id="115" 118.449 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.450 + d="m 492.05376,548.71599 0,0 0,-4.30612 0.63042,0 0,4.17948 0,0 0,0 c 0,0.21713 0.0485,0.37995 0.16973,0.48851 l 0,0 0,0 c 0.097,0.10858 0.24248,0.16283 0.38796,0.16283 l 0,0 0,0.59707 0,0 0,0 c -0.7759,0 -1.18811,-0.37995 -1.18811,-1.12177 z" /> 118.451 + <path 118.452 + inkscape:connector-curvature="0" 118.453 + id="116" 118.454 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.455 + d="m 494.5512,545.96588 0,0 0,2.44253 0,0 0,0 c 0,0.59707 0.24247,0.86847 0.70316,0.86847 l 0,0 0,0 c 0.21823,0 0.38796,-0.0723 0.55769,-0.18092 l 0,0 0,0 c 0.16973,-0.1267 0.29096,-0.2714 0.33946,-0.43424 l 0,0 0,-2.69584 0.63041,0 0,3.79952 -0.63041,0 0,-0.52471 0,0 0,0 c -0.0727,0.16285 -0.19398,0.2895 -0.4122,0.41614 l 0,0 0,0 c -0.21823,0.1267 -0.4122,0.18093 -0.60618,0.18093 l 0,0 0,0 c -0.38795,0 -0.67891,-0.10857 -0.89714,-0.34376 l 0,0 0,0 c -0.19398,-0.25331 -0.29096,-0.57897 -0.29096,-1.0132 l 0,0 0,-2.51492 0.60617,0 z" /> 118.456 + <path 118.457 + inkscape:connector-curvature="0" 118.458 + id="117" 118.459 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.460 + d="m 497.50934,550.81479 0,0 0.33945,-0.54279 0,0 0,0 c 0.36371,0.2714 0.67892,0.39804 0.99413,0.39804 l 0,0 0,0 c 0.26672,0 0.48494,-0.0542 0.63043,-0.16284 l 0,0 0,0 c 0.16972,-0.0905 0.24246,-0.2352 0.24246,-0.37993 l 0,0 0,0 c 0,-0.30759 -0.19398,-0.47044 -0.60617,-0.47044 l 0,0 0,0 c -0.0485,0 -0.16973,0.0181 -0.36371,0.0544 l 0,0 0,0 c -0.16973,0.0361 -0.31521,0.0542 -0.4122,0.0542 l 0,0 0,0 c -0.50919,0 -0.75165,-0.19902 -0.75165,-0.61517 l 0,0 0,0 c 0,-0.10857 0.0485,-0.21711 0.16973,-0.32567 l 0,0 0,0 c 0.12123,-0.0905 0.26671,-0.16284 0.43644,-0.2171 l 0,0 0,0 c -0.48494,-0.25332 -0.72741,-0.68754 -0.72741,-1.3027 l 0,0 0,0 c 0,-0.39805 0.12124,-0.74182 0.3637,-0.99513 l 0,0 0,0 c 0.26673,-0.27138 0.58194,-0.39802 0.94564,-0.39802 l 0,0 0,0 c 0.33946,0 0.60617,0.0723 0.80015,0.2171 l 0,0 0.31521,-0.39805 0.38795,0.41615 -0.3637,0.30758 0,0 0,0 c 0.14548,0.21712 0.24247,0.5247 0.24247,0.88656 l 0,0 0,0 c 0,0.37996 -0.12124,0.70562 -0.33946,0.95893 l 0,0 0,0 c -0.21822,0.27138 -0.50918,0.41612 -0.84864,0.45231 l 0,0 -0.50919,0.0544 0,0 0,0 c -0.0485,0.0181 -0.14549,0.0361 -0.24247,0.0905 l 0,0 0,0 c -0.097,0.0362 -0.14548,0.0905 -0.14548,0.16283 l 0,0 0,0 c 0,0.0723 0.097,0.1267 0.31521,0.1267 l 0,0 0,0 c 0.097,0 0.24247,-0.0181 0.43644,-0.0544 l 0,0 0,0 c 0.19398,-0.0362 0.31522,-0.0362 0.4122,-0.0362 l 0,0 0,0 c 0.33946,0 0.63042,0.0723 0.80015,0.25329 l 0,0 0,0 c 0.19398,0.18094 0.29097,0.43424 0.29097,0.74182 l 0,0 0,0 c 0,0.36185 -0.14549,0.63326 -0.4122,0.85036 l 0,0 0,0 c -0.29096,0.21712 -0.65467,0.32567 -1.09112,0.32567 l 0,0 0,0 c -0.21822,0 -0.46069,-0.0362 -0.70315,-0.12669 l 0,0 0,0 c -0.26673,-0.0905 -0.4607,-0.19904 -0.60618,-0.32568 z m 1.30933,-4.3604 0,0 0,0 c -0.21822,0 -0.38795,0.0723 -0.53343,0.2352 l 0,0 0,0 c -0.12124,0.18093 -0.19397,0.37995 -0.19397,0.61517 l 0,0 0,0 c 0,0.27139 0.0727,0.48851 0.19397,0.66944 l 0,0 0,0 c 0.14548,0.16284 0.31521,0.25328 0.53343,0.25328 l 0,0 0,0 c 0.21822,0 0.36371,-0.0905 0.48495,-0.25328 l 0,0 0,0 c 0.14548,-0.16285 0.19397,-0.39805 0.19397,-0.66944 l 0,0 0,0 c 0,-0.23522 -0.0727,-0.43424 -0.19397,-0.61517 l 0,0 0,0 c -0.14549,-0.16283 -0.29097,-0.2352 -0.48495,-0.2352 z" /> 118.461 + <path 118.462 + inkscape:connector-curvature="0" 118.463 + id="118" 118.464 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.465 + d="m 501.60707,544.53653 0,0 0,0 c 0.12124,0 0.19398,0.0362 0.26672,0.10857 l 0,0 0,0 c 0.097,0.0905 0.12124,0.18093 0.12124,0.30758 l 0,0 0,0 c 0,0.10858 -0.0242,0.21712 -0.12124,0.2895 l 0,0 0,0 c -0.0727,0.0905 -0.14548,0.12669 -0.26672,0.12669 l 0,0 0,0 c -0.097,0 -0.19397,-0.0362 -0.26671,-0.12669 l 0,0 0,0 c -0.0727,-0.0723 -0.12124,-0.18093 -0.12124,-0.2895 l 0,0 0,0 c 0,-0.12669 0.0485,-0.21711 0.12124,-0.30758 l 0,0 0,0 c 0.0727,-0.0723 0.16973,-0.10857 0.26671,-0.10857 z m -0.33945,5.22887 0,0 0,-3.22055 -0.48494,0 0,-0.57897 1.11536,0 0,3.79952 -0.63042,0 z" /> 118.466 + <path 118.467 + inkscape:connector-curvature="0" 118.468 + id="119" 118.469 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.470 + d="m 505.0259,549.7654 0,0 0,-2.18925 0,0 0,0 c 0,-0.41614 -0.0485,-0.68752 -0.16973,-0.85037 l 0,0 0,0 c -0.097,-0.16284 -0.29096,-0.2533 -0.55768,-0.2533 l 0,0 0,0 c -0.14548,0 -0.29096,0.0542 -0.43644,0.14473 l 0,0 0,0 c -0.16973,0.0905 -0.26673,0.19904 -0.36371,0.34378 l 0,0 0,2.80441 -0.63042,0 0,-3.79952 0.43644,0 0.19398,0.5066 0,0 0,0 c 0.21823,-0.37995 0.53344,-0.56088 1.01837,-0.56088 l 0,0 0,0 c 0.72742,0 1.11536,0.50659 1.11536,1.5198 l 0,0 0,2.334 -0.60617,0 z" /> 118.471 + <path 118.472 + inkscape:connector-curvature="0" 118.473 + id="120" 118.474 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.475 + d="m 476.97215,532.64946 0,0 c 0,-0.0905 0.0242,-0.16283 0.0727,-0.23519 0.0485,-0.0723 0.12123,-0.1267 0.21822,-0.16285 0.097,-0.0362 0.19397,-0.0542 0.31521,-0.0542 l 0,0 0,0.45231 -0.60617,0 z" /> 118.476 + <path 118.477 + inkscape:connector-curvature="0" 118.478 + id="121" 118.479 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.480 + d="m 477.57832,532.19714 39.03764,0 0,0.45232 0,0.47042 -39.03764,0 0,-0.47042 0,-0.45232 z" /> 118.481 + <path 118.482 + inkscape:connector-curvature="0" 118.483 + id="122" 118.484 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.485 + d="m 516.61596,532.19714 0,0 c 0.12123,0 0.21821,0.0181 0.31521,0.0542 0.0727,0.0362 0.14548,0.0905 0.19397,0.16285 0.0485,0.0723 0.097,0.14473 0.097,0.23519 l 0,0 0,0 -0.60617,0 0,-0.45231 z" /> 118.486 + <path 118.487 + inkscape:connector-curvature="0" 118.488 + id="123" 118.489 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.490 + d="m 517.22213,532.64946 0,23.24944 -0.60617,0 -0.60618,0 0,-23.24944 0.60618,0 0.60617,0 z" /> 118.491 + <path 118.492 + inkscape:connector-curvature="0" 118.493 + id="124" 118.494 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.495 + d="m 517.22213,555.8989 0,0 c 0,0.0905 -0.0485,0.16285 -0.097,0.23522 -0.0485,0.0723 -0.12124,0.12669 -0.19397,0.16285 -0.097,0.0362 -0.19398,0.0723 -0.31521,0.0723 l 0,0 0,-0.47044 0.60617,0 z" /> 118.496 + <path 118.497 + inkscape:connector-curvature="0" 118.498 + id="125" 118.499 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.500 + d="m 516.61596,556.36933 -39.03764,0 0,-0.47043 0,-0.45232 39.03764,0 0,0.45232 0,0.47043 z" /> 118.501 + <path 118.502 + inkscape:connector-curvature="0" 118.503 + id="126" 118.504 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.505 + d="m 477.57832,556.36933 0,0 c -0.12124,0 -0.21822,-0.0362 -0.31521,-0.0723 -0.097,-0.0362 -0.16973,-0.0905 -0.21822,-0.16285 -0.0485,-0.0723 -0.0727,-0.14473 -0.0727,-0.23521 l 0,0 0.60617,0 0,0.47043 z" /> 118.506 + <path 118.507 + inkscape:connector-curvature="0" 118.508 + id="127" 118.509 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.510 + d="m 476.97215,555.8989 0,-23.24944 0.60617,0 0.63042,0 0,23.24944 -0.63042,0 -0.60617,0 z" /> 118.511 + <path 118.512 + inkscape:connector-curvature="0" 118.513 + id="137" 118.514 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.515 + d="m 548.25826,547.77517 0,0 0,1.99023 -0.65467,0 0,-5.19268 0,0 0,0 c 0.48494,-0.0181 0.80016,-0.0362 0.89714,-0.0362 l 0,0 0,0 c 1.38208,0 2.08524,0.50661 2.08524,1.51981 l 0,0 0,0 c 0,1.17605 -0.60618,1.75502 -1.84277,1.75502 l 0,0 0,0 c -0.0727,0 -0.24247,0 -0.48494,-0.0362 z m 0,-2.56919 0,0 0,1.93593 0,0 0,0 c 0.26672,0.0181 0.4122,0.0362 0.43645,0.0362 l 0,0 0,0 c 0.82439,0 1.21235,-0.34377 1.21235,-1.04941 l 0,0 0,0 c 0,-0.63323 -0.43645,-0.95892 -1.2851,-0.95892 l 0,0 0,0 c -0.097,0 -0.21821,0.0181 -0.3637,0.0362 z" /> 118.516 + <path 118.517 + inkscape:connector-curvature="0" 118.518 + id="138" 118.519 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.520 + d="m 551.33762,548.71599 0,0 0,-4.30612 0.63043,0 0,4.17948 0,0 0,0 c 0,0.21713 0.0485,0.37995 0.16973,0.48851 l 0,0 0,0 c 0.097,0.10858 0.24247,0.16283 0.41219,0.16283 l 0,0 0,0.59707 0,0 0,0 c -0.80014,0 -1.21235,-0.37995 -1.21235,-1.12177 z" /> 118.521 + <path 118.522 + inkscape:connector-curvature="0" 118.523 + id="139" 118.524 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.525 + d="m 553.83507,545.96588 0,0 0,2.44253 0,0 0,0 c 0,0.59707 0.24246,0.86847 0.70315,0.86847 l 0,0 0,0 c 0.19398,0 0.36371,-0.0723 0.53344,-0.18092 l 0,0 0,0 c 0.16973,-0.1267 0.29097,-0.2714 0.33946,-0.43424 l 0,0 0,-2.69584 0.63042,0 0,3.79952 -0.63042,0 0,-0.52471 0,0 0,0 c -0.0727,0.16285 -0.19398,0.2895 -0.4122,0.41614 l 0,0 0,0 c -0.21822,0.1267 -0.38795,0.18093 -0.60618,0.18093 l 0,0 0,0 c -0.3637,0 -0.67891,-0.10857 -0.87289,-0.34376 l 0,0 0,0 c -0.19397,-0.25331 -0.31521,-0.57897 -0.31521,-1.0132 l 0,0 0,-2.51492 0.63043,0 z" /> 118.526 + <path 118.527 + inkscape:connector-curvature="0" 118.528 + id="140" 118.529 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.530 + d="m 556.76895,550.81479 0,0 0.33946,-0.54279 0,0 0,0 c 0.33945,0.2714 0.67891,0.39804 0.99413,0.39804 l 0,0 0,0 c 0.26671,0 0.50918,-0.0542 0.65467,-0.16284 l 0,0 0,0 c 0.14548,-0.0905 0.21821,-0.2352 0.21821,-0.37993 l 0,0 0,0 c 0,-0.30759 -0.16973,-0.47044 -0.58192,-0.47044 l 0,0 0,0 c -0.0727,0 -0.19398,0.0181 -0.38796,0.0544 l 0,0 0,0 c -0.16972,0.0361 -0.3152,0.0542 -0.41219,0.0542 l 0,0 0,0 c -0.50919,0 -0.75166,-0.19902 -0.75166,-0.61517 l 0,0 0,0 c 0,-0.10857 0.0485,-0.21711 0.16973,-0.32567 l 0,0 0,0 c 0.12123,-0.0905 0.26671,-0.16284 0.43644,-0.2171 l 0,0 0,0 c -0.48494,-0.25332 -0.75165,-0.68754 -0.75165,-1.3027 l 0,0 0,0 c 0,-0.39805 0.14548,-0.74182 0.38795,-0.99513 l 0,0 0,0 c 0.26672,-0.27138 0.58193,-0.39802 0.94563,-0.39802 l 0,0 0,0 c 0.33946,0 0.63042,0.0723 0.80015,0.2171 l 0,0 0.29097,-0.39805 0.41219,0.41615 -0.3637,0.30758 0,0 0,0 c 0.14548,0.21712 0.24247,0.5247 0.24247,0.88656 l 0,0 0,0 c 0,0.37996 -0.12123,0.70562 -0.33945,0.95893 l 0,0 0,0 c -0.21823,0.27138 -0.48494,0.41612 -0.84865,0.45231 l 0,0 -0.50919,0.0544 0,0 0,0 c -0.0485,0.0181 -0.14548,0.0361 -0.24247,0.0905 l 0,0 0,0 c -0.097,0.0362 -0.14548,0.0905 -0.14548,0.16283 l 0,0 0,0 c 0,0.0723 0.097,0.1267 0.31521,0.1267 l 0,0 0,0 c 0.097,0 0.24247,-0.0181 0.43645,-0.0544 l 0,0 0,0 c 0.19398,-0.0362 0.33946,-0.0362 0.43644,-0.0362 l 0,0 0,0 c 0.31521,0 0.58193,0.0723 0.77591,0.25329 l 0,0 0,0 c 0.19397,0.18094 0.29096,0.43424 0.29096,0.74182 l 0,0 0,0 c 0,0.36185 -0.14548,0.63326 -0.43645,0.85036 l 0,0 0,0 c -0.29096,0.21712 -0.63042,0.32567 -1.06686,0.32567 l 0,0 0,0 c -0.21822,0 -0.4607,-0.0362 -0.70316,-0.12669 l 0,0 0,0 c -0.26672,-0.0905 -0.4607,-0.19904 -0.60618,-0.32568 z m 1.30934,-4.3604 0,0 0,0 c -0.21822,0 -0.38795,0.0723 -0.53343,0.2352 l 0,0 0,0 c -0.12125,0.18093 -0.19398,0.37995 -0.19398,0.61517 l 0,0 0,0 c 0,0.27139 0.0727,0.48851 0.19398,0.66944 l 0,0 0,0 c 0.12123,0.16284 0.31521,0.25328 0.53343,0.25328 l 0,0 0,0 c 0.21822,0 0.38795,-0.0905 0.50919,-0.25328 l 0,0 0,0 c 0.12123,-0.16285 0.19397,-0.39805 0.19397,-0.66944 l 0,0 0,0 c 0,-0.23522 -0.0727,-0.43424 -0.19397,-0.61517 l 0,0 0,0 c -0.14548,-0.16283 -0.31521,-0.2352 -0.50919,-0.2352 z" /> 118.531 + <path 118.532 + inkscape:connector-curvature="0" 118.533 + id="141" 118.534 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.535 + d="m 560.86669,544.53653 0,0 0,0 c 0.097,0 0.19397,0.0362 0.26672,0.10857 l 0,0 0,0 c 0.0727,0.0905 0.12123,0.18093 0.12123,0.30758 l 0,0 0,0 c 0,0.10858 -0.0485,0.21712 -0.12123,0.2895 l 0,0 0,0 c -0.0728,0.0905 -0.16973,0.12669 -0.26672,0.12669 l 0,0 0,0 c -0.097,0 -0.19398,-0.0362 -0.26672,-0.12669 l 0,0 0,0 c -0.0727,-0.0723 -0.12123,-0.18093 -0.12123,-0.2895 l 0,0 0,0 c 0,-0.12669 0.0485,-0.21711 0.12123,-0.30758 l 0,0 0,0 c 0.0727,-0.0723 0.16973,-0.10857 0.26672,-0.10857 z m -0.33946,5.22887 0,0 0,-3.22055 -0.48494,0 0,-0.57897 1.11537,0 0,3.79952 -0.63043,0 z" /> 118.536 + <path 118.537 + inkscape:connector-curvature="0" 118.538 + id="142" 118.539 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.540 + d="m 564.28551,549.7654 0,0 0,-2.18925 0,0 0,0 c 0,-0.41614 -0.0485,-0.68752 -0.16973,-0.85037 l 0,0 0,0 c -0.097,-0.16284 -0.29096,-0.2533 -0.55768,-0.2533 l 0,0 0,0 c -0.14548,0 -0.29096,0.0542 -0.43644,0.14473 l 0,0 0,0 c -0.16973,0.0905 -0.29096,0.19904 -0.36371,0.34378 l 0,0 0,2.80441 -0.63042,0 0,-3.79952 0.43645,0 0.19397,0.5066 0,0 0,0 c 0.19398,-0.37995 0.53344,-0.56088 0.99413,-0.56088 l 0,0 0,0 c 0.77591,0 1.13961,0.50659 1.13961,1.5198 l 0,0 0,2.334 -0.60618,0 z" /> 118.541 + <path 118.542 + inkscape:connector-curvature="0" 118.543 + id="143" 118.544 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.545 + d="m 536.23176,532.64946 0,0 c 0,-0.0905 0.0242,-0.16283 0.0727,-0.23519 0.0485,-0.0723 0.12123,-0.1267 0.21822,-0.16285 0.097,-0.0362 0.19398,-0.0542 0.31522,-0.0542 l 0,0 0,0.45231 -0.60618,0 z" /> 118.546 + <path 118.547 + inkscape:connector-curvature="0" 118.548 + id="144" 118.549 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.550 + d="m 536.83794,532.19714 39.06188,0 0,0.45232 0,0.47042 -39.06188,0 0,-0.47042 0,-0.45232 z" /> 118.551 + <path 118.552 + inkscape:connector-curvature="0" 118.553 + id="145" 118.554 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.555 + d="m 575.89982,532.19714 0,0 c 0.12123,0 0.21822,0.0181 0.31521,0.0542 0.097,0.0362 0.16973,0.0905 0.21822,0.16285 0.0485,0.0723 0.097,0.14473 0.097,0.23519 l 0,0 0,0 -0.63042,0 0,-0.45231 z" /> 118.556 + <path 118.557 + inkscape:connector-curvature="0" 118.558 + id="146" 118.559 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.560 + d="m 576.53024,532.64946 0,23.17707 -0.63042,0 -0.60618,0 0,-23.17707 0.60618,0 0.63042,0 z" /> 118.561 + <path 118.562 + inkscape:connector-curvature="0" 118.563 + id="147" 118.564 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.565 + d="m 576.53024,555.82653 0,0 c 0,0.0905 -0.0485,0.16285 -0.097,0.23522 -0.0485,0.0723 -0.12124,0.12669 -0.21822,0.16282 -0.097,0.0362 -0.19398,0.0723 -0.31521,0.0723 l 0,0 0,-0.47043 0.63042,0 z" /> 118.566 + <path 118.567 + inkscape:connector-curvature="0" 118.568 + id="148" 118.569 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.570 + d="m 575.89982,556.29697 -39.06188,0 0,-0.47044 0,-0.45233 39.06188,0 0,0.45233 0,0.47044 z" /> 118.571 + <path 118.572 + inkscape:connector-curvature="0" 118.573 + id="149" 118.574 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.575 + d="m 536.83794,556.29697 0,0 c -0.12124,0 -0.21823,-0.0362 -0.31522,-0.0723 -0.097,-0.0362 -0.16973,-0.0905 -0.21822,-0.16283 -0.0485,-0.0723 -0.0727,-0.14476 -0.0727,-0.23521 l 0,0 0.60618,0 0,0.47043 z" /> 118.576 + <path 118.577 + inkscape:connector-curvature="0" 118.578 + id="150" 118.579 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.580 + d="m 536.23176,555.82653 0,-23.17707 0.60618,0 0.63042,0 0,23.17707 -0.63042,0 -0.60618,0 z" /> 118.581 + <path 118.582 + inkscape:connector-curvature="0" 118.583 + id="151" 118.584 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.585 + d="m 234.30839,556.22457 16.00301,17.17023 -0.48494,0.25328 -0.48495,0.2533 -16.00301,-17.1702 0.48495,-0.2533 0.48494,-0.25331 z" /> 118.586 + <path 118.587 + inkscape:connector-curvature="0" 118.588 + id="152" 118.589 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.590 + d="m 248.6626,568.79917 0,0 2.03674,5.75357 -6.49818,-3.40148 0,0 0,0 c 1.98825,0.0542 3.80677,-0.92273 4.46144,-2.35209 z" /> 118.591 + <path 118.592 + inkscape:connector-curvature="0" 118.593 + id="153" 118.594 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.595 + d="m 350.88787,556.64072 -9.43208,17.17021 -0.53343,-0.16285 -0.53344,-0.16283 9.43206,-17.17021 0.53345,0.16284 0.53344,0.16284 z" /> 118.596 + <path 118.597 + inkscape:connector-curvature="0" 118.598 + id="154" 118.599 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.600 + d="m 345.72324,570.28282 0,0 -5.35857,4.39658 0.29097,-5.95259 0,0 0,0 c 1.06686,1.28459 3.10361,1.93593 5.0676,1.55601 z" /> 118.601 + <path 118.602 + inkscape:connector-curvature="0" 118.603 + id="190" 118.604 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.605 + d="m 366.58037,412.96271 20.70691,11.39855 -0.33945,0.34377 -0.33946,0.34377 -20.70692,-11.39856 0.33947,-0.34377 0.33945,-0.34376 z" /> 118.606 + <path 118.607 + inkscape:connector-curvature="0" 118.608 + id="191" 118.609 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.610 + d="m 383.77147,420.38082 0,0 4.38871,4.97556 -7.61357,-1.64646 0,0 0,0 c 1.89128,-0.47041 3.20061,-1.80929 3.22486,-3.3291 z" /> 118.611 + <path 118.612 + inkscape:connector-curvature="0" 118.613 + id="192" 118.614 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.615 + d="m 396.67087,413.30647 -0.0727,11.39856 -0.58194,0 -0.58191,0 0.0727,-11.39856 0.58193,0 0.58193,0 z" /> 118.616 + <path 118.617 + inkscape:connector-curvature="0" 118.618 + id="193" 118.619 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.620 + d="m 398.8046,420.23607 0,0 -2.78841,5.57264 -2.69141,-5.59073 0,0 0,0 c 1.6003,0.90464 3.83103,0.90464 5.47982,0.0181 z" /> 118.621 + <path 118.622 + inkscape:connector-curvature="0" 118.623 + id="194" 118.624 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.625 + d="m 426.20369,413.65024 -20.68269,11.39856 -0.33945,-0.34377 -0.33946,-0.34377 20.68268,-11.39855 0.33947,0.34376 0.33945,0.34377 z" /> 118.626 + <path 118.627 + inkscape:connector-curvature="0" 118.628 + id="195" 118.629 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.630 + d="m 411.60701,423.72802 0,0 -7.6378,1.64645 4.36445,-4.97556 0,0 0,0 c 0,1.50172 1.33358,2.8406 3.27335,3.32911 z" /> 118.631 + <path 118.632 + inkscape:connector-curvature="0" 118.633 + id="384" 118.634 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.635 + d="m 269.93937,497.76592 -36.08647,34.26838 -0.3542,-0.27594 -0.35416,-0.29319 36.10617,-34.25113 0.35416,0.27593 0.3345,0.27595 z" /> 118.636 + <path 118.637 + inkscape:connector-curvature="0" 118.638 + id="385" 118.639 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.640 + d="m 239.64272,529.88124 0,0 -7.08011,2.69585 3.05511,-5.50024 0,0 0,0 c 0.38796,1.48361 1.98826,2.60538 4.025,2.80439 z" /> 118.641 + <path 118.642 + inkscape:connector-curvature="0" 118.643 + id="386" 118.644 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.645 + d="m 372.77081,497.0111 -79.52566,35.18604 -0.2629,-0.37112 -0.26289,-0.38879 79.52566,-35.16835 0.2629,0.3711 0.26289,0.37112 z" /> 118.646 + <path 118.647 + inkscape:connector-curvature="0" 118.648 + id="387" 118.649 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.650 + d="m 299.53276,531.47343 0,0 -7.85603,0.90464 5.21312,-4.48706 0,0 0,0 c -0.26673,1.50171 0.8244,2.93107 2.64291,3.58242 z" /> 118.651 + <path 118.652 + inkscape:connector-curvature="0" 118.653 + id="388" 118.654 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.655 + d="m 473.50489,497.75866 -120.9015,34.45656 -0.17886,-0.37526 -0.17883,-0.39232 120.90149,-34.43951 0.17885,0.37527 0.17885,0.37526 z" /> 118.656 + <path 118.657 + inkscape:connector-curvature="0" 118.658 + id="389" 118.659 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.660 + d="m 358.9621,532.19714 0,0 -7.92875,0.0362 6.01325,-3.87189 0,0 0,0 c -0.55769,1.44743 0.24246,2.96724 1.9155,3.83571 z" /> 118.661 + <path 118.662 + inkscape:connector-curvature="0" 118.663 + id="390" 118.664 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.665 + d="m 317.90247,496.23268 122.26277,35.18809 -0.18017,0.42418 -0.18016,0.40647 -122.26276,-35.20575 0.18015,-0.4065 0.18017,-0.40649 z" /> 118.666 + <path 118.667 + inkscape:connector-curvature="0" 118.668 + id="391" 118.669 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.670 + d="m 435.36433,528.36144 0,0 6.01325,3.85378 -7.90451,0 0,0 0,0 c 1.67304,-0.85036 2.4247,-2.38826 1.89126,-3.85378 z" /> 118.671 + <path 118.672 + inkscape:connector-curvature="0" 118.673 + id="392" 118.674 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.675 + d="m 420.00549,496.69623 79.61334,34.7681 -0.23423,0.38421 -0.23421,0.36668 -79.61334,-34.78558 0.23422,-0.36671 0.23422,-0.3667 z" /> 118.676 + <path 118.677 + inkscape:connector-curvature="0" 118.678 + id="393" 118.679 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.680 + d="m 495.39985,527.9272 0,0 5.31008,4.41469 -7.85602,-0.7961 0,0 0,0 c 1.79428,-0.66943 2.8369,-2.11687 2.54594,-3.61859 z" /> 118.681 + <path 118.682 + inkscape:connector-curvature="0" 118.683 + id="394" 118.684 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.685 + d="m 521.32171,496.34125 37.84769,35.2008 -0.31182,0.30042 -0.33132,0.30038 -37.86718,-35.20079 0.33131,-0.30042 0.33132,-0.30039 z" /> 118.686 + <path 118.687 + inkscape:connector-curvature="0" 118.688 + id="395" 118.689 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.690 + d="m 556.59922,527.20349 0,0 3.22485,5.42787 -7.10437,-2.55109 0,0 0,0 c 1.93976,-0.21711 3.51581,-1.37505 3.87952,-2.87678 z" /> 118.691 + <path 118.692 + inkscape:connector-curvature="0" 118.693 + id="396" 118.694 + style="fill:#ff6600;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.695 + d="m 483.85828,574.46227 0,-2.53302 -2.08523,0 0,2.53302 -0.63043,0 0,-5.24695 0.63043,0 0,2.11687 2.08523,0 0,-2.11687 0.65468,0 0,5.24695 -0.65468,0 z" /> 118.696 + <path 118.697 + inkscape:connector-curvature="0" 118.698 + id="397" 118.699 + style="fill:#ff6600;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.700 + d="m 489.16837,574.53464 -0.21822,0 -1.13961,-3.60049 -1.04262,3.60049 -0.19397,0 -1.52756,-5.31932 0.67891,0 0.96989,3.67285 1.04262,-3.67285 0.21821,0 1.04262,3.65477 0.96988,-3.65477 0.67892,0 -1.47907,5.31932 z" /> 118.701 + <path 118.702 + inkscape:connector-curvature="0" 118.703 + id="398" 118.704 + style="fill:#ff6600;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.705 + d="m 496.22425,569.41434 0,0 -0.21823,0.59706 0,0 0,0 c -0.19397,-0.16282 -0.53343,-0.23522 -0.96987,-0.23522 l 0,0 0,0 c -0.43645,0 -0.77591,0.18096 -1.01838,0.57899 l 0,0 0,0 c -0.26672,0.41613 -0.38795,0.92275 -0.38795,1.55599 l 0,0 0,0 c 0,0.57898 0.12123,1.0675 0.38795,1.42935 l 0,0 0,0 c 0.26672,0.37995 0.60618,0.56087 1.01838,0.56087 l 0,0 0,0 c 0.43644,0 0.80014,-0.16283 1.04262,-0.52468 l 0,0 0.33946,0.56087 0,0 0,0 c -0.36371,0.39805 -0.84865,0.61517 -1.45483,0.61517 l 0,0 0,0 c -0.63042,0 -1.11535,-0.25329 -1.47906,-0.74181 l 0,0 0,0 c -0.36371,-0.48852 -0.50919,-1.13986 -0.50919,-1.95404 l 0,0 0,0 c 0,-0.77801 0.16973,-1.44745 0.55768,-1.95404 l 0,0 0,0 c 0.3637,-0.52469 0.87289,-0.778 1.47907,-0.778 l 0,0 0,0 c 0.50918,0 0.92138,0.0905 1.21235,0.28949 z" /> 118.706 + <path 118.707 + inkscape:connector-curvature="0" 118.708 + id="399" 118.709 + style="fill:#ff6600;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.710 + d="m 497.16988,573.3767 0,0 0,-4.32422 0.63042,0 0,4.21567 0,0 0,0 c 0,0.19902 0.0485,0.36184 0.16973,0.4704 l 0,0 0,0 c 0.097,0.1267 0.24247,0.18093 0.4122,0.18093 l 0,0 0,0.61516 0,0 0,0 c -0.80015,0 -1.21235,-0.39804 -1.21235,-1.15794 z" /> 118.711 + <path 118.712 + inkscape:connector-curvature="0" 118.713 + id="400" 118.714 + style="fill:#ff6600;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.715 + d="m 501.04939,574.00994 0,0 0,0 c -0.24246,0.34378 -0.63042,0.5247 -1.1396,0.5247 l 0,0 0,0 c -0.26672,0 -0.50919,-0.10858 -0.70317,-0.32568 l 0,0 0,0 c -0.16973,-0.2171 -0.29096,-0.4885 -0.29096,-0.81416 l 0,0 0,0 c 0,-0.39807 0.14548,-0.72373 0.46069,-0.99513 l 0,0 0,0 c 0.29096,-0.25329 0.70317,-0.39804 1.1881,-0.39804 l 0,0 0,0 c 0.12124,0 0.26673,0.0362 0.43645,0.0905 l 0,0 0,0 c 0,-0.61515 -0.24247,-0.92272 -0.75166,-0.92272 l 0,0 0,0 c -0.38795,0 -0.70316,0.12669 -0.89714,0.34375 l 0,0 -0.26671,-0.56088 0,0 0,0 c 0.12123,-0.10857 0.29096,-0.19902 0.48494,-0.27138 l 0,0 0,0 c 0.21822,-0.0723 0.4122,-0.1267 0.60617,-0.1267 l 0,0 0,0 c 0.50919,0 0.87289,0.14473 1.09112,0.39804 l 0,0 0,0 c 0.24247,0.2533 0.3637,0.65134 0.3637,1.19414 l 0,0 0,1.37505 0,0 0,0 c 0,0.32569 0.0727,0.56089 0.26672,0.66944 l 0,0 0,0.32567 0,0 0,0 c -0.24247,0 -0.43644,-0.0362 -0.55768,-0.10857 l 0,0 0,0 c -0.14549,-0.0723 -0.21822,-0.21714 -0.29097,-0.39807 z m -0.0485,-1.42934 0,0 0,0 c -0.19397,-0.0542 -0.33945,-0.0723 -0.4122,-0.0723 l 0,0 0,0 c -0.31521,0 -0.58193,0.0905 -0.7759,0.27142 l 0,0 0,0 c -0.19397,0.16282 -0.29097,0.37995 -0.29097,0.61516 l 0,0 0,0 c 0,0.39804 0.21823,0.59706 0.65467,0.59706 l 0,0 0,0 c 0.31522,0 0.58193,-0.16285 0.8244,-0.48851 l 0,-0.92275 z" /> 118.716 + <path 118.717 + inkscape:connector-curvature="0" 118.718 + id="401" 118.719 + style="fill:#ff6600;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.720 + d="m 502.38297,574.22707 0,0 0.21823,-0.63326 0,0 0,0 c 0.33946,0.2352 0.60618,0.36186 0.8244,0.36186 l 0,0 0,0 c 0.38795,0 0.58193,-0.18092 0.58193,-0.5247 l 0,0 0,0 c 0,-0.25331 -0.19398,-0.47041 -0.55769,-0.65133 l 0,0 0,0 c -0.29096,-0.14475 -0.48493,-0.25331 -0.58192,-0.32568 l 0,0 0,0 c -0.097,-0.0723 -0.19397,-0.16285 -0.26672,-0.25329 l 0,0 0,0 c -0.0727,-0.0905 -0.12123,-0.18095 -0.14548,-0.28951 l 0,0 0,0 c -0.0485,-0.10858 -0.0727,-0.21711 -0.0727,-0.34375 l 0,0 0,0 c 0,-0.3076 0.12125,-0.56089 0.31522,-0.74182 l 0,0 0,0 c 0.21822,-0.16285 0.48494,-0.27139 0.8244,-0.27139 l 0,0 0,0 c 0.26671,0 0.58192,0.10858 0.96988,0.27139 l 0,0 -0.16973,0.63326 0,0 0,0 c -0.24248,-0.21712 -0.50919,-0.32568 -0.75166,-0.32568 l 0,0 0,0 c -0.14548,0 -0.26672,0.0362 -0.3637,0.1267 l 0,0 0,0 c -0.097,0.0723 -0.16973,0.16283 -0.16973,0.2714 l 0,0 0,0 c 0,0.2533 0.14548,0.43423 0.38795,0.56087 l 0,0 0.46069,0.21714 0,0 0,0 c 0.26672,0.14474 0.4607,0.28948 0.58193,0.47041 l 0,0 0,0 c 0.12123,0.18093 0.19397,0.39803 0.19397,0.65134 l 0,0 0,0 c 0,0.34378 -0.12123,0.61516 -0.33945,0.81418 l 0,0 0,0 c -0.21823,0.18093 -0.50919,0.28948 -0.92139,0.28948 l 0,0 0,0 c -0.3637,0 -0.70316,-0.10858 -1.01838,-0.30757 z" /> 118.721 + <path 118.722 + inkscape:connector-curvature="0" 118.723 + id="402" 118.724 + style="fill:#ff6600;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.725 + d="m 505.05015,574.22707 0,0 0.21822,-0.63326 0,0 0,0 c 0.3637,0.2352 0.63042,0.36186 0.84864,0.36186 l 0,0 0,0 c 0.38795,0 0.58193,-0.18092 0.58193,-0.5247 l 0,0 0,0 c 0,-0.25331 -0.19398,-0.47041 -0.55768,-0.65133 l 0,0 0,0 c -0.29096,-0.14475 -0.48494,-0.25331 -0.58192,-0.32568 l 0,0 0,0 c -0.097,-0.0723 -0.19398,-0.16285 -0.26673,-0.25329 l 0,0 0,0 c -0.0727,-0.0905 -0.12123,-0.18095 -0.16973,-0.28951 l 0,0 0,0 c -0.0242,-0.10858 -0.0485,-0.21711 -0.0485,-0.34375 l 0,0 0,0 c 0,-0.3076 0.097,-0.56089 0.31521,-0.74182 l 0,0 0,0 c 0.21821,-0.16285 0.48493,-0.27139 0.82439,-0.27139 l 0,0 0,0 c 0.26672,0 0.58192,0.10858 0.96988,0.27139 l 0,0 -0.19398,0.63326 0,0 0,0 c -0.24246,-0.21712 -0.48494,-0.32568 -0.7274,-0.32568 l 0,0 0,0 c -0.14549,0 -0.26672,0.0362 -0.38796,0.1267 l 0,0 0,0 c -0.097,0.0723 -0.14548,0.16283 -0.14548,0.2714 l 0,0 0,0 c 0,0.2533 0.12124,0.43423 0.38795,0.56087 l 0,0 0.43645,0.21714 0,0 0,0 c 0.29096,0.14474 0.48494,0.28948 0.60617,0.47041 l 0,0 0,0 c 0.12124,0.18093 0.19398,0.39803 0.19398,0.65134 l 0,0 0,0 c 0,0.34378 -0.12123,0.61516 -0.33946,0.81418 l 0,0 0,0 c -0.21823,0.18093 -0.53343,0.28948 -0.92138,0.28948 l 0,0 0,0 c -0.36371,0 -0.70316,-0.10858 -1.04262,-0.30757 z" /> 118.726 + <path 118.727 + inkscape:connector-curvature="0" 118.728 + id="403" 118.729 + style="fill:#ff6600;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.730 + d="m 511.40285,574.46227 0,0 -1.35783,0 0,-5.24695 0,0 0,0 c 0.60618,-0.0362 0.99413,-0.0544 1.2366,-0.0544 l 0,0 0,0 c 0.48494,0 0.84864,0.1267 1.11536,0.34377 l 0,0 0,0 c 0.24247,0.21713 0.38795,0.5428 0.38795,0.95893 l 0,0 0,0 c 0,0.2533 -0.097,0.47042 -0.24246,0.66944 l 0,0 0,0 c -0.16973,0.19902 -0.36371,0.32568 -0.55769,0.37995 l 0,0 0,0 c 0.38796,0.0905 0.65467,0.2714 0.8244,0.48851 l 0,0 0,0 c 0.16973,0.23521 0.26671,0.54279 0.26671,0.94083 l 0,0 0,0 c 0,0.47042 -0.16973,0.83229 -0.46069,1.10368 l 0,0 0,0 c -0.31521,0.27139 -0.72741,0.41613 -1.21235,0.41613 z m -0.70316,-4.66797 0,0 0,1.50172 0,0 0,0 c 0.14549,0.0181 0.31522,0.0362 0.50918,0.0362 l 0,0 0,0 c 0.60618,0 0.92139,-0.27139 0.92139,-0.85037 l 0,0 0,0 c 0,-0.48851 -0.29096,-0.72373 -0.84864,-0.72373 l 0,0 0,0 c -0.21823,0 -0.38796,0.0181 -0.58193,0.0362 z m 0,2.06259 0,0 0,1.99023 0,0 0,0 c 0.24247,0.0181 0.38795,0.0362 0.50918,0.0362 l 0,0 0,0 c 0.41221,0 0.70317,-0.0723 0.89715,-0.2533 l 0,0 0,0 c 0.19397,-0.16283 0.26672,-0.43421 0.26672,-0.79609 l 0,0 0,0 c 0,-0.34376 -0.0728,-0.59707 -0.26672,-0.75989 l 0,0 0,0 c -0.16973,-0.14476 -0.4607,-0.23522 -0.89715,-0.23522 l -0.50918,0.0181 z" /> 118.731 + <path 118.732 + inkscape:connector-curvature="0" 118.733 + id="404" 118.734 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.735 + d="m 278.82584,573.43097 0,-2.51492 -2.08524,0 0,2.51492 -0.65467,0 0,-5.22886 0.65467,0 0,2.08071 2.08524,0 0,-2.08071 0.65467,0 0,5.22886 -0.65467,0 z" /> 118.736 + <path 118.737 + inkscape:connector-curvature="0" 118.738 + id="405" 118.739 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.740 + d="m 284.11168,573.50335 -0.19397,0 -1.13961,-3.6186 -1.06686,3.6186 -0.19399,0 -1.50331,-5.30124 0.67891,0 0.94564,3.65478 1.06686,-3.65478 0.21823,0 1.04262,3.65478 0.92138,-3.65478 0.70316,0 -1.47906,5.30124 z" /> 118.741 + <path 118.742 + inkscape:connector-curvature="0" 118.743 + id="406" 118.744 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.745 + d="m 291.16755,568.38304 0,0 -0.21822,0.61515 0,0 0,0 c -0.21822,-0.16282 -0.55768,-0.25329 -0.96988,-0.25329 l 0,0 0,0 c -0.43645,0 -0.75165,0.19903 -1.01838,0.59707 l 0,0 0,0 c -0.24247,0.39805 -0.38794,0.90465 -0.38794,1.53791 l 0,0 0,0 c 0,0.59706 0.14547,1.08557 0.38794,1.44743 l 0,0 0,0 c 0.26673,0.36184 0.60618,0.56086 1.01838,0.56086 l 0,0 0,0 c 0.43645,0 0.77591,-0.18091 1.01836,-0.52468 l 0,0 0.36372,0.5428 0,0 0,0 c -0.38795,0.41612 -0.8729,0.61514 -1.45481,0.61514 l 0,0 0,0 c -0.63042,0 -1.11537,-0.23519 -1.47907,-0.74179 l 0,0 0,0 c -0.36371,-0.48853 -0.53343,-1.13987 -0.53343,-1.93596 l 0,0 0,0 c 0,-0.79608 0.19397,-1.44743 0.58192,-1.97214 l 0,0 0,0 c 0.38794,-0.50658 0.87289,-0.7599 1.47907,-0.7599 l 0,0 0,0 c 0.50919,0 0.89714,0.0905 1.21234,0.2714 z" /> 118.746 + <path 118.747 + inkscape:connector-curvature="0" 118.748 + id="407" 118.749 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.750 + d="m 292.11319,572.36349 0,0 0,-4.32421 0.60617,0 0,4.19756 0,0 0,0 c 0,0.21712 0.0485,0.36187 0.16973,0.48851 l 0,0 0,0 c 0.097,0.10857 0.24247,0.18094 0.4122,0.18094 l 0,0 0,0.59706 0,0 0,0 c -0.80015,0 -1.1881,-0.37996 -1.1881,-1.13986 z" /> 118.751 + <path 118.752 + inkscape:connector-curvature="0" 118.753 + id="408" 118.754 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.755 + d="m 296.01695,572.99673 0,0 0,0 c -0.26672,0.34378 -0.63042,0.50662 -1.13961,0.50662 l 0,0 0,0 c -0.29097,0 -0.53344,-0.10858 -0.7274,-0.32569 l 0,0 0,0 c -0.19398,-0.2171 -0.29097,-0.48851 -0.29097,-0.81417 l 0,0 0,0 c 0,-0.37996 0.14549,-0.70562 0.46068,-0.97702 l 0,0 0,0 c 0.31522,-0.27139 0.70317,-0.39803 1.18812,-0.39803 l 0,0 0,0 c 0.12123,0 0.26671,0.0361 0.43643,0.0905 l 0,0 0,0 c 0,-0.63325 -0.24247,-0.94083 -0.75165,-0.94083 l 0,0 0,0 c -0.38795,0 -0.67891,0.10858 -0.89713,0.34377 l 0,0 -0.26672,-0.57897 0,0 0,0 c 0.12124,-0.0905 0.29095,-0.18093 0.48494,-0.2714 l 0,0 0,0 c 0.21821,-0.0723 0.4122,-0.10858 0.60616,-0.10858 l 0,0 0,0 c 0.5092,0 0.8729,0.12669 1.09113,0.37995 l 0,0 0,0 c 0.21822,0.25331 0.33945,0.65135 0.33945,1.23032 l 0,0 0,1.35697 0,0 0,0 c 0,0.34377 0.097,0.56088 0.26672,0.66944 l 0,0 0,0.34377 0,0 0,0 c -0.24247,0 -0.43645,-0.0362 -0.55768,-0.1267 l 0,0 0,0 c -0.12124,-0.0723 -0.21822,-0.19903 -0.24247,-0.37996 z m -0.0727,-1.42932 0,0 0,0 c -0.19397,-0.0544 -0.33945,-0.0723 -0.41218,-0.0723 l 0,0 0,0 c -0.31522,0 -0.55768,0.0905 -0.75167,0.25331 l 0,0 0,0 c -0.21823,0.18091 -0.31521,0.37995 -0.31521,0.63326 l 0,0 0,0 c 0,0.39804 0.21823,0.59706 0.65466,0.59706 l 0,0 0,0 c 0.31522,0 0.58193,-0.16285 0.8244,-0.48852 l 0,-0.92273 z" /> 118.756 + <path 118.757 + inkscape:connector-curvature="0" 118.758 + id="409" 118.759 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.760 + d="m 297.30203,573.21387 0,0 0.21823,-0.65136 0,0 0,0 c 0.33945,0.2533 0.63042,0.37995 0.8244,0.37995 l 0,0 0,0 c 0.38795,0 0.58193,-0.18092 0.58193,-0.54279 l 0,0 0,0 c 0,-0.2352 -0.19398,-0.45231 -0.55768,-0.63324 l 0,0 0,0 c -0.29096,-0.14475 -0.48495,-0.25331 -0.58193,-0.32568 l 0,0 0,0 c -0.097,-0.0723 -0.16973,-0.16283 -0.24247,-0.2533 l 0,0 0,0 c -0.0727,-0.0905 -0.14548,-0.19901 -0.16973,-0.30757 l 0,0 0,0 c -0.0485,-0.10858 -0.0485,-0.21714 -0.0485,-0.36188 l 0,0 0,0 c 0,-0.30758 0.097,-0.54277 0.31522,-0.7237 l 0,0 0,0 c 0.19396,-0.18094 0.48493,-0.2714 0.82439,-0.2714 l 0,0 0,0 c 0.24247,0 0.55769,0.0905 0.94564,0.2714 l 0,0 -0.16974,0.63325 0,0 0,0 c -0.24246,-0.21713 -0.48493,-0.32568 -0.75165,-0.32568 l 0,0 0,0 c -0.14548,0 -0.26671,0.0362 -0.36371,0.10858 l 0,0 0,0 c -0.097,0.0723 -0.14548,0.18094 -0.14548,0.28949 l 0,0 0,0 c 0,0.27139 0.12124,0.45233 0.36371,0.57897 l 0,0 0.46068,0.21714 0,0 0,0 c 0.26674,0.12656 0.4607,0.28948 0.58194,0.47041 l 0,0 0,0 c 0.14548,0.16282 0.19398,0.37995 0.19398,0.65133 l 0,0 0,0 c 0,0.34378 -0.097,0.59706 -0.33947,0.79611 l 0,0 0,0 c -0.21821,0.19901 -0.50918,0.28948 -0.89713,0.28948 l 0,0 0,0 c -0.38796,0 -0.72741,-0.0905 -1.04263,-0.28948 z" /> 118.761 + <path 118.762 + inkscape:connector-curvature="0" 118.763 + id="410" 118.764 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.765 + d="m 299.99344,573.21387 0,0 0.24248,-0.65136 0,0 0,0 c 0.33945,0.2533 0.60617,0.37995 0.8244,0.37995 l 0,0 0,0 c 0.38795,0 0.58193,-0.18092 0.58193,-0.54279 l 0,0 0,0 c 0,-0.2352 -0.19398,-0.45231 -0.55768,-0.63324 l 0,0 0,0 c -0.29096,-0.14475 -0.48495,-0.25331 -0.58193,-0.32568 l 0,0 0,0 c -0.097,-0.0723 -0.19397,-0.16283 -0.26672,-0.2533 l 0,0 0,0 c -0.0728,-0.0905 -0.12123,-0.19901 -0.14548,-0.30757 l 0,0 0,0 c -0.0485,-0.10858 -0.0727,-0.21714 -0.0727,-0.36188 l 0,0 0,0 c 0,-0.30758 0.12125,-0.54277 0.31522,-0.7237 l 0,0 0,0 c 0.21823,-0.18094 0.48494,-0.2714 0.82439,-0.2714 l 0,0 0,0 c 0.26672,0 0.58194,0.0905 0.94564,0.2714 l 0,0 -0.14549,0.63325 0,0 0,0 c -0.24246,-0.21713 -0.50918,-0.32568 -0.75165,-0.32568 l 0,0 0,0 c -0.14548,0 -0.26671,0.0362 -0.36371,0.10858 l 0,0 0,0 c -0.12123,0.0723 -0.16972,0.18094 -0.16972,0.28949 l 0,0 0,0 c 0,0.27139 0.14548,0.45233 0.38795,0.57897 l 0,0 0.46068,0.21714 0,0 0,0 c 0.26674,0.12656 0.4607,0.28948 0.55769,0.47041 l 0,0 0,0 c 0.12123,0.16282 0.19398,0.37995 0.19398,0.65133 l 0,0 0,0 c 0,0.34378 -0.12123,0.59706 -0.31522,0.79611 l 0,0 0,0 c -0.21821,0.19901 -0.53343,0.28948 -0.92138,0.28948 l 0,0 0,0 c -0.3637,0 -0.70316,-0.0905 -1.04263,-0.28948 z" /> 118.766 + <path 118.767 + inkscape:connector-curvature="0" 118.768 + id="411" 118.769 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.770 + d="m 307.70399,573.43097 -0.33945,-1.10366 -1.77005,0 -0.36368,1.10366 -0.72741,0 1.93974,-5.30122 0.16973,0 1.79428,5.30122 -0.70316,0 z m -1.1881,-3.94425 -0.75166,2.31588 1.43058,0 -0.67892,-2.31588 z" /> 118.771 + <path 118.772 + inkscape:connector-curvature="0" 118.773 + id="415" 118.774 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.775 + d="m 228.14965,590.2936 0,0 c 0,-0.0904 0.0242,-0.16282 0.0727,-0.2352 0.0485,-0.0723 0.12123,-0.1267 0.21822,-0.16284 0.097,-0.0362 0.19398,-0.0543 0.31521,-0.0543 l 0,0 0,0.45232 -0.60618,0 z" /> 118.776 + <path 118.777 + inkscape:connector-curvature="0" 118.778 + id="416" 118.779 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.780 + d="m 228.75583,589.84127 59.40509,0 0,0.45233 0,0.47042 -59.40509,0 0,-0.47042 0,-0.45233 z" /> 118.781 + <path 118.782 + inkscape:connector-curvature="0" 118.783 + id="417" 118.784 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.785 + d="m 298.16092,589.84127 0,0 c 0.12123,0 0.21823,0.0181 0.31522,0.0544 0.097,0.0362 0.16973,0.0905 0.21823,0.16284 0.0485,0.0723 0.097,0.14474 0.097,0.2352 l 0,0 0,0 -0.63043,0 0,-0.45233 z" /> 118.786 + <path 118.787 + inkscape:connector-curvature="0" 118.788 + id="418" 118.789 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.790 + d="m 288.79135,590.2936 0,23.26755 -0.63043,0 -0.60617,0 0,-23.26755 0.60617,0 0.63043,0 z" /> 118.791 + <path 118.792 + inkscape:connector-curvature="0" 118.793 + id="419" 118.794 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.795 + d="m 288.79135,613.56115 0,0 c 0,0.0905 -0.0485,0.16282 -0.097,0.23519 -0.0485,0.0723 -0.12124,0.1267 -0.21823,0.16285 -0.097,0.0362 -0.19399,0.0723 -0.31522,0.0723 l 0,0 0,-0.47041 0.63043,0 z" /> 118.796 + <path 118.797 + inkscape:connector-curvature="0" 118.798 + id="420" 118.799 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.800 + d="m 288.16092,614.03156 -59.40509,0 0,-0.47041 0,-0.45234 59.40509,0 0,0.45234 0,0.47041 z" /> 118.801 + <path 118.802 + inkscape:connector-curvature="0" 118.803 + id="421" 118.804 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.805 + d="m 228.75583,614.03156 0,0 c -0.12123,0 -0.21821,-0.0361 -0.31521,-0.0723 -0.097,-0.0362 -0.16972,-0.0905 -0.21822,-0.16285 -0.0485,-0.0723 -0.0727,-0.14473 -0.0727,-0.23519 l 0,0 0.60618,0 0,0.4704 z" /> 118.806 + <path 118.807 + inkscape:connector-curvature="0" 118.808 + id="422" 118.809 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.810 + d="m 228.14965,613.56115 0,-23.26755 0.60618,0 0.63042,0 0,23.26755 -0.63042,0 -0.60618,0 z" /> 118.811 + <path 118.812 + inkscape:connector-curvature="0" 118.813 + id="423" 118.814 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.815 + d="m 245.99542,612.6384 0,-2.24352 -1.84276,0 0,2.24352 -0.58193,0 0,-4.64989 0.58193,0 0,1.86358 1.84276,0 0,-1.86358 0.55769,0 0,4.64989 -0.55769,0 z" /> 118.816 + <path 118.817 + inkscape:connector-curvature="0" 118.818 + id="424" 118.819 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.820 + d="m 249.1233,612.25845 0,0 0,0 c -0.21823,0.28949 -0.55768,0.45232 -0.99413,0.45232 l 0,0 0,0 c -0.24247,0 -0.4607,-0.10858 -0.63043,-0.28948 l 0,0 0,0 c -0.16972,-0.19903 -0.2667,-0.43424 -0.2667,-0.72373 l 0,0 0,0 c 0,-0.34375 0.14546,-0.63324 0.4122,-0.88655 l 0,0 0,0 c 0.26671,-0.23519 0.60616,-0.34375 1.04261,-0.34375 l 0,0 0,0 c 0.097,0 0.24247,0.0181 0.38795,0.0723 l 0,0 0,0 c 0,-0.5428 -0.21823,-0.81418 -0.67892,-0.81418 l 0,0 0,0 c -0.31521,0 -0.58193,0.0905 -0.77589,0.30758 l 0,0 -0.21824,-0.52469 0,0 0,0 c 0.097,-0.0905 0.24249,-0.18093 0.43645,-0.23522 l 0,0 0,0 c 0.16973,-0.0723 0.3637,-0.10858 0.48495,-0.10858 l 0,0 0,0 c 0.46068,0 0.80015,0.10858 0.99411,0.34378 l 0,0 0,0 c 0.21822,0.23522 0.31522,0.59706 0.31522,1.08558 l 0,0 0,1.21222 0,0 0,0 c 0,0.28948 0.0727,0.48851 0.24247,0.59706 l 0,0 0,0.28949 0,0 0,0 c -0.21822,0 -0.38795,-0.0181 -0.50919,-0.0905 l 0,0 0,0 c -0.12123,-0.0723 -0.19396,-0.19902 -0.24246,-0.34376 z m -0.0485,-1.2846 0,0 0,0 c -0.16973,-0.0362 -0.29097,-0.0723 -0.3637,-0.0723 l 0,0 0,0 c -0.29097,0 -0.48495,0.0904 -0.65468,0.2352 l 0,0 0,0 c -0.19397,0.16284 -0.2667,0.34378 -0.2667,0.56088 l 0,0 0,0 c 0,0.36187 0.19396,0.52469 0.53343,0.52469 l 0,0 0,0 c 0.29095,0 0.53342,-0.14473 0.75165,-0.43422 l 0,-0.81419 z" /> 118.821 + <path 118.822 + inkscape:connector-curvature="0" 118.823 + id="425" 118.824 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.825 + d="m 252.17841,609.834 0,0 0,0 c -0.12124,-0.0905 -0.24247,-0.14475 -0.3637,-0.14475 l 0,0 0,0 c -0.19398,0 -0.36372,0.0905 -0.50918,0.28949 l 0,0 0,0 c -0.14549,0.19901 -0.21824,0.43423 -0.21824,0.72372 l 0,0 0,1.93594 -0.55766,0 0,-3.40146 0.55766,0 0,0.54277 0,0 0,0 c 0.19399,-0.41615 0.50919,-0.61517 0.89715,-0.61517 l 0,0 0,0 c 0.097,0 0.24247,0.0181 0.43643,0.0544 l -0.24246,0.61517 z" /> 118.826 + <path 118.827 + inkscape:connector-curvature="0" 118.828 + id="426" 118.829 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.830 + d="m 254.7486,612.6384 0,0 0,-0.25329 0,0 0,0 c -0.16973,0.21709 -0.4607,0.30757 -0.80016,0.30757 l 0,0 0,0 c -0.38795,0 -0.70315,-0.14474 -0.94563,-0.45232 l 0,0 0,0 c -0.24247,-0.30758 -0.3637,-0.70562 -0.3637,-1.21223 l 0,0 0,0 c 0,-0.5066 0.14548,-0.94084 0.4122,-1.3027 l 0,0 0,0 c 0.29096,-0.37996 0.60616,-0.56089 0.99413,-0.56089 l 0,0 0,0 c 0.3152,0 0.55768,0.0905 0.70316,0.25331 l 0,0 0,-1.5741 0.55767,0 0,4.79465 -0.55767,0 z m 0,-2.60538 0,0 0,0 c -0.12125,-0.23522 -0.31521,-0.34377 -0.53345,-0.34377 l 0,0 0,0 c -0.29095,0 -0.53343,0.1267 -0.7274,0.36186 l 0,0 0,0 c -0.16973,0.2352 -0.26671,0.54279 -0.26671,0.92274 l 0,0 0,0 c 0,0.81418 0.33945,1.23031 0.99411,1.23031 l 0,0 0,0 c 0.097,0 0.19399,-0.0362 0.31522,-0.0905 l 0,0 0,0 c 0.12123,-0.0723 0.19398,-0.1267 0.21823,-0.19902 l 0,-1.88167 z" /> 118.831 + <path 118.832 + inkscape:connector-curvature="0" 118.833 + id="427" 118.834 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.835 + d="m 258.96757,612.71077 -0.14548,0 -0.89715,-2.31589 -0.92138,2.31589 -0.14548,0 -1.11536,-3.49194 0.60618,0 0.65466,2.24354 0.8244,-2.24354 0.14548,0 0.8729,2.24354 0.70315,-2.24354 0.55768,0 -1.1396,3.49194 z" /> 118.836 + <path 118.837 + inkscape:connector-curvature="0" 118.838 + id="428" 118.839 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.840 + d="m 262.26515,612.25845 0,0 0,0 c -0.21822,0.28949 -0.55767,0.45232 -1.01836,0.45232 l 0,0 0,0 c -0.24247,0 -0.4607,-0.10858 -0.63044,-0.28948 l 0,0 0,0 c -0.16971,-0.19903 -0.26671,-0.43424 -0.26671,-0.72373 l 0,0 0,0 c 0,-0.34375 0.14548,-0.63324 0.4122,-0.88655 l 0,0 0,0 c 0.26671,-0.23519 0.63043,-0.34375 1.06686,-0.34375 l 0,0 0,0 c 0.097,0 0.24248,0.0181 0.38797,0.0723 l 0,0 0,0 c 0,-0.5428 -0.21824,-0.81418 -0.67892,-0.81418 l 0,0 0,0 c -0.33946,0 -0.60618,0.0905 -0.80016,0.30758 l 0,0 -0.21822,-0.52469 0,0 0,0 c 0.097,-0.0905 0.24247,-0.18093 0.43645,-0.23522 l 0,0 0,0 c 0.16973,-0.0723 0.33945,-0.10858 0.50918,-0.10858 l 0,0 0,0 c 0.4607,0 0.80015,0.10858 0.99413,0.34378 l 0,0 0,0 c 0.19397,0.23522 0.3152,0.59706 0.3152,1.08558 l 0,0 0,1.21222 0,0 0,0 c 0,0.28948 0.0727,0.48851 0.24248,0.59706 l 0,0 0,0.28949 0,0 0,0 c -0.24248,0 -0.38796,-0.0181 -0.50919,-0.0905 l 0,0 0,0 c -0.12122,-0.0723 -0.19397,-0.19902 -0.24247,-0.34376 z m -0.0485,-1.2846 0,0 0,0 c -0.16974,-0.0362 -0.29097,-0.0723 -0.36372,-0.0723 l 0,0 0,0 c -0.29095,0 -0.50918,0.0904 -0.67891,0.2352 l 0,0 0,0 c -0.19397,0.16284 -0.26672,0.34378 -0.26672,0.56088 l 0,0 0,0 c 0,0.36187 0.19398,0.52469 0.55768,0.52469 l 0,0 0,0 c 0.29097,0 0.53343,-0.14473 0.75167,-0.43422 l 0,-0.81419 z" /> 118.841 + <path 118.842 + inkscape:connector-curvature="0" 118.843 + id="429" 118.844 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.845 + d="m 265.32028,609.834 0,0 0,0 c -0.12124,-0.0905 -0.24247,-0.14475 -0.3637,-0.14475 l 0,0 0,0 c -0.19399,0 -0.36372,0.0905 -0.5092,0.28949 l 0,0 0,0 c -0.14549,0.19901 -0.21822,0.43423 -0.21822,0.72372 l 0,0 0,1.93594 -0.55768,0 0,-3.40146 0.55768,0 0,0.54277 0,0 0,0 c 0.19398,-0.41615 0.50918,-0.61517 0.89715,-0.61517 l 0,0 0,0 c 0.097,0 0.24245,0.0181 0.43643,0.0544 l -0.24246,0.61517 z" /> 118.846 + <path 118.847 + inkscape:connector-curvature="0" 118.848 + id="430" 118.849 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.850 + d="m 268.54513,611.01003 0,0 -2.23072,0 0,0 0,0 c 0,0.39805 0.097,0.68753 0.29096,0.90466 l 0,0 0,0 c 0.16972,0.18091 0.4122,0.28947 0.67892,0.28947 l 0,0 0,0 c 0.3152,0 0.58191,-0.10857 0.80015,-0.30755 l 0,0 0.21821,0.43421 0,0 0,0 c -0.0728,0.0905 -0.21821,0.18093 -0.38795,0.23522 l 0,0 0,0 c -0.21821,0.0904 -0.4607,0.14473 -0.72741,0.14473 l 0,0 0,0 c -0.4122,0 -0.7274,-0.14473 -1.01837,-0.43424 l 0,0 0,0 c -0.26671,-0.32566 -0.4122,-0.7599 -0.4122,-1.28459 l 0,0 0,0 c 0,-0.56088 0.14549,-1.0132 0.43644,-1.37507 l 0,0 0,0 c 0.26673,-0.30757 0.60618,-0.45233 0.99413,-0.45233 l 0,0 0,0 c 0.43645,0 0.77591,0.14476 1.04261,0.41615 l 0,0 0,0 c 0.24248,0.2714 0.36372,0.61517 0.36372,1.04939 l 0,0 0,0 c 0,0.14474 -0.0242,0.25332 -0.0485,0.37995 z m -1.33359,-1.32078 0,0 0,0 c -0.24247,0 -0.4607,0.0905 -0.63042,0.25328 l 0,0 0,0 c -0.14548,0.18095 -0.24246,0.37998 -0.26671,0.61517 l 0,0 1.72153,0 0,0 0,0 c 0,-0.23519 -0.0727,-0.43422 -0.19397,-0.59706 l 0,0 0,0 c -0.16973,-0.18093 -0.36372,-0.27139 -0.63043,-0.27139 z" /> 118.851 + <path 118.852 + inkscape:connector-curvature="0" 118.853 + id="431" 118.854 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.855 + d="m 272.01244,612.6384 0,0 0,-3.58241 -0.8729,0.61516 0,-0.61516 0,0 0,0 c 0.24249,-0.10857 0.4607,-0.28949 0.70317,-0.48851 l 0,0 0,0 c 0.26672,-0.2171 0.4122,-0.41614 0.55768,-0.61516 l 0,0 0.16973,0 0,4.68608 -0.55768,0 z" /> 118.856 + <path 118.857 + inkscape:connector-curvature="0" 118.858 + id="432" 118.859 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.860 + d="m 229.28926,606.39634 58.33823,0.34376 0,0.43423 0,0.43423 -58.33823,-0.34378 0,-0.43423 0,-0.43421 z" /> 118.861 + <path 118.862 + inkscape:connector-curvature="0" 118.863 + id="436" 118.864 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.865 + d="m 392.68965,590.2936 0,0 c 0,-0.0904 0.0243,-0.16282 0.0728,-0.2352 0.0485,-0.0723 0.12123,-0.1267 0.21821,-0.16284 0.097,-0.0362 0.19398,-0.0543 0.31521,-0.0543 l 0,0 0,0.45232 -0.60617,0 z" /> 118.866 + <path 118.867 + inkscape:connector-curvature="0" 118.868 + id="437" 118.869 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.870 + d="m 393.29582,589.84127 59.42935,0 0,0.45233 0,0.47042 -59.42935,0 0,-0.47042 0,-0.45233 z" /> 118.871 + <path 118.872 + inkscape:connector-curvature="0" 118.873 + id="438" 118.874 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.875 + d="m 462.72517,589.84127 0,0 c 0.12123,0 0.21822,0.0181 0.31521,0.0544 0.097,0.0362 0.16973,0.0905 0.21823,0.16284 0.0485,0.0723 0.097,0.14474 0.097,0.2352 l 0,0 0,0 -0.63042,0 0,-0.45233 z" /> 118.876 + <path 118.877 + inkscape:connector-curvature="0" 118.878 + id="439" 118.879 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.880 + d="m 453.35559,590.2936 0,23.26755 -0.63042,0 -0.60618,0 0,-23.26755 0.60618,0 0.63042,0 z" /> 118.881 + <path 118.882 + inkscape:connector-curvature="0" 118.883 + id="440" 118.884 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.885 + d="m 453.35559,613.56115 0,0 c 0,0.0905 -0.0485,0.16282 -0.097,0.23519 -0.0485,0.0723 -0.12125,0.1267 -0.21823,0.16285 -0.097,0.0362 -0.19398,0.0723 -0.31521,0.0723 l 0,0 0,-0.47041 0.63042,0 z" /> 118.886 + <path 118.887 + inkscape:connector-curvature="0" 118.888 + id="441" 118.889 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.890 + d="m 452.72517,614.03156 -59.42935,0 0,-0.47041 0,-0.45234 59.42935,0 0,0.45234 0,0.47041 z" /> 118.891 + <path 118.892 + inkscape:connector-curvature="0" 118.893 + id="442" 118.894 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.895 + d="m 393.29582,614.03156 0,0 c -0.12123,0 -0.21822,-0.0361 -0.31521,-0.0723 -0.097,-0.0362 -0.16973,-0.0905 -0.21821,-0.16285 -0.0485,-0.0723 -0.0728,-0.14473 -0.0728,-0.23519 l 0,0 0.60617,0 0,0.4704 z" /> 118.896 + <path 118.897 + inkscape:connector-curvature="0" 118.898 + id="443" 118.899 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.900 + d="m 392.68965,613.56115 0,-23.26755 0.60617,0 0.63043,0 0,23.26755 -0.63043,0 -0.60617,0 z" /> 118.901 + <path 118.902 + inkscape:connector-curvature="0" 118.903 + id="444" 118.904 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.905 + d="m 410.53543,612.6384 0,-2.24352 -1.84277,0 0,2.24352 -0.58193,0 0,-4.64989 0.58193,0 0,1.86358 1.84277,0 0,-1.86358 0.58192,0 0,4.64989 -0.58192,0 z" /> 118.906 + <path 118.907 + inkscape:connector-curvature="0" 118.908 + id="445" 118.909 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.910 + d="m 413.71178,612.25845 0,0 0,0 c -0.24247,0.28949 -0.58192,0.45232 -1.01837,0.45232 l 0,0 0,0 c -0.24247,0 -0.4607,-0.10858 -0.65467,-0.28948 l 0,0 0,0 c -0.16973,-0.19903 -0.26672,-0.43424 -0.26672,-0.72373 l 0,0 0,0 c 0,-0.34375 0.14549,-0.63324 0.4122,-0.88655 l 0,0 0,0 c 0.29097,-0.23519 0.63043,-0.34375 1.06687,-0.34375 l 0,0 0,0 c 0.12123,0 0.24247,0.0181 0.38795,0.0723 l 0,0 0,0 c 0,-0.5428 -0.21822,-0.81418 -0.65467,-0.81418 l 0,0 0,0 c -0.3637,0 -0.63042,0.0905 -0.80015,0.30758 l 0,0 -0.24247,-0.52469 0,0 0,0 c 0.097,-0.0905 0.24247,-0.18093 0.43645,-0.23522 l 0,0 0,0 c 0.19397,-0.0723 0.3637,-0.10858 0.53343,-0.10858 l 0,0 0,0 c 0.46069,0 0.7759,0.10858 0.96988,0.34378 l 0,0 0,0 c 0.21822,0.23522 0.31521,0.59706 0.31521,1.08558 l 0,0 0,1.21222 0,0 0,0 c 0,0.28948 0.097,0.48851 0.24247,0.59706 l 0,0 0,0.28949 0,0 0,0 c -0.21823,0 -0.38795,-0.0181 -0.50919,-0.0905 l 0,0 0,0 c -0.097,-0.0723 -0.16973,-0.19902 -0.21822,-0.34376 z m -0.0727,-1.2846 0,0 0,0 c -0.16973,-0.0362 -0.29097,-0.0723 -0.3637,-0.0723 l 0,0 0,0 c -0.26673,0 -0.50919,0.0904 -0.67892,0.2352 l 0,0 0,0 c -0.16973,0.16284 -0.26672,0.34378 -0.26672,0.56088 l 0,0 0,0 c 0,0.36187 0.19398,0.52469 0.58193,0.52469 l 0,0 0,0 c 0.26671,0 0.50919,-0.14473 0.72741,-0.43422 l 0,-0.81419 z" /> 118.911 + <path 118.912 + inkscape:connector-curvature="0" 118.913 + id="446" 118.914 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.915 + d="m 416.74265,609.834 0,0 0,0 c -0.12123,-0.0905 -0.24247,-0.14475 -0.3637,-0.14475 l 0,0 0,0 c -0.19398,0 -0.3637,0.0905 -0.50918,0.28949 l 0,0 0,0 c -0.14549,0.19901 -0.21823,0.43423 -0.21823,0.72372 l 0,0 0,1.93594 -0.53344,0 0,-3.40146 0.53344,0 0,0.54277 0,0 0,0 c 0.19398,-0.41615 0.48494,-0.61517 0.89714,-0.61517 l 0,0 0,0 c 0.097,0 0.24247,0.0181 0.41219,0.0544 l -0.21822,0.61517 z" /> 118.916 + <path 118.917 + inkscape:connector-curvature="0" 118.918 + id="447" 118.919 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.920 + d="m 419.33708,612.6384 0,0 0,-0.25329 0,0 0,0 c -0.19398,0.21709 -0.48494,0.30757 -0.84865,0.30757 l 0,0 0,0 c -0.38795,0 -0.70316,-0.14474 -0.94563,-0.45232 l 0,0 0,0 c -0.24247,-0.30758 -0.3637,-0.70562 -0.3637,-1.21223 l 0,0 0,0 c 0,-0.5066 0.14548,-0.94084 0.43644,-1.3027 l 0,0 0,0 c 0.26672,-0.37996 0.60618,-0.56089 0.99413,-0.56089 l 0,0 0,0 c 0.31521,0 0.55768,0.0905 0.72741,0.25331 l 0,0 0,-1.5741 0.55768,0 0,4.79465 -0.55768,0 z m 0,-2.60538 0,0 0,0 c -0.14548,-0.23522 -0.33946,-0.34377 -0.58192,-0.34377 l 0,0 0,0 c -0.29098,0 -0.53344,0.1267 -0.70317,0.36186 l 0,0 0,0 c -0.19398,0.2352 -0.29097,0.54279 -0.29097,0.92274 l 0,0 0,0 c 0,0.81418 0.33946,1.23031 1.01838,1.23031 l 0,0 0,0 c 0.097,0 0.19397,-0.0362 0.31521,-0.0905 l 0,0 0,0 c 0.12124,-0.0723 0.21822,-0.1267 0.24247,-0.19902 l 0,-1.88167 z" /> 118.921 + <path 118.922 + inkscape:connector-curvature="0" 118.923 + id="448" 118.924 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.925 + d="m 423.5318,612.71077 -0.14548,0 -0.92138,-2.31589 -0.89714,2.31589 -0.14548,0 -1.09112,-3.49194 0.58193,0 0.65467,2.24354 0.8244,-2.24354 0.14548,0 0.84864,2.24354 0.72741,-2.24354 0.53344,0 -1.11537,3.49194 z" /> 118.926 + <path 118.927 + inkscape:connector-curvature="0" 118.928 + id="449" 118.929 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.930 + d="m 426.82939,612.25845 0,0 0,0 c -0.21822,0.28949 -0.55768,0.45232 -0.99412,0.45232 l 0,0 0,0 c -0.24247,0 -0.46069,-0.10858 -0.65467,-0.28948 l 0,0 0,0 c -0.16973,-0.19903 -0.26672,-0.43424 -0.26672,-0.72373 l 0,0 0,0 c 0,-0.34375 0.14548,-0.63324 0.4122,-0.88655 l 0,0 0,0 c 0.29097,-0.23519 0.63042,-0.34375 1.06687,-0.34375 l 0,0 0,0 c 0.12123,0 0.24247,0.0181 0.38795,0.0723 l 0,0 0,0 c 0,-0.5428 -0.21822,-0.81418 -0.67892,-0.81418 l 0,0 0,0 c -0.33946,0 -0.60617,0.0905 -0.7759,0.30758 l 0,0 -0.24247,-0.52469 0,0 0,0 c 0.097,-0.0905 0.24247,-0.18093 0.43645,-0.23522 l 0,0 0,0 c 0.19398,-0.0723 0.36371,-0.10858 0.53344,-0.10858 l 0,0 0,0 c 0.43644,0 0.77589,0.10858 0.96987,0.34378 l 0,0 0,0 c 0.21823,0.23522 0.31521,0.59706 0.31521,1.08558 l 0,0 0,1.21222 0,0 0,0 c 0,0.28948 0.0728,0.48851 0.21823,0.59706 l 0,0 0,0.28949 0,0 0,0 c -0.19398,0 -0.36371,-0.0181 -0.48494,-0.0905 l 0,0 0,0 c -0.097,-0.0723 -0.19398,-0.19902 -0.24248,-0.34376 z m -0.0485,-1.2846 0,0 0,0 c -0.16973,-0.0362 -0.29096,-0.0723 -0.36371,-0.0723 l 0,0 0,0 c -0.26671,0 -0.50918,0.0904 -0.67891,0.2352 l 0,0 0,0 c -0.16973,0.16284 -0.26672,0.34378 -0.26672,0.56088 l 0,0 0,0 c 0,0.36187 0.19398,0.52469 0.58194,0.52469 l 0,0 0,0 c 0.26671,0 0.50918,-0.14473 0.7274,-0.43422 l 0,-0.81419 z" /> 118.931 + <path 118.932 + inkscape:connector-curvature="0" 118.933 + id="450" 118.934 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.935 + d="m 429.88451,609.834 0,0 0,0 c -0.12123,-0.0905 -0.24247,-0.14475 -0.3637,-0.14475 l 0,0 0,0 c -0.19398,0 -0.36371,0.0905 -0.50919,0.28949 l 0,0 0,0 c -0.14548,0.19901 -0.21822,0.43423 -0.21822,0.72372 l 0,0 0,1.93594 -0.55768,0 0,-3.40146 0.55768,0 0,0.54277 0,0 0,0 c 0.19397,-0.41615 0.48494,-0.61517 0.89714,-0.61517 l 0,0 0,0 c 0.097,0 0.24247,0.0181 0.4122,0.0544 l -0.21823,0.61517 z" /> 118.936 + <path 118.937 + inkscape:connector-curvature="0" 118.938 + id="451" 118.939 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.940 + d="m 433.13361,611.01003 0,0 -2.25497,0 0,0 0,0 c 0,0.39805 0.097,0.68753 0.29096,0.90466 l 0,0 0,0 c 0.19398,0.18091 0.4122,0.28947 0.67891,0.28947 l 0,0 0,0 c 0.31522,0 0.58194,-0.10857 0.80016,-0.30755 l 0,0 0.24247,0.43421 0,0 0,0 c -0.097,0.0905 -0.21822,0.18093 -0.4122,0.23522 l 0,0 0,0 c -0.21822,0.0904 -0.4607,0.14473 -0.72741,0.14473 l 0,0 0,0 c -0.38795,0 -0.72741,-0.14473 -0.99412,-0.43424 l 0,0 0,0 c -0.31521,-0.32566 -0.46069,-0.7599 -0.46069,-1.28459 l 0,0 0,0 c 0,-0.56088 0.14548,-1.0132 0.46069,-1.37507 l 0,0 0,0 c 0.29096,-0.30757 0.60617,-0.45233 0.99412,-0.45233 l 0,0 0,0 c 0.46069,0 0.80015,0.14476 1.04262,0.41615 l 0,0 0,0 c 0.24248,0.2714 0.36371,0.61517 0.36371,1.04939 l 0,0 0,0 c 0,0.14474 0,0.25332 -0.0243,0.37995 z m -1.35783,-1.32078 0,0 0,0 c -0.24247,0 -0.43645,0.0905 -0.60618,0.25328 l 0,0 0,0 c -0.16973,0.18095 -0.26671,0.37998 -0.26671,0.61517 l 0,0 1.72153,0 0,0 0,0 c 0,-0.23519 -0.0727,-0.43422 -0.21822,-0.59706 l 0,0 0,0 c -0.14548,-0.18093 -0.36371,-0.27139 -0.63042,-0.27139 z" /> 118.941 + <path 118.942 + inkscape:connector-curvature="0" 118.943 + id="452" 118.944 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.945 + d="m 435.43707,612.31273 0,0 0.26672,-0.48852 0,0 0,0 c 0.19398,0.23522 0.43644,0.34376 0.72741,0.34376 l 0,0 0,0 c 0.53343,0 0.8244,-0.28948 0.8244,-0.86845 l 0,0 0,0 c 0,-0.2533 -0.097,-0.47041 -0.24247,-0.63326 l 0,0 0,0 c -0.16973,-0.16284 -0.36371,-0.25329 -0.63042,-0.25329 l 0,0 -0.0485,0 0,-0.50661 0.0242,0 0,0 0,0 c 0.50918,0 0.75166,-0.23521 0.75166,-0.72371 l 0,0 0,0 c 0,-0.50661 -0.24248,-0.74182 -0.70317,-0.74182 l 0,0 0,0 c -0.24247,0 -0.4607,0.0905 -0.60617,0.2714 l 0,0 -0.24247,-0.43424 0,0 0,0 c 0.16973,-0.25331 0.46069,-0.37995 0.89713,-0.37995 l 0,0 0,0 c 0.36371,0 0.67892,0.10858 0.89714,0.32569 l 0,0 0,0 c 0.24248,0.2171 0.36371,0.4885 0.36371,0.83226 l 0,0 0,0 c 0,0.25331 -0.0728,0.48852 -0.19398,0.70563 l 0,0 0,0 c -0.14548,0.19902 -0.29096,0.32567 -0.46069,0.39805 l 0,0 0,0 c 0.24247,0.0905 0.43644,0.23521 0.58192,0.43423 l 0,0 0,0 c 0.14549,0.21711 0.21823,0.47042 0.21823,0.75991 l 0,0 0,0 c 0,0.43422 -0.12123,0.7599 -0.38796,0.99511 l 0,0 0,0 c -0.24246,0.23519 -0.60617,0.36185 -1.04261,0.36185 l 0,0 0,0 c -0.19397,0 -0.38795,-0.0542 -0.55768,-0.1267 l 0,0 0,0 c -0.19398,-0.0723 -0.33946,-0.16282 -0.43645,-0.27138 z" /> 118.946 + <path 118.947 + inkscape:connector-curvature="0" 118.948 + id="453" 118.949 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.950 + d="m 393.82925,606.39634 58.33824,0.34376 0,0.43423 0,0.43423 -58.33824,-0.34378 0,-0.43423 0,-0.43421 z" /> 118.951 + <path 118.952 + inkscape:connector-curvature="0" 118.953 + id="457" 118.954 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.955 + d="m 476.78842,590.2936 0,0 c 0,-0.0904 0.0242,-0.16282 0.0727,-0.2352 0.0485,-0.0723 0.12124,-0.1267 0.21823,-0.16284 0.097,-0.0362 0.19397,-0.0543 0.31521,-0.0543 l 0,0 0,0.45232 -0.60617,0 z" /> 118.956 + <path 118.957 + inkscape:connector-curvature="0" 118.958 + id="458" 118.959 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.960 + d="m 467.39459,589.84127 59.42935,0 0,0.45233 0,0.47042 -59.42935,0 0,-0.47042 0,-0.45233 z" /> 118.961 + <path 118.962 + inkscape:connector-curvature="0" 118.963 + id="459" 118.964 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.965 + d="m 526.82394,589.84127 0,0 c 0.12123,0 0.21821,0.0181 0.31521,0.0544 0.097,0.0362 0.16972,0.0905 0.21821,0.16284 0.0485,0.0723 0.097,0.14474 0.097,0.2352 l 0,0 0,0 -0.63041,0 0,-0.45233 z" /> 118.966 + <path 118.967 + inkscape:connector-curvature="0" 118.968 + id="460" 118.969 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.970 + d="m 527.45435,590.2936 0,23.26755 -0.63041,0 -0.60618,0 0,-23.26755 0.60618,0 0.63041,0 z" /> 118.971 + <path 118.972 + inkscape:connector-curvature="0" 118.973 + id="461" 118.974 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.975 + d="m 527.45435,613.56115 0,0 c 0,0.0905 -0.0485,0.16282 -0.097,0.23519 -0.0485,0.0723 -0.12123,0.1267 -0.21821,0.16285 -0.097,0.0362 -0.19398,0.0723 -0.31521,0.0723 l 0,0 0,-0.47041 0.63041,0 z" /> 118.976 + <path 118.977 + inkscape:connector-curvature="0" 118.978 + id="462" 118.979 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.980 + d="m 526.82394,614.03156 -59.42935,0 0,-0.47041 0,-0.45234 59.42935,0 0,0.45234 0,0.47041 z" /> 118.981 + <path 118.982 + inkscape:connector-curvature="0" 118.983 + id="463" 118.984 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.985 + d="m 467.39459,614.03156 0,0 c -0.12124,0 -0.21822,-0.0361 -0.31521,-0.0723 -0.097,-0.0362 -0.16973,-0.0905 -0.21823,-0.16285 -0.0485,-0.0723 -0.0727,-0.14473 -0.0727,-0.23519 l 0,0 0.60617,0 0,0.4704 z" /> 118.986 + <path 118.987 + inkscape:connector-curvature="0" 118.988 + id="464" 118.989 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.990 + d="m 466.78842,613.56115 0,-23.26755 0.60617,0 0.63042,0 0,23.26755 -0.63042,0 -0.60617,0 z" /> 118.991 + <path 118.992 + inkscape:connector-curvature="0" 118.993 + id="465" 118.994 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.995 + d="m 484.63419,612.6384 0,-2.24352 -1.86702,0 0,2.24352 -0.58193,0 0,-4.64989 0.58193,0 0,1.86358 1.86702,0 0,-1.86358 0.58192,0 0,4.64989 -0.58192,0 z" /> 118.996 + <path 118.997 + inkscape:connector-curvature="0" 118.998 + id="466" 118.999 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.1000 + d="m 487.76205,612.25845 0,0 0,0 c -0.21822,0.28949 -0.55768,0.45232 -0.96988,0.45232 l 0,0 0,0 c -0.26671,0 -0.46069,-0.10858 -0.65467,-0.28948 l 0,0 0,0 c -0.16973,-0.19903 -0.26671,-0.43424 -0.26671,-0.72373 l 0,0 0,0 c 0,-0.34375 0.14548,-0.63324 0.41219,-0.88655 l 0,0 0,0 c 0.29097,-0.23519 0.63042,-0.34375 1.04263,-0.34375 l 0,0 0,0 c 0.12123,0 0.24247,0.0181 0.38795,0.0723 l 0,0 0,0 c 0,-0.5428 -0.21823,-0.81418 -0.65467,-0.81418 l 0,0 0,0 c -0.33946,0 -0.60618,0.0905 -0.77591,0.30758 l 0,0 -0.24246,-0.52469 0,0 0,0 c 0.097,-0.0905 0.24246,-0.18093 0.43644,-0.23522 l 0,0 0,0 c 0.19398,-0.0723 0.36371,-0.10858 0.53344,-0.10858 l 0,0 0,0 c 0.41219,0 0.75165,0.10858 0.94562,0.34378 l 0,0 0,0 c 0.21823,0.23522 0.31521,0.59706 0.31521,1.08558 l 0,0 0,1.21222 0,0 0,0 c 0,0.28948 0.0727,0.48851 0.24248,0.59706 l 0,0 0,0.28949 0,0 0,0 c -0.21823,0 -0.38796,-0.0181 -0.50919,-0.0905 l 0,0 0,0 c -0.097,-0.0723 -0.19398,-0.19902 -0.24247,-0.34376 z m -0.0485,-1.2846 0,0 0,0 c -0.16973,-0.0362 -0.29097,-0.0723 -0.36371,-0.0723 l 0,0 0,0 c -0.24247,0 -0.48494,0.0904 -0.65466,0.2352 l 0,0 0,0 c -0.16973,0.16284 -0.26673,0.34378 -0.26673,0.56088 l 0,0 0,0 c 0,0.36187 0.19398,0.52469 0.58194,0.52469 l 0,0 0,0 c 0.24246,0 0.48493,-0.14473 0.70316,-0.43422 l 0,-0.81419 z" /> 118.1001 + <path 118.1002 + inkscape:connector-curvature="0" 118.1003 + id="467" 118.1004 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.1005 + d="m 490.84141,609.834 0,0 0,0 c -0.12123,-0.0905 -0.24246,-0.14475 -0.3637,-0.14475 l 0,0 0,0 c -0.19397,0 -0.3637,0.0905 -0.53343,0.28949 l 0,0 0,0 c -0.14549,0.19901 -0.21822,0.43423 -0.21822,0.72372 l 0,0 0,1.93594 -0.53344,0 0,-3.40146 0.53344,0 0,0.54277 0,0 0,0 c 0.21822,-0.41615 0.50918,-0.61517 0.89714,-0.61517 l 0,0 0,0 c 0.12123,0 0.24246,0.0181 0.43644,0.0544 l -0.21823,0.61517 z" /> 118.1006 + <path 118.1007 + inkscape:connector-curvature="0" 118.1008 + id="468" 118.1009 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.1010 + d="m 493.4116,612.6384 0,0 0,-0.25329 0,0 0,0 c -0.19398,0.21709 -0.4607,0.30757 -0.8244,0.30757 l 0,0 0,0 c -0.38796,0 -0.70316,-0.14474 -0.94563,-0.45232 l 0,0 0,0 c -0.24247,-0.30758 -0.3637,-0.70562 -0.3637,-1.21223 l 0,0 0,0 c 0,-0.5066 0.14548,-0.94084 0.41219,-1.3027 l 0,0 0,0 c 0.29097,-0.37996 0.63043,-0.56089 1.01837,-0.56089 l 0,0 0,0 c 0.31521,0 0.53344,0.0905 0.70317,0.25331 l 0,0 0,-1.5741 0.55768,0 0,4.79465 -0.55768,0 z m 0,-2.60538 0,0 0,0 c -0.14549,-0.23522 -0.31521,-0.34377 -0.55769,-0.34377 l 0,0 0,0 c -0.29096,0 -0.53342,0.1267 -0.7274,0.36186 l 0,0 0,0 c -0.16973,0.2352 -0.26672,0.54279 -0.26672,0.92274 l 0,0 0,0 c 0,0.81418 0.33945,1.23031 1.01837,1.23031 l 0,0 0,0 c 0.097,0 0.19398,-0.0362 0.29097,-0.0905 l 0,0 0,0 c 0.12123,-0.0723 0.19397,-0.1267 0.24247,-0.19902 l 0,-1.88167 z" /> 118.1011 + <path 118.1012 + inkscape:connector-curvature="0" 118.1013 + id="469" 118.1014 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.1015 + d="m 497.63057,612.71077 -0.14548,0 -0.92138,-2.31589 -0.89714,2.31589 -0.14549,0 -1.11536,-3.49194 0.58193,0 0.65467,2.24354 0.84864,-2.24354 0.14548,0 0.84865,2.24354 0.70316,-2.24354 0.55768,0 -1.11536,3.49194 z" /> 118.1016 + <path 118.1017 + inkscape:connector-curvature="0" 118.1018 + id="470" 118.1019 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.1020 + d="m 500.90391,612.25845 0,0 0,0 c -0.21822,0.28949 -0.55768,0.45232 -1.01837,0.45232 l 0,0 0,0 c -0.24247,0 -0.43644,-0.10858 -0.63042,-0.28948 l 0,0 0,0 c -0.16973,-0.19903 -0.24247,-0.43424 -0.24247,-0.72373 l 0,0 0,0 c 0,-0.34375 0.12124,-0.63324 0.38795,-0.88655 l 0,0 0,0 c 0.29096,-0.23519 0.63042,-0.34375 1.06687,-0.34375 l 0,0 0,0 c 0.12123,0 0.24246,0.0181 0.38795,0.0723 l 0,0 0,0 c 0,-0.5428 -0.21822,-0.81418 -0.67892,-0.81418 l 0,0 0,0 c -0.33946,0 -0.60617,0.0905 -0.80015,0.30758 l 0,0 -0.21822,-0.52469 0,0 0,0 c 0.097,-0.0905 0.24247,-0.18093 0.43645,-0.23522 l 0,0 0,0 c 0.16973,-0.0723 0.3637,-0.10858 0.53343,-0.10858 l 0,0 0,0 c 0.43644,0 0.7759,0.10858 0.96988,0.34378 l 0,0 0,0 c 0.21822,0.23522 0.31521,0.59706 0.31521,1.08558 l 0,0 0,1.21222 0,0 0,0 c 0,0.28948 0.0727,0.48851 0.24247,0.59706 l 0,0 0,0.28949 0,0 0,0 c -0.21822,0 -0.38795,-0.0181 -0.50918,-0.0905 l 0,0 0,0 c -0.097,-0.0723 -0.19398,-0.19902 -0.24248,-0.34376 z m -0.0485,-1.2846 0,0 0,0 c -0.16973,-0.0362 -0.29097,-0.0723 -0.3637,-0.0723 l 0,0 0,0 c -0.26672,0 -0.50919,0.0904 -0.67892,0.2352 l 0,0 0,0 c -0.16973,0.16284 -0.26672,0.34378 -0.26672,0.56088 l 0,0 0,0 c 0,0.36187 0.19398,0.52469 0.58193,0.52469 l 0,0 0,0 c 0.26671,0 0.50919,-0.14473 0.72741,-0.43422 l 0,-0.81419 z" /> 118.1021 + <path 118.1022 + inkscape:connector-curvature="0" 118.1023 + id="471" 118.1024 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.1025 + d="m 503.98328,609.834 0,0 0,0 c -0.12123,-0.0905 -0.24247,-0.14475 -0.36371,-0.14475 l 0,0 0,0 c -0.19397,0 -0.38795,0.0905 -0.53343,0.28949 l 0,0 0,0 c -0.14548,0.19901 -0.21822,0.43423 -0.21822,0.72372 l 0,0 0,1.93594 -0.53343,0 0,-3.40146 0.53343,0 0,0.54277 0,0 0,0 c 0.21822,-0.41615 0.50919,-0.61517 0.89713,-0.61517 l 0,0 0,0 c 0.12124,0 0.24248,0.0181 0.43645,0.0544 l -0.21822,0.61517 z" /> 118.1026 + <path 118.1027 + inkscape:connector-curvature="0" 118.1028 + id="472" 118.1029 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.1030 + d="m 507.18388,611.01003 0,0 -2.20648,0 0,0 0,0 c 0,0.39805 0.0727,0.68753 0.26673,0.90466 l 0,0 0,0 c 0.16972,0.18091 0.41219,0.28947 0.67891,0.28947 l 0,0 0,0 c 0.31521,0 0.58192,-0.10857 0.80015,-0.30755 l 0,0 0.21822,0.43421 0,0 0,0 c -0.0727,0.0905 -0.19397,0.18093 -0.38795,0.23522 l 0,0 0,0 c -0.21823,0.0904 -0.46069,0.14473 -0.72741,0.14473 l 0,0 0,0 c -0.38796,0 -0.72741,-0.14473 -0.96988,-0.43424 l 0,0 0,0 c -0.31521,-0.32566 -0.46069,-0.7599 -0.46069,-1.28459 l 0,0 0,0 c 0,-0.56088 0.14548,-1.0132 0.46069,-1.37507 l 0,0 0,0 c 0.26671,-0.30757 0.58192,-0.45233 0.96988,-0.45233 l 0,0 0,0 c 0.43645,0 0.80015,0.14476 1.04262,0.41615 l 0,0 0,0 c 0.24247,0.2714 0.36371,0.61517 0.36371,1.04939 l 0,0 0,0 c 0,0.14474 0,0.25332 -0.0485,0.37995 z m -1.33358,-1.32078 0,0 0,0 c -0.24248,0 -0.46069,0.0905 -0.60617,0.25328 l 0,0 0,0 c -0.16973,0.18095 -0.24248,0.37998 -0.26673,0.61517 l 0,0 1.72154,0 0,0 0,0 c 0,-0.23519 -0.0727,-0.43422 -0.21822,-0.59706 l 0,0 0,0 c -0.14549,-0.18093 -0.36371,-0.27139 -0.63042,-0.27139 z" /> 118.1031 + <path 118.1032 + inkscape:connector-curvature="0" 118.1033 + id="473" 118.1034 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.1035 + d="m 511.76656,611.37189 0,1.26651 -0.55769,0 0,-1.26651 -1.9155,0 0,-0.36186 2.25496,-3.05771 0.21823,0 0,2.93108 0.4122,0 0,0.48849 -0.4122,0 z m -0.55769,-2.15306 -1.23659,1.66457 1.23659,0 0,-1.66457 z" /> 118.1036 + <path 118.1037 + inkscape:connector-curvature="0" 118.1038 + id="474" 118.1039 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.1040 + d="m 467.92802,606.39634 58.33823,0.34376 0,0.43423 0,0.43423 -58.33823,-0.34378 0,-0.43423 0,-0.43421 z" /> 118.1041 + <path 118.1042 + inkscape:connector-curvature="0" 118.1043 + id="478" 118.1044 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.1045 + d="m 550.88718,590.2936 0,0 c 0,-0.0904 0,-0.16282 0.0485,-0.2352 0.0485,-0.0723 0.12123,-0.1267 0.21821,-0.16284 0.097,-0.0362 0.19398,-0.0543 0.31521,-0.0543 l 0,0 0,0.45232 -0.58192,0 z" /> 118.1046 + <path 118.1047 + inkscape:connector-curvature="0" 118.1048 + id="479" 118.1049 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.1050 + d="m 541.4691,589.84127 59.42935,0 0,0.45233 0,0.47042 -59.42935,0 0,-0.47042 0,-0.45233 z" /> 118.1051 + <path 118.1052 + inkscape:connector-curvature="0" 118.1053 + id="480" 118.1054 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.1055 + d="m 600.89845,589.84127 0,0 c 0.12124,0 0.21822,0.0181 0.31521,0.0544 0.097,0.0362 0.16973,0.0905 0.21823,0.16284 0.0485,0.0723 0.097,0.14474 0.097,0.2352 l 0,0 0,0 -0.63042,0 0,-0.45233 z" /> 118.1056 + <path 118.1057 + inkscape:connector-curvature="0" 118.1058 + id="481" 118.1059 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.1060 + d="m 601.52887,590.2936 0,23.26755 -0.63042,0 -0.58193,0 0,-23.26755 0.58193,0 0.63042,0 z" /> 118.1061 + <path 118.1062 + inkscape:connector-curvature="0" 118.1063 + id="482" 118.1064 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.1065 + d="m 601.52887,613.56115 0,0 c 0,0.0905 -0.0485,0.16282 -0.097,0.23519 -0.0485,0.0723 -0.12124,0.1267 -0.21823,0.16285 -0.097,0.0362 -0.19397,0.0723 -0.31521,0.0723 l 0,0 0,-0.47041 0.63042,0 z" /> 118.1066 + <path 118.1067 + inkscape:connector-curvature="0" 118.1068 + id="483" 118.1069 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.1070 + d="m 600.89845,614.03156 -59.42935,0 0,-0.47041 0,-0.45234 59.42935,0 0,0.45234 0,0.47041 z" /> 118.1071 + <path 118.1072 + inkscape:connector-curvature="0" 118.1073 + id="484" 118.1074 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.1075 + d="m 541.4691,614.03156 0,0 c -0.12123,0 -0.21821,-0.0361 -0.31521,-0.0723 -0.097,-0.0362 -0.16973,-0.0905 -0.21821,-0.16285 -0.0485,-0.0723 -0.0485,-0.14473 -0.0485,-0.23519 l 0,0 0.58192,0 0,0.4704 z" /> 118.1076 + <path 118.1077 + inkscape:connector-curvature="0" 118.1078 + id="485" 118.1079 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.1080 + d="m 540.88718,613.56115 0,-23.26755 0.58192,0 0.63043,0 0,23.26755 -0.63043,0 -0.58192,0 z" /> 118.1081 + <path 118.1082 + inkscape:connector-curvature="0" 118.1083 + id="486" 118.1084 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.1085 + d="m 558.73296,612.6384 0,-2.24352 -1.86702,0 0,2.24352 -0.58193,0 0,-4.64989 0.58193,0 0,1.86358 1.86702,0 0,-1.86358 0.55768,0 0,4.64989 -0.55768,0 z" /> 118.1086 + <path 118.1087 + inkscape:connector-curvature="0" 118.1088 + id="487" 118.1089 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.1090 + d="m 561.86081,612.25845 0,0 0,0 c -0.21821,0.28949 -0.55767,0.45232 -1.01837,0.45232 l 0,0 0,0 c -0.24247,0 -0.43644,-0.10858 -0.63042,-0.28948 l 0,0 0,0 c -0.16973,-0.19903 -0.26671,-0.43424 -0.26671,-0.72373 l 0,0 0,0 c 0,-0.34375 0.14548,-0.63324 0.41219,-0.88655 l 0,0 0,0 c 0.29097,-0.23519 0.63043,-0.34375 1.06687,-0.34375 l 0,0 0,0 c 0.12123,0 0.24247,0.0181 0.38796,0.0723 l 0,0 0,0 c 0,-0.5428 -0.21823,-0.81418 -0.67892,-0.81418 l 0,0 0,0 c -0.33946,0 -0.60618,0.0905 -0.80016,0.30758 l 0,0 -0.21821,-0.52469 0,0 0,0 c 0.097,-0.0905 0.24246,-0.18093 0.43644,-0.23522 l 0,0 0,0 c 0.16973,-0.0723 0.3637,-0.10858 0.53343,-0.10858 l 0,0 0,0 c 0.43644,0 0.7759,0.10858 0.96988,0.34378 l 0,0 0,0 c 0.21822,0.23522 0.31521,0.59706 0.31521,1.08558 l 0,0 0,1.21222 0,0 0,0 c 0,0.28948 0.0727,0.48851 0.24247,0.59706 l 0,0 0,0.28949 0,0 0,0 c -0.21822,0 -0.38795,-0.0181 -0.50918,-0.0905 l 0,0 0,0 c -0.097,-0.0723 -0.19398,-0.19902 -0.24248,-0.34376 z m -0.0485,-1.2846 0,0 0,0 c -0.16973,-0.0362 -0.29098,-0.0723 -0.36371,-0.0723 l 0,0 0,0 c -0.29096,0 -0.50919,0.0904 -0.67892,0.2352 l 0,0 0,0 c -0.16973,0.16284 -0.26672,0.34378 -0.26672,0.56088 l 0,0 0,0 c 0,0.36187 0.19398,0.52469 0.55768,0.52469 l 0,0 0,0 c 0.29096,0 0.53344,-0.14473 0.75167,-0.43422 l 0,-0.81419 z" /> 118.1091 + <path 118.1092 + inkscape:connector-curvature="0" 118.1093 + id="488" 118.1094 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.1095 + d="m 564.89169,609.834 0,0 0,0 c -0.097,-0.0905 -0.19398,-0.14475 -0.31522,-0.14475 l 0,0 0,0 c -0.21821,0 -0.38794,0.0905 -0.53342,0.28949 l 0,0 0,0 c -0.14549,0.19901 -0.21823,0.43423 -0.21823,0.72372 l 0,0 0,1.93594 -0.53343,0 0,-3.40146 0.53343,0 0,0.54277 0,0 0,0 c 0.21823,-0.41615 0.50919,-0.61517 0.89714,-0.61517 l 0,0 0,0 c 0.0727,0 0.21822,0.0181 0.4122,0.0544 l -0.24247,0.61517 z" /> 118.1096 + <path 118.1097 + inkscape:connector-curvature="0" 118.1098 + id="489" 118.1099 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.1100 + d="m 567.51036,612.6384 0,0 0,-0.25329 0,0 0,0 c -0.19398,0.21709 -0.48494,0.30757 -0.84864,0.30757 l 0,0 0,0 c -0.38796,0 -0.70317,-0.14474 -0.94563,-0.45232 l 0,0 0,0 c -0.24248,-0.30758 -0.36371,-0.70562 -0.36371,-1.21223 l 0,0 0,0 c 0,-0.5066 0.14548,-0.94084 0.4122,-1.3027 l 0,0 0,0 c 0.29096,-0.37996 0.60617,-0.56089 0.99413,-0.56089 l 0,0 0,0 c 0.33946,0 0.58192,0.0905 0.75165,0.25331 l 0,0 0,-1.5741 0.53344,0 0,4.79465 -0.53344,0 z m 0,-2.60538 0,0 0,0 c -0.14548,-0.23522 -0.33946,-0.34377 -0.58192,-0.34377 l 0,0 0,0 c -0.29097,0 -0.53344,0.1267 -0.72741,0.36186 l 0,0 0,0 c -0.16973,0.2352 -0.26673,0.54279 -0.26673,0.92274 l 0,0 0,0 c 0,0.81418 0.33946,1.23031 1.01838,1.23031 l 0,0 0,0 c 0.097,0 0.19397,-0.0362 0.31522,-0.0905 l 0,0 0,0 c 0.12123,-0.0723 0.19396,-0.1267 0.24246,-0.19902 l 0,-1.88167 z" /> 118.1101 + <path 118.1102 + inkscape:connector-curvature="0" 118.1103 + id="490" 118.1104 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.1105 + d="m 571.70508,612.71077 -0.14548,0 -0.89713,-2.31589 -0.92139,2.31589 -0.14548,0 -1.11536,-3.49194 0.60618,0 0.65466,2.24354 0.8244,-2.24354 0.14548,0 0.84864,2.24354 0.70317,-2.24354 0.55768,0 -1.11537,3.49194 z" /> 118.1106 + <path 118.1107 + inkscape:connector-curvature="0" 118.1108 + id="491" 118.1109 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.1110 + d="m 575.00268,612.25845 0,0 0,0 c -0.21823,0.28949 -0.55769,0.45232 -1.01838,0.45232 l 0,0 0,0 c -0.24247,0 -0.43644,-0.10858 -0.63041,-0.28948 l 0,0 0,0 c -0.16973,-0.19903 -0.26673,-0.43424 -0.26673,-0.72373 l 0,0 0,0 c 0,-0.34375 0.14548,-0.63324 0.41221,-0.88655 l 0,0 0,0 c 0.29096,-0.23519 0.63042,-0.34375 1.06687,-0.34375 l 0,0 0,0 c 0.097,0 0.24246,0.0181 0.38794,0.0723 l 0,0 0,0 c 0,-0.5428 -0.21821,-0.81418 -0.67892,-0.81418 l 0,0 0,0 c -0.33945,0 -0.60617,0.0905 -0.80014,0.30758 l 0,0 -0.21823,-0.52469 0,0 0,0 c 0.097,-0.0905 0.24248,-0.18093 0.43645,-0.23522 l 0,0 0,0 c 0.16973,-0.0723 0.36371,-0.10858 0.53344,-0.10858 l 0,0 0,0 c 0.43644,0 0.7759,0.10858 0.96987,0.34378 l 0,0 0,0 c 0.21823,0.23522 0.31521,0.59706 0.31521,1.08558 l 0,0 0,1.21222 0,0 0,0 c 0,0.28948 0.0728,0.48851 0.24248,0.59706 l 0,0 0,0.28949 0,0 0,0 c -0.21823,0 -0.38796,-0.0181 -0.50919,-0.0905 l 0,0 0,0 c -0.12124,-0.0723 -0.19398,-0.19902 -0.24247,-0.34376 z m -0.0485,-1.2846 0,0 0,0 c -0.16973,-0.0362 -0.29096,-0.0723 -0.3637,-0.0723 l 0,0 0,0 c -0.29097,0 -0.50919,0.0904 -0.67892,0.2352 l 0,0 0,0 c -0.19397,0.16284 -0.26671,0.34378 -0.26671,0.56088 l 0,0 0,0 c 0,0.36187 0.19397,0.52469 0.55768,0.52469 l 0,0 0,0 c 0.29096,0 0.53344,-0.14473 0.75165,-0.43422 l 0,-0.81419 z" /> 118.1111 + <path 118.1112 + inkscape:connector-curvature="0" 118.1113 + id="492" 118.1114 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.1115 + d="m 578.03355,609.834 0,0 0,0 c -0.12123,-0.0905 -0.24247,-0.14475 -0.36371,-0.14475 l 0,0 0,0 c -0.19397,0 -0.3637,0.0905 -0.50918,0.28949 l 0,0 0,0 c -0.14549,0.19901 -0.21822,0.43423 -0.21822,0.72372 l 0,0 0,1.93594 -0.53344,0 0,-3.40146 0.53344,0 0,0.54277 0,0 0,0 c 0.21822,-0.41615 0.50919,-0.61517 0.89713,-0.61517 l 0,0 0,0 c 0.097,0 0.24248,0.0181 0.43645,0.0544 l -0.24247,0.61517 z" /> 118.1116 + <path 118.1117 + inkscape:connector-curvature="0" 118.1118 + id="493" 118.1119 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.1120 + d="m 581.28264,611.01003 0,0 -2.23072,0 0,0 0,0 c 0,0.39805 0.097,0.68753 0.29097,0.90466 l 0,0 0,0 c 0.16973,0.18091 0.41219,0.28947 0.67892,0.28947 l 0,0 0,0 c 0.31521,0 0.58192,-0.10857 0.80014,-0.30755 l 0,0 0.21823,0.43421 0,0 0,0 c -0.0727,0.0905 -0.21823,0.18093 -0.38795,0.23522 l 0,0 0,0 c -0.21823,0.0904 -0.46069,0.14473 -0.72742,0.14473 l 0,0 0,0 c -0.38795,0 -0.72741,-0.14473 -0.99412,-0.43424 l 0,0 0,0 c -0.31521,-0.32566 -0.46069,-0.7599 -0.46069,-1.28459 l 0,0 0,0 c 0,-0.56088 0.14548,-1.0132 0.46069,-1.37507 l 0,0 0,0 c 0.29096,-0.30757 0.60617,-0.45233 0.99412,-0.45233 l 0,0 0,0 c 0.43645,0 0.80015,0.14476 1.04262,0.41615 l 0,0 0,0 c 0.24248,0.2714 0.36371,0.61517 0.36371,1.04939 l 0,0 0,0 c 0,0.14474 -0.0243,0.25332 -0.0485,0.37995 z m -1.33358,-1.32078 0,0 0,0 c -0.24247,0 -0.46069,0.0905 -0.63042,0.25328 l 0,0 0,0 c -0.14548,0.18095 -0.24247,0.37998 -0.26672,0.61517 l 0,0 1.72154,0 0,0 0,0 c 0,-0.23519 -0.0485,-0.43422 -0.19398,-0.59706 l 0,0 0,0 c -0.16973,-0.18093 -0.3637,-0.27139 -0.63042,-0.27139 z" /> 118.1121 + <path 118.1122 + inkscape:connector-curvature="0" 118.1123 + id="494" 118.1124 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.1125 + d="m 583.94981,610.37677 0,0 -0.19397,-0.14473 0,-2.27972 2.13373,0 0,0.5428 -1.57605,0 0,1.13986 0,0 0,0 c 0.14548,-0.1267 0.3152,-0.18095 0.55768,-0.18095 l 0,0 0,0 c 0.38795,0 0.67891,0.1267 0.89714,0.39806 l 0,0 0,0 c 0.21822,0.27139 0.31521,0.63324 0.31521,1.10368 l 0,0 0,0 c 0,1.15794 -0.48494,1.755 -1.43058,1.755 l 0,0 0,0 c -0.38794,0 -0.7274,-0.1267 -0.99412,-0.36185 l 0,0 0.21822,-0.5428 0,0 0,0 c 0.26672,0.23522 0.53344,0.36185 0.7759,0.36185 l 0,0 0,0 c 0.53344,0 0.8244,-0.37994 0.8244,-1.12175 l 0,0 0,0 c 0,-0.68754 -0.26671,-1.03129 -0.8244,-1.03129 l 0,0 0,0 c -0.24246,0 -0.48494,0.10857 -0.70316,0.36184 z" /> 118.1126 + <path 118.1127 + inkscape:connector-curvature="0" 118.1128 + id="495" 118.1129 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.1130 + d="m 542.00254,606.39634 58.36248,0.34376 0,0.43423 0,0.43423 -58.36248,-0.34378 0,-0.43423 0,-0.43421 z" /> 118.1131 + <path 118.1132 + inkscape:connector-curvature="0" 118.1133 + id="563" 118.1134 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.1135 + d="m 310.27417,577.12194 23.42259,12.32129 -0.33947,0.36187 -0.33945,0.36185 -23.42259,-12.32131 0.33947,-0.36184 0.33945,-0.36186 z" /> 118.1136 + <path 118.1137 + inkscape:connector-curvature="0" 118.1138 + id="564" 118.1139 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.1140 + d="m 330.08395,585.57135 0,0 4.53419,4.867 -7.6863,-1.5198 0,0 0,0 c 1.91551,-0.48852 3.17636,-1.84548 3.15211,-3.3472 z" /> 118.1141 + <path 118.1142 + inkscape:connector-curvature="0" 118.1143 + id="565" 118.1144 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.1145 + d="m 280.7171,577.82756 -21.77378,12.3213 -0.33946,-0.34376 -0.33945,-0.34378 21.77378,-12.3213 0.33947,0.34378 0.33944,0.34376 z" /> 118.1146 + <path 118.1147 + inkscape:connector-curvature="0" 118.1148 + id="566" 118.1149 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.1150 + d="m 265.00506,588.7557 0,0 -7.5893,1.73694 4.26747,-4.99366 0,0 0,0 c 0.0242,1.48362 1.38208,2.80439 3.32183,3.25672 z" /> 118.1151 + <path 118.1152 + inkscape:connector-curvature="0" 118.1153 + id="567" 118.1154 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.1155 + d="m 292.79211,556.47788 0.3152,17.1702 -0.58193,0 -0.58192,0 -0.31522,-17.1702 0.58194,0 0.58193,0 z" /> 118.1156 + <path 118.1157 + inkscape:connector-curvature="0" 118.1158 + id="568" 118.1159 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.1160 + d="m 295.2168,569.14295 0,0 -2.64292,5.6269 -2.8369,-5.57263 0,0 0,0 c 1.62455,0.86846 3.83103,0.85038 5.47982,-0.0542 z" /> 118.1161 + <path 118.1162 + inkscape:connector-curvature="0" 118.1163 + id="570" 118.1164 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.1165 + d="m 438.66192,556.22457 16.003,17.17023 -0.48494,0.25328 -0.48493,0.2533 -16.00301,-17.1702 0.48494,-0.2533 0.48494,-0.25331 z" /> 118.1166 + <path 118.1167 + inkscape:connector-curvature="0" 118.1168 + id="571" 118.1169 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.1170 + d="m 453.01613,568.79917 0,0 2.03675,5.75357 -6.52244,-3.40148 0,0 0,0 c 2.0125,0.0542 3.80678,-0.92273 4.48569,-2.35209 z" /> 118.1171 + <path 118.1172 + inkscape:connector-curvature="0" 118.1173 + id="572" 118.1174 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.1175 + d="m 541.85706,577.12194 23.42258,12.32129 -0.33946,0.36187 -0.31521,0.36185 -23.44683,-12.32131 0.33946,-0.36184 0.33946,-0.36186 z" /> 118.1176 + <path 118.1177 + inkscape:connector-curvature="0" 118.1178 + id="573" 118.1179 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.1180 + d="m 561.66684,585.57135 0,0 4.50994,4.867 -7.66205,-1.5198 0,0 0,0 c 1.89127,-0.48852 3.17635,-1.84548 3.15211,-3.3472 z" /> 118.1181 + <path 118.1182 + inkscape:connector-curvature="0" 118.1183 + id="574" 118.1184 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.1185 + d="m 452.33722,577.82756 -21.74954,12.3213 -0.33946,-0.34376 -0.33946,-0.34378 21.74954,-12.3213 0.33946,0.34378 0.33946,0.34376 z" /> 118.1186 + <path 118.1187 + inkscape:connector-curvature="0" 118.1188 + id="575" 118.1189 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.1190 + d="m 436.64942,588.7557 0,0 -7.5893,1.73694 4.29171,-4.99366 0,0 0,0 c 0.0242,1.48362 1.35784,2.80439 3.29759,3.25672 z" /> 118.1191 + <path 118.1192 + inkscape:connector-curvature="0" 118.1193 + id="576" 118.1194 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.1195 + d="m 497.4366,556.47788 0.31521,17.1702 -0.58193,0 -0.58192,0 -0.31522,-17.1702 0.58193,0 0.58193,0 z" /> 118.1196 + <path 118.1197 + inkscape:connector-curvature="0" 118.1198 + id="577" 118.1199 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.1200 + d="m 499.83704,569.14295 0,0 -2.61867,5.6269 -2.86114,-5.57263 0,0 0,0 c 1.64879,0.86846 3.85527,0.85038 5.47981,-0.0542 z" /> 118.1201 + <path 118.1202 + inkscape:connector-curvature="0" 118.1203 + id="578" 118.1204 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.1205 + d="m 448.02125,575.87353 98.17602,0.34377 0,0.43422 0,0.43424 -98.17602,-0.34378 0,-0.43423 0,-0.43422 z" /> 118.1206 + <path 118.1207 + inkscape:connector-curvature="0" 118.1208 + id="579" 118.1209 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.1210 + d="m 497.48509,577.4838 0.31521,11.43475 -0.58193,0 -0.58193,0 -0.31521,-11.43475 0.58193,0 0.58193,0 z" /> 118.1211 + <path 118.1212 + inkscape:connector-curvature="0" 118.1213 + id="580" 118.1214 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.1215 + d="m 499.83704,584.44959 0,0 -2.57017,5.60881 -2.90964,-5.51835 0,0 0,0 c 1.64879,0.85037 3.87952,0.81419 5.47981,-0.0905 z" /> 118.1216 + <path 118.1217 + inkscape:connector-curvature="0" 118.1218 + id="598" 118.1219 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.1220 + d="m 557.10841,556.73118 -16.003,17.1702 -0.4607,-0.2533 -0.48494,-0.25328 15.97876,-17.17023 0.48494,0.25331 0.48494,0.2533 z" /> 118.1221 + <path 118.1222 + inkscape:connector-curvature="0" 118.1223 + id="599" 118.1224 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.1225 + d="m 546.29426,571.16937 0,0 -6.4982,3.40146 1.98826,-5.77166 0,0 0,0 c 0.65467,1.42936 2.47319,2.38828 4.50994,2.3702 z" /> 118.1226 + <text 118.1227 + xml:space="preserve" 118.1228 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Xpress SF;-inkscape-font-specification:Xpress SF" 118.1229 + x="570.58966" 118.1230 + y="449.09607" 118.1231 + id="text5053" 118.1232 + sodipodi:linespacing="125%"><tspan 118.1233 + sodipodi:role="line" 118.1234 + id="tspan5055" 118.1235 + x="570.58966" 118.1236 + y="449.09607">Lang Syntax</tspan></text> 118.1237 + <rect 118.1238 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2, 1;stroke-dashoffset:0" 118.1239 + id="rect5088" 118.1240 + width="53.784859" 118.1241 + height="12.350597" 118.1242 + x="567.80878" 118.1243 + y="439.52637" /> 118.1244 + <g 118.1245 + id="g11409" 118.1246 + transform="translate(18.42735,0)"> 118.1247 + <text 118.1248 + xml:space="preserve" 118.1249 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Xpress SF;-inkscape-font-specification:Xpress SF" 118.1250 + x="552.58966" 118.1251 + y="513.97961" 118.1252 + id="text5057" 118.1253 + sodipodi:linespacing="125%"><tspan 118.1254 + sodipodi:role="line" 118.1255 + id="tspan5059" 118.1256 + x="552.58966" 118.1257 + y="513.97961">Request Intf</tspan></text> 118.1258 + <rect 118.1259 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2, 0.99999999;stroke-dashoffset:0" 118.1260 + id="rect5090" 118.1261 + width="52.938667" 118.1262 + height="12.350597" 118.1263 + x="549.80878" 118.1264 + y="504.41" /> 118.1265 + </g> 118.1266 + <g 118.1267 + id="g11399" 118.1268 + transform="translate(-29.57265,13.57265)"> 118.1269 + <text 118.1270 + sodipodi:linespacing="125%" 118.1271 + id="text5061" 118.1272 + y="565.97961" 118.1273 + x="616.58966" 118.1274 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Xpress SF;-inkscape-font-specification:Xpress SF" 118.1275 + xml:space="preserve"><tspan 118.1276 + y="565.97961" 118.1277 + x="616.58966" 118.1278 + id="tspan5063" 118.1279 + sodipodi:role="line">PRT Intf</tspan></text> 118.1280 + <rect 118.1281 + y="556.40991" 118.1282 + x="613.80878" 118.1283 + height="12.350597" 118.1284 + width="37.162453" 118.1285 + id="rect5092" 118.1286 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1.99999999, 1;stroke-dashoffset:0" /> 118.1287 + </g> 118.1288 + <g 118.1289 + id="g11404" 118.1290 + transform="translate(-8.5641025,0.42735043)"> 118.1291 + <text 118.1292 + sodipodi:linespacing="125%" 118.1293 + id="text5065" 118.1294 + y="609.58124" 118.1295 + x="616.58966" 118.1296 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Xpress SF;-inkscape-font-specification:Xpress SF" 118.1297 + xml:space="preserve"><tspan 118.1298 + y="609.58124" 118.1299 + x="616.58966" 118.1300 + id="tspan5067" 118.1301 + sodipodi:role="line">ISA</tspan></text> 118.1302 + <rect 118.1303 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.00000002, 1.00000001;stroke-dashoffset:0" 118.1304 + id="rect5094" 118.1305 + width="15.990735" 118.1306 + height="12.350597" 118.1307 + x="613.80878" 118.1308 + y="600.01154" /> 118.1309 + </g> 118.1310 + <path 118.1311 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2, 1;stroke-dashoffset:0" 118.1312 + d="m 149.50538,446.07322 419.95554,0 0,0 0,0" 118.1313 + id="path5864" 118.1314 + inkscape:connector-curvature="0" /> 118.1315 + <path 118.1316 + inkscape:connector-curvature="0" 118.1317 + id="path5866" 118.1318 + d="m 149.43272,510.92792 417.39372,0 0,0 0,0" 118.1319 + style="fill:none;stroke:#000000;stroke-width:0.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1.99999986, 0.99999992;stroke-dashoffset:0" /> 118.1320 + <path 118.1321 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1.99999983, 0.99999992;stroke-dashoffset:0" 118.1322 + d="m 149.74889,576.50057 433.61341,0 0,0 0,0" 118.1323 + id="path5868" 118.1324 + inkscape:connector-curvature="0" /> 118.1325 + <path 118.1326 + inkscape:connector-curvature="0" 118.1327 + id="path5870" 118.1328 + d="m 150.01815,606.92792 454.52761,0 0,0 0,0" 118.1329 + style="fill:none;stroke:#000000;stroke-width:0.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1.99999977, 0.99999988;stroke-dashoffset:0" /> 118.1330 + <path 118.1331 + inkscape:connector-curvature="0" 118.1332 + id="path5872" 118.1333 + d="m 149.79599,396.92792 471.66496,0 0,0 0,0" 118.1334 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 118.1335 + <path 118.1336 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 118.1337 + d="m 149.79599,624.92792 471.66496,0 0,0 0,0" 118.1338 + id="path5874" 118.1339 + inkscape:connector-curvature="0" /> 118.1340 + <text 118.1341 + xml:space="preserve" 118.1342 + style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Xpress SF;-inkscape-font-specification:Xpress SF" 118.1343 + x="495.74597" 118.1344 + y="-651.70679" 118.1345 + id="text11414" 118.1346 + sodipodi:linespacing="125%" 118.1347 + transform="matrix(0,1,-1,0,0,0)"><tspan 118.1348 + sodipodi:role="line" 118.1349 + id="tspan11416" 118.1350 + x="495.74597" 118.1351 + y="-651.70679" 118.1352 + style="font-size:18px">Interface</tspan></text> 118.1353 + <text 118.1354 + xml:space="preserve" 118.1355 + style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 118.1356 + x="-548.71796" 118.1357 + y="141.05817" 118.1358 + id="text11418" 118.1359 + sodipodi:linespacing="125%" 118.1360 + transform="matrix(0,-1,1,0,0,0)"><tspan 118.1361 + sodipodi:role="line" 118.1362 + id="tspan11420" 118.1363 + x="-548.71796" 118.1364 + y="141.05817" 118.1365 + style="font-size:18px">Layer</tspan></text> 118.1366 + <path 118.1367 + inkscape:connector-curvature="0" 118.1368 + id="path12247" 118.1369 + d="m 243.82877,575.78262 100.97409,0 0,0 0,0" 118.1370 + style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 118.1371 + <path 118.1372 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" 118.1373 + d="m 303.00855,475.78099 12.82051,8.11965" 118.1374 + id="path12255" 118.1375 + inkscape:connector-curvature="0" 118.1376 + sodipodi:nodetypes="cc" /> 118.1377 + <g 118.1378 + id="g12738" 118.1379 + transform="translate(-2,0.8547008)"> 118.1380 + <rect 118.1381 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 118.1382 + id="rect12740" 118.1383 + width="41.452991" 118.1384 + height="12.393162" 118.1385 + x="299.65811" 118.1386 + y="483.71259" /> 118.1387 + <text 118.1388 + sodipodi:linespacing="125%" 118.1389 + id="text12742" 118.1390 + y="492.81934" 118.1391 + x="300.78931" 118.1392 + style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 118.1393 + xml:space="preserve"><tspan 118.1394 + style="fill:#ff7f2a" 118.1395 + y="492.81934" 118.1396 + x="300.78931" 118.1397 + id="tspan12744" 118.1398 + sodipodi:role="line">Specializer</tspan></text> 118.1399 + </g> 118.1400 + <path 118.1401 + sodipodi:nodetypes="cc" 118.1402 + inkscape:connector-curvature="0" 118.1403 + id="path12746" 118.1404 + d="m 282.42388,475.78099 -12.82051,8.11965" 118.1405 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" /> 118.1406 + <g 118.1407 + transform="translate(-50,0.8547008)" 118.1408 + id="g12748"> 118.1409 + <rect 118.1410 + y="483.71259" 118.1411 + x="299.65811" 118.1412 + height="12.393162" 118.1413 + width="41.452991" 118.1414 + id="rect12750" 118.1415 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 118.1416 + <text 118.1417 + xml:space="preserve" 118.1418 + style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 118.1419 + x="300.78931" 118.1420 + y="492.81934" 118.1421 + id="text12752" 118.1422 + sodipodi:linespacing="125%"><tspan 118.1423 + style="fill:#ff0000" 118.1424 + sodipodi:role="line" 118.1425 + id="tspan12754" 118.1426 + x="300.78931" 118.1427 + y="492.81934">Specializer</tspan></text> 118.1428 + </g> 118.1429 + <path 118.1430 + sodipodi:nodetypes="cc" 118.1431 + inkscape:connector-curvature="0" 118.1432 + id="path13516" 118.1433 + d="m 405.00855,475.78099 12.82051,8.11965" 118.1434 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" /> 118.1435 + <g 118.1436 + transform="translate(100,0.8547008)" 118.1437 + id="g13526"> 118.1438 + <rect 118.1439 + y="483.71259" 118.1440 + x="299.65811" 118.1441 + height="12.393162" 118.1442 + width="41.452991" 118.1443 + id="rect13528" 118.1444 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 118.1445 + <text 118.1446 + xml:space="preserve" 118.1447 + style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 118.1448 + x="300.78931" 118.1449 + y="492.81934" 118.1450 + id="text13530" 118.1451 + sodipodi:linespacing="125%"><tspan 118.1452 + style="fill:#ff7f2a" 118.1453 + sodipodi:role="line" 118.1454 + id="tspan13532" 118.1455 + x="300.78931" 118.1456 + y="492.81934">Specializer</tspan></text> 118.1457 + </g> 118.1458 + <path 118.1459 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" 118.1460 + d="m 384.42388,475.78099 -12.82051,8.11965" 118.1461 + id="path13534" 118.1462 + inkscape:connector-curvature="0" 118.1463 + sodipodi:nodetypes="cc" /> 118.1464 + <g 118.1465 + id="g13536" 118.1466 + transform="translate(52,0.8547008)"> 118.1467 + <rect 118.1468 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 118.1469 + id="rect13538" 118.1470 + width="41.452991" 118.1471 + height="12.393162" 118.1472 + x="299.65811" 118.1473 + y="483.71259" /> 118.1474 + <text 118.1475 + sodipodi:linespacing="125%" 118.1476 + id="text13540" 118.1477 + y="492.81934" 118.1478 + x="300.78931" 118.1479 + style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 118.1480 + xml:space="preserve"><tspan 118.1481 + style="fill:#ff0000" 118.1482 + y="492.81934" 118.1483 + x="300.78931" 118.1484 + id="tspan13542" 118.1485 + sodipodi:role="line">Specializer</tspan></text> 118.1486 + </g> 118.1487 + <path 118.1488 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" 118.1489 + d="m 507.00855,475.78099 12.82051,8.11965" 118.1490 + id="path13550" 118.1491 + inkscape:connector-curvature="0" 118.1492 + sodipodi:nodetypes="cc" /> 118.1493 + <rect 118.1494 + y="454.18875" 118.1495 + x="475.65811" 118.1496 + height="21.916971" 118.1497 + width="41.452991" 118.1498 + id="rect13554" 118.1499 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 118.1500 + <text 118.1501 + xml:space="preserve" 118.1502 + style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 118.1503 + x="479.21664" 118.1504 + y="472.81934" 118.1505 + id="text13556" 118.1506 + sodipodi:linespacing="125%"><tspan 118.1507 + sodipodi:role="line" 118.1508 + id="tspan13558" 118.1509 + x="479.21664" 118.1510 + y="472.81934" 118.1511 + style="fill:#800080">Toolchain</tspan></text> 118.1512 + <g 118.1513 + id="g13560" 118.1514 + transform="translate(202,0.8547008)"> 118.1515 + <rect 118.1516 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 118.1517 + id="rect13562" 118.1518 + width="41.452991" 118.1519 + height="12.393162" 118.1520 + x="299.65811" 118.1521 + y="483.71259" /> 118.1522 + <text 118.1523 + sodipodi:linespacing="125%" 118.1524 + id="text13564" 118.1525 + y="492.81934" 118.1526 + x="300.78931" 118.1527 + style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 118.1528 + xml:space="preserve"><tspan 118.1529 + style="fill:#ff7f2a" 118.1530 + y="492.81934" 118.1531 + x="300.78931" 118.1532 + id="tspan13566" 118.1533 + sodipodi:role="line">Specializer</tspan></text> 118.1534 + </g> 118.1535 + <path 118.1536 + sodipodi:nodetypes="cc" 118.1537 + inkscape:connector-curvature="0" 118.1538 + id="path13568" 118.1539 + d="m 486.42388,475.78099 -12.82051,8.11965" 118.1540 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" /> 118.1541 + <g 118.1542 + transform="translate(154,0.8547008)" 118.1543 + id="g13570"> 118.1544 + <rect 118.1545 + y="483.71259" 118.1546 + x="299.65811" 118.1547 + height="12.393162" 118.1548 + width="41.452991" 118.1549 + id="rect13572" 118.1550 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 118.1551 + <text 118.1552 + xml:space="preserve" 118.1553 + style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 118.1554 + x="300.78931" 118.1555 + y="492.81934" 118.1556 + id="text13574" 118.1557 + sodipodi:linespacing="125%"><tspan 118.1558 + style="fill:#ff0000" 118.1559 + sodipodi:role="line" 118.1560 + id="tspan13576" 118.1561 + x="300.78931" 118.1562 + y="492.81934">Specializer</tspan></text> 118.1563 + </g> 118.1564 + <path 118.1565 + style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 118.1566 + d="m 446.68347,575.78262 100.97409,0 0,0 0,0" 118.1567 + id="path13580" 118.1568 + inkscape:connector-curvature="0" /> 118.1569 + <text 118.1570 + sodipodi:linespacing="125%" 118.1571 + id="text4733" 118.1572 + y="590.5202" 118.1573 + x="149.67584" 118.1574 + style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 118.1575 + xml:space="preserve"><tspan 118.1576 + style="font-size:13px;font-weight:normal;-inkscape-font-specification:Trebuchet MS" 118.1577 + y="590.5202" 118.1578 + x="149.67584" 118.1579 + sodipodi:role="line" 118.1580 + id="tspan4737">Proto-</tspan></text> 118.1581 + <text 118.1582 + xml:space="preserve" 118.1583 + style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 118.1584 + x="149.67584" 118.1585 + y="602.5202" 118.1586 + id="text4741" 118.1587 + sodipodi:linespacing="125%"><tspan 118.1588 + id="tspan4743" 118.1589 + sodipodi:role="line" 118.1590 + x="149.67584" 118.1591 + y="602.5202" 118.1592 + style="font-size:13px;font-weight:normal;-inkscape-font-specification:Trebuchet MS">Runtime</tspan></text> 118.1593 + <text 118.1594 + sodipodi:linespacing="125%" 118.1595 + id="text4745" 118.1596 + y="620.5202" 118.1597 + x="149.67584" 118.1598 + style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 118.1599 + xml:space="preserve"><tspan 118.1600 + style="font-size:13px;font-weight:normal;-inkscape-font-specification:Trebuchet MS" 118.1601 + y="620.5202" 118.1602 + x="149.67584" 118.1603 + sodipodi:role="line" 118.1604 + id="tspan4747">Hardware</tspan></text> 118.1605 + <text 118.1606 + xml:space="preserve" 118.1607 + style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 118.1608 + x="149.67584" 118.1609 + y="542.5202" 118.1610 + id="text4749" 118.1611 + sodipodi:linespacing="125%"><tspan 118.1612 + id="tspan4751" 118.1613 + sodipodi:role="line" 118.1614 + x="149.67584" 118.1615 + y="542.5202" 118.1616 + style="font-size:13px;font-weight:normal;-inkscape-font-specification:Trebuchet MS">Language</tspan></text> 118.1617 + <text 118.1618 + sodipodi:linespacing="125%" 118.1619 + id="text4753" 118.1620 + y="554.5202" 118.1621 + x="149.67584" 118.1622 + style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 118.1623 + xml:space="preserve"><tspan 118.1624 + style="font-size:13px;font-weight:normal;-inkscape-font-specification:Trebuchet MS" 118.1625 + y="554.5202" 118.1626 + x="149.67584" 118.1627 + sodipodi:role="line" 118.1628 + id="tspan4755">Plugin</tspan></text> 118.1629 + <text 118.1630 + sodipodi:linespacing="125%" 118.1631 + id="text4757" 118.1632 + y="482.5202" 118.1633 + x="149.67584" 118.1634 + style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 118.1635 + xml:space="preserve"><tspan 118.1636 + style="font-size:13px;font-weight:normal;-inkscape-font-specification:Trebuchet MS" 118.1637 + y="482.5202" 118.1638 + x="149.67584" 118.1639 + sodipodi:role="line" 118.1640 + id="tspan4759">Language</tspan></text> 118.1641 + <text 118.1642 + xml:space="preserve" 118.1643 + style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 118.1644 + x="149.67584" 118.1645 + y="494.5202" 118.1646 + id="text4761" 118.1647 + sodipodi:linespacing="125%"><tspan 118.1648 + id="tspan4763" 118.1649 + sodipodi:role="line" 118.1650 + x="149.67584" 118.1651 + y="494.5202" 118.1652 + style="font-size:13px;font-weight:normal;-inkscape-font-specification:Trebuchet MS">Toolchain</tspan></text> 118.1653 + <text 118.1654 + sodipodi:linespacing="125%" 118.1655 + id="text4769" 118.1656 + y="414.5202" 118.1657 + x="149.67584" 118.1658 + style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 118.1659 + xml:space="preserve"><tspan 118.1660 + style="font-size:13px;font-weight:normal;-inkscape-font-specification:Trebuchet MS" 118.1661 + y="414.5202" 118.1662 + x="149.67584" 118.1663 + sodipodi:role="line" 118.1664 + id="tspan4771">Application</tspan></text> 118.1665 + <path 118.1666 + d="m 214.28486,532.64946 0,23.24944 -0.63042,0 -0.60618,0 0,-23.24944 0.60618,0 0.63042,0 z" 118.1667 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 118.1668 + id="path4773" 118.1669 + inkscape:connector-curvature="0" /> 118.1670 + <text 118.1671 + sodipodi:linespacing="125%" 118.1672 + id="text5271" 118.1673 + y="498.5202" 118.1674 + x="595.58405" 118.1675 + style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 118.1676 + xml:space="preserve"><tspan 118.1677 + style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Xpress SF;-inkscape-font-specification:Xpress SF" 118.1678 + y="498.5202" 118.1679 + x="595.58405" 118.1680 + sodipodi:role="line" 118.1681 + id="tspan5273">Executable</tspan></text> 118.1682 + <text 118.1683 + xml:space="preserve" 118.1684 + style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 118.1685 + x="589.67584" 118.1686 + y="434.5202" 118.1687 + id="text5275" 118.1688 + sodipodi:linespacing="125%"><tspan 118.1689 + id="tspan5277" 118.1690 + sodipodi:role="line" 118.1691 + x="589.67584" 118.1692 + y="434.5202" 118.1693 + style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Xpress SF;-inkscape-font-specification:Xpress SF">Source Code</tspan></text> 118.1694 + <text 118.1695 + xml:space="preserve" 118.1696 + style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 118.1697 + x="606.43365" 118.1698 + y="528.5202" 118.1699 + id="text5279" 118.1700 + sodipodi:linespacing="125%"><tspan 118.1701 + id="tspan5281" 118.1702 + sodipodi:role="line" 118.1703 + x="606.43365" 118.1704 + y="528.5202" 118.1705 + style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Xpress SF;-inkscape-font-specification:Xpress SF">Runtime</tspan></text> 118.1706 + <text 118.1707 + xml:space="preserve" 118.1708 + style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 118.1709 + x="601.0636" 118.1710 + y="462.5202" 118.1711 + id="text6129" 118.1712 + sodipodi:linespacing="125%"><tspan 118.1713 + id="tspan6131" 118.1714 + sodipodi:role="line" 118.1715 + x="601.0636" 118.1716 + y="462.5202" 118.1717 + style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Xpress SF;-inkscape-font-specification:Xpress SF">Toolchain</tspan></text> 118.1718 + <g 118.1719 + id="g6133" 118.1720 + transform="matrix(0.25335872,0,0,0.44105307,460.34347,310.90235)"> 118.1721 + <path 118.1722 + inkscape:connector-curvature="0" 118.1723 + id="path6135" 118.1724 + d="m 657.61111,437.75107 c 0,19.44445 0,19.44445 0,19.44445" 118.1725 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 118.1726 + <path 118.1727 + sodipodi:nodetypes="cc" 118.1728 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 118.1729 + d="m 651.37501,457.22329 c 14.58334,15.97223 14.58334,15.97223 14.58334,15.97223" 118.1730 + id="path6137" 118.1731 + inkscape:connector-curvature="0" /> 118.1732 + <path 118.1733 + inkscape:connector-curvature="0" 118.1734 + id="path6139" 118.1735 + d="m 679.95835,457.22329 c -14.58334,15.97223 -14.58334,15.97223 -14.58334,15.97223" 118.1736 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 118.1737 + sodipodi:nodetypes="cc" /> 118.1738 + <path 118.1739 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 118.1740 + d="m 652.2361,457.4733 c 5.89524,0 5.89524,0 5.89524,0" 118.1741 + id="path6141" 118.1742 + inkscape:connector-curvature="0" /> 118.1743 + <path 118.1744 + inkscape:connector-curvature="0" 118.1745 + id="path6143" 118.1746 + d="m 673.54166,457.4733 c 5.89524,0 5.89524,0 5.89524,0" 118.1747 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 118.1748 + <path 118.1749 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 118.1750 + d="m 673.95833,437.75107 c 0,19.44445 0,19.44445 0,19.44445" 118.1751 + id="path6145" 118.1752 + inkscape:connector-curvature="0" /> 118.1753 + <path 118.1754 + inkscape:connector-curvature="0" 118.1755 + id="path6147" 118.1756 + d="m 658.2361,438.43164 c 15.8786,0 15.8786,0 15.8786,0" 118.1757 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 118.1758 + </g> 118.1759 + <g 118.1760 + transform="matrix(0.25335872,0,0,-0.44105307,468.34347,712.67814)" 118.1761 + id="g6165"> 118.1762 + <path 118.1763 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 118.1764 + d="m 657.61111,437.75107 c 0,19.44445 0,19.44445 0,19.44445" 118.1765 + id="path6167" 118.1766 + inkscape:connector-curvature="0" /> 118.1767 + <path 118.1768 + inkscape:connector-curvature="0" 118.1769 + id="path6169" 118.1770 + d="m 651.37501,457.22329 c 14.58334,15.97223 14.58334,15.97223 14.58334,15.97223" 118.1771 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 118.1772 + sodipodi:nodetypes="cc" /> 118.1773 + <path 118.1774 + sodipodi:nodetypes="cc" 118.1775 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 118.1776 + d="m 679.95835,457.22329 c -14.58334,15.97223 -14.58334,15.97223 -14.58334,15.97223" 118.1777 + id="path6171" 118.1778 + inkscape:connector-curvature="0" /> 118.1779 + <path 118.1780 + inkscape:connector-curvature="0" 118.1781 + id="path6173" 118.1782 + d="m 652.2361,457.4733 c 5.89524,0 5.89524,0 5.89524,0" 118.1783 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 118.1784 + <path 118.1785 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 118.1786 + d="m 673.54166,457.4733 c 5.89524,0 5.89524,0 5.89524,0" 118.1787 + id="path6175" 118.1788 + inkscape:connector-curvature="0" /> 118.1789 + <path 118.1790 + inkscape:connector-curvature="0" 118.1791 + id="path6177" 118.1792 + d="m 673.95833,437.75107 c 0,19.44445 0,19.44445 0,19.44445" 118.1793 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 118.1794 + <path 118.1795 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 118.1796 + d="m 658.2361,438.43164 c 15.8786,0 15.8786,0 15.8786,0" 118.1797 + id="path6179" 118.1798 + inkscape:connector-curvature="0" /> 118.1799 + </g> 118.1800 + <g 118.1801 + transform="matrix(0.25335872,0,0,0.44105307,460.34347,244.90235)" 118.1802 + id="g6181"> 118.1803 + <path 118.1804 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 118.1805 + d="m 657.61111,437.75107 c 0,19.44445 0,19.44445 0,19.44445" 118.1806 + id="path6183" 118.1807 + inkscape:connector-curvature="0" /> 118.1808 + <path 118.1809 + inkscape:connector-curvature="0" 118.1810 + id="path6185" 118.1811 + d="m 651.37501,457.22329 c 14.58334,15.97223 14.58334,15.97223 14.58334,15.97223" 118.1812 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 118.1813 + sodipodi:nodetypes="cc" /> 118.1814 + <path 118.1815 + sodipodi:nodetypes="cc" 118.1816 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 118.1817 + d="m 679.95835,457.22329 c -14.58334,15.97223 -14.58334,15.97223 -14.58334,15.97223" 118.1818 + id="path6187" 118.1819 + inkscape:connector-curvature="0" /> 118.1820 + <path 118.1821 + inkscape:connector-curvature="0" 118.1822 + id="path6189" 118.1823 + d="m 652.2361,457.4733 c 5.89524,0 5.89524,0 5.89524,0" 118.1824 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 118.1825 + <path 118.1826 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 118.1827 + d="m 673.54166,457.4733 c 5.89524,0 5.89524,0 5.89524,0" 118.1828 + id="path6191" 118.1829 + inkscape:connector-curvature="0" /> 118.1830 + <path 118.1831 + inkscape:connector-curvature="0" 118.1832 + id="path6193" 118.1833 + d="m 673.95833,437.75107 c 0,19.44445 0,19.44445 0,19.44445" 118.1834 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 118.1835 + <path 118.1836 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 118.1837 + d="m 658.2361,438.43164 c 15.8786,0 15.8786,0 15.8786,0" 118.1838 + id="path6195" 118.1839 + inkscape:connector-curvature="0" /> 118.1840 + </g> 118.1841 + <g 118.1842 + transform="matrix(0.25335872,0,0,0.44105307,460.34347,374.90235)" 118.1843 + id="g6197"> 118.1844 + <path 118.1845 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 118.1846 + d="m 657.61111,437.75107 c 0,19.44445 0,19.44445 0,19.44445" 118.1847 + id="path6199" 118.1848 + inkscape:connector-curvature="0" /> 118.1849 + <path 118.1850 + inkscape:connector-curvature="0" 118.1851 + id="path6201" 118.1852 + d="m 651.37501,457.22329 c 14.58334,15.97223 14.58334,15.97223 14.58334,15.97223" 118.1853 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 118.1854 + sodipodi:nodetypes="cc" /> 118.1855 + <path 118.1856 + sodipodi:nodetypes="cc" 118.1857 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 118.1858 + d="m 679.95835,457.22329 c -14.58334,15.97223 -14.58334,15.97223 -14.58334,15.97223" 118.1859 + id="path6203" 118.1860 + inkscape:connector-curvature="0" /> 118.1861 + <path 118.1862 + inkscape:connector-curvature="0" 118.1863 + id="path6205" 118.1864 + d="m 652.2361,457.4733 c 5.89524,0 5.89524,0 5.89524,0" 118.1865 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 118.1866 + <path 118.1867 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 118.1868 + d="m 673.54166,457.4733 c 5.89524,0 5.89524,0 5.89524,0" 118.1869 + id="path6207" 118.1870 + inkscape:connector-curvature="0" /> 118.1871 + <path 118.1872 + inkscape:connector-curvature="0" 118.1873 + id="path6209" 118.1874 + d="m 673.95833,437.75107 c 0,19.44445 0,19.44445 0,19.44445" 118.1875 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 118.1876 + <path 118.1877 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 118.1878 + d="m 658.2361,438.43164 c 15.8786,0 15.8786,0 15.8786,0" 118.1879 + id="path6211" 118.1880 + inkscape:connector-curvature="0" /> 118.1881 + </g> 118.1882 + <g 118.1883 + id="g6213" 118.1884 + transform="matrix(0.25335872,0,0,-0.44105307,468.34347,776.67814)"> 118.1885 + <path 118.1886 + inkscape:connector-curvature="0" 118.1887 + id="path6215" 118.1888 + d="m 657.61111,437.75107 c 0,19.44445 0,19.44445 0,19.44445" 118.1889 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 118.1890 + <path 118.1891 + sodipodi:nodetypes="cc" 118.1892 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 118.1893 + d="m 651.37501,457.22329 c 14.58334,15.97223 14.58334,15.97223 14.58334,15.97223" 118.1894 + id="path6217" 118.1895 + inkscape:connector-curvature="0" /> 118.1896 + <path 118.1897 + inkscape:connector-curvature="0" 118.1898 + id="path6219" 118.1899 + d="m 679.95835,457.22329 c -14.58334,15.97223 -14.58334,15.97223 -14.58334,15.97223" 118.1900 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 118.1901 + sodipodi:nodetypes="cc" /> 118.1902 + <path 118.1903 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 118.1904 + d="m 652.2361,457.4733 c 5.89524,0 5.89524,0 5.89524,0" 118.1905 + id="path6221" 118.1906 + inkscape:connector-curvature="0" /> 118.1907 + <path 118.1908 + inkscape:connector-curvature="0" 118.1909 + id="path6223" 118.1910 + d="m 673.54166,457.4733 c 5.89524,0 5.89524,0 5.89524,0" 118.1911 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 118.1912 + <path 118.1913 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 118.1914 + d="m 673.95833,437.75107 c 0,19.44445 0,19.44445 0,19.44445" 118.1915 + id="path6225" 118.1916 + inkscape:connector-curvature="0" /> 118.1917 + <path 118.1918 + inkscape:connector-curvature="0" 118.1919 + id="path6227" 118.1920 + d="m 658.2361,438.43164 c 15.8786,0 15.8786,0 15.8786,0" 118.1921 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 118.1922 + </g> 118.1923 + <text 118.1924 + sodipodi:linespacing="125%" 118.1925 + id="text6229" 118.1926 + y="564.5202" 118.1927 + x="615.02844" 118.1928 + style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 118.1929 + xml:space="preserve"><tspan 118.1930 + style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Xpress SF;-inkscape-font-specification:Xpress SF" 118.1931 + y="564.5202" 118.1932 + x="615.02844" 118.1933 + sodipodi:role="line" 118.1934 + id="tspan6231">Plugin</tspan></text> 118.1935 + <text 118.1936 + xml:space="preserve" 118.1937 + style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 118.1938 + x="605.17816" 118.1939 + y="592.5202" 118.1940 + id="text6233" 118.1941 + sodipodi:linespacing="125%"><tspan 118.1942 + id="tspan6235" 118.1943 + sodipodi:role="line" 118.1944 + x="605.17816" 118.1945 + y="592.5202" 118.1946 + style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Xpress SF;-inkscape-font-specification:Xpress SF">Proto-RT</tspan></text> 118.1947 + <text 118.1948 + sodipodi:linespacing="125%" 118.1949 + id="text12752-4" 118.1950 + y="600.63922" 118.1951 + x="245.119" 118.1952 + style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 118.1953 + xml:space="preserve"><tspan 118.1954 + y="600.63922" 118.1955 + x="245.119" 118.1956 + id="tspan12754-6" 118.1957 + sodipodi:role="line" 118.1958 + style="font-size:7px;fill:#ff0000">Proto-RT</tspan></text> 118.1959 + <text 118.1960 + xml:space="preserve" 118.1961 + style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 118.1962 + x="319.11899" 118.1963 + y="600.63922" 118.1964 + id="text6258" 118.1965 + sodipodi:linespacing="125%"><tspan 118.1966 + style="font-size:7px;fill:#ff0000" 118.1967 + sodipodi:role="line" 118.1968 + id="tspan6260" 118.1969 + x="319.11899" 118.1970 + y="600.63922">Proto-RT</tspan></text> 118.1971 + <text 118.1972 + sodipodi:linespacing="125%" 118.1973 + id="text6262" 118.1974 + y="600.63922" 118.1975 + x="409.6481" 118.1976 + style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff6600;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 118.1977 + xml:space="preserve"><tspan 118.1978 + y="600.63922" 118.1979 + x="409.6481" 118.1980 + id="tspan6264" 118.1981 + sodipodi:role="line" 118.1982 + style="font-size:7px;fill:#ff6600">Proto-RT</tspan></text> 118.1983 + <text 118.1984 + xml:space="preserve" 118.1985 + style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff6600;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 118.1986 + x="483.6481" 118.1987 + y="600.63922" 118.1988 + id="text6266" 118.1989 + sodipodi:linespacing="125%"><tspan 118.1990 + style="font-size:7px;fill:#ff6600" 118.1991 + sodipodi:role="line" 118.1992 + id="tspan6268" 118.1993 + x="483.6481" 118.1994 + y="600.63922">Proto-RT</tspan></text> 118.1995 + <text 118.1996 + sodipodi:linespacing="125%" 118.1997 + id="text6270" 118.1998 + y="600.63922" 118.1999 + x="557.64807" 118.2000 + style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff6600;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 118.2001 + xml:space="preserve"><tspan 118.2002 + y="600.63922" 118.2003 + x="557.64807" 118.2004 + id="tspan6272" 118.2005 + sodipodi:role="line" 118.2006 + style="font-size:7px;fill:#ff6600">Proto-RT</tspan></text> 118.2007 + <text 118.2008 + xml:space="preserve" 118.2009 + style="font-size:12px;font-style:normal;font-weight:bold;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#800080;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold" 118.2010 + x="484.30685" 118.2011 + y="463.55795" 118.2012 + id="text5916" 118.2013 + sodipodi:linespacing="125%"><tspan 118.2014 + sodipodi:role="line" 118.2015 + id="tspan5918" 118.2016 + x="484.30685" 118.2017 + y="463.55795" 118.2018 + style="font-size:10px;font-weight:normal;fill:#800080;-inkscape-font-specification:Sans">DSL2</tspan></text> 118.2019 + <text 118.2020 + sodipodi:linespacing="125%" 118.2021 + id="text5920" 118.2022 + y="541.55798" 118.2023 + x="216.95236" 118.2024 + style="font-size:12px;font-style:normal;font-weight:bold;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#008080;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold" 118.2025 + xml:space="preserve"><tspan 118.2026 + style="font-size:8px;font-weight:normal;fill:#008080;-inkscape-font-specification:Sans" 118.2027 + y="541.55798" 118.2028 + x="216.95236" 118.2029 + id="tspan5922" 118.2030 + sodipodi:role="line">OpenMP</tspan></text> 118.2031 + <text 118.2032 + xml:space="preserve" 118.2033 + style="font-size:12px;font-style:normal;font-weight:bold;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#0000ff;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold" 118.2034 + x="282.53976" 118.2035 + y="542.0871" 118.2036 + id="text5924" 118.2037 + sodipodi:linespacing="125%"><tspan 118.2038 + sodipodi:role="line" 118.2039 + id="tspan5926" 118.2040 + x="282.53976" 118.2041 + y="542.0871" 118.2042 + style="font-size:8px;font-weight:normal;fill:#0000ff;-inkscape-font-specification:Sans">DSL1</tspan></text> 118.2043 + <text 118.2044 + sodipodi:linespacing="125%" 118.2045 + id="text5928" 118.2046 + y="542.0871" 118.2047 + x="341.36508" 118.2048 + style="font-size:12px;font-style:normal;font-weight:bold;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#800080;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold" 118.2049 + xml:space="preserve"><tspan 118.2050 + style="font-size:8px;font-weight:normal;fill:#800080;-inkscape-font-specification:Sans" 118.2051 + y="542.0871" 118.2052 + x="341.36508" 118.2053 + id="tspan5930" 118.2054 + sodipodi:role="line">DSL2</tspan></text> 118.2055 + <text 118.2056 + xml:space="preserve" 118.2057 + style="font-size:12px;font-style:normal;font-weight:bold;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#008080;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold" 118.2058 + x="421.48148" 118.2059 + y="541.55798" 118.2060 + id="text5932" 118.2061 + sodipodi:linespacing="125%"><tspan 118.2062 + sodipodi:role="line" 118.2063 + id="tspan5934" 118.2064 + x="421.48148" 118.2065 + y="541.55798" 118.2066 + style="font-size:8px;font-weight:normal;fill:#008080;-inkscape-font-specification:Sans">OpenMP</tspan></text> 118.2067 + <text 118.2068 + sodipodi:linespacing="125%" 118.2069 + id="text5936" 118.2070 + y="542.0871" 118.2071 + x="487.06888" 118.2072 + style="font-size:12px;font-style:normal;font-weight:bold;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#0000ff;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold" 118.2073 + xml:space="preserve"><tspan 118.2074 + style="font-size:8px;font-weight:normal;fill:#0000ff;-inkscape-font-specification:Sans" 118.2075 + y="542.0871" 118.2076 + x="487.06888" 118.2077 + id="tspan5938" 118.2078 + sodipodi:role="line">DSL1</tspan></text> 118.2079 + <text 118.2080 + xml:space="preserve" 118.2081 + style="font-size:12px;font-style:normal;font-weight:bold;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#800080;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold" 118.2082 + x="545.89423" 118.2083 + y="542.0871" 118.2084 + id="text5940" 118.2085 + sodipodi:linespacing="125%"><tspan 118.2086 + sodipodi:role="line" 118.2087 + id="tspan5942" 118.2088 + x="545.89423" 118.2089 + y="542.0871" 118.2090 + style="font-size:8px;font-weight:normal;fill:#800080;-inkscape-font-specification:Sans">DSL2</tspan></text> 118.2091 + <rect 118.2092 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 118.2093 + id="rect6491" 118.2094 + width="41.452991" 118.2095 + height="21.916971" 118.2096 + x="375.65811" 118.2097 + y="454.18875" /> 118.2098 + <text 118.2099 + sodipodi:linespacing="125%" 118.2100 + id="text6493" 118.2101 + y="472.81934" 118.2102 + x="379.21664" 118.2103 + style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#0000ff;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 118.2104 + xml:space="preserve"><tspan 118.2105 + style="fill:#0000ff" 118.2106 + y="472.81934" 118.2107 + x="379.21664" 118.2108 + id="tspan6495" 118.2109 + sodipodi:role="line">Toolchain</tspan></text> 118.2110 + <rect 118.2111 + y="454.18875" 118.2112 + x="271.65811" 118.2113 + height="21.916971" 118.2114 + width="41.452991" 118.2115 + id="rect6505" 118.2116 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 118.2117 + <text 118.2118 + xml:space="preserve" 118.2119 + style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#008080;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 118.2120 + x="275.21664" 118.2121 + y="472.81934" 118.2122 + id="text6507" 118.2123 + sodipodi:linespacing="125%"><tspan 118.2124 + sodipodi:role="line" 118.2125 + id="tspan6509" 118.2126 + x="275.21664" 118.2127 + y="472.81934" 118.2128 + style="fill:#008080">Toolchain</tspan></text> 118.2129 + <text 118.2130 + xml:space="preserve" 118.2131 + style="font-size:12px;font-style:normal;font-weight:bold;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#008080;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold" 118.2132 + x="272.30685" 118.2133 + y="463.55795" 118.2134 + id="text6513" 118.2135 + sodipodi:linespacing="125%"><tspan 118.2136 + sodipodi:role="line" 118.2137 + id="tspan6515" 118.2138 + x="272.30685" 118.2139 + y="463.55795" 118.2140 + style="font-size:10px;font-weight:normal;fill:#008080;-inkscape-font-specification:Sans">OpenMP</tspan></text> 118.2141 + <text 118.2142 + sodipodi:linespacing="125%" 118.2143 + id="text6517" 118.2144 + y="409.55795" 118.2145 + x="312.30685" 118.2146 + style="font-size:12px;font-style:normal;font-weight:bold;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#008080;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold" 118.2147 + xml:space="preserve"><tspan 118.2148 + style="font-size:10px;font-weight:normal;fill:#008080;-inkscape-font-specification:Sans" 118.2149 + y="409.55795" 118.2150 + x="312.30685" 118.2151 + id="tspan6519" 118.2152 + sodipodi:role="line">App<tspan 118.2153 + style="fill:#0000ff" 118.2154 + id="tspan7986">lica</tspan><tspan 118.2155 + style="fill:#800080" 118.2156 + id="tspan7988">tions</tspan><tspan 118.2157 + style="fill:#0000ff" 118.2158 + id="tspan6529"> that </tspan><tspan 118.2159 + style="fill:#800080" 118.2160 + id="tspan6531"> mix</tspan> lan<tspan 118.2161 + style="fill:#0000ff" 118.2162 + id="tspan6533">gua</tspan><tspan 118.2163 + style="fill:#800080" 118.2164 + id="tspan6535">ges</tspan></tspan></text> 118.2165 + <text 118.2166 + xml:space="preserve" 118.2167 + style="font-size:12px;font-style:normal;font-weight:bold;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#0000ff;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold" 118.2168 + x="384.30685" 118.2169 + y="463.55795" 118.2170 + id="text6521" 118.2171 + sodipodi:linespacing="125%"><tspan 118.2172 + sodipodi:role="line" 118.2173 + id="tspan6523" 118.2174 + x="384.30685" 118.2175 + y="463.55795" 118.2176 + style="font-size:10px;font-weight:normal;fill:#0000ff;-inkscape-font-specification:Sans">DSL1</tspan></text> 118.2177 + <rect 118.2178 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 118.2179 + id="rect6553" 118.2180 + width="256.79691" 118.2181 + height="9.2185583" 118.2182 + x="267.65811" 118.2183 + y="424.88715" /> 118.2184 + <path 118.2185 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" 118.2186 + d="m 293.82011,434.90029 c 0,18.6218 0,18.6218 0,18.6218" 118.2187 + id="path6555" 118.2188 + inkscape:connector-curvature="0" /> 118.2189 + <path 118.2190 + inkscape:connector-curvature="0" 118.2191 + id="path7523" 118.2192 + d="m 395.82011,434.90029 c 0,18.6218 0,18.6218 0,18.6218" 118.2193 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" /> 118.2194 + <path 118.2195 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" 118.2196 + d="m 497.82011,434.90029 c 0,18.6218 0,18.6218 0,18.6218" 118.2197 + id="path7525" 118.2198 + inkscape:connector-curvature="0" /> 118.2199 + <text 118.2200 + xml:space="preserve" 118.2201 + style="font-size:12px;font-style:normal;font-weight:bold;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold" 118.2202 + x="280.83597" 118.2203 + y="432.61618" 118.2204 + id="text7527" 118.2205 + sodipodi:linespacing="125%"><tspan 118.2206 + sodipodi:role="line" 118.2207 + id="tspan7529" 118.2208 + x="280.83597" 118.2209 + y="432.61618" 118.2210 + style="font-size:8px;font-weight:normal;fill:#000000;-inkscape-font-specification:Sans">Development tool that translates syntax and directs to toolchains</tspan></text> 118.2211 + </g> 118.2212 +</svg>
119.1 Binary file 1__Presentations/13__My_07__ACG_on_protoruntime_for_CWI/ProtoRuntime_expl.odp has changed
120.1 Binary file 9__Owned_by_Others/armin/kronawitter-m.pdf has changed
121.1 Binary file CVs/13_Jy__ERCIM_CV/ERCIM_CV.pdf has changed
122.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 122.2 +++ b/CVs/13_Jy__ERCIM_CV/ERCIM_CV.tex Sat Aug 03 19:24:22 2013 -0700 122.3 @@ -0,0 +1,205 @@ 122.4 +%&latex 122.5 +%% Derived from: `cvctan.tex' 122.6 + 122.7 +\documentclass[a4paper]{article} 122.8 + 122.9 +\usepackage{tabularx} 122.10 + 122.11 +%\usepackage{doublespace} 122.12 +%\setstretch{1.1} 122.13 + 122.14 +%\usepackage{ae} 122.15 +\usepackage[T1]{fontenc} 122.16 +\usepackage{CV} 122.17 + 122.18 + 122.19 +\oddsidemargin 0in 122.20 +\evensidemargin 0in 122.21 +\textwidth\paperwidth 122.22 +\advance \textwidth by -2in 122.23 +\topmargin 0in 122.24 +\textheight\paperheight 122.25 +\advance\textheight -2in 122.26 +\headheight 0pt 122.27 +\headsep 0pt 122.28 +\footskip 0pt 122.29 + 122.30 + 122.31 +%%%%%%%%%%%%%%%%%%%%%% 122.32 +\begin{document} 122.33 + 122.34 +\pagestyle{empty} 122.35 +\bibliographystyle{plain} 122.36 +%Ueberschrift 122.37 +\begin{center} 122.38 +\huge{\textsc{Curriculum Vitae}} 122.39 +\vspace{\baselineskip} 122.40 + 122.41 +\Large{\textsc{Sean Halle}} 122.42 +\end{center} 122.43 +%\vspace{1.5\baselineskip} 122.44 + 122.45 +\section{} 122.46 +\noindent\hspace*{\tabcolsep} 122.47 +\begin{minipage}{0.4\linewidth} 122.48 + 122.49 +{\large{\textsc{Address}}}\\ 122.50 +Carolina Macgillavrylaan 1976 \\ 122.51 +1098XE Amsterdam\\[3pt] 122.52 +Tel~: +31 616 434 534~\\ 122.53 +EMail~: \texttt{seanhalle@yahoo.com} 122.54 +\end{minipage} 122.55 +\begin{minipage}{0.4\linewidth} 122.56 + 122.57 +{\large{\textsc{Personal Details}}}\\ 122.58 +Nationality: US\\ 122.59 +Gender: Male\\ 122.60 +\\ 122.61 + 122.62 +\end{minipage} 122.63 + 122.64 +\section{Overview/Summary} Sean is a researcher, and former entrepreneur. As an undergraduate and masters student, his research at UC Berkeley demonstrated the first evidence of secure communication using chaos, spread spectrum communication using a chaotic carrier signal, and gain from perturbation of chaotic circuits, with a total of 680+ citations to these papers. He left with his Masters in 1994, to pursue starting a company with technology developed during a graduate course, eventually founding a fabless chip company around a massively parallel MIMD-SIMD low-power processor for graphics (ProSide), in 1997. After the company's demise, he switched to software and worked his way up the chain, ending at Chief Software Architect at Nevik in 2000. The dot-com crash precipitated a return to academia to start his PhD in 2003, where he worked on parallelism, developing a theory of parallel computation, and a performance-portable software stack. As part of this, in 2008 he was invited by Albert Cohen to work in Paris at INRIA, the national computer science research institute for France, concentrating on new parallel languages for high productivity and high performance portability. This led to BLIS and proto-runtime, two technologies that became the basis of his dissertation, for which he received his PhD in 2011. He subsequently 122.65 +advanced the proto-runtime work as a post-doc at TU 122.66 +Berlin, and is currently advancing it further as an 122.67 +ERCIM fellow at CWI in Amsterdam. 122.68 + 122.69 + 122.70 + 122.71 +\section{Education} 122.72 + 122.73 +\begin{CV} 122.74 +\item[May 1992:] UC Berkeley, BSEE, Dept. of Electrical Engineering and Computer Science. 122.75 +\item[May 1994:] UC Berkeley, MSEE, Dept. of Electrical Engineering and Computer Science. 122.76 + 122.77 +Thesis on \emph{Experimental Chaos}. Published the first papers in the field on "Gain from Chaos," "Spread Spectrum Communication Using Chaos," and "Secure Communication Using Chaos." The papers, combined, have garnered in excess of 450 citations. Advisor: Leon O Chua. 122.78 + 122.79 +\item[June 2011:] UC Santa Cruz, PhD, Dept. of Computer Engineering. 122.80 + 122.81 +Dissertation on \emph{theory of parallel computation and tools for delivering performance-portable parallel software}. Advisors: Albert Cohen (INRIA, Paris), and Jose Renau (UC Santa Cruz). 122.82 + 122.83 +\end{CV} 122.84 + 122.85 + 122.86 +\section{Experience} 122.87 + 122.88 +\begin{CV} 122.89 + 122.90 + 122.91 +\item[Apr '13 to Apr '14:] ERCIM Fellow at CWI in 122.92 +Amsterdam. 122.93 + 122.94 + Implementing the Reo language on top of proto-runtime, 122.95 + and extending proto-runtime to distributed machines, 122.96 + developing on the Netherlands' national supercomputer. 122.97 + 122.98 +\item[Jun '11 to Jun '12:] Post-doctorate researcher at Technical University Berlin. 122.99 + 122.100 + Oversaw 6 students who worked on: verifying the Holistic Model of Parallel Computation (proposed in Dissertation), design of a low-power GPU that is free from programming and application restrictions, improvement of proto-runtime, and implementation of the HWSim language on top of proto-runtime. 122.101 + 122.102 +\item[Apr '08 to Apr '11:] INRIA, Paris and Ecole Normale Supereur: Performed research on Portable High Performance Parallelism. 122.103 + 122.104 +In 2008-2009 period demonstrated DKU and BLIS framework in Java and in C, running on multi-core shared memory machines, a heterogeneous collection of them and on the Cell processor. In 2010 and 2011 designed WorkTable language for high productivity parallel coding for Enterprise applications, and HWSim for high-performance simulation of hardware designs, using parallel host machines. In 2011 delivered Virtualized Master-Slave (VMS), a hardware abstraction to simplify creation and implementation of domain-specific parallel languages, and the basis of a software stack for performant-portable parallel software. The work there formed the main results in his dissertation. 122.105 + 122.106 +\item[Sept '03 to Apr '08:] UC Santa Cruz: Performed research on a theory of parallel computation, and developed a programming system for performance-portable software called CodeTime, in addition to an analytic performance model for out-of-order pipelines. 122.107 + 122.108 +\item[Apr '02 to Sept '03:] Freelance: In anticipation of starting a fabless chip company, architected an ultra low power multi-threaded high-throughput processor. Developed a detailed analytic model of the processor. Wrote behavioral code and a test suite to demonstrate its performance. Pursued series-A funding. 122.109 + 122.110 +\item[Dec '00 to Apr '02:] Nevik Networks: As Chief Software Architect, designed and was responsible for the team implementing a telecom abstraction layer that provides web-based end-customer provisioning of big-iron class 5 switches as well as soft-switches. Led development, drove requirements gathering and scoping of the product. 122.111 + 122.112 +\item[Dec '99 to Dec '00:] SRI International: A member of SRI's enterprise software consulting spin-off. Designed a high speed trading system for Deutsche Bank's fixed income securities market. Co-architected, for American Century, an integrated financial system. Contributed papers analyzing and detailing electronic exchanges. Technical lead on implementation of a financial planning services exchange. 122.113 + 122.114 +\item[Apr '99 to Dec '99:] Cisco Systems, contract: Member of web based ordering tool team (\$15 Billion in orders annually via this tool). Added functionality via modifying front-end servlet code, back-end business logic, and Oracle database tables. 122.115 + 122.116 +\item[Apr '98 to Mar '99:] Sun Microsystems, JavaSoft division, contract: Participated in debug of the AWT portion of the Java language for the 1.2 release. Contributed to specification of the automated GUI testing API that later appeared in release 1.5. Developed automated testing tools. 122.117 + 122.118 +\item[Mar '96 to Dec '97:] ProSide Inc. Acquired funding for a novel architecture fusing SIMD and SPMD of his design. Targeted at 3D graphics, was also a general "loop accelerator" that appeared as smart-memory. Developed base programming language and tools. 122.119 + 122.120 +\item[Jan '95 to Jan '96:] Digital Equipment Corporation: Held position created for him by Dan Dobberpuhl to evaluate advanced technologies for use in Alpha processors. Evaluated adiabatic logic, Time-Stationary Computation, and other low power, high speed technologies. Invented five new logic families and a novel division technique based on deduction. Designed high speed pseudo-self-timed array multiplier for low cost Alpha core and StrongArm VLIW co-processor using a combination of static, domino, and differential cascode (DCVSL) logic. 122.121 + 122.122 + 122.123 +\end{CV} 122.124 + 122.125 +\pagebreak 122.126 +\section{Personal References} 122.127 + 122.128 +\noindent These persons are familiar with my professional qualifications and my character: 122.129 + 122.130 +\begin{table}[ht] 122.131 +\begin{tabular}{@{}lll@{}} 122.132 +\textbf{Prof. Albert Cohen} \\ 122.133 +Thesis supervisor & Phone: & +33-1-44-32-21-67\\ 122.134 +Department d'Informatiqe & Email & albert.cohen@inria.fr\\ 122.135 +Ecole Normale Superieure \\ 122.136 +45 rue d'Ulm\\ 122.137 +75005 Paris\\ 122.138 +France 122.139 +\end{tabular} 122.140 + 122.141 +\vspace{.15in} 122.142 +\begin{tabular}{@{}lll@{}} 122.143 +\textbf{Prof. Jose Renau} \\ 122.144 +Thesis supervisor & Phone: & +1-831-459-1847\\ 122.145 + 1156 High Street MS: SOE2 & Email & renau@soe.ucsc.edu\\ 122.146 +Santa Cruz, CA 95064 \\ 122.147 +USA 122.148 +\end{tabular} 122.149 + 122.150 + 122.151 +\vspace{.15in} 122.152 +\begin{tabular}{@{}lll@{}} 122.153 +\textbf{Prof. Farhad Arbab} \\ 122.154 +Principle Investigator & Phone: & +31 30 314 73131\\ 122.155 +CWI & Email & Farhad.Arbab@cwi.nl\\ 122.156 +Science Park 123 \\ 122.157 +1098XG Amsterdam\\ 122.158 +Netherlands 122.159 +\end{tabular} 122.160 + 122.161 +\end{table} 122.162 + 122.163 +\cite{BLISHome, 122.164 +HotPar10_w_BLIS, 122.165 +HotPar11_w_Stack, 122.166 +PStackHome, 122.167 +VMS_LCPC_11, 122.168 +VMSHome, 122.169 +WorkTableHome, 122.170 +BaCTiLTechRep, 122.171 +CIPTechRep, 122.172 +CTOSTechRep, 122.173 +CTPlatformTechRep, 122.174 +CTRTTechRep, 122.175 +DKUTechRep_09, 122.176 +EQNLangTechRep, 122.177 +GainFromChaos_Halle_92, 122.178 +MentalFrameworkTechRep_06, 122.179 +Halle_GainFromChaos_pub, 122.180 +Halle_Secure_pub, 122.181 +Halle_SpreadSpect_pub} 122.182 + 122.183 +\bibliography{bib_for_papers_apr_2012} 122.184 + 122.185 + 122.186 + 122.187 +\end{document} 122.188 + 122.189 + 122.190 + 122.191 + 122.192 + 122.193 +%Tabellen 122.194 +\begin{table}[htbp] \centering% 122.195 +\begin{tabular}{lll}\hline\hline 122.196 +1 & 2 & 3 \\ \hline 122.197 +1 & \multicolumn{2}{c}{2} \\ 122.198 +\hline 122.199 +\end{tabular} 122.200 +\caption{Titel\label{Tabelle: Label}} 122.201 +\end{table} 122.202 + 122.203 + 122.204 + 122.205 + 122.206 + 122.207 + 122.208 +
123.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 123.2 +++ b/CVs/13_Jy__ERCIM_CV/bib_for_papers_apr_2012.bib Sat Aug 03 19:24:22 2013 -0700 123.3 @@ -0,0 +1,916 @@ 123.4 +@techrep{SyncConstr_impl_w_distr_coherence_HW_Utah_96, 123.5 + author = {Carter, J. B. and Kuo, C.-C. and Kuramkote, R.}, 123.6 + title = { A comparison of software and hardware synchronization mechanisms for distributed shared memory multiprocessors}, 123.7 + institution = {University of Utah, Salt Lake City, UT}, 123.8 + year = 1996, 123.9 + url = {http://www.cs.utah.edu/research/techreports/1996/pdf/UUCS-96-011.pdf}, 123.10 + number = {UUCS-96-011} 123.11 +} 123.12 +@Article{SWCoherence_Hill_SW_for_shared_coherence_w_HW_support_93, 123.13 + author = {Hill, Mark D. and Larus, James R. and Reinhardt, Steven K. and Wood, David A.}, 123.14 + title = {Cooperative shared memory: software and hardware for scalable multiprocessors}, 123.15 + journal = {ACM Trans. Comput. Syst.}, 123.16 + volume = 11, 123.17 + number = 4, 123.18 + year = 1993, 123.19 + pages = {300--318} 123.20 +} 123.21 +@InProceedings{SWCache_MIT_embedSW_manages_cache_w_HW_supp, 123.22 + author = {Chiou, Derek and Jain, Prabhat and Rudolph, Larry and Devadas, Srinivas}, 123.23 + title = {Application-specific memory management for embedded systems using software-controlled caches}, 123.24 + booktitle = {DAC}, 123.25 + year = 2000, 123.26 + pages = {416--419} 123.27 +} 123.28 +@InProceedings{SWCache_instr_trig_HW_supp_04, 123.29 + author = {Janapsatya, Andhi and Parameswaran, Sri and Ignjatovic, A.}, 123.30 + title = {Hardware/software managed scratchpad memory for embedded system}, 123.31 + booktitle = {Proceedings of the 2004 IEEE/ACM International conference on Computer-aided design}, 123.32 + series = {ICCAD '04}, 123.33 + year = 2004, 123.34 + pages = {370--377} 123.35 +} 123.36 +@InProceedings{SWCache_arch_supp_OS_policy_06, 123.37 + author = {Rafique, Nauman and Lim, Won-Taek and Thottethodi, Mithuna}, 123.38 + title = {Architectural support for operating system-driven CMP cache management}, 123.39 + booktitle = {Proceedings of the 15th international conference on Parallel architectures and compilation techniques}, 123.40 + series = {PACT '06}, 123.41 + year = 2006, 123.42 + pages = {2--12} 123.43 +} 123.44 +@InProceedings{SWCoherence_on_Distr_Mem_90, 123.45 + author = {Bennett, J.K. and Carter, J.B. and Zwaenepoel, W.}, 123.46 + booktitle = {Computer Architecture, 1990. Proceedings., 17th Annual International Symposium on}, 123.47 + title = {Adaptive software cache management for distributed shared memory architectures}, 123.48 + year = 1990, 123.49 + pages = {125 -134} 123.50 +} 123.51 +@InProceedings{Charm_runtime_opt_10, 123.52 + author = {Mei, Chao and Zheng, Gengbin and Gioachin, Filippo and Kal{\'e}, Laxmikant V.}, 123.53 + title = {Optimizing a parallel runtime system for multicore clusters: a case study}, 123.54 + booktitle = {The 2010 TeraGrid Conference}, 123.55 + year = 2010, 123.56 + pages = {12:1--12:8} 123.57 +} 123.58 +@InProceedings{TCC_Hammond_ISCA_04, 123.59 + author = {Hammond, Lance and al, et}, 123.60 + title = {Transactional Memory Coherence and Consistency}, 123.61 + series = {ISCA '04}, 123.62 + pages = {102--}, 123.63 + booktitle = {}, 123.64 + year = {} 123.65 +} 123.66 +@Misc{WorkTableHome, 123.67 + author = {Halle, Sean}, 123.68 + note = {http://musictwodotoh.com/worktable/content/refman.pdf}, 123.69 + title = {The WorkTable Language Reference Manual}, 123.70 + year = 2012 123.71 +} 123.72 +@Misc{HWSimHome, 123.73 + author = {Halle, Sean and Hausers, Stefan}, 123.74 + note = {http://musictwodotoh.com/hwsim/content/refman.pdf}, 123.75 + title = {The HWSim Language Reference Manual}, 123.76 + year = 2012 123.77 +} 123.78 +@Article{Lamport78, 123.79 + author = {Lamport, Leslie}, 123.80 + title = {Time, clocks, and the ordering of events in a distributed system}, 123.81 + journal = {Commun. ACM}, 123.82 + volume = 21, 123.83 + issue = 7, 123.84 + year = 1978, 123.85 + pages = {558--565} 123.86 +} 123.87 +@Article{Lamport87, 123.88 + author = {Lamport, Leslie}, 123.89 + title = {A fast mutual exclusion algorithm}, 123.90 + journal = {ACM Trans. Comput. Syst.}, 123.91 + volume = 5, 123.92 + issue = 1, 123.93 + year = 1987, 123.94 + pages = {1--11} 123.95 +} 123.96 +@InProceedings{Dijkstra67, 123.97 + author = {Dijkstra, Edsger W.}, 123.98 + title = {The structure of the "{THE}"-multiprogramming system}, 123.99 + booktitle = {Proceedings of the first ACM symposium on Operating System Principles}, 123.100 + series = {SOSP '67}, 123.101 + year = 1967, 123.102 + pages = {10.1--10.6} 123.103 +} 123.104 +@Article{Conway63, 123.105 + author = {Conway, Melvin E.}, 123.106 + title = {Design of a separable transition-diagram compiler}, 123.107 + journal = {Commun. ACM}, 123.108 + volume = 6, 123.109 + issue = 7, 123.110 + year = 1963, 123.111 + pages = {396--408} 123.112 +} 123.113 +@Book{ComponentModel00, 123.114 + author = {G Leavens and M Sitaraman (eds)}, 123.115 + title = {Foundations of Component-Based Systems}, 123.116 + publisher = {Cambridge University Press}, 123.117 + year = 2000 123.118 +} 123.119 +@Misc{Hewitt10, 123.120 + author = {Carl Hewitt}, 123.121 + title = {Actor Model of Computation}, 123.122 + year = 2010, 123.123 + note = {http://arxiv.org/abs/1008.1459} 123.124 +} 123.125 +@Article{Actors97, 123.126 + author = {Agha,G. and Mason,I. and Smith,S. and Talcott,C.}, 123.127 + title = {A foundation for actor computation}, 123.128 + journal = {Journal of Functional Programming}, 123.129 + volume = 7, 123.130 + number = 01, 123.131 + pages = {1-72}, 123.132 + year = 1997 123.133 +} 123.134 +@Article{SchedActivations, 123.135 + author = {Anderson, Thomas E. and Bershad, Brian N. and Lazowska, Edward D. and Levy, Henry M.}, 123.136 + title = {Scheduler activations: effective kernel support for the user-level management of parallelism}, 123.137 + journal = {ACM Trans. Comput. Syst.}, 123.138 + volume = 10, 123.139 + issue = 1, 123.140 + month = {February}, 123.141 + year = 1992, 123.142 + pages = {53--79} 123.143 +} 123.144 +@InProceedings{BOMinManticore, 123.145 + author = {Fluet, Matthew and Rainey, Mike and Reppy, John and Shaw, Adam and Xiao, Yingqi}, 123.146 + title = {Manticore: a heterogeneous parallel language}, 123.147 + booktitle = {Proceedings of the 2007 workshop on Declarative aspects of multicore programming}, 123.148 + series = {DAMP '07}, 123.149 + year = 2007, 123.150 + pages = {37--44}, 123.151 + numpages = 8 123.152 +} 123.153 +@TechReport{Halle_GainFromChaos_TechRep, 123.154 + author = {Halle, K.S. and Chua, Leon O. and Anishchenko, V.S. and Safonova, M.A.}, 123.155 + title = {Signal Amplification via Chaos: Experimental Evidence}, 123.156 + institution = {EECS Department, University of California, Berkeley}, 123.157 + year = 1992, 123.158 + url = {http://www.eecs.berkeley.edu/Pubs/TechRpts/1992/2223.html}, 123.159 + number = {UCB/ERL M92/130} 123.160 +} 123.161 +@Article{Halle_GainFromChaos_pub, 123.162 + author = {K.S. Halle and Leon O. Chua and V.S. Anishchenko and M.A. Safonova}, 123.163 + title = {Signal Amplification via Chaos: Experimental Evidence}, 123.164 + journal = {Int. J. of Bifurcation and Chaos }, 123.165 + pages = {290-308}, 123.166 + year = 1993 123.167 +} 123.168 +@Article{Halle_SpreadSpect_pub, 123.169 + author = {K.S. Halle and C.W. Wu and M. Itoh and L. O. Chua}, 123.170 + title = {Spread Spectrum Communication Through Modulation of Chaos}, 123.171 + journal = {Int. J. of Bifurcation and Chaos }, 123.172 + pages = {469-477}, 123.173 + year = 1993, 123.174 + note = {cited by 232} 123.175 +} 123.176 +@Article{Halle_Secure_pub, 123.177 + author = {V. Kocarev and K.S. Halle and K. Eckert and L. O. Chua and V. Parlitz}, 123.178 + title = {Experimental Demonstration of Secure Communications Via Chaotic Synchronization}, 123.179 + journal = {Int. J. of Bifurcation and Chaos }, 123.180 + pages = {709-713}, 123.181 + year = 1992, 123.182 + note = {cited by 457} 123.183 +} 123.184 +@InProceedings{HotPar10_w_BLIS, 123.185 + author = {Sean Halle and Albert Cohen}, 123.186 + booktitle = {HOTPAR '10: USENIX Workshop on Hot Topics in Parallelism}, 123.187 + month = {June}, 123.188 + title = {Leveraging Semantics Attached to Function Calls to Isolate Applications from Hardware}, 123.189 + year = 2010 123.190 +} 123.191 +@InProceedings{HotPar11_w_Stack, 123.192 + author = {Sean Halle and Albert Cohen}, 123.193 + booktitle = {HOTPAR '11: USENIX Workshop on Hot Topics in Parallelism}, 123.194 + month = {May}, 123.195 + title = {Support of Collective Effort Towards Performance Portability}, 123.196 + year = 2011 123.197 +} 123.198 +@Article{VMS_LCPC_11, 123.199 + author = {Sean Halle and Albert Cohen}, 123.200 + title = {A Mutable Hardware Abstraction to Replace Threads}, 123.201 + journal = {24th International Workshop on Languages and Compilers for Parallel Languages (LCPC11)}, 123.202 + year = 2011 123.203 +} 123.204 +@Misc{StackTechRep_10, 123.205 + author = {Halle, Sean and Nadezhkin, Dmitry and Cohen, Albert}, 123.206 + note = {http://www.soe.ucsc.edu/share/technical-reports/2010/ucsc-soe-10-02.pdf}, 123.207 + title = {A Framework to Support Research on Portable High Performance Parallelism}, 123.208 + year = 2010 123.209 +} 123.210 +@Misc{CTBigStepSemTechRep_06, 123.211 + author = {Halle, Sean}, 123.212 + note = {http://www.soe.ucsc.edu/share/technical-reports/2006/ucsc-crl-06-11.pdf}, 123.213 + title = {The Big-Step Operational Semantics of CodeTime Circuits}, 123.214 + year = 2006 123.215 +} 123.216 +@Misc{MentalFrameworkTechRep_06, 123.217 + author = {Halle, Sean}, 123.218 + note = {http://www.soe.ucsc.edu/share/technical-reports/2006/ucsc-crl-06-12.pdf}, 123.219 + title = {A Mental Framework for use in Creating Hardware Independent Parallel Languages}, 123.220 + year = 2006 123.221 +} 123.222 +@Misc{DKUTechRep_09, 123.223 + author = {Halle, Sean and Cohen, Albert}, 123.224 + note = {http://www.soe.ucsc.edu/share/technical-reports/2009/ucsc-soe-09-06.pdf}, 123.225 + title = {DKU Pattern for Performance Portable Parallel Software}, 123.226 + year = 2009 123.227 +} 123.228 +@Misc{EQNLangTechRep, 123.229 + author = {Halle, Sean}, 123.230 + note = {http://www.soe.ucsc.edu/share/technical-reports/2009/ucsc-soe-09-16.pdf}, 123.231 + title = {An Extensible Parallel Language}, 123.232 + year = 2009 123.233 +} 123.234 +@Misc{CTOSTechRep, 123.235 + author = {Halle, Sean}, 123.236 + note = {http://www.soe.ucsc.edu/share/technical-reports/2009/ucsc-soe-09-15.pdf}, 123.237 + title = {A Hardware-Independent Parallel Operating System Abstraction Layer for Parallelism}, 123.238 + year = 2009 123.239 +} 123.240 +@Misc{SideEffectsTechRep, 123.241 + author = {Halle, Sean and Cohen, Albert}, 123.242 + note = {http://www.soe.ucsc.edu/share/technical-reports/2009/ucsc-soe-09-14.pdf}, 123.243 + title = {Parallel Language Extensions for Side Effects}, 123.244 + year = 2009 123.245 +} 123.246 +@Misc{BaCTiLTechRep, 123.247 + author = {Halle, Sean}, 123.248 + note = {http://www.soe.ucsc.edu/share/technical-reports/2006/ucsc-crl-06-08.pdf}, 123.249 + title = {BaCTiL: Base CodeTime Language}, 123.250 + year = 2006 123.251 +} 123.252 +@Misc{CTPlatformTechRep, 123.253 + author = {Halle, Sean}, 123.254 + note = {http://www.soe.ucsc.edu/share/technical-reports/2006/ucsc-crl-06-09.pdf}, 123.255 + title = {The Elements of the CodeTime Software Platform}, 123.256 + year = 2006 123.257 +} 123.258 +@Misc{CTRTTechRep, 123.259 + author = {Halle, Sean}, 123.260 + note = {http://www.soe.ucsc.edu/share/technical-reports/2006/ucsc-crl-06-10.pdf}, 123.261 + title = {A Scalable and Efficient Peer-to-Peer Run-Time System for a Hardware Independent Software Platform}, 123.262 + year = 2006 123.263 +} 123.264 +@Misc{CIPTechRep, 123.265 + author = {Halle, Sean}, 123.266 + note = {http://www.soe.ucsc.edu/share/technical-reports/2005/ucsc-crl-05-05.pdf}, 123.267 + title = {The Case for an Integrated Software Platform for {HEC} Illustrated Using the CodeTime Platform}, 123.268 + year = 2005 123.269 +} 123.270 +@Misc{DKU_Infra_site, 123.271 + author = {Sean Halle and Albert Cohen}, 123.272 + note = {http://omp.musictwodotoh.com}, 123.273 + title = {{DKU} infrastructure server} 123.274 +} 123.275 +@Misc{DKUSourceForge, 123.276 + author = {Sean Halle and Albert Cohen}, 123.277 + month = {November}, 123.278 + note = {http://dku.sourceforge.net}, 123.279 + title = {{DKU} website}, 123.280 + year = 2008 123.281 +} 123.282 +@Misc{BLISHome, 123.283 + author = {Sean Halle and Albert Cohen}, 123.284 + month = {November}, 123.285 + note = {http://blisplatform.sourceforge.net}, 123.286 + title = {{BLIS} website}, 123.287 + year = 2008 123.288 +} 123.289 +@Misc{VMSHome, 123.290 + author = {Sean Halle and Merten Sach and Ben Juurlink and Albert Cohen}, 123.291 + note = {http://virtualizedmasterslave.org}, 123.292 + title = {{VMS} Home Page}, 123.293 + year = 2010 123.294 +} 123.295 +@Misc{PStackHome, 123.296 + author = {Sean Halle}, 123.297 + note = {http://pstack.sourceforge.net}, 123.298 + title = {{PStack} Home Page -- A Software Stack for Performantly Portable Parallelism}, 123.299 + year = 2012 123.300 +} 123.301 +@Misc{DeblockingCode, 123.302 + note = {http://dku.svn.sourceforge.net/viewvc/dku/branches/DKU\_C\_\_Deblocking\_\_orig/}, 123.303 + title = {{DKU-ized Deblocking Filter} code} 123.304 +} 123.305 +@Misc{SampleBLISCode, 123.306 + note = {http://dku.sourceforge.net/SampleCode.htm}, 123.307 + title = {{Sample BLIS Code}} 123.308 +} 123.309 +@Misc{OMPHome, 123.310 + note = {http://www.openmediaplatform.eu/}, 123.311 + title = {{Open Media Platform} homepage} 123.312 +} 123.313 +@Misc{MapReduceHome, 123.314 + author = {Google Corp.}, 123.315 + note = {http://labs.google.com/papers/mapreduce.html}, 123.316 + title = {{MapReduce} Home page} 123.317 +} 123.318 +@Misc{TBBHome, 123.319 + author = {Intel Corp.}, 123.320 + note = {http://www.threadingbuildingblocks.org}, 123.321 + title = {{TBB} Home page} 123.322 +} 123.323 +@Misc{HPFWikipedia, 123.324 + author = {Wikipedia}, 123.325 + note = {http://en.wikipedia.org/wiki/High_Performance_Fortran}, 123.326 + title = {{HPF} wikipedia page} 123.327 +} 123.328 +@Misc{OpenMPHome, 123.329 + author = {{OpenMP} organization}, 123.330 + note = {http://www.openmp.org}, 123.331 + title = {{OpenMP} Home page} 123.332 +} 123.333 +@Misc{MPIHome, 123.334 + author = {open-mpi organization}, 123.335 + note = {http://www.open-mpi.org}, 123.336 + title = {{Open MPI} Home page} 123.337 +} 123.338 +@Misc{OpenCLHome, 123.339 + author = {Kronos Group}, 123.340 + note = {http://www.khronos.org/opencl}, 123.341 + title = {{OpenCL} Home page} 123.342 +} 123.343 +@Misc{CILKHome, 123.344 + author = {Cilk group at MIT}, 123.345 + note = {http://supertech.csail.mit.edu/cilk/}, 123.346 + title = {{CILK} homepage} 123.347 +} 123.348 +@InProceedings{Fri98, 123.349 + author = {M. Frigo and C. E. Leiserson and K. H. Randall}, 123.350 + title = {The Implementation of the Cilk-5 Multithreaded Language}, 123.351 + booktitle = {PLDI '98: Proceedings of the 1998 ACM SIGPLAN conference on Programming language design and implementation}, 123.352 + pages = {212--223}, 123.353 + year = 1998, 123.354 + address = {Montreal, Quebec}, 123.355 + month = jun 123.356 +} 123.357 +@Misc{TitaniumHome, 123.358 + note = {http://titanium.cs.berkeley.edu}, 123.359 + title = {{Titanium} homepage} 123.360 +} 123.361 +@InProceedings{CnCInHotPar, 123.362 + author = {Knobe, Kathleen}, 123.363 + booktitle = {HOTPAR '09: USENIX Workshop on Hot Topics in Parallelism}, 123.364 + title = {Ease of Use with Concurrent Collections {(CnC)}}, 123.365 + year = 2009 123.366 +} 123.367 +@Misc{CnCHome, 123.368 + author = {Intel Corp.}, 123.369 + note = {http://software.intel.com/en-us/articles/intel-concurrent-collections-for-cc/}, 123.370 + title = {{CnC} homepage} 123.371 +} 123.372 +@Misc{SpiralHome, 123.373 + author = {Spiral Group at CMU}, 123.374 + note = {http://www.spiral.net}, 123.375 + title = {{Spiral} homepage} 123.376 +} 123.377 +@Misc{ScalaHome, 123.378 + author = {Scala organization}, 123.379 + note = {http://www.scala-lang.org/}, 123.380 + title = {{Scala} homepage} 123.381 +} 123.382 +@Misc{UPCHome, 123.383 + author = {UPC group at UC Berkeley}, 123.384 + note = {http://upc.lbl.gov/}, 123.385 + title = {{Unified Parallel C} homepage} 123.386 +} 123.387 +@Misc{SuifHome, 123.388 + note = {http://suif.stanford.edu}, 123.389 + title = {{Suif} Parallelizing compiler homepage} 123.390 +} 123.391 +@Article{SEJITS, 123.392 + author = {B. Catanzaro and S. Kamil and Y. Lee and K. Asanovic and J. Demmel and K. Keutzer and J. Shalf and K. Yelick and A. Fox}, 123.393 + title = {SEJITS: Getting Productivity AND Performance With Selective Embedded JIT Specialization}, 123.394 + journal = {First Workshop on Programmable Models for Emerging Architecture at the 18th International Conference on Parallel Architectures and Compilation Techniques }, 123.395 + year = 2009 123.396 +} 123.397 +@InProceedings{Arnaldo3D, 123.398 + author = {Azevedo, Arnaldo and Meenderinck, Cor and Juurlink, Ben and Terechko, Andrei and Hoogerbrugge, Jan and Alvarez, Mauricio and Ramirez, Alex}, 123.399 + title = {Parallel H.264 Decoding on an Embedded Multicore Processor}, 123.400 + booktitle = {HiPEAC '09: Proceedings of the 4th International Conference on High Performance Embedded Architectures and Compilers}, 123.401 + year = 2009, 123.402 + pages = {404--418} 123.403 +} 123.404 +@Article{NarayananGPUSched, 123.405 + author = {Narayanan Sundaram and Anand Raghunathan and Srimat T. Chakradhar}, 123.406 + title = {A framework for efficient and scalable execution of domain-specific templates on GPUs}, 123.407 + journal = {International Parallel and Distributed Processing Symposium {(IPDPS)}}, 123.408 + year = 2009, 123.409 + pages = {1-12} 123.410 +} 123.411 +@InProceedings{PolyForGPU, 123.412 + author = {Baskaran, Muthu Manikandan and Bondhugula, Uday and Krishnamoorthy, Sriram and Ramanujam, J. and Rountev, Atanas and Sadayappan, P.}, 123.413 + title = {A compiler framework for optimization of affine loop nests for gpgpus}, 123.414 + booktitle = {ICS '08: Proceedings of the 22nd annual international conference on Supercomputing}, 123.415 + year = 2008, 123.416 + pages = {225--234} 123.417 +} 123.418 +@InProceedings{Loulou08, 123.419 + author = {Pouchet, Louis-No\"{e}l and Bastoul, C\'{e}dric and Cohen, Albert and Cavazos, John}, 123.420 + title = {Iterative optimization in the polyhedral model: part ii, multidimensional time}, 123.421 + booktitle = {ACM SIGPLAN conference on Programming language design and implementation {(PLDI)} }, 123.422 + year = 2008, 123.423 + pages = {90--100} 123.424 +} 123.425 +@InProceedings{MergeInHotPar, 123.426 + author = {Michael D. Linderman and James Balfour and Teresa H. Meng and William J. Dally}, 123.427 + booktitle = {HOTPAR '09: USENIX Workshop on Hot Topics in Parallelism}, 123.428 + month = {March}, 123.429 + title = {Embracing Heterogeneity \- Parallel Programming for Changing Hardware}, 123.430 + year = 2009 123.431 +} 123.432 +@InProceedings{GaloisRef, 123.433 + author = {Kulkarni, Milind and Pingali, Keshav and Walter, Bruce and Ramanarayanan, Ganesh and Bala, Kavita and Chew, L. Paul}, 123.434 + title = {Optimistic parallelism requires abstractions}, 123.435 + booktitle = {PLDI '07: Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation}, 123.436 + year = 2007, 123.437 + pages = {211--222} 123.438 +} 123.439 +@Book{Allen2002, 123.440 + author = {Kennedy, Ken and Allen, John R.}, 123.441 + title = {Optimizing compilers for modern architectures: a dependence-based approach}, 123.442 + year = 2002, 123.443 + publisher = {Morgan Kaufmann Publishers Inc.} 123.444 +} 123.445 +@Misc{Stephens95, 123.446 + author = {R. Stephens}, 123.447 + title = {A Survey Of Stream Processing}, 123.448 + year = 1995 123.449 +} 123.450 +@InProceedings{Palatin06, 123.451 + author = {P Palatin and Y Lhuillier and O Temam}, 123.452 + title = {CAPSULE: Hardware-assisted parallel execution of componentbased programs}, 123.453 + booktitle = {In Proceedings of the 39th Annual International Symposium on Microarchitecture}, 123.454 + year = 2006, 123.455 + pages = {247--258} 123.456 +} 123.457 +@InProceedings{Sequioa06, 123.458 + author = {Fatahalian,, Kayvon and Horn,, Daniel Reiter and Knight,, Timothy J. and Leem,, Larkhoon and Houston,, Mike and Park,, Ji Young and Erez,, Mattan and Ren,, Manman and Aiken,, Alex and Dally,, William J. and Hanrahan,, Pat}, 123.459 + title = {Sequoia: programming the memory hierarchy}, 123.460 + booktitle = {SC '06: Proceedings of the 2006 ACM/IEEE conference on Supercomputing}, 123.461 + year = 2006, 123.462 + pages = 83 123.463 +} 123.464 +@Book{Cole89, 123.465 + author = {M Cole}, 123.466 + title = {Algorithmic skeletons: Structured management of parallel computation}, 123.467 + publisher = {Pitman}, 123.468 + year = 1989 123.469 +} 123.470 +@InProceedings{Ginhac98, 123.471 + author = {Dominique Ginhac and Jocelyn Serot and Jean Pierre Derutin}, 123.472 + title = {Fast prototyping of image processing applications using functional skeletons on a MIMD-DM architecture}, 123.473 + booktitle = {In IAPR Workshop on Machine Vision and Applications}, 123.474 + year = 1998, 123.475 + pages = {468--471} 123.476 +} 123.477 +@InProceedings{Serot08MetaParallel, 123.478 + author = {Serot, Jocelyn and Falcou, Joel}, 123.479 + title = {Functional Meta-programming for Parallel Skeletons}, 123.480 + booktitle = {ICCS '08: Proceedings of the 8th international conference on Computational Science, Part I}, 123.481 + year = 2008, 123.482 + pages = {154--163} 123.483 +} 123.484 +@InProceedings{Darlington93, 123.485 + author = {J. Darlington and A. J. Field and P. G. Harrison and P. H. J. Kelly and D. W. N. Sharp and Q. Wu}, 123.486 + title = {Parallel programming using skeleton functions}, 123.487 + booktitle = {}, 123.488 + year = 1993, 123.489 + pages = {146--160}, 123.490 + publisher = {Springer-Verlag} 123.491 +} 123.492 +@Article{Asanovic06BerkeleyView, 123.493 + title = {{The landscape of parallel computing research: A view from berkeley}}, 123.494 + author = {Asanovic, K. and Bodik, R. and Catanzaro, B.C. and Gebis, J.J. and Husbands, P. and Keutzer, K. and Patterson, D.A. and Plishker, W.L. and Shalf, J. and Williams, S.W. and others}, 123.495 + journal = {Electrical Engineering and Computer Sciences, University of California at Berkeley, Technical Report No. UCB/EECS-2006-183, December}, 123.496 + volume = 18, 123.497 + number = {2006-183}, 123.498 + pages = 19, 123.499 + year = 2006 123.500 +} 123.501 +@Misc{BerkeleyPattLang, 123.502 + note = {http://parlab.eecs.berkeley.edu/wiki/patterns}, 123.503 + title = {{Berkeley Pattern Language}} 123.504 +} 123.505 +@Book{Mattson04Patterns, 123.506 + title = {{Patterns for parallel programming}}, 123.507 + author = {Mattson, T. and Sanders, B. and Massingill, B.}, 123.508 + year = 2004, 123.509 + publisher = {Addison-Wesley Professional} 123.510 +} 123.511 +@Article{Skillicorn98, 123.512 + title = {{Models and languages for parallel computation}}, 123.513 + author = {Skillicorn, D.B. and Talia, D.}, 123.514 + journal = {ACM Computing Surveys (CSUR)}, 123.515 + volume = 30, 123.516 + number = 2, 123.517 + pages = {123--169}, 123.518 + year = 1998 123.519 +} 123.520 +@Conference{Blelloch93NESL, 123.521 + title = {{Implementation of a portable nested data-parallel language}}, 123.522 + author = {Blelloch, G.E. and Hardwick, J.C. and Chatterjee, S. and Sipelstein, J. and Zagha, M.}, 123.523 + booktitle = {Proceedings of the fourth ACM SIGPLAN symposium on Principles and practice of parallel programming}, 123.524 + pages = {102--111}, 123.525 + year = 1993, 123.526 + organization = {ACM New York, NY, USA} 123.527 +} 123.528 +@Article{McgrawSisal, 123.529 + title = {{SISAL: Streams and iteration in a single assignment language: Reference manual version 1.2}}, 123.530 + author = {McGraw, J. and Skedzielewski, SK and Allan, SJ and Oldehoeft, RR and Glauert, J. and Kirkham, C. and Noyce, B. and Thomas, R.}, 123.531 + journal = {Manual M-146, Rev}, 123.532 + volume = 1 123.533 +} 123.534 +@Article{Gelernter85Linda, 123.535 + title = {{Generative communication in Linda}}, 123.536 + author = {Gelernter, D.}, 123.537 + journal = {ACM Transactions on Programming Languages and Systems (TOPLAS)}, 123.538 + volume = 7, 123.539 + number = 1, 123.540 + pages = {80--112}, 123.541 + year = 1985 123.542 +} 123.543 +@Article{Lin94ZPL, 123.544 + title = {{ZPL: An array sublanguage}}, 123.545 + author = {Lin, C. and Snyder, L.}, 123.546 + journal = {Lecture Notes in Computer Science}, 123.547 + volume = 768, 123.548 + pages = {96--114}, 123.549 + year = 1994 123.550 +} 123.551 +@Article{baecker97, 123.552 + author = {Ron Baecker and Chris DiGiano and Aaron Marcus}, 123.553 + title = {Software visualization for debugging}, 123.554 + journal = {Communications of the ACM}, 123.555 + volume = 40, 123.556 + number = 4, 123.557 + year = 1997, 123.558 + issn = {0001-0782}, 123.559 + pages = {44--54}, 123.560 + publisher = {ACM Press} 123.561 +} 123.562 +@Article{ball96, 123.563 + author = {T. A. Ball and S. G. Eick}, 123.564 + title = {Software Visualization in the Large}, 123.565 + journal = {IEEE Computer}, 123.566 + volume = 29, 123.567 + number = 4, 123.568 + year = 1996, 123.569 + month = {apr}, 123.570 + pages = {33--43} 123.571 +} 123.572 +@Book{berry89, 123.573 + title = {{The chemical abstract machine}}, 123.574 + author = {Berry, G. and Boudol, G.}, 123.575 + year = 1989, 123.576 + publisher = {ACM Press} 123.577 +} 123.578 +@Article{blumofe95, 123.579 + author = {Robert D. Blumofe and Christopher F. Joerg and Bradley C. Kuszmaul and Charles E. Leiserson and Keith H. Randall and Yuli Zhou}, 123.580 + title = {Cilk: an efficient multithreaded runtime system}, 123.581 + journal = {SIGPLAN Not.}, 123.582 + volume = 30, 123.583 + number = 8, 123.584 + year = 1995, 123.585 + pages = {207--216} 123.586 +} 123.587 +@Article{burch90, 123.588 + title = {{Symbolic model checking: 10^{20} states and beyond}}, 123.589 + author = {Burch, JR and Clarke, EM and McMillan, KL and Dill, DL and Hwang, LJ}, 123.590 + journal = {Logic in Computer Science, 1990. LICS'90, Proceedings}, 123.591 + pages = {428--439}, 123.592 + year = 1990 123.593 +} 123.594 +@Article{chamberlain98, 123.595 + author = {B. Chamberlain and S. Choi and E. Lewis and C. Lin and L. Snyder and W. Weathersby}, 123.596 + title = {ZPL's WYSIWYG Performance Model}, 123.597 + journal = {hips}, 123.598 + volume = 00, 123.599 + year = 1998, 123.600 + isbn = {0-8186-8412-7}, 123.601 + pages = 50 123.602 +} 123.603 +@Article{church41, 123.604 + author = {A. Church}, 123.605 + title = {The Calculi of Lambda-Conversion}, 123.606 + journal = {Annals of Mathematics Studies}, 123.607 + number = 6, 123.608 + year = 1941, 123.609 + publisher = {Princeton University} 123.610 +} 123.611 +@Misc{CodeTimeSite, 123.612 + author = {Sean Halle}, 123.613 + key = {CodeTime}, 123.614 + title = {Homepage for The CodeTime Parallel Software Platform}, 123.615 + note = {{\ttfamily http://codetime.sourceforge.net}} 123.616 +} 123.617 +@Misc{CodeTimePlatform, 123.618 + author = {Sean Halle}, 123.619 + key = {CodeTime}, 123.620 + title = {The CodeTime Parallel Software Platform}, 123.621 + note = {{\ttfamily http://codetime.sourceforge.net/content/CodeTime\_Platform.pdf}} 123.622 +} 123.623 +@Misc{CodeTimeVS, 123.624 + author = {Sean Halle}, 123.625 + key = {CodeTime}, 123.626 + title = {The Specification of the CodeTime Platform's Virtual Server}, 123.627 + note = {{\ttfamily http://codetime.sourceforge.net/content/CodeTime\_Virtual\_Server.pdf}} 123.628 +} 123.629 +@Misc{CodeTimeOS, 123.630 + author = {Sean Halle}, 123.631 + key = {CodeTime}, 123.632 + title = {A Hardware Independent OS}, 123.633 + note = {{\ttfamily http://codetime.sourceforge.net/content/CodeTime\_OS.pdf}} 123.634 +} 123.635 +@Misc{CodeTimeSem, 123.636 + author = {Sean Halle}, 123.637 + key = {CodeTime}, 123.638 + title = {The Big-Step Operational Semantics of the CodeTime Computational Model}, 123.639 + note = {{\ttfamily http://codetime.sourceforge.net/content/CodeTime\_Semantics.pdf}} 123.640 +} 123.641 +@Misc{CodeTimeTh, 123.642 + author = {Sean Halle}, 123.643 + key = {CodeTime}, 123.644 + title = {A Mental Framework for Use in Creating Hardware-Independent Parallel Languages}, 123.645 + note = {{\ttfamily http://codetime.sourceforge.net/content/CodeTiime\_Theoretical\_Framework.pdf}} 123.646 +} 123.647 +@Misc{CodeTimeTh1, 123.648 + author = {Sean Halle}, 123.649 + key = {CodeTime}, 123.650 + title = {The CodeTime Parallel Software Platform}, 123.651 + note = {{\ttfamily http://codetime.sourceforge.net}} 123.652 +} 123.653 +@Misc{CodeTimeTh2, 123.654 + author = {Sean Halle}, 123.655 + key = {CodeTime}, 123.656 + title = {The CodeTime Parallel Software Platform}, 123.657 + note = {{\ttfamily http://codetime.sourceforge.net}} 123.658 +} 123.659 +@Misc{CodeTimeRT, 123.660 + author = {Sean Halle}, 123.661 + key = {CodeTime}, 123.662 + title = {The CodeTime Parallel Software Platform}, 123.663 + note = {{\ttfamily http://codetime.sourceforge.net}} 123.664 +} 123.665 +@Misc{CodeTimeWebSite, 123.666 + author = {Sean Halle}, 123.667 + key = {CodeTime}, 123.668 + title = {The CodeTime Parallel Software Platform}, 123.669 + note = {{\ttfamily http://codetime.sourceforge.net}} 123.670 +} 123.671 +@Misc{CodeTimeBaCTiL, 123.672 + author = {Sean Halle}, 123.673 + key = {CodeTime}, 123.674 + title = {The Base CodeTime Language}, 123.675 + note = {{\ttfamily http://codetime.sourceforge.net/content/CodeTime\_BaCTiL.pdf}} 123.676 +} 123.677 +@Misc{CodeTimeCert, 123.678 + author = {Sean Halle}, 123.679 + key = {CodeTime}, 123.680 + title = {The CodeTime Certification Strategy}, 123.681 + note = {{\ttfamily http://codetime.sourceforge.net/content/CodeTime\_Certification.pdf}} 123.682 +} 123.683 +@InProceedings{ducournau94, 123.684 + author = {R. Ducournau and M. Habib and M. Huchard and M. L. Mugnier}, 123.685 + title = {Proposal for a monotonic multiple inheritance linearization}, 123.686 + booktitle = {OOPSLA '94: Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications}, 123.687 + year = 1994, 123.688 + pages = {164--175}, 123.689 + publisher = {ACM Press} 123.690 +} 123.691 +@Article{emerson91, 123.692 + title = {{Tree automata, mu-calculus and determinacy}}, 123.693 + author = {Emerson, EA and Jutla, CS}, 123.694 + journal = {Proceedings of the 32nd Symposium on Foundations of Computer Science}, 123.695 + pages = {368--377}, 123.696 + year = 1991 123.697 +} 123.698 +@Article{fortune78, 123.699 + title = {{Parallelism in random access machines}}, 123.700 + author = {Fortune, S. and Wyllie, J.}, 123.701 + journal = {STOC '78: Proceedings of the tenth annual ACM symposium on Theory of computing}, 123.702 + pages = {114--118}, 123.703 + year = 1978, 123.704 + publisher = {ACM Press New York, NY, USA} 123.705 +} 123.706 +@Book{goldberg83, 123.707 + title = {{Smalltalk-80: the language and its implementation}}, 123.708 + author = {Goldberg, A. and Robson, D.}, 123.709 + year = 1983, 123.710 + publisher = {Addison-Wesley} 123.711 +} 123.712 +@InProceedings{goldschlager78, 123.713 + author = {Leslie M. Goldschlager}, 123.714 + title = {A unified approach to models of synchronous parallel machines}, 123.715 + booktitle = {STOC '78: Proceedings of the tenth annual ACM symposium on Theory of computing}, 123.716 + year = 1978, 123.717 + pages = {89--94}, 123.718 + location = {San Diego, California, United States}, 123.719 + doi = {http://doi.acm.org/10.1145/800133.804336}, 123.720 + publisher = {ACM Press} 123.721 +} 123.722 +@Book{gosling96, 123.723 + author = {J. Gosling and B. Joy and G. Steele and G. Bracha}, 123.724 + title = {The Java Language Specification}, 123.725 + publisher = {Addison-Wesley}, 123.726 + year = 1996 123.727 +} 123.728 +@Article{hasselbring00, 123.729 + author = {Wilhelm Hasselbring}, 123.730 + title = {Programming languages and systems for prototyping concurrent applications}, 123.731 + journal = {ACM Comput. Surv.}, 123.732 + volume = 32, 123.733 + number = 1, 123.734 + year = 2000, 123.735 + issn = {0360-0300}, 123.736 + pages = {43--79}, 123.737 + doi = {http://doi.acm.org/10.1145/349194.349199}, 123.738 + publisher = {ACM Press}, 123.739 + address = {New York, NY, USA} 123.740 +} 123.741 +@Article{hoare78, 123.742 + author = {C. A. R. Hoare}, 123.743 + title = {Communicating Sequential Processes}, 123.744 + journal = {Communications of the ACM}, 123.745 + year = 1978, 123.746 + volume = 21, 123.747 + number = 8, 123.748 + pages = {666-677} 123.749 +} 123.750 +@Article{huth, 123.751 + title = {{A Unifying Framework for Model Checking Labeled Kripke Structures, Modal Transition Systems, and Interval Transition Systems}}, 123.752 + author = {Huth, M.}, 123.753 + journal = {Proceedings of the 19th International Conference on the Foundations of Software Technology \& Theoretical Computer Science, Lecture Notes in Computer Science}, 123.754 + pages = {369--380}, 123.755 + publisher = {Springer-Verlag} 123.756 +} 123.757 +@Article{johnston04, 123.758 + author = {Wesley M. Johnston and J. R. Paul Hanna and Richard J. Millar}, 123.759 + title = {Advances in dataflow programming languages}, 123.760 + journal = {ACM Comput. Surv.}, 123.761 + volume = 36, 123.762 + number = 1, 123.763 + year = 2004, 123.764 + issn = {0360-0300}, 123.765 + pages = {1--34}, 123.766 + doi = {http://doi.acm.org/10.1145/1013208.1013209}, 123.767 + publisher = {ACM Press}, 123.768 + address = {New York, NY, USA} 123.769 +} 123.770 +@Book{koelbel93, 123.771 + author = {C. H. Koelbel and D. Loveman and R. Schreiber and G. Steele Jr}, 123.772 + title = {High Performance Fortran Handbook}, 123.773 + year = 1993, 123.774 + publisher = {MIT Press} 123.775 +} 123.776 +@Article{kozen83, 123.777 + title = {{Results on the Propositional mu-Calculus}}, 123.778 + author = {Kozen, D.}, 123.779 + journal = {TCS}, 123.780 + volume = 27, 123.781 + pages = {333--354}, 123.782 + year = 1983 123.783 +} 123.784 +@Article{kripke63, 123.785 + title = {{Semantical analysis of modal logic}}, 123.786 + author = {Kripke, S.}, 123.787 + journal = {Zeitschrift fur Mathematische Logik und Grundlagen der Mathematik}, 123.788 + volume = 9, 123.789 + pages = {67--96}, 123.790 + year = 1963 123.791 +} 123.792 +@Book{mcGraw85, 123.793 + author = {J McGraw and S. Skedzielewski and S. Allan and R Odefoeft}, 123.794 + title = {SISAL: Streams and Iteration in a Single-Assignment Language: Reference Manual Version 1.2}, 123.795 + note = {Manual M-146 Rev. 1}, 123.796 + publisher = {Lawrence Livermore National Laboratory}, 123.797 + year = 1985 123.798 +} 123.799 +@Book{milner80, 123.800 + title = {{A Calculus of Communicating Systems, volume 92 of Lecture Notes in Computer Science}}, 123.801 + author = {Milner, R.}, 123.802 + year = 1980, 123.803 + publisher = {Springer-Verlag} 123.804 +} 123.805 +@Article{milner92, 123.806 + title = {{A calculus of mobile processes, parts I and II}}, 123.807 + author = {Milner, R. and Parrow, J. and Walker, D.}, 123.808 + journal = {Information and Computation}, 123.809 + volume = 100, 123.810 + number = 1, 123.811 + pages = {1--40 and 41--77}, 123.812 + year = 1992, 123.813 + publisher = {Academic Press} 123.814 +} 123.815 +@Book{milner99, 123.816 + author = {Robin Milner}, 123.817 + title = {Communicating and Mobile Systems: The pi-Calculus}, 123.818 + publisher = {Cambridge University Press}, 123.819 + year = 1999 123.820 +} 123.821 +@Book{MPIForum94, 123.822 + author = {M. P. I. Forum}, 123.823 + title = {MPI: A Message-Passing Interface Standard}, 123.824 + year = 1994 123.825 +} 123.826 +@Article{petri62, 123.827 + title = {{Fundamentals of a theory of asynchronous information flow}}, 123.828 + author = {Petri, C.A.}, 123.829 + journal = {Proc. IFIP Congress}, 123.830 + volume = 62, 123.831 + pages = {386--390}, 123.832 + year = 1962 123.833 +} 123.834 +@Book{pierce02, 123.835 + title = {Types and Programming Languages}, 123.836 + author = {Pierce, B. C.}, 123.837 + year = 2002, 123.838 + publisher = {MIT Press} 123.839 +} 123.840 +@Article{price, 123.841 + author = {B. A. Price and R. M. Baecker and L. S. Small}, 123.842 + title = {A Principled Taxonomy of Software Visualization}, 123.843 + journal = {Journal of Visual Languages and Computing}, 123.844 + volume = 4, 123.845 + number = 3, 123.846 + pages = {211--266} 123.847 +} 123.848 +@Misc{pythonWebSite, 123.849 + key = {Python}, 123.850 + title = {The Python Software Foundation Mission Statement}, 123.851 + note = {{\ttfamily http://www.python.org/psf/mission.html}} 123.852 +} 123.853 +@Unpublished{reed03, 123.854 + editor = {Daniel A. Reed}, 123.855 + title = {Workshop on The Roadmap for the Revitalization of High-End Computing}, 123.856 + day = {16--18}, 123.857 + month = {jun}, 123.858 + year = 2003, 123.859 + note = {Available at {\ttfamily http://www.cra.org/reports/supercomputing.web.pdf}} 123.860 +} 123.861 +@Article{reeves84, 123.862 + author = {A. P. Reeves}, 123.863 + title = {Parallel Pascal -- An Extended Pascal for Parallel Computers}, 123.864 + journal = {Journal of Parallel and Distributed Computing}, 123.865 + volume = 1, 123.866 + number = {}, 123.867 + year = 1984, 123.868 + month = {aug}, 123.869 + pages = {64--80} 123.870 +} 123.871 +@Article{skillicorn98, 123.872 + author = {David B. Skillicorn and Domenico Talia}, 123.873 + title = {Models and languages for parallel computation}, 123.874 + journal = {ACM Comput. Surv.}, 123.875 + volume = 30, 123.876 + number = 2, 123.877 + year = 1998, 123.878 + issn = {0360-0300}, 123.879 + pages = {123--169}, 123.880 + doi = {http://doi.acm.org/10.1145/280277.280278}, 123.881 + publisher = {ACM Press}, 123.882 + address = {New York, NY, USA} 123.883 +} 123.884 +@Article{stefik86, 123.885 + title = {Object Oriented Programming: Themes and Variations}, 123.886 + author = {Stefik, M. and Bobrow, D. G.}, 123.887 + journal = {The AI Magazine}, 123.888 + volume = 6, 123.889 + number = 4, 123.890 + year = 1986 123.891 +} 123.892 +@Book{stirling92, 123.893 + title = {{Modal and Temporal Logics}}, 123.894 + author = {Stirling, C.}, 123.895 + year = 1992, 123.896 + publisher = {University of Edinburgh, Department of Computer Science} 123.897 +} 123.898 +@Misc{TitaniumWebSite, 123.899 + author = {Paul Hilfinger and et. al.}, 123.900 + title = {The Titanium Project Home Page}, 123.901 + note = {{\ttfamily http://www.cs.berkeley.edu/projects/titanium}} 123.902 +} 123.903 +@Misc{turing38, 123.904 + author = {A. Turing}, 123.905 + note = {http://www.turingarchive.org/intro/, and http://www.turing.org.uk/sources/biblio4.html, and http://web.comlab.ox.ac.uk/oucl/research/areas/ieg/e-library/sources/tp2-ie.pdf}, 123.906 + year = 1938 123.907 +} 123.908 +@Book{vonNeumann45, 123.909 + title = {First Draft of a Report on the EDVAC}, 123.910 + author = {J. von Neumann}, 123.911 + year = 1945, 123.912 + publisher = {United States Army Ordnance Department} 123.913 +} 123.914 +@Book{winskel93, 123.915 + title = {{The Formal Semantics of Programming Languages}}, 123.916 + author = {Winskel, G.}, 123.917 + year = 1993, 123.918 + publisher = {MIT Press} 123.919 +}
124.1 Binary file CVs/13_Jy__ERCIM_CV/publication_list.pdf has changed
125.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 125.2 +++ b/CVs/13_Jy__ERCIM_CV/publication_list.tex Sat Aug 03 19:24:22 2013 -0700 125.3 @@ -0,0 +1,91 @@ 125.4 +%&latex 125.5 +%% Derived from: `cvctan.tex' 125.6 + 125.7 +\documentclass[a4paper]{article} 125.8 + 125.9 +\usepackage{tabularx} 125.10 + 125.11 +%\usepackage{doublespace} 125.12 +%\setstretch{1.1} 125.13 + 125.14 +%\usepackage{ae} 125.15 +\usepackage[T1]{fontenc} 125.16 +\usepackage{CV} 125.17 + 125.18 + 125.19 +\oddsidemargin 0in 125.20 +\evensidemargin 0in 125.21 +\textwidth\paperwidth 125.22 +\advance \textwidth by -2in 125.23 +\topmargin 0in 125.24 +\textheight\paperheight 125.25 +\advance\textheight -2in 125.26 +\headheight 0pt 125.27 +\headsep 0pt 125.28 +\footskip 0pt 125.29 + 125.30 + 125.31 +%%%%%%%%%%%%%%%%%%%%%% 125.32 +\begin{document} 125.33 + 125.34 +\pagestyle{empty} 125.35 +\bibliographystyle{plain} 125.36 +%Ueberschrift 125.37 +\begin{center} 125.38 +\huge{\textsc{Publication List}} 125.39 +\vspace{\baselineskip} 125.40 + 125.41 +\Large{\textsc{Sean Halle}} 125.42 +\end{center} 125.43 +%\vspace{1.5\baselineskip} 125.44 + 125.45 + 125.46 +\section{Overview} Sean has produced a large body of work, however due to a number of factors has only recently begun concentrating on publishing in major conferences and journals. As such, most of the publications in the list are technical reports, or papers downloadable from development websites. 125.47 + 125.48 + 125.49 +\cite{BLISHome, 125.50 +HotPar10_w_BLIS, 125.51 +HotPar11_w_Stack, 125.52 +PStackHome, 125.53 +VMS_LCPC_11, 125.54 +VMSHome, 125.55 +WorkTableHome, 125.56 +BaCTiLTechRep, 125.57 +CIPTechRep, 125.58 +CTOSTechRep, 125.59 +CTPlatformTechRep, 125.60 +CTRTTechRep, 125.61 +DKUTechRep_09, 125.62 +EQNLangTechRep, 125.63 +GainFromChaos_Halle_92, 125.64 +MentalFrameworkTechRep_06, 125.65 +Halle_GainFromChaos_pub, 125.66 +Halle_Secure_pub, 125.67 +Halle_SpreadSpect_pub} 125.68 + 125.69 +\bibliography{bib_for_papers_apr_2012} 125.70 + 125.71 + 125.72 + 125.73 +\end{document} 125.74 + 125.75 + 125.76 + 125.77 + 125.78 + 125.79 +%Tabellen 125.80 +\begin{table}[htbp] \centering% 125.81 +\begin{tabular}{lll}\hline\hline 125.82 +1 & 2 & 3 \\ \hline 125.83 +1 & \multicolumn{2}{c}{2} \\ 125.84 +\hline 125.85 +\end{tabular} 125.86 +\caption{Titel\label{Tabelle: Label}} 125.87 +\end{table} 125.88 + 125.89 + 125.90 + 125.91 + 125.92 + 125.93 + 125.94 +
